红外弱小目标检测:new top-hat 算法论文精度及MATLAB复现

本文参考文献:

作者年份论文题目期刊
Xiangzhi Bai2010《Analysis of new top-hat transformation and the application for infrared dim small target detection》

Pattern Recognition

白相志2009

新型Top-hat变换及其在红外小目标检测中的应用

 

 

 

 

第一部分:论文精读

本文的贡献——

  • The definition of new top-hat transformation uses two different but correlated structuring elements to reorganize the classical top-hat transformation, and takes into account of the difference informtion between the target and surrounding regions.
  • The new top-hat transformation has three types of multi-scale operations.

传统的top-hat算法及其缺陷

一、  传统top-hat算法介绍

形态学操作:腐蚀erosion与膨胀dilation

膨胀:f \oplus B = max_{u,v}(f(x-u, y-v) + B(u,v)) 

         对于膨胀,由于取最大值操作,膨胀处理后的图像的灰度值大于原图灰度值,因此膨胀增大原图中的亮区域,填充原图暗区域。

腐蚀:f \ominus B = min_{u,v}(f(x-u,y-v)-B(u,v)),    其中f(x,y)表示待处理图像,B(u,v)表示结构元素.

         对于腐蚀,由于取最小值操作,腐蚀处理后的图像的灰度值小于原图灰度值,因此腐蚀增大原图中的暗区域,填充原图亮区域。

形态学操作:开运算opening 与闭运算closing

开运算:(f\circ B)(x,y)=(f\ominus B)\oplus B

          开运算先腐蚀后膨胀,对于尺寸小于结构元素的亮区域会被完全腐蚀,对于尺寸大于结构元素的亮区域,其边缘会被平滑。

 

闭运算:(f\bullet B)(x,y)=(f\oplus B)\ominus B

         闭运算先膨胀后腐蚀,可以消除尺寸小于结构元素的暗的孔洞。

top-hat算法:white top-hat transformation, WTH & black top-hat transformation, BTH

WTH(x,y)=f(x,y)-(f\circ B)(x,y), 得到亮区域 (面积小于结构元素的亮区域后被保留,因为这部分亮区域在开运算中被腐蚀了);

BTH(x,y)=(f\bullet B)(x,y)-f(x,y), 得到暗区域    (面积小于结构元素的暗区域被保留,因为这部分暗区域在闭运算的膨胀中被背景覆盖了);

因此,WTH可以检测亮目标,BTH可以检测暗目标。

二、传统top-hat算法的缺陷

传统的top-hat算法的开/闭运算中,使用相同的结构元素对原图进行膨胀与腐蚀,存在以下问题:

  1. 噪声影响:如果待检测目标区域存在像素值偏低的噪声,会造成目标漏检;同时WTH也会将亮的噪声检测出来,增加了算法的虚警率;(Top-hat算法依赖于对目标尺寸的假设,Top-hat算法可以筛选出与目标尺寸差别较大的噪声,但与目标尺寸相近的噪声会提高算法的虚警率);
  2. 不能区分目标与背景杂波:当目标位于背景杂波中时,由于事先不知道目标的尺寸,为保证所有目标尽可能被检测出来,通常以目标的最大尺寸作为结构元素的尺寸(即对于大小不超过80pixels的弱小目标,通常选用9*9的结构元素),但是当目标偏小时,被结构元素覆盖的区域大部分为背景,这时,背景杂波会一并被计算,如果背景杂波的亮度值偏高,此时杂波相当于增大了目标的面积,使得在开运算中,尺寸较小的目标被保留,导致WTH操作后,真实的目标被淹没,反而将背景杂波输出。如下图所示,WTH计算结果输出了背景杂波而不是真实目标。(Top-hat算法依赖于被目标明、暗程度的假设,对于既有亮目标又有暗目标的图像,分别使用Top-hat,bottom-hat会增加虚警)

新Top-hat算法

一、算法改进

1. 提出新的结构元素

其中,\Delta B为环形结构,内环半径由B_i决定,外环半径由B_o决定;

            B_b为实心结构,半径位于B_iB_o之间。

2. 改变了膨胀、腐蚀的顺序

与WTH相比,NWTH中先膨胀后腐蚀;与BTH相比,NBTH中先腐蚀后膨胀,且使用的结构元素不同。

二、算法特性

1. 当M(\Delta B)\neq 0时,新top-hat算法不满足

\Delta B用到了局部信息,引入不确定性,导致输入图像与输出图像的不确定关系,NMTH/NBTH会出现负值,因此引入新的计算:

2. 固定\Delta BS(B_b)越大,算法平滑噪声的性能越好;

3. 若B_b \neq B_o,原图的尺寸会被改变;

4. 若B_b=B_o,算法平滑噪声的性能最好,且图像的尺寸不会被改变;

5. 固定B_bM(\Delta B)越大,利用的冗余像素越多,算法平滑噪声的性能越差;

6. 若B_b=B_o,且M(\Delta B)取最大值,则结构元素相同,算法演变为传统的top-hat算法。

三、多尺度操作

共有3种多尺度操作:

1. 改变B_b的尺寸,\Delta B的尺寸不改变

这种方法下,B_o,B_i均固定不变,B_b的一定被B_o包含,所以,改变B_b的尺度,只能提取被B_o覆盖的局部区域的特征。

2. 改变\Delta B的尺寸,B_b的尺寸相对不改变

B_b的尺寸相对不变是指:\Delta B的尺寸改变多少,B_b的尺寸也同样改变多少

3. 同时改变B_b\Delta B的尺寸

B_b的尺寸随\Delta B改变的同时,可以在B_o,B_i范围内自由增减。

四、实验结论及参数设置

文中,分别就多尺度、new top-hat算法在弱小目标检测的应用、图像噪声抑制效果随B_b\Delta B的尺寸变化作了相应的实验。

多尺度实验

选取morphological alternating sequential filters(ASFs)作为对照算法,对比二者对椒盐噪声的抑制效果。

对比之下,本文的算法不仅可以抑制噪声,而且保留更多的图像细节。

小目标检测

与classic top-hat算法相比,new top-hat算法对背景和噪声的抑制效果能好。

对于亮目标区域,NWTH算法首先使用环状结构膨胀,即以目标邻域像素值覆盖目标区域像素值,然后使用实心结构腐蚀,即取目标邻域的最小值取代目标区域,使用原图与膨胀腐蚀后的图像相减抑制背景与噪声。

在此过程中,膨胀相当于邻域取最大值,腐蚀相当于取被覆盖目标区域的最小值,膨胀选取的半径越大,计算的邻域像素数量越多,引入噪声的风险越大;腐蚀选取的半径越大,对高亮点噪声的平滑能力越强,因此膨胀腐蚀操作后的目标区域像素值被拉低,继而图像相减后,目标得到增强而背景、噪声得到抑制。

(其实原理有点像 取目标区域的最小值/其邻域的最大值,以此增大目标与背景的对比度)

尺寸的变化对图像噪声抑制的影响

结论1:随着B_b的增大,LSBR减小

          实验结论显示B_b尺寸越小,目标检测率越高;但由于目标的尺寸有最低限(至少肉眼可分辨),其考虑算法的特性3,4,本文选择S(B_b)=S(B_o) =S(\Delta B),既能保持图像大小不变,又能最大化腐蚀对平滑噪声的效果。

结论2:随着\Delta B的增大,LSBR增大

       实验中令S(B_b)=21,实验显示\Delta B越大,目标检测率越高;但在实际检测中,须保证S(B_i)大于目标尺寸,本文令M(\Delta B)=5.

第二部分:算法复现

1. 构造矩形环状结构元素

function [SE] = newRingStrel(R_o,R_i)
% 构造矩形环状结构元素
%   R_o : the radius of out
%   R_i : the radius of inner
%   delta_R = R_o - R_i
    d = 2 * R_o + 1;
    SE = ones(d);
    start_index = R_o + 1 - R_i;
    end_index = R_o +1 + R_i;
    SE(start_index:end_index, start_index:end_index) = 0;
end

2. 复现new top-hat 中的MNWTH

function [out] = MNWTH(img, delta_B, B_b)
% MNWTH算法,检测亮目标
%   img: 待检测图像
%   delta_B, B_b: 结构元素
    
    if(size(img, 3) > 1)
        img = rgb2gray(img);
    end
    
    %% 先膨胀
    img_d = imdilate(img, delta_B);
    
    %% 后腐蚀
    img_e = imerode(img_d, B_b);
    
    %% 图像相减
    out = img - img_e;
    out(find(out<0)) = 0;
    out = mat2gray(out);
end

3. 绘制图像3D灰度图

function [out] = Draw3DGrayGraph(img, isShowLine)
%绘制三维灰度图
%   img:输入图像
%   isShowLine: 是否显示网格
    if (size(img, 3) > 1)
        img = rgb2gray(img);
    end
    [y, x] = size(img);
    [X, Y] = meshgrid(1:x, 1:y);
    surf(X, Y, img);
%     title('3D gray distribution of the whole image')
    if ~isShowLine
        shading interp;
    end
    out = 0;
end

4. 实验测试

clc;clear;close all
addpath('../');
img = imread('test.bmp');
R_o = 9;
R_i = 4;
delta_B = newRingStrel(R_o, R_i);
B_b = ones(R_i);
img_MNWTH = MNWTH(img, delta_B, B_b);
subplot(221)
imshow(img);title('orignal image')
subplot(223)
Draw3DGrayGraph(img, 0);
subplot(222)
imshow(img_MNWTH);title('MNWTH result')
subplot(224)
Draw3DGrayGraph(img_MNWTH, 0);

 

  • 21
    点赞
  • 127
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Top Hat算法是一种常用于红外目标检测的图像处理算法。该算法主要用于突出红外图像中的小目标,提高目标检测的准确性和可靠性。 Top Hat算法基于形态学处理原理,通过对图像进行开操作和闭操作,突出目标物体的细节信息。开操作主要用于去除图像中的噪声和细小的纹理,使得目标更加突出;闭操作则通过填充目标物体内部的空洞和连接目标与背景之间的断裂,使得目标边缘更加完整。 具体而言,Top Hat算法的步骤如下: 1. 对原始红外图像进行开操作,去除噪声和细小纹理,保留目标物体。 2. 对第一步得到的结果进行闭操作,填充目标物体内部的空洞和连接目标与背景之间的断裂,使得目标边缘更加完整。 3. 对第二步得到的结果与原始图像进行差运算,得到红外图像中仅包含小目标的结果。 4. 对第三步得到的结果进行阈值处理,得到二值图像,将小目标与背景分离。 5. 对第四步得到的二值图像进行形态学处理,如腐蚀和膨胀操作,以进一步去除噪声和细小的非目标物体。 6. 最后得到的处理结果即为红外图像中的小目标。 总之,Top Hat算法利用形态学处理的方法,能够有效地突出红外图像中的小目标,提高红外目标检测的准确性和可靠性。同时,该算法的步骤明确简单,易于实现,因此在红外目标检测领域得到了广泛应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值