生活随笔
收集整理的這篇文章主要介紹了
yolov4论文_YOLOv4论文详细解读
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
大家好,本次分享的是YOLOv4的那篇論文我將主要從這幾個(gè)部分對(duì)該論文進(jìn)行詳細(xì)的解讀首先來(lái)看論文的主要內(nèi)容YOLOv4這篇論文主要是介紹如何使用一些通用的新方法達(dá)到了最先進(jìn)的實(shí)驗(yàn)結(jié)果,他們?cè)贑OCO數(shù)據(jù)集上實(shí)現(xiàn)了65 FPS的速度和精度為43.5%的AP的檢測(cè)。這個(gè)是論文中YOLOv4與其他方法的對(duì)比圖。從圖中可以看出,在相同F(xiàn)PS情況下,它取得的AP是最高的,在相同的AP的情況下,它的FPS是最高的。接下來(lái)我們介紹目標(biāo)檢測(cè)模型現(xiàn)代的目標(biāo)檢測(cè)器通常由兩部分組成,一個(gè)是在ImageNet上預(yù)訓(xùn)練的backbone(骨架網(wǎng)絡(luò)),另一個(gè)是用來(lái)預(yù)測(cè)對(duì)象的類別和邊界框的head(頭部)。對(duì)于在GPU平臺(tái)上運(yùn)行的那些檢測(cè)器,其骨干網(wǎng)絡(luò)可能是VGG,ResNet,ResNeXt或DenseNet。對(duì)于在CPU平臺(tái)上運(yùn)行的那些檢測(cè)器,其骨架可以是SqueezeNet,MobileNet或ShuffleNet。至于頭部,通常分為兩類,即單階段目標(biāo)檢測(cè)器和雙階段目標(biāo)檢測(cè)器。最具有代表性的雙階段目標(biāo)檢測(cè)器是R-CNN系列,包括Fast R-CNN,Faster R-CNN,R-FCN和Libra R-CNN。也可以使兩階段目標(biāo)檢測(cè)器成為anchor-free(無(wú)需借助錨點(diǎn))檢測(cè)器,例如RepPoints。對(duì)于單階段目標(biāo)檢測(cè)器,最具代表性的模型是YOLO,SSD和RetinaNet。近年來(lái),有研究開發(fā)了anchor-free的單階段目標(biāo)檢測(cè)器,例如CenterNet,CornerNet,FCOS等。近年來(lái)開發(fā)的目標(biāo)檢測(cè)器通常在骨架和頭部之間插入一些層,通常使用這些層。收集不同階段的特征圖。我們可以稱其為目標(biāo)檢測(cè)器的neck(頸部)。通常,頸部由幾個(gè)自下而上的路徑和幾個(gè)自上而下的路徑組成。應(yīng)用此機(jī)制的網(wǎng)絡(luò)包括特征金字塔網(wǎng)絡(luò)(FPN),路徑聚集網(wǎng)絡(luò)(PAN),BiFPN和NAS-FPN。除上述模型外,一些研究人員還著重于直接構(gòu)建用于目標(biāo)檢測(cè)的新骨架網(wǎng)(DetNet,DetNAS)或新的整個(gè)模型(SpineNet,HitDeector) 。綜上所述,普通的目標(biāo)檢測(cè)器由以下幾部分組成(輸入,骨架網(wǎng)絡(luò),頸部,頭部):這是YOLOv4原論文中的總結(jié)內(nèi)容這里展示的是計(jì)算機(jī)視覺常用的VGG16模型結(jié)構(gòu)的示意圖以及ResNet50模型結(jié)構(gòu)的示意圖YOLO這個(gè)名字完整體現(xiàn)了算法的精髓:You Only Look Once。它與RCNN系列算法不同:RCNN系列算法(RCNN/Fast RCNN/Faster RCNN)是經(jīng)過(guò)了兩次檢測(cè),第一次是獲取proposal box,第二次才是圖像預(yù)測(cè)。YOLO算法通過(guò)回歸來(lái)完成物體檢測(cè),期間使用了統(tǒng)一的網(wǎng)絡(luò)來(lái)完成物體識(shí)別和框定位。具體來(lái)說(shuō),Yolo的CNN網(wǎng)絡(luò)將輸入的圖片分割成s*s的網(wǎng)格,然后每個(gè)單元格負(fù)責(zé)去檢測(cè)那些中心點(diǎn)落在該格子內(nèi)的目標(biāo),如圖所示,可以看到狗這個(gè)目標(biāo)的中心落在左下角一個(gè)單元格內(nèi),那么該單元格負(fù)責(zé)預(yù)測(cè)這個(gè)狗。每個(gè)單元格會(huì)預(yù)測(cè)一定數(shù)量個(gè)邊界框(bounding box)以及邊界框的置信度(confidence score)。所謂置信度其實(shí)包含兩個(gè)方面,一是這個(gè)邊界框含有目標(biāo)的可能性大小,二是這個(gè)邊界框的準(zhǔn)確度。還有分類問(wèn)題,對(duì)于每一個(gè)單元格其還要給出預(yù)測(cè)出n個(gè)類別概率值,其表征的是由該單元格負(fù)責(zé)預(yù)測(cè)的邊界框其目標(biāo)屬于各個(gè)類別的概率。接下來(lái)我們介紹BoF通常,傳統(tǒng)的目標(biāo)檢測(cè)器是離線訓(xùn)練的。因此,研究人員總是喜歡利用這一優(yōu)勢(shì),并開發(fā)出更好的訓(xùn)練方法,這些方法可以使目標(biāo)檢測(cè)器獲得更好的精度,卻又不會(huì)增加推理成本,于是我們稱這些方法為bag of freebies(意為:免費(fèi)贈(zèng)品),僅改變訓(xùn)練策略或僅增加訓(xù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)境獲得的圖像具有更高的魯棒性。例如,光度畸變和幾何畸變是兩種常用的數(shù)據(jù)增強(qiáng)方法,它們無(wú)疑有益于目標(biāo)檢測(cè)任務(wù)。在處理光度畸變時(shí),我們會(huì)調(diào)整圖像的亮度,對(duì)比度,色相,飽和度和噪點(diǎn)。對(duì)于幾何畸變,我們添加了隨機(jī)縮放,裁剪,翻轉(zhuǎn)和旋轉(zhuǎn)。這些數(shù)據(jù)擴(kuò)充方法都是逐像素調(diào)整,并且保留了調(diào)整區(qū)域中的所有原始像素信息。此外,一些從事數(shù)據(jù)增強(qiáng)的研究人員還將重點(diǎn)放在模擬目標(biāo)遮擋問(wèn)題上。他們?cè)趫D像分類和目標(biāo)檢測(cè)中取得了良好的效果。例如,隨機(jī)擦除和CutOut(裁剪)可以隨機(jī)選擇圖像中的矩形區(qū)域,并填充零的隨機(jī)或互補(bǔ)值。至于hide-and-seek和網(wǎng)格遮蓋,他們隨機(jī)或均勻地選擇圖像中的多個(gè)矩形區(qū)域,并將它們替換為零。如果類似的概念應(yīng)用于特征圖,則有DropOut ,DropConnect和DropBlock方法。另外,一些研究人員提出了使用多個(gè)圖像一起執(zhí)行數(shù)據(jù)增強(qiáng)的方法。例如,MixUp使用兩個(gè)圖像以不同的系數(shù)比值相乘和疊加,然后使用這些疊加的比值來(lái)調(diào)整標(biāo)簽。對(duì)于CutMix,它是將裁切后的圖像覆蓋到其他圖像的矩形區(qū)域,并根據(jù)混合區(qū)域的大小調(diào)整標(biāo)簽。除了上述方法之外,style transfer GAN還被用于數(shù)據(jù)擴(kuò)充,這種用法可以有效地減少CNN所學(xué)習(xí)的紋理偏差。然后我們來(lái)看一下BoS方面對(duì)于那些僅少量增加推理成本,但可以顯著提高目標(biāo)檢測(cè)準(zhǔn)確性的插件模塊和后處理方法,我們稱它們?yōu)閎ag of specials(意為:特價(jià)袋)。一般而言,這些插件模塊用于增強(qiáng)模型中的某些屬性,例如擴(kuò)大感受野,引入注意力機(jī)制或增強(qiáng)特征集成能力等,而后處理是一種篩選模型預(yù)測(cè)結(jié)果的方法,可以用來(lái)增強(qiáng)感受野的通用模塊是SPP,ASPP和RFB。SPP模塊起源于空間金字塔匹配(SPM),SPM的原始方法是將特征圖分割為幾個(gè)d×d個(gè)相等的塊,其中d可以為{1,2,3,… },從而形成空間金字塔,然后提取bag-of-word(詞袋)特征。SPP將SPM集成到CNN中,并使用最大池化操作而不是詞袋操作。由于He等人提出的SPP模塊將輸出一維特征向量,在全卷積網(wǎng)絡(luò)(FCN)中應(yīng)用是不可行的。因此,在YOLOv3的設(shè)計(jì)中,Redmon和Farhadi將SPP模塊改進(jìn)為內(nèi)核大小為k×k的最大池化輸出的級(jí)聯(lián),其中k = {1、5、9、13},步幅等于1。在這種設(shè)計(jì)下,較大的k×k最大池有效地增加了骨架網(wǎng)絡(luò)特征的感受野。在添加了改進(jìn)版本的SPP模塊之后,YOLOv3-608在MS COCO目標(biāo)檢測(cè)任務(wù)上將AP50提高了2.7%,而額外的計(jì)算代價(jià)為0.5%。ASPP模塊和改進(jìn)的SPP模塊之間在操作上的差異主要在于原始k×k內(nèi)核大小、步幅等于1的最大池化到幾個(gè)3×3內(nèi)核大小,擴(kuò)展比率等于k和在膨脹卷積運(yùn)算中,步幅等于1。RFB模塊將使用k×k核的多個(gè)膨脹卷積,膨脹比等于k,步幅等于1,以獲得比ASPP更全面的空間覆蓋。RFB僅花費(fèi)7%的額外推理時(shí)間,即可將MS COCO上SSD的AP50提高5.7%。通常在目標(biāo)檢測(cè)中使用的注意力模塊主要分為通道注意和點(diǎn)注意,這兩個(gè)注意模型的代表是Squeeze-and-Excitation(SE)和Spatial Attention module(SAM)。盡管SE模塊可以使ImNetNet圖像分類任務(wù)中的ResNet50提高1%的top-1準(zhǔn)確性,同時(shí)僅增加2%計(jì)算量,但是通常在GPU上它將使推理時(shí)間增加大約10%,因此更適合在移動(dòng)設(shè)備中使用。但是對(duì)于SAM,它只需要支付0.1%的額外計(jì)算量,就可以在ImageNet圖像分類任務(wù)上將ResNet50-SE的top-1準(zhǔn)確性提高0.5%。最好的是,它根本不影響GPU上的推理速度。在特征集成方面,早期的實(shí)踐是使用跳過(guò)連接或hyper-column將低層物理特征集成到高層語(yǔ)義特征。由于諸如FPN的多尺度預(yù)測(cè)方法已變得流行,因此提出了許多集成了不同特征金字塔的輕量級(jí)模塊。這種模塊包括SFAM,ASFF和BiFPN。SFAM的主要思想是使用SE模塊在多尺度級(jí)聯(lián)特征圖上執(zhí)行通道級(jí)級(jí)別的加權(quán)。對(duì)于ASFF,它使用softmax作為逐點(diǎn)級(jí)別權(quán)重,然后添加不同比例的特征圖。在BiFPN中,提出了多輸入加權(quán)殘差連接以執(zhí)行按比例的級(jí)別重新加權(quán),然后添加不同比例的特征圖。然后我們來(lái)看一下YOLOv4的方案最終是怎么選擇的YOLOv4的目標(biāo)是在輸入網(wǎng)絡(luò)分辨率,卷積層數(shù),參數(shù)數(shù)量(過(guò)濾器大小2 過(guò)濾器通道/組)和層輸出(過(guò)濾器)的數(shù)量之間找到最佳平衡。論文中的研究提到,就ILSVRC2012(ImageNet)數(shù)據(jù)集上的目標(biāo)分類而言,CSPResNext50與CSPDarknet53相比要好得多。但是相反,在MS COCO數(shù)據(jù)集上的目標(biāo)檢測(cè)方面,CSPDarknet53比CSPResNext50更好。下一個(gè)目標(biāo)是針對(duì)不同的檢測(cè)器、不同的骨架網(wǎng)絡(luò),選擇其他模塊來(lái)增加感受野和參數(shù)聚集的最佳方法:FPN,PAN,ASFF,BiFPN。分類最佳的參考模型對(duì)于檢測(cè)器并非總是最佳的。YOLOv4方案將SPP模塊添加到CSPDarknet53上,因?yàn)樗@著增加了感受野,分離出最重要的上下文特征,并且?guī)缀鯖]有降低網(wǎng)絡(luò)運(yùn)行速度。然后使用PANet為不同檢測(cè)器從不同backbone級(jí)別的參數(shù)聚合方法,而不是YOLOv3中使用的FPN。最后,YOLOv4方案選擇CSPDarknet53為骨架網(wǎng)絡(luò),SPP作為附加模塊,PANet路徑聚合作為頸部以及和YOLOv3(anchor based)的頭部作為YOLOv4的體系結(jié)構(gòu)。將來(lái)還計(jì)劃大幅擴(kuò)展檢測(cè)器的bag of freebies(BoF)的內(nèi)容,從理論上講,它可以解決一些問(wèn)題并提高檢測(cè)器的準(zhǔn)確性,并以實(shí)驗(yàn)方式依次檢查每個(gè)功能的影響。YOLO V4 不使用跨GPU批量標(biāo)準(zhǔn)化(CGBN或SyncBN)或昂貴的專用設(shè)備。這樣一來(lái),任何人都可以在傳統(tǒng)的圖形處理器上重現(xiàn)其最新技術(shù)成果,例如GTX 1080Ti或RTX 2080Ti。BoF和BoS的選擇為了改進(jìn)目標(biāo)檢測(cè)訓(xùn)練過(guò)程,CNN通常使用以下方法:
激活函數(shù):ReLU,leakage-ReLU,parameter-ReLU,ReLU6,SELU,Swish或Mish
邊界框回歸損失函數(shù):MSE,IoU,GIoU,DIoU
數(shù)據(jù)增強(qiáng):CutOut,MixUp,CutMix
正則化方法:DropOut,DropPath,Spacial DropOut或DropBlock
通過(guò)計(jì)算均值和方差的網(wǎng)絡(luò)激活函數(shù)歸一化:批次歸一化(BN),跨GPU批量歸一化(CGBN或SyncBN),過(guò)濾器響應(yīng)歸一化(FRN)或交叉迭代批量歸一化(CBN)
跳過(guò)連接:殘差連接,加權(quán)殘差連接,多輸入加權(quán)殘差連接或跨階段部分連接(CSP)
至于訓(xùn)練用的激活函數(shù),由于PReLU和SELU更難以訓(xùn)練,并且ReLU6是專門為量化網(wǎng)絡(luò)設(shè)計(jì)的,因此方案從候選列表中刪除了上述激活函數(shù)。在重新量化方法中,發(fā)布DropBlock的人已將其方法與其他方法進(jìn)行了詳細(xì)的比較,并且其正則化方法勝過(guò)其他方法許多。因此,YOLOv4方案毫不猶豫地選擇了DropBlock作為正則化方法。至于歸一化方法的選擇,由于方案專注于僅使用一個(gè)GPU的訓(xùn)練策略,因此不考慮syncBN。額外的提升為了使設(shè)計(jì)的檢測(cè)器更適合在單個(gè)GPU上進(jìn)行訓(xùn)練,方案進(jìn)行了以下附加設(shè)計(jì)和改進(jìn):
引入了一種新的數(shù)據(jù)增強(qiáng)方法,即自我對(duì)抗訓(xùn)練(SAT)
在應(yīng)用遺傳算法時(shí)選擇最佳超參數(shù)
我們修改了一些現(xiàn)有方法,使方案的設(shè)計(jì)適合進(jìn)行有效的訓(xùn)練和檢測(cè),例如修改后的SAM,修改后的PAN和交叉小批量歸一化(CmBN)
馬賽克代表一種新的數(shù)據(jù)增強(qiáng)方法,該方法混合了4個(gè)訓(xùn)練圖像,而 CutMix 只有兩個(gè)輸入圖像。這樣就可以檢測(cè)到超出其正常背景的對(duì)象。
此外,批量歸一化從每層上的4張不同圖像計(jì)算激活統(tǒng)計(jì)信息,這大大減少了對(duì)大的mini-batch size的需求。
自對(duì)抗訓(xùn)練(SAT)也代表了一項(xiàng)新的數(shù)據(jù)增強(qiáng)技術(shù),該技術(shù)執(zhí)行2個(gè)前向和反向傳播。在第一階段,神經(jīng)網(wǎng)絡(luò)會(huì)更改原始圖像,而不是網(wǎng)絡(luò)權(quán)重。這樣,神經(jīng)網(wǎng)絡(luò)通過(guò)改變?cè)紙D像,從而創(chuàng)造了一種圖像上沒有想要目標(biāo)的假象,對(duì)其自身執(zhí)行了對(duì)抗攻擊。在第二階段,訓(xùn)練神經(jīng)網(wǎng)絡(luò)以正常方式檢測(cè)此修改圖像上的目標(biāo)。CmBN是CBN修改版本,定義為Cross mini-Batch Normalization(CmBN)。這僅收集單個(gè)batch中的mini-batches之間的統(tǒng)計(jì)信息。
方案還將SAM從空間注意改為點(diǎn)注意,并將PAN的快捷連接替換為串聯(lián)。
YOLOv4的細(xì)節(jié)YOLOv4的組成:
YOLO v4使用了:
Bag of Freebies (BoF) for backbone: CutMix和馬賽克數(shù)據(jù)增強(qiáng),DropBlock正則化, 類標(biāo)簽平滑
Bag of Specials (BoS) for backbone: Mish激活函數(shù),跨階段部分連接(CSP),多輸入加權(quán)殘差連接 (MiWRC)
Bag of Freebies (BoF) for detector: CIoU損失函數(shù), CmBN, DropBlock正則化,馬賽克數(shù)據(jù)增強(qiáng),自對(duì)抗訓(xùn)練(SAT),Eliminate grid sensitivity,為每個(gè)真實(shí)標(biāo)簽使用多個(gè)錨點(diǎn),,Cosine annealing scheduler,優(yōu)化的超參數(shù),隨機(jī)的訓(xùn)練形狀
Bag of Specials (BoS) for detector: Mish激活函數(shù),SPP模塊,SAM模塊,路徑聚合模塊(PAN), DIoU-NMS
實(shí)驗(yàn)方案測(cè)試了不同訓(xùn)練改進(jìn)技術(shù)對(duì)ImageNet(ILSVRC 2012 val)數(shù)據(jù)集上分類器準(zhǔn)確性的影響,然后對(duì)MS COCO(test-dev 2017)數(shù)據(jù)集上檢測(cè)器的準(zhǔn)確性進(jìn)行了影響。在ImageNet圖像分類實(shí)驗(yàn)中,默認(rèn)的超參數(shù)如下:訓(xùn)練步驟為8,000,000;批量大小和最小批量大小分別為128和32;采用多項(xiàng)式衰減學(xué)習(xí)率調(diào)度策略,初始學(xué)習(xí)率為0.1。預(yù)熱步驟為1000;動(dòng)量和重量偏差分別設(shè)置為0.9和0.005。方案所有的BoS實(shí)驗(yàn)都使用與默認(rèn)設(shè)置相同的超參數(shù),并且在BoF實(shí)驗(yàn)中,方案添加了額外的50%訓(xùn)練步驟。在BoF實(shí)驗(yàn)中,方案驗(yàn)證了MixUp,CutMix,Mosaic,模糊數(shù)據(jù)增強(qiáng)和標(biāo)簽平滑正則化方法。在BoS實(shí)驗(yàn)中, 方案比較了LReLU,Swish和Mish激活功能的效果。所有實(shí)驗(yàn)均使用1080 Ti或2080 Ti GPU進(jìn)行訓(xùn)練。在MS COCO目標(biāo)檢測(cè)實(shí)驗(yàn)中,默認(rèn)超參數(shù)如下:訓(xùn)練步驟為500,500;訓(xùn)練步驟為500,500。采用步階衰減學(xué)習(xí)率調(diào)度策略,初始學(xué)習(xí)率為0.01,分別在40萬(wàn)步和45萬(wàn)步上乘以系數(shù)0.1。動(dòng)量和重量衰減分別設(shè)置為0.9和0.0005。所有架構(gòu)均使用單個(gè)GPU以64的批處理大小執(zhí)行多尺度訓(xùn)練,而最小批處理大小為8或4則取決于架構(gòu)和GPU內(nèi)存限制。除了使用遺傳算法進(jìn)行超參數(shù)搜索實(shí)驗(yàn)外,所有其他實(shí)驗(yàn)均使用默認(rèn)設(shè)置。遺傳算法使用YOLOv3-SPP訓(xùn)練GIoU損失,并搜索300個(gè)epoch的最小5k集。對(duì)于遺傳算法實(shí)驗(yàn),方案采用搜索學(xué)習(xí)率0.00261,動(dòng)量0.949,IoU閾值來(lái)分配ground truth 0.213,并使用損失歸一化器0.07。方案已經(jīng)驗(yàn)證了許多BoF,包括消除網(wǎng)格敏感性,分子數(shù)據(jù)增強(qiáng),IoU閾值,遺傳算法,類標(biāo)簽平滑,交叉小批量歸一化,自對(duì)抗訓(xùn)練,余弦退火調(diào)度程序,動(dòng)態(tài)小批量大小,DropBlock,優(yōu)化錨點(diǎn),不同類型的IoU損失。方案還對(duì)各種BoS進(jìn)行了實(shí)驗(yàn),包括Mish,SPP,SAM,RFB,BiFPN和高斯YOLO。對(duì)于所有實(shí)驗(yàn),方案僅使用一個(gè)GPU進(jìn)行訓(xùn)練,因此未使用可優(yōu)化多個(gè)GPU的諸如syncBN之類的技術(shù)。結(jié)果與其他最先進(jìn)的目標(biāo)檢測(cè)器獲得的結(jié)果比較如圖所示。YOLOv4位于Pareto最優(yōu)曲線上,在速度和準(zhǔn)確性方面均優(yōu)于最快,最精確的檢測(cè)器。由于不同的方法使用不同架構(gòu)的GPU進(jìn)行推理時(shí)間驗(yàn)證,因此在Maxwell,Pascal和Volta架構(gòu)的通用GPU上運(yùn)行YOLOv4,并將它們與其他最新方法進(jìn)行比較。結(jié)論該論文中的YOLOv4方案提供了一種最先進(jìn)的檢測(cè)器,其速度(FPS)和準(zhǔn)確度(MS COCO AP50 … 95和AP50)比所有可用的替代檢測(cè)器都要高。所描述的檢測(cè)器可以訓(xùn)練并在具有8-16 GB-VRAM的常規(guī)GPU上使用,這使得它的廣泛使用成為可能。單階段基于錨的檢測(cè)器的原始概念已經(jīng)證明了其可行性。方案已經(jīng)驗(yàn)證了大量新的方法,并選擇使用這些方法以提高分類器和檢測(cè)器的準(zhǔn)確性。這些功能可以用作未來(lái)研究和開發(fā)的最佳實(shí)踐。接下來(lái)是YOLOv4網(wǎng)絡(luò)的整體架構(gòu)介紹一張圖,整體感受一下yolov4網(wǎng)絡(luò)結(jié)構(gòu)該圖是白勇老師所繪制的YOLOv4網(wǎng)絡(luò)架構(gòu)圖Cross Stage Partial(CSP)可以增強(qiáng)CNN的學(xué)習(xí)能力,能夠在輕量化的同時(shí)保持準(zhǔn)確性、降低計(jì)算瓶頸、降低內(nèi)存成本。CSPNet論文詳見:https://arxiv.org/pdf/1911.11929.pdfDarknet53的結(jié)構(gòu)如圖所示,共有5個(gè)大殘差塊,每個(gè)大殘差塊所包含的小殘差單元個(gè)數(shù)為1、2、8、8、4。CSPDarknet53是在Darknet53的每個(gè)大殘差塊上加上CSP,對(duì)應(yīng)layer 0~layer 104。Darknet53分塊1加上CSP后的結(jié)果,對(duì)應(yīng)layer 0~layer 10。其中,layer [0, 1, 5, 6, 7]與分塊1完全一樣,而 layer [2, 4, 8, 9, 10]屬于CSP部分。Darknet53分塊2加上CSP后的結(jié)果,對(duì)應(yīng)layer 11~layer 23。其中,layer [11, 15~20]對(duì)應(yīng)分塊2(注意:殘差單元中的3×3卷積核的深度改變了,由Darknet53分塊2中的128改為64,請(qǐng)看layer 16 和 layer 19),其余 layer屬于CSP部分。Darknet53分塊3加上CSP后的結(jié)果,對(duì)應(yīng)layer 24~layer 54。其中,layer [24, 27~51]對(duì)應(yīng)分塊3(注意:殘差單元中的3×3卷積核的深度改變了,由Darknet53分塊3中的256改為128,請(qǐng)看layer 29等),其余 layer屬于CSP部分。Darknet53分塊4加上CSP后的結(jié)果,對(duì)應(yīng)layer 55~layer 85。其中,layer [55, 58~82]對(duì)應(yīng)分塊4(注意:殘差單元中的3×3卷積核的深度改變了,由Darknet53分塊4中的512改為256,請(qǐng)看layer 60等),其余 layer屬于CSP部分。Darknet53分塊5加上CSP后的結(jié)果,對(duì)應(yīng)layer 86~layer 104。其中,layer [86, 89~101]對(duì)應(yīng)分塊5(注意:殘差單元中的3×3卷積核的深度改變了,由Darknet53分塊5中的1024改為512,請(qǐng)看layer 91等),其余 layer屬于CSP部分。SPP全稱為Spatial Pyramid Pooling ,即,空間金字塔池化,SPP論文詳見這里:https://arxiv.org/pdf/1406.4729.pdf,網(wǎng)絡(luò)結(jié)構(gòu)如圖所示。SPP網(wǎng)絡(luò)用在YOLOv4中的目的是增加網(wǎng)絡(luò)的感受野。實(shí)現(xiàn)是對(duì)layer107進(jìn)行 5×5 、 9×9 、 13×13 的最大池化,分別得到layer 108,layer 110和layer 112,完成池化后,將layer 107,layer 108,layer 110和layer 112進(jìn)行concatenete,連接成一個(gè)特征圖layer 114并通過(guò) 1×1降維到512個(gè)通道。SAM(spatial attention module)模塊如Figure4所示。這部分主要是基于RPN特征得到一個(gè)權(quán)重矩陣,因?yàn)镽PN參數(shù)訓(xùn)練時(shí)有一個(gè)前背景分類的監(jiān)督信息,因此這個(gè)權(quán)重矩陣可以用來(lái)表達(dá)特征圖上前景和背景的區(qū)域差異,將該權(quán)重矩陣和原來(lái)的特征圖相乘后就得到調(diào)整后的特征圖,這樣基于調(diào)整后的特征圖執(zhí)行RoI特征提取就能達(dá)到強(qiáng)調(diào)前景特征,弱化背景特征的目的。Figure6給出了是否增加SAM模塊對(duì)特征圖的影響,可以看到增加SAM后目標(biāo)區(qū)域的特征值相比非目標(biāo)區(qū)域的特征值要更大一些,這樣提取到的RoI特征中目標(biāo)特征占比也越大,達(dá)到強(qiáng)化目標(biāo)特征,弱化背景特征的目的。PANet 的論文詳見這里https://arxiv.org/pdf/1803.01534.pdf,網(wǎng)絡(luò)結(jié)構(gòu)如圖所示,與FPN相比,PANet 在UpSample之后又加了DownSample的操作。PANet上采樣對(duì)應(yīng)的layer為layer 105到layer 128。PANet實(shí)現(xiàn)示意圖PANet實(shí)現(xiàn)示意圖PANet實(shí)現(xiàn)示意圖YOLOv3的Head實(shí)現(xiàn)示意圖最后,我們來(lái)看一下部分代碼的實(shí)際實(shí)現(xiàn)我們以這一份復(fù)現(xiàn)代碼為例可以看到其中的yolov4具體代碼實(shí)現(xiàn),由大量的殘差卷積模塊、SPP等組成以及Mish激活函數(shù)的實(shí)現(xiàn)然后我們來(lái)看一些官方代碼實(shí)現(xiàn)這里是用到的相關(guān)激活函數(shù)的函數(shù)體同樣,是mish激活函數(shù)的實(shí)現(xiàn),只不過(guò)官方代碼中加入了3種代碼實(shí)現(xiàn),最終采樣的是其中的mish_yashas2的實(shí)現(xiàn)。這里展示的是模型結(jié)構(gòu)配置的定義,該配置定義在這個(gè)cfg文件里。其C++代碼的SAM實(shí)現(xiàn)做了并行計(jì)算的優(yōu)化,這里將前向計(jì)算的一些串行的for循環(huán)代碼通過(guò)編譯器預(yù)處理指令轉(zhuǎn)換為了并行的計(jì)算SAM的反向計(jì)算也進(jìn)行了相同的處理最后謝謝大家,如果有什么不懂的歡迎提出來(lái)一起討論研究。
往期精彩 ASRT上線測(cè)試Demo啦
[論文分享]遷移學(xué)習(xí)實(shí)現(xiàn)基于預(yù)算的語(yǔ)音識(shí)別
計(jì)算機(jī)的內(nèi)功真的很重要嗎?
[論文分享]FastSpeech: 快速魯棒可控的語(yǔ)音合成
教你如何使用ASRT部署中文語(yǔ)音識(shí)別API服務(wù)器
教你如何使用ASRT訓(xùn)練中文語(yǔ)音識(shí)別模型
·END·
AI檸檬博客 分享AI技術(shù)文章
關(guān)注前沿科技
QQ交流群:??
867888133
微信號(hào):
ailemon_me 博客網(wǎng)址:https://blog.ailemon.me
點(diǎn)擊下方“
”即可閱讀博客原文,并參與評(píng)論和互動(dòng)。
點(diǎn)在看,讓檸檬菌知道你在看~
總結(jié)
以上是生活随笔 為你收集整理的yolov4论文_YOLOv4论文详细解读 的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。