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 發佈!

相關文章
相關標籤/搜索