文献精讲--红外小目标检测之Local Contrast Measure(局部对比度测量)原理篇

文献精讲–红外小目标检测之Local Contrast Measure(局部对比度测量)原理篇

一万年没有更新过文章了,正好赶上研究生开学,为了憋一篇质量高一点的paper,最近在阅读文献。之前在做小目标检测的时候就留意过这篇《A Local Contrast Method for Small Infrared Target Detection》,我最初阅读完这篇文献后的感受就是:原理简单,设计精妙。废话不多说我们直接进入正题。

Local Contrast Measure(LCM)

该方法的实现过程一句话就可以概括:增强图像中的小目标区域,同时抑制图像中的背景区域。
读完这句话心中是不是有一万个问号?比如:你怎么知道图像哪部分是小目标区域,哪部分是背景区域?怎么增强又怎么抑制呢?…
别急,我们慢慢说。
在说具体实现之前,我们先思考一个问题:如果是你来观察一张图片,你是怎么从图像中识别出小目标的?

没错,你正是通过小目标和周围背景的灰度差异来实现目标的识别的。通俗点说,就是小目标看起来更亮,而背景看起来更暗。

那么问题来了,我们怎么让电脑通过这种灰度差异来检测出小目标呢?这时,我们就要定量地来描述目标和背景间的这种灰度差异。于是我们就引出局部对比度测量的概念。我们来看一张图:

上图中,最外面的蓝色框代表整张图片的边界。图片中的蓝色框代表一个n * n的kernel。这个kernel可以在整张图片上进行滑动,kernel的正中央还有一个蓝色框,这个蓝色框内的区域代表目标目标区域,蓝色框和kernel之间的区域代表目标的领域背景。

这个kernel真实的样子如下图所示:
在这里插入图片描述
我们来一点点看懂这张图。首先我们可以看到kernel被划分为了9个区域,每个区域上的数字代表区域的序号。注意:每个区域内并不只是包含一个像素点! 每个区域其实都可以看作为一个更小的kernel。举个例子,第一个区域内可能包含3* 3个像素点,那么后面的每个区域一定也是3* 3个像素点,那么整个kernel的大小就是(33)(33)也就是99。

我们知道这个kernel是在图片上进行滑动的,那么他一直滑啊滑,终于有一天,这个kernel的正中央(0号区域)滑到了目标的位置,这样,0号区域中的灰度和周围8领域的灰度差异就显现出来了。如果这种灰度差异很大,并且大过某个阈值的时候,我们是不是就可以认为此时kernel中的0号区域就是小目标所在区域了呢?

作者顺着这条思路就提出了LCM算法。接下来我们介绍点真正硬核的东西。

首先,我们定义一个变量m,m代表1-8号区域的每个区域的均值。具体计算过程如下:
在这里插入图片描述
公式里,i代表1-8号区域的序号,N是每个区域内像素点的总数,j代表每个区域内像素点的序号,I代表像素点的灰度值。
也就是说,我们要先分别计算出1-8号区域每个区域像素的灰度均值。

之后我们再引入一个变量L,L代表0号区域中像素点灰度值的最大值。

这时,我们就可以把主角请上场了。之前我们说过,我们要定量的描述目标和背景之间灰度的差异。作者使用下面这个式子来描述这种差异:
在这里插入图片描述
这里的c就是contrast,i代表1-8号区域的序号,n是kernel的序号。contrast就是用来定量描述目标和背景之间灰度差异的量。此时,通过contrast的计算方法,我们可以分别计算出1-8号区域与0号区域的contrast,也就分别代表了0号区域的灰度与其他区域之间的灰度差异。此时你一定会问,为什么要用这种两个量相除的形式呢?哎对,这就是作者构建的精妙之处,别急,我们先往下看。

之前我们说过,LCM的实现可以用一句话概括,那就是增强图像中的小目标区域,同时抑制图像中的背景区域。

现在我们通过contrast已经可以分辨小目标和背景了,那么我们怎么实现增强呢?来,看下面这个式子,全文的精华所在。
在这里插入图片描述
别晕,这个式子看起来长,其实也就比contrast的计算式多了两个东西而已。式中的C代表显著图,也就是抑制or增强后的结果。要记住:我们所有的增强或者抑制都是只对0号区域进行操作。

重点来了!仔细观察式(3),我们发现在式子中给contrast乘上了一个L。刚刚才说过,增强和抑制只是针对于0号区域(L代表0号区域的最大灰度值),也就是说,contrast的大小决定了0号区域是被增强还是抑制!现在可以解释之前留下的那个问题了,为什么contrast要用除法的形式,这是因为如果L > m,则contrast > 1,contrast > 1意味着什么?意味着0号区域灰度的最大值要大于周围领域的均值,也就意味着0号区域极有可能是小目标!L乘上一个大于1的数是不是就比自身大了,是不是就得到了所谓的增强了。而contrast < 1的时候,意味着0号区域很有可能是背景,那么L乘上一个小于1的数自然就实现了抑制。没错,contrast的设计精妙之处就在于此。

最后还有一个问题就是式子中min。我们再好好看看这个式子,由于对于一个kernel来说,L的值是一个常量,min整个式子就意味着着min contrast,min contrast就代表着max mi。也就是说,在求显著图时,对于领域,我们只关心灰度均值最大的那个。这也很好理解,0号区域的灰度最大值如果比你们8个领域最大的那个都大,那才能说0号区域很有可能包含目标区域。

在求完一个kernel的C后,把0号区域内的灰度值都换成C,这样一个kernel的使命便完成了。

LCM的整体算法流程如下图所示(拿着个kernel慢慢滑吧~):
在这里插入图片描述
最后,简单提一下文章最后的阈值分割操作,很简单的一个式子:
在这里插入图片描述
式中T为阈值,I为显著图的灰度均值,Sigma为标准差。这里的k需要靠经验选取,利用计算出来的阈值对图像进行二值化操作即可实现最后的检测结果。

版权声明:本文为CSDN博主「David T0n」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/David_Tang0617/article/details/120091957

David T0n

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

深度学习之目标检测YOLOv5

一.简介 YOLOV4出现之后不久,YOLOv5横空出世。YOLOv5在YOLOv4算法的基础上做了进一步的改进,检测性能得到进一步的提升。虽然YOLOv5算法并没有与YOLOv4算法进行性能比较与分析&#xff0

针对小目标的目标增强算法

针对小目标的目标增强算法 自己写的数据增强算法,请随意取用,包括椭圆旋转,随机复制。 找了好多并没有找到椭圆旋转和随机复制的代码,于是就自己写了一个,程序中自动生成anno