YOLOV5目標檢測----上手
2020年4月23日,YOLOV4開源
2020年6月10日,YOLOV5開源
這兩個日子,可是把CV類公衆號的運營者忙壞了,各大公衆號都在忙着搶“首發”
當然,YOLOV4是貨真價實的YOLO系列的第四個版本,雖然J.R大神宣佈了“退役”,但是v4依然是其團隊的研究成果,是具有正宗YOLO血統的
對於YOLOV5,其作者顯然不是YOLO團隊的,但是v5的作者也是yolo系列忠實粉絲。ultralytics團隊實現的pytorch版本的yoloV3,廣受好評,在github上獲得了5.2K的star。
在YOLOV5開源這一天,其repo上就有人發了issue,說不應該使用yoloV5這個名字。
在下面討論區,兩派的聲音勢均力敵。
這個“you can you up“,簡直笑到我了!
對於我來說,這個命名也就是一個代號,不管你叫啥,只要性能牛逼,我就給你點star
一、撕逼
我們現在回到YOLOV5這個算法上來
上圖來自於yoloV5的repo,給出了不同大小v5模型和efficientDet的比較。
從圖中可以看出,yoloV5不同大小的模型,其性能都優於efficientDet,但是有一點大部分人都覺得很奇怪,爲啥沒有跟yoloV4比較。既然名字都命名了V5,爲啥沒有與V4的對比實驗。
YoloV5 is here這篇博客中說了YOLOv5在Tesla P100顯卡上運行超過140FPS,YOLOv4只能運行到50FPS;v5的模型大小是v4模型大小的十分之一,並且兩者精度相當。
感興趣的同學可以看下原文,截圖如下。
到目前爲止,YOLOV5還沒有發表學術論文,ultralytics是一個公司,並不是一個學術組織。所以現在有很多人對github上發出來的對比數據是持懷疑態度的。詳情可以看討論區和社區
甚至,AlexeyAB也直接在issue懟上了
AlexeyAB的態度很明確,u團隊做對比實驗不科學。拿着小模型的v5和大模型的v4比速度,然後也沒提供輸入分辨率和batch_size。然後AlexeyAB自己做了對比實驗,數據如上圖。
然後 Ultralytics團隊的Glenn- Jocher,對此作出了迴應。表示他們原有計劃是要寫一篇paper來展示實驗過程的,但是由於公司資源限制,這個計劃被推遲了。畢竟公司是要恰飯的,可以理解。
關於YoloV4和YoloV5的對比測評,可以看RoboFlow寫的這篇文章。這篇文章從yolo的歷史開始寫起,討論了命名和自定義數據下的性能。
下圖是AlexeyAB實驗對比數據,分別對比了v3,v4和v5
上面的內容基本都是圍繞着命名和性能在討論(撕逼)
但是對於我們算法狗而言,無所謂啦,只要能開源,你叫啥都行!
把開源的變成自己的,把自己的變成祖傳的。
二、訓練自己的yoloV5
1、配置環境
git clone https://github.com/ultralytics/yolov5
pip install -U -r yolov5/requirements.txt
2、轉換數據格式
將自己的xml或者json文件轉換爲yolo格式的txt文件
3、選擇模型大小
可以選擇yolo5s,yolo5m,yolo5l,yolo5x不同大小的模型,模型越大精度越高,速度也就相應越慢
4、修改對應配置文件
- data.yaml
- custom_yolov5m.yaml
訓練過程可以參考yoloV5的wiki,也可以參考這個訓練repo和另外一個訓練教程
v5的訓練速度還是很快的
我原來有個目標檢測項目是使用pelee做的,由於硬件算力限制,不得已只能選輕量級的算法。所以yoloV5s和yolov5m對於輕量級算法選型應該是一個不錯的選擇。