RLCM算法论文阅读笔记:Infrared small target detection utilizing the multiscale relative local contrast .....

本文主要是介绍RLCM算法论文阅读笔记:Infrared small target detection utilizing the multiscale relative local contrast .....,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

J. Han, K. Liang, B. Zhou, X. Zhu, J. Zhao, and L. Zhao, “Infrared small target detection utilizing the multiscale relative local contrast measure,” IEEE Geosci. Remote Sens. Lett., vol. 15, no. 4, pp. 612–616, 2018, doi: 10.1109/LGRS.2018.2790909.

笔记作者:瀚

2023春 于国防科大

glinglilee@outlook.com

I. 核心思想

是基于鲁棒人类视觉系统(robust Human Visual System)的算法

首先对原始红外图像的每个像素计算多尺度RLCM,作者认为这样做可以增强真实目标并同时抑制所有类型的干扰(包括高亮度背景、复杂背景边缘和PNHB)

做一个多尺度RLCM就抑制所有类型干扰,包括高亮背景、复杂背景边缘和高亮噪声.对了,文末有缩写查找表,比如PNHB。这样我就不用每次把全拼拼出来了,你也不用每次都去第一次出现的地方查缩写的意思。

然后,应用自适应阈值来提取真实目标

II. 作者为什么会提出该算法

A. The disadvantage of the traditional algorithm

基于鲁棒人类视觉系统(HVS)特性的检测算法使用 对比度 而不是 亮度 作为目标提取的依据。那么显然对于 对比度 的定义和计算尤为重要。

作者认为传统的对比度定义可以归为两类:

  • difference form 差分形式

​ 将局部中心与局部周围的差分作为局部对比度,对背景进行抑制。

  • ratio form 比例形式

​ 首先计算局部中心与局部周围的比值作为增强因子,然后将增强因子与局部中心值的乘积作为局部对比度。

作者认为对于先前的算法,差分形式的这些算法可以有效消除高亮度背景,但不能有效增强小目标。比例形式的这些算法可以有效地增强目标,但它们使用的是绝对局部对比度,不能有效消除高亮度背景。

一些改进是结合预处理,如 DoG 或 LoG 。然而,检测的鲁棒性可能会被破坏,因为预处理中的任何错误都会干扰结果,即预处理会使图像“失真”。

B. The advantage of the algorithm in this paper

作者提出了一种利用多尺度相对局部对比度测量(RLCM)的红外小暗目标检测算法。

能够在复杂背景下有效处理 不同大小 的小目标

不需要预处理算法消除高亮度背景,鲁棒性得到保证。

此外,所提出的算法具有 并行处理的潜力(我们对此很感兴趣),这对于提高检测速度非常有用

III. 算法介绍

A. 模型的构建

模型中重要的是进行多尺度RLCM计算,这里从 多尺度、RLCM算法、抗干扰分析 这些方面展开

RLCM算法


设置9个窗格(patch window),窗格大小近似于目标尺寸,对原IR图进行从左到右从上到下进行划窗。类似做卷积操作时的划窗。

在这里插入图片描述

既然类似卷积,我们就需要进行 patch window 中心窗格(cell(0))内中心点值的计算,定义为:
R L C M = m i n ( I m e a n 0 I m e a n i I m e a n 0 − I m e a n 0 ) , i = 1 , 2 , . . . , 8 I m e a n 0 I m e a n i = f i (*) RLCM=min(\frac{I_{mean_0}}{I_{mean_i}}I_{mean_0}-I_{mean_0}), \quad i=1,2,...,8 \newline \frac{I_{mean_0}}{I_{mean_i}}=f_i \tag{*} RLCM=min(ImeaniImean0Imean0Imean0),i=1,2,...,8ImeaniImean0=fi(*)
f i f_i fi 可以理解为中心cell的增强因子, I m e a n 0 I_{mean_0} Imean0 I m e a n i I_{mean_i} Imeani 表示 cell(0) 或 cell(i) 中前 K1 或前 K2 个最大像素的平均灰度,表示如下:
I m e a n 0 = 1 K 1 ∑ j = 1 K 1 G 0 j I m e a n i = 1 K 2 ∑ j = 1 K 2 G i j , i = 1 , 2 , . . . , 8 I_{mean_0} = \frac{1}{K_1}\sum\limits_{j=1}^{K_1}G^j_0 \newline I_{mean_i} = \frac{1}{K_2}\sum\limits_{j=1}^{K_2}G^j_i, \quad i=1,2,...,8 Imean0=K11j=1K1G0jImeani=K21j=1K2Gij,i=1,2,...,8
每一个窗格可能包含了很多像素,将这些像素从大到小进行排序,其中 G 0 j G^j_0 G0j G i j G^j_i Gij是cell(0)或cell(i)的第j个最大灰度值,如下图所示(G^1_0就是 G 0 1 G^1_0 G01 LaTeX \LaTeX LATEX)。那么就像这个变量名一样, I m e a n i I_{mean_i} Imeani是cell(i)内最大的K个像素的均值。

在这里插入图片描述

K1 和 K2 是可调控参数,为了获得更大的 f i f_i fi 建议将K2设置为略大于K1的值。

因为这样子就相当于拉低了cell(i)的像素均值,而cell(0)的像素均值很大,相除后的值也很大。

RLCM对于高亮度背景、复杂背景边缘和PNHB抑制分析


分析(*)式,不难得出

  • 对于明显的小目标T,有 R L C M T > 0 RLCM_T>0 RLCMT>0

  • 对于背景B,有 R L C M B ≈ 0 RLCM_B\approx 0 RLCMB0

那么优点显而易见:可以在抛弃背景的同时增强小目标

  • 对于边缘E,认为边缘是沿着特定方向分布,所以在(*)式中有 m i n ( ) min() min()操作,以排除某个方向上的边缘情况,在窗内存在边缘的时候,有 R L C M E ≤ 0 RLCM_E\le 0 RLCME0
  • 对于PNHB,由于K和均值的存在,使得某个噪声像素的高亮被平均,而目标占据的像素更多,即使平均也可以有较大的收益,所以并不影响算法效果,有 R L C M T > R L C M P N H B RLCM_T> RLCM_{PNHB} RLCMT>RLCMPNHB

综上所述,作者认为这些干扰都会被自己的算法所抑制。

多尺度RLCM算法


相信仔细看过式(*)的同学可以看出来,K1和K2是两个很重要的参数,一定程度上他们值的选取和算法的效果好坏有直接的关系。对于不可预先得知的不同尺寸的目标,K1和K2的取值也是要动态变化的。女士们先生们,introducing:多尺度RLCM算法

多尺度RLCM主要就是

  1. 选取L个scale ( s = 1 , 2 , . . , L ) (s=1,2,..,L) (s=1,2,..,L)
  2. 对于不同的scale选取不同的 K 1 s , K 2 s K_{1s},K_{2s} K1s,K2s

对于每个 scale 都要根据经验进行 K 的选择,这似乎是一件会使算法可靠性下降的事情。

  1. 某个像素最终的取值为
    S M ( i , j ) = m a x ( R L C M s ( i , j ) ) , s = 1 , 2 , . . . , L SM(i,j)=max(RLCM_s(i,j)), \quad s=1,2,...,L SM(i,j)=max(RLCMs(i,j)),s=1,2,...,L

其中SM(i,j)表示(i,j)像素在输出显著性图SM上的坐标。显然,这表示需要取不同尺度下该像素的最大值,认为最大时的尺度为合适目标的尺度。

B. 算法的优化

算法的性能或效果和 分割阈值选取算力或资源投入 有关

并行性


那么之前所说该算法具有 并行性 潜能就表现在这里。首先是不同尺度的计算可以并行计算(scale level),其次是相同尺度下的每一个方向的增强因子,即窗格1~8可以并行计算(patch-window level),最后是对于每一个原始图像的像素的RLCM的计算可以并行(pixel level)。

在这里插入图片描述

但是注意前面提到的公式:
R L C M = m i n ( I m e a n 0 I m e a n i I m e a n 0 − I m e a n 0 ) , i = 1 , 2 , . . . , 8 S M ( i , j ) = m a x ( R L C M s ( i , j ) ) , s = 1 , 2 , . . . , L RLCM=min(\frac{I_{mean_0}}{I_{mean_i}}I_{mean_0}-I_{mean_0}), \quad i=1,2,...,8 \newline SM(i,j)=max(RLCM_s(i,j)), \quad s=1,2,...,L RLCM=min(ImeaniImean0Imean0Imean0),i=1,2,...,8SM(i,j)=max(RLCMs(i,j)),s=1,2,...,L
可以得到,不同方向的结果导致像素的结果,不同尺度的结果导致SM图的结果。所以 “不同像素并行” 和 “不同方向并行” 两个操作是不能并行的,但两者的内部操作是可以并行的。

阈值选取


作者采用自适应阈值进行划分:
T h r e s h o l d = μ S M + k t h ⋅ σ S M Threshold=\mu_{SM}+k_{th}\cdot\sigma_{SM} Threshold=μSM+kthσSM
其中 μ S M 、 σ S M \mu_{SM}、\sigma_{SM} μSMσSM是SM的标准差和方差, k t h k_{th} kth是给定参数,实验表明其最佳取值为2~9。在SM图上大于Threshold的值被保留,其他的被抛弃。

IV. 基于该算法的实际测试

待补充

题外话

a multi-scale detection algorithm utilizing the Relative Local Contrast Measure (RLCM)

使用 RLCM 的一种多尺度探测算法

RLCM算法中的纹理特征是通过考虑每个像素周围的灰度值排序来计算的,因此它可以表示该像素所在区域的纹理信息。这是因为在图像中,纹理信息通常表现为相邻像素之间的灰度变化,如同一物体表面的微小细节、边缘和纹理纹理等。

RLCM算法中的纹理特征可以反映像素周围灰度变化的程度和方向,可以提取图像中的纹理信息,用于红外小目标检测中。在RLCM算法中,使用多个不同尺度的窗口来计算每个像素的纹理特征,这样可以捕捉不同尺度的纹理信息,进一步提高算法的性能。

缩写查找表

PNHB: Pixel-sized Noises with High Brightness

IR: Infrared

HVS: Human Visual System

RLCM: Relative Local Contrast Measure. bro,这是算法名,就是个名字而已,就像我不需要知道特朗普三个字到底是什么意思一样。

这篇关于RLCM算法论文阅读笔记:Infrared small target detection utilizing the multiscale relative local contrast .....的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/834348

相关文章

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个