修订版 | 目标检测:速度和准确性比较(Faster R-CNN,R-FCN,SSD,FPN,RetinaNet和YOLOv3)...

网友投稿 218 2022-11-15

修订版 | 目标检测:速度和准确性比较(Faster R-CNN,R-FCN,SSD,FPN,RetinaNet和YOLOv3)...

重磅干货,第一时间送达

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

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

mAP:VOC 2012测试集的结果

VOC 2012 for Faster R-CNN

MS COCO上的结果

COCO for Faster R-CNN

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

R-FCN (VOC 2012测试集的结果

VOC 2012 for R-FCN

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

MS COCO上的结果

COCO for R-FCN

SSD (VOC 2007、2012和MS COCO的结果。

SSD

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

性能:

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

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

MS COCO的结果:

COCO for SSD

YOLO(VOC 2007测试集的结果。

VOC 2007 for YOLOv2

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

PASCAL VOC 2012测试集的结果。

VOC 2012 for YOLOv2

MS COCO上的结果。

COCO for YOLOv2

YOLOv3 (COCO上的结果

COCO for YOLOv3

YOLOv3的性能

YOCO2在COCO上的性能

FPN (COCO上的结果。

COCO for FPN

RetinaNet (COCO上的结果

COCO for RetinaNet

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

COCO for RetinaNet

比较论文结果

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

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

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

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

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

COCO数据集上的结果

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

Takeaway so far

如果不需要实时速度,基于区域的检测器(如Faster R-CNN)将显示出较小的精度优势。Single shot detectors在这里用于实时处理。但是应用程序需要验证它是否满足其准确性要求。

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

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

Speed v.s. accuracy

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

通常,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可以达到类似的性能。

特征提取器

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

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

目标大小

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

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

输入图像分辨率

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

Number of proposals

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

GPU时间

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

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

Memory

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

2016年COCO目标检测比赛

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

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。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:各种视频信号接口及定义
下一篇:解析HashMap中的put方法执行流程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~