2017_Mimicking Very Efficient Network for Object Detection_CVPR2017(poster)_Quanquan Li(sensetime)

一、背景及意义(动机)

如果我们需要训练一个新的检测网络,那通常都需要进行预训练才能达到比较好的效果。但是这样比较耗时,并且小网络在ImageNet分类任务的预训练效果比较差也会影响到目标检测任务。为此,作者提出一个全卷积特征仿真框架,该框架能够在不用预训练的情况下,让新的小网络可以达到与使用预训练一样好的效果,并且能够达到与大网络同等水平的准确率。在该框架中作者借用了之前在分类任务中用到的知识蒸馏的思路,利用一个性能好的的大网络来指导一个小网络训练。这里面临的一个问题是,怎么加入大网络的监督信号,以及怎么安排加入ground-truth。通过分析作者发现,通常的检测方法都包含两个阶段,一个是特征提取,一个是检测器的训练。而大网络和小网络的区别也是在特征提取这一块。于是作者将大网络的监督信号加在特征提取这里,然后将ground-truth加在检测器那边。但是如果直接将监督信号加在特征提取器这里,特征维度过大使得最终无法拟合,而且由于检测任务中目标只出现在一个较小区域,这样会弱化目标信号。为此作者提出了一个解决方案,就是将监督信号加在proposal上。在该论文中作者还提出来了两种扩展方式,一种是当想要将输入图片较小以此来提高推断速度的时候,往往会导致性能下降,这种情况下可以通过对proposal上的feature进行upsample,让使用大分辨率输入的大网络,来指导使用小分辨率的输入的小网络的训练。另一个扩展是两阶段的训练,先训练特征提取器,再训练检测器。最后作者在行人检测和Pascal VOC目标检测任务上,用一个比原来的Inception network快2.5倍的小型Inception network,达到了与原来的Inception network同等水平的准确率,并且能够在稍微损失一点点性能,并且在输入分辨率为1000X1500的情况下,在TITANX上达到80FPS的运行效率。

二、使用什么方法来解决问题(创新点)

  1. 将知识蒸馏的技术从分类任务引入到检出任务,让新的小模型在不需要预训练的情况下,达到与大模型同等水平的准确率。
  2. 这篇网络主要是通过改变模型结构来进行加速,而现有的一些方法是通过改变模型的运算方式但是模型本身的结构不变。这两种方式可以结合起来用。

三、方法介绍

3.1 Logits Mimic Learning

mimic学习的主要思想是利用大模型或者是多个大模型融合的soft targets或者logits(输入到softmax之前的预测结果)的信息来训练一个小的神经网络。最终的目标函数可以表示为:

这里$g(x^{(t)};W)$是小模型的logits,$z^{(t)}$为小模型的logits。通过mimic学习,可以让小模型达到与大模型一致的准确率。这种仿真学习方式,之前都只是在分类任务中应用,还没在检出任务中应用过。直接使用logits来进行mimic学习,在检出任务中效果比较差。为此作者对整个过程做了一些调整,让它能够应用到目标检测中来。

3.2 Feature Map Mimic Learning

直接使用logits来进行mimic学习,在检出任务中的效果比较差,为此作者提出利用Feature Map来进行mimic学习。但是直接利用整个Feature Map特征维度比较大,在实际应用过程中很难拟合,另外由于在整个特征图中,大部分不是目标产生的响应,会使得目标信息被淹没。为此作者提出利用proposal的特征来进行mimic学习。所以最终的loss函数可表示为:

这里$L(W)$只是RPN网络的loss,$L_m$是L2的特征仿真损失函数;$L_{gt}$是RPN网络的分类和回归loss。$u^{(i)}$是利用空间金字塔pooling从大网络的feature map提取的proposal的特征。$v^{(i)}$则是小网络的对应的proposal特征。由于小网络和大网络proposal的特征维数可能不同,所以在这里$r$表示对小网络提取的特征加了一层变换。

上面这种方式会存在两个问题。一个是mimic loss的值在训练过程中可能很大,所以要小心设置两个loss的权重;另一个问题就是利用ROIpooling 提取特征之后可能会导致空间信息的丢失。为此作者对特征mimic方式进行修改直接采用整个proposal的每个像素进行mimic的方式,并做了标准化。这样做之后,训练的loss会比较稳定,权重也可以简单设置为1就可以了。为此新的mimic loss函数可以表示为:

这里$m_i$是proposal区域的特征个数。

3.3 RPN proposal mimic

作者在两阶段的目标检测器上进行试验,训练主要采用了两个阶段的训练,首先通过feature mimic 方法训练一个RPN网络,然后再联合fine-tune faster-RCNN或者是R-FCN网络。
Fig1给出了第一阶段的训练框架。

在第一阶段训练完成之后,作者利用RPN网络去finetune Faster R-CNN或者R-FCN检出网络。新加入的层采用随机初始化的方式。

3.4 RPN proposal + R-CNN logits mimic

这里在第二阶段fine-tune的时候,会使得第一阶段mimic到的特征被弱化。为此作者在R-CNN的分类任务上,再加上一个logits mimic信号,再进一步将大模型的信息传给小模型。这里logits mimic信号主要加在R-CNN的logits和bounding box的回归值上。作者通过实验验证了两阶段的mimic确实可以再进一步提高性能。

3.5 通过mimic来提高由于降低分辨率导致的性能下降

使用小图片作为输入后性能下降的主要原因是到最后一层特征图的时候目标的特征变得很小。为此作者利用deconv操作,对输入为小图片的网络的特征图进行放大,然后利用输入为大尺度图片的网络的信息去辅助输入为小尺度图片的网络,去更好的训练。整体的框架如Fig2所示。

四、实验结果及重要结论

作者主要在两个检出任务上进行测试,一个是Caltech行人检测任务,另一个是PASCAL VOC2007 目标检测任务。

4.1 Caltech行人检测任务

大模型的backbone,作者使用了GoogLeNet Inception Network,detection head作者采用了R-FCN。原本图像的大小是640x480,但是使用这个尺度来训练的话很难达到最先进的水平。考虑到Caltech数据集中行人比较小,为此作者将短边rescale到1000。训练和测试都只使用单尺度,并使用2个高宽{$2:1,3:1$}比和3个尺度{$4^2,8^2,16^2$}。RPN和R-FCN在ImageNet预训练的基础上进行联合训练,finetune的时候finetune了所有的层,在前30k个mini-batch作者学习率为0.001,后面10k个mini-batc作者使用学习率为0.0001。动量和权重衰减系数分别设置为0.9和0.0005。最终达到的$MR_{_2}$为7.15%。Table2给出了单独使用RPN网络和联合使用RPN和R-FCN的结果。

小模型的backbone,作者在大模型的backbone的基础上,较少网络的宽度。这里使用{1/n}-Inception Network表示具有同样深度的但是不同宽度的网络。mimic的特征是Inception-4d层的输出。Table3给出了不同的R-FCN网络的测试时间。

Table4给出了使用普通的logits mimic方法以及利用整个特征图进行mimic的效果。从Table4中可以看出,效果要比大网络差很多。

Table5给出了使用提到的proposal mimic方式,对RPN网络进行mimic的效果。在训练的时候作者使用128个ROIs区域,正负比例为1:1。从Table5可以看出,通过proposal mimic,最终小模型的效果与大模型很接近,但是速度快上2.5倍。

Table6给出了使用RPN网络去finetune R-FCN网络的效果,因为RPN网络特征已经训练得够好了,所以RPN网络的学习率为新加入层的学习率的1/10。从Table6可以看出两个阶段的训练结果与大模型十分的接近,甚至在$MR_{_4}$这个指标下,效果更好。Table6也给出从头开始训练一个小模型与使用mimic方式训练一个小模型的效果对比。从Table6中可以看出,mimic方式训练的小模型效果远超利用ImageNet预训练进行finetune的模型。Fig3给出了不同的false positives per image下各个模型的效果。


Table7给出了使用不同的小网络进行mimic学习的效果。从Table7可以看出,提到的方法对各个不同规模的小网络都适用,是具有通用性的。

Table8和Table14给出了在不同的大网络上进行mimic学习的效果。从Table8和Table14可以看出,提到的方法适用于不同的网络结构之间的mimic学习。


Table9给出了在利用大网络proposal的特征进行mimic得到RPN网络之后,再利用R-FCN进行fine-tune并且加上logits mimic的效果。可以从Table9看出,finetune的时候加上logits mimic可以进一步提高效果。

Table10给出了减小网络的输入后的效果,在将网络的输入减小到480X640之后,网络的性能出现了下降。在简单加入一个upsample之后性能不但没有提升反而下降了,但是在加入一个upsmaple并采用提到的mimic学习之后,网络的性能得到了提升。这样证明了当减小网络输入的时候,可以通过mimic学习,提高网络的性能。

4.2 PASCAL VOC 2007目标检测任务

Table11给出了proposal取top300,IOU为0.5和0.7的情况下RPN网络的召回情况。从Table11可以看出,在使用mimic之后,小模型的召回与大模型基本一致,并且比起预训练或者重头开始训练,效果都要好。

Table12给出了不同的fast R-CNN训练方式的效果。从Table12可以看出,在finetune feature mimic学习的RPN网络,并采用logits mimic的方式,要比从头开始训练或者利用ImageNet预训练效果要好。

Table13给出了在使用更小的模型的情况下,使用mimic学习和从头开始训练以及采用ImageNet进行预训练的对比情况。从Table13可以看出,使用mimic学习的优势更加明显。

Table15给出了使用不同的特征层来进行mimic学习的效果。从Table15可以看出,使用最后一层特征的效果是最好的。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 524813168@qq.com

文章标题:2017_Mimicking Very Efficient Network for Object Detection_CVPR2017(poster)_Quanquan Li(sensetime)

文章字数:2.9k

本文作者:xieweihao

发布时间:2018-04-02, 19:53:03

最后更新:2020-04-06, 17:19:05

原始链接:http://weihaoxie.com/post/710e445b.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏