《融合视觉显著性和局部熵的红外弱小目标检测》论文复现

1.复现论文概要

复现的论文为《融合视觉显著性和局部熵的红外弱小目标检测》(赵鹏鹏,李庶中等,中国光学2022,http://www.chineseoptics.net.cn/cn/article/doi/10.37188/CO.2021-0170,以下简称论文)。论文针对红外图像中弱小目标检测虚警率高、实时性差的问题,提出了一种基于视觉显著性和局部熵的红外弱小目标检测方法。该方法首先利用融合局部熵的方法提取包含目标的感兴趣区域,对红外弱小目标实现粗定位。然后再利用改进的视觉显著性检测方法在感兴趣区域计算局部对比度,获得感兴趣区域的显著图。最后利用阈值法分割显著图像提取红外弱小目标,实现红外弱小目标的检测。

论文分为5部分:

(1)引言:介绍了红外弱小目标信噪比低、亮度低等特点,以及对其检测存在的技术难点;介绍了传统的红外弱小目标检测方法,如局部对比度法(LCM)等。

(2)LCM原理:详细阐述了局部对比度的计算方法。

(3)改进的弱小目标显著性检测方法:针对LCM 的计算在增强弱小目标的同时,也增强了图像的像素尺度亮噪声,增加了目标检测的虚警率,论文提出了一种在LCM算法基础上改进得到的弱小目标显著性检测方法,并从图像预处理、显著度图计算和目标检测三个方面对其原理进行了详细说明。

(4)融合视觉显著性和局部熵的红外弱小目标检测:针对滑动窗口法在全图像范围内进行目标搜索,在整幅图像中进行多尺度局部对比度计算耗费大量时间,影响红外弱小目标检测实时性的问题,论文提出一种融合视觉显著性和局部熵的红外弱小目标检测方法,即先利用局部熵对目标区域进行粗定位,得到一个含有目标的感兴趣区域,然后利用改进的显著性检测方法在感兴趣区域内检测出弱小目标,从而加快检测速度。这部分主要对基于局部熵的红外弱小目标粗定位和整体算法流程进行了详细说明。

(5)实验与结果分析:这部分首先用4幅不同的红外弱小目标图片对论文算法进行检验,证明了论文算法的有效性;然后与TOPHAT 检测算法及基于 LCM 的检测算法进行对比试验,证明了论文提出的算法虚警率和实时性优于这些传统的红外弱小目标检测算法。

相应代码获取:https://download.csdn.net/download/anbuqi/88167884

2.复现步骤说明

2.1 理解文章内容

首先阅读摘要,了解论文要解决的问题、解决问题的方法和最终实现的效果,从关键词中提取论文涉及的技术要点。然后通读全文,圈出每个章节中对基本原理和方法流程进行阐述的部分,将其串联起来,得到整个文章的技术脉络和算法框架。

按照整理出的技术脉络和算法框架,梳理框架各部分的实现原理,将涉及的公式序号和变量定义按照先后顺序整合在一起,形成对该部分的完整数学原理描述,从而理解公式中变量定义的依存关系。例如:第3节 改进的弱小目标显著性检测方法中,整合得到的数学原理描述如下:

  1. STEP1 图像预处理由论文中的式(4)和(5)完成,涉及变量W和 gray(su{b_{p,q}})
  2. STEP2 显著图计算由式(6)和(7)完成,涉及的变量M实际为STEP 1中的W,变量gray(su{b_{p,q}}) 由STEP 1中的式(4)定义;
  3. STEP3 目标检测由式(8)完成,涉及的显著图SW由STEP2 中的式(7)和变量M(W)组合计算得到。

2.2 收集所需的数据

通常论文中不会给出使用的数据集,因此只能找相似的数据集来检验算法。根据2.1中的分析得出论文所需的数据是含有红外弱小目标的图片,故以关键词“红外数据集”在百度上检索,检索得到以下结果: 

  1. LSOTB-TIR数据集:GitHub - QiaoLiuHit/LSOTB-TIR: LSOTB-TIR: A Large-Scale High-Diversity Thermal Infrared Object Tracking Benchmark (ACM MM2020)LSOTB-TIR: A Large-Scale High-Diversity Thermal Infrared Object Tracking Benchmark (ACM MM2020) - GitHub - QiaoLiuHit/LSOTB-TIR: LSOTB-TIR: A Large-Scale High-Diversity Thermal Infrared Object Tracking Benchmark (ACM MM2020)https://github.com/QiaoLiuHit/LSOTB-TIR
  2. OTCBVS数据集:OTCBVSOTCBVS-Benchhttp://vcipl-okstate.org/pbvs/bench/
  3. flir数据集:FREE - FLIR Thermal Dataset for Algorithm Training | Teledyne FLIRhttps://www.flir.com/oem/adas/adas-dataset-form/

….

检索得到一些数据集后,还需要进行筛选,保证所用的数据集和文章中基本相似。经过筛选最终决定使用OTCBVS Dataset 01: OSU Thermal Pedestrian Database 0002中包含一只猫头鹰的红外图片作为数据集,其中的一张图片如下所示:

如上图所示,选定的红外弱小目标为一只从草丛飞向树梢的猫头鹰,与论文中数据集的目标特性很接近,即信噪比较低、亮度较弱,灰度值不一定是最高的,但通常会在一定层度上高于其局部背景,尺寸较小、能量较弱,且缺乏有效的形状和纹理特征等。

2.3 实现算法并分析结果

在2.1和2.2的基础上,使用python编程实现论文算法并在选定的数据集上试验,然后与论文结果进行比对,总结论文算法的优缺点,发掘出可以改进的地方。

3.算法原理说明

3.1  改进的弱小目标显著性检测方法

(1)STEP1图像预处理

 图像预处理的目的是抑制像素尺度亮度噪声对目标检测的影响和提高目标检测速度。首先使用一个小于9 \times 9 的窗口在原始图像中按照一定步长从左至右,从上到下依次滑动,得到一系列子图像块su{b_{p,q}} ,然后将其整体灰度设置为其内部像素点的均值,即

 

 式(3.1)中\left( {i,j} \right) 表示子图像块su{b_{p,q}}中的像素点, m \times n表示子图像块的大小, gray(i,j)表示像素点 (i,j)的灰度值。然后将一系列子图像块按照原来的顺序重新组合成一个新的矩阵W ,其内部元素定义为

设定适当的窗口尺寸和移动步长, W中的元素数目会远小于原始红外图像的像素数,则用W代替原始图像进行目标检测的速度也会提高。

(2)STEP2:显著图计算

在原始图像中设置一个滑动窗口,使滑动窗口的中心为预处理得到的子图像块su{b_{p,q}},然后将滑动窗所截取的图像划分为9个子图像块,即滑动窗口大小为9 \times m \times n。将子图像块 编号为“0”,其余编号为“1”~“8”, su{b_{p,q}}的灰度均值在STEP1中已经计算得到,故分别计算“1”~“8”的灰度均值,方法和式(3.1)一致。

gray(h)\begin{array}{*{20}{c}} {}&{h = \left\{ {1,2,....,8} \right\}} \end{array}表示“1”~“8”子图像块的灰度均值,则su{b_{p,q}}在滑动窗口中的对比度为

 式(3.3)中{L_n} 为子图像块su{b_{p,q}}中的最大灰度值。根据式(3.3)计算出{C_n}后替换预处理得到的矩阵W中与su{b_{p,q}}对应的元素,以此类推,替换完成后就是原图像的显著图SW

(3)STEP3:目标检测

根据计算得到的显著图像SW,利用阈值法进行自适应阈值分割,可得到二值化的显著图像BSW,其中分割阈值的计算方法为

 式(3.4)中{u_{SW}}{\sigma _{SW}}分别为显著图的均值和标准差(论文中为方差,但是结合k的取值范围和实验结果,论文中应该是笔误)。k为经验系数,通常取10 < k < 15

3.2 基于局部熵对目标粗定位

3.1中利用滑动窗口法在全图像范围内进行多尺度局部对比度计算会耗费大量时间,影响红外弱小目标检测的实时性,因此论文提出一种融合视觉显著性和局部熵的检测方法,即先利用局部熵对目标区域进行粗定位,得到一个含有目标的感兴趣区域,然后用3.1中的改进显著性检测方法在感兴趣区域内检出弱小目标,从而提升检测速度。利用局部熵提取感兴趣区域的过程可以分为3个步骤:

(1)将一副大小为M \times N的图像f划分成l个大小为m \times n的局部区域\left\{ {​{s_i}} \right\},其中i = \left\{ {1,2,......,l} \right\}l = \left( {M \times N} \right)/(m \times n)

(2)针对每一个局部区域,分别计算局部熵值{H_i},然后在所有局部区域中搜索局部熵值最大值{H_{\max }}和最小值 {H_{\min }}

(3)根据{H_{\max }}{H_{\min }}设置分割阈值 Th1,局部熵值 {H_i}小于阈值Th1的局部区域即为感兴趣区域,其中Th1 定义为

3.3  融合视觉显著性和局部熵的红外弱小目标检测

综合3.1和3.2,最终得到融合视觉显著性和局部熵的红外弱小目标检测流程如下图所示。

4.算法实现过程

根据3中的算法原理,算法程序可以划分成两部分,即基于局部熵的目标粗定位改进的弱小目标显著性检测

4.1 基于局部熵的目标粗定位

选定图片分块大小为80 \times 80 ,然后根据下式计算局部熵值。

 其中M \times N为子图像块的像素数, P\left( {i,j} \right)表示灰度值为 \left( {i,j} \right)的像素点在子图像块总像素点中所占的比例。计算出各个子图像块的局部熵值后搜索得到局部熵值最大值 {H_{\max }}和最小值{H_{\min }} ,取经验参数{k_1}{\rm{ = }}4k'{\rm{ = }}4 后得到分割阈值,然后粗略地将目标从图像中定位出来,效果如下图所示。

4.2 改进的弱小目标显著性检测

粗略定位目标所处的子图像块后,将其取出按照3.1 STEP1 计算矩阵W,结果如下图所示。

 根据STEP2,选定计算显著度图SW的滑窗尺寸为 9 \times 5 \times 5,结果如下图所示。

 根据STEP 3,选定经验参数为k = 11 ,对目标进行定位,结果如下图所示。

由上图可见算法比较精准地检测到了红外弱小目标,程序运行时间为1.8759s,证明了论文所述算法确实可以比较精准和快速地检测红外弱小目标。

5.结果分析及算法改进

在经验参数 {k_1}k'k都不变的情况下再选2幅图进行试验,结果如下图所示。

由上图可见背景噪声基本不变,红外小目标显著度发生微小改变时出现了漏检。将 k改为8后对上图中漏检的图片再次进行检测,结果如下图所示。

 由此可见即使背景噪声基本相近,论文算法的检测结果对经验参数k 也是极其敏感的,对于不同显著度的红外小目标,需要调整k到合适值以避免漏检。针对这一问题,改进方法是在计算出显著度图SW后直接用显著度最大的像素点作为红外弱小目标的中心点,而不是用阈值 Th2进行分割得到二值化的显著图BSW后再定位,这样使检测结果不再依赖经验参数k。在经验参数{k_1}k'保持不变的情况下,改进效果如下图所示。 

 由上图可见改进后的算法可以检测出漏检的红外小目标,且不依赖于经验参数k的取值。

猜你喜欢

转载自blog.csdn.net/anbuqi/article/details/128405032