修订版 | 目标检测:速度和准确性比较(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(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測試集的結果
VOC 2012 for Faster R-CNN
MS COCO上的結果
COCO for Faster R-CNN
使用PASCAL VOC 2007測試集在K40 GPU上計時,以毫秒為單位。
R-FCN?(https://arxiv.org/pdf/1605.06409.pdf)
PASCAL VOC 2012測試集的結果
VOC 2012 for R-FCN
(對某些結果使用了多尺度的訓練和測試。)
MS COCO上的結果
COCO for R-FCN
SSD?(https://arxiv.org/pdf/1512.02325.pdf)
這是使用300×300和512×512輸入圖像的PASCAL 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(https://arxiv.org/pdf/1612.08242.pdf)
PASCAL VOC 2007測試集的結果。
VOC 2007 for YOLOv2
(我們在此處添加了VOC 2007測試,因為它具有針對不同圖像分辨率的結果。)
PASCAL VOC 2012測試集的結果。
VOC 2012 for YOLOv2
MS COCO上的結果。
COCO for YOLOv2
YOLOv3?(https://pjreddie.com/media/files/papers/YOLOv3.pdf)
MS COCO上的結果
COCO for YOLOv3
YOLOv3的性能
YOCO2在COCO上的性能
FPN?(https://arxiv.org/pdf/1612.03144.pdf)
MS COCO上的結果。
COCO for FPN
RetinaNet?(https://arxiv.org/pdf/1708.02002.pdf)
MS 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會低得多。這是一些關鍵檢測器的比較。
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
最重要的問題不是哪個檢測器最好。可能無法回答。真正的問題是,哪種檢測器以及哪種配置可以為我們提供您的應用所需的速度和準確性之間的最佳平衡。以下是準確性與 速度權衡(時間以毫秒為單位)。
通常,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。
翻譯原文:https://medium.com/@jonathan_hui/object-detection-speed-and-accuracy-comparison-faster-r-cnn-r-fcn-ssd-and-yolo-5425656ae359?
備注:公眾號菜單包含了整理了一本AI小抄,非常適合在通勤路上用學習。
往期精彩回顧那些年做的學術公益-你不是一個人在戰斗適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊備注:加入本站微信群或者qq群,請回復“加群”加入知識星球(4500+用戶,ID:92416895),請回復“知識星球”喜歡文章,點個在看
總結
以上是生活随笔為你收集整理的修订版 | 目标检测:速度和准确性比较(Faster R-CNN,R-FCN,SSD,FPN,RetinaNet和YOLOv3)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: YOLOv3最全复现代码合集(含PyTo
- 下一篇: 清晰易懂的马尔科夫链原理介绍