关 闭

新闻中心

EEPW首页 > 安全与国防 > 设计应用 > 基于嵌入式GPU的SAR实时舰船检测算法CUDA设计

基于嵌入式GPU的SAR实时舰船检测算法CUDA设计

作者:武鹏 金燕 张俊举时间:2017-03-29来源:电子产品世界收藏
编者按:为了实现对合成孔径雷达(SAR)图像中舰船目标的实时检测,本文以双参数恒虚警(CFAR)算法为例,提出一种基于ARM+GPU架构的SAR图像舰船目标检测算法的实现方案。该方案在NVIDIA Jetson TK1开发板上的测试结果表明,与传统基于CPU 的SAR图像舰船检测算法相比,该方案能够达到数百倍的速度提升,有效解决了利用CPU平台进行舰船目标检测耗时长、效率低的问题。Jetson TK1作为嵌入式处理平台,相对于工作站或服务器,在功耗和便携性方面都具有明显的优势。

作者 武鹏1 金燕2 张俊举1 1.南京理工大学 (江苏 南京 210094) 2.中国科学院电子学研究所苏州研究院 (江苏 苏州 215123)

本文引用地址:http://www.amcfsurvey.com/article/201703/345943.htm

武鹏(1991-),女,硕士生,研究方向:信号与信息处理。

摘要:为了实现对合成孔径雷达(SAR)图像中舰船目标的实时检测,本文以双参数恒虚警(CFAR)算法为例,提出一种基于ARM+架构的算法的实现方案。该方案在NVIDIA Jetson TK1开发板上的测试结果表明,与传统基于CPU 的舰船检测算法相比,该方案能够达到数百倍的速度提升,有效解决了利用CPU平台进行耗时长、效率低的问题。Jetson TK1作为嵌入式处理平台,相对于工作站或服务器,在功耗和便携性方面都具有明显的优势。

引言

  对海上舰船目标进行检测与监视一直都是世界各海岸地带国家的传统任务[1]。我国领海广阔,海洋资源丰富,开展的研究在军事、民用方面都具有极其重要的意义。星载合成孔径雷达(Synthetic Aperture Radar, SAR)作为一种全天时、全天候的有源主动式微波成像系统,以其优越的二维高分辨率特性,日益成为世界各国普遍重视的遥感探测技术[2]。在军事领域,主要用于陆战场侦查、海洋监测、伪装识别以及发现假目标等,快速准确地获取瞬息万变战场上的动态情报,获取军事主动权;在海洋监测方面,可以根据舰船的反射特性及其产生的尾迹特征进行舰船目标的检测、监视和识别,还能从中提取位置、航向、航速等信息。因此,SAR已经成为当今舰船目标检测、监视和定位的最有效手段之一[3]。然而,传统基于中央处理器(Central Processing Unit ,CPU)的个人计算机、工作站及大型计算服务器对SAR舰船目标检测往往效率很低,不能满足在灾害应急监测和军事应用领域的高机动性、高应急性和时效性的要求。

  近年来,由于市场对实时、高清晰度的图形处理需求的推动,可编程图形处理器()得到了空前的发展,已经演变成具有极高存储器带宽、强大的计算能力、高并行度、多线程的多核处理器。不再仅限于图形图像处理领域的应用,还被广泛应用于生物信息学、流体力学、信号处理、信息检索、线性代数等通用计算领域,在这些领域取得了几十甚至几百的加速比[4]。同样,在SAR舰船目标检测方面,GPU也展现出了越来越重要的作用。

  早期的处理过程需要将数据下传至地面站进行,这不仅要求雷达卫星具有高带宽的下行数据链路,而且还受到卫星过顶时间的限制,这些都使得如何对SAR图像数据进行在轨实时处理成为热点问题,在轨实时处理包括:在轨完成遥感图像的预处理、数据压缩、存储与格式转换、目标特征点的提取等工作,通过使用星上的自主数据处理能力,尽量少地减少地面站对卫星任务的干预,从而满足未来遥感卫星对高机动性、高应急性和时效性的要求,在灾害应急监测以及军事应用等领域发挥更大的作用。在轨SAR实时处理系统作为一种典型的实时系统,在性能、体积、重量、功耗及可靠性方面都有很高的要求,NVIDIA Jetson TK1平台通过采用ARM+GPU的嵌入式架构,体积小、功耗低,满足在轨实时处理的需求,提高了系统的数据处理能力,可以实现在轨SAR遥感图像目标检测的过程。同时,该硬件架构可以应用于很多需要在轨高速数据处理的情况中,例如合成孔径雷达所获取的大量数据在轨处理、在轨维修、空间攻防、航天器的捕获与攻击、空间交会对接等需要对目标物体进行快速测量与控制的场合,具有极其重要的研究价值和非常广阔的应用前景。

  在舰船目标检测中经常用到的检测特征主要有舰船的灰度、面积、形状及舰船由于航行所产生的尾迹等,其中提取舰船的高亮、形状、尾迹等特征是SAR图像舰船目标检测中研究的重点[5]。舰船检测所用的算法主要有四类:双参数恒虚警(CFAR)算法、基于K-分布的CFAR算法、多极化检测算法、其他检测算法(简单阈值法、模糊决策法、基于分割的模拟退火算法)[6]主要适用于分辨率较低的SAR图像目标检测[7],K-分布CFAR算法的应用集中于RADARSAT图像,多极化检测算法仅限于应用在具有同时多极化观测的SAR图像中。其他算法中,简单阈值法和模糊决策法都不具备自适应性,而基于分割的模拟退火算法适用性更是非常有限。本文拟采用在NVIDIA Jetson TK1平台上实现对远洋图像中的舰船目标进行检测,双参数恒虚警(CFAR)检测方法是雷达信号检测领域里最常用和最有效的一类检测算法[8]。大量的研究和实验指出,即使在海况极其恶劣的情况下,CFAR检测器仍然能够获得较好的检测结果[9]

1 双参数CFAR舰船检测算法结构分析

  针对不同的天气、风速等条件,海况有很大的变化,呈现在SAR图像中的海洋杂波的效果也有较大的差别[10],因此,针对上述各种复杂的情况,在对舰船目标进行检测过程中,需要采用一种能够自适应的恒虚警检测方法。双参数CFAR目标检测算法是基于背景杂波,服从高斯分布的假设[11],具有自适应性,能够适应背景杂波变化。通过使用局部滑动窗口,对每个像素进行检测,计算背景窗口中的所有杂波像素的均值和方差,得到该局部窗口的门限,将目标窗口中高于该门限的像素判定为舰船目标[12]。最后再利用一系列形态学的处理方法将目标在图中标注出来。

  如图1所示,设XT为待检测的像素点,在它的周围分别定义了两个局部滑动窗口:背景窗口和保护窗口。背景窗口的大小可以根据船只实际的大小进行选取,主要用于背景杂波的统计分析,保护窗口主要起到保护的作用,防止将待测像素点周围的目标像素也计算在对背景窗口的统计分析中。

  如图2所示,由于要对图像中每个像素进行背景杂波统计及阈值比较的操作,局部滑动窗口进行统计分析的过程具有计算量大,耗时长的特点,运行时间与窗口尺寸的大小有关[14],是双参CFAR算法的核心步骤。因此,要实现对舰船目标的实时检测,必须考虑如何对局部滑动窗口部分算法进行相应的优化,减小计算量,缩短检测周期。

2 算法优化

  由于双参CFAR算法是通过对当前像素点的邻域数据进行统计判断为目标点或背景,相比于全局阈值的处理方法具有自适应的特性。局部滑动窗口计算类似于基于模板的运算,在进行计算时,需要使用当前像素点的邻域数据,并且对前后两个像素进行操作的存储访问高度相关。如果使用普通的存储类型进行数据的存储访问,每次读取操作都要从全局存储器(Global Memory)中取出需要的数据,会出现重复读取数据的情况,访问效率低,因此,需要采用一种更为合适的数据存储方式[15]

  纹理存储器(Texture memory)是一种只读存储器,由GPU中用于纹理渲染的图形专用单元发展而来,纹理存储器中的数据位于显存,但可以通过纹理缓存加速读取。在通用计算中,纹理存储器适用于进行图像处理或查找表等操作,具有良好的加速效果。

  纹理缓存主要有两个作用。首先,纹理缓存中的数据可以被重复利用,当需要访问的数据在纹理缓存中已经存在时,可以避免再从显存中重复读取相同的数据;第二,纹理缓存可以实现滤波模式,缓存拾取坐标点附近几个像元的数据,提高局部访问的效率。因此,双参CFAR算法中局部滑动窗口部分采用纹理存储方式,可以很好的满足应用的需求。

  纹理类型使用非常简单,首先使用cudaBindTextureToArray()将图像数据的数组绑定到一个纹理对象,然后就可以在kernel中使用tex2D()函数来快速访问该纹理对象中的数据,有一点需要注意的是,由于纹理存储器是一种只读存储器,绑定到纹理的数据有变化时,需要重新绑定才能保证访问的数据是最新的。

3 设计与实现

  下面以双参数CFAR检测算法为例,分析基于嵌入式GPU的SAR实时舰船检测算法的CUDA设计与实现过程。

  对上面所得的二值图像做进一步形态学处理:中值滤波、图像膨胀等。中值滤波、图像膨胀的过程同样在GPU中进行,最后,利用OpenCV将图中的舰船目标标注出来,这里不再赘述。

4 实验结果及加速比测试

  实验中使用的图像为海陆分割之后远洋SAR图像,在NVIDIA TK1平台进行舰船目标检测。其中判决准则中的标称化因子取为3.1。图4为原始SAR图像,图5为原始图像经过滑窗操作、中值滤波之后的图像,图6为经过膨胀运算后的SAR图像,图7为最终的舰船检测结果。

  检测结果图7中画出的方框表示正确检测的目标,圆圈表示检测的虚警目标。

  为了衡量检测效果,定义检测结果的品质因数FoM为:

(2)

  其中Ntt为检测结果中正确检测出来的目标数,Nfa为虚警目标数,Ngt为实际的目标数,这里实际的目标数Ngt以目视解译的结果为准[6]。原图中有20只舰船,因此,实际目标数 为20。

  本文使用的GPU平台是NVIDIA公司生产的NVIDIA Jetson TK1 开发组件,与之进行对比的常规CPU是选用Intel®Core™i3处理器。经过多次实验,对于2048×2048大小的SAR图像数据,分别测试了基于CPU单线程的Matlab程序和基于GPU多线程的检测算法运行时间,如表2所示。

  由测试结果可知,本文提出的利用CUDA实现的,基于ARM+GPU的SAR舰船检测算法具有极高的效率,相比传统的基于CPU的SAR舰船检测算法,效率得到了162倍以上的提升。

5 结论

  本文对SAR遥感图像舰船目标检测算法中的双参数CFAR算法在CUDA架构下的高效实现方法进行了深入研究。首先对双参CFAR算法的结构特征以及CUDA架构下的实现思路进行了详细分析,并对算法的CUDA实现进行了优化,相对于传统的基于CPU的舰船检测方式,具有低廉的成本、极低的功耗,以及高度的便携性,同时获得了162倍以上的加速比。

  参考文献:

  [1]唐沐恩,林挺强,文贡坚.遥感图像中舰船检测方法综述[J].计算机应用研究,2011,01:29-36.

  [2]郭勐,简方军,张钦,等.基于FPGA实现的星载SAR实时成像系统研究[J].计算机研究与发展,2007,03:497-502.

  [3]雷盼飞,苏清贺,杨桄. SAR图像舰船目标检测研究[J].影像技术,2011,04:40-45.

  [4]姚成祥.基于CPU+GPU异构计算平台的SAR成像研究与实现[D].中国航天第二研究院航天科工集团第二研究院, 2012.

  [5]李文武.中低分辨率光学遥感图像舰船目标检测算法研究[D].国防科学技术大学,2008.

  [6]种劲松.合成孔径雷达图像舰船目标检测算法与应用研究[D].中国科学院电子学研究所,2002.

  [7]李俊敏. SAR图像舰船目标检测方法研究[D].西安电子科技大学,2014.

  [8]赵明波,何峻,付强. SAR图像CFAR检测的快速算法综述[J].自动化学报,2012,12:1885-1895.

  [9]周树道,王敏,叶松,王俊. 基于SAR图像的海洋舰船目标检测技术[J]. 微计算机应用,2010,02:61-65.

  [10]Blake A P, Blacknell D, and Oliver C J. Sea clutter analysis and its resolution dependence[C].Radar conference 97,Edinburgh, UK, Oct.14-16, 1997: 124-128.

  [11]Novak L M, Halversen S D, Owirka G J, et al. Effects of polarization and resolution on SAR ATR[J]. erospace and Electronic Systems, IEEE Transactions on, 1997, 33(1): 102-116.

  [12]陈利民,杨学志,张晰,等. SAR舰船检测算法对比分析研究[J].遥感信息,2015,02:99-104+110.

  [13]龚小冬,李飞,张志敏,等. 一种新颖的高分辨率SAR舰船检测方法[J].雷达科学与技术,2015,01:70-75.

  [14] MOREIRA A,PRATSTIRAOLA P,YOUNIS M,et al.A tutorial on synthetic aperture radar[J].IEEE Geoscience and Remote Sensing Magazine,2013,1( 1) : 6 - 43.

  [15]陶伟东,黄昊,苑振宇,等.基于GPU并行的遥感影像边缘检测算法[J].地理与地理信息科学,2013,01:8-11.


  本文来源于《电子产品世界》2017年第4期第53页,欢迎您写论文时引用,并注明出处。



评论


相关推荐

技术专区

关闭