复杂动背景下的“低小慢”目标检测技术
2019-09-02吴言枫王延杰孙海江刘培勋
吴言枫,王延杰,孙海江*,刘培勋
(1.中国科学院 长春光学精密机械与物理研究所,吉林 长春 130033;2.中国科学院大学 材料科学与光电技术学院,北京 100049)
1 引 言
“低小慢”目标是指在超低空(5~100 m)或低空(100~2 000 m)飞行、飞行速度小于200 km/h、且不易被发现的小型航空器或空中漂浮物。以无人机为代表,因其购买渠道多样、制造成本低、操作方便,敌对势力可能通过无人机携带微型相机或炸药对重要区域造成威胁,检测“低小慢”目标已成为维护空防安全的重点课题。“低小慢”目标在远距离时呈现小目标特性,在图像上所占像素较少(仅占几个或十几个像素),缺乏背景先验信息和检测过程中很重要的纹理特征,所以传统的检测手段难以满足检测要求。
为了准确检测到此类目标,各国学者已经进行了大量研究,并提出了多种算法。Jing Hu等人利用基于循环掩膜的非局部均值滤波建立背景估计模型,通过将图像的灰度分布和时间信息联系起来,实现红外点目标检测[1]。Weiping Yang等人将二维中值滤波简化为一维中值滤波,进行背景消除,剔除虚假目标[2]。邓鹤等人通过图像的局部熵(Local Entropy,LE)和一维经验模态分解(Empirical Mode Decomposition,EMD)实现小目标检测[3]。Sungho Kim应用Laplacian尺度空间理论寻找最佳尺度中的全局最大值,并通过Tune-Max估算目标的位置和尺度,应用Hessian矩阵剔除了虚假目标[4]。E.Abdelkawy等人使用二维高斯函数构建字典,提出了2D-FOS二维正交搜索算法,算法的时间复杂度主要取决于字典中的候选目标数量和图像尺寸,该算法与其他正交方法相比,计算时间明显减少[5]。Sungho Kim等人提出了区域自适应滤波器,滤波器使用几何分析进行区域分割,同时采用了空间一致性滤波器剔除虚假目标[6]。解婷等人提出基于同组过滤器(Peer Group Filter,PGF)、二维经验模式分解(Bidimensional Empirical Mode Decomposition,BEMD)和局部逆熵(Local Inverse Entropy,LTE)的新型红外小目标检测算法,其中PGF被用来消除噪声,BEMD可以有效地估计背景并将背景从原始图像中移除,LTE可以实现有效分割,得到目标[7]。
通常“低小慢”目标的检测方法可以分为两大类:一类是对于单帧图像进行目标检测。这一类方法使用滤波算法来剔除复杂背景和估计前景目标。形态学Top-Hat变换[8]、高通滤波[9]和匹配滤波[10]等算法均可以实现目标的实时检测,但在低信噪比条件下准确率不高。二维熵[11]、小波变换[12-14]、偏微分方程(Partial Differential Equations,PDE)[15]和概率主成分分析矩阵[16](Principal Component Analysis,PCA)等方法的检测准确率较高,但无法实现实时检测。另一类方法是基于多帧图像检测目标。该类方法需要通过帧间上下文信息来实现目标检测[17-19],如粒子滤波[20]、移动式加权管道滤波[21-22]和似然比检验[23]等方法。这类算法准确率很高,但无法在目标隐匿于背景或噪声的情况下进行有效检测。
本文分析了低空慢速小目标的灰度特性,采用局部对比度直方图生成视觉显著性图像,使用形态学梯度和三帧差分算法去除复杂天空背景得到种子点,并通过扫描线填充算法生长出目标。最后提出自适应双高斯算法分割出前景,并根据候选目标的面积占比变化、质心距离变化、宽高比差异来剔除虚假目标,完成检测。
2 感兴趣区域获取
2.1 视觉显著性模型
人眼视觉显著性是人类感知系统对视觉信号的响应。根据心理学研究,视觉信号具有独特性、稀缺性以及奇异性,视觉系统更容易获取图像中的颜色、纹理、形状、亮度等高对比度特征。对比度根据位置划分可以分成全局对比和区域对比两种。图像的全局对比倾向于将目标和周围环境分离,而图像的区域对比主要受目标和周围区域影响,相距很远的区域所起的作用较小。图1(a)是可见光相机拍摄的低空慢速小目标的原始图像,图1(b)反应了目标和周围区域的灰度分布情况,图1(c)显示了原始图像的三维能量分布情况。通过观察可以发现,低空慢速小目标所占像素较少且缺乏纹理信息。在复杂的天空背景中,干扰因素主要以噪声、云层、部分的地面场景和光照变化为主。在此情况下,目标和背景的灰度值存在明显差异,目标与相邻区域的对比度同样会存在明显差异,所以“低小慢”目标具有较为明显的颜色统计特征。因此,本文决定依据图像的颜色全局对比[24]来提取图像的视觉显著性图像。
图1 “低小慢”目标的特征分析图像 Fig.1 Feature analysis of the LSS-target image
图像中像素的显著性特征值可以用其与图像中其他像素点的颜色对比度来定义:
(1)
C(Ip,Iq)=‖Ip-Iq‖ ,
(2)
其中:I表示原始图像,Ip、Iq表示图像中的任意像素,取值范围是[0,255],Sal(Ip) 为该像素的显著性值,C(Ip,Iq) 为每个像素的显著性特征值与图像中其他所有像素的欧式距离总和,‖·‖为颜色距离度量。公式(1)展开后的形式如下:
Sal(Ip)=C(Ip,I1)+C(Ip,I2)+…C(Ip,IN) ,
(3)
其中:N为图像中的像素总数量。如果进行上述计算,时间复杂度会很高,为了提高算法的实时性,通过直方图对像素按照颜色特征值归类,在此定义下,相同颜色的像素点具有相同的显著性值,特征值的计算即可简化为如下形式[25]:
(4)
其中:fn为特征值的出现频率。图2(a)表示的是原始图像的颜色直方图,图2(b)表示的是不同颜色对应的显著性值。图2(c)表示了视觉显著性图。
图2 视觉显著性结果 Fig.2 Visual saliency results
2.2 梯度差分算法
为了在视觉显著性特征图中找到种子点,本文将形态学基本梯度[26]与三帧差分算法[27]进行了融合,提出了梯度差分算法。首先,利用参考点位于中心的3×3正方形掩模分别提取相邻且连续的视觉显著性图像的基本形态学梯度特征。然后对提取到的特征进行三帧差分,从而获得种子点。算法原理如图3所示。
图3 梯度差分算法原理图 Fig.3 Schematic diagram of gradient difference algorithm
2.2.1 数学形态学梯度
数学形态学[28]是一种基于形状的图像处理操作,包含膨胀、腐蚀、二值开闭、形态学梯度、Top-Hat变换等多种形态学的代数运算子。计算图像的形态学梯度是几种重要的形态学操作之一,该方法适用于图像的特征抽取,由形态学最基本的膨胀和腐蚀两种基础操作适当的组合实现。
膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。用结构元素和原图像做卷积,计算结构元素所覆盖区域的最大值,并赋值给参考点指定像素的过程。其数学表达式如下:
(5)
其中:X为原始图像,Y为结构算子,E为掩膜。
腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。其用结构元素和原图像做卷积,计算结构元素所覆盖区域的最小值,并赋值给参考点指定像素。
其数学表达式如下:
X·Y={E|((Y)E⊆X)} .
(6)
常见的形态学梯度包含基本梯度、内部梯度、外部梯度、方向梯度4种。内部梯度是原图像与腐蚀后图像的差值图像;外部梯度是膨胀后图像与原图像的差值图像;方向梯度是使用水平方向与竖直方向的直线作为结构元素得到的,水平方向与竖直方向的结构元素分别为膨胀图像与腐蚀图像的差值图像;基本梯度是膨胀后图像与腐蚀后图像的差值图像。
为了获取更多种子点,本文使用基本形态学梯度进行计算,其数学表达式如下:
dst=X⊕Y-X·Y.
(7)
2.2.2 差分算法
帧间差分算法[29]是通过对视频图像序列的连续两帧图像做差分运算获取运动区域的算法。相邻两帧图像之间的差别即为对应位置像素值差的绝对值。其数学公式描述如下:
B(x,y)=|An+1(x,y)-An(x,y)} ,
(8)
(9)
其中:B(x,y)表示相邻两帧图像的差分结果,D(x,y)表示差分算法的分割结果,P为经验阈值。
使用帧间差分算法进行检测时,会产生“空洞”和“鬼影”现象,且无法识别静止或运动速度很慢的目标,故不能作为“低小慢”目标检测的有效手段。三帧差分算法在两帧差分算法的基础上进行了改进,算法将相邻三帧图像并为一组进行差分,能够准确检测到运动目标之中的像素点,可以作为提取种子点的有效手段。其数学公式描述如下:
(10)
(11)
(12)
其中:W(n+1,n)和W(n,n-1)表示相邻两帧图像的分割结果,Diff(x,y)表示三帧差分算法的分割结果,Q为经验阈值。
图4 梯度差分结果 Fig.4 Gradient difference results
梯度差分的效果如图4所示,从实验效果可以看出,基于局部对比度的显著性特征图像在经过形态学基本梯度运算后,相当于第二次过滤了图像的显著性前景特征,由此再进行差分算法,得到的种子点更为精确,且种子点所在区域与实际前景区域基本稳合。梯度差分算法可以自动获得具有明显区域性的种子点,且基于强灰度特征差分后得到的种子点具有较好的可控生长门限,可以避免生长过后分割成过多区域这一情况的出现。
3 “低小慢”目标检测
3.1 基于扫描线填充的区域生长
区域生长[30]是指将成组的像素或区域发展成为更大区域的过程。该过程从图像内部的指定像素点(种子点)开始,由此出发找到所有具有相似属性的像素点并合并到此区域。首先检测种子点的颜色,若其与边界像素点和指定填充色均不相同,则用填充色填充该点。然后检测相邻像素点,重复以上判定,直到检测完图像中的所有像素点为止。从当前点检测相邻像素的传统方法有两种:一种为四向搜索,是指从四连通区域寻找下一个像素;另一种为八向搜索,是指从八连通区域寻找下一个像素。区域生长是一个迭代的过程,这里每个种子像素点都迭代生长,直到处理过每个像素。
传统的区域生长算法[31]虽然能提供良好的边界信息和分割结果,但是迭代过程导致了算法时间复杂度较高,实时性不好。本文改进的基于扫描线填充的区域生长算法采用的是一种避免递归,提高效率的思想。该算法不再采用递归方式处理图像的四邻域区域和八邻域区域,而是沿水平方向分行扫描并填充像素段,以分段形式处理相邻的像素点。
算法流程(图5)如下:
(1)初始化一个空的堆栈用于存放梯度差分算法得到的种子点,并将种子点压入堆栈。
图5 扫描线填充算法流程图 Fig.5 Flow chart of scan line filling algorithm
(2)记录种子点的颜色属性,然后沿种子点所在扫描线分别沿左、右两个方向进行生长,判断符合要求的像素段并进行填充,直到扫描至图像边界为止。判定公式如下:
(13)
其中,PR、PG和PB分别表示所扫描像素在R、G、B通道的灰度值。βR、βG和βB分别表示该行种子点在R、G、B通道像素的灰度值。τR、τG和τB为判定阈值。
(3)记下填充后扫描区段的起始坐标,确定与这一区段相连通的上、下两条扫描线上是否存在连续的符合如下判定要求的像素点:
(14)
其中,γR、γG和γB分别表示相邻扫描线上像素在R、G、B通道像素的灰度值。σR、σG和σB为判定阈值。
如果存在,则将该区段左右两端的像素点作为新的种子点保存起来并依次压入堆栈。
(4)继续步骤(2),直到填充结束。
本文改进的区域生长算法考虑了扫描线上像素的相关性,种子像素不再代表一个孤立的像素,而是代表一个尚未填充的区段。算法在处理过程中只需要将每个水平像素段的起始点压入堆栈即可,不需要将当前种子点周围所有尚未处理的邻域点都压入堆栈迭代生长,可以节省堆栈空间。并且本算法在选取生长所需的新的种子点时充分考虑了其邻域像素点的相似性,区域生长过程中不再对已经扫描过的像素段进行迭代计算,算法的时间复杂度较低,且生长后的图像前景具有更好的区域连通性。
3.2 自适应目标分割
为了在图像中分离出前景,本文提出了一种新的自适应阈值分割算法。算法使用双高斯函数来拟合图像的直方图,并采用最大似然估计自适应求解出谷底最小值,将其设为最佳阈值有效提取前景。
直方图可以表示图像组成成分在灰度级的概率分布。每个概率值表示小于或等于该灰度值的概率。设灰度级为[0,L-1]范围的数字图像的直方图是离散函数,则有:
H(sk)=n(k)k=0,1,…L-1 ,
(15)
(16)
其中:n为图像的总像素数量,sk为第k级图像的灰度,nk为灰度级为sk的像素总数。P(sk)为灰度级sk的概率密度。对于经过改进区域生长算法处理后的图像,目标和背景的直方图通常呈现双峰特性,且服从高斯分布,故本文采用双高斯函数来对直方图进行拟合:
(17)
其中,a1,b1,c1,a1,b2,c2为待确定参数,采用最大似然估计对上述方程进行求解:
(18)
对上式取对数:
(19)
求L对a1,b1,c1,a2,b2,c2的偏导数为零的解:
(20)
(21)
(22)
(23)
(24)
(25)
使用本方法拟合后的直方图具有明显的极大极小值,拟合结果如图6所示。
图6 双高斯函数拟合直方图结果 Fig.6 Double Gauss function fitting histogram results
通过式(19)~(24)可求得a1,b1,c1,a2,b2,c2的估计值,将其代入公式即可求得函数的谷底最小值:
(26)
将谷底最小值作为分割阈值代入公式,即可有效提取前景。
(27)
本文提出的基于双高斯拟合直方图的自适应阈值分割算法结果如图7所示。
图7 自适应阈值分割结果 Fig.7 Adaptive threshold segmentation results
3.3 剔除虚假目标
理想的“低小慢”目标是一个闭合的连通区域,呈现斑点状、具有较小的熵和近似均匀的强度,可以根据候选目标的面积占比变化、质心距离、填充率差异、宽高比差异来剔除虚假目标,降低虚警率。其计算方法如下:
①自动获得所有包含疑似目标的最小外接矩形;
②计算目标面积占比:
(28)
③计算目标中心距离变化:
(29)
④计算宽高比:
(30)
表1 剔除虚警流程Tab.1 Eliminating false alarm process
4 实验结果及分析
为了验证本文算法的有效性,本文选取了涵盖目标尺度变化,光照变化,姿态变化,遮挡等复杂情况的7组视频进行了测试(表2),并将实验结果与Vibe算法[32]、PBAS算法[33]进行了对比分析。为了保证实验结果的公平性和准确性,本文使用引用文章的开源代码进行了测试。
表2 实验中的测试视频Tab.2 Test sequences in our experiments
本文算法采用C语言编写,在Intel(R) Core (TM) i5-6500 CPU@3.2 GHz,4.00GB内存,Windows7系统的电脑上,应用OpenCV 2.4.10 和Microsoft Visual Studio 2010软件搭建了实验环境并编写算法。本文算法中Q=80,τR,G,B=30,σR,G,B=20。
表2中局部信杂比(Signal to Clutter Ratio,SCR)的计算方式如下:
(31)
(32)
其中,Jt为目标个数,SCRi为第i个目标的信杂比。
4.1 评价指标及对比
为了定量分析检测算法的性能,实验中采用检测准确率Pd(Detection accuracy)、虚警率Pfa(False alarm rate)以及算法的时间复杂度(Time complexity)来评价算法的检测效果[35]:
(33)
(34)
其中,Nt表示正确检测到的目标帧数,Na表示实际含目标视频的总帧数,Nf表示检测到的目标虚警总数量,N表示测试视频序列的总帧数。
本文使用3种检测算法分别对7组视频进行了测试,获得的检测准确率Pd,虚警率Pfa,算法的时间复杂度分别如表3、表4所示。其中,算法的平均耗时为测试视频中单帧检测时间最大值和最小值的平均值,算法的总耗时为完成完整测试视频所用的时间。
表3 检测准确率Pd及虚警率PfaTab.3 Detection accuracy and false alarm rate (%)
表4 算法的时间复杂度Tab.4 Average time consumption and total time consumption of the proposed algorithm
图8 对比实验结果 Fig.8 Comparison of experimental results for different algorithms
为了更直观地说明对比结果,图8给出了本文算法及对比算法的实验结果。其中,图8(a)为原始测试图像视频序列(Vedio1-Vedio7),图8(b)为Vibe(Visual Background Extractor)算法的实验结果,图8(c)为PBAS(The Pixel-Based Adaptive Segmenter)算法的实验结果,图8(d)为本文算法实验结果。
4.2 结果分析
通过对比可以看出,Vibe算法在动态复杂天空背景环境下进行检测时具有明显的“鬼影”现象,检测准确率较低。在此基础上改进的PBAS算法可以去除大面积的“鬼影”,并在信杂比大于3的视频序列中具有较高的检测准确率,但是算法时间复杂度较之前更高,在低信杂比环境下检测准确率较低。本文提出的算法在信杂比小于1的视频序列中仍具有81.6%的检测准确率,且虚警率较低,仅为5.1%。算法的时间复杂度、检测准确率Pd及虚警率Pfa这3个评价标准对于7个测试视频均达到最佳,在信杂比较低的视频序列中,检测准确率较其他算法平均提高了11.4%,时间复杂度仅为Vibe和PBAS算法的十分之一。本文算法在光照变化、尺度变化、姿态变化及背景干扰的情况下依旧具有较好的鲁棒性,优于Vibe和PBAS算法。
从图9可以看出,算法可以在复杂动态天空背景中剔除虚假目标并准确发现真正目标,矩形框代表算法自动检测到的“低小慢”目标。
图9 本文算法检测结果 Fig.9 Detection results by proposed algorithm
5 结 论
为了在复杂天空背景下检测出低空慢速小目标,本文在应用局部亮度对比度提取图像视觉显著性特征的基础上,融合了形态学梯度和三帧差分算法来获取种子点,通过改进的扫描线填充算法有效去除复杂背景。同时,提出了新的自适应直方图分割算法来提取前景,并根据目标的面积占比变化、质心距离变化、宽高比差异剔除虚假目标,完成检测。
对7组测试视频进行实验,实验结果和数据表明:本文提出的算法对运动目标检测的平均运行时间为0.040 9 s,平均检测准确率为89.97%,相比于其他算法平均运算时间减少了0.35 s,检测的平均准确率提高了24.5%。与其他的优秀检测算法相比,本文算法能够获得更多的有效信息并减少背景信息的干扰,具有更好的鲁棒性和更好的实时性。