最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

3000字詳解YOLOv4(收藏版)

2023-03-30 18:45 作者:深度之眼官方賬號(hào)  | 我要投稿

來(lái)源:投稿 作者:王同學(xué)
編輯:學(xué)姐

多圖長(zhǎng)文預(yù)警,建議收藏起來(lái)慢慢看

《YOLOv4:Optimal Speed and Accuracy of Object Detection》
發(fā)表時(shí)間及作者:2020 CVPR

1.YOLOv4介紹

Yolov4其實(shí)并沒(méi)有提出什么創(chuàng)新點(diǎn),主要是對(duì)當(dāng)時(shí)領(lǐng)域內(nèi)的一些Tricks(WRC、CSP、CmBN、SAT、Mish激活、Mosaic數(shù)據(jù)增強(qiáng),DropBlock和CIoU)進(jìn)行了大量的實(shí)驗(yàn),并且對(duì)模型的精度和速度進(jìn)行了平衡;最終在MS COCO數(shù)據(jù)集上實(shí)現(xiàn)了43.5% AP (65.7% AP50),在Tesla V100的實(shí)時(shí)速度為65幀/秒。

YOLOv4一共有如下三點(diǎn)貢獻(xiàn):

1.開(kāi)發(fā)了一個(gè)高效、強(qiáng)大的目標(biāo)檢測(cè)模型。它使每個(gè)人都可以使用1080ti或2080ti GPU來(lái)訓(xùn)練一個(gè)非??焖俸蜏?zhǔn)確的目標(biāo)檢測(cè)器

2.驗(yàn)證了最先進(jìn)的 Bag-of-Freebies和 Bag-of-Specials對(duì)象檢測(cè)在檢測(cè)器訓(xùn)練時(shí)的影響。

3.對(duì)現(xiàn)有的方法進(jìn)行了改進(jìn),使其更加高效,更適合于單個(gè)GPU的訓(xùn)練,包括CBN,PAN,SAM等。

圖1:YOLOv4與其他最先進(jìn)的物體探測(cè)器的比較。在性能相當(dāng)?shù)那闆r下,YOLOv4運(yùn)行速度是EfficientDet的兩倍。YOLOv4將YOLOv3的AP和FPS分別提升10%和12%。

2.YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)

YOLOv4結(jié)構(gòu)組成如下:

? Backbone: CSPDarknet53

? Neck: SPP , PAN

? Head: YOLOv3

2.1 ?Backbone改進(jìn)

YOLOv4借鑒了CSPNet(Cross Stage Partial Networks,跨階段局部網(wǎng)絡(luò))的思想,對(duì)YOLOv3的Darknet53網(wǎng)絡(luò)進(jìn)行了改進(jìn),形成了全新的主干網(wǎng)路結(jié)構(gòu)--CSPDarknet53;

采用CSP結(jié)構(gòu)有如下幾點(diǎn)好處:

1.加強(qiáng)CNN學(xué)習(xí)能力

2.刪除計(jì)算瓶頸

3.減少內(nèi)存成本

CSPNet實(shí)際上是基于Densnet的思想,即首先將數(shù)據(jù)劃分成Part 1和Part 2兩部分,Part 2通過(guò)dense block發(fā)送副本到下一個(gè)階段,接著將兩個(gè)分支的信息在通道方向進(jìn)行Concat拼接,最后再通過(guò)Transition層進(jìn)一步融合。CSPNet思想可以和ResNet、ResNeXt和DenseNet結(jié)合,目前主流的有CSPResNext50 和CSPDarknet53兩種改造Backbone網(wǎng)絡(luò)。

改進(jìn)后的主干網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示:

2.2 ?Neck改進(jìn)

2.2.1 SPP結(jié)構(gòu)介紹

SPP-Net全稱Spatial Pyramid Pooling Networks,主要是用來(lái)解決不同尺寸的特征圖如何進(jìn)入全連接層的,如下2圖所示,下圖中對(duì)任意尺寸的特征圖直接進(jìn)行固定尺寸的池化,來(lái)得到固定數(shù)量的特征。

2.2.2 PAN結(jié)構(gòu)介紹

PAN(Path Aggregation Network)結(jié)構(gòu)其實(shí)就是在FPN(從頂?shù)降仔畔⑷诤希┑幕A(chǔ)上加上了從底到頂?shù)男畔⑷诤希缦聢D(PAN結(jié)構(gòu)圖)所示。

FPN結(jié)構(gòu)圖
PAN結(jié)構(gòu)圖

2.2.3 YOLOv4 PAN結(jié)構(gòu)介紹

YOLOv4在原始PAN結(jié)構(gòu)上進(jìn)行了一點(diǎn)改進(jìn),如下圖所示。圖(a)是PAN論文中的原始融合方式,即特征層之間融合時(shí)是直接通過(guò)addition的方式進(jìn)行融合的,但在YOLOv4中的PAN是通過(guò)在通道方向Concat拼接的方式進(jìn)行融合的。

3.YOLOv4訓(xùn)練策略

這里首先介紹兩個(gè)概念:Bag of Freebies和Bag of Specials

Bag of Freebies:指的是那些不增加模型復(fù)雜度,也不增加推理的計(jì)算量的訓(xùn)練方法技巧,來(lái)提高模型的準(zhǔn)確度。目標(biāo)檢測(cè)經(jīng)常采用的符合Bag of Freebies定義的是數(shù)據(jù)增強(qiáng)。數(shù)據(jù)增強(qiáng)的目的是增加輸入圖像的可變性,使所設(shè)計(jì)的目標(biāo)檢測(cè)模型對(duì)從不同環(huán)境中獲取的圖像具有更高的魯棒性。例如,光學(xué)畸變和幾何畸變是兩種常用的數(shù)據(jù)增強(qiáng)方法,它們對(duì)目標(biāo)檢測(cè)有明顯的好處。

Bag of Specials:指的是那些增加少許模型復(fù)雜度或計(jì)算量的訓(xùn)練技巧,但可以顯著提高模型的準(zhǔn)確度。一般來(lái)說(shuō),這些插件模塊是為了增強(qiáng)模型中的某些屬性,如放大感受野、引入注意機(jī)制或增強(qiáng)特征集成能力等。

1.Backbone采用的Bag of Freebies:

CutMix,Mosaic數(shù)據(jù)增強(qiáng), DropBlock,類標(biāo)簽平滑

2.Backbone采用的Bag of Specials:

Mish激活函數(shù), Cross-stage partial connections (CSP),多輸入加權(quán)殘差連接(MiWRC)

3.Detector采用的Bag of Freebies:

CIoU損失,CmBN, DropBlock正則化,Mosaic數(shù)據(jù)增強(qiáng),自對(duì)抗訓(xùn)練,消除網(wǎng)格敏感性,單目標(biāo)使用多 Anchor,余弦退火,最優(yōu)超參數(shù),隨機(jī)訓(xùn)練形狀

4.Detector采用的Bag of Specials:

Mish激活、SPP、SAM、PAN路徑聚合、DIoU-NMS

3.1BackBone訓(xùn)練策略

3.1.1 數(shù)據(jù)增強(qiáng)

3.1.2 DropBlock正則化

DropBlock方法的引入是為了克服Dropout隨機(jī)丟棄特征的主要缺點(diǎn),Dropout被證明是全連接網(wǎng)絡(luò)的有效策略,但在特征空間相關(guān)的卷積層中效果不佳。DropBlock技術(shù)在稱為塊的相鄰相關(guān)區(qū)域中丟棄特征。這樣既可以實(shí)現(xiàn)生成更簡(jiǎn)單模型的目的,又可以在每次訓(xùn)練迭代中引入學(xué)習(xí)部分網(wǎng)絡(luò)權(quán)值的概念,對(duì)權(quán)值矩陣進(jìn)行補(bǔ)償,從而減少過(guò)擬合。如下圖:

3.1.3 類標(biāo)簽平滑

訓(xùn)練樣本中會(huì)出現(xiàn)少量的錯(cuò)誤樣本,而模型過(guò)于相信訓(xùn)練樣本,在訓(xùn)練過(guò)程中調(diào)整參數(shù)極力去逼近樣本,這就導(dǎo)致了這些錯(cuò)誤樣本的負(fù)面影響變大,因此需要在一定程度上減緩這些錯(cuò)誤樣本的影響,使得模型避免過(guò)于相信訓(xùn)練樣本。

消融實(shí)驗(yàn)結(jié)果:

表1:BoF和Mish對(duì)CSPResNeXt-50分類精度的影響。

表2 BoF和Mish對(duì)CSPDarknet-53分類器精度的影響。

表3: Bag-of-Freebies的消融研究。(CSPResNeXt50-PANet-SPP 512 x512)。

表4:Bag of Specials的消融實(shí)驗(yàn)。(Size 512 x512)。

4.BackBone推理策略

4.1 Mish激活函數(shù)

Mish是一個(gè)平滑的曲線,平滑的激活函數(shù)允許更好的信息深入神經(jīng)網(wǎng)絡(luò),從而得到更好的準(zhǔn)確性和泛化;在負(fù)值的時(shí)候并不是完全截?cái)?,允許比較小的負(fù)梯度流入。實(shí)驗(yàn)中,隨著層深的增加,ReLU激活函數(shù)精度迅速下降,而Mish激活函數(shù)在訓(xùn)練穩(wěn)定性、平均準(zhǔn)確率(1%-2.8%)、峰值準(zhǔn)確率(1.2% - 3.6%)等方面都有全面的提高。如下圖:

4.2 MiWRC策略

MiWRC是Multi-input weighted residual connections的簡(jiǎn)稱, 在BiFPN中,提出了用MiWRC來(lái)執(zhí)行標(biāo)尺度級(jí)重加權(quán),添加不同尺度的特征映射。我們已經(jīng)討論了FPN和PAN作為例子。下面的圖(d)顯示了另一種被稱為BiFPN的neck設(shè)計(jì),根據(jù)BiFPN的論文,該設(shè)計(jì)具有更好的準(zhǔn)確性和效率權(quán)衡。

(a)FPN引入自頂向下的路徑,將多尺度特征從3級(jí)融合到7級(jí)(P3-P7);

(b)PANET在FPN之上增加一個(gè)額外的自下而上的路徑;

(c)NAS-FPN使用神經(jīng)網(wǎng)絡(luò)搜索找到一個(gè)不規(guī)則的特征拓?fù)渚W(wǎng)絡(luò),然后重復(fù)應(yīng)用同一塊拓?fù)浣Y(jié)構(gòu);

(d)是這里的BiFPN,具有更好的準(zhǔn)確性和效率權(quán)衡。將該neck放到整個(gè)整個(gè)網(wǎng)絡(luò)的連接中如下圖:

上圖采用EfficientNet作為骨干網(wǎng)絡(luò),BiFPN作為特征網(wǎng)絡(luò),共享class/box預(yù)測(cè)網(wǎng)絡(luò)?;诓煌馁Y源約束,BiFPN層和類/盒網(wǎng)層都被重復(fù)多次。

5.檢測(cè)頭訓(xùn)練策略

5.1 CIoU-loss

CIoU就是在DIoU的基礎(chǔ)上增加了檢測(cè)框尺度的loss,增加了長(zhǎng)和寬的loss,這樣預(yù)測(cè)框就會(huì)更加的符合真實(shí)框。

5.2 CmBN策略

BN:無(wú)論每個(gè)batch被分割為多少個(gè)mini batch,其算法就是在每個(gè)mini batch前向傳播后統(tǒng)計(jì)當(dāng)前的BN數(shù)據(jù)(即每個(gè)神經(jīng)元的期望和方差)并進(jìn)行Nomalization,BN數(shù)據(jù)與其他mini batch的數(shù)據(jù)無(wú)關(guān)。

CBN:每次iteration中的BN數(shù)據(jù)是其之前n次數(shù)據(jù)和當(dāng)前數(shù)據(jù)的和(對(duì)非當(dāng)前batch統(tǒng)計(jì)的數(shù)據(jù)進(jìn)行了補(bǔ)償再參與計(jì)算),用該累加值對(duì)當(dāng)前的batch進(jìn)行Nomalization。好處在于每個(gè)batch可以設(shè)置較小的size。

CmBN:只在每個(gè)Batch內(nèi)部使用CBN的方法,若每個(gè)Batch被分割為一個(gè)mini batch,則其效果與BN一致;若分割為多個(gè)mini batch,則與CBN類似,只是把mini batch當(dāng)作batch進(jìn)行計(jì)算,其區(qū)別在于權(quán)重更新時(shí)間點(diǎn)不同,同一個(gè)batch內(nèi)權(quán)重參數(shù)一樣,因此計(jì)算不需要進(jìn)行補(bǔ)償。

5.3 自對(duì)抗訓(xùn)練(SAT)

SAT(Self-Adversarial Training)為一種新型數(shù)據(jù)增強(qiáng)方式。在第一階段,神經(jīng)網(wǎng)絡(luò)改變?cè)紙D像而不是網(wǎng)絡(luò)權(quán)值。通過(guò)這種方式,神經(jīng)網(wǎng)絡(luò)對(duì)其自身進(jìn)行一種對(duì)抗式的攻擊,改變?cè)紙D像,制造圖像上沒(méi)有目標(biāo)的假象。在第二階段,訓(xùn)練神經(jīng)網(wǎng)絡(luò)對(duì)修改后的圖像進(jìn)行正常的目標(biāo)檢測(cè)。

5.4 消除網(wǎng)格敏感度

6.檢測(cè)頭推理策略

6.1 SAM模塊

YOLOv4將SAM從空間注意修改為點(diǎn)注意,下圖(a)圖為原始SAM模塊,下(b)圖為改進(jìn)的SAM模塊

6.2 DIoU-NMS

根據(jù)DIOU的論文,如果只是單純的使用NMS,即是使用IoU作為閾值去篩掉其他預(yù)測(cè)框時(shí),當(dāng)兩個(gè)物體過(guò)于接近時(shí),很有可能另外一個(gè)物體的預(yù)測(cè)框就被濾除了。

就像下圖中的摩托。使用DIOU-NMS可以一定程度上提升對(duì)于靠近的物體的檢測(cè)

總結(jié)

最后放上一些不同模型的速度和精度的比較。(一些文章僅說(shuō)明了他們的探測(cè)器針對(duì)其中一個(gè)GPU的FPS:Maxwell/Pascal/Volta),可以看到,YOLOv4在速度和精度方面都優(yōu)于最快和最準(zhǔn)確的探測(cè)器。

需要YOLO相關(guān)資料的同學(xué)關(guān)注【學(xué)姐帶你玩AI】公眾號(hào)

回復(fù)“YOLO”獲取論文資料+代碼數(shù)據(jù)集

3000字詳解YOLOv4(收藏版)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
海丰县| 尚义县| 炎陵县| 江津市| 富蕴县| 且末县| 缙云县| 扶沟县| 论坛| 定陶县| 广州市| 河池市| 巴东县| 蓬安县| 孝昌县| 大安市| 松桃| 三台县| 基隆市| 都安| 永安市| 黄浦区| 奉节县| 察哈| 和田市| 哈密市| 玛纳斯县| 阿巴嘎旗| 恩施市| 会同县| 洱源县| 丽水市| 阳新县| 弋阳县| 锦州市| 陇西县| 宁强县| 城固县| 图片| 静宁县| 曲麻莱县|