韩金辉,董兴浩,蒋亚伟,李知铮,梁 琨,张利红
(1.周口师范学院 物理与电信工程学院,河南周口 466001;2.华中科技大学 电子信息与通信学院,湖北 武汉 430074)
随着红外焦平面性能水平的不断提高,红外探测系统在军事和民用中得到了广泛的应用,尤其是在制导、预警等领域具有非常重要的应用价值[1]。其中,能否及时准确地检测到远距离目标,是关系到能否有效地制导和预警的关键,具有重要的研究意义。但是,由于此时的探测距离非常遥远,目标在图像中所占的像素点较少且亮度较弱(通常被称为红外弱小目标)[2],难以检测;同时,探测器视场中往往存在许多复杂背景,很容易淹没目标[3];另外,在很多时候,红外弱小目标的尺寸通常是未知的,这给检测工作带来了进一步的困难[4]。
近年来,一批研究者发现人类视觉系统(human visual system,HVS)所特有的对比度机制非常适合用于检测尺度小、亮度弱的红外弱小目标,并做了大量研究工作。早期的研究多集中在目标增强与背景抑制方面。例如,王鑫等[5]提出了高斯差分(difference of Gaussians,DoG)滤波器,采用局部求差的方法,可以有效消除高亮背景,但是DoG 滤波器对背景边缘比较敏感,容易造成较高的虚警率;CHEN 等[6]提出了局部对比度衡量(local contrast measure,LCM)算法,采用一个两层嵌套窗口,分别捕捉目标和背景,并在二者间进行比值计算,以增强目标,但是此方法也有不足之处,即无法消除高亮背景。
在LCM算法的基础上,韩金辉等[7]提出了改进的局部对比度方法(improved local contrast measure,ILCM),该算法将DoG 与LCM 相结合,在增强目标的同时有效地抑制了高亮背景,但是该算法引入了平均操作,当目标尺度很小时,小目标也会被削弱;QIN等[8]提出了新型局部对比度方法(novel local contrast measure,NLCM),仅采用若干最大像素的均值作为响应值,解决了ILCM中目标容易被削弱的问题,但是在复杂背景中仍然存在较高的虚警率;王晓阳等[9]将图像信息熵与局部相似性等作为对比度计算的前置环节,以进一步排除假目标,但是这样会造成算法结构复杂,任一环节出错都会导致检测失败等等。
在后续一些研究中,研究者们越来越关注目标大小未知的问题。例如,魏艳涛等[10]提出了多尺度块对比度方法(multiscale patch-based contrast measure,MPCM),采用一系列大小不同的图像块进行计算,可以处理不同尺度的弱小目标;韩金辉等[11]在保留多尺度检测功能的同时提出了相对局部对比度方法(relative local contrast measure,RLCM),联合使用比值和差值来计算对比度,从而可以同时增强目标、抑制高亮背景;邓鹤等[12]提出了基于熵的加权型局部对比度方法(weighted local difference measure,WLDM),采用不同大小的图形块计算局部信息熵,并以之作为加权函数,进一步增强不同尺度的目标、抑制复杂背景;等等。但是,由于这些算法均采用了多尺度计算,存在计算量较大、耗时长的问题。
此外,还有一些研究者将单帧对比度推广到了多帧。例如,KIM 等[13]提出了时域对比度滤波器(temporal contrast filter,TCF),用来在多帧间提取目标的运动信息;进一步地,DENG 等[14]提出了空时对比度滤波器(spatial temporal local contrast filter,STLCF),将空域和时域对比度算法进行了结合,等等。但是,这些算法需要利用多帧信息进行计算,无法即时输出目标,实时性差,在实际应用中有很大的局限性。因此,目前的对比度型算法仍以空域单帧算法为主流。
概括而言,空域单帧型对比度算法与红外弱小目标的特征契合较好,能取得比其他传统型检测算法更好的性能。但是,现有算法仍存在一些不足。首先,现有算法没有结合真实目标的形状,对目标进行有针对性的增强;其次,现有算法大多直接选取目标周围的最大值作为背景值参与对比度计算,但当视场中的背景比较复杂时,目标靠近高亮背景的概率比较大,容易被淹没;最后,针对尺度未知的目标,现有算法需要通过调整窗口大小进行多尺度计算,导致实际计算量增大,算法效率变差。
针对现有算法存在的不足,在本文中,提出了一种基于HVS 对比度机制的单帧红外弱小目标检测算法。首先,设计了一种3层嵌套窗口,将整个窗口划分为中心层、中间层和最外层3个层次,其中,中心层用于捕捉目标的主要能量,最外层用于捕捉周围背景,而中间层用于隔离目标和周围背景。这样,当目标大小改变时,只要其不超过中间层的大小,窗口尺度无需进行调整,从而可以在单尺度下实现对未知尺度目标的检测,有效降低了运算量。同时,根据目标的形状,引入匹配滤波的思想,对中心层进行高斯滤波,有针对性地增强弱小目标。另外,提出最接近滤波思想,将窗口的最外层划分为8个方向,并从中寻找与中心最接近的值作为对比度计算时的背景值,在一定程度上缓解了高亮背景对目标的淹没问题。采用大量仿真和真实数据进行实验表明,相比现有算法而言,本文算法具有更高的检测率、更低的虚警率,同时实际计算量相比多尺度检测算法而言也有很大的降低。
图1给出了本文算法的简单流程图。首先,使用一个3层窗口遍历整幅图像,在每个位置处,对窗口的中心层使用高斯滤波,有针对性地增强目标;对窗口的最外层采用最接近滤波,缓解目标被高亮背景淹没的问题。然后,在增强后的目标与最接近滤波得到的背景之间,采用比差联合的方式进行对比度的计算,从而进一步增强目标、消除高亮背景。最后,对处理后得到的图像进行阈值操作,提取真实目标。
1.1.1 三层窗口的设计
在实际应用中,弱小目标的尺寸通常是未知的,现有算法采用多尺度检测的方法实现对不同大小目标的检测,运算量很大。本文设计了一种新型的3层窗口,以单尺度计算解决多尺度检测的问题,大大地减少了实际运算量。
图1 本本文算法框图Fig.1The flowchart of the proposedd algorithm
图2给出了本文设计的3层窗口。其中,中央小区域为中心层,用于捕捉目标的主要能量;外围8个子块区域为最外层,用于捕捉目标周围的背景,注意该区域被划分为8个方向,以抑制背景边缘;中心层与最外层之间的区域为中间层,用于隔离目标和周围背景。
图2 三层窗口Fig.2 Threee-layer windoww
具体计算中,该模板将被放置于原始图像上,按照从左到右、从上到下的顺序进行滑动,并在每个像素点处进行对比度的计算。
相比目前广泛使用的两层窗口(如LCM 的窗口)而言,该窗口最大的改进在于中间层的引入。在两层窗口中,中心子块用于捕捉整个目标,因此必须随着目标的大小进行调整,即需要进行多尺度检测;而在本文中,考虑到光学系统的弥散效应,真实目标一般是从中心到四周逐渐衰减的,其主要能量集中在中心附近的小区域内,因此,三层窗口的中心层仅用于捕捉小目标的主要能量即可满足需要。但是,当目标较大时,为了防止目标的其他部分进入最外层被当成背景,需要引入中间层进行隔离。显然,当目标大小变化时,只要其不超出中间层的范围,窗口的尺寸是无需调整的,因此,该窗口可以采用单尺度计算实现多尺度检测的目的。
在三层窗口中,各层的尺寸是关键参数,因此有必要进行讨论。首先是中心层。由于中心层是用于捕捉目标的主要能量的,因此其尺寸应小于或等于目标大小。但是,若中心层尺寸过小,例如选取中心层为1×1,则容易受到单像素随机点噪声的干扰。反之,若中心层尺寸过大,超出真实目标过多,则会引入大量背景像素点,也会对检测造成干扰。考虑到受光学系统弥散效应的影响,实际应用中的真实目标通常具有一定的小面积,其尺寸往往介于2×2~9×9 之间[8],因此在本文中,决定选取中心层尺寸为3×3(为了滤波和计算方便,窗口尺寸应选为奇数)。此时,若目标小于等于3×3,则中心层可以捕捉到全部目标,否则中心层捕捉到的将是目标中心附近的主要能量。
接下来讨论的是中间层尺寸,同时也是最外层单个子块的尺寸。由于中间层用于隔离真实目标与周围背景,因此其尺寸不能小于真实目标的尺寸,否则目标外围部分像素点将被误当成背景像素点,影响检测效果。但是,若中间层尺寸过大,则整个计算区域也很大,容易引入周围一些不必要的复杂背景,也会影响检测效果。在本文中,综合考虑以上因素,将中间层的尺寸定义为真实目标可能的最大尺寸,即9×9(超出9×9的目标已经不再属于小目标范畴,因此不在本文讨论范围之内)。此时,无论小目标的实际尺寸是多大,中间层都可以将其与周围背景有效隔离,同时做到尽可能少地引入周围复杂背景。
1.1.2 针对中心层的匹配滤波
以LCM及其改进型为代表的现有算法通常直接在中心子块与外围子块之间计算对比度,未考虑目标的形状,没有对目标做有针对性的增强。本文算法在进行对比度计算前,首先引入匹配滤波的思想,对中心层做高斯滤波,根据目标形状对其进行有针对性的增强,以进一步突出目标。
匹配滤波器理论指出,当滤波模板的形状与目标形状一致时,可以得到最好的目标增强效果[15]。考虑到实际应用中的红外小目标多呈中心高、四周低的形态,与二维高斯函数的分布十分相似(实际上,很多研究者都会使用二维高斯函数对红外小目标进行仿真建模),本文采用一个常用的二维高斯模板(如图3所示)对中心层进行滤波。
图3 匹配滤滤波器模板Fig.33 Template off the matched fi lter
在某个像素素点(i,j)处,定义匹配滤波的结果为:
式中:(i,j)为当前像素点坐标;I为输入图像;G为图3中的滤波模板;Imf为匹配滤波后的结果。
1.1.3 针对最外层的最接近滤波
在3层窗口中,最外层窗口的作用是获取目标周围的背景值。现有算法为了抑制背景边缘,通常是分别计算周围8个子块的响应值,并取其中最大值作为最终的背景值。但是当目标靠近高亮背景时,按最大值原则选取背景值很容易淹没目标。
在本文中,提出了一种新的背景值选取原则,即最接近原则。具体地说,首先分别计算最外层8个子块的响应值,并将它们分别与内层子块(含中心层与中间层)的响应值进行对比,选择其中与内层子块响应值最接近的值作为最终背景值,即:
式中:(i,j)为当前像素点的坐标;B代表计算得到的最终背景值;B0代表内层子块的响应值,Bn代表第n个最外层子块的响应值,在本文中,定义子块响应值为子块内前9个最大像素点的平均灰度值,即先对子块内各像素值进行从大到小排序,然后分别在每个子块中选取前9个像素值进行平均值计算。此处选择9个像素点是为了方便与上个环节中高斯滤波(本质是9个临近像素点的加权平均)的结果进行对比。
对原始图像分别进行目标增强与背景估计操作后,可得到目标增强图像Imf及背景估计图像B。接下来,为进一步突出目标、抑制背景,将在二者之间进行对比度计算。目前已有很多对比度计算公式被提出,它们大致可以分为两类,比值型和差值型。其中,比值型对比度可以有效增强目标,但对高亮背景的抑制能力不足;差值型对比度可以有效消除高亮背景,但却无法有效增强目标。
在本文中,使用比差联合的方法[11],在Imf和B之间进行对比度的计算,以达到同时增强弱小目标、抑制高亮背景的目的:首先引入比值对比度的思想,将Imf(i,j)与B(i,j)的比值作为增强因子,用于增强目标;然后,结合差值对比度的思想,将增强后的值与原始值求差,以达到消除高亮背景的目的,如公式(3)所示。考虑到实际中目标大多比周围临近背景的温度更高,表现在红外图像中即目标比临近背景稍亮,因此,为进一步抑制杂波,此处还对计算结果引入了非负约束:
有必要讨论一下,当像素点(i,j)为真实目标中心、纯背景(含高亮背景)区域、随机噪声点、背景边缘等类型时,使用本文算法的计算结果,如图4(上)所示。
图4 窗口处于不同位置的示意图,灰色区域代表普通背景,白色区域代表高亮背景Fig.4 Different cases when the window at different positions,the grey area represents the normal background,the white area represents the bright background
1)当(i,j)为真实目标中心时。此时,若目标小于或等于3×3,则中心层可以捕捉到整个小目标;若目标大于3×3,则中心层捕捉到的将会是目标中心附近的主要能量。无论怎样,其增强结果Imf(i,j)都会比较大。同时,由于目标周围背景通常比目标略暗,其背景估计结果B(i,j)会比较小。于是,其对比度结果C(i,j)将会比较大,并且通常有C(i,j)>0。
2)当(i,j)为纯背景时。由于背景通常是大面积连续分布的,无论其实际灰度值为多大,其增强结果Imf(i,j)和背景估计结果B(i,j)都会与原始值I(i,j)接近,此时计算得到的C(i,j)将比较小,通常有C(i,j)≈0。
3)当(i,j)为随机点噪声,且噪声亮度与目标最大亮度接近时。由于点噪声通常由器件电噪声等随机因素造成,大多表现为单个像素点,与目标的高斯分布形态不同,因此其增强结果Imf(i,j)将小于真实目标的结果,进而导致随机点噪声的C(i,j)也将小于真实目标的结果(需要说明的是,若点噪声本身亮度极大,则其C(i,j)可能会大于真实目标,这种噪声多由器件盲元等缺陷因素导致。考虑到已有大量专门的盲元校正研究成果,许多探测器输出的已经是经过校正后的图像,本文对此不做研究)。
4)当(i,j)为背景边缘附近时。由于在背景估计时采用了最接近原则,此时一般有Imf(i,j)≈B(i,j)≈I(i,j),于是有C(i,j)≈0。
除了上面几种情形外,一种比较特殊的情形是当目标靠近高亮背景(远大于真实目标的亮度)边缘的时候,如图4(下)所示。由于在背景估计时采用了最接近原则,此时边缘另一侧的高亮背景将不会参与到对比度计算当中,从而避免了真实目标被淹没的情况。但是,需要指出的是,若边缘另一侧的亮度与目标亮度相仿,按照最接近原则,仍然可能会被当作背景估计值,进而导致目标被抑制。因此,本文所提出的最接近滤波原则只能在一定程度上缓解而无法彻底解决复杂背景对目标的淹没问题。
从上一小节中的讨论中可以看出,经过本文算法处理后,真实目标将会最突出,而其他干扰因素大多可以得到较好的抑制。因此,可以采用一个阈值操作从计算结果当中提取目标。在本文中,自适应地定义阈值为:
式中:λ为一个给定的系数,其取值范围介于0~1之间。大量实验显示,对于单目标检测而言,λ取为0.8~0.9 左右比较合适。
使用公式(4)定义的阈值对计算结果C进行二值化操作,大于Th的像素点被标记为1,其他标记为0。每个值为1的连通区域被当作一个目标区域进行输出(为减少杂波干扰,在输出目标前可以先对标记结果进行一次膨胀操作)。
最后,我们将对本文算法的运算复杂度进行理论分析。假设3层窗口的中心层尺寸为c×c,中间层和最外层中每个子块的尺寸均为R×R(c<R)。对于中心层,将有c2乘法和c2加法;对于中间层和最外层的每个子块,将各存在R2log2R2次排序操作,8次加法和1次乘法,总共将有9个(R2log2R2+9)次操作;对于最后的比差联合计算时,将有3次乘法和1次加法。因此,对于M×N大小的图像,将需要进行[2c2+9(R2log2R2+9)+4]×MN次操作,所以该算法的计算复杂性是O(MNR2log2R2),与RLCM算法一致。然而,由于本文所提出的算法是单尺度计算,其实际计算量将会少很多。
为了验证本文算法的有效性,将本文算法应用于9组不同背景下的红外图像序列和1组仿真序列进行测试,其中序列1~8中的目标个数均为一个,序列9中的目标个数为4个,而仿真序列中包含一个位于高亮背景附近的小目标,专门用于验证目标在高亮背景附近时的算法检测性能。此外,本文还使用了一组单帧图像库进行算法性能测试,该图像库共包含有23幅不同背景下的红外小目标图像,因文章篇幅有限,在此仅以其中6幅图像作为示例。表1给出了10组图像序列的详细信息,表2给出了6帧单帧图像的详细信息。本文所有实验均在一台采用1.80 GHz 全频英特尔酷睿i5-8250 处理器、内存(RAM)为8 GB的个人电脑上运行,所使用的测试软件为MATLAB R2016a。
表1 10组红外序列的详细信息Table1 Details of the ten IR sequences
表2 单帧数据库中6幅图像的详细信息Table2 Details of the six frames in the single-frame dataset
图5给出了使用本文算法对各图像序列(以其中一帧为例)进行检测的过程示意,图6给出了使用本文算法对6幅单帧图像进行检测的过程示意。从原始图像示例中可以看出,目标通常亮度弱、尺寸小,同时图像当中通常存在点噪声、高亮背景、背景边缘等复杂背景的干扰。比差联合对比度结果是在匹配滤波结果和背景估计结果二者之间进行比差联合对比度计算后所得到的图像,同时图中还给出了对该结果图像的三维显示效果,从中可以直观看出,目标得到了有效的增强,同时绝大部分的背景被很好地抑制。最终输出结果为阈值处理后的输出图像,可以看到,所有真实目标都被成功输出,同时未出现任何虚警。特别值得注意的是,对于不同尺度的小目标,使用本文算法均可以有效检测,无需进行多尺度计算,这与前文中的理论分析是一致的。
图5 本文算法各个阶段处理后的图像(序列)Fig.5 The processing result of each stage using the proposed algorithm(sequence)
图6 本文算法各个阶段处理后的图像(单帧数据库)Fig.6 The processing result of each stage using the proposed algorithm(single-frame dataset)
需要指出的是,若目标靠近背景边缘,且边缘另一侧的灰度值与目标亮度相近,按照本文提出的最接近原则,仍然可能出现目标被抑制的情形。本文针对这种情形也进行了相应的仿真演示,见图7。结合图7和图5、图6可见,本文所提出的最接近滤波原则并无法完全解决复杂背景对目标的淹没问题,但可在一定程度上进行缓解。
图7 本文算法对于特殊情况检测失败的示例Fig.7 Example of fail detection for the proposed algorithm under special condition
为更有说服力地验证本文算法的优势,选择了一些现有对比度型算法与本文算法进行对比,包括DoG[5]、ILCM[7]、NLCM[8]、RLCM[11]、MPCM[10]、WLDM[12]、Multi-directional two-dimensional least mean square[16](MDTDLMS)、TCF[13]、及STLCF[14]等9种。其中,DoG是传统的滤波型算法,ILCM、NLCM是单尺度型对比度算法,RLCM、MPCM、WLDM是多尺度型对比度算法,MDTDLMS是将对比度与背景估计思想相结合的最新算法,TCF是基于时域对比度的算法,STLCF是空时结合的对比度算法。
首先,表3和表4、表5和表6分别引入信杂比增益(signal clutter ratio gain,SCRG)和背景抑制因子(background suppress factor,BSF)两项指标,对各算法进行评估,它们的定义分别如公式(5)和公式(6)所示:
式中:SCRin和SCRout分别表示原始图像和对比度计算结果图像的信杂比;σin和σout分别表示原始图像和对比度计算结果图像的标准差。通过比较各算法间的SCRG值和BSF值,可以有效判断算法对真实目标的增强能力和对复杂背景的抑制能力。显然,二者的值越大,说明对应的算法性能越好。
表3 各图像序列下(均以其中一帧为例)不同算法的SCRG值Table3 The SCRG values of different algorithms for different image sequences
表4 各图像序列下(均以其中一帧为例)不同算法的BSF值Table4 The BSF values of different algorithms for different image sequences
表5 单帧图像库中不同算法的SCRG值Table5 The SCRG values of different algorithms for the single-frame image dataset
表6 单帧图像库中不同算法的BSF值Table6 The BSF values of different algorithms for the single-frame image dataset
从表3~表6的数据可以看出,在大多数情况下,本文算法均可以取得最大的SCRG和BSF值,表明相对于其他算法而言,本文算法不仅能更好地增强目标,而且对背景的抑制能力也有很大的提高(因TCF和STLCF 均涉及时域运算,所以无法计算单帧数据库的SCRG和BSF)。
为了更加直观地体现本文算法的有效性,图8给出了各序列的接受者工作特征(receiver operating characteristic,ROC)曲线,此处检测率(true positive rate,TPR)与虚警率(false positive rate,FPR)分别如公式(7)和(8)定义(此处仅针对10个图像序列,不包括单帧数据库,因为单帧数据库中图像太少且彼此不相关)。
从图8中可以看出,相比现有算法而言,本文算法的检测性能在不同序列上比较稳定,在总体上优于现有的其他算法。
最后,为了检验本文算法的实时性,测试并记录了各种算法在10组序列中(不含单帧数据库)平均每帧所消耗的时间,如表7所示。结合图8和表7可知,某些算法(如DoG,ILCM,NLCM 等)虽然运算速度很快,但是它们的检测效果却比较差;另一些算法(如RLCM,MDTDLMS 等)尽管检测效果较好,但运算较慢,实时性差,例如RLCM 采用了多尺度对比度运算,平均耗时多在2 s 上下,而MDTDLMS算法由于使用了大量迭代运算进行背景估计,平均耗时达10 s以上;本文算法在检测率、虚警率等指标方面与RLCM、MDTDLMS 等算法相接近或更优,而平均所消耗的时间仅有RLCM的二分之一或更少。由此可知,本文算法不仅能够更好地增强目标、抑制背景,从而提高了算法的检测性能,而且相比一些多尺度算法而言,大大地减少了运算量,提高了算法的检测效率。
针对红外弱小目标检测当中存在的目标弱小难以检测、背景复杂容易淹没目标,以及多尺度检测运算量大等问题,提出了一种基于局部对比度的红外弱小目标检测算法。该算法采用3层窗口,可以用单尺度计算解决不同尺度的弱小目标的检测问题,大大地减少了实际运算量。同时,通过对3层窗口中的中心层进行高斯滤波,以及对最外层进行背景估计,可以有针对性地增强真实目标,抑制复杂背景。特别地,在背景估计过程中提出了一种最接近滤波原则,可以在一定程度上缓解目标靠近高亮背景边缘时的检测难题。接下来,通过在目标增强结果与背景估计结果之间进行比差联合对比度计算,进一步地对目标进行增强,对复杂背景进行抑制。采用大量仿真与真实红外图像数据进行实验并与DoG 等9种现有算法对比可知,本文算法在SCRG、BSF 等客观性能指标方面相比现有算法有了较大提高,在ROC 曲线上相比现有算法的表现也更好。另外,由于本文算法仅需采用单尺度计算,因而比现有多尺度算法的运算量更小,平均所耗时间仅有后者的二分之一或更少。
图8 不同序列的ROC 曲线:(a)~(j):序列1~序列10Fig.8 ROC curves of different sequences:(a)-(j):Seq.1-Seq.10
表7 各种图像序列下不同算法的运行时间Table7 Running times of different algorithms for different image sequences seconds/frame
致谢:
本文实验环节所使用的图像数据中,有一部分来自回丙伟等人[17]和IEEE OTCBVS[18]等研究人员和组织提供的公开图像序列,作者在此谨向他们致以真诚的谢意。