基于CUDA和电子海图生成导航雷达海岸线回波的方法转让专利

申请号 : CN201310047364.0

文献号 : CN103135101B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王金波刘峰

申请人 : 中国人民解放军海军工程大学

摘要 :

本发明公开了一种基于CUDA和电子海图生成导航雷达海岸线回波的方法,包括:1)读入边长为2R的正方形电子海图,在所述电子海图中读取指定中心点(Ox,Oy)及半径R的选定区域; 2)从所述选定区域中提取出陆地及海岸线,将所提取陆地和海岸线的像素点设为0Xff0000FF;3)选取所述选定区域内的目标点,判断目标点是否在海岸线的轮廓线上,将不在海岸线的轮廓线上的目标点删除,得到海岸线的轮廓线;4)提取所述海岸线轮廓线的可视信息,即得到导航雷达岸线回波。本发明利用GPU特性,从根本上解决运算速度的瓶颈,在现有导航雷达中生成逼真的海岸线回波,增强导航雷达模拟器训练的效果。

权利要求 :

1.一种基于CUDA和电子海图生成导航雷达海岸线回波的方法,其特征在于,包括:

1)读取边长为2R的正方形电子海图,在所述电子海图中读取指定中心点(Ox,Oy)及半径R的选定区域,其中R为导航雷达量程的2倍,并利用CUDA在显存开辟出与选定区域像素大小的空间;

2)从所述选定区域中提取出陆地及海岸线,将所提取陆地和海岸线的像素点设为

0Xff0000FF,利用GPU的并行处理,将所述陆地及海岸线的每一个像素点对应一个线程,并对每个线程进行并行计算;

3)选取所述选定区域内的目标点,利用GPU进行并行处理,将所述目标点的每一个像素点对应处理为一个线程,并计算与该目标点相邻的8个像素点,如果同时存在海域和地物中的点,则该目标点在海岸线的轮廓线上;否则该目标点不在海岸线的轮廓线上,将不在海岸线的轮廓线上的目标点删除,得到海岸线的轮廓线;

4)提取所述海岸线轮廓线的可视信息,即得到导航雷达岸线回波。

2.根据权利要求1所述基于CUDA和电子海图生成导航雷达海岸线回波的方法,其特征在于:步骤2)中,在所述选定区域中根据不同颜色值提取出陆地和海岸线,其中陆地像素点为0xFFFFFFC0,海岸线像素点为0xFF000000。

3.根据权利要求1所述基于CUDA和电子海图生成导航雷达海岸线回波的方法,其特征在于:步骤4)中,对每一条扫描线上的点从雷达所在的位置(Ox,Oy)处开始扫描,扫描的象素点个数为雷达当前量程对应的像素坐标值,由中心点向外扫描时,遇到第一个像素点为海岸线时,则将该点保留,位于该点以后的数据均被置零,完成对遮挡的删除。

4.根据权利要求3所述基于CUDA和电子海图生成导航雷达海岸线回波的方法,其特征在于:将正方形海图转换为以中心点位坐标原点的极坐标系,并将360度方位分为4096份,每个方位上的像素点为1024点,即转化为4096×1024的坐标系统,按方位生成256个grid,每个grid包含16个block,对4096个线程代表的方位上的每一个像素点从中心向外进行扫描,从而得到海岸线轮廓线可视信息的提取。

5.根据权利要求4所述基于CUDA和电子海图生成导航雷达海岸线回波的方法,其特征在于:加粗所述海岸线轮廓线。

6.根据权利要求5所述基于CUDA和电子海图生成导航雷达海岸线回波的方法,其特征在于: 对所述4096个方位上的像素点进行检查,在每一个方位上,从中心向外查找代表有地物回波的像素点,然后在该方位上,对像素点的前后通过随机的方式增加一定数目的岸线代表有回波的像素,从而实现对海岸线轮廓线的加粗。

说明书 :

基于CUDA和电子海图生成导航雷达海岸线回波的方法

技术领域

[0001] 本发明涉及雷达模拟器的回波生成方法,具体地指一种基于CUDA和电子海图生成导航雷达海岸线回波的方法。

背景技术

[0002] 船用导航雷达是船上不可缺少的导航设备。船舶在大雾、暴风雨、暗礁区和黑夜里航行时,使用雷达观测周围环境,才能保证安全,因为导航雷达能显示出船舶四周的水面情况,告诉使用人员何处存在暗礁、其它船舶和海岸的情况。在船舶进出港口或在江海中航行时,导航雷达的另一个重要作用是辅助进行狭水道导航及盲目进出港,在能见度不佳情况下,利用导航雷达观察狭水道或进出港航道的水面情况,能够避开危险航区,帮助船舶沿预定航线通过狭水道或进出港口。
[0003] 在导航雷达的模拟训练中,需要比较真实地狭水道环境,而目前的导航雷达训练模拟器中还没有利用电子海图生成海岸线回波以获取狭水道环境的方法。

发明内容

[0004] 本发明的目的在于克服上述现有技术的不足而提供一种基于CUDA和电子海图生成导航雷达海岸线回波的方法,利用电子海图生成逼真的海岸线回波以获取狭水道环境,有利于导航雷达模拟器训练的效果。
[0005] 实现本发明目的采用的技术方案是:一种基于CUDA和电子海图生成导航雷达海岸线回波的方法,其包括以下步骤:
[0006] 1)读取边长为2R的正方形电子海图,在所述电子海图中读取指定中心点(Ox,Oy)及半径R的选定区域,其中R为导航雷达量程的2倍,并利用CUDA在显存开辟出与选定区域像素大小的空间;
[0007] 2)从所述选定区域中提取出陆地及海岸线,将所提取陆地和海岸线的像素点设为0Xff0000FF,利用GPU的并行处理,将所述陆地及海岸线的每一个像素点对应一个线程,并对每个线程进行并行计算;
[0008] 3)选取所述选定区域内的目标点,利用GPU进行并行处理,将所述目标点的每一个像素点对应处理为一个线程,并计算与该目标点相邻的8个像素点,如果同时存在海域和地物中的点,则该目标点在海岸线的轮廓线上;否则该目标点不在海岸线的轮廓线上,将不在海岸线的轮廓线上的目标点删除,得到海岸线的轮廓线;
[0009] 4)提取所述海岸线轮廓线的可视信息,即得到导航雷达岸线回波。
[0010] 本发明能够在现有导航雷达中生成逼真的海岸线回波,增强导航雷达模拟器训练的效果。

附图说明

[0011] 图1为本发明基于CUDA和电子海图生成导航雷达海岸线回波的方法的流程图;
[0012] 图2为读入的电子海图示意图;
[0013] 图3为从图2中读取的陆地及海岸线示意图;
[0014] 图4为海岸线的轮廓线判断示意图;
[0015] 图5为图3中海岸线的轮廓线示意图;
[0016] 图6为图5删除遮挡后的示意图;
[0017] 图7为图6加粗后的示意图。

具体实施方式

[0018] 下面结合附图和具体实施例对本发明作进一步的详细说明。
[0019] 如图1所示,本发明基于CUDA和电子海图生成导航雷达海岸线回波的方法包括以下步骤:
[0020] 步骤S101:读入边长为2R的正方形电子海图,如图2所示。在该电子海图中读取指定中心点(Ox,Oy)及半径R的选定区域,其中R为导航雷达量程的2倍。本实施例设半径R对应1024个像素点,那么,所选区域大小为2048×2048像素。需要在显存空间中开辟出相应大小的区域用于存储数据。由电子海图自身提供的开发工具生成相应大小的位图后,利用CUDA工具在显存开辟出相应大小的空间。
[0021] 步骤S102:在上一步骤所选定区域中,根据不同颜色值提取出陆地和海岸线,其中RGB值为0xFFFFFFC0的像素点陆地为,RGB值为0xFF000000的像素点为海岸线,并将所提取陆地和海岸线的像素点设为0Xff0000FF,如图3所示。
[0022] 利用CUDA的并行计算,将显存中的位图分为128×128个grid,每个grid中包含16×16个block,这样设计后,共生成2048×2048个线程,每个线程 对应一个像素点。通过GPU并行处理能力,就可以将对每一个像素点进行并行处理,极大提高处理速度。
[0023] 步骤S103:选取所述选定区域内的目标点,如果与该目标点相邻的8个像素点中同时存在海域和地物中的点,则该目标点在海岸线的轮廓线上,如图4中目标点A相邻的8个像素点中同时存在海域和地物目标(陆地)中的点,则该目标点A在海岸线的轮廓线上;否则该目标点不在海岸线的轮廓线上,将不在海岸线的轮廓线上的目标点删除,得到海岸线的轮廓线,如图5所示。
[0024] 同理,本实施例中利用CUDA的并行计算为每一个像素开一个线程,计算处理每个像素相邻的8个点是不是满足上述条件,从而判断是否为海岸线的轮廓线。
[0025] 步骤S104:提取海岸线轮廓线的可视信息,即得到导航雷达岸线回波。由于遮挡原因,尤其是地物大目标,其远离雷达一侧的轮廓线一般是探测不到的,因为不会在P显画面上显示出来。所以在得到海岸线的轮廓线后,需进一步将可视的轮廓线信息提取出来。本实施例中只提取同一方位上离雷达最近的海岸线数据,其它数据均被抛弃,具体步骤为:
对每一条扫描线上的点从雷达所在的位置(Ox,Oy)处开始扫描,扫描的象素点个数为雷达当前量程对应的象素坐标值,由中心点向外扫描时,遇到第一个象素点为岸线时,则将该点保留,位于该点以后的数据均被置零,此时则完成对遮挡的删除,如图6所示。
[0026] 本实施例中,将2048×2048的正方形海图转换为以中心点位坐标原点的极坐标系,并将360度方位分为4096份,每个方位上的像素点为1024点,即转化为4096×1024的坐标系统。这时就可以按方位生成256个grid,每个grid包含16个block,这样对这4096个线程代表的方位上的每一个像素点从中心向外进行扫描,通过上述述方法完成轮廓线可视信息的提取。
[0027] 步骤S105:将所得的海岸线的轮廓线进行加粗,如图7所示。
[0028] 由于在实现模拟器岸线回波的过程中,制约海岸线回波生成的因素主要是计算机的运算速度。例如需要读取海图中相应比例尺下的2048X2048个象素点的数据,同时进行区分陆地岸线海洋运算,提取轮廓线运算,删除不可见岸线运算,及加粗运算,这些运算需要大量的运算时间,对模拟器来说是不允许的。
[0029] 因此,本实施例利用CUDA对4096个方位上的像素点进行检查,在每一个方位上,从中心向外查找代表有地物回波的像素点,然后在该方位上,对像素点的前后通过随机的方式增加一定数目的岸线代表有回波的像素。从而实现加粗。
[0030] 本发明结合GPU并行计算技术,利用GPU特性,可以从根本上解决运算速度的瓶颈。CUDA(统一计算设备架构,compute unified device architecture)是NVIDIA公司在2007年推出的针对GPGPU(通用计算GPU,general purpose GPU)的一个全新构想,使专注于图像处理的GPU超高性能在数据处理和科学计算等通用计算领域发挥优势。CUDA通过标准C语言将GPU的众多的计算特性结合到一起,由线程来创建应用程序。目前高端GPU计算性能已达到Teraflops(每秒万亿次浮点运算)级别,其运算速度远远大于CPU的运算速度,解决了现有技术中采用 CPU运算速度慢,无法满足现实计算需求的问题。而本发明能快速地从复杂的航区环境中利用电子海图生成逼真的海岸线回波以获取狭水道环境,从而增强导航雷达模拟器训练的效果。