雷锋网 AI科技评论按:虽然CVPR 2017已经落下帷幕,但对精彩论文的解读还在继续。下文是Momenta高级研发工程师李俊对此次大会收录的Speed/Accuracy trade-offs for modern convolutional object detectors 一文进行的解读。
如何选择物体检测器
——对当下主流CNN物体检测器的评测
自2014年RCNN被提出以来,基于卷积神经网络的物体检测已经成为主流。Faster RCNN、SSD、YOLO、 R-FCN等诸多检测算法百花齐放,每种方法都在各自的维度上达到当时的state-of-the-art。而由于各种不同方法在实验时所使用的特征提取网络、图像分辨率、软硬件架构等诸多因素不尽相同,目前对于不同的检测方法一直缺乏一个实际的公平比较。这篇论文主要讨论多种物体检测算法在速度、精度做不同权衡时的表现,进而指导实际应用中对物体检测器的选择。
在这篇文章里面我们主要讨论以下几点:
本文为什么要做检测器对比
如何对不同检测器做对比
对比的结论是什么
总结与思考
1.为什么要做检测器对比
近年来由于CNN的发展与应用,物体检测领域得到了快速发展,如Faster RCNN, R-FCN, Multibox, SSD, YOLO等算法已经成功应用于实际产品中,并在各种计算设备上展现出可观的性能。在实际应用中,由于不同的场景下有不同的限制和需求,需要根据实际情况权衡选择最适合的检测方法。这就需要我们对不同检测器的性能有更客观的认识。
然而,从这些算法的原始文章很难直接获得对不同算法在多个维度的对比。一方面,不同方法的原始论文在特征提取网络、框匹配方式、框的表示、回归的Loss函数选择等方面存在差异(如下表所示)。另一方面,我们缺乏客观的评价标准:Pascal VOC或者COCO数据集上标准的评价准则mAP只能反映精度,而比赛获胜的方法通常会采用多模型融合,如multi-crop和multi-scale等方法来牺牲时间提升精度。
我们需要系统客观地对不同算法在速度、精度、空间占用等多个维度进行评测,以用于指导选择在不同实际情景下所需要的最佳物体检测器。
2.如何对不同检测器做对比
本文对比了Faster RCNN, SSD和R-FCN三种方法,每种方法都基于TensorFlow的实现,对比单模型、单次前传的性能。每一种方法都首先在TensorFlow中复现了原论文的报告精度,然后在此基础上进行修改对比。具体地:特征提取器采用了VGG16, Resnet101, Inception V2, Inception V3, Inception Resnet V2, MobileNet等多个模型;Faster RCNN和R-FCN选用同样的feature map层来预测region proposal;SSD在最上层的feature map基础上加入多个2倍大小的额外层做预测;Faster RCNN和R-FCN的proposal数量从10变化到300;本文同时探索了feature map的stride从32变化到16、8的影响;保持参数量不变;匹配方式统一为二分图,匹配框统一encode为[10*x_c/w_a, 10*y_c/h_a, 5*logw, 5*logh],回归的loss统一设置为Smooth L1 Loss;输入图像分辨率统一resize到短边为600,同时对比了短边为300分辨率的情况;计算时间包含了一次forward加上post-processing的时间。
3. 对比的结论是什么
对比不同方法的速度-精度图如下:
Faster RCNN使用更少的proposal,可以显著加速但仅仅小幅度影响了精度。另外SSD受feature extractor的影响没有Faster RCNN和R-FCN大。最后本文指出了满足速度要求情况下的最佳速度精度权衡的物体检测器。如下图所示:
最快的模型为低分辨率下MobileNet+SSD,精度最高网络为Inception Resnet v2 + 300 proposal Faster RCNN。速度精度权衡到最佳的模型为Resnet 101 + 100 proposal Faster RCNN和Resnet 101 + 300 proposal R-FCN。
4.总结与思考
论文的价值体现在,在相对公平的环境中对比了当前最好的一些检测算法,通过大量不同配置的对比,对于实际应用中检测任务的方法选择给出了一定的指导。实际应用中Faster RCNN和R-FCN可以达到更好的速度与精度权衡折衷, 两步迭代的方案一边保证了高recall, 一边保证高precision。另外不考虑运行时间的话Faster RCNN仍然是刷榜的首选。
CVPR 作者现场QA:
1. 不考虑时间,当参数量相同时,哪种方法的精度更高?
A:Faster RCNN > R-FCN > SSD,其中SSD的主要优势是快(同样参数量情况下)。
2. 为什么two-stage的方案(Faster RCNN、R-FCN)会比SSD的精度更高?
A:Faster RCNN第一步关注proposal的效果,第二步关注refine的效果。提取的ROI区域会有一个zoom in的效果,因而会比SSD混杂在一起单步学习精度更高。
论文地址:https://arxiv.org/abs/1611.10012