YOLOv5來了!基於PyTorch,體積比YOLOv4小巧90%,速度卻超2倍
新智元報道
編輯:元子
【新智元導讀】YOLOv5來了!基於PyTorch,體積只有YOLOv4的十分之一,速度近3倍,權重可以導出到移動端,並且在COCO上達到了最先進的水平。
來了,來了,YOLOv5來了!
Ultralytics正式更新了YOLOv5,已經登頂GitHub飆升榜首席。
? ?
它運行推理的速度極快,權重可以導出到移動端,並且在COCO上達到了最先進的水平。
? ?
YOLOv5項目由Ultralytics創建並維護。這是一家Ultralytics總部位於美國的粒子物理和人工智慧初創公司,為政府、學術和商業客戶提供支持。在粒子物理學、數據科學和人工智慧領域率先提出了多項美國情報界(IC)和國防部(DoD)的倡議,並與多所大學、國家實驗室和私營公司合作開展了多項工作。? ?
你肯定也注意到了iOS這個關鍵詞。他們確實做了一個iOS app,還特意做了一張海報,簡直讓人印象深刻,大家來感受一下:
? ?
要不是左下角的「App Store認證標誌」,我還以為是某手機的廣告呢。畢竟現在的手機都長得像iPhone,電腦都長得像Mac。
YOLO模型的演變
實時目標檢測的改進速度很快。改進的速度更是迅速。結果也是驚人的。
3月18日,谷歌開源了EfficientDet的實現,這是一個具有不同大小的快速訓練模型,其中一個模型提供實時輸出。
4月23日,Alexey Bochoviskiy等人開源了YOLOv4。
6月9日,Glenn Jocher開源了YOLOv5的PyTorch實現。
YOLO(You Only Look Once)是PJ Reddie最初以2016年的一篇文章創造的一個模型家族。YOLO一出生便技驚四座。人們簡直不敢相信小小體積的YOLO竟然能表現出如此超高的性能!簡直就是實時條件和設備上部署環境的理想候選人。
PJ Reddie的研究團隊負責隨後推出了YOLOv2和YOLOv3,這兩個模型在性能和速度上都做出了持續改進。2020年2月,PJ Reddie指出他將停止計算機視覺的研究。
2020年4月,Alexey Bochkovskiy、Chien-Yao Wang和Hong-Yuan Mark Liao推出了YOLOv4,展示了令人印象深刻的成果。
值得注意的是,YOLOv4的許多改進來自於改進的數據增強和模型架構。我們已經寫了關於YOLOv4的分析,以及如何在自定義對象上訓練YOLOv4模型)。
YOLOv5:實時目標檢測的新時代領航者
相比其他版本,Glenn Jocher發布的YOLOv5有許多不同之處和改進。Glenn是YOLOv4中一個非常關鍵的技術「mosaic augmentation」的創建者。
YOLOv5並不是一個單獨的模型,而是一個模型家族,包括了YOLOv5s(最小)、YOLOv5m、YOLOv5l、YOLOv5x(最大)。
那麼,YOLO5憑什麼能夠成為目標檢測新的領航者呢?RoboFlow介紹了4點優勢。
首先,這是YOLO家族中,第一個先用PyTorch的原生版本,而非PJ Reddie的Darknet編寫的模型。Darknet是一個非常靈活的研究框架,但它並沒有考慮到生產環境的構建,而且用戶社區也較小。這導致Darknet需要在配置上花費不少功夫,而且生產準備不足。
由於YOLOv5是在PyTorch中實現的,它受益於成熟的PyTorch生態系統:支持更簡單,部署更容易。此外,作為一個更廣為人知的研究框架,YOLOv5 的迭代對更廣泛的研究社區來說可能更容易。這也使得部署到移動設備上更加簡單,因為該模型可以輕鬆編譯成ONNX和CoreML。
其次,YOLOv5的速度快得驚人。在YOLOv5 Colab notebook上,運行Tesla P100,我們看到每張圖像的推理時間僅需0.007秒,這意味著每秒140幀(FPS)!相比之下,YOLOv4在被轉換到相同的Ultralytics PyTorch庫後的速度是50FPS。YOLOv5的速度是YOLOv4的2倍還多!
第三,YOLOv5精度超高。在Roboflow對血細胞計數和檢測(BCCD)數據集的測試中,只訓練了100個epochs就達到了大約0.895的平均精度(mAP)。誠然EfficientDet和YOLOv4的性能相當,但在準確率沒有任何損失的情況下,看到如此全面的性能提升是非常罕見的。
第四,YOLOv5的體積很小。具體來說,YOLOv5的權重文件是27兆位元組。YOLOv4(採用Darknet架構)的權重文件是244兆。YOLOv5比YOLOv4小了近90%!這意味著YOLOv5可以更容易地部署q到嵌入式設備上,所以Ultralytics也在招iOS開發。
? ?
項目地址:
https://github.com/ultralytics/yolov5