首页> 中国专利> 一种基于GPU实现的合成孔径雷达图像目标识别方法

一种基于GPU实现的合成孔径雷达图像目标识别方法

摘要

本发明雷达图像目标识别技术领域,具体涉及一种基于GPU实现的合成孔径雷达图像目标识别方法。随着SAR成像技术的发展,SAR图像的分辨率和数据量均迅速增加,所以传统基于CPU串行计算的PCA方法效率过低且计算代价过高。本发明利用GPU通用计算的高效计算能力,对PCA特征提取方法进行并行分析,并将其中并行性强的矩阵乘法、Jacobi特征分解和归约求最值等方法进行GPU并行改进。

著录项

  • 公开/公告号CN107301398A

    专利类型发明专利

  • 公开/公告日2017-10-27

    原文格式PDF

  • 申请/专利权人 电子科技大学;

    申请/专利号CN201710485297.9

  • 发明设计人 曹宗杰;夏爽;崔宗勇;皮亦鸣;

    申请日2017-06-23

  • 分类号

  • 代理机构成都点睛专利代理事务所(普通合伙);

  • 代理人孙一峰

  • 地址 611731 四川省成都市高新西区西源大道2006号

  • 入库时间 2023-06-19 03:38:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-30

    授权

    授权

  • 2017-11-24

    实质审查的生效 IPC(主分类):G06K9/00 申请日:20170623

    实质审查的生效

  • 2017-10-27

    公开

    公开

说明书

技术领域

本发明属于雷达图像目标识别技术领域,具体涉及一种基于GPU实现的合成孔径雷达图像目标识别方法。

背景技术

合成孔径雷达(Synthetic Aperture Radar,以下简称SAR)图像自动目标识别(Automatic Target Recognition,ATR)技术是指在没有人工协助的情况下,从大场景中对目标进行检测和定位并实现对目标的型号、属性及装备等情况的判断。目前SAR目标识别所采用的方法有很多,在特征提取和分类器的设计上都有比较多的方法且都有各自的优缺点。然而相较于这些丰硕的理论成果,SAR目标识别的技术实现和实际应用研究却较为缓慢,实用化的SAR目标检测和识别系统还较少或不成熟。影响这种进程的一大原因就是SAR图像分辨率的提高导致获取的数据量急剧增加,以致传统的CPU处理方式难以实时的处理数据。现有对于SAR目标识别方法的研究大多针对如何提高目标的分类精度,而少有对SAR目标识别算法计算速度的研究。因此,如何在保证识别算法准确率的前提下,提高算法执行速度,实现目标识别算法的实时性,是科研工作者面临的一项挑战。

近年来,图形处理器(GPU,Graphic Process Unit)的高速发展,其架构的不断完善,使得它从最初的仅适用于图形的渲染发展成具有超高的浮点计算能力的计算工具,为目标识别算法速度缓慢问题提供了有力工具。GPU的并行性是由其片内大量线程决定的,这种并行性使得GPU在计算数据量大、密集度高的数据时相对于传统的CPU串行运算有更大的优势。此外,NVIDIA公司不断优化GPU各方面的指标,在保证计算能力的提前下,尽量降低功耗以减少计算成本。

发明内容

本发明提供一种基于GPU实现的合成孔径雷达图像目标识别方法,能够有效的解决目标识别算法实时性差的问题。主成分分析法(Principle Component Analysis,简称PCA)是一种比较常用的SAR图像特征提取方法,它基于大方差对应高信息的思想,将原始数据投影至新的坐标空间,用较少的几个综合变量尽可能多的反映样本原始信息。它的实现步骤如下:

第一步,将每个样本处理成一维数据,对于原始n个训练样本,组成了一个矩阵Pm*n={X1,X2,X3,…,Xn},并计算均值化矩阵P。

第二步,计算求出均值后的矩阵P的协方差矩阵:

第三步,Jacobi迭代法对协方差矩阵Q进行特征值分解:

Q=UTΛU

对于一个秩为k的协方差矩阵,其中协方差阵有k个非零特征值,U为正交矩阵,每一列也是相应特征值对应的特征向量。这时通常取排好序的特征值的前d个最大特征值所对应的向量,作为PCA投影空间,从而降低了特征的维数。选大的特征值,因为特征值越大那么向其对应的特征向量方向映射的特征越明显。

第四步,将样本数据投影到步骤三中获得的特征投影空间上,就可以得到主成分的特征:

YPCA=TP

根据以上四步给出PCA算法实现流程图,如附图1所示。

接下来对PCA算法各个实现过程进行并行分析,从而最终实现算法的GPU并行计算,达到提速效果。

第一步,对输入样本矩阵按行求均值,接着原始矩阵P中每一列向量分别减去均值向量。在计算每一行均值的过程中,可以以矩阵行为基本单位进行并行计算,每个线程实现一行的计算。

第二步,协方差矩阵的计算,即矩阵相乘。协方差矩阵Q的每个元素都是由矩阵P的某一行和某一列计算内积得到,每个元素的计算过程相对独立,是一种典型的适合GPU并行实现的运算。

由于矩阵乘法存在良好并行性,可以通过CUDA实现每个thread对应计算矩阵Q中相应位置的一个值,让每个thread读取P的第i行和PT的第j列,从而计算矩阵Q位置为(i,j)元素的值。计算完整的矩阵Q需要kernel函数访问全局存储器读取参与计算的数据,其中读取P矩阵PT.width次,PT矩阵P.height次。为了让每个block的thread数量达到warp大小的整数倍,我们定义block的尺寸为16*16,所以grid的尺寸为(n/16,n/16)。

第三步,协方差矩阵Q的特征分解。通过分解Jacobi迭代算法计算过程,可以发现其存在数据间的并行性,并且涉及大量可并行实现的矩阵运算。

Jacobi迭代法的具体过程为:设n阶矩阵A为待特征分解的实对称矩阵,每一次迭代中均选取矩阵A中绝对值最大的一个非对角线上的元素,设为apq,在A上的坐标位置是(p,q)。具体的旋转变换公式如下:

A0=A

其中旋转矩阵JK如下:

此方法也叫双边旋转法,如上所述,每一轮JK双边变换后,矩阵A的非对角线位置元素平方和减少对角线上元素平方和增加经过若干轮迭代,将原始矩阵A变为对角矩阵,对角线上的元素即为矩阵特征值。

上述旋转矩阵JK中起到旋转作用的则是2×2的子阵R,R形式如下:

现在需要寻找一种合适的调度算法,对矩阵所有的2×2子阵进行且只进行一次旋转,这样的过程称为一轮迭代。每轮迭代中,最多可以同时进行n/2组互不影响的双边旋转。可见,雅克比旋转算法具有良好的数据并行性,通过体育赛事常用的单循环法即可实现数据的合理调度。

此外,在Jacobi迭代算法在GPU并行实现过程中,涉及了大量矩阵乘法和求最值的计算。其中矩阵乘法的并行分析和实现在前文已经介绍,接下来介绍并行归约法求矩阵最值的GPU实现过程。

CPU串行计算矩阵或数组最大值的方法是通过遍历数组中的所有元素来计算,这样处理的时间复杂度为N。而这里,我们使用归约的方法在GPU上实现最大值的计算,将极大的提高程序运行效率。首先求出相邻2个元素的最大值,然后再上一次计算结果的基础上求出2个相邻最大值的最大值,也就是相当于求出了4个相邻元素的最大值,按照上述规律依次可求出相邻8个、16个、32个等等的元素最大值。

可以看出,这种基于GPU归约求最大值的方法只需logN的时间既可以完成CPU上N时间的计算,大大节省了计算时间,且N越大,加速效果将越好。下面给出CUDA并行归约的具体实现步骤。

假设我们需要计算一个拥有1526个元素的数组中的最大值,每个线程对应处理一个数据,则设置block数量为6,每个block的线程数量为256,且grid和block都是一维的。采用共享存储器优化访问,首先,每个线程读取一个数据,以完成从global存储器向shared存储器的数据拷贝。然后通过同步函数__syncthreads()做同步操作,以保证拷贝操作全部完成,那样同一个block里的数据才可以安全的被其它线程访问。接下通过for()循环实现归约过程,即每一轮循环只使用上一次循环的一半线程进行求第tid和tid+s个线程的最大值,结果存储在第tid个线程,即归约过程。在这里s可以理解为跨度,对于每一个线程块block来说,有:

第一次循环时s=1,只有tid=0,2,4,6,8,…,254线程在执行比较的计算,即s_data[tid]与其后跨度为1的元素比较并求最大值,结果存到s_data[tid]中。

第二次循环时s=2,只有tid=0,4,8,16,…,252线程在执行比较的计算,即s_data[tid]与其后跨度为2的元素比较并求最大值,结果存到s_data[tid]中。

以此类推。

最后一次s=128时,只有线程tid=0真正执行了计算,即s_data[tid]与其后跨度为128的元素相比较并求最大值,结果存到s_data[0]中。此时s_data[0]中的数值就是该block中256个数据的最大值。附图2给了并行归约算法中单个线程块内线程调度情况。

第四步,样本数据投影到特征空间上,通过矩阵乘法即可GPU并行实现。

本发明的有益效果为:本发明利用GPU通用计算的高效计算能力,对PCA特征提取方法进行并行分析,并将其中并行性强的矩阵乘法、Jacobi特征分解和归约求最值等方法进行GPU并行改进。

附图说明

图1为PCA算法流程图;

图2为并行归约线程调度图;

图3为PCA特征提取加速比随着样本规模增加的变化情况。

具体实施方式

下面结合附图,详细描述本发明的技术方案

为了验证GPU对SAR目标识别算法的有效加速,采用统一硬件环境和开发平台上的运算时间作为指标,进行对比,以保证变量单一。GPU型号为NVIDIA GeForce GTX 750Ti,其拥有512个CUDA处理器核心,1G显存。CPU型号为Intel Core i7-4790,3.60GHz,16.0G内存。实验操作系统为64位Windows7。CUDA版本为CUDA7.5。编程环境为Visual Studio2010,编程语言为CUDA C语言。

此外,实验数据采用MSTAR图像数据,现在对MSTAR进行简单的介绍。

MSTAR(Moving and Stationary Target Acquisition Recognition)项目启动于1994年,它是由美国多个研究机构联合研究的一个SAR ATR课题。其中,美国Sandia实验室负责提供X波段0.3~1m分辨率的原始SAR数据。美国Wright实验室负责建立用于模型研究的各种地形后向散射方向图和用于分类研究的18种地面车辆获取的数据库,对每辆车都能提供72个不同视角和不同方向的样本。而MIT Lincoln实验室等负责提供特种分析、提取和分类算法。现在MSTAR数据已经成为考核SAR目标识别和分类算法的标准数据库。大部分在权威杂志和会议上发表的SAR目标识别和分类算法都是采用MSTAR数据进行测试和评估。

本发明是为了通过GPU并行提高SAR图像目标识别的加速情况。PCA特征提取算法的输入都是数据集P和数据维度d,而且数据维度固定为d=64*64。本实验将会逐渐变化样本数从400增加至6400,这样不仅可以分析算法在CPU端和GPU端的加速情况,同样可以分析算法在GPU端计算时随着样本数增加的时间变化情况。实验中为了扩充数据库以达到增加样本数的要求,将人为的给照片增加100%和200%的模糊程度。

表1给出了PCA特征提取实验结果,通过计算加速比给出了PCA算法经过GPU并行实现的加速效果。

表1 PCA特征提取实验结果

附图3给出了PCA特征提取加速比折线图,由于GPU计算资源的限制,导致随着样本数的增加,加速比增加的趋势减缓。

本发明的基于GPU实现的合成孔径雷达图像目标识别方法能够有效的利用GPU的强大计算能力,且结合算法计算复杂度高的特点,极大的提高了算法执行速度。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号