Object Detection: 初探YOLOV5爭議以及與YOLOV4之比較

Patty Wu
6 min readSep 7, 2020

--

前言

繼yolov4發布一個多月,yolov5也殺個措手不及出現了,還標榜可以到140 FPS,立刻引發討論,同時也有非常多爭議。

而爭議點大概有幾項:

  1. yolov5未經官方承認
  2. yolov5並未發布論文
  3. 相比於yolov4,創新性不足,演算法不夠進化到可以稱為v5
  4. 數據比較不公平,例:yolov5的140 FPS是使用P100,然而yolov4的50 FPS是使用V100、推論時的batch size設定不同...等。

而且從作者們互動,可以感受到濃濃的火藥味XD,陸續補上了一些解釋與較公平的數據比較結果,可以參考yolov5官方回覆:Responding to the Controversy about YOLOv5: https://blog.roboflow.com/yolov4-versus-yolov5/

補充:Alexey提供的yolov3~v5在COCO上的比較表,可以看到憤怒的紅字XDDD,強調使用ultralytics訓練也可以提升yolov4的 mAP,這樣比較比較公平。

Method

Yolov5模型結構上,與yolov4很相似,不過還是有一些修改,同時也加了新東西進去,以*表示yolov4中沒有的。

  1. 輸入端:Mosaic資料增強、自動anchor size計算*、自適應圖片縮放trick *
  2. Backbone:Focus結構*、CSP結構 (與yolov4比起來,有做更改)
  3. Neck:FPN + PAN結構 (與yolov4比起來,有做更改)
  4. Prediction:bbox使用GIOU_Loss (yolov4是CIOU_Loss)、加權NMS (yolov4使用DIOU_nms,對於被大面積遮擋的物體檢測效果更佳)

細節可以參考這篇:https://zhuanlan.zhihu.com/p/172121380

Evaluation

Yolov5在發布時,給出的數據顯示,在COCO上比EfficientDet更好更快,不過沒有直接提及與yolov4的比較:

作者群針對爭議點回覆,並補上較公平的數據比較,其實兩者AP與推論速度差異不多…Yolov4稍微比較好一些,不過該數據是基於Ultralytics YOLOv3 repository訓練的(並不是本來的darknet),因此可以得到mAP會比本來更高:

Speed

使用P100做測試的話,在batch size=1下,yolov4推論花費22ms、yolov5s是20ms,分別是45、50FPS。

yolov5作者提及,若是batch size=36下,yolov5s推論只要7ms,並來到140FPS。

大家可能跟我一樣非常好奇,為什麼yolov5可以達到這麼快的速度,這邊整理幾個原因:

  1. PyTorch支援半精度運算 (32 bit to 16 bit precision),一方面優化顯存大小,一方面加快推論、訓練速度。
  2. 自適應圖片縮放:yolo會先將圖片縮放到416*416、608*608...等長寬相等的大小,此時會填充兩端黑邊,如果黑邊的面積大,則信息冗餘,影響推論速度。因此yolov5使用自適應圖片縮放的trick,為圖片補上了最少的黑邊,加快了37%的推論速度。詳細作法可以參考這篇:https://zhuanlan.zhihu.com/p/172121380

Model Size

最小的yolov5s僅27MB,跟yolov4 245MB差了9倍!模型小的令人讚嘆啊!

(備註:yolov5x 367mb、yolov5l 192mb、yolov5m 84mb)

Summary

  1. 以mAP來說,yolov4較佳,不過其實速度與mAP表現兩者差不多。
  2. yolov5s體積小很多,很適合Edge AI的user。
  3. yolov5使用pytorch,使用上非常親民。且yolov5也將一些功能直接加入train.py中,例如自動計算anchor size,很方便。

Reference

  1. Yolov5 GitHub: https://github.com/ultralytics/yolov5
  2. Responding to the Controversy about YOLOv5: https://blog.roboflow.com/yolov4-versus-yolov5/
  3. Repo Claims To Be YOLOv5: https://github.com/AlexeyAB/darknet/issues/5920
  4. YOLOv5 New Version — Improvements And Evaluation: https://blog.roboflow.com/yolov5-improvements-and-evaluation/
  5. 深入浅出Yolo系列之Yolov5核心基础知识完整讲解:https://zhuanlan.zhihu.com/p/172121380
  6. Yolov3&Yolov4&Yolov5模型权重及网络结构图资源下载:https://blog.csdn.net/nan355655600/article/details/107852288

--

--

No responses yet