目标检测:速度和准确性比较(Fater R-CNN,R-FCN,SSD,FPN,RetinaNet和YOLOv3)

3d98115c51b4d5e53f3695842749d89c.png

文章来源:https://zhuanlan.zhihu.com/p/91719437

已授权转载,如需转载请联系作者


很难在不同的目标检测器之间进行公平的比较。对于哪个模型是最好的?这个问题是没有直接的答案。对于现实生活中的应用,我们选择平衡准确性和速度。除了检测器类型外,我们还需要了解影响性能的其他选择:

  • Feature extractors (VGG16, ResNet, Inception, MobileNet).

  • Output strides for the extractor.

  • Input image resolutions.

  • Matching strategy and IoU threshold (how predictions are excluded in calculating loss).

  • Non-max suppression IoU threshold.

  • Hard example mining ratio (positive v.s. negative anchor ratio).

  • The number of proposals or predictions.

  • Boundary box encoding.

  • Data augmentation.

  • Training dataset.

  • Use of multi-scale images in training or testing (with cropping).

  • Which feature map layer(s) for object detection.

  • Localization loss function.

  • Deep learning software platform used.

  • Training configurations including batch size, input image resize, learning rate, and learning rate decay.

最糟糕的是,技术发展如此之快,以至于任何比较都很快变得过时。在这里,我们总结了各个论文的结果,因此您可以完整分析和对比它们。然后,我们根据Google Research中总结得出一篇综述。通过在一种情况下提出多种观点,我们希望我们可以更好地了解性能指标。

Performance results

在本节中,我们总结了相应论文报告的性能。随时快速浏览本节。

Faster R-CNN(https://arxiv.org/pdf/1506.01497.pdf)

这是PASCAL VOC 2012测试集的结果。我们对代表Faster R-CNN性能的最后3行感兴趣。第二列代表RPN网络制定的RoI数量。第三列代表使用的训练数据集。第四列是测量精度的平均平均精度(mAP)。

mAP:https://medium.com/@jonathan_hui/map-mean-average-precision-for-object-detection-45c121a31173

PASCAL VOC 2012测试集的结果

3b2ff3c02e76185ce34ed5b3354f52a9.png

VOC 2012 for Faster R-CNN

MS COCO上的结果

632ea41cec148c8b7da71ace456ca34b.pngCOCO for Faster R-CNN

使用PASCAL VOC 2007测试集在K40 GPU上计时,以毫秒为单位。

22f2e9969a27d9fd0176f9c48a806fd1.png

R-FCN (https://arxiv.org/pdf/1605.06409.pdf)

PASCAL VOC 2012测试集的结果

bab57b67b746626acbeec90400769aa9.png

VOC 2012 for R-FCN

(对某些结果使用了多尺度的训练和测试。)

MS COCO上的结果

32263f6c0d63d16d0626422ef9abcb81.png

COCO for R-FCN

SSD (https://arxiv.org/pdf/1512.02325.pdf)

这是使用300×300和512×512输入图像的PASCAL VOC 2007、2012和MS COCO的结果。

bfe2f687caa3e758199be895c8ff08ce.png

SSD

(SSD300 *和SSD512 *对小对象应用数据增强以改善mAP。)

性能:

3cf52b4eeee4e8e9669b66681f68f179.png

Speed is measure with a batch size of 1 or 8 during inference

(此处的YOLO是指比YOLOv2或YOLOv3慢的v1)

MS COCO的结果:

10a9d9beeab88dbda3c19134410a397a.png

COCO for SSD

YOLO(https://arxiv.org/pdf/1612.08242.pdf)

PASCAL VOC 2007测试集的结果。

5f087f4158e894e9ed64797011aa78b7.jpeg

VOC 2007 for YOLOv2

(我们在此处添加了VOC 2007测试,因为它具有针对不同图像分辨率的结果。)

PASCAL VOC 2012测试集的结果。

84ffffb631f2c1096872e1b840ffda41.png

VOC 2012 for YOLOv2

MS COCO上的结果。

f1fd1eeaa1c67042f4ebd3e88bf5b33c.jpeg

COCO for YOLOv2

YOLOv3 (https://pjreddie.com/media/files/papers/YOLOv3.pdf)

MS COCO上的结果

d767c8753af3362d6e0cfe56f54d4214.pngCOCO for YOLOv3

YOLOv3的性能

71c0347302be1f18773ac50335ff91d8.jpegYOCO2在COCO上的性能

FPN (https://arxiv.org/pdf/1612.03144.pdf)

MS COCO上的结果。

1177524d6fa6ce8930cc18dcfe80d74b.jpeg

COCO for FPN

RetinaNet (https://arxiv.org/pdf/1708.02002.pdf)

MS COCO上的结果

658164fb5615cf57f77b85db61ef971b.jpeg

COCO for RetinaNet

MS COCO测试开发上的速度(ms)与准确性(AP)。

29c56636cfd52f0acfde9551e8fa76b2.jpeg

COCO for RetinaNet

比较论文结果

并排比较不同论文的结果是不明智的。这些实验是在不同的设置下完成的。尽管如此,我们还是决定将它们绘制在一起,以便至少您对它们的大致位置有一个大致了解。但是请注意,我们绝对不要直接比较这些数字。

对于以下呈现的结果,使用PASCAL VOC 2007和2012数据对模型进行了训练。mAP是使用PASCAL VOC 2012测试仪测量的。对于SSD,该图表显示了300×300和512×512输入图像的结果。对于YOLO,其结果为288×288、416×461和544×544图像。同一模型的高分辨率图像具有更好的mAP,但处理速度较慢。

99a5353e8ccda66753f7f6496eecf88e.png

*表示应用了小目标数据增强。

**表示结果是根据VOC 2007测试集测得的。之所以包含这些内容,是因为YOLO论文并没有许多VOC 2012测试结果。由于VOC 2007的结果总体上比2012年更好,因此我们添加了R-FCN VOC 2007的结果作为交叉参考( cross reference)。

输入图像分辨率和特征提取器会影响速度。以下是相应论文报告的最高和最低FPS。但是,下面的结果可能会有很大的偏差,特别是在不同的mAP下进行测量。

ddd7c79975676304e495ae428baaf343.png

COCO数据集上的结果

在最近几年中,许多结果都是使用COCO目标检测数据集专门测量的。COCO数据集很难进行对象检测,通常检测器的mAP会低得多。这是一些关键检测器的比较。

8a7bd487dac44e8d03d766f8e0458382.jpeg

FPN和Faster R-CNN *(使用ResNet作为特征提取器)具有最高的精度(mAP @ [.5:.95])。RetinaNet使用ResNet构建在FPN之上。因此,RetinaNet实现的最高mAP是结合金字塔特征的效果,特征提取器的复杂性和focal loss的综合影响。但是,请注意,这不是苹果与苹果的比较(apple-to-apple comparison)。稍后我们将展示Google调查,以便进行更好的比较。但是最好先查看每个模型的声明。

Takeaway so far

Single shot detectors 使用较低分辨率的图像时,每秒帧数(FPS)令人印象深刻,但以准确性为代价。这些论文试图证明它们可以击败基于区域的探测器(region based detectors)的准确性。但是,由于高分辨率图像通常用于此类声明,因此结论性较差。因此,他们的情况正在发生变化。另外,应用了不同的优化技术,这使得很难隔离每个模型的优点。实际上,single shot and region based detectors 现在在设计和实现上越来越相似。但是有些保留,我们可以说:

  • 如果不需要实时速度,基于区域的检测器(如Faster R-CNN)将显示出较小的精度优势。

  • Single shot detectors在这里用于实时处理。但是应用程序需要验证它是否满足其准确性要求。

比较SSD MobileNet,YOLOv2,YOLO9000和Faster R-CNN

实测视频已上传到b站【30分钟时长】https://www.bilibili.com/video/av75557343/

Report by Google Research (https://arxiv.org/pdf/1611.10012.pdf)

Google Research提供了一份调查报告,研究Faster R-CNN,R-FCN和SSD的速度和准确性之间的权衡。(本文不涉及YOLO。)它使用MS COCO数据集进行训练,从而在TensorFLow中重新实现了这些模型。它建立了一个更加受控的环境,并使权衡比较变得更加容易。它还引入了MobileNet,该技术可以以较低的复杂度实现高精度。

Speed v.s. accuracy

最重要的问题不是哪个检测器最好。可能无法回答。真正的问题是,哪种检测器以及哪种配置可以为我们提供您的应用所需的速度和准确性之间的最佳平衡。以下是准确性与 速度权衡(时间以毫秒为单位)。

6a1baa7826e782362cd3c7a865017930.jpeg

通常,Faster R-CNN更准确,而R-FCN和SSD更快。

  • 使用带有300 proposals的Inception Resnet进行Faster R-CNN,可在所有测试案例中以1 FPS提供最高的准确性。

  • 在针对实时处理的模型中,MobileNet上的SSD具有最高的mAP。

该图还帮助我们找到最佳交易点,以实现良好的速度回报。

  • 使用残差网络(Residual Network)的R-FCN模型在准确性和速度之间取得了很好的平衡,

  • 如果我们将proposals数量限制为50个,则使用Resnet的Faster R-CNN可以达到类似的性能。

8858729424a8c45b0ba4fb57907f9dcb.jpeg

特征提取器

本文研究了特征提取器的准确性如何影响检测器的准确性。Faster R-CNN和R-FCN都可以利用更好的特征提取器,但对于SSD来说意义不大。

4547614ed22b64198c0496cde1a93baa.jpeg

(x轴是每个特征提取器分类时top 1%的准确率。)

目标大小

对于大物体,即使使用简单的提取器,SSD的性能也很好。使用更好的提取器,SSD甚至可以匹配其他探测器的精度。但是与其他方法相比,SSD在小物体上的性能要差得多。

c482e57cc260da67bb183638c2acfe00.jpeg

例如,SSD在检测下表中的瓶子时有问题,而其他方法则可以。

26f289fbf52bdb12d882a5e0b53bdac5.jpeg

输入图像分辨率

更高的分辨率可以显着改善小物体的目标检测能力,同时也可以帮助大物体。当在两个维度上将分辨率降低两倍时,准确度平均降低15.88%,但预测时间(inference time)也平均降低27.4%。

aa6683504ada1a8aa7f3ff6e4ea6fb79.jpeg

Number of proposals

所生成的proposals数量可以显着影响Faster R-CNN(FRCNN),而不会大大降低准确性。例如,使用Inception Resnet,使用50个proposals而不是300个proposals时,Faster R-CNN可以将速度提高3倍。准确性下降仅4%。由于R-FCN的每个ROI的工作量要少得多,因此速度提高的意义远不那么重要。

6a2e1b9609bbf3096afaf1e615950723.jpeg

GPU时间

这是使用不同特征提取器的不同模型的GPU时间。

856bae437d3e2a55db610d6d18d565a3.png

尽管许多论文使用FLOPS(浮点运算的数量)来衡量复杂性,但不一定反映准确的速度。模型的密度(sparse v.s. dense model)会影响所需的时间。具有讽刺意味的是,密度较小的模型通常平均需要更长的时间才能完成每个浮点运算。在下图中,大多数密集模型的斜率(FLOPS和GPU比率)大于或等于1,而较浅模型小于1。也就是说,即使整体执行时间较短,密度较小的模型效果也不佳。但是,该原因尚未得到本文的充分研究。

908ebc7ab5ffd8e68f8fa871578cde38.jpeg

Memory

MobileNet具有最小的占用空间。它需要少于1Gb(总)的内存。

69bf8e7e59289f4ab9eca2d5aa836af3.png

2016年COCO目标检测比赛

2016年COCO目标检测挑战赛的获胜作品是使用Resnet和Inception ResNet的五个Faster R-CNN模型的集合。它在COCO测试仪上的mAP @ [.5,.95]达到41.3%,并且在定位小物体方面取得了显着改进。

68da75ad0b021504c5f81e6fc45ce63c.jpeg

Lessons learned

Google Research论文的一些主要发现:

  • R-FCN和SSD模型的平均速度更快,但如果不考虑速度的话,其准确性就无法击败Faster R-CNN。

  • Faster R-CNN每个图像至少需要100毫秒。

  • 仅使用低分辨率特征图进行检测会严重影响准确性。

  • 输入图像分辨率会严重影响准确性。将图像的宽度和高度减小一半,平均准确率降低15.88%,但预测时间平均降低27.4%。

  • 特征提取器的选择会影响“Faster R-CNN”和“ R-FCN”的检测精度,但对SSD的依赖性较小。

  • 后处理包括非最大抑制(仅在CPU上运行),用于最快型号的运行时间大约为40毫秒,这将速度限制为25 FPS。

  • 如果仅使用一个IoU计算mAP,则使用mAP@IoU=0.75。

  • 使用Inception ResNet网络作为特征提取器时,使用步幅8而不是16可以将mAP改善5%,但运行时间增加63%。

最准确

  • 最准确的单一模型使用Inception ResNet的Faster R-CNN和300个建议。每个图像运行1秒。

  • 最准确的模型是具有多作物预测的集成模型。它实现了对2016年COCO挑战的最新检测精度。它使用平均精度向量选择五个最不同的模型。

最快的

  • 具有MobileNet的SSD可在最快的检测器中提供最佳的准确率折衷。

  • SSD速度很快,但与其他物体相比,对小物体的性能较差。

  • 对于大型物体,SSD可以以更快,更轻的提取器胜过Faster R-CNN和R-FCN。

准确率和速度之间达到良好的平衡

  • 如果我们将proposal数量减少到50,则Faster R-CNN可以与R-FCN和SSD的速度达到32mAP。

翻译原文:https://medium.com/@jonathan_hui/object-detection-speed-and-accuracy-comparison-faster-r-cnn-r-fcn-ssd-and-yolo-5425656ae359 

你点的每个“在看”,我都认真当成了喜欢

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值