張 翔, 劉振凱, 葉 娜, 趙妍禎
(西安建筑科技大學(xué) 信息與控制工程學(xué)院,西安 710311)
目標(biāo)檢測(cè)作為計(jì)算機(jī)視覺的重要研究領(lǐng)域,是解決圖像描述、場(chǎng)景理解、語(yǔ)義分割、目標(biāo)追蹤和事件檢測(cè)等更高層次視覺任務(wù)的基礎(chǔ)。隨著深度學(xué)習(xí)被應(yīng)用于計(jì)算機(jī)視覺研究中,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法成為目標(biāo)檢測(cè)算法的主流。
基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法分為兩階段的目標(biāo)檢測(cè)算法和單階段的目標(biāo)檢測(cè)算法。由學(xué)者Girshick提出的R-CNN算法[1]就是兩階段目標(biāo)檢測(cè)算法的代表,該算法將人工干預(yù)用Selective Search[2]方法進(jìn)行替換,利用卷積神經(jīng)網(wǎng)絡(luò)(CNN,convolutional neural networks)提取特征。使用支持向量機(jī)(SVM,support vector machine)對(duì)獲取的特征進(jìn)行分類。通過(guò)PASCAL VOC數(shù)據(jù)集[3]對(duì)R-CNN檢測(cè)算法進(jìn)行驗(yàn)證,準(zhǔn)確率為58.5%。因R-CNN在全連接層需要對(duì)圖像進(jìn)行裁剪、壓縮為固定大小,最終影響檢測(cè)結(jié)果的準(zhǔn)確性。于是Kaiming He等人提出了多尺度空間金字塔網(wǎng)絡(luò)[4](spatial pyramid pooling,SPP-net),SPP-net的引入有效解決R-CNN對(duì)圖像處理時(shí)導(dǎo)致的不完整性問(wèn)題。由于SPP-net的特征提取是基于多尺度空間金字塔池化,需要花費(fèi)大量時(shí)間在訓(xùn)練以及檢測(cè)上,因此Fast R-CNN[5]將SPP-net池化替換為感興趣區(qū)域池化(region of interest pooling,ROI pooling),節(jié)省檢測(cè)時(shí)間和訓(xùn)練時(shí)間,并將SVM替換為softmax,節(jié)省存儲(chǔ)空間。Faster R-CNN[6]對(duì)候選區(qū)的選擇方式進(jìn)行了改進(jìn),使用區(qū)域建議網(wǎng)絡(luò)[6](RPN,region proposal network)。將RPN嵌入到Faster R-CNN中去,實(shí)現(xiàn)真正意義上端到端的檢測(cè)與訓(xùn)練。
2016年Redmon[7]等人改變以往的兩階段檢測(cè)思路,采用單階段檢測(cè),這種全新的檢測(cè)方法取名為 YOLO(You Only Look Once),其網(wǎng)絡(luò)架構(gòu)受到GoogleNet[8]圖像分類的啟發(fā),將目標(biāo)檢測(cè)視為回歸問(wèn)題,看成一個(gè)單一神經(jīng)網(wǎng)絡(luò),利用整張圖像預(yù)測(cè)所有類的邊界框。模型將圖像分為網(wǎng)格,每個(gè)網(wǎng)格負(fù)責(zé)預(yù)測(cè)對(duì)象邊界框和邊框置信度,置信度反映了模型預(yù)測(cè)的準(zhǔn)確性。
因YOLO需要對(duì)置信度位置進(jìn)行推測(cè),產(chǎn)生大量的Prediction box,增加計(jì)算量影響檢測(cè)速度。YOLOv2[9]借鑒Faster R-CNN中anchor box思想,利用錨框?qū)δ繕?biāo)位置進(jìn)行估計(jì),減少Prediction box的數(shù)量,提高了檢測(cè)速度。但YOLOv2對(duì)小目標(biāo)檢測(cè)精度不高,Joseph Redmon提出YOLOv3[10]并引入了新的思想,主干網(wǎng)絡(luò)采用DarkNet-53,借鑒殘差網(wǎng)絡(luò)算法,增加檢測(cè)模型的深度。YOLOv3受特征金字塔網(wǎng)絡(luò)[11](FPN,feature pyrimad networks)啟發(fā),融合多個(gè)尺度特征網(wǎng)絡(luò),提升模型檢測(cè)精度。Alexey Bochkovskiy等人[12]提出了YOLOv4,模型檢測(cè)精度以及檢測(cè)速度相比于其他的YOLO系列得到提升,Liu等人提出了SSD[13]模型,使用單個(gè)獨(dú)立的過(guò)濾器進(jìn)行檢測(cè),每個(gè)過(guò)濾器都進(jìn)行圖像特征提取,并將獲取的特征傳送到檢測(cè)器中,以便執(zhí)行對(duì)尺度檢測(cè),經(jīng)過(guò)改進(jìn)SSD的檢測(cè)速度要比YOLO更加快速,而且檢測(cè)的精準(zhǔn)度相比于Faster R-CNN還要精確。
隨著單階段目標(biāo)檢測(cè)效率的提升,將該檢測(cè)方式應(yīng)用到其它檢測(cè)領(lǐng)域已經(jīng)成為熱點(diǎn)問(wèn)題。張興旺團(tuán)隊(duì)將Tiny-YOLOv3應(yīng)用在無(wú)人機(jī)地面目標(biāo)跟蹤上[14],通過(guò)應(yīng)用卡爾曼濾波器實(shí)現(xiàn)目標(biāo)的有效跟蹤。隨著2020年疫情變得嚴(yán)峻,將目標(biāo)檢測(cè)與疫情防控融合,實(shí)現(xiàn)疫情的有效控制,于碩團(tuán)隊(duì)將YOLOv5應(yīng)用到口罩佩戴檢測(cè)中[15],面對(duì)復(fù)雜的檢測(cè)環(huán)境,可以有效進(jìn)行防控工作。
雖然YOLOv4提升目標(biāo)檢測(cè)的精度,但對(duì)于細(xì)微層次上的特征表達(dá)不那么敏感,當(dāng)檢測(cè)的目標(biāo)過(guò)小或者有遮擋時(shí),模型會(huì)出現(xiàn)漏檢以及誤檢等問(wèn)題。
針對(duì)YOLOv4模型中存在的問(wèn)題,提出RFAL YOLOv4模型,具體改進(jìn)為引入Res2Net,替換原有ResNet,實(shí)現(xiàn)細(xì)小特征獲??;利用注意力機(jī)制獲取關(guān)鍵信息,減輕模型計(jì)算負(fù)擔(dān);改進(jìn)CIOU損失函數(shù),解決對(duì)有遮擋目標(biāo)檢測(cè)出現(xiàn)的漏檢問(wèn)題,提升模型的檢測(cè)準(zhǔn)確率。
傳統(tǒng)YOLOv4是以CSPDarkNet53[16]為主干網(wǎng)絡(luò),先將輸入為3通道的圖像處理為32通道,然后再輸入到主干網(wǎng)絡(luò)中進(jìn)行卷積操作?;A(chǔ)主干網(wǎng)包含了72個(gè)卷積層,對(duì)輸入的圖像進(jìn)行淺層特征提取,經(jīng)過(guò)多域金字塔池化層(SPP)以及路徑聚合網(wǎng)絡(luò)[17](PANet),將提取的淺層特征進(jìn)行深層處理,最終將獲取到的特征輸入到檢測(cè)頭,輸出3個(gè)大小不同的heatmap。具體的YOLOv4算法結(jié)構(gòu)如圖1所示。
圖1 YOLOv4算法結(jié)構(gòu)圖
YOLOv4輸出為3個(gè)大小不同的heatmap,對(duì)不同的目標(biāo)進(jìn)行檢測(cè)。由于本文輸入模型的圖像像素值大小為416*416,因此經(jīng)過(guò)卷積操作以及池化操作后,輸出的檢測(cè)頭像素值分別是52*52、26*26、13*13。雖然YOLOv4在以前的YOLO上做了極大的優(yōu)化,但還會(huì)出現(xiàn)漏檢以及誤檢的目標(biāo),影響模型的檢測(cè)準(zhǔn)確率。
為改善YOLOv4算法在復(fù)雜背景下檢測(cè)小目標(biāo)困難,RFAL YOLOv4首先在原始網(wǎng)絡(luò)中改進(jìn)ResNet殘差網(wǎng)絡(luò),并融合注意力機(jī)制,實(shí)現(xiàn)卷積網(wǎng)絡(luò)對(duì)圖像特征細(xì)微獲取,其次改進(jìn)原有的CIOU損失函數(shù),可以實(shí)現(xiàn)遮擋目標(biāo)的有效識(shí)別。原始YOLOv4網(wǎng)絡(luò)在SCPResNet結(jié)構(gòu)的part2部分進(jìn)行殘差網(wǎng)絡(luò)循環(huán)操作,RFAL YOLOv4網(wǎng)絡(luò)不僅在CSPRes2Net結(jié)構(gòu)的part2部分進(jìn)行組內(nèi)殘差循環(huán)操作,并且在完整的循環(huán)操作后融合注意力模塊,網(wǎng)絡(luò)結(jié)構(gòu)對(duì)比如圖2所示。
圖2 YOLOv4與RFAL YOLOv4骨干網(wǎng)絡(luò)對(duì)比
Res2Net[18]在傳統(tǒng)的ResNet[19]上進(jìn)行改進(jìn),模型獲取更細(xì)微圖像特征。它通過(guò)在一個(gè)殘差塊內(nèi)構(gòu)造層次化的殘差連接,增加了每個(gè)網(wǎng)絡(luò)層的接受域。
ResNet只是單一的殘差操作,它的思想是將原有網(wǎng)絡(luò)特征利用卷積操作一分為二,這兩個(gè)結(jié)構(gòu)塊輸入特征相同,一塊不進(jìn)行卷積操作,另一塊進(jìn)行卷積操作,然后將沒有進(jìn)行卷積操作的那一塊特征與參加卷積操作的輸出特征進(jìn)行合并。
Res2Net網(wǎng)絡(luò)結(jié)構(gòu)先進(jìn)行分組,在進(jìn)行殘差操作,它的思想是首先將輸入特征分組,其中一組過(guò)濾器先進(jìn)行卷積操作,提取輸入信息的特征,然后將獲取到的特征和另外一組發(fā)送過(guò)來(lái)準(zhǔn)備輸入的特征一起輸入到下一個(gè)過(guò)濾器,對(duì)上述過(guò)程不斷的重復(fù)執(zhí)行,它的目的是對(duì)輸入特征進(jìn)行完全處理,處理完之后該操作結(jié)束,最后連接這些特征圖,并將連接好的特征圖傳遞到一個(gè)1*1的過(guò)濾器,融合所有特征。在特征傳遞過(guò)程中,輸入特征可以以任何路徑進(jìn)行轉(zhuǎn)化,當(dāng)通過(guò)和上一次卷積相同的3*3過(guò)濾器時(shí),由于卷積操作的原因使得感受野增加。網(wǎng)絡(luò)結(jié)構(gòu)對(duì)比如圖3所示。
圖3 網(wǎng)絡(luò)結(jié)構(gòu)對(duì)比圖
(1)
雖然引入組內(nèi)殘差結(jié)構(gòu),增加了網(wǎng)絡(luò)的卷積操作,可以有效的獲取圖像上下文特征,但增加了模型的復(fù)雜度。相比于原始的CSPDarknet網(wǎng)絡(luò),改進(jìn)后的網(wǎng)絡(luò)每經(jīng)過(guò)一次CSP網(wǎng)絡(luò),都要進(jìn)行特征分割并進(jìn)行卷積操作,增加了模型的計(jì)算量,影響了模型的檢測(cè)實(shí)時(shí)性,但模型的檢測(cè)精度得到提升。
由于組內(nèi)殘差對(duì)特征過(guò)度細(xì)小化提取,導(dǎo)致模型計(jì)算量增加。因此引入注意力機(jī)制獲取關(guān)鍵信息降低Res2Net計(jì)算量。
2018年提出(CBAM,convolutional block attention module)[20],一種既考慮不同通道像素相關(guān)性,又考量空間像素影響的注意力算法。并且進(jìn)行組內(nèi)殘差連接之后,雖然可以獲取到更深、更有判別力的特征圖信息,但這也會(huì)造成特征圖空間信息出現(xiàn)丟失。
CBAM首先進(jìn)行通道域處理,將輸入的特征進(jìn)行全局最大池化和全局平均池化,然后送入一個(gè)兩層的神經(jīng)網(wǎng)絡(luò)并進(jìn)行激活操作,最后將這兩層網(wǎng)絡(luò)進(jìn)行加和在經(jīng)過(guò)sigmoid激活,生成channel attention feature,將得到的通道注意力特征和輸入特征進(jìn)行乘法操作,最終生成spatial attention模塊需要的輸入特征;其次進(jìn)行空間域處理,將channel attention模塊輸出的特征做一個(gè)基于channel的全局最大池化和全局平均池化,得到兩個(gè)H*W*1的特征圖,然后將這兩個(gè)特征圖做拼接操作,然后進(jìn)行7*7卷積,進(jìn)行降維操作,在經(jīng)過(guò)sigmoid生成spatial attention feature,最后將channel attention輸出的特征和該模塊處理的特征進(jìn)行乘法操作,得到最終的Refined Feature。因此引入CBAM注意力機(jī)制模塊可以有效地避免信息丟失等問(wèn)題。CBAM注意力模塊如圖4所示。
圖4 CBAM網(wǎng)絡(luò)結(jié)構(gòu)圖
將CBAM注意力模塊融合到組內(nèi)殘差網(wǎng)絡(luò)中,模型在進(jìn)行訓(xùn)練時(shí),圖像經(jīng)過(guò)主干網(wǎng)絡(luò)進(jìn)行特征提取,首先進(jìn)行歸一化、前向傳播以及激活操作,然后利用卷積操作將處理后的圖像特征分為兩個(gè)部分,這兩部分特征相同,其中一部分特征保留,而另一部分特征輸入到組內(nèi)殘差卷積塊中,模型對(duì)圖像特征進(jìn)行卷積操作,并獲取細(xì)小特征,利用卷積操作將這兩個(gè)部分的特征合并,最后將提取的特征輸入到CBAM注意力模塊,利用注意力模塊對(duì)獲取特征進(jìn)行關(guān)鍵信息提取,使用該注意力模塊增加模型感受野,從而使模型具有更好的檢測(cè)效果。以及引入CBAM注意力機(jī)制,可以有效抑制背景信息干擾。融合后的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖5所示。
圖5 CBAM-Res2Net網(wǎng)絡(luò)結(jié)構(gòu)圖
替換ResNet為Res2Net并在組內(nèi)殘差網(wǎng)絡(luò)之后融入CBAM注意力模塊,在不同的像素下輸出的特征圖像如圖6所示,上半部分為原始YOLOv4處理后的圖像特征輸出,下半部分為RFAL YOLOv4特征輸出,RFAL YOLOv4訓(xùn)練的圖像像素輸入值設(shè)置為416*416,經(jīng)過(guò)卷積之后網(wǎng)絡(luò)的三層輸出像素分別是52*52、26*26、13*13。
圖6 特征輸出對(duì)比圖像
通過(guò)Res2Net和CBAM融合后輸出特征圖對(duì)比發(fā)現(xiàn),引入注意力機(jī)制,52*52、26*26像素輸出提高目標(biāo)與背景的區(qū)別,替換ResNet網(wǎng)絡(luò)之后,RFAL YOLOv4可以獲取更多的特征,尤其是在52*52像素特征輸出時(shí)最為明顯。
目標(biāo)檢測(cè)任務(wù)中,利用損失函數(shù)反應(yīng)Real Box和Prediction Box的誤差,其中IOU[21]損失函數(shù)的范圍在(0,1)之間,具有尺度不變性,IOU損失可以評(píng)價(jià)各種形狀的匹配程度。所以將IOU損失引入到Y(jié)OLO檢測(cè)中。IOU損失如公式(2)所示。
(2)
式中,A表示Prediction Box與Real Box的交集即獲取的交集區(qū)域的面積,B表示Real Box與Prediction Box的并集即獲取的并集部分的面積。利用獲取的交集的面積和并集的面積作比,最終得到IOU。
但當(dāng)Real Box與Prediction Box不相交時(shí)IOU為零,不能預(yù)測(cè)Real Box與Prediction Box之間的誤差值;當(dāng)Prediction Box與Real Box交集、并集相同,此時(shí)得到的IOU相同,但位置不一致時(shí),模型獲取到的圖像特征是不相同的,因此IOU損失函數(shù)不滿足此時(shí)的需求。
因此GIOU[22]損失在IOU損失的基礎(chǔ)上進(jìn)行優(yōu)化, GIOU損失如公式(3)所示。
(3)
式中,C表示Real Box與Prediction Box的最小外接矩形,但當(dāng)Prediction Box位于Real Box內(nèi)部時(shí),GIOU會(huì)退化為IOU損失,無(wú)法優(yōu)化相對(duì)位置,收斂緩慢。由于出現(xiàn)損失退化的問(wèn)題,所以對(duì)損失函數(shù)進(jìn)行優(yōu)化,產(chǎn)生DIOU損失[23]。
(4)
DIOU保留了GIOU的優(yōu)點(diǎn),對(duì)兩個(gè)框的中心點(diǎn)進(jìn)行度量,使其進(jìn)行快速收斂,并且當(dāng)兩個(gè)框的中心點(diǎn)重合時(shí),DIOU才退化為IOU,雖然DIOU在前人的基礎(chǔ)上做了改進(jìn),但該損失有個(gè)缺陷是當(dāng)Prediction Box與Real Box距離一致但是框的形狀不一致,其計(jì)算的DIOU結(jié)果相同,無(wú)法進(jìn)行模型的優(yōu)化。所以對(duì)其進(jìn)行優(yōu)化,產(chǎn)生CIOU損失。
CIOU損失考慮到同一中心點(diǎn)位置的Prediction box的形狀不同,在DIOU損失函數(shù)的基礎(chǔ)上對(duì)其添加懲罰項(xiàng)。用于Prediction box形狀的區(qū)分。
CIOU損失如公式(5)所示。
(5)
(6)
(7)
式中,α用以平衡參數(shù),v表示寬高比的傾斜角度。
YOLOv4模型訓(xùn)練時(shí),當(dāng)出現(xiàn)劃定的多個(gè)位置不同的Prediction Box形狀相同,且它們到Real Box中心點(diǎn)距離相同,計(jì)算得到多個(gè)Prediction Box的CIOU損失值一致,導(dǎo)致模型在回歸操作時(shí)會(huì)舍棄相同的Prediction Box,因此出現(xiàn)漏掉圖像部分特征的問(wèn)題。當(dāng)模型進(jìn)行檢測(cè)任務(wù)時(shí),如果檢測(cè)目標(biāo)恰好被某個(gè)物體遮擋,遮擋部分的Prediction box與沒有被遮擋部分的Prediction box進(jìn)行損失計(jì)算時(shí),它們的損失函數(shù)值一致,這就導(dǎo)致目標(biāo)在被遮擋時(shí)出現(xiàn)檢測(cè)誤差。
對(duì)上述問(wèn)題,RFAL YOLOv4在CIOU的基礎(chǔ)上添加了懲罰項(xiàng),計(jì)算Prediction box左上角到Real box中心距,以此區(qū)別于Prediction box與Real box中心距相同、Prediction box形狀相同、位置不同時(shí)的特殊情況。損失函數(shù)計(jì)算公式如(8)所示:
Loss=1-LossYOLOv4-β*t
(8)
β計(jì)算公式如(9)所示:
(9)
t的計(jì)算公式如(10)所示:
t=I(a,b)
(10)
式中,a表示Prediction box到Real box左上角的距離,b表示Prediction box到Real box中心點(diǎn)的距離,I表示坐標(biāo)距離的比值,β表示平衡t所添加的參數(shù)項(xiàng)。
采用的數(shù)據(jù)集為官方的VOC數(shù)據(jù)集,首先運(yùn)行voc2yolo4.py文件,將數(shù)據(jù)集劃分為訓(xùn)練集、測(cè)試集、驗(yàn)證集,然后設(shè)置classes為aeroplane、bicycle、bird等20個(gè)類別,然后設(shè)置模型輸入圖像的像素,輸入shape大小為416*416,設(shè)置anchor_num為9,進(jìn)行聚類操作生成九個(gè)聚類框的坐標(biāo),參數(shù)設(shè)置完成之后進(jìn)行模型訓(xùn)練。
2.4.1 超參數(shù)設(shè)置
1)修改VOC_label.py文件中的類別標(biāo)簽,將其修改為要識(shí)別的目標(biāo)類別。由于本文采用VOC2007+2012數(shù)據(jù)集,進(jìn)行模型訓(xùn)練時(shí),在該文件下將classes分別修改為對(duì)應(yīng)的分類類別。
2)修改obj.data文件中的classes、修改為訓(xùn)練數(shù)據(jù)集的類別數(shù),因此設(shè)定classes分別為20。設(shè)定訓(xùn)練數(shù)據(jù)集路徑、模型訓(xùn)練時(shí)生成的權(quán)重值存儲(chǔ)文件路徑,cfg/obj.names文件為模型訓(xùn)練時(shí)各類別名稱。
3)修改obj.names文件中進(jìn)行分類的類別,進(jìn)行VOC數(shù)據(jù)訓(xùn)練時(shí),在該文件中設(shè)置類別為aeroplane、bicycle、bird等類別。
4)YOLOv4.cfg文件:此文件主要為模型的網(wǎng)絡(luò)結(jié)構(gòu),文件開頭部分描述了用于訓(xùn)練網(wǎng)絡(luò)的一些超參數(shù),剩余部分為圖像特征提取的主干網(wǎng)絡(luò)。修改一部分超參數(shù)使其適應(yīng)本文數(shù)據(jù)集和訓(xùn)練環(huán)境。文件中將batch設(shè)置為64、subdivisions設(shè)置為16(主要取決于模型訓(xùn)練的GPU內(nèi)存大小)。max_batches=40 000(迭代次數(shù)為訓(xùn)練類型classes*2 000)、steps=32 000,36 000(設(shè)置為max_batches的80%、90%)、classes=20,anchors為kmeans聚類之后獲取的先驗(yàn)框坐標(biāo)、[yolo]-layers下的三處filters=75。filters的計(jì)算公式如式(11)所示:
filters=(5+classes)×3
(11)
式中,filters表示卷積輸出,classes表示類別數(shù)。
2.4.2 預(yù)編譯
首先運(yùn)行test.py文件,將數(shù)據(jù)集劃分為訓(xùn)練集、測(cè)試集以及驗(yàn)證集,然后運(yùn)行VOC_label.py文件,獲取Annotations標(biāo)簽文件中的標(biāo)注文件屬性。最后運(yùn)行kmeans_for_anchors.py文件,使用kmeans算法,對(duì)模型訓(xùn)練時(shí)的數(shù)據(jù)集進(jìn)行聚類操作,并生成聚類框的坐標(biāo)值。
本次實(shí)驗(yàn)采用的數(shù)據(jù)集來(lái)自PASCAL VOC 2007[4]和PASCAL VOC 2012,其中包含有人、貓、狗、馬、自行車、電視、沙發(fā)、鳥等等20個(gè)種類22 077張圖片。本次實(shí)驗(yàn)將數(shù)據(jù)集隨機(jī)劃分為驗(yàn)證集、訓(xùn)練集、測(cè)試集,訓(xùn)練集有19 870張圖片,測(cè)試集有1 985張,驗(yàn)證集有222張,使用19 870張不同種類的圖片實(shí)驗(yàn)?zāi)P偷念A(yù)訓(xùn)練,使用1 985張圖片進(jìn)行模型的測(cè)試。實(shí)驗(yàn)數(shù)據(jù)如表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)劃分
3.2.1 實(shí)驗(yàn)硬件環(huán)境
由于該實(shí)驗(yàn)需要對(duì)大量的圖數(shù)據(jù)進(jìn)行處理,所以需要利用GPU進(jìn)行計(jì)算。表2為實(shí)驗(yàn)所需要的硬件環(huán)境。
表2 硬件環(huán)境
3.2.2 實(shí)驗(yàn)軟件環(huán)境
本實(shí)驗(yàn)所使用的模型為RFAL YOLOv4,部分實(shí)驗(yàn)采用的權(quán)重參數(shù)如表3所示。
表3 軟件環(huán)境參數(shù)值表
采用AP和mAP進(jìn)行模型性能評(píng)價(jià),將本文改進(jìn)的檢測(cè)模型RFAL YOLOv4和Fast、Faster、SSD、YOLO、YOLOv2-v4目標(biāo)檢測(cè)模型進(jìn)行對(duì)比,各個(gè)類別的檢測(cè)結(jié)果如表4所示,RFAL YOLOv4在檢測(cè)精度上得到相應(yīng)的提升。通過(guò)圖表對(duì)比各模型檢測(cè)結(jié)果,對(duì)某個(gè)類別檢測(cè)精度最高項(xiàng),采用斜體加粗的方式進(jìn)行標(biāo)記。余麗仙團(tuán)隊(duì)改進(jìn)SSD[24]六個(gè)檢測(cè)類別精度占優(yōu),YOLOv2兩個(gè)檢測(cè)類別精度占優(yōu),YOLOv3一個(gè)檢測(cè)類別精度占優(yōu),YOLOv4三個(gè)檢測(cè)精度占優(yōu),RFAL YOLOv4有九項(xiàng)檢測(cè)精度占優(yōu),其中YOLOv4與RFAL YOLOv4有一項(xiàng)并列占優(yōu)。RFAL YOLOv4模型相比于傳統(tǒng)YOLOv4模型,mAP提升了5.5%,相比于改進(jìn)SSD目標(biāo)檢測(cè)算法,mAP僅差0.1%,但RFAL YOLOv4在具體類別檢測(cè)中占相對(duì)高的優(yōu)勢(shì),相比于YOLOv2提升了6.1%,相比于YOLOv3提升了5.6%。通過(guò)圖8可以直觀的看出,RFAL YOLOv4模型基本處于最高點(diǎn)。
圖8 VOC 測(cè)試數(shù)據(jù)集20類別檢測(cè)精度對(duì)比
表4 VOC 測(cè)試數(shù)據(jù)集下20類檢測(cè)精度對(duì)比
網(wǎng)絡(luò)模型的評(píng)價(jià)指標(biāo)表現(xiàn)為兩方面,分別為檢測(cè)模型的精度和速度,RFAL YOLOv4相比于傳統(tǒng)YOLOv4模型在檢測(cè)的速度上有所下降,但是模型的檢測(cè)精度提高了5.5%。具體的模型對(duì)比如表5所示。
表5 VOC數(shù)據(jù)集下模型檢測(cè)速度對(duì)比
YOLOv4和RFAL YOLOv4在訓(xùn)練時(shí)檢測(cè)精準(zhǔn)度對(duì)比如圖7所示,其中橫坐標(biāo)表示模型在各個(gè)類別上的檢測(cè)精準(zhǔn)度,縱坐標(biāo)表示模型的類別,mAP表示檢測(cè)模型的最終檢測(cè)精準(zhǔn)度。
圖7 模型檢測(cè)結(jié)果對(duì)比
通過(guò)檢測(cè)結(jié)果圖更加直觀的展示RFAL YOLOv4有效性。圖9為YOLOv4與改進(jìn)RFAL YOLOv4在測(cè)試集上的檢測(cè)結(jié)果。采用PASCAL VOC 2007+2012 train訓(xùn)練集。圖像大小的輸入均為416 * 416像素值。
圖9 YOLOv4與RFAL YOLOv4檢測(cè)結(jié)果對(duì)比
a1-k1為傳統(tǒng)YOLOv4算法的檢測(cè)結(jié)果,圖a2-k2為RFAL YOLOv4算法的檢測(cè)結(jié)果。通過(guò)a1、a2、b1、b2對(duì)
比,原始YOLOv4模型出現(xiàn)誤檢,將沒有出現(xiàn)的目標(biāo)誤檢為椅子,將目標(biāo)中的馬和人誤檢,RFAL YOLOv4有效的識(shí)別出目標(biāo)中的檢測(cè)對(duì)象。c1、c2、d1、d2對(duì)比,YOLOv4算法出現(xiàn)漏檢,未能識(shí)別桌子以及桌子上的瓶子,d1圖像中漏檢了椅子,而RFAL YOLOv4算法對(duì)桌子、椅子、瓶子識(shí)別率高。通過(guò)e1、e2對(duì)比,在檢測(cè)的對(duì)象較多時(shí),YOLOv4出現(xiàn)漏檢,未能充分檢測(cè)圖像中的鳥類,RFAL YOLOv4算法精準(zhǔn)的識(shí)別出圖像中的鳥。
為驗(yàn)證RFAL YOLOv4算法對(duì)小目標(biāo)檢測(cè)效果,從VOC數(shù)據(jù)集中挑選出小目標(biāo)圖像進(jìn)行檢測(cè),圖中f1-h1為傳統(tǒng)YOLOv4檢測(cè)結(jié)果,f2-h2為RFAL YOLOv4算法檢測(cè)結(jié)果,通過(guò)f1、f2對(duì)比,RFAL YOLOv4精準(zhǔn)的識(shí)別出圖像中的船舶,通過(guò)g1、g2對(duì)比,RFAL YOLOv4算法對(duì)汽車識(shí)別效果好,通過(guò)h1、h2對(duì)比,RFAL YOLOv4算法可以精確識(shí)別圖像中出現(xiàn)的羊。
通過(guò)在VOC數(shù)據(jù)集中選取200張有遮擋圖像,組成小型遮擋數(shù)據(jù)集進(jìn)行檢測(cè),通過(guò)實(shí)驗(yàn)最終得到改進(jìn)CIOU損失,如表6所示,模型的檢測(cè)精度相比于原始YOLOv4檢測(cè)模型提升了3.1%,相比于文獻(xiàn)21中SSD算法mAP高0.5%。
表6 遮擋目標(biāo)檢測(cè)結(jié)果對(duì)比
為了驗(yàn)證在有遮擋的情況下RFAL YOLOv4算法的魯棒性。通過(guò)實(shí)驗(yàn)驗(yàn)證RFAL YOLOv4算法對(duì)遮擋目標(biāo)檢測(cè)效果比較好。通過(guò)i1、i2行人被遮擋后,RFAL YOLOv4算法可以精準(zhǔn)檢測(cè),通過(guò)j1、j2行船幾乎被完全遮擋時(shí),RFAL YOLOv4算法可以準(zhǔn)確檢測(cè)行船,通過(guò)對(duì)比k1、k2,RFAL YOLOv4對(duì)狗有好的識(shí)別能力。
通過(guò)檢測(cè)結(jié)果直觀的展示RFAL YOLOv4檢測(cè)模型的有效性。檢測(cè)圖像中存在較多的檢測(cè)目標(biāo),可以更多更精確的檢測(cè);檢測(cè)對(duì)象中存在有較小的目標(biāo),RFAL YOLOv4有更好的識(shí)別能力;檢測(cè)對(duì)象中存在有遮擋,RFAL YOLOv4模型也表現(xiàn)出更好的檢測(cè)效果。
通過(guò)上述實(shí)驗(yàn),充分的說(shuō)明了RFAL YOLOv4模型有效的改善了漏檢誤檢等問(wèn)題。
考慮到傳統(tǒng)的YOLOv4模型在檢測(cè)小目標(biāo)、有遮擋目標(biāo)、以及在檢測(cè)相似性目標(biāo)時(shí),識(shí)別能力較弱的情況。對(duì)傳統(tǒng)模型進(jìn)行優(yōu)化,首先將傳統(tǒng)YOLOv4網(wǎng)絡(luò)中的ResNet網(wǎng)絡(luò)更改為Res2Net,可以獲取細(xì)小的特征。為了不影響檢測(cè)模型的實(shí)時(shí)性,將組內(nèi)殘差網(wǎng)絡(luò)的特征子集分為3個(gè)。其次在主干網(wǎng)絡(luò)后融入注意力機(jī)制,有效的區(qū)分目標(biāo)與背景信息,從而增加了模型的識(shí)別能力。最后對(duì)模型的損失進(jìn)行改進(jìn),有效的檢測(cè)遮擋目標(biāo)。使用公開的VOC數(shù)據(jù)集對(duì)模型進(jìn)行對(duì)比驗(yàn)證,在測(cè)試集上模型的檢測(cè)精度達(dá)到了79.5%,在傳統(tǒng)的檢測(cè)模型上提高了5.5%,充分的證明RFAL YOLOv4模型具有更好的魯棒性。