该算法由Korea的POSTECH团队提出,其创新点在于:通过CNN树来保存目标在多个跟踪成功帧的外观模型,具有连贯性和多模板跟踪性能,综合评判当前帧待跟踪目标,对目标外观的改变、光照和短时跟踪失败以及目标的短时下消失,有一定的鲁棒性。
CNN结构
CNN的结构和MDNet中的CNN结构差不多,如下图所示:
- 输入层
>输入层接受75*75的RGB图像。(输入图像大小由conv3的单单元感受野决定)
- 隐藏层
conv1-3:采用 VGG-M的卷积层,每两个卷基层之间分别有relu层、normalize层和pool层;(该层参数在ImageNet上预训练)
>fc4-5:全连接层,每层有512个神经元,全连接层之间,包含dropout层。(该层参数随机初始化)
- 输出层
>fc6层有2个神经元( [ϕ(x),1−ϕ(x)]T [ ϕ ( x ) , 1 − ϕ ( x ) ] T ),表示背景和目标的得分。softmaxloss用于计算损失;
每个CNN节点的卷积层共享参数,均通过ImageNet预训练,且在跟踪中不在改变;
全链接层参数在跟踪中随机初始化,并在线fine-tuned。
树结构
其中:
- 黑色箭头的粗细表示CNN对目标估计的权重大小;
- 红色边的粗细表示CNN之间的亲和性大小;
- 方框边界的粗细表示对应CNN的可靠性;
τ=(V,ε)
τ
=
(
V
,
ε
)
其中:
v∈V
v
∈
V
表示CNN;
(u,v)∈ε
(
u
,
v
)
∈
ε
表示CNNs的关系;
The affinity of CNNs
作用:目标估计、提供可靠的更新路径;
含义:CNN之间的亲和性,表示使用训练CNNu的样本作为CNNv的输入,计算最后得分,得分越高,说明两个CNN之间的亲和性越强。
公式:
其中:
- Fv F v :用来训练CNNv的连续帧样本集合;
- x∗t x t ∗ :在t帧被估计目标的状态;
- ϕu(.) ϕ u ( . ) :样本通过CNNu的正的得分;
- |Fv| | F v | :集合中的样本数;
The reliability of CNN
CNN的稳定性:该CNN模型是否错误;
其中:
- s(pv,v) s ( p v , v ) :CNNv和其父节点的亲和性,也就是红色边界的粗细;
- βpv β p v :父节点的稳定性,也就是父节点CNN的黑色边框;
也就是说,当前CNN是否稳定,由父CNN的稳定性和子CNN和父节点的亲和性决定;
举个比喻来说:相当于和好人(父CNN)关系(CNN之间的亲和性)好的人(子CNN)也是好人;
如果和坏人(父节点稳定性差)关系好(CNN之间的亲和性好)的人,或者和好人(父节点稳定性好)关系差(CNN之间的亲和性差)的人都不能算好人,应该用他们的瓶颈值来衡量。
The reliability of CNN with examples
CNN对当前候选样本的亲和性:该CNN的对当前样本的目标部分响应越大,说明对最终参数贡献越大;也有可能对背景或者其他样本相应最大,因此,需要通过CNN的可靠性来判断该CNN是否是用正确的样本训练出来的。
CNN对当前候选样本的亲和性:表示CNNv对t帧跟踪结果的影响大小
The weight of CNN for estimation
通过两个因素确定:
- CNN对当前候选样本的亲和性;
- CNN的稳定性;
每个CNN的权重,取样本的亲和性和CNN稳定性中最小的,最后,在进行归一化处理。
权重计算公式如下:
目标估计
单个样本通过CNN树后的分数,如下式所示:
得分最高的样本就是待估计的样本:
其中:
- xit x t i :N个带估计的样本;
- x∗t x t ∗ :最合适的目标;
- V+⊆V V + ⊆ V :被激活的CNN节点,对目标估计有贡献;
- Wv→t W v → t :与在第t帧中,CNNv在所有被激活的CNNs中的权重;(通过两个因素确定:CNN的稳定性和CNN对当前候选样本的亲和性)
模板更新
模板一直保持最近K=10个CNN激活,为了保持模型的平滑性和可靠性,采用以下方案为模型加入新的节点,并去除老的节点:
当连续跟踪10帧后,开始一次模型更新,每帧收集200(小于0.5IoU)+50(大于0.7IoU),这里有个技巧就是:由于所有CNN的卷积层参数共享,因此,只用计算一次样本的
conv3
c
o
n
v
3
,然后,保存复用即可。有利于提高实时性。收集到的样本记作
Fz
F
z
,父CNN的选择规则是使得新的CNN的稳定性最好,即:
其中:
- s˜(v,z) s ~ ( v , z ) :新的CNN和父CNN之间的边;
新的CNNz使用 Fz F z 和 Fpz F p z 进行fine-tuned。
Bounding Box Regression
见该链接