YOLOv5 對決 Faster RCNN,誰贏誰輸?

做者 | Priya Dwivedi
譯者 | Sambodhi
策劃 | 李冬梅
YOLOv5 在深度學習社區炒得沸沸揚揚。最近有篇 博文 是如此介紹 YOLOv5 的:它是最早進的目標檢測,FPS 高達 140。這一言論,當即在 Hacker News、Reddit 甚至 GitHub 上引發了軒然大波,但這場普遍的討論並不是由於它的推理速度。在這場討論中,有兩個突出問題:一、該模型是否應稱爲 YOLO;二、速度基準測試結果的準確性和可重複性如何。

撇開全部爭議不談,YOLOv5 看起來是一個「頗有前途」的模型。所以,我將它與 Faster RCNN 進行了比較,Faster RCNN 是最好的 two stage 檢測器之一。爲了進行比較,我選取了三段背景不一樣的視頻,並將這兩個模型並排運行。個人評估包括對結果質量和推理速度的觀察結果。那麼,讓咱們言歸正傳。python

YOLOv5 模型

YOLOv5 的實現是在 PyTorch 中完成的,與以前基於 DarkNet 框架的開發造成了鮮明的對比。這使得該模型的理解、訓練和部署變得更加容易(目前暫時沒有使用 YOLO-v5 的論文發表)。以個人理解來看,在架構上,它和 YOLO-v4 很類似。一個不一樣之處多是使用了 Cross Stage Partial Network(CSP)來下降計算成本。目前尚不清楚 YOLOv5 的運行速度是否比 YOLO-v4 更快,但我更喜歡 PyTorch 的實現,並且讓驚訝的是,使用這個模型進行訓練是如此的容易。就我我的經驗而言,經過它進行推理的體驗也是如此。bash

此次發佈的 YOLOv5 包括五種不一樣尺寸的模型:YOLOv5s(最小)、YOLOv5m、YOLOv5l、YOLOv5x(最大)。這些模型的推理速度和平均精度均值(mean average precision,mAP)以下圖所示:微信

使用 YOLO-v5 進行推理

第一步就是克隆 YOLO-v5 的 repo,並安裝全部的依賴要求。我使用的是 PyTorch 1.5,代碼能夠正常工做,沒有任何問題。架構

你能夠按照如下方法下載不一樣預訓練 COCO 模型的全部權重:app

bash weights/download_weights.sh

要對視頻進行推理,就必須將傳遞給視頻的路徑以及要使用的模型的權重。若是沒有設置權重參數,那麼在默認狀況下,代碼在 YOLO 小模型上運行。我使用的示例參數以下所示。框架

python detect.py --source video/MOT20-01-raw-cut1.mp4 --output video_out/ --weights weights/yolov5s.pt --conf-thres 0.4

輸出視頻將保存在輸出文件夾中。ide

Faster RCNN 模型

對於 Faster RCNN 模型,我使用了 TensorFlow Object Detection 中的預訓練模型。TensorFlow Object Detection 共享 COCO 預訓練的 Faster RCNN,用於各類主幹。對於這個博客,我使用了 Faster RCNN ResNet 50 主幹。這個 repo 分享了一個很不錯的教程,介紹如何使用他們的預訓練模型進行推理。性能

YOLOv5 模型與 Faster RCNN 的比較

考慮到對自動駕駛行業的重要性,我選擇的第一個場景是街道駕駛場景。這兩個模型的結果分別以下:學習


YOLOv5 模型評估駕駛視頻測試


Faster RCNN 評估駕駛視頻

YOLO 模型彷佛更善於檢測較小的目標,在這種狀況下是紅綠燈,而且還可以在當汽車距離較遠(即在透視上看起來較小)將其進行標記。

YOLOv5s 的運行速度(端到端包括讀取視頻、運行模型和將結果保存到文件)爲 52.8 FPS。

而 Faser RCNN ResNet 50 的運行速度(端到端包括讀取視頻、運行模型和將結果保存到文件)爲 21.7 FPS。

以上結果是在 NVIDIA 1080 Ti 上進行評估的。

到目前爲止,YOLOv5 看上去比 Faster RCNN 更好一些。

YOLOv5 與 Faster RCNN 的比較(1)

下一段視頻是 YouTube 的籃球比賽視頻。兩個模型的結果以下所示:


YOLOv5 評估籃球比賽視頻


Faster RCNN ResNet 50 評估籃球比賽視頻

Faster RCNN 模型在 60% 的閾值下運行,能夠說它是用「Person」標籤對人羣進行標記,但我我的更喜歡 YOLO,由於它的結果乾淨整潔。不過,這兩種模型在視頻右下角的 abc(美國廣播公司)徽標上都存在假正類誤報。

我也很失望,雖然運動球也是 COCO 的類別之一,但這兩個模型都沒有檢測到籃球。它們如今的統計狀況以下:

YOLOv5 與 Faster RCNN 的比較 (2)

在最後一段視頻中,我從 MOT 數據集中選擇了一個室內擁擠的場景。這是一段頗有挑戰性的視頻,由於光線不足,距離遙遠,人羣密集。這兩個模型的結果以下所示:


YOLOv5 模型在來自 MOT 數據集中的室內擁擠場景進行測試


Faster RCNN 模型在來自 MOT 數據集中的室內擁擠場景進行測試

這一次的測試頗有趣。我想說的是,當人們走進走廊的時候,這兩種模型都很難檢測到遠處的人。這多是因爲光線較弱和目標較小所致。當人羣靠近攝像機方向時,這兩種模型都能對重疊的人進行標記。

YOLOv5 與 Faster RCNN 的比較(3)

結  論

最後對比兩種模型能夠看出,YOLOv5 在運行速度上有明顯優點。小型 YOLOv5 模型運行速度加快了約 2.5 倍,同時在檢測較小的目標時具備更好的性能。結果也更乾淨,幾乎沒有重疊的邊框。Ultralytics 在他們的 YOLOv5 上作得很是出色,並開源了一個易於訓練和運行推理的模型。

該博文還顯示了計算機視覺目標檢測的一個新興趨勢,即朝既快又準確的模型發展。

原文連接:

https://towardsdatascience.com/yolov5-compared-to-faster-rcnn-who-wins-a771cd6c9fb4


推薦閱讀

如何使用Yolov5建立端到端對象檢測器?

點擊「閱讀原文」圖書配套資源

本文分享自微信公衆號 - 相約機器人(xiangyuejiqiren)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索