基于FPGA的高分辨率红外目标检测技术研究

2024-02-05 01:32于子涵李凯峰黄静颖黄成章
激光与红外 2024年1期
关键词:红外滤波运算

于子涵,李凯峰,黄静颖,黄成章

(华北光电技术研究所,北京 100015)

1 引 言

自然界中的一切物体都在发射红外线,利用红外探测仪器可以通过测量目标与背景之间的红外线差,将肉眼不可见的红外热辐射转换为红外图像。由于物体的热辐射现象是自发且不间断的,所以红外图像在夜间成像方向得到广泛应用[1]。同时由于红外成像具有很强的穿透能力,也广泛应用于军事领域和民用探测领域。利用红外图像进行对空的目标探测,是红外图像应用的一个重要领域。随着红外图像分辨率的不断发展,在目标检测领域,采用高分辨率的图像能够获得更好的检测效果,但高分辨率同时也意味着数据量和运算量极大增加,基于这种现状,对目标检测算法进行硬件移植是红外目标检测工程化应用的前提。

FPGA(Field Programmable Gate Array)即现场可编程逻辑门阵列,作为专用集成电路领域的一种半定制电路,具有设计灵活、适用便捷和高兼容性等特点。在算法的硬件移植领域,FPGA因其强大的并行运算能力,获得了较为广泛的应用和发展。在一个图像处理系统中,为了提高图像处理系统的实时性,可以利用FPGA完成图像预处理工作。高分辨率红外目标检测算法采用滤波等算法操作,存在大量的并行操作,适合移植到FPGA中进行硬件加速,从而可以提高图像处理系统的运算速度。

本文基于FPGA架构,研究了实时红外图像处理技术,主要包括算法设计和硬件逻辑设计两部分的研究内容。算法设计部分进行了1280×1024红外图像的目标检测算法相关工作研究,包括中值滤波,卷积滤波,顶帽滤波,图像二值化,图像合并等算法;硬件逻辑设计部分包括串口通信协议、红外图像解析和目标检测算法的硬件移植加速等内容。

2 红外图像目标检测算法

基于红外图像的目标检测算法主要分为基于滤波的算法、基于视觉系统的算法、基于频谱残差的算法、基于稀疏表示的算法和基于块图像的算法等。考虑到高分辨率红外目标检测算法在硬件移植中的资源占用问题,本次研究主要针对基于滤波的算法进行研究。

本次红外图像目标检测算法主要包含中值滤波、卷积滤波和形态学滤波等,整体算法流程如图1所示。

图1 目标检测算法流程图

中值滤波最早由Tukey提出,是一种基于统计排序理论的噪声平滑抑制方法,属于非线性的信号处理技术[2]。中值滤波的基本运行步骤是对滤波窗口区域内的值排序取中值,利用中值将窗口中心位置的值代替。在一维的情况下,中值滤波是一个含有奇数个像素的窗口,处理后,将窗口正中的像素灰度值用窗口内像素灰度值的中值来代替,算法实现示意图如图2所示。

图2 中值滤波示意图

由于中值滤波运算过程简单,运算速度快,且对叠加噪声具有较好的滤除效果,中值滤波被广泛应用于二维数字图像处理方面。中值滤波在处理噪声时可以较好地保护图像的细节信息,适用于处理线性滤波无法处理的数字图像处理领域。

卷积是一种运算方法,卷积滤波是利用卷积核和卷积运算的原理构成图像滤波器,对图像进行特征提取的操作。卷积滤波的处理过程就是图像对应位置的像素和卷积核模板对应位置参数乘积求和,如图3所示。不同卷积核模板对图像的特征提取效果不同,常见的卷积滤波核可以实现高斯平滑、图像锐化和边缘提取等功能。本次研究为了提取天空背景下的目标,采取图像锐化的相关卷积核进行处理,强化目标与背景之间的差异,进一步突出目标位置。

图3 卷积滤波示意图

形态学滤波是基于数学形态学思想的一种非线性滤波方法。数学形态学的基本思想[3]是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的效果。形态滤波基于图像的几何特征[4],用预先定义好的模板对图像进行匹配,提取图像信息、抑制噪声,解决图像滤波时物体边缘信息丢失问题。数学形态学是由一组形态学的代数运算子组成,它的基本运算主要有4个:膨胀、腐蚀、开运算和闭运算[5]。形态学滤波的处理性能极大取决于运算模板和形态学运算类型的选择,本次图像预处理采用膨胀运算、腐蚀运算和开运算来对红外图像进行处理,具体处理流程如图4所示。

图4 形态学滤波示意图

形态学基本运算:

(1)膨胀

用模板b对输入图像f进行灰度膨胀,其定义为:

(f⊕b)(s,t)=max{f(s-x,t-y)+b(x,y)|(s-x),(t-y)∈Dy和(x,y)∈Db}

(1)

其中,Dy和Db分别是f和b的定义域。

(2)腐蚀

用模板b对输入图像f进行灰度腐蚀,其定义为:

(f⊖b)(s,t)=min{f(s+x,t+y)-

b(x,y)|(s+x),(t+y)∈Dy和(x,y)∈Db}

(2)

其中,Dy和Db分别是f和b的定义域。

(3)开运算和闭运算

用模板b对图像f进行开运算记为:

f∘b=(f∘b)⊕b

(3)

用模板b对图像f进行闭运算记为:

f·b=(f⊕b)⊖b

(4)

开启和闭合相对于函数的补和映射是对偶的,对偶关系可写为:

(f·b)c=fc

(5)

3 基于FPGA的目标检测算法设计实现

对高分辨率的红外目标检测的工程化应用采用FPGA的形式来实现。整体硬件平台包含前端接口板和信号处理板两块FPGA,整体系统架构如图5所示。前端接口板主要用来接收红外成像设备采集到的红外图像,并且按照固定格式打包生成数据包,最后将打包好的图像数据通过串口通信协议传输到信号处理板卡。利用两个板卡,模仿真实的相机拍摄视频传输场景。由于数据在传输中以数据流的形式存在,两块板卡间需要实现高速通信,来保证系统的实时性,所以采用SRIO串口通信协议对数据进行传输。

图5 红外图像目标检测硬件系统架构示意图

SRIO(Serial Rapid I/O)是种面向嵌入式系统开发提出的一种高速互联技术,是面向串行数据的串行Rapid I/O接口协议[6]。SRIO包含三层协议,即逻辑层缓冲层和物理层,支持多类事务。此次研究采用SRIO接口进行数据接收,SRIO传输链路以数据包的形式传输数据,为了提高SRIO链路数据包的传输效率,在数据发送过程中采用包头信息较短的SWRITE事务,设置其有效字节为256B bit,在传输过程中,需要为每个包设置特定的包头标志和数据长度,确保红外视频数据以行为单位进行连续发送。在每一帧图像的起始设置帧头标志位,确保数据解析的起始位置正确。图5为红外图像目标检测硬件系统架构示意图。

信号处理板卡是高分辨率的红外目标检测的主要实现平台,首先对传输来的数据包进行解析和时序恢复,然后对恢复好的图像数据进行目标检测算法处理。信号处理板卡接收到的图像数据是以数据包的形式传输的,为了方便后续图像处理工作,需对图像数据包进行解析,将数据包恢复为数据流的形式。通过SRIO接口接收到图像数据包,利用帧头标志位为关键字进行图像解析。本次研究中一幅图像的大小为1280×1024,在解析图像模块的构造时,采用有限状态机的方法对数据包解析逻辑进行搭建,设置包头和帧头解析条件,利用有限状态机的状态跳转,完成工作模式的切换,解析图像数据。同时,由于前端传输来的数据包存在每行数据间隔时间不等的现象,为了保证后续算法数据对图像数据的运算逻辑正常运行和整体系统帧频的稳定,在逻辑构造时采用过一级FIFO的方法,为数据设置固定的时间间隔,从而将原始图像数据包恢复为稳定的图像数据流。在相关FIFO的编写中,也通过有限状态机实现对FIFO读写的控制,通过状态机内部计数完成状态跳变和图像延迟读取功能,具体实现方法如图6所示。

图6 图像解析模块示意图

本次红外图像预处理研究中算法的第一步就是中值滤波。中值滤波需要实现一个3×3的窗口在图像上进行滑动的效果,在硬件逻辑实现中,首先利用移位寄存器将图像数据的前两行进行寄存,在下一行数据到来的时候,保证三行数据对齐,模拟窗口对图像数据进行比较运算,得出窗口内数据的中值。移位寄存器的移位操作可以等同于中值滤波中窗口的滑动操作,通过这样的方式,FPGA可以同时并行计算图像数据中三行的数据结果,同时产生的输出结果也以流水的形式输入后续模块。

对于高分辨率的红外图像进行处理,需要的移位寄存器数量较多,为避免在数据缓存时因为移位寄存器的使能信号而产生时序问题,需要对使能信号进行数据复制的操作。在整体目标检测算法的流程中,中值滤波计算出的结果需要驱动卷积滤波和形态学滤波两个算法模块,为了避免因为同一信号驱动模块数量过多,导致高扇出的时序问题,在FPGA逻辑设计中添加了数据复制模块,在模块内部对中值滤波输出的数据进行复制,分别对后续模块进行驱动,保证整体算法逻辑在FPGA中不发生高扇出问题。

对中值滤波后的图像同时进行卷积滤波和形态学滤波。在卷积滤波中,采用与中值滤波相似的方法,采用移位寄存器对数据进行寄存,需要缓存前几行行数据,与输入的最后一行数据对齐后,利用对应的卷积模板对数据进行卷积滤波。卷积滤波需要对数据进行乘加操作,在算法的硬件设计时,将所有乘法操作并行处理,对乘法结果的加法操作进行正负模板分开并行处理,采用三级流水线的方法,计算卷积滤波最后的结果,图7为滤波算法硬件移植示意图。

图7 滤波算法硬件移植示意图

在形态学滤波中,首先对数据进行膨胀操作,然后对数据进行腐蚀,后续进行二次膨胀和开运算。在形态学滤波中也采用与卷积滤波相似的方式,利用寄存器对数据进行寄存对齐,再通过对应的模板进行相应的滤波操作,最后获得形态学滤波的结果。

在图像经过卷积滤波和形态学滤波后,利用设置好的阈值对处理好的图像进行二值化操作。后续需要对卷积二值化和形态滤波二值化的图像进行合并,由于两个滤波算法在FPGA中的计算存在不同的延时,通过利用移位寄存器将数据对齐,将对应位置进行与操作,对数据进行合并,合并后的图像在视觉上对目标物体的位置呈现高亮显示。同时将对应位置的坐标存入RAM中,方便后续对目标进行识别跟踪等处理。

在FPGA的整体设计中,为了实现图像的实时运算,在所有算法的设计阶段,全部采用数据流水的形式进行传输和运算,保证在同一时刻,FPGA并行处理所有算法模块的数据和计算,充分利用FPGA并行运算的优势,对高分辨率红外目标检测算法实现硬件加速,实验结果证明了这种设计方法可以实现1280×1024红外图像的实时目标检测运算,具有较大的工程化应用前景。

4 实验结果

在整体预处理算法仿真阶段,采用MATLAB平台进行仿真实验。MATLAB是一款强大的数学软件,广泛用于数据分析、无线通信、深度学习、图像处理和计算机视觉等领域。MATLAB将矩阵计算、科学数据可视化以及建模和仿真等许多功能集成在一个视窗环境中,为算法设计提供了一种全面的解决方案,在很大程度上摆脱了传统非交互的编辑方法。本次算法实验采用MATLAB2017a进行算法仿真运行,运行平台为Windows7,电脑处理器为intel core i7-6700。经过统计,预处理算法对一幅红外图像进行处理,需要时间为3.752993 s。

本次研究采用的FPGA开发板芯片为xc7vx690,在硬件开发板卡中,预处理算法对一幅红外图像进行处理需要的时间为22 ms,符合红外图像处理算法的实时性要求,与MATLAB平台的处理速度进行对比,大幅提升了红外图像目标检测的速度。在FPGA设计中,各个模块采用流水的方式进行运算,首先经过逻辑仿真对硬件逻辑进行验证,验证通过后,开展FPGA板卡的硬件验证工作,目标检测算法相关信号的波形如图8所示,包含图像数据、中值滤波、卷积滤波、形态学滤波和图像融合的运算结果,目标检测算法在FPGA硬件上占用的资源如图9所示。

图8 硬件运算示意图

图9 硬件占用资源示意图

利用实验室环境模拟空中目标,对高分辨率红外目标检测算法进行验证。通过对比FPGA处理后的图像数据与MATLAB处理后的图像数据,对目标检测算法的硬件移植进行评价。对比结果如图10,其中(a)是MATLAB处理的图像结果,(b)是将FPGA处理结果保存进行绘图得出的图像,对比结果完全一致。证明本次高分辨率红外目标检测算法在FPGA上的算法硬件移植工作完成度较高,能够达到工程化应用的水平。

图10 实验结果示意图

5 结 论

本文基于FPGA实现高分辨率红外目标检测算法,并利用硬件运算的并行特性,使目标检测算法在实际运算时具备实时性的条件,极大提升工程应用的前景。通过设计流水的运算方式,使FPGA中各个图像处理模块能够并行运算,利用像素点计数对图像数据进行对齐和重构。实验证明,本次研究不仅能够很好的完成高分辨率红外目标检测的工作,并且可以利用FPGA并行运算的特性,对算法进行硬件移植,使目标检测系统具备实时性,对于在FPGA方面的学习和研究具有较大的参考意义。

猜你喜欢
红外滤波运算
网红外卖
重视运算与推理,解决数列求和题
闪亮的中国红外『芯』
有趣的运算
TS系列红外传感器在嵌入式控制系统中的应用
“整式的乘法与因式分解”知识归纳
拨云去“误”学乘除运算
基于快速递推模糊2-划分熵图割的红外图像分割
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波