FasterR-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

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

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

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

mAP:https://medium.com/@jonathan_hui/map-mean-average-precision-for-object-detection-45c121a31173PASCAL VOC 2012测试集的结果fileVOC 2012 for Faster R-CNNMS COCO上的结果fileCOCO for Faster R-CNN使用PASCAL VOC 2007测试集在K40 GPU上计时,以毫秒为单位。file性能

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

PASCAL VOC 2012测试集的结果fileVOC 2012 for R-FCN(对某些结果使用了多尺度的训练和测试。)测试

MS COCO上的结果fileCOCO for R-FCN优化

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

这是使用300×300和512×512输入图像的PASCAL VOC 200七、2012和MS COCO的结果。fileSSD(SSD300 和SSD512 对小对象应用数据加强以改善mAP。)ui

性能:file阿里云

Speed is measure with a batch size of 1 or 8 during inference(此处的YOLO是指比YOLOv2或YOLOv3慢的v1)spa

MS COCO的结果:fileCOCO for SSD

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

PASCAL VOC 2007测试集的结果。fileVOC 2007 for YOLOv2(咱们在此处添加了VOC 2007测试,由于它具备针对不一样图像分辨率的结果。)

PASCAL VOC 2012测试集的结果。fileVOC 2012 for YOLOv2MS COCO上的结果。fileCOCO for YOLOv2

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

MS COCO上的结果file

COCO for YOLOv3YOLOv3的性能file

YOCO2在COCO上的性能

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

MS COCO上的结果。fileCOCO for FPN

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

MS COCO上的结果file

COCO for RetinaNetMS COCO测试开发上的速度(ms)与准确性(AP)。fileCOCO for RetinaNet

比较论文结果

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

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

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

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

file

COCO数据集上的结果

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

fileFPN和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

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

file一般,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能够达到相似的性能。file

特征提取器

本文研究了特征提取器的准确性如何影响检测器的准确性。Faster R-CNN和R-FCN均可以利用更好的特征提取器,但对于SSD来讲意义不大。file(x轴是每一个特征提取器分类时top 1%的准确率。)

目标大小

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

file例如,SSD在检测下表中的瓶子时有问题,而其余方法则能够。file

输入图像分辨率

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

Number of proposals

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

GPU时间

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

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

Memory

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

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。
    翻译原文:https://medium.com/@jonathan_hui/object-detection-speed-and-accuracy-comparison-faster-r-cnn-r-fcn-ssd-and-yolo-5425656ae359

本文为 AI算法与图像处理 翻译,如需转载,可扫描下方二维码后回复转载。因为推文限制,部分图片并不是高清,若有须要能够后台回复 “ 20191114”获取,已按编号顺序更改命名,方便使用!

conda安装的国内镜像配置,实现快速下载

anaconda的全部的软件包所有在国外,安装起来很麻烦,关键是下载速度慢,并且常常中断,因此须要配置国内安装的镜像,下载速度就很快了。

1、conda换国内源

1.1 查看源

命令

conda config --show-sources

显示结果

==> /home/xxx/.condarc <==
    channels:复制代码
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    - defaults复制代码

这里有两个源,一个是清华的源,另外一个是默认的源

1.2 添加源(这里以添加清华源为例,固然也能够选择其余的源)

命令

conda config --add channels

操做:

#添加清华的源
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/复制代码

运行成果后,使用显示源查看是否添加成功(conda config --show-sources)

1.3 其余可选的源(还有更多的能够网上搜索,这里不一一列举)

中科大的源
    conda config –add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ 
    阿里云的源
    conda config --add channels http://mirrors.aliyun.com/pypi/simple/复制代码

1.4 移除源

命令

conda config --remove channels

操做

conda config --remove channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/'



复制代码

本文由博客一文多发平台 OpenWrite 发布!

相关文章
相关标签/搜索