一种由cpu和gpu协同工作的目标航迹初始化方法

文档序号:6538996阅读:369来源:国知局
一种由cpu和gpu协同工作的目标航迹初始化方法
【专利摘要】该发明公开了一种由CPU和GPU协同工作的目标航迹初始化方法,属于雷达与声纳【技术领域】,主要涉及目标跟踪技术中检测前跟踪技术的目标初始化,特别是使用最大似然-概率数据关联(ML-PDA)算法对目标的初始化。该方法使最大似然-概率数据关联算法主要计算工作在多线程架构的GPU中完成,具有保持与CPU同等计算精度的前提下实现实时跟踪、计算速度快、可直接应用于工程、减小CPU计算量的效果。
【专利说明】—种由CPU和GPU协同工作的目标航迹初始化方法
【技术领域】
[0001]本发明属于雷达与声纳【技术领域】,主要涉及目标跟踪技术中检测前跟踪技术的目标初始化,特别是使用最大似然-概率数据关联(ML-PDA)算法对目标的初始化。
【背景技术】
[0002]目标跟踪技术广泛应用于各领域中,特别是雷达或声纳系统。目标跟踪技术分为检测后跟踪(TAD)和检测前跟踪(TBD)两大类,相比较而言,TAD算法计算量较低,利于实时实现,但由于TAD算法依赖于前端信号处理器对目标的检测,在低信噪比(SNR)情况下跟踪性能不理想;TBD算法由于在跟踪的同时加入了目标检测,因此在低信噪比下对目标有较强的跟踪能力,但由于计算复杂导致TBD算法在工程中应用受到很多限制。
[0003]TBD算法按结构可分为两大类:批处理和迭代,批处理跟踪器直接从多帧观测数据中进行目标跟踪,由于利用了多帧观测,其效果较好,精度较高,但计算量大。迭代算法主要基于贝叶斯理论,常使用粒子滤波(PF)作为具体的实现手段。在工程应用中,目标跟踪算法实施之前需要对航迹进行初始化,以找到目标的初始状态向量,从而进一步进行跟踪,在批处理TBD算法中,目标初始化选择的是最大似然-概率数据关联(ML-PDA)算法。
[0004]ML-PDA算法的基本思路是,目标的状态向量为一未知参量,在获取多帧观测数据后可结合监测区域写出多帧数据的总对数似然比(LLR)表达式(目标函数),该表达式含未知参量,当目标函数取最大值时对应的未知参量即为目标的真实状态向量,这一过程常通过遗传搜索算法(GA)来初步优化待估计向量(此处指的是待求的目标状态),再通过DFP搜索方法(变尺度法)来进一步优化待估计向量,得到最优值。而GA算法是在目标函数中随机选取若干各点称之为种子,再计算各种子的Fitness指数(适应指数,指的是GA算法中评价各种子优良程度的指标),选出指标优良的几个种子,再在优良种子的周围随机选出若干新种子,计算新种子的Fitness指数,由此重复计算,直至通过收敛测试。由于GA算法涉及到计算数量庞大的种子的Fitness指数,在传统的单线程CPU架构处理器上运算时需要逐次计算每个种子的的Fitness指数,使得CPU的任务重、耗时长,加之CPU本身就担负着计算机其他应用的计算工作,使得GA算法计算时耗时严重,无法满足目标跟踪的实时性。

【发明内容】

[0005]本发明的目的针对传统基于CPU架构的ML-PDA在计算实时性上的不足,提出一种由CPU和GPU协同工作的目标航迹初始化方法,达到在保持与CPU同等计算精度的前提下实现实时跟踪、计算速度快、可直接应用于工程、减小CPU计算量的目的。
[0006]本发明的思路是,采用“初选”,“复选”的方式来寻求最大化LLR,从而保证ML-PDA算法精度,在初选阶段,采用对杂波数变化相对不太敏感的GA搜索展开,在GPU架构中独立计算每一种子的Fitness指数,通过多线程一次计算即可完成CPU架构中多次循环才能完成的步骤,从而获得加速比。另外,由于ML-PDA采用多帧观测来进行数据拟合,并且每帧观测往往收到多个观测数据,因此LLR表达式中存在含参数的多项式求和,在计算每一种子的Fitness指数时,CPU架构中需要进行观测总数次循环,造成极大的时间开销;在GPU架构中,考虑通过每一线程计算LLR表达式中的含参多项式,再通过多线程递归的方式进行求和,可进一步获得加速比。在对单个向量进行复选的时候,参考多线程对应多项式的方式求LLR的方式可规避掉多次循环求和,加速整个“极大似然”过程,由此实现发明目的。
[0007]本发明方法包括如下步骤:
[0008]步骤1.在CPU主机端对ML-PDA算法参数进行初始化;
[0009]步骤2.在CPU端启动LLR计算线程;
[0010]步骤3.将LLR存储矩阵cu_Seed_LLR复制到内存填充Seed_LLR,通过遍历方式寻找其最大值max (Seed_LLR)、最小值min (Seed_LLR)与均值mean (Seed_LLR),计算出Fitness指数线性算式中两个参数a、b ;
[0011]步骤4.在CPU端创建计算Fitness指数工作线程,cu_Fit_Factor=acu_Seed_LLR+b ;
[0012]步骤5.将cu_Fit_Factor拷贝到内存填充Fit_Factor,计算出种子的平均Fitness指数,并且将种子的Fitness指数基于平均数归一化;
[0013]步骤6.基于归一化后的Fitness指数选择出若干个父代种子,再依据Fitness指数复制选出的父代种子,使其总数达到Np个并对其标号,然后将该Np个父代种子随机配对,将配对结果对应的种子序号存储在向量Pair_Rec中,将每一对种子随机产生的交叉点位置存储于Corss_pos中;
[0014]步骤7.存储在CPU端的Np个父代种子状态向量与对应的种子编号存储向量Pair_Rec 拷贝至 GPU 端的 cu_Seed_01d 与 cu_Pair_Rec 中;
[0015]步骤8.在CPU端启动种子交叉线程,得到子代;
[0016]步骤9.在CPU端启动子代突变线程,在规定范围内随即改变种子数值,并将突变完成后的子代填充父代存储矩阵;
[0017]步骤10.在CPU端启动LLR计算线程,将得到的新一代种子LLR值拷贝回内存填充Seed_LLR,并且进行收敛测试;
[0018]步骤11.若收敛测试通过,GA算法完成,若不通过,回到步骤3 ;
[0019]步骤12.将通过收敛测试的父代种子复制回内存,计算种子内每一个参数的均值,得到收敛后的向量State_GA ;
[0020]步骤13.在CPU端初始化校正矩阵H,令k=l ;
[0021]步骤14.在CPU端启动梯度计算线程;
[0022]步骤15.在CPU端将cu_Grad拷贝回内存填充Grad向量,计算其方向向量;
[0023]步骤16.计算LLR值;
[0024]步骤17.在CPU端进行收敛判断,若满足,令最优参数向量为xk+1 ;若不满足,进入下一步;
[0025]步骤18.若k=|x| ,则令X1=Xw,回步骤13,否则,更新校正矩阵H,回步骤14 ;
[0026]步骤19.输出最优参数向量,释放CPU与GPU端存储空间;
[0027]步骤20.计算似然比检测值与航迹校验门限,判断航迹是否存在。
[0028]步骤I具体步骤为:
[0029]步骤Ia.初始化观测环境各项参数:频率观测方差,角度观测方差,距离观测方差,对应频率、角度和距离的观测方程,虚警概率,检测概率,杂波密度,雷达采样间隔;
[0030]步骤Ib.初始化GA算法各项参数:随机撒种数量Np,二进制编码长度,收敛判定阈值,突变概率,交叉概率;
[0031 ] 步骤Ic.初始化DFP算法收敛阈值;
[0032]步骤Id.收集观测信息,并将其存入观测矩阵Z中,将每一帧收集到的观测数量存入记录向量0bser_num中;
[0033]步骤Ie.在CPU端随机产生Np个遗传种子,每个种子含I x I个数值;
[0034]步骤If.为GA算法、DFP算法在显存中开辟中间变量存储区域,它们包括:观测存储矩阵cu_0bser、观测数量记录向量cu_0bser_num、随机父代种子存储矩阵cu_Seed_01d、子代种子存储矩阵cu_Seed_Young、对应种子LLR存储矩阵cu_Seed_LLR、计算LLR时需要用到的中间变量存储区域cu_LLR_Per_Observation_Seed、Fitness指数存储向量cu_Fit_Factor、父代配对记录向量cu_Pair_Rec、交叉点记录向量cu_Corss_pos、突变记录矩阵cu_Mut_rec、GA算法收敛结果向量cu_State_GA、梯度向量cu_Grad、校正矩阵cu_H等;
[0035]步骤Ig.在CPU端将接收到的多帧观测信息矩阵Obser与每帧观测数量0bser_num加载到内存中;
[0036]步骤Ih.在CPU端将(Ie)产生的Np个种子,(Ig)中生成的Obser与0bser_num拷贝到内存分别填充 cu_Seed_01d、cu_0bser 与 cu_0bser_num。
[0037]步骤3中参数a、b分别为:
【权利要求】
1.一种由CPU和GPU协同工作的目标航迹初始化方法一种由CPU和GPU协同工作的目标航迹初始化方法,其步骤包括: 步骤1.在CPU主机端对ML-PDA算法参数进行初始化; 步骤2.在CPU端启动LLR计算线程; 步骤3.将cu_Seed_LLR矩阵复制到内存填充Seed_LLR,通过遍历方式寻找其最大值max (Seed_LLR)、最小值 min (Seed_LLR)与均值 mean (Seed_LLR),计算出 Fitness 指数线性算式中两个参数a、b; 步骤4.在CPU端创建计算Fitness指数工作线程,cu_Fit_Factor=acu_Seed_LLR+b ;步骤5.将cu_Fit_Factor拷贝到内存填充Fit_Factor,计算出种子的平均Fitness指数,并且将种子的Fitness指数基于平均数归一化; 步骤6.基于归一化后的Fitness指数选择出若干个父代种子,再依据Fitness指数复制选出的父代种子,使其总数达到Np个并对其标号,然后将该Np个父代种子随机配对,将配对结果对应的种子序号存储在向量Pair_Rec中,将每一对种子随机产生的交叉点位置存储于 Corss_pos 中; 步骤7.存储在CPU端的Np个父代种子状态向量与对应的种子编号存储向量Pair_Rec拷贝至 GPU 端的 cu_Seed_01d 与 cu_Pair_Rec 中; 步骤8.在CPU端启动种子交叉线程,得到子代; 步骤9.在CPU端启动子代突变`线程,将突变完成后的子代填充父代存储矩阵; 步骤10.在CPU端启动LLR计算线程,将得到的新一代种子LLR值拷贝回内存填充Seed_LLR,并且进行收敛测试; 步骤11.若收敛测试通过,GA算法完成,若不通过,回到步骤3 ; 步骤12.将通过收敛测试的父代种子复制回内存,计算种子内每一个参数的均值,得到收敛后的向量State_GA ; 步骤13.在CPU端初始化校正矩阵H,令k=l ; 步骤14.在CPU端启动梯度计算线程; 步骤15.在CPU端将cu_Grad拷贝回内存填充Grad向量,计算方向向量d ; 步骤16.在CPU端通过一维搜索方法确定搜索步长; 步骤17.在CPU端进行收敛判断,若满足,令State_Final=xk+1 ;若不满足,继续; 步骤18.若k=|x| ,则令X1=Xw,回13,否则,更新校正矩阵H,回14 ; 步骤19.输出最优参数向量State_Final,释放CPU与GPU端存储空间; 步骤20.计算似然比检测值AH1ZU与航迹校验门限Tvali,判断航迹是否存在。
2.如权利要求1所述的一种由CPU和GPU协同工作的目标航迹初始化方法一种由CPU和GPU协同工作的目标航迹初始化方法,步骤I包括: 步骤Ia.初始化观测环境各项参数:频率观测方差,角度观测方差,距离观测方差,对应频率、角度和距离的观测方程,虚警概率,检测概率,杂波密度,雷达采样间隔; 步骤Ib.初始化GA算法各项参数:随机撒种数量Np,二进制编码长度,收敛判定阈值,突变概率,交叉概率; 步骤Ic.初始化DFP算法收敛阈值; 步骤Id.收集观测信息,并将其存入观测矩阵Z中,将每一帧收集到的观测数量存入记录向量Obser_num中; 步骤le.在CPU端随机产生Np个遗传种子,每个种子含I X I个数值; 步骤If.为GA算法、DFP算法在显存中开辟中间变量存储区域,它们包括:观测存储矩阵cu_Obser、观测数量记录向量cu_Obser_num、随机父代种子存储矩阵cu_Seed_01d、子代种子存储矩阵cu_Seed_Young、对应种子LLR存储矩阵cu_Seed_LLR、计算LLR时需要用到的中间变量存储区域cu_LLR_Per_Observation_Seed、Fitness指数存储向量cu_Fit_Factor、父代配对记录向量cu_Pair_Rec、交叉点记录向量cu_Corss_pos、突变记录矩阵cu_Mut_rec、GA算法收敛结果向量cu_State_GA、梯度向量cu_Grad、校正矩阵cu_H等; 步骤Ig.在CPU端将接收到的多帧观测信息矩阵Obser与每帧观测数量0bser_num加载到内存中; 步骤Ih.在CPU端将(Ie)产生的Np个种子,(Ig)中生成的Obser与0bser_num拷贝到内存分别填充 cu_Seed_01d、cu_0bser 与 cu_0bser_num。
3.如权利要求1所述的一种由CPU和GPU协同工作的目标航迹初始化方法一种由CPU和GPU协同工作的目标航迹初始化方法,步骤3中参数a、b分别为:
4.如权利要求1所述的一种由CPU和GPU协同工作的目标航迹初始化方法一种由CPU和GPU协同工作的目标航迹初始化方法,步骤16包括: 步骤16a.初始化搜索步长λ为O,设定搜索步长迭代步进λ—step为I,令xk=State_GA ; 步骤16b.在CPU端启动Xk的LLR计算线程; 步骤16c.在CPU端将得到的LLR值拷贝回内存填充LLR_xk,令LLR_xk=_LLR_xk ;
步骤 16d.令 λ = λ + λ _step, xk+1=State_GA+ λ X d ; 步骤16e.在CPU端启动xk+1的LLR计算线程; 步骤16f.在CPU端将得到的LLR值拷贝回内存填充LLR_xk+1,令LLR_xk+1=-LLR_xk+1 ; 步骤16g.在CPU端进行判定,若LLR_xk+1 ( LLR_xk,则停止,反之令LLR_xk=LLR_xk+1,回到步骤15。
5.如权利要求1所述的一种由CPU和GPU协同工作的目标航迹初始化方法一种由CPU和GPU协同工作的目标航迹初始化方法,步骤20包括: 步骤20a.将State_Final映射到量测空间,并进行量测检验,收集落入关联门限的量测,更新量测矩阵与量测数量记录向量; 步骤20b.参照步骤(2a)计算对应于State_Final的LLR值LLR_State ;

【文档编号】G06N3/12GK103871021SQ201410069204
【公开日】2014年6月18日 申请日期:2014年2月27日 优先权日:2014年2月27日
【发明者】唐续, 高林, 魏平 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1