[Real-Time MDNet]ECCV2018论文阅读笔记

Real-Time MDNet (ECCV2018) 论文地址 代码

写在前面

这篇论文的作者之一Bohyung Han是MDNet,TCNN的作者。这篇论文从题目中也可以看到,是一个加速了的MDNet,总体网络结构和MDNet一样,就是加了一个RoIAlign层,把从卷积层输出的特征压成了 3 ∗ 3 3*3 33的,这样就加快了速度。并且他们的损失函数使用了两个损失项,一项是对于某个类的前景背景分类损失,一个是类之间的分类损失,通过这个提升了网络的精度,得到了加快的MDNet,并且精度几乎和原始的MDNet一样。

Motivation

在目标跟踪领域,利用深度学习的方法以牺牲时间为代价来获得高精度结果,MDNet的提出很大程度提高了目标跟踪的精度,但是MDNet很难区分未见过的物体,特别是这个物体和目标有相似的语义。而且目前的这些网络其实用的分类的数据集,这样就造成了网络只能有效的做前景背景的区分,但是很难去辨别两个物体之间的差距。

Contribution

  • 他们使用了RoIAlign技术来加快网络的特征提取,并且保持了网络的精度,提出了一个实时的跟踪算法;
  • 他们使用了Multi-task的损失函数,(1)区分目标和背景;(2)区分物体实例;
  • 比MDNet快了25倍,几乎保持了一样的精度。

Algorithm

这篇文章的网络结构如下:
在这里插入图片描述
网络一共有三个卷积层+一个自适应的RoIAlign层+三个全连接层。其中前三层的参数跟VGG-M一样,三个全连接层参数随机初始化。一张输入图像,在经过三个卷积层提取特征后,进入了自适应的RoIAlign层提取RoI,这个操作减少了很多时间。然后提取的RoI传入下面的两个全连接层,这两个全连接层的输出是二值化的,代表这个proposal是前景和背景的score。与MDNet一样,最后一个全连接层被分为D个branch ( f c 6 1 − f c 6 D fc6^1 -fc6^D fc61fc6D),每一个分支代表一个一个domain,也就是一个minibatch中的一个视频序列。(上图从第一个全连接层就开始分成三个,但是论文里只提到了最后一层分成D个,大概这图也只是示意,并不是分开的意思把~)

Adaptive RoIAlign

因为直接在第三层出来的特征上做RoIAlign太粗糙了,第三层输出的特征太少了,所以他们把第二个卷积层后面的Maxpooling层删掉了,然后还在第三层上做了一个加大的卷积操作,主要功能就是放大conv3的尺寸,感兴趣的可以看参考文献[1]。
在这里插入图片描述
这里的自适应其实是指在做RoIAlign时的步长,他们提出如果RoIAlign步长大于feature map,那就会丢掉很多信息,所以把步长都设成了 [ w w ′ ] [\frac{w}{w'}] [ww] w w w是conv3出来特征图的维度, w ′ w' w是最终得到的RoI维度, [ ⋅ ] [\cdot] []是向下取整,这里是 7 ∗ 7 7*7 77。所以这个RoIAlign就是自适应的了,文章表明这个管用可能是因为在跟踪任务中,一点小的调整可能对最终跟踪结果影响很大。

Instance Embedding(Pretraining)

这边就是将实例的损失加入总的损失函数中,这里的想法就是将其他domain的前景目标加入到某个特定的domain中,获得更加具有语义区分度的跟踪器。主要的做法如下,对于一个属于Domain d的图片 x d x^d xd和它的bbox,得到一个输出如下:
f d = [ ϕ 1 ( x d ; R ) , ϕ 2 ( x d ; R ) , . . . ϕ D ( x d ; R ) ] ∈ R 2 ∗ D f^d = [\phi^1 (x^d; R),\phi^2 (x^d;R),...\phi^D(x^d;R)]\in R^{2*D} fd=[ϕ1(xd;R),ϕ2(xd;R),...ϕD(xd;R)]R2D
就是将每个 f c 6 fc6 fc6的输出都连接起来,其中 ϕ d ( ⋅ ; ⋅ ) \phi^d(\cdot ;\cdot ) ϕd(;)只有两个值,表示这个目标是前景还是背景。
然后根据以上输出就可以计算一个前景背景分类损失 σ c l s \sigma_{cls} σcls 和实例分类损失 σ i n s t \sigma_{inst} σinst
[ σ c l s ( f d ) ] i j = e x p ( f i j d ) ∑ k = 1 2 e x p ( f i j d ) [\sigma_{cls}(f^d)]_{ij} = \frac{exp({f_{ij}}^d)}{\sum_{k=1}^2exp({f_{ij}}^d)} [σcls(fd)]ij=k=12exp(fijd)exp(fijd)
[ σ i n s t ( f d ) ] i j = e x p ( f i j d ) ∑ k = 1 D e x p ( f i j d ) [\sigma_{inst}(f^d)]_{ij} = \frac{exp({f_{ij}}^d)}{\sum_{k=1}^Dexp({f_{ij}}^d)} [σinst(fd)]ij=k=1Dexp(fijd)exp(fijd)
其实从上面两个式子也可以看出,上一个是为了得到当前目标在当前Domain中被分类为前景的概率占总的概率;下一个是得到当前目标在当前Domain中分类的score与它在所有Domain中的score和之间的比例。这个网络的损失函数就是把这两项加起来:
L = L c l s + L i n s t L = L_{cls}+L_{inst} L=Lcls+Linst
其中 L c l s L_{cls} Lcls L i n s t L_{inst} Linst如下:
L c l s = − 1 N ∑ i = 1 N ∑ c = 1 2 [ y i ] c d ^ ( k ) ⋅ l o g ( [ σ c l s ( f i d ^ ( k ) ) ] c d ^ ( k ) ) L_{cls} = -\frac{1}{N}\sum_{i=1}^N \sum_{c =1}^2 [y_i]_{c\hat{d}(k)} \cdot log([\sigma_{cls}({f_i}^{\hat{d}(k)})]_{c\hat{d}(k)}) Lcls=N1i=1Nc=12[yi]cd^(k)log([σcls(fid^(k))]cd^(k))
L i n s t = − 1 N ∑ i = 1 N ∑ d = 1 D [ y i ] + d ⋅ l o g ( [ σ i n s t ( f i d ) ] + d ) L_{inst} = -\frac{1}{N}\sum_{i=1}^N \sum_{d =1}^D [y_i]_{+d} \cdot log([\sigma_{inst}({f_i}^{d})]_{+d}) Linst=N1i=1Nd=1D[yi]+dlog([σinst(fid)]+d)

其中 d ^ ( k ) = ( k % D ) \hat{d}(k) = (k \% D) d^(k)=(k%D)

其中 L i n s t L_{inst} Linst只取为前景的,加了这个 L i n s t L_{inst} Linst效果如下图:
在这里插入图片描述

Online Tracking

在跟踪的时候,在第一帧提取proposal来fine-tune网络,并训练boundingbox回归的参数,在模型更新也跟MDNet一样的时候长短时间更新,然后也有hard negative mining,都和MDNet一样,这里就不赘述了。具体的网络训练和更新细节可以去看论文。

Experiments

他们在OTB2015,UAV123和TempleColor上做的测试,文章里没有涉及到VOT的库,这篇文章和MDNet存在同样的问题,当出现过分遮挡、运动过快、out-of-plane时会失败:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

这篇论文引入了RoIAlign的方式来加快,然后通过优化损失函数来提高精度,虽然在精度上和MDNet差不多,但是时间确实是快了,不知道能不能应用在目前比较慢的一些算法中,ECO、CCOT这样的。

优点
  • 引入了RoIAlign的方式,受到了Faster R-CNN的启发,其实也在告诉我们现在的趋势是偏向多领域结合;
  • 在损失函数上加了一个实例级别的损失项,强调了实例之间的区分,对网络的精度做了很大的贡献。
缺点
  • 精度比原来的MDNet还差一点点,并且也比不过ECO,CCOT,和现在18年的Siamese网络速度和精度上都还有一定差距;
  • 这篇文章虽说是增强了实例级别的区分能力,但其实做的还是在已知的类之间的区分,遇到训练数据集中没有出现过的类可能效果就不会好;
  • 模型还是需要在线的fine-tune,花费了很多时间。

参考文献

[1]DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs, 论文链接

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值