[2019/3/19] 配置LDES
上次组会提到一个AAAI2019的会议论文,相关滤波方法做到了旋转矩形框,感觉很惊艳。
今天翻了下论文,看到作者用I7CPU跑到20FPS+,不禁拿来试一试。
@InProceedings{Li2019ldes,
author = {Li, Yang and Zhu, Jianke and Hoi, Steven C.H. and Song, Wenjie and Wang, Zhefeng and Liu, Hantang},
title = {Robust Estimation of Similarity Transformation for Visual Object Tracking},
booktitle = {The Conference on Association for the Advancement of Artificial Intelligence (AAAI)},
month = {January},
year = {2019}
}
本文的主要方法是:在Staple和KCF的基础上,添加一个对数变换(主要借鉴了傅里叶-梅林配准方法,对数极坐标变换后将旋转缩放等价变换为位移,并利用相位相关求解。)分支,在代码中以0.85位移+0.15旋转缩放的权重线性计算出score。
经过一系列编译mex相对熟悉的坑,跑出来VOT2016的结果
平均FPS达到将近7,EAO虽然不高,但是已经超出了我的想象了.(忽略ECO的FPS,数据有问题)
给出测试平台:I5-6500@3.2GHz,8G RAM,MATLAB 2016b,(mex文件编译:opencv2.4.9+vs2015)
跟踪器虽然支持旋转矩形框,但是这个明显没有跟上旋转的速度。
丢失的原因基本确定为HC的特征不够强大,形状和颜色区分都不明显。
还是特征。
总体来说,跟踪器算法巧妙,若能有更加强大的特征提取作为“眼睛”肯定能够取得更好的效果。
[2019/3/22] 调整HOG特征和颜色直方图权重
观察样例Blot2视频的时候,有尝试改大颜色直方图的权重,然后滤波器就从博尔特身上飘到了垃圾桶上面。再改回0.4的权重,漂移情况得到改善。但是将权重调低,又会漂移到博尔特旁边的选手身上,就是说HOG特征对同类相似物体的区分很弱。
下面给出原方法的权重公式
S
c
o
r
e
r
e
s
p
o
n
s
e
=
(
1
−
λ
)
∗
S
c
o
r
e
c
f
+
λ
∗
S
c
o
r
e
c
o
l
o
r
Score_{response} =(1-\lambda)*Score_{cf}+\lambda *Score_{color}
Scoreresponse=(1−λ)∗Scorecf+λ∗Scorecolor
文中
λ
=
0.4
\lambda=0.4
λ=0.4.
所以考虑让权重在一定范围内变动,但是仍然在0.6,0.4附近,重新形式化定义这个问题:
S
c
o
r
e
r
e
s
p
o
n
s
e
=
[
θ
(
1
−
λ
)
+
α
(
1
−
θ
)
]
S
c
o
r
e
c
f
+
(
λ
θ
+
(
1
−
θ
)
(
1
−
α
)
)
S
c
o
r
e
c
o
l
o
r
Score_{response} =[\theta (1-\lambda) +\alpha (1-\theta)]Score_{cf}+(\lambda\theta +(1-\theta)(1-\alpha)) Score_{color}
Scoreresponse=[θ(1−λ)+α(1−θ)]Scorecf+(λθ+(1−θ)(1−α))Scorecolor
尝试令
θ
=
0.8
\theta=0.8
θ=0.8,所以相当于允许
S
c
o
r
e
c
f
Score_{cf}
Scorecf权重在
0.48
−
0.68
0.48-0.68
0.48−0.68间变动,
S
c
o
r
e
c
o
l
o
r
Score_{color}
Scorecolor权重在
0.52
−
0.32
0.52-0.32
0.52−0.32间变动.
那么现在的问题就是动态确定线性参数
α
\alpha
α的值
所以想到了martin danelljan大神参与的在ECCV2018发布的UPDT方法中关于置信度的论述,UPDT方法中的置信度是对于两个相近波峰一些比值,与波峰高度和次高峰的位置有关。
然后代码就写错了… 代码写成了最高点和次高点的…
但是出乎意料的结果没有变差,精确度,鲁棒性以及EAO都提升了0.4%左右,所以为什么呢?
代码中置信分数写成了
Z
c
f
=
M
a
x
(
r
e
s
p
s
o
n
s
e
)
−
M
a
x
2
n
d
(
r
e
s
p
s
o
n
s
e
)
(
x
1
−
x
2
)
2
+
(
y
1
−
y
2
)
2
Z_{cf} = \frac {Max(respsonse)-Max2nd(respsonse)}{(x_1-x_2)^2+(y_1-y_2)^2}
Zcf=(x1−x2)2+(y1−y2)2Max(respsonse)−Max2nd(respsonse)
所以其实所谓的次高峰,很有可能还处于主峰中,所以上述式子实际上是求这个峰顶端的近似斜率,也就是峰的陡峭程度。UPDT中关于导数部分的内容恰好能解释效果提升的原因,就是因为斜率更大的峰函数质量更高,定位更清晰准确。