分享一下个人对于近期读过的一篇英文文献《A Robust Infrared Small Target Detection Algorithm
Based on Human Visual System》的理解,文献的链接放在文章最后。侵权请联系删除。
一、文章目的:
由于LCM算法是逐像素计算,时间消耗很大。LCM对PNHB进行了过度增强,导致了较高的误报率。因此,文章提出了一种改进的局部对比度算法(ILCM),能够在增强目标,抑制背景的同时实现对于目标的平滑作用。
二、文章中提到的关键词解释:
PNHB:高亮度像素化噪声。
TB:指包含小目标的子块。
BB:完全是背景的子块。
PB:在TB周围与TB有部分重叠包含目标的部分信息的子块。
三、原理精讲:
1.整个过程
首先,我们来梳理一下文章对于检测部分的框架。文章将检测过程分为两大模块,预检测阶段和检测阶段。下面我来对于这两个阶段分别谈一下我的理解。
2、预检测
以子块作为单位来对于灰度值进行的计算是这个方法的一大亮点,由于LCM算法是对于像素点进行灰度值的计算,检测速度会相对较慢。因此ILCM算法中对于图像在预检测阶段进行分块,求取子块的灰度平均值,使用mb*nb(子块大小)作为分母,pix(i, j)是相应的像素点,I是指像素点的灰度值。之后,再把子块的灰度值m形成一个新的矩阵M。原文献给出的公式如下图所示:
3、检测阶段
第二步就是对于小目标进行检测。首先,需要计算出子块中像素点的灰度最大值Ln的值。其次,原文章使用在图像取的图像补丁的方法,巧妙设计了边长为子块边长3倍的图像补丁,以此来取sblk(s, t)为中心子块,并由此产生了背景块1~8,之后利用原文中给出的求平均灰度值(m)的公式求出该补丁的8个相邻子块的灰度均值m1 ~ m8。最后,对于矩阵M的每个元素使用原文提出的ILCM公式求出ILCM值由此获得显著图。原文献给出的公式如下图所示:
和LCM算法相似之处是,如果该子块含有目标(TB),则它的最大灰度值Ln>mi,那么他俩的比值一定大于1,乘以m0之后的ILCM值>m0,实现对于目标的增强。反之如果子块不含有目标(BB),同样实现了对背景的抑制。而当子块为(PB)时,由于PB仅在TB周围出现,显然对于同一目标ILCM(PB)<ILCM(TB),它不会干扰TB的检测。
我个人理解的ILCM算法设计的亮点在于能够平滑目标,而平滑目标的关键就在于原文献所提出的ILCM这个式子中的分母m0,让我们来一起回顾一下LCM算法的公式:
经典的LCM算法的分母设置的是Ln²,会对于亮目标产生一个很大的增强效果,同时对于背景中存在的噪点也进行了增强,而ILCM算法中将其改进为m0*Ln,这样能够很好的对于目标进行平滑作用,就对于背景中存在的噪点干扰也能起到抑制作用。
四、阈值分割
最后,让我们一起来看一下原文中使用到的阈值分割方法。μ和σ分别是SM的平均值和标准偏差,k是一个参数取10~20。为了避免重复检测,一旦检测到TB,TB及其相邻的重叠PB都将被抑制。原文献给出的公式如下图所示:
原文献链接: