首页> 中国专利> 基于FPGA的红外弱小目标的检测跟踪装置及方法

基于FPGA的红外弱小目标的检测跟踪装置及方法

摘要

本发明涉及FPGA数字图像处理领域,具体为一种基于FPGA的红外弱小目标的检测跟踪装置及方法。装置包括PS部分、PL部分和外设部分,PS部分运行图像输入模块、预处理模块、SMC‑PHD跟踪模块、图像输出模块以及部分PS‑PL互联模块,PL部分运行PL加速模块以及另一部分PS‑PL互联模块。本发明设计了5条并行的数据流水线,每个计算单元内部也都实现了流水线,需要处理多组数据的计算单元都完成了并行计算;采用了ARM+FPGA的异构处理器,充分发挥两者的特性;使用C/C++语言书写适合FPGA运行的算法,使用HLS工具进行编译,大大节省了开发周期和调试周期,且易于修改。

著录项

  • 公开/公告号CN113255538A

    专利类型发明专利

  • 公开/公告日2021-08-13

    原文格式PDF

  • 申请/专利权人 大连理工大学;

    申请/专利号CN202110609375.8

  • 发明设计人 郝应光;王坤;王洪玉;田静;

    申请日2021-06-01

  • 分类号G06K9/00(20060101);G06K9/62(20060101);G06F9/445(20180101);G06F9/448(20180101);

  • 代理机构21200 大连理工大学专利中心;

  • 代理人隋秀文;温福雪

  • 地址 116024 辽宁省大连市甘井子区凌工路2号

  • 入库时间 2023-06-19 12:13:22

说明书

技术领域

本发明涉及FPGA数字图像处理领域,更具体地,涉及一种基于FPGA的红外弱小目标的检测跟踪装置及方法。

背景技术

红外成像技术加持下的弱小目标检测技术,拥有抗干扰能力强,有效检测距离长,可全天候工作等优点。且已广泛应用于气象灾害预警,医学成像,辅助驾驶等方面。现今,红外目标检测系统的所需求的体积越来越小,功耗越来越低,性能越来越高。研究人员尝试使用多种平台实现了红外目标检测系统。相关工作,如“孙秀峰.基于国产多核DSP的红外弱小目标检测算法[J].数字技术与应用,2020,38(10):80-82.”文中使用高斯滤波和梯度锐化提升图像信噪比,使用DSP平台对算法进行了实现;“范鹏程,张卫国,刘万刚,张卫,黄维东,刘国栋,徐晓枫.基于嵌入式GPU的红外弱小目标检测算法[J].应用光学,2020,41(05):1089-1095”,文中使用其中基于高斯尺度空间的增强型LCM算法完成检测,并在GPU平台上对算法进行了并行化改进。上述工作使用不同检测算法和不同的平台探索了红外弱小检测的任务在小型化、可移动平台上实现的可能性。然而,DSP平台上所布置算法只能顺序执行,并不适合并行计算,在同时多帧图像的情况下,会产生显而易见的性能瓶颈,导致实时性不强。GPU平台功耗普遍较高,很难适应低功耗的需求。

发明内容

本发明所要解决的技术问题是克服红外弱小目检测算法布置在小型化、可移动平台设备时产生的功耗高、实时性不强、处理速度慢的缺点,提出一种基于FPGA的实现弱小目标检测跟踪功能的方法及装置。

为了解决上述技术问题,本发明采用以下技术方案:

一种基于FPGA(Field Programmable Gate Array)的红外弱小目标的检测跟踪装置,包括PS部分(Processing System)、PL部分(Programmable Logic)、和外设部分。PS部分运行图像输入模块、预处理模块、SMC-PHD(序贯蒙特卡罗概率假设密度滤波器)跟踪模块、图像输出模块以及部分PS-PL互联模块。PL部分运行PL加速模块以及另一部分PS-PL互联模块。PS部分的核心硬件为一块ARM架构CPU,PL部分的核心硬件为一块FPGA。

(1)所述的图像输入模块将外设部分采集、接收或储存的图像数据读入内存中,供预处理模块进行后续计算。其中,图像数据的来源不限于通过调用红外摄像头采集、通过无线网络接收数据流和通过SD卡读取已缓存的数据。

(2)所述的预处理模块对图像输入模块读取的图像数据进行LIG(LocalIntensity and Gradient)算法的预处理操作。

所述的LIG算法是一种检测红外小目标的算法,算法需要求解局部梯度图和局部强度图这两个可以表征弱小目标的特征的关键信息。对于给定的一副大小为m*n的红外图像,用total表示图像中像素的总数量,C

关于局部梯度值,将给定的红外图像以中心为坐标原点沿径向分为四个部分建立二维的极坐标系,每一部分都可以用Φ

其中,

然后计算每个区域的梯度均方G

一幅图像的局部梯度图G可表示为:

所述的LIG算法预处理过程完成了对输入图像的尺寸调整、提取图像的单通道数据、并对输入图像进行了四个方向的方向滤波。滤波操作产生四个方向的有效区域梯度图,实现了公式(2)中提取满足约束条件的梯度集合的目标。预处理模块生成的四张梯度图经由PS-PL互联模块被送入PL加速模块中进行计算。

(3)PS-PL互联模块用于PS部分与PL部分之间的数据传输以及调度控制任务;PL加速模块需要PS-PL互联模块作为桥梁才能读取内存中的数据并写回结果,同时,PS部分需要通过PS-PL互联模块控制PL加速模块的运行状态。

从硬件层面,PL部分和PS部分通过AXI(Advanced eXtensible Interface)总线协议相连接。PL部分中的DMA(Direct Memory Access)一端连接PS部分预留AXI总线接口,用于访问PS部分中的内存控制器,另一端连接PL加速模块。通过上述硬件结构,PL加速模块可以主动读写内存中的数据。

从软件层面,用户空间使用OpenCL(Open Computing Language)接口库,这是一个面向异构计算的通用接口库。OpenCL接口库底层由XRT(Xilinx Run Time)库进行实现,XRT库调用内核空间的PL部分驱动完成数据搬移、任务流程控制、硬件加速模块调用等任务。OpenCL在使用时会在内存开辟物理地址连续的共享缓存区空间,方便PL部分读写,并将缓存区地址映射到本程序的地址空间,方便PS部分进行读写操作。

(4)所述的PL加速模块使用FPGA对整个计算流程中时间占比最大的部分进行加速,即对LIG算法中求解局部梯度图和局部强度图的过程进行计算加速,并将计算结果写回内存。

PL加速模块使用HLS(High Level Synthesis)工具编译C/C++书写的代码,生成FPGA可以执行的二进制文件。代码中的每个C/C++函数都会被编译成二进制文件中的一部分,最终成为FPGA中的一个计算单元。将需要加速的算法按照计算流程、计算复杂度、FPGA硬件特点等指标切分和设计出多个C/C++函数,通过在函数中添加编译指令方法,完成如并行计算、流水线等硬件设计,这是一种高效的FPGA开发方式。

PL加速模块中一共设计28个计算单元来实现LIG算法的求解过程。各个计算单元之间使用FIFO(First Input First Output)进行链接。以5个读图单元为开始,28个计算单元依次连接,串成五条并行的数据流水线。五条数据流独立读取五张来内存中的图像数据,分别进行计算。在除法单元之后,开始将流水线数据汇总,并将结果写入内存中。在每条数据流水线上,不同计算单元之间也是并行工作的,依次处理自己所分配的任务。每个计算单元的内部依然进行了流水线设计,大大减少了单元内的循环计算之间的间隔。在部分计算单元的内部还进行了并行设计,多组数据同时计算,极大减少循环计算一次的时间。

(5)所述的SMC-PHD跟踪模块利用概率假设密度滤波器(PHD)及序列蒙特卡罗(SMC)的方法来实现弱小目标的跟踪。SMC-PHD跟踪模块直接读取PL加速模块处理完的图像数据进行跟踪,目标点的权重在跟踪过程中会进行累计,噪点会因为没有连续的权重积累而被舍弃。SMC-PHD跟踪模块运行完毕后返回目标点的坐标数据。

(6)所述的图像输出模块用于对SMC-PHD跟踪模块的结果进行显示。可以使用SSH工具对结果进行远程显示,也可以使用SD卡对结果进行保存后再查看,也可以使用DP口直接将结果在显示器上进行显示。

(7)所述的外设部分外是本装置与外界进行信息交互的桥梁。PS部分控制外设部分将外部数据传入本装置供其他模块进行计算,并将计算完成的数据通过外设模块进行输出。外设部分包括如下内容:

SD卡用于存放Linux操作系统的镜像和根文件系统、PL端配置文件、PS端所需可执行文件,备份与记录实验数据。

DP接口用于和显示器连接,供图像输出模块实实时显示实验结果。

USB3.0接口用于接收摄像头采集的数据。

网络接口可用于接收网络视频推流,也可以将数据发送出装置。

所述的PL加速模块中又有如下子单元:

1)5个读图单元。读图单元45,读图单元135,读图单元225,读图单元315,以及读图单元Imap。前四个单元后缀中的数字代表梯度方向,正如公式(2)所述的约束,Φ

2)16个用于求解区域梯度值的单元。在读图单元45,读图单元135,读图单元225,读图单元315后,分别使用FIFO依次连接4个计算单元,形成四条数据流水线。四条流水线用于分别求解四个区域的梯度均方G

“横向滑窗单元135”的功能是对一维横向的滑动窗口中的满足约束条件的梯度值的平方和进行求解,并且累加滑动窗口中满足约束条件的梯度值的数量,约束条件为公式(2)。PL加速模块进行了数据流水线设计,本单元的角度看,每从FIFO中读取一个像素值,滑动窗口移动一格,立即向下一个FIFO中输出一个计算结果。本单元对梯度值平方和的求解过程实现了并行化计算,所有平方计算过程同时进行,计算速度非常快。

“竖向滑窗单元135-1”接收来自的“横向滑窗135”计算的平方和结果,对其结果进行竖向滑窗的横向扫描,求解滑窗内数据的和,将结果输出至下一个FIFO中。

“竖向滑窗单元135-2”计算逻辑同上(即“竖向滑窗单元135-1”),但是接收数据是来自“横向滑窗135”用于计算的求和结果。

“除法单元”接收来自“竖向滑窗单元135-1”与“竖向滑窗单元135-2”的计算结果,并进行除法操作,向下一个计算单元输出结果。由于FPGA极其不擅长除法操作,顾将除法操作拿出来作为一个单独的计算模块,这样有利于提高整个数据流的运行速度,减少其他模块等待。这里使用定点小数代替浮点数进行运算,极大减少FPGA所需时钟周期。使用被除数乘除数的倒数的方法也可以减少约一半的时钟周期数。

3)1个局部梯度求解单元,接收来自四个“除法单元”的数据。使用条件判断语句求解最大值和最小值。最小值与最大值的比值如果小于指定阈值,输出0,如果大于阈值,输出四个局部梯度的和作为局部梯度图的结果,本单元求解流程如公式(4)所示。

4)1个同步单元:用于保存滑窗中心点数据。图像数据按照地址顺序扫描输入数据流中,完成一个矩形框的扫描时,滑窗中心点的数据已经使用过,所以需要同步单元备份一组中心点的数据。本单元还完成了数据流的同步工作,菱形数据流的运作过程中,模块吞吐量相差很大的情况下,FIFO可能会产生阻塞,致使整条流水线无法运作。

5)1个横向滑窗单元Imap:完成一维横向滑窗求和操作,但滑窗大小与有效数据的范围与求解局部梯度过程有区别。滑窗大小不同的原因在于公式(3)使用一个象限的数据进行求解,公式(1)求解使用整个坐标系的数据进行求解。

6)1个竖向滑窗单元Imap:实现一维竖向滑窗求和操作。单元5)6)完成了公式(1)中的求和过程。

7)1个局部强度求解单元:从同步单元取得滑窗中心点数据,从竖向滑窗单元获得矩形滑窗求和的结果。将滑窗求和结果除滑窗大小得到均值结果,使用均值减中心点的值再取平方得到局部梯度图。本单元完成了公式(1)中的求解局部强度图的任务。

8)1个乘法单元,求解局部强度图与局部梯度图的点积。

9)1个图像写出单元,负责将数据写回内存。

一种基于FPGA的红外弱小目标的检测跟踪方法,采用上述装置,步骤如下:

步骤1)在初始化阶段,首先PS部分启动Linux操作系统,检查运行环境,运行目标程序;PS部分进行OpenCL初始化,申请PL-PS共享缓存区资源,配置PL加速模块参数。

步骤2)在图像输入阶段,图像输入模块读取一组图像数据于内存中。

步骤3)在LIG预处理阶段,预处理模块对步骤2)中读取到图像数据进行尺寸调整、提取单通道数据、方向滤波等操作,将处理完的图像数据送入对应的共享缓冲区中。

步骤4)在PL硬件加速的阶段,PL加速模块通过PS-PL互联模块从对应共享缓存中读取预处理的数据,按照加速模块中设计的流程进行计算,完成弱小目标的检测部分的任务,计算完毕后将数据返回至共享缓存中,以供后续使用。

步骤5)在目标跟踪阶段,SMC-PHD跟踪模块对步骤4)返回结果进行跟踪计算,正确目标点的权重会随着跟踪过程的而累积增加,最终会被保留并输出。噪点会在最后被丢弃。

步骤6)在显示与输出阶段,使用图像输出模块对跟踪模块输出的结果进行显示或保存。

步骤7)返回步骤2)读入下一组图像数据。

与现有技术相比本发明的有益效果:

1、本发明将LIG算法的计算流程进行重新设计。从主体流程上看,本发明设计了5条并行的数据流水线;从每个计算单元看,每个计算单元内部也都实现了流水线,需要处理多组数据的计算单元都完成了并行计算,本设计很好的契合了FPGA的运算特性;ARM-A53芯片需要运行640ms的计算过程,FPGA仅需要运行0.7ms。

2、采用了ARM+FPGA的异构处理器。本发明装置充分发挥两者的特性,ARM部分负责整个程序的控制调度,以及一些简单的计算工作;FPGA部分负责算法中计算量最大,耗时最长的部分。

3、本发明使用C/C++语言书写适合FPGA运行的算法,使用HLS工具进行编译,大大节省了开发周期和调试周期,且易于修改。

附图说明

图1是本发明方法流程图。

图2是本发明装置模块图。

图3是本发明所使用PS与PL模块的互联结构框图。

图4是本发明所使用的LIG算法的FPGA实现框图。

图5(a)是本发明横向滑窗单元示意图。

图5(b)是本发明竖向滑窗单元示意图。

图5(c)是本发明滑窗结果示意图。

图5(d)是本发明二维滑窗操作示意图。

具体实施方式

下面结合技术方案和附图具体详细阐述本发明的具体实施。

本实例选用ZCU104开发套件作为实例的硬件载体。PS部分为ARM-A53型号CPU,PL部分为XCZU7EV系列FPGA。外设模块拥有USB,DP,HDMI,网口,等多种输入输出接口,还有Flash,SD等多种存储介质。PS部分、PL部分、外设及各个模块之间的关系如图2所示。

本实例按照图1所示的流程图中的步骤对红外相机下的某弱小目标进行检测与跟踪。实验结果表明,本发明极大提高红外目标检测跟踪算法的运行速度,有较好的实时性。

结合上述实例详细介绍本发明:

步骤一:装置初始化阶段完成Linux操作系统的启动工作,执行本实例程序。在实例程序启动初始阶段,PS端会完成硬件加速所需的一系列准备工作。特别的,本实例将开辟6个与PL端进行数据沟通的共享缓冲区,其中有5个负责从并行将数据搬移至PL端,1个负责将计算完的数据搬移回来。5个共享缓冲区与PL加速模块中5个读图单元一一对应。

步骤二:图像输入阶段中,图像数据通过各种方式采集并读入内存中。本实例直接从SD卡中读取红外相机拍摄的弱小目标图像。

步骤三:LIG预处理阶段,本实例首先对图像进行了填充或者裁剪处理,使图像大小一致,后续对使用大小为3*3方向滤波器对图像进行处理,产生四个方向的梯度图。将四个方向梯度图和一个单通道灰度图搬移至对应的共享缓冲区。共享缓冲区为物理地址连续的一块空间,所以搬移前需要将该地址映射至主程序所在的地址空间。

步骤四:PL硬件加速阶段中,PL加速模块通过PS-PL互联模块从对应共享缓存中读取预处理的数据,按照加速模块中设计的流程进行计算

PL-PS互联模块如图3所示,PS端通过启动OpenCL提供的接口调用PL加速核函数。在其运行过程中,核函数通过AXI-DMA控制器将共享缓冲区的数据搬运至核函数进行加速计算。

加速模块的设计流程结构如图4所示,加速模块并行处理来自全局缓存区的五张图片。每个单元每读取一个数据,在较短的周期内完成计算后,立即通过FIFO向下一个计算单元输出一组计算结果,并不会等一个计算单元计算完整张图片数据才开启下一个单元的数据计算。在本实例中LIG算法滑窗大小为10*10,图片大小为640*512。

“读图单元”按照地址顺序依次读入每一个数据,每读入一个数据就传递给“横向滑窗单元”。

“横向滑窗单元”存在一个1*10长度的队列,“横向滑窗单元”此时会计算队列中值大于0数据的平方和以及个数,并把数据传递分别给图4中“竖向滑窗单元-xxx-1”和“竖向滑窗单元-xxx-2”。当输入数据不足10个的时候,数据被判定为无效,不会进行输出。“横向滑窗单元”计算过程如图5(a)所示,深色的窗口在数据上按照箭头方向滑动,输出结果如图5(b)所示,结果为null的数据并不会被输出到下一个计算单元。执行一次横向滑动窗口求解过程只需要6个时钟周期。因为FPGA的电路特性,对滑动窗口的求解过程进行流水线处理原本需要等待6个时钟周期完成本次计算,才可以开启下一组滑窗的计算,现再只需要等待1个时钟周期就可以开启就可以开启下一次计算。一张图片的运行所需的时钟周期从6*数据量变为6+数据量-1。其余计算单元时钟周期数见表1。

“竖向滑窗单元”开辟502个且长度为9的队列,一个队列对应有效数据的一列,每读入一个数据,计算单元根据数据所在列数找到对应的队列,弹出旧数据,保存新数据。滑窗的过程如图5(b)所示,滑窗的结果如图5(c)所示,同样存在有效数据减少的情况。竖向滑窗和横向滑窗结合后的效果和图5(d)中矩形框进行滑窗的效果相同。竖向滑窗单元-xxx-1最终依次输出10*10矩形框中大于0数据的平方和。滑窗单元-xxx-2最终依次输出10*10矩形框中大于0数据的数量和。

“除法单元”中将平方和与数量和相除,这样四个除法单元会输出依次输出同一点四个方向梯度数据。

“局部梯度求解”中,找到四个方向梯度数据的最大值与最小值,当比值大于设定阈值,将此点的局部梯度数据设置为四值之和,否则为0,不认为这是一个可能的目标点,计算过程如公式(4)所示。

“横向滑窗单元Imap”与“竖向滑窗单元Imap”在计算流程上还是完成了图5中的滑窗操作,但求解目标变为所有像素值的和,并在“竖向滑窗单元Imap”的最后求解出均值。“同步单元”一直保存矩形窗中心点数据,在“局部强度求解单元”中完成公式(1)所示的局部强度值的求解操作。

在“乘法单元”中局部梯度图和局部强读图数据相乘,在“图像写出单元”中将数据写回共享缓存区。

表1各单元迭代一次所需时钟周期数

步骤五:SMC-PHD跟踪模块对步骤四处理的结进行处理,初始化2100个点,均匀分布在观测区域周围。预测步骤进行重要性采样和预测权重计算。在更新步中引入观测数据进行粒子权重的滤波更新。最后通过K-means聚类,输出可能的目标值。后续计算中,LIG算法提供可能的观测值,SMC-PHD算法持续对目标进行更新。

步骤六:在显示与输出阶段,图像显示模块将跟踪的结果通过DP口实时显示在显示器上,并返回步骤二。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号