一种基于GPU的合成孔径雷达目标检测方法与流程

文档序号:15852777发布日期:2018-11-07 10:23阅读:425来源:国知局
一种基于GPU的合成孔径雷达目标检测方法与流程

本发明属于雷达遥感应用技术领域,具体涉及一种基于gpu的合成孔径雷达目标检测方法。

背景技术

合成孔径雷达(syntheticapertureradar,sar)具有全天时、全天候等特点,是一种重要的对地观测手段。sar目标检测致力于解决从复杂的地物场景中有效的提取地面车辆(如坦克、装甲车、卡车等),在战场侦察、精确打击等军事领域有明确的应用需求,是提升sar传感器信息感知能力、实现sar技术应用的关键技术之一。

使用双参数cfar进行sar目标检测的速度与图像像素数量的多少密切相关。随着sar图像分辨率的不断增加,导致需要处理的数据量不断增加,使用传统的双参数cfar进行目标检测越来越难以满足实时性和检测准确率的要求。由于双参数cfar是逐像素进行操作的,使用传统的cpu进行操作,检测时间会随着图像像素数目的增加而线性增加,难以满足实时性的要求,其实用性会大打折扣。而且,双参数cfar是通过找出目标与背景的亮度差异来进行目标检测的,所以对于背景中较为明亮的区域会有虚警发生。

解决检测准确率的途径之一就是对cfar算法进行改进,使用卷积层以提取图像的主要特征信息,以提高检测准确率。解决检测实时性的途径之一就是使用gpu的cuda(computeunifieddevicearchitecture)编程进行gpu通用计算。由于gpu在单精度计算方面的巨大优势,cuda编程越来越多的应用在计算密集型程序中以加速程序的运行,提高执行效率。



技术实现要素:

本发明所要解决的,就是为了克服传统的基于cpu的双参数cfar算法在sar目标检测时检测准确率较低和需要逐像素操作而耗时过长的缺陷,使sar目标检测可以满足检测准确率和实时性的要求。本发明提供了一种基于gpu加速的c-cfar目标检测方法。

本发明的技术方案是:如附图1。

步骤1、读取原始大小为col×row输入图片,使用3×3的sobel算子对其进行卷积层处理,原理图见附图2,具体计算过程如下:

其中,z1-z9代表输入图像对应位置像素的灰度值。该步骤在gpu上实现,使用cuda对其进行并行加速,并使用纹理内存对计算过程进行优化加速。

步骤2、对步骤1得到的图像进行池化层处理,使用平均池化,原理如附图3所示,池化核大小为2×2,步长为2,该步骤在gpu上并行实现,该步骤之后,图像的宽和高都变为原图的一半,即(col/2)×(row/2),待处理的像素数目只有原图的1/4。

步骤3、对步骤2得到的图像进行双参数cfar目标检测,原理见附图4,根据待检测目标的大小确定保护窗口的大小,若目标的大小为width*height,则保护窗口的大小为(2*max(width,height)+1)*(2*max(width,height)+1),取背景窗口的宽度为1像素,则背景窗口的像素个数为num_pix=2*(2+2*(2*max(width,height)+1)),为了在cuda编程中不发生读取地址冲突,需要使用cpu把每个像素的背景窗口的灰度值存储至一维数组,然后进行计算,因此需要开辟大小为col*row*num_pix的一维数组back_data[],把图片中每个像素对应的背景窗口的像素灰度值依次存储至该一维数组;

步骤4、把一维数组back_data[]从内存复制到显存,开辟col*row个线程,每个线程负责计算num_pix个像素的均值和方差,计算完毕后col*row个背景窗口的均值和方差分别存储至ave[]和var[]中,ave[]和var[]为长度为col*row的数组;

步骤5、从ave[]和var[]中读取每个待检测像素对应的背景窗口的均值μ和方差σ,根据均值和方差计算阈值,t=σ×φ-1(1-pfa)+μ;

步骤6、开辟col*row个线程,每个线程负责比较待检测像素与对应阈值的大小,若待检测像素的灰度值大于阈值t,则判定为目标,输出图像的灰度值设定为255,否则判断为背景,输出图像的灰度值设定为0。

步骤7、对步骤6的输出图像进行膨胀和腐蚀操作,该部分操作在gpu上并行实现。

步骤8、对步骤7的输出图像进行中值滤波,原理如附图5所示,由于步骤7得到的图像为二值图像,为了使输出图像依然为二值图像,同时为了减小排序求中值过程的时间复杂度,按如下计算过程进行中值滤波:

其中w为如附图5所示的模板窗口,w和h为模板窗口的大小。

步骤8、对步骤7得到的图像进行尺寸变换,由于步骤7得到的图像尺寸为(col/2)×(row/2),所以需要进行尺寸变换把图像尺寸变为col×row,尺寸变换原理如附图6,计算过程如下:

f(x,y)=(ceil((1-u)*(1-v))*f(q11))|

(ceil((1-u)*v)*f(q12))|

(ceil(u*(1-v))*f(q21))|

(ceil(u*v)*f(q22))

其中,u=x-x1,v=y-y1,该部分操作在gpu上并行实现。

本发明在传统的双参数cfar目标检测的基础上,并结合cnn的原理,提出了一种基于gpu并行的c-cfar目标检测方法。由于基于cpu的双参数cfar目标检测算法需要逐像素的计算每个像素对应的背景窗口像素的均值和方差,计算量会随着图片像素数目的增加呈线性增加的趋势,在大场景情况下达到实时性的要求将会是一个巨大的挑战,限制了其现实应用。

由于每个像素对应的背景窗口的均值和方差的计算过程相互独立,彼此没有相关性。因此可以为每个像素开辟一个线程,每个线程计算对应的背景窗口的均值与方差。在之后的阈值比较过程中,可以并行比较每个像素与对应的阈值大小。使用gpu多线程并行实现,可以减少程序执行时间。

本发明的有益效果是:较现有的双参数sar目标检测方法,本发明具有极大的并行性,不必逐像素重复计算,运行效率极大提升;检测结果优于基于cpu串行执行双参数cfar的检测结果。

附图说明

图1为本发明的c-cfar算法的检测流程;

图2为卷积层处理的原理;

图3为池化层的原理;

图4为双参数cfar检测过程的窗口设置原理;

图5为中值滤波的模板窗口;

图6为尺寸变换的原理;

图7为实验中用到的大场景待检测图片;

图8为mstar目标切片读取图像展示;

图9为目标检测的结果图片。

图10为使用c-cfar目标检测的结果图片。

具体实施方式

下面以mstar大场景图片目标检测任务为例,模拟实际目标检测应用对本发明做进一步说明。

实验所用的四张待检测大场景图片如图7所示,图片为1478×1784的jpg格式数据。图片中的目标选自于mstar目标中的大小为128×128的bmp2、btr70、t72三种jpg格式的目标切片,目标切片图像见附图8。

本发明是为了说明基于gpu并行的c-cfar目标检测的加速效果以及检测准确率的提升效果,使sar目标检测具有实时性,因此,分别使用基于cpu和gpu操作的双参数cfar以及基于cpu和gpu的c-cfar对图4的四张大场景图片进行目标检测,并统计两种算法的耗时,使用品质因子(fom)来衡量检测结果,fom的计算公式如:

其中,ntest为检测出的目标的数量,nfa为虚警数量,nreal为图像中实际的目标数量。

检测结果如附图9所示,由结果可以直观看出,使用c-cfar进行检测的检测结果优于双参数cfar的检测结果。实验耗时如表1:

表1实验耗时对比

由表1可知,c-cfar算法的品质因子高于双参数cfar,对于两种算法,使用gpu并行加速均可以达到10-20的加速比。而且,使用gpu并行的c-cfar算法相比于基于cpu的双参数cfar算法达到了90-100的加速比。因此,基于gpu的c-cfar算法极大的提高了检测准确率和检测效率,满足了实时性的要求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1