楊真真,鄭藝欣,邵 靜,楊永鵬,2
(1.南京郵電大學(xué)寬帶無(wú)線通信與傳感網(wǎng)技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210003 2.南京信息職業(yè)技術(shù)學(xué)院網(wǎng)絡(luò)與通信學(xué)院,江蘇 南京 210023)
人工智能(Artificial Intelligence,AI)發(fā)展至今,深度學(xué)習(xí)(Deep Learning,DL)作為其關(guān)鍵技術(shù),已廣泛應(yīng)用在目標(biāo)檢測(cè)、圖像分割和圖像分類等領(lǐng)域[1]。目標(biāo)檢測(cè)需要快速判斷圖像中某個(gè)類別或多個(gè)類別是否存在,以及準(zhǔn)確定位具體位置并將其框出,但對(duì)于一些目標(biāo)種類多的復(fù)雜場(chǎng)景,其面臨著巨大挑戰(zhàn)。
傳統(tǒng)目標(biāo)檢測(cè)共分為3個(gè)階段。首先進(jìn)行區(qū)域選擇,采用不同大小的滑動(dòng)窗口遍歷截取圖像,產(chǎn)生多個(gè)候選框來(lái)盡可能檢測(cè)所有存在的目標(biāo),然后進(jìn)行特征提取,最后利用分類器來(lái)獲得檢測(cè)框的類別和位置。傳統(tǒng)目標(biāo)檢測(cè)中滑動(dòng)窗口的存在會(huì)產(chǎn)生大量時(shí)間和計(jì)算開(kāi)銷,人工操作導(dǎo)致檢測(cè)速度無(wú)法提升且檢測(cè)成本高。另外,其特征表示復(fù)雜,對(duì)于不同應(yīng)用場(chǎng)景,需要重新設(shè)計(jì)新的模型,影響目標(biāo)檢測(cè)器的泛化性能和魯棒性。此外,在實(shí)際場(chǎng)景會(huì)受到光線、遮擋及角度等因素的影響,傳統(tǒng)目標(biāo)檢測(cè)不能滿足實(shí)際檢測(cè)的需求,容易產(chǎn)生錯(cuò)誤檢測(cè)。
在新的科技生產(chǎn)的帶動(dòng)下,計(jì)算機(jī)性能得以提升,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[2]被提出并且應(yīng)用到目標(biāo)檢測(cè)領(lǐng)域,取得了很好的效果。基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)方法一般分為兩階段目標(biāo)檢測(cè)方法和一階段目標(biāo)檢測(cè)方法兩大類。相較于傳統(tǒng)目標(biāo)檢測(cè)方法,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)的檢測(cè)精度和速度都得到了顯著提升。
兩階段目標(biāo)檢測(cè)方法與傳統(tǒng)目標(biāo)檢測(cè)方法相比,進(jìn)步在于檢測(cè)的精度高,在性能顯著提升的同時(shí)加快了檢測(cè)速度。它共分為兩步,首先獲取候選區(qū)域,然后再對(duì)候選區(qū)域的目標(biāo)進(jìn)行分類和坐標(biāo)回歸。區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Regions with CNN Features,R?CNN)[3]提出了具有CNN特征的網(wǎng)絡(luò),將其首次用于目標(biāo)檢測(cè)。接著提出空間金字塔池化(Spatial Pyramid Pooling, SPP)網(wǎng)絡(luò)[4],該網(wǎng)絡(luò)使用特征金字塔來(lái)解決尺度和縮放問(wèn)題,并將其放在卷積層和全連接層之間,提高了檢測(cè)精度,并縮短了檢測(cè)時(shí)間。接著快速的區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Fast Regions with CNN Features, Fast R?CNN)[5]在 R?CNN 的基礎(chǔ)上改變特征提取的方法,把空間金字塔的多尺度操作改為單一尺度的可變窗口,并且只進(jìn)行一次前向計(jì)算。2017年Ren等[6]提出的更快速的區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster Regions with CNN Features,F(xiàn)aster R?CNN)使用區(qū)域生成網(wǎng)絡(luò) (Region Proposal Network,RPN)代替選擇性搜索來(lái)提取候選區(qū)域,再進(jìn)行后續(xù)分類操作,大大減少了檢測(cè)時(shí)間,實(shí)現(xiàn)了端到端的檢測(cè)。兩階段目標(biāo)檢測(cè)方法是兩級(jí)檢測(cè)方法,往往檢測(cè)很準(zhǔn)確,但在實(shí)際應(yīng)用中檢測(cè)速度會(huì)受到限制,無(wú)法達(dá)到實(shí)時(shí)性要求。
因此研究人員提出了許多基于卷積神經(jīng)網(wǎng)絡(luò)的一階段目標(biāo)檢測(cè)方法,如 Retinanet[7]、EfficientNet[8]、可伸縮和高效的目標(biāo)檢測(cè) (Scalable and Efficient Object, EfficientDet)[9]、單次多盒檢測(cè)頭(Single Shot Multiboc Detector, SSD)[10]和只看一次(You Only Look Once, YOLO)[11]系列方法。 這個(gè)過(guò)程一步到位,直接使用卷積神經(jīng)網(wǎng)絡(luò)提取特征進(jìn)行目標(biāo)檢測(cè)。Retinanet針對(duì)一階段檢測(cè)方法中類不平衡影響精度的問(wèn)題,修改損失函數(shù),利用Focal損失分辨目標(biāo)類別,并且通過(guò)實(shí)驗(yàn)驗(yàn)證了提出損失函數(shù)的有效性,但檢測(cè)時(shí)間有所增加。EfficientDet在 EfficientNet的基礎(chǔ)上增加了BiFPN,使用殘差網(wǎng)絡(luò)結(jié)構(gòu)擴(kuò)大網(wǎng)絡(luò)的深度,增強(qiáng)特征提取能力,檢測(cè)精度有所提升,但仍以檢測(cè)速度為代價(jià),算法實(shí)時(shí)性仍然需要改進(jìn)。YOLO系列網(wǎng)絡(luò)作為一階段目標(biāo)檢測(cè)中的代表性方法,具有檢測(cè)速度快、準(zhǔn)確率高等特點(diǎn)。YOLO延續(xù)了GoogleNet的核心思想,通過(guò)單個(gè)神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了目標(biāo)檢測(cè),實(shí)時(shí)性高。它將圖像劃分為多個(gè)網(wǎng)格并預(yù)測(cè)每個(gè)網(wǎng)格的邊界框和概率,但每個(gè)網(wǎng)格只能預(yù)測(cè)一個(gè)類別。2016年Liu等提出的SSD方法在YOLO方法的基礎(chǔ)上做了修改,引入錨點(diǎn)機(jī)制,并將其全連接層摒棄,提升了檢測(cè)精度,特別是對(duì)一些小目標(biāo)檢測(cè)效果較好。但SSD的先驗(yàn)框需要手動(dòng)設(shè)置,不能直接通過(guò)訓(xùn)練得到。第二版本 YOLO(The Second Version of YOLO, YOLOv2)[12]更改了主干特征提取網(wǎng)絡(luò),使用了Darknet?19,并在每一個(gè)卷積層中也作了改進(jìn),引入了批量歸一化(Batch Normalization,BN)層。優(yōu)點(diǎn)是有效提高了目標(biāo)檢測(cè)精度,保持了檢測(cè)速度,但容易漏檢。第三版本YOLO(The Third Version of YOLO, YOLOv3)[13-14]引入了多尺度特征,并使用更深層次的新主干網(wǎng)絡(luò)Darknet?53代替了Darknet?19,改變了網(wǎng)絡(luò)結(jié)構(gòu),提高了網(wǎng)絡(luò)檢測(cè)精度,但對(duì)小目標(biāo)檢測(cè)仍然存在漏檢和誤檢。第四版本YOLO(The Fourth Version of YOLO, YOLOv4)[15]使用CSPDarknet?53作為主干特征提取網(wǎng)絡(luò),可以很好地平衡檢測(cè)速度和精度。YOLOv4作為目前主流的先進(jìn)目標(biāo)檢測(cè)方法,將目標(biāo)檢測(cè)任務(wù)轉(zhuǎn)變成回歸任務(wù),對(duì)于輸入到網(wǎng)絡(luò)中的圖像,可以直接進(jìn)行檢測(cè)。當(dāng)圖像輸入到Y(jié)OLOv4網(wǎng)絡(luò)時(shí),被劃分為一個(gè)S×S的網(wǎng)格,只要物體的中心點(diǎn)落在一個(gè)格子上,格子就用來(lái)檢測(cè)物體,同時(shí)生成一個(gè)矩形框來(lái)定位位置和確定類別。YOLOv4可以較好平衡檢測(cè)速度和精度,可擴(kuò)展性高。
本文針對(duì)YOLOv4目標(biāo)檢測(cè)器存在淺層位置信息利用率不足的問(wèn)題,提出了一種新的目標(biāo)檢測(cè)方法——YOLOv4?P。對(duì)路徑聚合網(wǎng)絡(luò)進(jìn)行改進(jìn),利用主干特征提取網(wǎng)絡(luò)的第二個(gè)殘差塊,新增一個(gè)大小為104×104的檢測(cè)層,加強(qiáng)融合淺層特征層,并且使用K?means聚類對(duì)數(shù)據(jù)集重新進(jìn)行處理,獲得合適的先驗(yàn)框尺寸。同時(shí)使用金字塔池化模塊(Pyramid Pooling Module, PPM)[16],利用 4 種不同尺度的金字塔池化引入不同尺度下的特征信息。進(jìn)行了仿真實(shí)驗(yàn),結(jié)果表明,改進(jìn)的YOLOv4效果更優(yōu),在PASCAL VOC2007和VOC2012兩個(gè)數(shù)據(jù)集上的均值平均精度(Mean Average Precision,mAP)相較于YOLOv4分別提高了2.03%和1.94%。
YOLOv4是一種端到端的目標(biāo)檢測(cè)方法,它將目標(biāo)檢測(cè)問(wèn)題轉(zhuǎn)化為回歸問(wèn)題,直接檢測(cè)圖像。每一個(gè)網(wǎng)格會(huì)預(yù)先設(shè)定3個(gè)先驗(yàn)框,每個(gè)先驗(yàn)框會(huì)通過(guò)YOLO Head生成矩形框定位位置,判定類別,留下置信度高于閾值的矩形框。YOLOv4以CSPDarknet?53為主干特征提取網(wǎng)絡(luò),對(duì)YOLOv3中的Darknet?53中的殘差塊進(jìn)行修改,引入了CSPNet結(jié)構(gòu)。將原本的殘差塊進(jìn)行了拆分,拆成左右兩個(gè)部分,主干部分依然繼續(xù)將殘差塊一個(gè)一個(gè)地堆疊,而另一部分只需要做少量的操作就可以直接與殘差塊的尾部相連,使得CSPDarknet?53中存在一個(gè)大的殘差邊。對(duì)于YOLOv4這種深層網(wǎng)絡(luò)來(lái)說(shuō),殘差邊可以把信息傳遞到網(wǎng)絡(luò)的深層,將淺層信息與深層信息進(jìn)行結(jié)合,避免了梯度消失的問(wèn)題,增強(qiáng)網(wǎng)絡(luò)特征提取能力。同時(shí),CSPDarknet?53還將卷積中的激活函數(shù)由 Leaky?ReLU 換為 Mish[17],Mish 函數(shù)具有平滑和連續(xù)等特點(diǎn),這可以讓網(wǎng)絡(luò)具有更好的泛化能力,使信息可以更深入網(wǎng)絡(luò)。
YOLOv4采用路徑聚合網(wǎng)絡(luò)(Path Aggregation Network, PANet)[18]作為加強(qiáng)特征提取網(wǎng)絡(luò)。 上采樣時(shí),特征層將輸入的長(zhǎng)和寬分別變?yōu)樵瓉?lái)的兩倍,再與上一特征層堆疊,使得淺層特征與深層特征進(jìn)行融合,將深層網(wǎng)絡(luò)的語(yǔ)義信息向回傳遞,全部堆疊完成后再反過(guò)來(lái)進(jìn)行下采樣,與下一特征層進(jìn)行堆疊。融合了上采樣、下采樣,并對(duì)不同的特征層之間的信息進(jìn)行特征融合,更有利于提取多尺度的特征,以便更好地對(duì)不同大小的目標(biāo)進(jìn)行檢測(cè)。
傳統(tǒng)的特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks, FPN)[19]結(jié)構(gòu)僅僅為單方向自上而下傳遞,信息傳遞受到限制,而YOLOv4中的PANet更改了這種僅作上采樣堆疊的方式,在FPN的基礎(chǔ)上使用了自底向上的路徑聚合,由淺至深傳遞,提高了淺層特征層中位置信息的利用率。這種自底向上的結(jié)構(gòu)層數(shù)較少,縮短了路徑,減輕了由于層層卷積導(dǎo)致的信息丟失,且產(chǎn)生的計(jì)算開(kāi)銷很小。
深層網(wǎng)絡(luò)往往注重深層信息的獲取,感受野大時(shí)結(jié)合全局信息的程度更強(qiáng)。而理論中當(dāng)網(wǎng)絡(luò)越深時(shí),感受野越大,但實(shí)際的感受野大小會(huì)比理論的感受野要小,因此融合上下文信息非常重要。金字塔池化模塊采用的是平均池化,可以融合全局信息,但其特征提取能力不足,如果單純使用單一的平均池化會(huì)造成信息的損失,因此利用平均池化將不同感受野下的特征進(jìn)行融合。
YOLOv4隨著CSPDarknet?53的層層下采樣,淺層信息丟失嚴(yán)重,向深層傳遞時(shí)信息利用率較低。為了解決該問(wèn)題,并且使用盡量短的路徑避免信息丟失,本文主要從加強(qiáng)特征提取網(wǎng)絡(luò)入手,對(duì)YOLOv4進(jìn)行改進(jìn)以提升淺層信息的利用率。
YOLOv4將YOLOv3堆疊的金字塔結(jié)構(gòu)改為具有自底向上的路徑聚合結(jié)構(gòu),先將深層向淺層傳遞,再將淺層向深層傳遞,這種結(jié)構(gòu)層數(shù)較少,縮短了路徑,減輕了由于層層卷積導(dǎo)致的信息丟失[20]。受此啟發(fā),為了充分利用這個(gè)特點(diǎn),對(duì)PANet結(jié)構(gòu)進(jìn)行改進(jìn),利用主干特征提取網(wǎng)絡(luò)的第二個(gè)殘差塊,新增一個(gè)大小為104×104的檢測(cè)層,共有大小分別為104×104,52×52,26×26 和 13×13 等 4 個(gè)檢測(cè)層,加強(qiáng)融合淺層特征層,改進(jìn)的PANet網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 改進(jìn)的PANet網(wǎng)絡(luò)結(jié)構(gòu)
當(dāng)PANet進(jìn)行上采樣堆疊至52×52特征層時(shí),依舊繼續(xù)進(jìn)行上采樣,與第二個(gè)殘差塊輸出的結(jié)果,即大小為104×104的特征層進(jìn)行堆疊,然后再反過(guò)來(lái)進(jìn)行層層下采樣。將這4個(gè)不同尺度的特征層進(jìn)行深度融合,盡可能地保留了淺層位置信息,增強(qiáng)了特征提取能力。
YOLOv4共有3個(gè)檢測(cè)層,每個(gè)檢測(cè)層設(shè)定3個(gè)先驗(yàn)框尺寸,先驗(yàn)框的寬高都是預(yù)先設(shè)定好的,可以通過(guò)對(duì)其寬高進(jìn)行調(diào)整,幫助預(yù)測(cè)結(jié)果更接近真實(shí)框,并加快模型的收斂速度。先驗(yàn)框的寬高設(shè)定非常重要,YOLOv4 是使用 K?means聚類[21]來(lái)獲得合適的先驗(yàn)框尺寸大小。原始的先驗(yàn)框尺寸大小分別為(12,16)、(19,36)、(40,28)、(36,75)、(76,55)、(72,146)、(142,110)、(192,243)和(459,401),共有9個(gè)不同的尺寸。本文改進(jìn)的YOLOv4共有4個(gè)檢測(cè)層,每個(gè)檢測(cè)層需要3個(gè)不同的先驗(yàn)框尺寸,為了給每個(gè)特征層分配合理的先驗(yàn)框,共需要12個(gè)不同尺寸的先驗(yàn)框,因此取K=12的K?means聚類方法對(duì)數(shù)據(jù)集重新進(jìn)行聚類,以獲得新的先驗(yàn)框尺寸。通過(guò)K?means聚類,重新得到的先驗(yàn)框尺寸大小分別為(14,22)、(16,47)、(26,82)、(38,35)、(44,126)、(66,66)、(76,163)、(116,251)、(134,113)、 (202,321)、(257,180)和(361,343)。每個(gè)檢測(cè)層對(duì)應(yīng)3個(gè)尺寸,大尺寸的先驗(yàn)框用于深層檢測(cè)層,小尺寸用于淺層檢測(cè)層。每個(gè)先驗(yàn)框會(huì)通過(guò)YOLO Head生成矩形框定位位置,判定類別,留下置信度高于閾值的矩形框。
本文對(duì) YOLOv4進(jìn)行改進(jìn),改進(jìn)的 YOLOv4?P結(jié)構(gòu)如圖2所示。
圖2 基于改進(jìn)的路徑聚合和池化YOLOv4的目標(biāo)檢測(cè)方法網(wǎng)絡(luò)結(jié)構(gòu)
該網(wǎng)絡(luò)主要分為主干特征提取網(wǎng)絡(luò),加強(qiáng)特征提取網(wǎng)絡(luò)和YOLO Head檢測(cè)層3個(gè)部分。YOLOv4將尺寸為416×416的圖像輸入到網(wǎng)絡(luò),首先經(jīng)過(guò)主干特征提取網(wǎng)絡(luò)CSPDarknet?53,進(jìn)行網(wǎng)絡(luò)的特征提取。但隨著網(wǎng)絡(luò)變深,感受野變小,特征提取能力受限,并沒(méi)有充分結(jié)合上下文信息。為了進(jìn)行全局信息的特征融合,在 CSPDarknet?53的輸出后加入金字塔池化模塊,預(yù)先設(shè)定好不同池化核大小,利用4種大小分別為1×1、2×2、3×3 和 6×6 尺度的金字塔池化引入不同尺度下的特征信息。特征圖輸入到金字塔池化模塊中,分成兩個(gè)分支,其中一個(gè)分支不做修改,另一個(gè)分支首先分別進(jìn)行這4個(gè)尺度的池化,得到4個(gè)不同大小的特征圖。由于是4個(gè)尺度,通道數(shù)會(huì)變?yōu)樵瓉?lái)的4倍,再進(jìn)行卷積調(diào)整后通道數(shù)變?yōu)樵瓉?lái)的1/4,利用雙線性插值修改特征圖尺寸,與原始特征圖結(jié)合后經(jīng)過(guò)卷積輸出結(jié)果。這種金字塔結(jié)構(gòu)可以讓圖像變換為不同尺度的特征圖,最后連接到一起,解決了卷積神經(jīng)網(wǎng)絡(luò)對(duì)于圖像的固定約束。同時(shí)聚合了多種感受野中的特征,相較于單一尺度的池化,對(duì)網(wǎng)絡(luò)中提取到的多種尺度的語(yǔ)義信息進(jìn)行融合,增強(qiáng)了網(wǎng)絡(luò)對(duì)全局信息的特征提取能力。加強(qiáng)特征提取網(wǎng)絡(luò)由SPP模塊和PANet構(gòu)成,YOLOv4雖然具有速度和精度的優(yōu)勢(shì),但主干網(wǎng)絡(luò)擁有53個(gè)卷積層,隨著CSPdarknet?53的層層下采樣,淺層信息丟失嚴(yán)重,為了更好地利用淺層特征層的位置信息,本文對(duì) PANet結(jié)構(gòu)進(jìn)行改進(jìn)。PANet路徑較短,將信息由淺至深傳遞,可以提高淺層特征層中位置信息的利用率。原本的YOLOv4經(jīng)過(guò)PANet后會(huì)產(chǎn)生3個(gè)不同尺度的特征層,改進(jìn)后利用了主干網(wǎng)絡(luò)的第二個(gè)殘差塊的輸出,使用PANet將深層特征層上采樣的結(jié)果與其進(jìn)行堆疊,得到第4個(gè)大小為104×104的檢測(cè)層,再進(jìn)行層層下采樣,將淺層信息傳遞到深層,得到的4個(gè)檢測(cè)層大小分別為104×104、52×52、26×26 和 13×13,改進(jìn)的PANet結(jié)構(gòu)對(duì)4個(gè)尺度的特征都可以充分利用。由于改進(jìn)的YOLOv4擁有4個(gè)尺度的檢測(cè)層,網(wǎng)絡(luò)在預(yù)測(cè)時(shí)需要對(duì)先驗(yàn)框進(jìn)行調(diào)整以獲得預(yù)測(cè)結(jié)果,合適的先驗(yàn)框尺寸大小非常重要,使用K?means聚類重新生成對(duì)應(yīng)的先驗(yàn)框,提高了目標(biāo)檢測(cè)精度。
為了驗(yàn)證本文提出的YOLOv4?P的有效性,進(jìn)行了實(shí)驗(yàn),數(shù)據(jù)集為 PASCAL VOC2007和VOC2012,使用的服務(wù)器GPU版本為NVIDIA Tesla M40(12 GB),Ubuntu 版本為 16.04.7,CUDA 版本為10.0。
在訓(xùn)練前首先使用K?means聚類來(lái)獲得12個(gè)新的合適的先驗(yàn)框尺寸完成準(zhǔn)備工作。訓(xùn)練共有100個(gè)輪次,采用了遷移學(xué)習(xí)的理念,前50個(gè)輪次將主干網(wǎng)絡(luò)凍住,后50個(gè)輪次解凍主干網(wǎng)絡(luò),將整個(gè)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。實(shí)驗(yàn)中訓(xùn)練的批尺寸是4,初始學(xué)習(xí)率為1e-3,動(dòng)量設(shè)為0.9,權(quán)重衰減設(shè)為5e-4。先進(jìn)行了消融實(shí)驗(yàn),研究改進(jìn)的路徑聚合網(wǎng)絡(luò)的加層和金字塔池化模塊對(duì)YOLOv4?P的貢獻(xiàn)。最后將YOLOv4?P與其他先進(jìn)的目標(biāo)檢測(cè)方法進(jìn)行了對(duì)比實(shí)驗(yàn)。
為了驗(yàn)證本文提出的YOLOv4?P方法中各個(gè)策略的有效性,在PASCAL VOC2007和VOC2012上進(jìn)行消融實(shí)驗(yàn),其中YOLOv4+PP表示在YOLOv4主干特征提取網(wǎng)絡(luò)的后端加入金字塔池化模塊,YOLOv4+PA表示在YOLOv4中加入加層路徑聚合網(wǎng)絡(luò),其實(shí)驗(yàn)結(jié)果的mAP值如表1所示。
表1 YOLOv4?P的消融實(shí)驗(yàn)
首先比較使用金字塔池化模塊和原始YOLOv4在精度上的差異,金字塔池化模塊可以讓圖像變換為不同尺度的特征圖,解決了卷積神經(jīng)網(wǎng)絡(luò)對(duì)于圖像的固定約束。相較于單一尺度的池化,金字塔池化對(duì)網(wǎng)絡(luò)中提取到的多種尺度的語(yǔ)義信息進(jìn)行融合,增強(qiáng)了網(wǎng)絡(luò)對(duì)全局信息的特征提取能力。在兩個(gè)數(shù)據(jù)集上的mAP分別提高了0.78%和0.74%,說(shuō)明金字塔池化模塊可以有效提升YOLOv4?P的檢測(cè)精度。接著驗(yàn)證路徑聚合網(wǎng)路的加層改進(jìn)對(duì)YOLOv4?P的優(yōu)化,該方法增加了一個(gè)淺層檢測(cè)層,可以利用低層特征層的位置信息。在兩個(gè)數(shù)據(jù)集上上的mAP較YOLOv4分別提升1.46%和1.47%,分別達(dá)到86.92%和88.15%,說(shuō)明加層的路徑聚合網(wǎng)絡(luò)可以有效提升網(wǎng)絡(luò)精度,加層后的4個(gè)不同尺度的特征層深度融合,盡可能地保留了淺層位置信息,增強(qiáng)了特征提取能力。
將YOLOv4?P與其他先進(jìn)目標(biāo)檢測(cè)方法進(jìn)行對(duì)比,置信度設(shè)為0.5,圖像被不同的目標(biāo)檢測(cè)方法檢測(cè)后,會(huì)判斷圖像中是否含有目標(biāo)以及目標(biāo)的具體位置,并使用不同顏色的矩形框框出,其視覺(jué)結(jié)果如圖3所示。
圖3 YOLOv4?P和其他先進(jìn)目標(biāo)檢測(cè)方法的對(duì)比結(jié)果
從圖 3 可以看出,SSD、Retinanet、EfficientDet?D0、EfficientDet?D1、YOLOv3+SPP 和 YOLOv4 框出目標(biāo)數(shù)為 6 個(gè),EfficientDet?D2、YOLOv3 和本文提出的YOLOv4?P框出目標(biāo)數(shù)為7個(gè),最左側(cè)的小汽車位置較偏較小,目標(biāo)不完整且為背面,其他先進(jìn)方法皆將其漏檢,而提出的YOLOv4?P能將其框出,說(shuō)明其中為了保留淺層位置信息和融合不同尺度信息而對(duì)路徑聚合網(wǎng)絡(luò)改進(jìn)增加的淺層特征層和金字塔池化模塊起到作用,成功提高小目標(biāo)檢測(cè)能力,減少漏檢和誤檢。且從框出的目標(biāo)可以看出,與其他先進(jìn)的目標(biāo)檢測(cè)器對(duì)比,YOLOv4?P表現(xiàn)出改善。EfficientDet?D2和 YOLOv3雖然框出的目標(biāo)數(shù)與YOLOv4?P 相同,但 YOLOv4?P 更能完整地框出目標(biāo),尤其是對(duì)于人物這種容易產(chǎn)生形變而不容易精確框出的類別。此外,YOLOv4?P檢測(cè)的置信度也有所提高,7個(gè)目標(biāo)中有3個(gè)目標(biāo)置信度為1,從檢測(cè)圖片結(jié)果來(lái)看,YOLOv4?P能夠提高目標(biāo)檢測(cè)的性能。
YOLOv4?P與其他先進(jìn)目標(biāo)檢測(cè)方法在mAP和幀每秒(Frames Per Second,F(xiàn)PS)上的對(duì)比結(jié)果如表2所示。
表2 與其他先進(jìn)目標(biāo)檢測(cè)方法的對(duì)比
由表2可以看出,在兩個(gè)數(shù)據(jù)集上,YOLOv4?P的mAP最高,分別為87.49%和88.62%,比次優(yōu)的YOLOv4分別提升2.03%和1.94%,說(shuō)明YOLOv4?P的改進(jìn)策略可以有效提升目標(biāo)檢測(cè)的精度。YOLOv4?P 的 FPS 分別為38.49 幀/s和 35.64 幀/s,因?yàn)榧尤肓私鹱炙鼗K并增加了淺層檢測(cè)層,所以網(wǎng)絡(luò)結(jié)構(gòu)變得比原先復(fù)雜,網(wǎng)絡(luò)的速度稍變慢,比FPS最高的YOLOv4稍慢。YOLOv4雖然FPS最高,但mAP與YOLOv4?P相差較大,綜合考慮檢測(cè)精度和速度,YOLOv4?P性能更優(yōu)。SSD在幾種先進(jìn)目標(biāo)檢測(cè)方法中精度最低且速度中等,Retinannet精度較SSD有所提升但檢測(cè)速度也降低了,EfficientDet?D0、EfficientDet?D1 和 EfficientDet?D2 的精度依次提升,但檢測(cè)時(shí)間也依次變長(zhǎng),YOLOv3及YOLOv3?SPP可以很好地平衡速度與精度,但與YOLOv4?P相比仍有較大差距。綜合比較,YOLOv4?P更能平衡速度與精度,效果最優(yōu)。
YOLOv4?P不論是從同一張圖片的視覺(jué)檢測(cè)結(jié)果還是定量數(shù)據(jù),與其他先進(jìn)目標(biāo)檢測(cè)方法相比,不僅維持檢測(cè)速度,滿足了實(shí)時(shí)性要求,還提升了檢測(cè)精度,整體效果更好。
為了解決YOLOv4目標(biāo)檢測(cè)器對(duì)淺層位置信息利用率不足的問(wèn)題,本文提出對(duì)PANet進(jìn)行改進(jìn),增加了一個(gè)檢測(cè)層來(lái)加強(qiáng)淺層信息融合。并且使用K?means聚類對(duì)數(shù)據(jù)集重新進(jìn)行處理,獲得合適的先驗(yàn)框尺寸。此外還使用金字塔池化模塊來(lái)引入不同尺度下的特征信息,并將其加入到主干特征提取網(wǎng)絡(luò)之后。為了驗(yàn)證提出的網(wǎng)絡(luò)的性能,進(jìn)行了消融實(shí)驗(yàn)以及與其他先進(jìn)目標(biāo)檢測(cè)方法的對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,YOLOv4?P的性能比其他先進(jìn)目標(biāo)檢測(cè)方法都更優(yōu)。