目标跟踪方法
中科院长光所孙海江团队做了一些目标跟踪相关的工作,主要包括MeanShift方法改进,低小慢目标检测,滑动平均目标检测,纹理复杂度和信息熵,特征融合,红外弱小目标检测等等。 本文主要梳理了孙海江团队的工作。
复杂背景灰度图像下的多特征融合运动目标跟踪 (2016)
本文是对MeanShift方法的改进, 传统MeanShift方法主要是利用彩色直方图作为前景目标的特征, 然后进行逐帧匹配,达到跟踪的目的。 本文的主要算法模块如下:
1. 对灰度图像, 利用Sobel算子求出梯度特征,并将梯度特征和灰度特征融合。
2. 利用背景建模的方法对提取的运动目标区域进行加权,降低非跟踪目标的权值。
3. 最后对融合后的加权特征目标利用MeanShift算法进行跟踪。
具体地,首先该算法利用滑动平均方法进行背景建模, 并抽取其中的前景目标。 滑动平均方法公式如下:
I
b
′
=
I
c
+
α
[
I
c
−
I
b
]
I_b' = I_c + \alpha[I_c - I_b]
Ib′=Ic+α[Ic−Ib]
其中,
α
\alpha
α为更新率,
I
b
′
I_b'
Ib′为更新后的背景图像,那么前景目标则是由当前图像和背景图像做差分得到。 即:
I
m
=
I
c
−
I
b
′
I_m = I_c - I_b'
Im=Ic−Ib′
其中
I
m
I_m
Im表示前景目标图像。由于差分的结果是一个灰度图,为了得到二值mask, 那么就需要对差分的结果进行二值化。 对二值化图像进行形态学操作去除掉噪声, 那么就得到了前景目标的ROI区域
R
R
R。
随后, 对
R
R
R,提取梯度特征和灰度特征并融合为
X
I
X_I
XI,即:
X
I
=
λ
P
x
+
μ
P
y
+
v
L
X_I = \lambda P_x + \mu P_y + vL
XI=λPx+μPy+vL
其中,
P
x
,
P
y
P_x,P_y
Px,Py分别为x方向和y方向的梯度特征,
L
L
L为灰度特征,文中给的参数为
λ
=
2
6
/
32
,
μ
=
2
2
/
32
,
v
=
1
/
32
\lambda=2^6/32,\mu=2^2/32,v=1/32
λ=26/32,μ=22/32,v=1/32。
根据
X
I
X_I
XI计算直方图
H
H
H。
最后, MeanShift方法利用直方图
H
H
H进行迭代, 并得到跟踪结果。这篇论文有些地方没有描述完整, 也没有给出完整的算法过程。 这里我做了一点简化, 直接利用MeanShift对多特征直方图进行迭代。
基于复杂度和方向梯度的红外弱小目标检测方法 (2012)
本文采用信息熵对图像复杂度进行描述, 引入图像方差和像素局部变化率对信息熵进行加权,从而抑制云内部和云边界, 以复杂度为描述对象, 建立多级多方向梯度模型
算法主要由两部分组成: 1. 背景抑制;2. 图像分割。
利用信息熵度量灰度图像信息量的公式如下:
H
(
P
)
=
−
∑
i
=
0
255
p
i
log
p
i
H(P) = -\sum_{i=0}^{255} p_i \log p_i
H(P)=−i=0∑255pilogpi
其中
p
i
p_i
pi表示在灰度值为i时的概率,当
p
i
=
0
p_i=0
pi=0时, 定义
p
i
log
p
i
=
0
p_i \log p_i = 0
pilogpi=0。
方差描述了图像灰度变化的剧烈程度, 将方差
A
A
A做为权值, 本文提出了改进信息熵, 公式如下:
H
A
(
P
)
=
−
∑
i
=
0
255
(
s
i
−
s
ˉ
)
2
p
i
log
p
i
H_A(P) = -\sum_{i=0}^{255} (s_i - \bar{s})^2 p_i \log p_i
HA(P)=−i=0∑255(si−sˉ)2pilogpi
其中
s
i
=
i
,
s
ˉ
=
∑
s
i
N
s_i = i, \bar{s}=\frac{\sum s_i}{N}
si=i,sˉ=N∑si。 在上式的基础上, 本文认为, 云边缘区域的灰度直方图呈现双峰特征, 这是由于云区域的像素灰度值较高, 而净空区域的像素灰度值较低。 这两者交界处的灰度变化剧烈, 本文为了抑制云边缘,引入了像素局部变化率B, 假设图像某一个区域R的大小为
U
×
V
U\times V
U×V, 那么该区域的像素局部变化率B可以表示为
B
=
b
U
(
V
−
1
)
+
V
(
U
−
1
)
B = \frac{b}{U(V-1) + V(U-1)}
B=U(V−1)+V(U−1)b
其中
b
b
b为相邻像素间灰度发生变化的个数。(当相邻像素灰度变化超过某一个预定值时,认为发生了变化,文中该预定值取1~3) 。
U
(
V
−
1
)
+
V
(
U
−
1
)
U(V-1) + V(U-1)
U(V−1)+V(U−1)为总的相邻像素的个数。 将B进一步加权,融入到信息熵公式, 得到:
H
A
B
(
P
)
=
−
b
U
(
V
−
1
)
+
V
(
U
−
1
)
∑
i
=
0
255
(
s
i
−
s
ˉ
)
2
p
i
log
p
i
H_{AB}(P) = -\frac{b}{U(V-1) + V(U-1)} \sum_{i=0}^{255} (s_i - \bar{s})^2 p_i \log p_i
HAB(P)=−U(V−1)+V(U−1)bi=0∑255(si−sˉ)2pilogpi
上式作用有限, 为了更有效地抑制云边缘, 本文采用一种双模板复杂度图像作差的背景抑制方法。 具体地,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aljyzDAt-1640264326547)(模板.png)]
首先使用模板
M
I
M_I
MI计算图像的复杂度, 对
M
A
M_A
MA区域使用权值A进行加权, 对
M
B
M_B
MB区域(内框)使用权值B进行加权。 得到加权信息熵
H
A
B
I
H_{ABI}
HABI,然后使用模板
M
I
I
M_{II}
MII计算图像复杂度, 对
M
A
−
M
T
M_A - M_T
MA−MT区域使用权值A进行加权,对
M
B
−
M
T
M_B - M_T
MB−MT区域使用权值B进行加权, 得到加权信息熵为
H
A
B
I
I
H_{ABII}
HABII, 最后作差得到最终的复杂度表达式:
H
A
B
=
H
A
B
I
−
H
A
B
I
I
H_{AB} = H_{ABI} - H_{ABII}
HAB=HABI−HABII
通过上式可以降低云边缘区域的复杂度, 而基本不改变目标区域的复杂度, 即抑制了云边缘。 根据上式计算出的复杂度作为模板中心点的灰度值, 得到复杂度图像
Q
Q
Q(需要归一化)。
然后, 根据复杂度图像进行目标检测。 具体地, 首先构造梯度算子:
∇
x
+
=
∣
Q
(
m
,
n
+
k
)
−
Q
(
m
,
n
)
∣
∇
x
−
=
∣
Q
(
m
,
n
−
k
)
−
Q
(
m
,
n
)
∣
∇
y
+
=
∣
Q
(
m
+
k
,
n
)
−
Q
(
m
,
n
)
∣
∇
y
−
=
∣
Q
(
m
−
k
,
n
)
−
Q
(
m
,
n
)
∣
\nabla x_+ = |Q(m,n+k) - Q(m,n)| \\ \nabla x_- = |Q(m,n-k) - Q(m,n)| \\ \nabla y_+ = |Q(m+k,n) - Q(m,n)| \\ \nabla y_- = |Q(m-k,n) - Q(m,n)| \\
∇x+=∣Q(m,n+k)−Q(m,n)∣∇x−=∣Q(m,n−k)−Q(m,n)∣∇y+=∣Q(m+k,n)−Q(m,n)∣∇y−=∣Q(m−k,n)−Q(m,n)∣
计算复杂度图像的梯度阈值
T
T
T, 以此作为对复杂度梯度变化的度量。
T
=
c
ˉ
+
λ
(
c
m
a
x
−
c
ˉ
)
T = \bar{c} + \lambda (c_{max} - \bar{c})
T=cˉ+λ(cmax−cˉ)
c
ˉ
\bar{c}
cˉ为图像复杂度的平均值,
c
m
a
x
c_{max}
cmax为图像复杂度的最大值,
λ
\lambda
λ为系数,本文取
1
/
4
1/4
1/4。
置计数器为0。 取
k
=
1
k=1
k=1, 对复杂度图像
Q
Q
Q中的每一个像素点,计算4个梯度算子,若3个及以上的梯度算子超过阈值T,则计数器加1。 再取
k
=
2
k=2
k=2,做同样处理。
若计数器值大于1, 则认为该点为目标(255), 否则认为该点为背景(0)。
由此就得到了前景目标的二值mask。
复杂动背景下的“低小慢”目标检测技术 (2019)
本文的目的是要检测低空中的慢速目标,我复现了本文算法(修正了一些模块),下面给出复现的细节。
- 视觉显著性模型
视觉显著性反应了人眼感知系统对视觉信号灯响应。原文给出的模型描述存在问题
正确的模型如下:
S
(
x
,
y
)
=
∑
i
=
0
255
f
i
C
(
I
(
x
,
y
)
,
i
)
S(x, y) = \sum_{i=0}^{255} f_i C(I(x, y), i)
S(x,y)=i=0∑255fiC(I(x,y),i)
其中,
I
(
x
,
y
)
I(x, y)
I(x,y)表示点x, y处的像素点值,
f
f
f表示灰度直方图,
f
i
f_i
fi表示灰度等级i点频数。C(.,.)表示距离度量,一般地
C
(
a
,
b
)
=
∣
a
−
b
∣
C(a, b) = |a - b|
C(a,b)=∣a−b∣
S ( x , y ) S(x, y) S(x,y)的取值范围超出了255,因此要将其极差归一化到[0, 255]区间。
函数原型:cv::Mat computeSaliencyMap(cv::Mat& image);
- 形态学梯度
形态学梯度可以获取目标的边缘轮廓信息,本质上是膨胀结果减去腐蚀结果,函数原型:cv::Mat computeGrad(cv::Mat& image);
- 三帧差分
论文里面三帧差分是差分后的二值图,原理可参考原文。函数原型:cv::Mat computeDiff3(cv::Mat& image0, cv::Mat& image1, cv::Mat& image2);
- 区域生长(没有用到)
论文里面对区域生长这块的描述不清晰,特别是种子如何选取的问题,原文是没有描述的。我复现了经典的区域生长算法。发现效果不理想,分析原因是:三帧差分的值会在目标的边缘外部是255。
意味着如果将这些点当做是种子点,那么目标边缘外部会向四周生长,如果背景比较类似的话,背景全部会生长;另外,由于三帧差分的值在物体内部也极有可能有255。所以,大概率区域生长的结果是全图变白。
尝试改进方案1:腐蚀+膨胀+连通结构计算,得出目标质心,将质心当成种子迭代生长。
这种方法存在偶然性,因为种子较少,如果种子所在的像素点恰好和周围的像素点差别很大,那么将完全无法生长。
所以我的原始实现没有采用区域生长算法,而是做了一些改进。不搞那些虚的,直接针对三帧差分的结果腐蚀+膨胀+计算连通结构,连通结构即为检测到的目标。
函数原型:vetor<cv::Rect> getObjRects(cv::Mat srcImage, cv::Mat mask);
区域生长算法的函数原型:cv::Mat alg_utils::regionGrow(cv::Mat srcImage, cv::Point pt, int ch1Thres,int ch2Thres, int ch3Thres);
- 合并距离比较近近的矩形框
在前面生成的结果中,可能存在着一些零散的小矩形框挨的比较近,一个合理的办法是将这些矩形框合并。
函数原型: vector<cv::Rect> combineNearRects();
局部对比度结合区域显著性红外弱小目标检测 (2015)
作者提出了一种区域局部对比度算法,仅在图像的显著性区域中进行局部对比度计算,而非遍历整幅图像。
- 首先进行基于图像信息熵和局部相似性的红外图像区域显著性度量,经二值化得到单帧图像显著性区域;
- 在该区域中进行局部对比度数值计算,得到区域局部对比度图像;
- 最后经过自适应阈值分割,得到弱小目标检测结果;
区域显著性度量
本文提出的方法主要针对弱小目标的红外图像,对于人眼而言,弱小目标是红外图像中显著性较高,信息量大的区域。
本文采用信息熵来度量图像区域信息量,图像中某一点
(
x
,
y
)
(x,y)
(x,y)的信息熵被定义为
H
(
x
,
y
)
H(x,y)
H(x,y):
H
(
x
,
y
)
=
H
(
A
(
x
,
y
)
)
=
−
∑
b
=
1
K
p
b
(
x
,
y
)
l
g
p
b
(
x
,
y
)
,
H(x,y) = H(A(x,y)) = -\sum_{b=1}^K p_b(x,y)lg p_b(x,y),
H(x,y)=H(A(x,y))=−b=1∑Kpb(x,y)lgpb(x,y),
其中,
A
(
x
,
y
)
A(x,y)
A(x,y)表示像素点(x,y)周围的一个局部区域,将该局部区域内的像素值投影到K个区间上,
p
b
(
x
,
y
)
p_b(x,y)
pb(x,y)表示像素值处于区间b的概率。设基于信息熵的显著性区域二值图像为
H
^
(
x
,
y
)
\hat{H}(x,y)
H^(x,y)。
信息熵只考虑了每个区域的灰度统计分布,没有考虑像素的空间分布,实际红外图像中,背景往往呈现出一定的空间相似性,本文提出了一种方法去除图像中相似的区域。
由于在实际图像中,具有相似性的区域往往处于比较接近的位置,而非相隔较远。换言之,像素点的自相似性是由邻近区域决定的。首先,我们给出两个大小相同的区域
A
1
,
A
2
A_1, A_2
A1,A2的相似性度量公式:
ρ
A
1
,
A
2
=
1
∣
∣
A
1
−
A
2
∣
∣
2
2
.
\rho_{A_1,A_2} = \frac{1}{||A_1 - A_2||_2^2}.
ρA1,A2=∣∣A1−A2∣∣221.
整个图像的相似性判别过程分成了两部分:
- 水平方向逐区域计算邻区域间相似度;
- 垂直方向逐区域计算邻区域间相似度;
随后,如果相似度大于等于给定阈值;就认为两个区域相似性很强,这两个区域将被设定为0,即不显著,反之设定为1,即显著。由于有水平和垂直两个方法得到的相似性度量结果,因此最终两个部分将合取,以确定最终的显著性图 S ^ \hat{S} S^。示意图如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T7ZtxOUs-1640264326548)(./111.png)]
最后再将基于熵的区域显著性图像和基于局部相似性的区域显著性图像融合(合取),最终就获得了图像的显著性区域 R s R_s Rs。虽然感觉显著性图计算方法过程简单,但有两个问题:1. 局部区域大小如何设定?2. 相似性阈值如何设定?文中并未给出这两个参数的设置方法。从上图也可以看出来,实际上该方法获得的显著性图效果不太好。
红外弱小目标检测算法
本文采用了一种局部对比度方法(LCM)来进行弱小目标检测。依据弱小目标区域与背景区域的差异性,利用每个像素点与其周围区域像素点的局部对比度值来描述该点。如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UyAFHr8K-1640264326549)(./222)]
对于当前帧w,设置滑动窗口为v,将v划分成3x3的更小的patch(图b)。LCM算法的过程如下:
- 计算9个小patch中,0号单元所在patch的最大像素值 L n L_n Ln;
- 分别计算1-8号单元的平均灰度值 m i , i = 1 , . . . , 8 m_i, i = 1, ..., 8 mi,i=1,...,8;
- 局部对比度数值为
C n = min i L n 2 m i , i = 1 , . . . , 8 C_n = \min_i \frac{L_n^2}{m_i}, i = 1, ..., 8 Cn=iminmiLn2,i=1,...,8
随后将0号单元的中心像素点灰度值用 C n C_n Cn代替,并计算出当前图像块v所对应的局部对比度数值。在整个图像中重复该过程,可得到与原图像相对应的局部对比度图像C。
LCM 方法是一种像素级操作, 通过计算每个像素点所在区域与周边区域的差异, 来突出弱小目标并抑制背景。 但弱小目标在图像中所占区域不超过0.15%, 如果在整幅图像中计算LCM, 计算量过大, 在不显著的背景区域处理中耗费了大量时间, 不利于实现高效、 准确的弱小目标检测。 研究发现,HVS 中存在注意力转移机制, 会对信息量大、 显著性强的区域进行优先处理。
因此, 提出一种结合区域显著性的局部对比度算法, 利用第1 节中提出的基于图像信息熵和局部相似性度量的方法剔除视觉冗余区域, 保留显著性高的区域, 在该区域中进行LCM 计算, 即区域LCM 策略(PLCM) 。
通过PLCM 的弱小目标检测流程为: 输入一幅待处理的红外图像I , 首先计算基于图像熵的区域显著性图像^H 以及基于局部相似性的区域显著性图像^S , 根据式(4) , 将二者进行融合, 得到最终的区域显著性图像RS ; 其次在区域显著性RS 的范围内计算区域 LCM, 就得到了 PLCM 图像; 最后进行自适应阈值分割, 阈值设定方法为
T
=
I
ˉ
+
λ
σ
I
ˉ
T = \bar{I} + \lambda \sigma_{\bar{I}}
T=Iˉ+λσIˉ
其中
I
ˉ
\bar{I}
Iˉ为区域局部对比度图的均值,
σ
I
I
ˉ
\sigma_{I\bar{I}}
σIIˉ表示对应的方差,
λ
\lambda
λ是自适应调节因子,实验中一般取
[
4.5
,
7
]
[4.5, 7]
[4.5,7]。PLCM的过程如下图。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5RoB5BMS-1640264326549)(./333)]
A Novel Fast Detection Method of Infrared LSS-Target in Complex Urban Background
本文提出一种新型的目标检测算法, 针对复杂的城市背景和红外的低空,慢速, 小目标(LSS)检测。
首先, 本文提出了一种基于累积直方图和MLE的自适应阈值分割, 被用于消除噪声和提升原图像的信噪比。其次, 设置一个模板用于识别图像中的种子点。然后, 一种约束的4条件区域生长算法被用于分割区域。 最后, 构建置信度量, 用以消除虚目标和背景边线。
LSS的图片往往具有以下特征:
1. 目标往往只有几个像素, 形状和点目标相似;
2. 图像的信噪比往往不高, 目标经常隐藏在背景中;
3. 背景往往复杂, 比如建筑, 树木, 云层等。
同时具有以下难点:
1. 背景先验信息的缺乏;
2. 低信噪比使得背景,目标, 噪声不易识别;
3. 目标可能间断地消失在背景中, 难以预测;
4. 缺乏形状和纹理特征。
LSS目标的红外特征主要是来自气动加热的辐射。 当目标移动时, 由于目标和空气的摩擦,其表面会被加热, 目标的表面温度
T
s
T_s
Ts可由下式计算:
T
s
=
T
0
(
1
+
0.16
M
2
)
T_s = T_0(1 + 0.16M^2)
Ts=T0(1+0.16M2)
其中
T
0
T_0
T0是大气温度,
M
M
M是马赫数,和目标的速度相关。
普朗克黑体辐射定律揭示了黑体辐射能量和波长温度的关系, 其数学表达如下:
W
B
(
λ
,
T
)
=
c
1
λ
5
⋅
1
exp
(
c
2
λ
T
)
−
1
I
B
(
λ
,
T
)
=
W
B
(
λ
,
T
)
π
W_B(\lambda, T) = \frac{c_1}{\lambda^5} \cdot \frac{1}{\exp(\frac{c_2}{\lambda T}) - 1} \\ I_B(\lambda, T) = \frac{W_B(\lambda, T)}{\pi}
WB(λ,T)=λ5c1⋅exp(λTc2)−11IB(λ,T)=πWB(λ,T)
其中
W
B
(
λ
,
T
)
W_B(\lambda, T)
WB(λ,T)是黑体的光谱辐照度,
λ
\lambda
λ是波长,
T
T
T是黑体辐射的热力学温度,
c
1
=
3.742
×
1
0
6
W
⋅
m
−
2
c_1 = 3.742 \times 10^6 W \cdot m^{-2}
c1=3.742×106W⋅m−2是第一辐射常量,
c
2
=
1.4388
×
1
0
−
2
W
⋅
K
c_2 = 1.4388 \times 10^{-2} W \cdot K
c2=1.4388×10−2W⋅K是第二辐射常量。
I
B
I_B
IB是黑体的光谱辐射率, 是单位面积,单位时间和单位波长的辐射强度。
根据上述公式, 作者在文中分析了, 背景和目标的温度差异很小, 且红外图像的灰度值较低, 且集中。 一般的红外图像由下式进行建模:
F
(
x
,
y
)
=
T
(
x
,
y
)
+
B
(
x
,
y
)
+
N
(
x
,
y
)
F(x,y) = T(x,y) + B(x,y) + N(x,y)
F(x,y)=T(x,y)+B(x,y)+N(x,y)
其中
T
(
x
,
y
)
T(x,y)
T(x,y)表示目标,
B
(
x
,
y
)
B(x,y)
B(x,y)和
N
(
x
,
y
)
N(x,y)
N(x,y)分别表示背景杂波和噪声。
前面说了一堆的废话, 实际上本文的检测算法流程如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1GCE9inf-1640264326549)(检测流程.png)]
输入是一张红外图像(8-bit灰度图像), 通过统计直方图, 高斯函数拟合, 极大似然估计来抽取ROI, 随后通过局部极大和四方向区域生长进行后处理, 以去除虚目标,通过置信度量得到真实的目标, 流程非常清晰。
基于MLE和直方图统计的ROI选择
由于图像背景复杂, 作者提出了一个自适应的高效前背景分离方法。
具体地, 作者认为具有多个目标和复杂背景的图像具有混合分布, 其直方图可以看成是多个高斯分布的叠加, 作者用两个高斯分布相加来拟合该直方图:
f
(
x
)
=
a
1
exp
[
−
(
x
−
b
1
c
1
)
2
]
+
a
2
exp
[
−
(
x
−
b
2
c
2
)
2
]
f(x) = a_1 \exp[-(\frac{x-b_1}{c_1})^2] + a_2 \exp[-(\frac{x-b_2}{c_2})^2]
f(x)=a1exp[−(c1x−b1)2]+a2exp[−(c2x−b2)2]
其中
a
1
,
b
1
,
c
1
,
a
2
,
b
2
,
c
2
a_1, b_1,c_1,a_2,b_2,c_2
a1,b1,c1,a2,b2,c2是待定参数,
x
x
x为灰度值,
f
(
x
)
f(x)
f(x)为灰度值
x
x
x对应的概率,其真实值由图像直方图计算得到。 上式通过MLE进行拟合,以求得这些待定参数。
作者这里使用对数似然对参数求偏导等于0的方法求解参数, 不过这些参数没有闭合式解, 因此只能采用迭代算法,比如坐标上升法。 但大部分情况下,只能收敛到局部最优解。 原文中作者倒是没有给出这些参数的具体求解方法, 应该是通过数学软件求解的参数。
随后, 根据下式, 得到函数 f ( x ) f(x) f(x)的波谷 Q Q Q,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wqGZ0jS1-1640264326550)(444.png)]
作者将灰度值大于波谷的设置为背景, 最终得到预处理图像
g
(
x
,
y
)
g(x,y)
g(x,y)。
这其实比较好理解, 作者认为,图像的直方图是两个高斯分布的叠加, 红外目标一般具有低灰度值特性, 所以平均灰度值小的高斯分布对应目标, 而平均灰度值较大的高斯分布对应背景, 因此作者采用上式来对背景进行过滤。 两个高斯分布的间隔点波谷即为分割点。 至于求导等于0的公式, 这只是理论上, 实际求解我猜想是应该遍历扫描得到最佳分割点即可, 或者用方差极大算法(OTSU, 大津法)得到最佳分割点。
标记种子点
LSS目标的灰度值往往呈现出邻域范围内局部极大的特性。 作者使用局部极大检测标记种子点, 这些种子点可能属于目标的一部分。那些灰度值显著大于邻域像素灰度值的点被标记为局部极大点。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4SAPGbgD-1640264326550)(localmaxima.png)]
通过上述算法, 可以迭代地标记出种子点。 上述算法首先利用一个 3 × 3 3\times 3 3×3的window求图像的patch均值, 图像灰度值大于均值超过阈值 α = 10 \alpha=10 α=10的点设置为0,该点就被标记为种子点。
约束4标准区域生长算法
区域生长是目标检测的一个常规步骤, 区域生长就是根据一个预定义的生长规则,结合邻域像素为一个更大的区域。 基本算法过程从一个种子点集出发,根据生长规则,形成生长区域。 针对LSS目标检测而言, 一般的区域生长算法无法满足需求。 本文提出了一种约束4标准区域生长算法。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qRySOeCQ-1640264326550)(region_growth.png)]
上述算法说白了, 就是在种子点周围的8邻域进行区域生长, 不过针对对角邻域和4邻域有不同的阈值设定。
候选目标的置信度量
在LSS目标检测中, 期望是获得较高的检测率和低的虚警率。 上述算法尽管可以移除大面积的复杂背景杂波, 但是仍然有一些虚警目标无法移除。 本文提出了置信度量来实现目标检测。
一个目标的置信度
C
(
A
i
)
C(A_i)
C(Ai)的计算公式如下:
C
(
A
i
)
=
Π
j
=
1
6
C
j
(
A
i
)
C(A_i) = \Pi_{j=1}^6 C_j(A_i)
C(Ai)=Πj=16Cj(Ai)
其中 C j C_j Cj分别表示目标在不同方面贴近真实目标的程度, 比如 C 1 C_1 C1表示权重置信度, C 2 C_2 C2表示高度置信度, 当这些置信度不满足设定的阈值时, 就设置为0, 那么总的置信度也为0, 此时就认为它是虚警目标。
Infrared LSS-Target Detection Via Adaptive TCAIE-LGM Smoothing and Pixel-Based Background Subtraction
基于自适应纹理复杂度和信息熵的 ℓ 0 \ell_0 ℓ0梯度极小化平滑和基于像素的背景抽取的红外低小慢目标检测。
首先, 本文计算红外图像的两个主要成分: 复杂度和信息熵。 这两个成分被当成是自适应平滑的控制参数。
其次, 提出了自适应
ℓ
0
\ell_0
ℓ0平滑的梯度极小化算法, 基于纹理复杂度和信息熵。用于移除噪声和抑制低振幅的图像细节。
最后, 高斯差分图被应用到基于像素的自适应分割背景建模算法, 以区分红外小目标和复杂背景。
实验结果表明这个方法具有较高的检测率, 并产生更低的虚警率, 当然吹都要这么吹。
图像的信息熵计算公式如下:
P
(
i
,
j
)
=
f
(
i
,
j
)
M
2
,
E
N
T
2
=
−
∑
i
=
0
255
∑
j
=
0
255
P
(
i
,
j
)
log
P
(
i
,
j
)
P(i,j) = \frac{f(i,j)}{M^2}, ENT_2 = -\sum_{i=0}^{255}\sum_{j=0}^{255}P(i,j)\log P(i,j)
P(i,j)=M2f(i,j),ENT2=−i=0∑255j=0∑255P(i,j)logP(i,j)
其中, i表示当前像素的灰度值, j表示当前像素的邻域灰度值。
f
(
i
,
j
)
f(i,j)
f(i,j)表示当前像素灰度值i和邻域像素灰度值j在整张图片中的计数, 所以
P
(
i
,
j
)
P(i,j)
P(i,j)为i,j这个pair在整张图片中出现的频率。
E N T 2 ENT_2 ENT2给出了二维信息熵的计算公式,反映了灰度值的位置信息, 如果像素值的概率分布是平衡的, 目标轮廓是清晰的, 那么熵值就较大, 否则, 如果共生矩阵的元素有差异, 那么熵值就比较小。
纹理是反映图像中同质现象的一种视觉特征,它体现了表面结构在渐变或周期性变化中的结构和排列特性。纹理特征是一种全局特征,它描述了场景中对应于图像或图像区域的表面属性。纹理特征作为一种统计特征,具有旋转不变性和较强的抗噪声能力。角二阶矩是图像纹理灰度变化的度量,它反映了图像纹理灰度分布的均匀性和纹理的厚度。因此,本文利用图像直方图的角二阶矩来计算图像的纹理复杂度。
一维直方图计算公式如下:
h
(
z
i
)
=
n
i
,
i
=
0
,
…
,
L
−
1
,
p
(
z
i
)
=
n
i
n
h(z_i) = n_i, i=0,\dots, L-1, p(z_i) = \frac{n_i}{n}
h(zi)=ni,i=0,…,L−1,p(zi)=nni
其中
z
i
=
i
z_i=i
zi=i为灰度值,
n
i
n_i
ni为灰度值
z
i
z_i
zi的个数,
p
(
z
i
)
p(z_i)
p(zi)为灰度值
z
i
z_i
zi的频率。
图像灰度值的期望为:
E
[
z
]
=
∑
i
=
0
L
−
1
z
i
p
(
z
i
)
E[z] = \sum_{i=0}^{L-1}z_i p(z_i)
E[z]=i=0∑L−1zip(zi)
直方图的角二阶矩为:
μ
(
z
)
=
∑
i
=
0
L
−
1
(
z
i
−
E
[
z
]
)
2
p
(
z
i
)
\mu(z) = \sum_{i=0}^{L-1} (z_i - E[z])^2 p(z_i)
μ(z)=i=0∑L−1(zi−E[z])2p(zi)
本文改进的方法如下:
信息熵被用来评估图像的能量, 角二阶矩评估图像的纹理复杂度, 这两个参数被用于替换
ℓ
0
\ell_0
ℓ0梯度极小化方法的
λ
\lambda
λ参数, 并有如下变形:
min
S
∑
p
(
S
p
−
I
p
)
2
+
(
k
1
+
k
2
)
C
(
S
)
\min_S \sum_p (S_p - I_p)^2 + (k_1 + k_2)C(S)
Sminp∑(Sp−Ip)2+(k1+k2)C(S)
其中
C
(
S
)
=
∣
{
p
∣
∣
∂
x
S
p
∣
+
∣
∂
y
S
p
∣
≠
0
}
∣
,
p
≠
0
C(S) = |\{p| |\partial_xS_p| + |\partial_yS_p| \neq 0\}|, p\neq0
C(S)=∣{p∣∣∂xSp∣+∣∂ySp∣=0}∣,p=0
k
1
=
1
ϕ
E
N
T
2
,
k
2
=
1
φ
μ
(
z
)
k_1 = \frac{1}{\phi} ENT_2, k_2 = \frac{1}{\varphi}\mu(z)
k1=ϕ1ENT2,k2=φ1μ(z)
由于
ℓ
0
\ell_0
ℓ0范数不可导, 所以上式是一个NP难问题, 本文将其转化成为一个二次规划问题。
min
S
,
h
,
v
∑
p
(
S
p
−
I
p
)
2
+
(
k
1
+
k
2
)
C
(
h
,
v
)
+
β
[
(
∂
x
S
p
−
h
p
)
2
+
(
∂
y
S
p
−
v
p
)
2
]
,
C
(
h
,
v
)
=
∣
{
p
∣
∣
h
p
∣
+
∣
v
p
∣
≠
0
}
∣
,
p
≠
0
\begin{array}{l} \min_{S, h, v} \sum_p (S_p - I_p)^2 + (k_1 + k_2) C(h, v) + \beta[(\partial_x S_p - h_p)^2 + (\partial_yS_p - v_p)^2], \\ C(h, v) = |\{p| |h_p| + |v_p| \neq 0\}|, p\neq0 \end{array}
minS,h,v∑p(Sp−Ip)2+(k1+k2)C(h,v)+β[(∂xSp−hp)2+(∂ySp−vp)2],C(h,v)=∣{p∣∣hp∣+∣vp∣=0}∣,p=0
其中 h p h_p hp和 v p v_p vp为辅助变量。 上式通过交替极小化方法求解。
基于统计信息的改进滑动平均目标检测算法
文章提出了一种基于统计信息的改进滑动平均方法。 首先, 依据帧间差分对光照不敏的特性, 粗略分离出背景和前景部分, 同时去除掉其他随机孤立噪声, 然后再滑动平均算法中引入对前景点的统计计数, 自适应更新背景建模学习速率, 加速背景模型收敛, 最后将滑动平均与三帧差分两者形态学处理后的目标团块进行与运算, 得到准确的前景区域。
滑动平均法是一种基本的背景相减法, 在背景较为稳定的情况下可以准确地提取出前景。 滑动平均法是基于像素信息的背景建模方法, 根据背景图像和当前帧图像的加权, 动态更新背景模型, 使得模型适应场景变化, 更新过程由下式表示:
B
t
+
1
(
x
,
y
)
=
(
1
−
α
)
B
t
(
x
,
y
)
+
α
F
t
(
x
,
y
)
B_{t+1}(x,y) = (1-\alpha)B_t(x, y) + \alpha F_t(x, y)
Bt+1(x,y)=(1−α)Bt(x,y)+αFt(x,y)
其中:
α
\alpha
α是背景模型场景变化更新速率, 取值范围
0
<
α
<
1
0 < \alpha < 1
0<α<1,
F
t
(
x
,
y
)
F_t(x, y)
Ft(x,y)是第t帧图像,
B
t
(
x
,
y
)
B_t(x, y)
Bt(x,y)是时刻t的背景。
滑动平均建模算法的优势在于时间复杂度低, 算法处理思想简单。 具体思想是利用当前帧和背景图像之间的像素灰度差的绝对值来分析视频图像序列, 并根据其做差结果确定是否有运动目标前景。 如果差值的绝对值比设定阈值小, 就是背景点; 如果大于设定阈值就是前景运动点, T为给定阈值, 由下式表示:
B
G
S
t
(
x
,
y
)
=
1
if
∣
B
t
(
x
,
y
)
−
F
t
(
x
,
y
)
∣
≥
T
BGS_t(x, y) = 1 \text{ if } |B_t(x, y) - F_t(x, y)| \geq T
BGSt(x,y)=1 if ∣Bt(x,y)−Ft(x,y)∣≥T
否则为0。
三帧差分先前已经介绍过了, 这里不再重复介绍。
非自适应更新率 α \alpha α一般是给定的值, 本文重新定义了更新率, 使得预先设定的定值变为可以自适应更新的值。 如下式:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xGaYJZnS-1640264326551)(555.png)]
其中C为统计度量, 用来记录每个像素点被连续判别为前景的次数。 其初始值为0, 当像素点被判断为前景点, 即满足
D
k
≥
T
D_k \geq T
Dk≥T的条件, 则C的值增加1。
统计值C的更新策略如下: 当某个像素点从前景判别为背景时, C的取值若连续5帧不再增加则清零, 重新开始计数; 若在5帧内被判别为前景点, 则断定是误判, C的值继续增加, C值最大取10, 以规避极端未知情况。
背景模型的自适应更新速率公式如下:
α
=
α
f
H
k
(
x
,
y
)
+
α
b
(
1
−
H
k
(
x
,
y
)
)
\alpha = \alpha_f H_k(x, y) + \alpha_b (1 - H_k(x, y))
α=αfHk(x,y)+αb(1−Hk(x,y))
H
k
(
x
,
y
)
=
0
if
D
k
≤
T
,
otherwise
1.
H_k(x, y) = 0 \text{ if } D_k \leq T, \text{ otherwise } 1.
Hk(x,y)=0 if Dk≤T, otherwise 1.
通过以上算法处理, 改进后的滑动平均算法能够得到较为完整的目标区域, 而由于三帧差分固有缺陷, 提取出的运动区域会产生空洞, 需要对其进行连通域分析进行区域填充, 再将两者目标检测结果取与, 进行形态学处理, 如膨胀等, 完善目标信息, 并得到最终的检测结果。 初始值设定为 α f 0 = 0.2 , α b 0 = 0.8 , T = 20 \alpha_{f_0} = 0.2, \alpha_{b_0} = 0.8, T = 20 αf0=0.2,αb0=0.8,T=20。