大神接棒,YOLOv4来了!
文章來源于CVer,作者Amusi
前言
今天刷屏的動態一定是 YOLOv4!
本文 Amusi 會跟大家說一下在別處看不到內容(大神接棒),歡迎繼續閱讀!
之前,YOLO系列(v1-v3)作者 Joe Redmon 宣布不再繼續CV方向的研究,引起學術圈一篇嘩然。YOLO之父宣布退出CV界,坦言無法忽視自己工作帶來的負面影響
推文鏈接:https://twitter.com/jeremyphoward/status/1230610470991589376
Amusi 特意去谷歌學術上搜索了一下YOLOv1-v3的引用量,累計破16000+!
大神接棒,YOLOv4來了!
當大家以為再也見不到YOLOv4的時候,然鵝今天 YOLOv4 來了!
YOLOv4的作者陣容里并沒有Joe Redmon,也驗證了大神曾說不再繼續CV研究的這條消息。但都木有YOLO之父Joe Redmon的論文,其名字為什么還敢叫YOLOv4呢,不怕被噴么?
這里Amusi 花點時間跟大家介紹一下這個有趣的事情。
先說說:大神接棒的事情
停更兩年之久的的YOLO github官網正式更新 README,那么更新了什么呢?接著往下看
YOLO官網:https://github.com/pjreddie/darknet
YOLO官方github正式加入YOLOv4的論文和代碼鏈接,也意味著YOLOv4得到了Joe Redmon的認可,也代表著YOLO的停更與交棒。
關于YOLOv4,Amusi 曾寫過這樣一篇文章來預宣傳(現在想想,應該是全網第一個這樣介紹的):等待YOLOv4的期間,它還在更新
YOLOv4的一作是 Alexey Bochkovskiy,用過YOLO的同學,特別是用過Windows版YOLO的同學對這個名字一定很熟悉!
因為他就是darknet另一個github版本的維護者,也就是YOLOv4的代碼庫:
https://github.com/AlexeyAB/darknet
據Amusi 猜測推斷,Alexey Bochkovskiy 是一名獨立研究員,這里更愿意稱為之YOLO接棒者,YOLO社區推動者。這里對Alexey不過多贅述,想了解的同學可以看一下:等待YOLOv4的期間,它還在更新
值得一提的是,這個版本的darknet的提交數已經來到 1777 次。試想一下,你一天提交一次更新,那么就需要你連續近5年不停更!
我們一般只會用兩個字來形容這種人:碼怪!
YOLOv4 正文
YOLOv4: Optimal Speed and Accuracy of Object Detection
論文:https://arxiv.org/abs/2004.10934
代碼:https://github.com/AlexeyAB/darknet
大家一定被文章開頭的圖片吸引了,位于圖中靠右上角的YOLOv4 多么"亮眼",越靠右上角意味著AP越高、速度FPS越快!而且YOLO被大家追捧的原因之一就是:快而準。
YOLOv4 在COCO上,可達43.5% AP,速度高達 65 FPS!
YOLOv4的特點是集大成者,俗稱堆料。但最終達到這么高的性能,一定是不斷嘗試、不斷堆料、不斷調參的結果,給作者點贊。下面看看堆了哪些料:
Weighted-Residual-Connections (WRC)
Cross-Stage-Partial-connections (CSP)
Cross mini-Batch Normalization (CmBN)
Self-adversarial-training (SAT)?
Mish-activation
Mosaic data augmentation
CmBN
DropBlock regularization
CIoU loss
本文的主要貢獻如下:
1. 提出了一種高效而強大的目標檢測模型。它使每個人都可以使用1080 Ti或2080 Ti GPU 訓練超快速和準確的目標檢測器(牛逼!)。
2. 在檢測器訓練期間,驗證了SOTA的Bag-of Freebies 和Bag-of-Specials方法的影響。
3. 改進了SOTA的方法,使它們更有效,更適合單GPU訓練,包括CBN [89],PAN [49],SAM [85]等。文章將目前主流的目標檢測器框架進行拆分:input、backbone、neck 和 head 具體如下圖所示:
對于GPU,作者在卷積層中使用:CSPResNeXt50 / CSPDarknet53
對于VPU,作者使用分組卷積,但避免使用(SE)塊-具體來說,它包括以下模型:EfficientNet-lite / MixNet / GhostNet / MobileNetV3
作者的目標是在輸入網絡分辨率,卷積層數,參數數量和層輸出(filters)的數量之間找到最佳平衡。文中稱:CSPDarknet53在檢測上的表現要優于CSPResNext50,關于CSP,不了解的同學可以看一下這篇文章:
增強CNN學習能力的Backbone:CSPNet
總結一下YOLOv4框架:
Backbone:CSPDarknet53
Neck:SPP,PAN
Head:YOLOv3
YOLOv4 = CSPDarknet53+SPP+PAN+YOLOv3
其中YOLOv4用到相當多的技巧:
用于backbone的BoF:CutMix和Mosaic數據增強,DropBlock正則化,Class label smoothing
用于backbone的BoS:Mish激活函數,CSP,MiWRC
用于檢測器的BoF:CIoU-loss,CmBN,DropBlock正則化,Mosaic數據增強,Self-Adversarial 訓練,消除網格敏感性,對單個ground-truth使用多個anchor,Cosine annealing scheduler,最佳超參數,Random training shapes
用于檢測器的Bos:Mish激活函數,SPP,SAM,PAN,DIoU-NMS
看看YOLOv4部分組件:
感受一下YOLOv4實驗的充分性(調參的藝術)
感受一下性能炸裂的YOLOv4實驗結果
論文篇幅很長,高達17頁,干貨滿滿!推薦大家閱讀原文和源碼進行深入理解。
跟我一起喊:大神接棒,YOLOv4 來了!
論文下載
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)本站qq群1003271085,加入微信群請回復“加群”獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/yFQV7am喜歡文章,點個在看總結
以上是生活随笔為你收集整理的大神接棒,YOLOv4来了!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习中常见的损失函数
- 下一篇: 【算法知识】详解归并排序算法