shartoo +

深度学习目标检测网络汇总对比

本文总阅读量
欢迎star我的博客

参考 :https://medium.com/@jonathan_hui/object-detection-speed-and-accuracy-comparison-faster-r-cnn-r-fcn-ssd-and-yolo-5425656ae359

概览图

目标检测概览

0 说明

关于目标检测的好坏,很难有一个统一明确的比较。我们一般都是在速度和准确率之间妥协,除此之外,我们还需要注意,以下因素会影响性能

1性能评测结果

1.1 FasterRCNN

在PASCAL VOC 2012测试集上的表现

方法 生成的区域候选数目 测试数据 mAP(%)
SelectiveSearch 2000 voc2012 65.7
SelectiveSearch 2000 voc2007+voc2012 68.4
RPN+VGG,shared 300 voc2012 67.0
RPN+VGG,shared 300 voc2007+voc2012 70.4
RPN+VGG,shared 300 voc2007+voc2012+coco 75.9

coco数据集

目标检测概览

1.2 R-FCN

voc数据集

方法 训练集 mAP(%) 测试时间(sec/image)
FasterRCNN voc 2007+voc2012 73.8 0.42
FasterRCNN++ voc 2007+voc2012+coco 83.8 3.36
F-FCN多尺度训练 voc2007+voc2012 77.6 0.17
F-FCN多尺度训练 voc2007+voc2012+coco 82.0 0.17

coco数据集

目标检测概览

1.3 SSD

voc数据集

目标检测概览

性能

目标检测概览

coco数据集

目标检测概览

1.4 YOLO

voc2007

目标检测概览

coco数据集

目标检测概览

1.5 yolov3

coco数据集

目标检测概览

性能

目标检测概览

1.6 FPN

coco数据集

目标检测概览

1.7 RetinaNet

coco数据集

目标检测概览

性能

目标检测概览

2 论文结果比较

下图是用VOC2007+voc2012的数据集训练的,mAP的计算方式是VOC2012。

目标检测概览

输入图像的分辨率和特征抽取对速度有极大影响。下面是最高和最低的FPS,当然下图可能在使用不同mAP时结果有较大出入

目标检测概览

coco数据集的表现

目标检测概览

可以看到,FPN和FasterRCNN有很高的准确率,但是RetinaNet最高。取得最高准确率的RetinaNet是借助了

3 google的研究结果

3.1 特征抽取器

研究了特征抽取器对准确率的影响,其中FasterRCNN和R-FCN可以利用一个更好的特征抽取器,但是对SSD效果提升程度不大。

目标检测概览

上图中x轴 是每个特征抽取器在分类上的top1的准确率。

3.2 物体尺寸

对于大目标SSD即使使用很简单的抽取器也可以表现很好,如果使用更好的抽取其,SSD甚至可以达到其他分类器的准确率。但是SSD在小目标上表现很差

目标检测概览

3.3 输入图像的分辨率

更高的分辨率有利于提升小目标的检测准确率,对大目标也有帮助。对分辨率在长宽维度上以因子2递减,准确率平均降低15.88%,但是对应的inference时间也会平均以因子 27.4%下降。

目标检测概览

3.4 区域候选的数目

区域候选的数目可以极大地影响FasterRCNN(FRCNN),而对准确率不会有太大降低。例如,Inception ResNet,FasterRCNN可以提升三倍速度,如果使用50个区域候选而不是300个的话,对应的准确率只降低了4%。但是R-FCN对每个ROI只有少得多的操作需要做,所以减少区域候选,对它的速度的提升并不显著。

目标检测概览

3.5 GPU时间

下面是不同模型使用不同特征抽取器的GPU时间

目标检测概览

大部分论文使用FLOPS(浮点运算)来衡量模型复杂度,但是这个没法反映准确的速度。模型密度(稀疏和稠密模型)影响的是所耗费的时间。讽刺的是,欠稠密模型通常平均需要更长的时间来完成一个浮点运算。

3.6 内存

MobileNet有最少的参数,它需要不到1GB的内存。

目标检测概览

4 结论

最准确的模型

最快的模型

速度与准确率之间的均衡

我的博客

观点

源码