李小軍,鄧月明,陳正浩,何 鑫
1.湖南師范大學(xué) 信息科學(xué)與工程學(xué)院,長(zhǎng)沙410081
2.湖南華諾星空電子技術(shù)有限公司,長(zhǎng)沙410221
機(jī)場(chǎng)跑道異物(foreign object debris,F(xiàn)OD)主要指在機(jī)場(chǎng)跑道路面會(huì)對(duì)飛機(jī)安全起降帶來(lái)隱患的外來(lái)物質(zhì),包括金屬器件、碎石塊、紙制品、動(dòng)植物等[1]。FOD給飛機(jī)的起飛與降落帶來(lái)嚴(yán)重的安全隱患,其在威脅乘客生命的同時(shí),也給社會(huì)造成了不可估量的財(cái)產(chǎn)損失。目前,大多數(shù)機(jī)場(chǎng)主要采用人工目視巡場(chǎng)方式對(duì)跑道進(jìn)行定期的檢查和清掃,該方式需要在巡查時(shí)關(guān)閉跑道,這不但降低了機(jī)場(chǎng)容量,而且受巡查人員自身素質(zhì)和天氣條件制約,難以保證足夠的檢測(cè)率。因此,針對(duì)性能更好和效率更高的FOD探測(cè)方法的研究具有重要意義。
傳統(tǒng)的FOD檢測(cè)方法中,主要采用雷達(dá)探測(cè)技術(shù)和圖像處理技術(shù)實(shí)現(xiàn)對(duì)FOD的檢測(cè),在雷達(dá)信號(hào)處理方向上,常采用恒虛警率(constant false-alarm rate,CFAR)檢測(cè)方法和一些檢測(cè)分類(lèi)方法作為FOD檢測(cè)處理器[2-3]。文獻(xiàn)[4]中提出了一種基于毫米波雷達(dá)的迭代自適應(yīng)(iterative adaptive approach,IAA)算法,通過(guò)對(duì)數(shù)據(jù)預(yù)處理獲得粗糙FOD目標(biāo)信息,再進(jìn)行融合處理,從而獲得準(zhǔn)確的FOD目標(biāo)信息。文獻(xiàn)[5]提出了一種毫米波監(jiān)視雷達(dá)FOD自動(dòng)目標(biāo)檢測(cè)的綜合算法,實(shí)現(xiàn)在超過(guò)660 m的遠(yuǎn)程條件下對(duì)小目標(biāo)的檢測(cè)。文獻(xiàn)[6]針對(duì)FOD檢測(cè)中大氣擾動(dòng)和系統(tǒng)硬件造成的系統(tǒng)相位漂移,提出了一種高分辨率雷達(dá)異物碎片探測(cè)系統(tǒng)相位漂移校正方法,有效改善探測(cè)系統(tǒng)的檢測(cè)性能。上述基于毫米波的FOD探測(cè)技術(shù)雖然精度高、位置準(zhǔn)確,但毫米波雷達(dá)仍存在制造與維護(hù)成本高、目標(biāo)特征信息少、信號(hào)處理復(fù)雜等問(wèn)題。
隨著人工智能技術(shù)的廣泛應(yīng)用以及基于深度學(xué)習(xí)與計(jì)算機(jī)視覺(jué)的目標(biāo)檢測(cè)技術(shù)的發(fā)展,基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的目標(biāo)檢測(cè)算法在檢測(cè)、識(shí)別方面比傳統(tǒng)機(jī)器學(xué)習(xí)方法表現(xiàn)更優(yōu),促使許多基于CNN的FOD檢測(cè)方法被提出。Cao等人[7]提出了一種基于改進(jìn)區(qū)域提議網(wǎng)絡(luò)(region proposal network,RPN)和基于空間變換網(wǎng)絡(luò)(spatial transformer network,STN)的CNN分類(lèi)器來(lái)實(shí)現(xiàn)對(duì)FOD的檢測(cè)。蔣進(jìn)等人[8]提出了一種基于Faster-RCNN的機(jī)場(chǎng)跑道異物識(shí)別定位系統(tǒng),運(yùn)用Faster-RCNN算法完成異物種類(lèi)識(shí)別,再通過(guò)無(wú)人機(jī)位置信息換算求解,得到FOD的類(lèi)別與位置信息。上述以Fast-RCNN[9]、Faster-RCNN[10]、Mask R-CNN[11]等為代表的基于區(qū)域候選的目標(biāo)檢測(cè)算法檢測(cè)精度相對(duì)較高,但存在檢測(cè)速度慢的缺點(diǎn),無(wú)法滿(mǎn)足實(shí)時(shí)性要求。文獻(xiàn)[12-13]均在YOLOv3的基礎(chǔ)上,優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),解決原YOLOv3存在的定位精度偏低和漏檢問(wèn)題。文獻(xiàn)[14]同樣在YOLOv3的基礎(chǔ)上,通過(guò)計(jì)算anchor、改進(jìn)損失函數(shù)提高了道路小目標(biāo)的檢測(cè)精度。以YOLO系列[15-16]為代表的基于回歸的目標(biāo)檢測(cè)算法憑借其檢測(cè)速度快以及不錯(cuò)的檢測(cè)性能在工業(yè)界得到了廣泛的應(yīng)用,但該算法設(shè)計(jì)專(zhuān)注于對(duì)中等大小目標(biāo)的檢測(cè)??紤]到FOD目標(biāo)尺度小、圖像占比小,在小目標(biāo)檢測(cè)方向上,YOLO算法要實(shí)現(xiàn)對(duì)FOD的實(shí)時(shí)精準(zhǔn)檢測(cè)仍有挑戰(zhàn)。
針對(duì)以上問(wèn)題,本文提出一種基于改進(jìn)YOLOv5的目標(biāo)檢測(cè)算法,通過(guò)添加較小目標(biāo)檢測(cè)層、裁減大目標(biāo)檢測(cè)層,提高較小目標(biāo)檢測(cè)精度并減少網(wǎng)絡(luò)推理計(jì)算量;引用輕量高效的卷積注意力模塊(convolutional block attention module,CBAM),讓網(wǎng)絡(luò)更加關(guān)注于有用信息;采用簡(jiǎn)單有效的RepVGG模塊,增加特征融合能力;替換邊框回歸損失函數(shù),提高回歸速度與精度。為了驗(yàn)證改進(jìn)模型在FOD檢測(cè)上的性能,在自制FOD數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)論證。
YOLO系列算法在整個(gè)深度學(xué)習(xí)目標(biāo)檢測(cè)領(lǐng)域的地位舉足輕重,從V1到V5,隨著版本的迭代,模型性能也越來(lái)越好。而YOLOv5作為SOTA算法,憑借其優(yōu)良的檢測(cè)性能,受到了工業(yè)界廣泛的應(yīng)用。
如圖1所示,YOLOv5的Backbone基于具有空間金字塔池層(spatial pyramid pooling,SPP)的跨階段局部網(wǎng)絡(luò)(cross stage partial network,CSPNet)構(gòu)成,其中,YOLOv5借鑒CSPNet的設(shè)計(jì)思路,設(shè)計(jì)了包含3個(gè)標(biāo)準(zhǔn)卷積層以及多個(gè)Bottleneck的C3模塊,并且將其用于Backbone層和Neck層,其中Neck層的C3_1模塊即為不含殘差連接的C3模塊,C3模塊主要是對(duì)殘差特征進(jìn)行學(xué)習(xí),同時(shí)在準(zhǔn)確性不變或者提高的基礎(chǔ)上可以減少網(wǎng)絡(luò)參數(shù)量。SPPF在SPP基礎(chǔ)上減少了網(wǎng)絡(luò)層,去除冗余運(yùn)算,以更快速度進(jìn)行特征融合。Neck層上YOLOv5采用特征金字塔(feature pyramid network,F(xiàn)PN)+路徑聚合網(wǎng)絡(luò)(perceptual adversarial network,PAN)結(jié)合的方式進(jìn)行特征融合,其中FPN以自頂向下的方式,通過(guò)上采樣將高層特征和低層特征做融合獲得不同尺度進(jìn)行預(yù)測(cè)的特征圖。PAN則是在FPN層的后面添加了一個(gè)自底向上的特征金字塔。這樣結(jié)合操作,F(xiàn)PN層自頂向下傳達(dá)強(qiáng)語(yǔ)義特征,而PAN則自底向上傳達(dá)強(qiáng)定位特征,兩兩聯(lián)手,在不同的主干層對(duì)不同的檢測(cè)層進(jìn)行參數(shù)聚合。最后在Head層對(duì)small、medium、large三種尺寸目標(biāo)做出預(yù)測(cè)。
圖1 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Network structure diagram of YOLOv5
針對(duì)YOLOv5對(duì)小目標(biāo)檢測(cè)準(zhǔn)確度不高、定位精度偏低和漏檢問(wèn)題,對(duì)其進(jìn)行了改進(jìn),改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,具體改進(jìn)如下:(1)在Neck層增加P2層的融合與檢測(cè),刪除大目標(biāo)檢測(cè)層,在增加較小目標(biāo)的檢測(cè)精度的同時(shí),有效減少網(wǎng)絡(luò)推理計(jì)算量,提高FOD檢測(cè)速度;(2)引入輕量高效的卷積注意力模塊(CBAM),該模塊能進(jìn)行自適應(yīng)特征優(yōu)化,讓網(wǎng)絡(luò)更加專(zhuān)注于有用的信息,提高算法檢測(cè)精度;(3)Neck層使用Repblock模塊替換原有的C3_1模塊,有效提升其特征融合的能力,其簡(jiǎn)單的模塊設(shè)計(jì)同時(shí)也能極大提高模型推理的速度;(4)通過(guò)引入SIoU邊框損失函數(shù)來(lái)監(jiān)督網(wǎng)絡(luò)的學(xué)習(xí),加速網(wǎng)絡(luò)收斂,進(jìn)一步提高回歸精度。
圖2 改進(jìn)后的YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Network structure diagram of improved YOLOv5
如圖3(a)所示,YOLOv5通過(guò)FPN+PAN的方式融合P3、P4層的特征,并對(duì)P3、P4、P5層分別以8倍、16倍、32倍進(jìn)行多尺度檢測(cè),也就是在輸入圖片尺寸為640×640的情況下,P3、P4、P5分別對(duì)應(yīng)生成80×80、40×40、20×20的特征圖。YOLOv5使用20×20尺寸的特征圖來(lái)檢測(cè)大目標(biāo);然后通過(guò)上采樣與拼接操作融合20×20與40×40的特征圖,將不同的語(yǔ)義信息以及定位信息融合,用融合后的40×40尺寸特征圖來(lái)檢測(cè)中等大小目標(biāo);最后使用相同操作將40×40與80×80的特征圖融合檢測(cè)小尺寸目標(biāo)。
在目前大多數(shù)基于FPN的目標(biāo)檢測(cè)器中,小目標(biāo)往往是從高分辨率的特征圖中檢測(cè)出來(lái)的,而在寬闊的機(jī)場(chǎng)跑道背景下,F(xiàn)OD目標(biāo)尺寸在圖像像素中占比小,原始YOLOv5使用的80×80尺寸檢測(cè)層無(wú)法完成對(duì)更小目標(biāo)的精準(zhǔn)檢測(cè)。同時(shí)鑒于小目標(biāo)更容易在高分辨率特征圖中被檢測(cè)的特點(diǎn),因此本文對(duì)多尺度檢測(cè)層進(jìn)行了改進(jìn):如圖3(b)所示,通過(guò)upsample+concat操作融合P2層的特征,并添加對(duì)160×160特征圖的檢測(cè)頭用來(lái)檢測(cè)更小的目標(biāo),在檢測(cè)頭部應(yīng)用更高分辨率的特征圖后,小目標(biāo)能夠占據(jù)更多的像素,因此更容易被檢測(cè),而不是在backbone的卷積階段“丟失”。同時(shí),由于FOD大都為中小尺寸目標(biāo),在檢測(cè)部分裁減掉20×20尺寸的大目標(biāo)檢測(cè)層,減少網(wǎng)絡(luò)計(jì)算推理量,加快模型推理速度。
圖3 多尺度特征融合與檢測(cè)改進(jìn)圖Fig.3 Multi-scale feature fusion and detection improvement graph
注意力機(jī)制(attention mechanism)源于對(duì)人類(lèi)視覺(jué)的研究。在認(rèn)知科學(xué)中,由于信息處理的瓶頸,人類(lèi)會(huì)選擇性地關(guān)注全局信息的一部分,同時(shí)忽略其他可見(jiàn)的信息。而在計(jì)算機(jī)視覺(jué)領(lǐng)域,注意力機(jī)制被用來(lái)進(jìn)行視覺(jué)信息處理,傳統(tǒng)的局部圖像特征提取、滑動(dòng)窗口法等都可以看作一種注意力機(jī)制。在深度學(xué)習(xí)中,注意力模塊通常是一個(gè)獨(dú)立的模塊,通過(guò)對(duì)輸入的不同部分分配不同的權(quán)重,讓網(wǎng)絡(luò)更加專(zhuān)注于有用信息,忽略其他的不重要信息;而在廣闊的機(jī)場(chǎng)跑道背景下,為了實(shí)現(xiàn)對(duì)FOD的精準(zhǔn)檢測(cè),注意力模塊恰恰能夠使網(wǎng)絡(luò)更加專(zhuān)注于小目標(biāo)的檢測(cè)。因此,本文引入了CBAM模塊。
CBAM模塊是一個(gè)簡(jiǎn)單且有效的輕量級(jí)注意力模塊,可以實(shí)現(xiàn)端到端的訓(xùn)練方式。如圖4所示,給定一張中間特征圖F∈?C×H×W作為輸入,CBAM首先通過(guò)通道注意力模塊(channel attention module,CAM),利用特征圖通道間的關(guān)系生成通道注意力圖Mc∈?C×1×1,然后與輸入特征殘差相乘,將得到的注意力圖與輸入特征圖進(jìn)行自適應(yīng)特征細(xì)化,同理,將經(jīng)過(guò)通道自適應(yīng)細(xì)化后的特征圖沿著空間注意力模塊(spatial attention module,SAM)生成空間注意力圖Ms∈?1×H×W,最后殘差相乘輸出空間自適應(yīng)細(xì)化后的特征。整體注意力過(guò)程如公式(1)、(2)所示:
圖4 CBAM模塊示意圖Fig.4 Schematic diagram of CBAM module
式中,?表示加權(quán)相乘,特征F經(jīng)過(guò)通道注意力模塊輸出F′,然后作為輸入經(jīng)過(guò)空間注意力模塊得到最終輸出結(jié)果F″。
根據(jù)文獻(xiàn)[17]的實(shí)驗(yàn)結(jié)果,CBAM對(duì)模型的性能有較好的提高,并證明了其在目標(biāo)檢測(cè)、圖像分類(lèi)任務(wù)中的有效性。相比于傳統(tǒng)的僅關(guān)注通道或僅關(guān)注空間的注意力機(jī)制方案,CBAM將兩者結(jié)合使用,能夠獲得更好的效果。但目前并沒(méi)有理論研究得出具體將CBAM模塊嵌入到網(wǎng)絡(luò)某一部分使得模型性能最佳,因此,本文在改進(jìn)多尺度融合與檢測(cè)的基礎(chǔ)上,對(duì)Neck部分嵌入CBAM設(shè)計(jì)了兩種結(jié)構(gòu),如圖5所示,一種是在Neck層的每個(gè)C3_F模塊后嵌入CBAM模塊,生成的新模型命名為YOLOv5-P-C1,另外一種是在每個(gè)檢測(cè)層前嵌入CBAM模塊,命名為YOLOv5-P-C2。
圖5 YOLOv5+CBAM網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.5 Schematic diagram of YOLOv5+CBAM network structure
RepVGG模塊是由文獻(xiàn)[18]中提出的一種由3×3 Conv和ReLU組成的簡(jiǎn)單體系結(jié)構(gòu),特別適用于GPU和專(zhuān)用推理芯片。如圖6所示,RepVGG模塊受ResNet的啟發(fā),應(yīng)用了結(jié)構(gòu)重參數(shù)化方法,該方法在訓(xùn)練期間將一個(gè)模塊拆分為多個(gè)相同或不同的模塊分支,并在推理期間將多個(gè)分支模塊集成為完全等效的模塊。ResNet中,該模塊顯式構(gòu)造快捷分支,將信息流建模為y=x+f(x),使用殘差方式學(xué)習(xí)f;當(dāng)x與f(x)的通道數(shù)不匹配時(shí),將其變?yōu)閥=g(x)+f(x),其中,g(x)為一個(gè)1×1的卷積,通過(guò)該卷積將殘差部分通道數(shù)與f(x)相匹配,ResNet的成功解釋了該方法對(duì)模型性能有較好的提升。RepVGG則借鑒該方法,將信息流建模為y=x+g(x)+f(x),由于多分支架構(gòu)在推理上存在缺陷,RepVGG僅在訓(xùn)練階段簡(jiǎn)單地堆疊上述塊構(gòu)造訓(xùn)練模塊。而在推理階段,通過(guò)重參數(shù)化方法RepVGG將訓(xùn)練好的塊轉(zhuǎn)換到單個(gè)3×3卷積上進(jìn)行推理。該模塊在硬件上達(dá)到高效推理的同時(shí),能夠保持較好的多尺度特征融合能力。
圖6 RepVGG模塊示意圖Fig.6 Schematic diagram of RepVGG module
YOLOv5在neck層使用不帶殘差連接的C3_F模塊,其在特征融合方面具有一定局限性,因此本文通過(guò)堆疊n個(gè)RepVGG塊組成RepBlock模塊,使用RepBlock模塊替換C3_F模塊,該模塊極大提升網(wǎng)絡(luò)的多尺度特征融合能力,同時(shí)能有效提高推理速度。為了得到效果提升最優(yōu)的RepBlock模塊,本文設(shè)計(jì)了三種RepBlock模塊:RepBlock_1、RepBlock_2、RepBlock_3,結(jié)構(gòu)如圖7所示。
圖7 RepBlock模塊示意圖Fig.7 Schematic diagram of RepBlock module
損失函數(shù)是衡量模型預(yù)測(cè)結(jié)果的準(zhǔn)確性的一種方法。YOLOv5使用CIoU Loss作為Bounding box的損失函數(shù),同時(shí)采用Logits損失函數(shù)和二進(jìn)制交叉熵(BCE)分別計(jì)算目標(biāo)得分和類(lèi)概率的損失。其中CIoU計(jì)算方法如公式(3)、(4)所示:
式中,IoU表示真實(shí)框與預(yù)測(cè)框交并比,ρ2(b,bgt)表示求預(yù)測(cè)框與地面真值框中心點(diǎn)之間的歐式距離,c表示預(yù)測(cè)框與地面真值框的最小包圍框的最短對(duì)角線(xiàn)長(zhǎng)度,a為正平衡參數(shù),v表示預(yù)測(cè)框與地面真值框長(zhǎng)寬比的一致性,a與v的計(jì)算方法如公式(5)、(6)所示:
式中,wgt、hgt和w、h分別表示地面真值框與預(yù)測(cè)框的寬度與高度。
CIoU Loss綜合考慮覆蓋面積、中心點(diǎn)距離和長(zhǎng)寬比,能夠很好衡量其相對(duì)位置,同時(shí)能夠解決預(yù)測(cè)框的水平與垂直方向優(yōu)化的問(wèn)題,但是該方法并沒(méi)有考慮預(yù)測(cè)框與目標(biāo)框之間方向的匹配性,這種不足導(dǎo)致收斂速度較慢。針對(duì)以上問(wèn)題,本文采用SIoU Loss[19]損失函數(shù)替換CIoU Loss損失函數(shù)。SIoU計(jì)算方法如公式(7)、(8)所示:
式中,B、BGT表示預(yù)測(cè)框與真值框,Ω表示形狀成本,Δ表示考慮角度成本后,重新定義的距離成本,Ω、Δ公式定義為:
SIoU通過(guò)引入了所需回歸之間的向量角度,重新定義了距離損失,有效降低了回歸的自由度,加快網(wǎng)絡(luò)收斂,進(jìn)一步提升了回歸精度。因此,本文將SIoU Loss作為邊框回歸的損失函數(shù)。
目前,國(guó)內(nèi)外沒(méi)有公開(kāi)的FOD數(shù)據(jù)集,為了驗(yàn)證本文改進(jìn)的目標(biāo)檢測(cè)算法的檢測(cè)性能,本文采用自制的FOD數(shù)據(jù)集。為了完成各種復(fù)雜場(chǎng)景、極端天氣條件下的FOD檢測(cè)任務(wù),數(shù)據(jù)集應(yīng)包含不同距離、不同光照條件、不同天氣氣候條件下的FOD圖像,本文通過(guò)在國(guó)內(nèi)某機(jī)場(chǎng)跑道上放置不同距離的FOD樣本,然后使用高精度、高分辨率攝像機(jī)采集在不同光照條件下(正午、黃昏等不同時(shí)間段下)、不同聚焦下的視頻圖像,將采集到的視頻切片處理成圖片,通過(guò)使用ImageLabeler標(biāo)注軟件對(duì)每張圖片上的FOD進(jìn)行標(biāo)注,得到最終的FOD數(shù)據(jù)集。本文采用的FOD樣本由螺絲、圓柱、金屬球組成,部分FOD數(shù)據(jù)集圖片樣本如圖8所示。
圖8 FOD數(shù)據(jù)集展示Fig.8 FOD dataset display
本文一共采集并制作了5 578張F(tuán)OD數(shù)據(jù)集,并以8∶1∶1的比例將數(shù)據(jù)集隨機(jī)劃分為訓(xùn)練集、驗(yàn)證集與測(cè)試集,劃分后的具體圖像張數(shù)如表1所示。
表1 FOD數(shù)據(jù)集劃分Table 1 FOD dataset partition
現(xiàn)階段大部分目標(biāo)檢測(cè)算法更適用于中等大小目標(biāo),對(duì)小目標(biāo)檢測(cè)存在檢測(cè)精度不高的問(wèn)題。COCO數(shù)據(jù)集依據(jù)目標(biāo)占圖像像素的多少將目標(biāo)尺寸劃分為small、medium、large三類(lèi),具體分類(lèi)如表2。
表2 目標(biāo)尺寸圖Table 2 Target size chart
根據(jù)COCO目標(biāo)尺寸分類(lèi),F(xiàn)OD目標(biāo)尺寸在12~42像素之間,且大多為small類(lèi)別。圖9為FOD數(shù)據(jù)集標(biāo)簽大小分布圖,其中,橫坐標(biāo)與縱坐標(biāo)分別表示標(biāo)簽框的寬度與高度。由圖可知,大部分FOD目標(biāo)聚集在圖中左下角,進(jìn)一步說(shuō)明FOD數(shù)據(jù)集目標(biāo)尺寸是以小目標(biāo)為主,與FOD在相機(jī)中成像尺寸相符。因此,本文提出的針對(duì)YOLOv5在小目標(biāo)檢測(cè)性能方向上進(jìn)行改進(jìn)與優(yōu)化與問(wèn)題契合。
圖9 FOD數(shù)據(jù)集標(biāo)簽分布圖Fig.9 FOD dataset label distribution map
本文的實(shí)驗(yàn)環(huán)境為,CPU:Intel?Xeon?W-2102 CPU@2.90 GHz×4,運(yùn)行內(nèi)存64 GB,GPU為:GeForce RTX 2080Ti,顯存11 GB,操作系統(tǒng)為:64位Ubuntu18.04.3 LTS,PyTorch深度學(xué)習(xí)框架,CUDA版本為10.1。本文主要以mAP50、計(jì)算量(GFLOPs)、參數(shù)量、檢測(cè)速度(FPS)作為模型性能評(píng)估指標(biāo),其中mAP50表示IoU閾值為0.5時(shí)的平均檢測(cè)精度,GFLOPs則代表每秒10億次的浮點(diǎn)運(yùn)算數(shù),用于衡量訓(xùn)練模型所需的計(jì)算量,參數(shù)量衡量模型對(duì)內(nèi)存資源的消耗量,F(xiàn)PS是指目標(biāo)檢測(cè)網(wǎng)絡(luò)每秒可以處理多少?gòu)垐D片,用于衡量模型檢測(cè)速度。
本文選擇YOLOv5m作為FOD目標(biāo)檢測(cè)的原始模型,訓(xùn)練配置如下:輸入尺寸為640×640,epoch設(shè)置為500,batch_size為16,采用mosaic數(shù)據(jù)增強(qiáng),為了得到最優(yōu)的檢測(cè)性能,本文采用K-means聚類(lèi)算法對(duì)自制FOD數(shù)據(jù)集目標(biāo)框進(jìn)行聚類(lèi),得到適合的anchor尺寸。
為了驗(yàn)證多尺度融合與檢測(cè)改進(jìn)的有效性,本文在YOLOv5m的基礎(chǔ)上,對(duì)多尺度融合與檢測(cè)進(jìn)行改進(jìn),改進(jìn)后的算法命名為YOLOv5-P,如圖3所示,即增加P2層的融合與檢測(cè)的同時(shí),裁減P5層的檢測(cè),最終輸出對(duì)P2、P3、P4的檢測(cè)。本文采用對(duì)比實(shí)驗(yàn),在FOD數(shù)據(jù)集上分別對(duì)兩種算法進(jìn)行實(shí)驗(yàn)對(duì)比,實(shí)驗(yàn)結(jié)果如表3所示。
表3 多尺度融合與檢測(cè)改進(jìn)驗(yàn)證實(shí)驗(yàn)Table 3 Multi-scale fusion and detection improvement verification experiment
由表3可知,在檢測(cè)速度下降10 FPS、計(jì)算量增加4.2 GFLOPs的情況下,檢測(cè)精度提升了2.17%,同時(shí)參數(shù)量少了4.3×106。該對(duì)比實(shí)驗(yàn)驗(yàn)證了多尺度融合與檢測(cè)改進(jìn)的有效性,增加高分辨率特征圖的檢測(cè)在降低推理速度的情況下,有效提升FOD的檢測(cè)精度,同時(shí),裁減P5檢測(cè)層,減少了網(wǎng)絡(luò)推理計(jì)算量。
為了驗(yàn)證CBAM模塊對(duì)FOD目標(biāo)檢測(cè)算法的有效性以及探究該模塊的最佳嵌入方式,本文在3.4節(jié)的基礎(chǔ)上,對(duì)兩種嵌入方式進(jìn)行對(duì)比實(shí)驗(yàn),如圖5所示,其中YOLOv5-P-C1是在Neck層的C3_1模塊后均嵌入CBAM模塊,YOLOv5-P-C2則僅在檢測(cè)前嵌入CBAM模塊,實(shí)驗(yàn)結(jié)果如表4所示。
表4 注意力模塊驗(yàn)證實(shí)驗(yàn)Table 4 Attention module verification experiment
表4中YOLOv5-P-C1、YOLOv5-P-C2與YOLOv5m-P對(duì)比可得,在參數(shù)量與計(jì)算量沒(méi)有很大變化的情況下,引入CBAM模塊使得模型檢測(cè)精度均有提升,其中,YOLOv5-P-C1的mAP提升了0.03個(gè)百分點(diǎn),YOLOv5-P-C2的mAP提升了0.19個(gè)百分點(diǎn)。該數(shù)據(jù)證明引入CBAM模塊能夠提高算法的檢測(cè)精度,讓網(wǎng)絡(luò)更加專(zhuān)注于有用的信息。而兩種嵌入方式的結(jié)果對(duì)比可知,YOLOv5-P-C2的網(wǎng)絡(luò)檢測(cè)精度的提升更高,且檢測(cè)速度優(yōu)于前者。因此,最終的改進(jìn)算法選擇第二種CBAM嵌入方式。為了進(jìn)一步驗(yàn)證CBAM模塊的有效性,本文在YOLOv5-P的基礎(chǔ)上分別引入SE[20]、ECA[21]、CA[22]注意力模塊與第二種CBAM嵌入方式進(jìn)行橫向?qū)Ρ葘?shí)驗(yàn),并采用mAP50、FPS作為評(píng)價(jià)指標(biāo),實(shí)驗(yàn)結(jié)果如表5所示。
表5 注意力模塊橫向?qū)Ρ葘?shí)驗(yàn)Table 5 Lateral comparison experiment of attention module
由表5注意力模塊橫向?qū)Ρ葘?shí)驗(yàn)可得,引入的注意力模塊對(duì)FOD的檢測(cè)精度均有提升,其中,SE、ECA、CA分別提升了0.12、0.15、0.18個(gè)百分點(diǎn)的檢測(cè)精度,而CBAM檢測(cè)精度提升最大,達(dá)到了94.59%;對(duì)比檢測(cè)速度,引入注意力模塊均有一定程度的降低,但引入CBAM的模型檢測(cè)速度損失最少。綜上所述,本文提出的在檢測(cè)層前引入CBAM模塊相比于其他注意力模塊對(duì)FOD檢測(cè)性能提升更優(yōu)。
為了驗(yàn)證RepVGG模塊的引入對(duì)模型檢測(cè)效果提升的有效性,如圖7所示,本文通過(guò)堆疊不同數(shù)量的RepVGG設(shè) 計(jì) 三 種RepBlock模 塊:RepBlock_1、RepBlock_2、RepBlock_3,并采用該模塊替換原始模塊C3_1,提出三種算法模型:YOLOv5-R1、YOLOv5-R2、YOLOv5-R3。對(duì)三種算法模型與原始算法YOLOv5m在FOD數(shù)據(jù)集上進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果如表6所示。
表6 RepBlock模塊驗(yàn)證實(shí)驗(yàn)Table 6 RepBlock module verification experiment
對(duì)比表6中不同算法模型的實(shí)驗(yàn)結(jié)果,可以證明引入RepBlock模塊對(duì)模型性能提升的有效性,具體分析為:YOLOv5-R1相較于YOLOv5m,檢測(cè)精度提高了1.04個(gè)百分點(diǎn),檢測(cè)速度提升了14 FPS;YOLOv5-R2相較于其他算法,雖然檢測(cè)速度略低于YOLOv5-R3和YOLOv5m,但檢測(cè)精度提升最大,比YOLOv5m高1.47個(gè)百分點(diǎn);YOLOv5-R3檢測(cè)精度提升了1.37個(gè)百分點(diǎn),但檢測(cè)速度僅有85 FPS。從表5中三種改進(jìn)算法實(shí)驗(yàn)結(jié)果可知,引入單個(gè)RepVGG模塊,既能提升檢測(cè)精度又加快了檢測(cè)速度,說(shuō)明RepBlock模塊的優(yōu)越性;引入兩個(gè)RepVGG模塊,檢測(cè)精度進(jìn)一步提升,而隨著參數(shù)量的增加推理速度降低,引入三個(gè)RepVGG模塊的實(shí)驗(yàn)結(jié)果可以說(shuō)明,網(wǎng)絡(luò)層數(shù)過(guò)深導(dǎo)致模型檢測(cè)精度與速度降低。其中,RepBlock_2模塊對(duì)模型檢測(cè)精度提升最大,因此本文選擇該模塊進(jìn)行算法改進(jìn)。
為了驗(yàn)證本文提出的改進(jìn)損失函數(shù)的有效性,將本文采用的損失函數(shù)SIoU與原始損失函數(shù)CIoU進(jìn)行對(duì)比實(shí)驗(yàn),對(duì)比實(shí)驗(yàn)結(jié)果如表7所示。
表7 損失函數(shù)驗(yàn)證實(shí)驗(yàn)Table 7 Loss function verification experiment
在表7實(shí)驗(yàn)中,通過(guò)僅替換算法中的損失函數(shù),對(duì)兩種損失函數(shù)CIoU Loss、SIoU Loss進(jìn)行橫向?qū)Ρ葘?shí)驗(yàn),epoch設(shè)置為500,并采用mAP、FPS作為評(píng)價(jià)指標(biāo)。從表中結(jié)果可以明顯看出SIoU Loss相比于CIoU Loss,在檢測(cè)速度基本保持不變的條件下,模型檢測(cè)精度提升了0.35個(gè)百分點(diǎn),該實(shí)驗(yàn)證明了SIoU損失函數(shù)的優(yōu)越性,對(duì)模型性能提升更高。圖10為損失函數(shù)訓(xùn)練時(shí)檢測(cè)精度對(duì)比圖,由圖可以看出SIoU Loss前230個(gè)epoch精度低于CIoU Loss,后面的批次的檢測(cè)精度均優(yōu)于CIoU,且最佳的mAP優(yōu)于CIoU,進(jìn)一步證明引入SIoU的有效性。
圖10 損失函數(shù)訓(xùn)練時(shí)mAP對(duì)比圖Fig.10 mAP comparison chart during loss function training
為了驗(yàn)證本文提出的改進(jìn)算法的有效性,在前四節(jié)基礎(chǔ)上對(duì)各個(gè)模塊進(jìn)行消融實(shí)驗(yàn)。首先在原算法YOLOv5m的基礎(chǔ)上改進(jìn)多尺度融合與檢測(cè)(P),即對(duì)P2~P4特征圖進(jìn)行檢測(cè);其次在每個(gè)特征檢測(cè)層前引入CBAM模塊;然后在3.6節(jié)對(duì)比實(shí)驗(yàn)基礎(chǔ)上,采用RepBlock_2模塊替換C3_1模塊;最后,采用SIoU Loss替換CIoU Loss作為損失函數(shù),生成最終的改進(jìn)算法模型,與原始算法YOLOv5m進(jìn)行對(duì)比實(shí)驗(yàn)。采用mAP50、mAP50:95、FPS作為評(píng)價(jià)指標(biāo),其中,mAP50:95表示計(jì)算從0.5~0.95的10個(gè)閾值下的檢測(cè)精度平均值。對(duì)比實(shí)驗(yàn)結(jié)果如表8所示。
表8實(shí)驗(yàn)結(jié)果可以看出,相比于序號(hào)1(原始YOLOv5m),序號(hào)2改進(jìn)多尺度融合與檢測(cè)部分,檢測(cè)精度(mAP50)提升2.17個(gè)百分點(diǎn),說(shuō)明多尺度融合與檢測(cè)改進(jìn)的有效性;在序號(hào)2的基礎(chǔ)上引入CBAM模塊,雖然檢測(cè)速度降至70 FPS,但mAP50提升了2.36個(gè)百分點(diǎn),證明了引入CBAM的有效性;序號(hào)4表示在前者基礎(chǔ)上采用RepBlock模塊替換C3_1模塊,與YOLOv5m相比檢測(cè)精度提升了2.48個(gè)百分點(diǎn),同時(shí),檢測(cè)速度比序號(hào)3提升了9 FPS,證明RepBlock在提升檢測(cè)速度與精度上的有效性;最后,序號(hào)5表示采用SIoU Loss作為回歸損失函數(shù)形成的最終改進(jìn)模型,與序號(hào)4相比檢測(cè)速度沒(méi)有降低,檢測(cè)精度達(dá)到了95.01%、相比于序號(hào)1提升了2.78個(gè)百分點(diǎn),證明了SIoU對(duì)模型性能提升的優(yōu)越性。上述實(shí)驗(yàn)數(shù)據(jù)分析證明本文提出的改進(jìn)算法在FOD檢測(cè)上的有效性與優(yōu)越性。
表8 消融實(shí)驗(yàn)Table 8 Ablation experiment
圖11為改進(jìn)后的算法與原算法訓(xùn)練時(shí)的mAP對(duì)比圖,由圖可以明顯看出,最終的改進(jìn)模型檢測(cè)精度優(yōu)于原始YOLOv5m,且有極大的提升,取得了更好的檢測(cè)效果。
圖11 改進(jìn)后算法與原算法訓(xùn)練時(shí)mAP對(duì)比圖Fig.11 Comparison of mAP between improved algorithm and original algorithm during training
為了驗(yàn)證本文提出的改進(jìn)算法相比于主流目標(biāo)檢測(cè)算法的優(yōu)越性,將本文改進(jìn)算法與RetinaNet[23]、
Cascade R-CNN[24]、FCOS[25]、Faster R-CNN、YOLOv5m、YOLOv4、YOLOX[26]、YOLOR[27]等主流目標(biāo)檢測(cè)算法在相同條件下進(jìn)行對(duì)比實(shí)驗(yàn),并均采用640×640的圖片輸入尺寸,實(shí)驗(yàn)結(jié)果如表9所示。
通過(guò)對(duì)比表9各項(xiàng)參數(shù)可得,相較于其他主流目標(biāo)檢測(cè)算法,本文所提改進(jìn)算法具有最高的檢測(cè)精度。相較于Faster R-CNN、Cascade R-CNN等兩階段主流目標(biāo)檢測(cè)算法以及RetinaNet經(jīng)典目標(biāo)檢測(cè)算法,本文改進(jìn)算法在檢測(cè)精度與檢測(cè)速度上優(yōu)勢(shì)明顯;與原始算法YOLOv5m,本文所提改進(jìn)算法在損失一定檢測(cè)速度的情況下,檢測(cè)精度提升了2.78個(gè)百分點(diǎn);YOLOv4在圖片輸入尺寸640×640的情況下,實(shí)現(xiàn)了92.9%的檢測(cè)精度,而本文所提改進(jìn)算法檢測(cè)精度比YOLOv4高2.11個(gè)百分點(diǎn),同時(shí)檢測(cè)速度提升了38 FPS;相比于基于Anchor-free的FCOS與YOLOX,本文所提算法檢測(cè)精度分別提升了11.4與2.21個(gè)百分點(diǎn),檢測(cè)速度分別提升了46 FPS、26 FPS;YOLOR在FOD數(shù)據(jù)集上檢測(cè)精度達(dá)到了93.26%,比YOLOv5m高1.03個(gè)百分點(diǎn),但檢測(cè)速度僅有36 FPS,而本文提出的改進(jìn)目標(biāo)檢測(cè)算法在FOD數(shù)據(jù)集上檢測(cè)精度達(dá)到了95.01%,檢測(cè)速度達(dá)到了79 FPS,比YOLOR分別高1.75個(gè)百分點(diǎn)、43 FPS。綜上所述,本文改進(jìn)算法相比于主流目標(biāo)檢測(cè)算法,檢測(cè)精度優(yōu)勢(shì)明顯,且具有較快的檢測(cè)速度,證明了本文所提改進(jìn)算法的優(yōu)越性。
表9 主流算法對(duì)比實(shí)驗(yàn)Table 9 Mainstream algorithm comparison experiment
本文針對(duì)機(jī)場(chǎng)跑道異物檢測(cè)問(wèn)題,提出了一種基于改進(jìn)YOLOv5的目標(biāo)檢測(cè)算法。該算法意在解決在機(jī)場(chǎng)跑道寬闊、FOD目標(biāo)圖像占比小的情況下檢測(cè)精度低的問(wèn)題,以YOLOv5m為基礎(chǔ),改進(jìn)多尺度融合與檢測(cè),有效提高較小目標(biāo)檢測(cè)精度;引入輕量高效的CBAM注意力模塊,增強(qiáng)網(wǎng)絡(luò)關(guān)注目標(biāo)特征的能力;采用RepVGG模塊替換C3_1模塊,優(yōu)化特征融合的能力,有效提高檢測(cè)精度與檢測(cè)速度;采用SIoU Loss損失函數(shù)作為損失函數(shù),加速模型收斂速度并提升檢測(cè)精度。同時(shí),在自制的FOD數(shù)據(jù)集上進(jìn)行對(duì)比實(shí)驗(yàn)可得,本文提出的改進(jìn)算法在保證實(shí)時(shí)檢測(cè)的前提下,檢測(cè)精度達(dá)到了95.01%,提升了2.78個(gè)百分點(diǎn),實(shí)現(xiàn)了減少FOD目標(biāo)漏檢、誤檢的目的,與主流目標(biāo)檢測(cè)算法相比,本文改進(jìn)算法更具有優(yōu)越性。