APP下载

基于DSP的海上红外小目标检测系统设计

2023-02-19雷,张晔,胡

现代电子技术 2023年4期
关键词:红外天线模块

李 雷,张 晔,胡 楷

(中科芯集成电路有限公司,江苏 无锡 214035)

0 引 言

海上争端日益频繁,搭载红外探测器的光电设备以隐蔽性好、抗干扰性强、环境适应性好的特点,得到广泛的应用。图像处理是光电系统中的关键技术,实际使用中需要尽可能远距离发现目标,良好的目标检测性能对于整个光电系统极为重要。

目标检测是一个热门的研究课题,许多学者对目标检测进行了研究。吕璐等人对深度学习的目标检测研究进行了综述分析,指出基于深度学习的目标检测算法对小目标的检测效果不太理想,且耗时较长,不利于实时系统的应用[1]。丁荣莉等人对舰船检测算法做了总结和归纳,指出了检测算法的适用性和优缺点[2]。相比遥感图像的舰船目标检测,海上目标有一个显著的特点,即它存在于天空与海洋交汇处[3]。利用海上目标的这一特点,胡耀辉等人提出了一种基于海天线的弱小目标检测方法[4],但此方法不利于工程实现。

随着数字信号处理器(DSP)技术的飞速发展,DSP以强大的计算能力和较小的体积受到越来越广泛的应用[5-6]。结合DSP的硬件特征,围绕DSP处理器搭建一套符合技术要求的光电系统已成为主流架构[7]。

针对海上红外小目标实时检测的需求,本文以飞腾M6678 DSP为核心处理器,设计一种海上红外小目标检测系统,结合DSP的硬件特征和算法原理,设计多核处理架构,多核分别实现海天线检测功能和小目标检测功能,通过主程序的调度实现检测功能的并行处理。同时,借助DSP开发环境CCS(Code Composer Studio)对海天线检测算法软件和小目标检测算法软件进行优化,最终实现满足实时性要求的海上红外小目标检测系统,并进行验证。

1 硬件平台设计

基于Xilinx的K7现场可编程逻辑门阵列(FPGA)和银河飞腾的M6678 DSP处理器搭建硬件处理平台。平台通过FPGA的Camera Link接口采集红外相机图像,通过DSP串口接收控制指令,发送检测结果和状态信息。平台内部通过4X@3.125 Gb/s的SRIO链路实现FPGA与DSP之间的图像高速传输,通过EMIF接口实现DSP与FPGA之间的控制命令交互,通过GPIO接口产生中断。硬件框图如图1所示。

图1 硬件平台框图

M6678是一款高性能国产DSP,单片DSP含有8颗M66x DSP内核(称为M66x CorePac),每颗内核工作主频均为1 GHz;定点运算性能高达32 GMAC/s,浮点运算性能高达16 GFlops;每颗内核还包含32 KB L1P、32 KB L1D和512 KB L2 SRAM,8核共享4 MB共享内存。M6678具有PCIe、SRIO、GbE等高速接口,能够广泛应用于通信、图像和雷达等信号处理领域。

2 软件设计

嵌入式软件是系统的一个重要组成部分,良好的可靠性设计决定整个系统的稳定性。嵌入式软件设计时,需要将各功能分解并进行模块化设计,保证各模块间的相互独立,通过主程序的调度将各功能串联。同时,还应结合处理器的特征对架构精简设计,降低各处理器核的软件负载,保证系统的实时性。

2.1 功能设计

根据系统需求,对软件功能进行模块化分解,分为硬件驱动模块、通信协议模块、状态管理模块、海天线检测模块、红外小目标检测模块和远程升级模块。主程序实现对各功能模块的调用。

1)硬件驱动:硬件驱动实现DSP处理器内核初始化和接口初始化,如PLL、SRIO、EMIF、UART、GPIO、EDMA、IPC等。

2)通信协议:接收外部控制命令并解析,返回检测结果及状态信息等。

3)状态管理:对系统运行状态进行监测,对异常情况进行上报,如图像接收异常等。

4)海天线检测:是系统实现红外小目标检测的关键步骤,根据FPGA传入的图像对海天线进行检测,输出海天线位置信息。

5)红外小目标检测:是系统实现红外小目标检测的关键步骤,根据FPGA传入的图像,结合海天线检测输出的位置信息,对海天线附近目标进行检测,输出小目标的位置信息。

6)远程升级:通过DSP的串口实现DSP程序的远程升级,减少设备拆机次数,实现在线升级功能。

主程序通过将上一模块的输出传递至下一模块的输入,减少各模块间的耦合,避免各模块运行间的资源冲突。模块间的相互独立和主程序的调度使得软件程序更加简洁明了,便于软件程序的更新及维护。

2.2 架构设计

海天线检测和红外小目标检测是系统实现海上红外小目标检测的两个核心模块,DSP串行处理两个检测模块的时间较长,结合M6678的硬件特征,将海天线检测模块和小目标检测模块分别在DSP的两颗内核上独立运行,通过主程序实现检测功能调度。如图2所示,核1实现海天线检测功能,核2实现小目标检测功能,双核采用流水并行处理架构。

图2 DSP双核流水示意图

DSP的应用程序可以在SYS/BIOS[8]下运行,也可以在裸系统下运行。基于SYS/BIOS操作系统运行应用程序,所占用资源较多,调度开销较大。基于SYS/BIOS的软件架构适合多任务多线程的系统。

本文基于功能模块化进行设计,各从核程序功能结构单一,主核程序以串行处理为主,因此DSP以裸系统方式运行应用程序。相比SYS/BIOS操作系统的方式,裸系统所占用资源少,核间通信所需时间开销更小。

2.3 软件流程设计

算法是实现海上红外小目标检测的核心,基于算法原理及处理步骤设计软件流程。核0完成硬件资源、接口驱动初始化,接收来自FPGA的图像,解析串口命令,调度核1及核2分别实现海天线检测和小目标检测功能。核0与核1、核2之间调度通过IPC核间通信实现。

核间通信是实现多核程序运行的重要环节。M6678 DSP由核间中断触发通信后,配置相应的寄存器,以完成通信。

核0向核1发送IPC_core0中断,同时传递图像存放地址和图像大小信息,启动核1进行海天线检测,核1提取出海天线位置信息,通过IPC_core1中断通知核0。核0根据海天线位置计算目标潜在区域,向核2发送IPC_core0中断,将待检测区域图像信息发送给核2并启动核2进行小目标检测,核2完成小目标检测后,通过IPC_core2中断通知核0。核0接收到小目标信息后,根据筛选规则进行目标上报。软件处理流程如图3所示。

图3 软件处理流程

2.4 关键算法软件实现

利用C语言,结合DSP运算的特征及算法原理实现海天线检测和红外小目标检测功能,并针对其中计算复杂度较高的步骤进行优化设计。

2.4.1 Canny检测实现及优化

1)Canny检测[9]的基本原理是通过查找图像梯度的局部最大值来得到边缘信息,通过高斯滤波去噪对图像进行预处理。高斯滤波器核的产生可根据算法原理的公式得到,如下:

本文设计时,利用常量表代替高斯滤波器核系数实时计算,减少函数运行时间。

2)按照常规双层for循环设计5×5的高斯滤波程序。由于DSP编译器无法对外层循环进行优化处理,导致DSP的指令流水并行度不高。而充分利用软件流水方式能极大提高程序运行效率,因此,本文优化设计时,将5×5滤波程序的双层for循环展开为单层for循环。即将:

for(i=0;i<5;i++){

for(j=0;j<5;j++){

}}

优化为for(i=0;i<25;i++){}。

3)计算当前像素点的梯度及方向,常规流程按照逐像素点计算,即算出每个像素点梯度强度的幅值和梯度的方向。

DSP只有加法器和乘法器,平方根、除法、三角函数等计算需要调用库函数来实现,但频繁调用函数会打断DSP的指令流水,增加程序运行耗时。针对此问题,本文对算法处理过程进行优化设计,即每个算法步骤将所有点计算完成,将结果缓存并送至下一算法步骤。优化计算过程如图4所示。

图4 优化计算过程

平方根、除法和反正切函数可以调用相应的矢量运算库函数sqrtsp_v()、divsp_v()、atansp_v(),库函数在计算时对指令进行并行处理,增加单个时钟周期计算量,大大提高了计算速度。

2.4.2 Hough变换实现及优化

1)对于xOy平面,通过平面上任意一点xi yi的直线有无数条,并且可表示为yi=axi+b,经过极坐标公式转换后,公式如下:

海天线是通过Hough直线检测[10]特征最明显的直线,因此只要获取ρθ参数空间累加最大值的ρmaxθmax,就可通过式(2)反运算得到拟合的海天线直线。

查找参数空间累加最大值的ρmaxθmax,需要计算每个像素点在每个角度的正弦值和余弦值,DSP的三角函数计算需要调用加法指令、乘法指令实现,调用一次三角函数耗时约为180 ns,大量的三角函数计算会导致DSP运算耗时增加。

为减少函数运行耗时,根据海天线角度范围和精度,采用查找表的方式代替三角函数实时计算,即提前计算出1°~180°,每次角度增量为1°的正弦值和余弦值,然后分别存放在常量表中。当调用三角函数计算时,只需查找对应角度的常量值,如计算50°的正弦值时,只需查找SIN_TABLE[50]的值即可。采用这种方式计算可以减小计算复杂度,同时查找表的指令还可与其他指令并行,减少程序耗时。

2)Hough检测器进行累加值计算时,需要完成检测计数器清零操作。由于计数器模板较大,清零操作会增加DSP软件运行耗时,故本文结合DSP硬件特征,设计软硬件并行的方式实现计数器清零操作。

DSP通过调用DMA控制器[11]实现数据搬移,此操作不占用DSP软核的资源,因此在每帧Canny检测开始之前,先启动DMA,通过DMA将一块数值全为0的空间数据搬移至计数器空间,实现计数器清零的操作,同时对DSP内核进行Canny检测处理。在Hough变换前,通过查看DMA状态寄存器确认DMA搬移是否完成。

通过此方法实现软硬件的并行处理,能够减少DSP的软件负载,从而提高系统运行速度。

2.4.3 红外小目标检测实现

系统的主要目的是进行红外小目标检测[12],既要满足检测性能需求,同时也要满足实时性要求。传统方法采用全图检测,此方法计算量大同时也存在虚检。

由海上红外小目标特点可知,小目标存在于海天线附近,根据海天线的位置即可确定目标潜在区域。在潜在区域检测通过new Top-hat[13]的检测方法完成红外小目标检测,既可减少检测程序运行时间,同时还能减少虚检。

本文除使用上述方法外,还采用其他优化方法,如CCS编译器优化、内联函数、#pragma预编译指令、restrict关键字等,通过优化提高DSP的运行效率。

3 实验结果分析

通过CCS的Load Memory功能将图像数据导入DSP的DDR空间,图像尺寸为640×512像素。通过CCS Image Analyzer分析工具查看最后检测结果。通过统计程序运行前后的DSP时钟周期,计算程序运行耗时。本文选取了两种不同的场景进行海上红外小目标检测的实验,验证目标检测准确性的同时也对程序优化前后耗时进行对比。

场景一:海天线为水平的一条直线,2个目标在海天线上方,如图5a)所示。

从核收到图像后,对图像进行海天线检测,提取海天线;主核收到从核的海天线检测结果,更新目标检测区域,在原始图像上对海上小目标进行检测,检出目标如图5a)白色小框所示。

场景二:海天线为倾斜的一条直线,2个目标在海天线上方,如图5b)所示。

从核收到图像后,对图像进行海天线检测,提取海天线;主核收到从核的海天线检测结果,更新目标检测区域,在原始图像上对海上小目标进行检测,检出目标如图5b)白色小框所示。

图5 实验结果

两种场景优化前后的耗时统计如表1所示。

由表1实验结果可知,系统经过优化后均能检出小目标,同时耗时均在25 ms以内,满足实时检测的需求。

表1 优化前后运行时间对比表 ms

4 结 语

本文以M6678 DSP为核心处理器,设计一种可满足实时性要求的海上红外小目标检测系统。根据检测算法原理,结合DSP内核架构的特点,对系统软件进行优化设计。实验结果表明,在满足检测海上红外小目标的条件下,本文系统DSP运行耗时小于25 ms,达到40 Hz处理能力,满足实时性的需求。同时,多核架构的设计和软件优化方法也为图像处理算法DSP的实现提供了参考。

猜你喜欢

红外天线模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
网红外卖
闪亮的中国红外『芯』
TS系列红外传感器在嵌入式控制系统中的应用
ETC相控阵天线与普通天线应用对比分析
基于快速递推模糊2-划分熵图割的红外图像分割
ALLESS转动天线射频旋转维护与改造
理论宣讲要上接天线、下接地气
弹载北斗抗干扰天线系统分析与设计