李 莉,黃承寧
(南京工業(yè)大學(xué) 浦江學(xué)院,南京 210000)
在計(jì)算機(jī)視覺(jué)領(lǐng)域,目標(biāo)檢測(cè)是一項(xiàng)重要的任務(wù),其在諸多應(yīng)用中發(fā)揮著關(guān)鍵作用。然而,針對(duì)物體表面小尺寸目標(biāo)的準(zhǔn)確檢測(cè)一直是一個(gè)具有挑戰(zhàn)性的問(wèn)題,F(xiàn)aster R-CNN(Region-based Convolutional Neural Networks)和YOLOv3(You Only Look Once)是目前較為流行和廣泛應(yīng)用的兩種目標(biāo)檢測(cè)模型。Faster R-CNN是一種基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,它引入了候選區(qū)域提取網(wǎng)絡(luò)和區(qū)域分類網(wǎng)絡(luò),通過(guò)聯(lián)合訓(xùn)練兩者來(lái)實(shí)現(xiàn)目標(biāo)檢測(cè)[1]。YOLOv3是另一種頗具代表性的目標(biāo)檢測(cè)模型,它將圖像分割成網(wǎng)格,并在每個(gè)網(wǎng)格單元中預(yù)測(cè)目標(biāo)的類別和邊界框,并通過(guò)多個(gè)尺度的特征圖來(lái)檢測(cè)不同大小的目標(biāo)來(lái)增加檢測(cè)的準(zhǔn)確性[2]。研究將探索對(duì)現(xiàn)有模型的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行調(diào)整和增強(qiáng),以更好地適應(yīng)小尺寸目標(biāo)的特點(diǎn)。比如包括增加或調(diào)整網(wǎng)絡(luò)層,引入更適合捕捉小尺寸目標(biāo)特征的卷積結(jié)構(gòu)等,同時(shí)借鑒YOLOv3的多尺度特征圖思想,在模型中引入針對(duì)不同尺寸目標(biāo)的多尺度特征圖層,最后采用深度可分離卷積技術(shù),將標(biāo)準(zhǔn)卷積操作拆分為深度卷積和逐點(diǎn)卷積。研究的創(chuàng)新點(diǎn)在于對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行調(diào)整和增強(qiáng),引入多尺度特征圖層,采用了深度可分離卷積技術(shù),將卷積操作拆分為深度卷積和逐點(diǎn)卷積,從而減少計(jì)算量并加快模型的推理速度,期望能夠?qū)⑦@項(xiàng)技術(shù)應(yīng)用于各種需要對(duì)小尺寸目標(biāo)進(jìn)行準(zhǔn)確檢測(cè)的領(lǐng)域。
Faster R-CNN算法是一種用于目標(biāo)檢測(cè)的深度學(xué)習(xí)算法。它的核心思想是通過(guò)集成候選區(qū)域操作、特征提取操作、分類器操作和定位操作,利用一個(gè)統(tǒng)一的深度網(wǎng)絡(luò)進(jìn)行模型訓(xùn)練,從而實(shí)現(xiàn)對(duì)目標(biāo)的準(zhǔn)確檢測(cè)和定位[3]。Faster R-CNN算法結(jié)構(gòu)如圖1所示。
圖1 Faster R-CNN結(jié)構(gòu)圖
Faster R-CNN算法的關(guān)鍵步驟分為4個(gè)部分,首先是生成候選區(qū)域,使用候選區(qū)域操作(RPN,region proposal network)來(lái)生成候選目標(biāo)區(qū)域,RPN通過(guò)在輸入圖像上滑動(dòng)一個(gè)小窗口,并預(yù)測(cè)窗口中是否包含目標(biāo)。然后進(jìn)行特征提取,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)來(lái)提取候選區(qū)域中的特征表示,這些網(wǎng)絡(luò)將候選區(qū)域映射為固定長(zhǎng)度的特征向量,用于后續(xù)的分類和定位操作[4]。之后再提取目標(biāo),使用分類器操作對(duì)提取的特征進(jìn)行目標(biāo)分類,并使用定位操作對(duì)目標(biāo)的位置進(jìn)行回歸,分類器可以是全連接層或軟最大化層,用于判斷目標(biāo)類別的概率。最后,再對(duì)損失函數(shù)進(jìn)行訓(xùn)練,F(xiàn)aster R-CNN通過(guò)定義合適的損失函數(shù)來(lái)優(yōu)化模型,損失函數(shù)包括目標(biāo)分類損失、邊界框回歸損失等等,通過(guò)反向傳播算法和梯度下降優(yōu)化方法,訓(xùn)練網(wǎng)絡(luò)參數(shù)以最小化損失函數(shù)[5]。Faster R-CNN算法的主要優(yōu)勢(shì)在于其端到端的訓(xùn)練過(guò)程,通過(guò)共享特征提取操作,可以提高檢測(cè)的效率和準(zhǔn)確性。此外,F(xiàn)aster R-CNN還具備較強(qiáng)的泛化能力,在不同的數(shù)據(jù)集和場(chǎng)景下都能表現(xiàn)出良好的檢測(cè)結(jié)果。
YOLOv1是YOLO系列的第一代模型,它將目標(biāo)檢測(cè)問(wèn)題轉(zhuǎn)化為一個(gè)回歸問(wèn)題,通過(guò)將圖像劃分為網(wǎng)格單元,每個(gè)單元預(yù)測(cè)固定數(shù)量的邊界框和類別概率。YOLOv1通過(guò)CNN提取特征,并使用全連接層進(jìn)行目標(biāo)分類和邊界框回歸[6]。YOLOv1的思路是在輸入目標(biāo)圖像后,通過(guò)一次前向傳播,直接回歸目標(biāo)邊界框的位置信息和分類信息。網(wǎng)絡(luò)的基礎(chǔ)架構(gòu)由24個(gè)卷積層和2個(gè)全連接層構(gòu)成,借鑒了GoogleNet網(wǎng)絡(luò)的結(jié)構(gòu)。不同于Inception模塊,YOLOv1使用了1×1卷積和3×3卷積替代。最終輸出的檢測(cè)值是一個(gè)7×7×30的張量。假設(shè)輸入圖像被分成S×S個(gè)網(wǎng)格塊,每個(gè)網(wǎng)格塊預(yù)測(cè)M個(gè)邊界框,每個(gè)邊界框由坐標(biāo)信息(x,y,w,h)和置信度(Confidence)組成。置信度用于判斷該網(wǎng)格塊中是否存在目標(biāo)。置信度的計(jì)算公式如公式(1)所示:
(1)
如式(1)所示,在每個(gè)網(wǎng)格中,如果存在目標(biāo),則將置信度的值設(shè)置為1,否則為0。為了衡量邊界框和真實(shí)框之間的重疊程度,采用了交并比(IoU,intersection over union)作為關(guān)聯(lián)值。此外,每個(gè)網(wǎng)格還需要預(yù)測(cè)N個(gè)類別,因此最終輸出的張量的大小為S×S×(5×M×N),其中,S表示網(wǎng)格的數(shù)量,M表示每個(gè)網(wǎng)格預(yù)測(cè)的邊界框數(shù)量,N表示類別的數(shù)量。YOLOv2是YOLO的第二代模型。它通過(guò)引入Darknet-19網(wǎng)絡(luò)作為特征提取器,并使用卷積層輸出多尺度特征圖。相比于YOLOv1,它引入批歸一化層(BN,batch normalization),在YOLOv2中,每個(gè)卷積層后面都加入了BN層[7]。同時(shí),BN層還能加速訓(xùn)練模型的收斂速度。YOLOv2直接將分類模型分為兩個(gè)階段,在前160個(gè)epoch中,輸入圖像分辨率為224×224;而后10個(gè)epoch中,將分辨率提升到448×448。通過(guò)這種方式,可以順利過(guò)渡到檢測(cè)模型,使得模型能夠更好地處理不同分辨率的輸入圖像。YOLOv2還借鑒了Faster R-CNN中的Anchor Box思想,引入Anchor Box后,模型的檢測(cè)精度可能會(huì)稍有損失,但是召回率卻有顯著提高,這使得模型更加注重整體檢測(cè)質(zhì)量的提升。YOLOv2采用了K-means聚類算法來(lái)自動(dòng)計(jì)算出更優(yōu)的Anchor Box值。通過(guò)聚類算法,可以得到多個(gè)合適的Anchor Box尺寸。為了評(píng)估聚類結(jié)果的質(zhì)量,還使用邊界框之間的IoU值作為評(píng)判指標(biāo)。為了提高模型的穩(wěn)定性,YOLOv2采用了直接位置預(yù)測(cè)的方法。在每個(gè)網(wǎng)格中,預(yù)測(cè)參數(shù)包括tx、ty、tw、th和confidence。其中,tx和ty經(jīng)過(guò)Sigmoid函數(shù)的歸一化處理。每個(gè)網(wǎng)格的寬度和高度為cx和cy,Anchor Box的寬度和高度為pw和ph。預(yù)測(cè)框的中心坐標(biāo)為bx、by,寬度和高度為bw和bh。通過(guò)計(jì)算可以得到每個(gè)參數(shù)的預(yù)測(cè)值,采用直接位置預(yù)測(cè)的方法使得YOLOv2能夠更準(zhǔn)確地預(yù)測(cè)目標(biāo)的位置和尺寸。計(jì)算公式如式(2)所示:
(2)
YOLOv2引入多尺度檢測(cè)可以增強(qiáng)訓(xùn)練出的模型的魯棒性,在訓(xùn)練過(guò)程中,動(dòng)態(tài)調(diào)整輸入圖像的尺寸,并將連續(xù)的10個(gè)epoch分為一組進(jìn)行批次訓(xùn)練,這樣做的好處是可以隨機(jī)選擇不同尺寸的圖像,使得YOLOv2能夠檢測(cè)不同大小的目標(biāo),提高了模型的適應(yīng)能力。YOLOv2采用了DarkNet-19作為主干網(wǎng)絡(luò)[8]。DarkNet-19網(wǎng)絡(luò)由19個(gè)卷積層和5個(gè)池化層組成,相較于YOLOv1的網(wǎng)絡(luò)結(jié)構(gòu),DarkNet-19減少了5層,從而在一定程度上減少了計(jì)算量,DarkNet-19網(wǎng)絡(luò)具有較強(qiáng)的特征提取能力,能夠有效地捕捉目標(biāo)的細(xì)節(jié)和上下文信息,從而提升了YOLOv2的檢測(cè)性能。
在目標(biāo)檢測(cè)項(xiàng)目中,IoU通常被用作評(píng)估目標(biāo)檢測(cè)的精度[9]。IoU值實(shí)質(zhì)上是真實(shí)框和檢測(cè)框的交集與并集之間的比值。通過(guò)計(jì)算交集的面積除以并集的面積,可以得到IoU值。IoU值的計(jì)算公式如公式(3)所示:
(3)
IoU值的范圍在0到1之間,值越接近1表示檢測(cè)結(jié)果與真實(shí)目標(biāo)的重疊程度越高,即檢測(cè)精度越高。通常情況下,當(dāng)IoU值大于設(shè)定的閾值時(shí),將檢測(cè)結(jié)果判定為正確檢測(cè),否則判定為錯(cuò)誤檢測(cè)[10]。第二種評(píng)估指標(biāo)為P-R曲線,在P-R(Precision-Recall)曲線的二維坐標(biāo)圖中,橫軸表示召回率(Recall),豎軸表示精確度(Precision),P-R曲線的思路是在不同的閾值下,計(jì)算對(duì)應(yīng)的精確度和召回率,每個(gè)閾值所對(duì)應(yīng)的精確度和召回率可以看作是二維坐標(biāo)中的一個(gè)點(diǎn),通過(guò)采樣多個(gè)閾值,可以得到多個(gè)點(diǎn),并將這些點(diǎn)連接在一起形成P-R曲線。在計(jì)算P-R曲線時(shí),首先根據(jù)不同的閾值對(duì)目標(biāo)檢測(cè)結(jié)果進(jìn)行分類,將檢測(cè)框判定為正例或負(fù)例,然后,通過(guò)比較分類結(jié)果和真實(shí)標(biāo)簽,計(jì)算出在每個(gè)閾值下的精確度和召回率。精確度表示被分類為正例的樣本中真正為正例的比例,而召回率表示真正為正例的樣本被正確分類為正例的比例。通過(guò)取得足夠密集的閾值,可以獲得多個(gè)精確度和召回率的點(diǎn),這些點(diǎn)可以在二維坐標(biāo)上連接成一條P-R曲線[11]。P-R曲線能夠直觀地反映出在不同閾值下精確度和召回率之間的關(guān)系。通常情況下,P-R曲線越靠近圖像的左上角,說(shuō)明模型的性能越好,同時(shí)具有較高的精確度和召回率。計(jì)算精確度的公式如式(4)所示:
(4)
式(4)中,TP表示正確分類為正例的樣本數(shù)量,即模型將正例正確地判定為正例的數(shù)量;FP表示錯(cuò)誤分類為正例的樣本數(shù)量。即模型將負(fù)例錯(cuò)誤地判定為正例的數(shù)量;召回率公式如式(5)所示:
(5)
式(5)中,F(xiàn)N代表錯(cuò)誤分類為負(fù)例的樣本數(shù)量。即模型將正例錯(cuò)誤地判定為負(fù)例的數(shù)量。第三種評(píng)估指標(biāo)為平均精度(AP,average precision),用于衡量各個(gè)類別的檢測(cè)精度。AP的計(jì)算方法是對(duì)不同召回率點(diǎn)上的精確度進(jìn)行平均,在P-R曲線上,召回率通常位于橫軸,精確度位于縱軸。通過(guò)計(jì)算P-R曲線下的面積,可以得到該類別的平均精確度,AP值越高,表示模型在該類別上的檢測(cè)性能越好。具體計(jì)算公式如式(6)所示:
(6)
通過(guò)計(jì)算每個(gè)類別的AP值,可以對(duì)目標(biāo)檢測(cè)模型在不同類別上的檢測(cè)性能進(jìn)行評(píng)估。AP值能夠綜合考慮精確度和召回率之間的權(quán)衡,提供了對(duì)目標(biāo)檢測(cè)模型整體性能的評(píng)價(jià)。同時(shí),可以使用平均精度均值(mAP,mean average precision)來(lái)表示所有類別AP的平均值,進(jìn)一步評(píng)估整個(gè)網(wǎng)絡(luò)的檢測(cè)性能。mAP計(jì)算公式如式(7)所示:
(7)
mAP值的范圍通常是0到1之間,數(shù)值越高表示模型的檢測(cè)性能越好。對(duì)于大規(guī)模的目標(biāo)檢測(cè)數(shù)據(jù)集,常見(jiàn)的評(píng)估閾值通常是0.5,即當(dāng)IoU大于0.5時(shí),將目標(biāo)視為檢測(cè)正確。當(dāng)mAP值越接近1時(shí),表示模型在不同類別上的檢測(cè)精度更高。除了檢測(cè)精度,每秒幀率(FPS,frames per second)是另一個(gè)重要的評(píng)價(jià)指標(biāo),用于評(píng)估目標(biāo)檢測(cè)模型的檢測(cè)速度。FPS表示每秒鐘可以處理的圖像幀數(shù),它反映了模型在單位時(shí)間內(nèi)的處理能力[12]。對(duì)于目標(biāo)檢測(cè)算法來(lái)說(shuō),實(shí)時(shí)性是一個(gè)關(guān)鍵的考量因素,尤其在需要進(jìn)行實(shí)時(shí)監(jiān)控、視頻分析和自動(dòng)駕駛等領(lǐng)域。檢測(cè)速度越快,模型能夠在更短的時(shí)間內(nèi)處理更多的圖像幀,從而實(shí)現(xiàn)實(shí)時(shí)檢測(cè)的要求。
聚類算法是一種在無(wú)先驗(yàn)知識(shí)的情況下,通過(guò)發(fā)現(xiàn)數(shù)據(jù)對(duì)象之間的相似性來(lái)進(jìn)行分組的方法。它利用距離計(jì)算來(lái)衡量數(shù)據(jù)對(duì)象之間的相似程度,并根據(jù)相似性將數(shù)據(jù)劃分為不同的簇。一個(gè)好的聚類結(jié)果應(yīng)該是簇內(nèi)相似性高、簇間差異大。YOLOv3采用的K-means聚類算法是一種常用的基于距離計(jì)算的聚類方法,它將距離作為衡量相似性的指標(biāo)[13]。具體操作是假設(shè)兩個(gè)對(duì)象之間的距離越近,它們的相似性就越高。該算法的特點(diǎn)是將一組樣本數(shù)據(jù)劃分為k個(gè)不相交的簇,同一簇內(nèi)的對(duì)象相似度較高,而不同簇之間的對(duì)象相似度較低。假設(shè)給定數(shù)據(jù)樣本X包含n個(gè)對(duì)象,表示為X={X1,X2,…,Xn} ,每個(gè)對(duì)象具有m個(gè)屬性維度。K-means算法的目標(biāo)是根據(jù)對(duì)象之間的相似性將它們聚集到指定的k個(gè)類簇中。算法首先初始化k個(gè)聚類中心{C1,C2,…,Ck},然后計(jì)算每個(gè)數(shù)據(jù)對(duì)象到每個(gè)聚類中心的歐幾里得距離,距離計(jì)算公式如式(8)所示:
(8)
式(8)中i的取值范圍是[1,n],t表示屬性的索引,取值范圍是[1,m],j的取值范圍是[1,k]。每個(gè)聚類中心也有m個(gè)屬性。曼哈頓距離公式如式(9)所示:
(9)
曼哈頓距離是計(jì)算兩個(gè)點(diǎn)之間的距離的一種度量方法。它基于點(diǎn)在坐標(biāo)系中沿著軸的水平和垂直移動(dòng)的總距離。余弦距離公式如式(10)所示:
(10)
在K-means算法中,為了確定每個(gè)類簇的中心點(diǎn),需要計(jì)算每個(gè)維度上所有對(duì)象值的平均值,作為該維度上類簇中心的定義。平均值計(jì)算的公式如式(11)所示:
(11)
式(11)中,Cl表示第l個(gè)類簇的中心,l的取值范圍為[1,k],|Sl|表示第l個(gè)類簇中的對(duì)象數(shù)量,即類簇中包含的對(duì)象的個(gè)數(shù)。X表示第一個(gè)類簇中的第i個(gè)對(duì)象,其中i的取值范圍是[1,|St|],表示第l個(gè)類簇中的對(duì)象的編號(hào)。K-means聚類是一種迭代算法,通過(guò)計(jì)算數(shù)據(jù)點(diǎn)之間的距離和聚類中心之間的距離來(lái)對(duì)數(shù)據(jù)進(jìn)行分組。算法通過(guò)不斷地循環(huán)計(jì)算來(lái)優(yōu)化聚類結(jié)果,直到達(dá)到預(yù)設(shè)的迭代次數(shù)。不同的距離度量方法對(duì)應(yīng)不同的目標(biāo)函數(shù),當(dāng)算法的迭代次數(shù)達(dá)到最大值時(shí),循環(huán)計(jì)算停止并輸出聚類結(jié)果,例如,當(dāng)使用歐幾里得距離時(shí),目標(biāo)函數(shù)通常是最小化每個(gè)數(shù)據(jù)點(diǎn)與其所屬聚類中心之間距離的平方和。具體公式如式(12)所示:
(12)
當(dāng)使用余弦距離作為距離度量時(shí),K-means聚類的目標(biāo)函數(shù)通常是最大化每個(gè)數(shù)據(jù)點(diǎn)與其所屬聚類中心之間余弦距離的和。具體如式(13)所示:
(13)
當(dāng)簇之間的差異明顯且簇內(nèi)的數(shù)據(jù)點(diǎn)相似度較高時(shí),K-means算法可以得到最理想的聚類結(jié)果。K-means++算法是一種改進(jìn)的K-means算法,它與K-means在計(jì)算過(guò)程上非常相似,但在初始聚類中心的選取上有所不同。K-means++通過(guò)一種策略來(lái)選擇初始聚類中心,該策略旨在使初始聚類中心之間的距離較遠(yuǎn),具體而言,它遍歷整個(gè)數(shù)據(jù)集,并根據(jù)一定的概率分布選擇下一個(gè)初始聚類中心,以確保選擇的中心點(diǎn)之間的距離較大[14]。通過(guò)這種方式,K-means++能夠減少初始聚類中心選擇對(duì)最終聚類結(jié)果的影響,K-means++的思路是先隨機(jī)選擇一個(gè)數(shù)據(jù)點(diǎn)作為第一個(gè)初始聚類中心,然后根據(jù)每個(gè)數(shù)據(jù)點(diǎn)與已選取的聚類中心的距離來(lái)計(jì)算選擇下一個(gè)初始聚類中心的概率。距離較遠(yuǎn)的數(shù)據(jù)點(diǎn)更有可能被選為下一個(gè)初始聚類中心[15]。重復(fù)這個(gè)過(guò)程,直到選擇了所有的初始聚類中心。選擇概率的公式如式(14)所示:
(14)
K-means++算法通過(guò)改進(jìn)初始聚類中心的選擇,能夠顯著提高聚類結(jié)果的準(zhǔn)確性,它的改進(jìn)點(diǎn)相當(dāng)簡(jiǎn)單直觀,但非常有效。該算法的關(guān)鍵在于在選擇初始聚類中心時(shí),通過(guò)計(jì)算對(duì)象與已選中聚類中心的距離,選擇距離較遠(yuǎn)的對(duì)象作為下一個(gè)聚類中心,這樣可以確保初始聚類中心之間的距離較大,有利于聚類的精確性。
YOLOv3是在YOLOv2基礎(chǔ)上改進(jìn)和提升的目標(biāo)檢測(cè)算法,YOLOv3的基本思想可以分為兩個(gè)部分,首先,根據(jù)一定規(guī)則在輸入圖像上生成一系列的候選框,這些候選框是可能包含目標(biāo)的區(qū)域,通過(guò)與真實(shí)框進(jìn)行標(biāo)注,將其分為正樣本和負(fù)樣本,正樣本是指與真實(shí)框完全重合的候選框,而負(fù)樣本則是與真實(shí)框有一定偏離的候選框[16]。其次,利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)候選區(qū)域進(jìn)行特征提取,并進(jìn)行位置定位和類型識(shí)別,將候選區(qū)域輸入到卷積神經(jīng)網(wǎng)絡(luò)中,獲取與目標(biāo)相關(guān)的特征表示,然后,通過(guò)位置定位和類型識(shí)別,最終得到檢測(cè)結(jié)果。將這些檢測(cè)結(jié)果與真實(shí)框的標(biāo)簽進(jìn)行比較,判斷是否正確檢測(cè)出目標(biāo)。YOLOv3在特征提取網(wǎng)絡(luò)方面采用了DarkNet-53替代了YOLOv2中的DarkNet-19。DarkNet-53是一種全卷積網(wǎng)絡(luò)結(jié)構(gòu),它由多個(gè)1×1和3×3的卷積層組成,每個(gè)卷積層后面跟著批歸一化層和激活層。與YOLOv2不同的是,DarkNet-53網(wǎng)絡(luò)中沒(méi)有池化層和全連接層,而是通過(guò)步長(zhǎng)為2的卷積進(jìn)行下采樣操作。經(jīng)過(guò)5次下采樣,特征圖的尺寸縮小為原始圖像的1/32。DarkNet-53網(wǎng)絡(luò)還引入了殘差塊結(jié)構(gòu)(Residual Network,ResNet),在卷積層之間設(shè)置了快捷連接。這種結(jié)構(gòu)有效地降低了訓(xùn)練深層網(wǎng)絡(luò)的難度,使得網(wǎng)絡(luò)能夠更好地收斂。Darknet3網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2所示。
圖2 Darknet3網(wǎng)絡(luò)結(jié)構(gòu)圖
在DarkNet-53網(wǎng)絡(luò)中,通過(guò)將第2個(gè)殘差塊的淺層輸出與經(jīng)過(guò)2倍上采樣后的網(wǎng)絡(luò)深層輸出進(jìn)行融合,再經(jīng)過(guò)1×1卷積層生成一個(gè)新的特征圖層104×104,這樣的新增特征圖層具有更強(qiáng)的特征提取能力。它的尺寸是輸入圖像大小的1/4,將輸入圖像劃分為更小的4×4網(wǎng)格,增強(qiáng)了網(wǎng)絡(luò)對(duì)小目標(biāo)的敏感性。該融合操作既繼承了深層特征的信息,又充分利用了網(wǎng)絡(luò)淺層特征,提高了模型對(duì)小目標(biāo)特征的提取能力,降低了漏檢小損傷目標(biāo)的概率,從而提高了檢測(cè)精度[18]。網(wǎng)絡(luò)中每個(gè)特征圖層仍然使用3個(gè)Anchor Box,但新增的特征圖層使得總的Anchor Box數(shù)量從9個(gè)增加到12個(gè),增強(qiáng)了檢測(cè)密度。通過(guò)疊加多個(gè)特征圖層,網(wǎng)絡(luò)可以劃分不同尺寸層次的目標(biāo),提高了對(duì)不同尺寸目標(biāo)的綜合檢測(cè)能力[19]。
在傳統(tǒng)的標(biāo)準(zhǔn)卷積中,同一個(gè)卷積核被用于處理圖像的所有通道。這意味著在進(jìn)行卷積操作時(shí),每個(gè)卷積核都負(fù)責(zé)處理所有通道的特征,如果需要檢測(cè)更多的屬性,就需要增加更多的卷積核。然而,深度可分離卷積引入了一種不同的思路,它將卷積操作分解為兩個(gè)獨(dú)立的計(jì)算過(guò)程。首先是深度卷積,它將每個(gè)通道單獨(dú)進(jìn)行卷積操作,而通道數(shù)保持不變。接下來(lái)是逐點(diǎn)卷積,它使用1×1×3的卷積核來(lái)擴(kuò)充通道數(shù)。逐點(diǎn)卷積的輸出結(jié)果與傳統(tǒng)卷積相同[20]。通過(guò)這種分解方式,研究可以靈活地增加更多的1×1×3卷積核來(lái)提取更多的特征。深度可分離卷積不僅減少了參數(shù)量和計(jì)算量,還提高了模型的表達(dá)能力。因此,在YOLOv3中采用深度可分離卷積對(duì)模型進(jìn)行優(yōu)化,以提高檢測(cè)性能和效率。深度可分離卷積運(yùn)算量公式如式(15)所示:
Qdw=w×w×d×c×c+w×w×d×k=
w×w×d×(c×c+k)
(15)
深度可分離卷積本質(zhì)上是將3D卷積的通道分解,以降低計(jì)算成本。根據(jù)式(15),在這種卷積中,對(duì)于一個(gè)輸入大小為wwd的圖像,使用k個(gè)大小為c*c的卷積核,步長(zhǎng)為1,填充為1。與傳統(tǒng)的卷積操作不同,深度可分離卷積首先進(jìn)行深度卷積,將每個(gè)通道獨(dú)立進(jìn)行卷積操作。然后,再進(jìn)行逐點(diǎn)卷積,利用1×1的卷積核進(jìn)行通道數(shù)的擴(kuò)展。比值I表示深度可分離卷積的運(yùn)算量相對(duì)于普通卷積的運(yùn)算量的減少程度,如公式(16)所示:
(16)
為了降低YOLOv3網(wǎng)絡(luò)中的計(jì)算時(shí)間,研究采用了深度可分離卷積方法來(lái)改進(jìn)殘差塊結(jié)構(gòu)。這種方法通過(guò)在卷積操作中減少參數(shù)數(shù)量,從而降低了計(jì)算復(fù)雜度,研究在殘差塊中引入了1×1卷積結(jié)構(gòu)進(jìn)行點(diǎn)卷積,并添加了1×1卷積層來(lái)平滑特征。這樣的結(jié)構(gòu)既能有效減少模型的計(jì)算量,又能夠提取更多目標(biāo)特征信息,從而提高了檢測(cè)精度,通過(guò)這種優(yōu)化,能夠在保持準(zhǔn)確性的同時(shí)提高算法的運(yùn)行效率。
使用K-means算法和K-means++算法對(duì)數(shù)據(jù)進(jìn)行聚類后,研究可以通過(guò)繪制二維坐標(biāo)圖來(lái)展示它們的聚類結(jié)果。在圖中,每個(gè)數(shù)據(jù)點(diǎn)表示一個(gè)樣本對(duì)象,而不同的顏色表示不同的聚類簇。兩種算法聚類精確度對(duì)比如圖3所示。
圖3 算法聚類精確度對(duì)比
根據(jù)圖3所示,可以發(fā)現(xiàn)在K-means++算法下,聚類結(jié)果展現(xiàn)出更高的識(shí)別精確度。這是因?yàn)镵-means++算法在選擇初始聚類中心時(shí)更加巧妙,通過(guò)設(shè)置初始聚類中心之間的距離較遠(yuǎn),有效地避免了初始聚類中心對(duì)聚類結(jié)果的影響。因此,K-means++算法能夠更好地捕捉到數(shù)據(jù)的內(nèi)在結(jié)構(gòu),使得聚類結(jié)果更加準(zhǔn)確。
聚類中心個(gè)數(shù)為9時(shí),對(duì)比了K-means算法和K-means++算法生成的Anchor Box的寬度、高度和面積,詳見(jiàn)表1。將聚類結(jié)果分配給3個(gè)特征圖層后,比較了每個(gè)尺寸特征圖中Anchor Box的差異??梢杂^察到,K-means++算法生成的Anchor Box在不同尺寸特征圖層之間的差異更大。
表1 算法聚類差異
根據(jù)表1,可以明顯地看到K-means++算法生成的Anchor Box在不同尺寸特征圖層之間的差異更大。這意味著K-means++算法生成的Anchor Box在不同尺寸的目標(biāo)檢測(cè)上具有更好的適應(yīng)性和靈活性。與此相比,K-means算法生成的Anchor Box在不同尺寸特征圖層之間的差異相對(duì)較小。因?yàn)椴煌叽绲哪繕?biāo)可能需要不同尺寸的Anchor Box來(lái)進(jìn)行準(zhǔn)確的檢測(cè)。通過(guò)使用K-means++算法生成的Anchor Box,能夠更好地滿足不同尺寸目標(biāo)的檢測(cè)需求,從而提高目標(biāo)檢測(cè)算法的性能和準(zhǔn)確性。因此,K-means++算法在YOLOv3中的優(yōu)化中起到了關(guān)鍵作用。
為了進(jìn)一步詳細(xì)分析本章算法與YOLOv3在物體表面檢測(cè)方面的性能,如圖4所示,繪制出各類算法在NEU-DET數(shù)據(jù)集上部分損傷類型的P-R曲線。P-R曲線的特性是區(qū)域的面積越大,算法的檢測(cè)能力越強(qiáng)。在圖4中,可以看到三條曲線,其中第三條曲線下的面積最大,第二條曲線下的面積最小。這意味著優(yōu)化后的算法對(duì)于金屬表面不同類型的損傷具有更強(qiáng)的檢測(cè)能力,第三條曲線所代表的損傷類型,在不同召回率和精確率之間達(dá)到了最優(yōu)的平衡,即在保持高精確率的同時(shí),能夠?qū)崿F(xiàn)較高的召回率。相比之下,第二條曲線所代表的損傷類型的檢測(cè)能力較弱,即使在較高的召回率下,精確率相對(duì)較低。
圖4 各類算法P-R曲線
為驗(yàn)證改進(jìn)算法對(duì)金屬表面損傷檢測(cè)的有效性,研究在NEUDET數(shù)據(jù)集的基礎(chǔ)上進(jìn)行了一系列實(shí)驗(yàn),將Faster R-CNN、SSD、YOLOv2以及本文算法進(jìn)行了詳細(xì)對(duì)比。為確保實(shí)驗(yàn)公平,研究在相同的實(shí)驗(yàn)環(huán)境下進(jìn)行了訓(xùn)練和評(píng)估。在實(shí)驗(yàn)設(shè)置中,將模型的學(xué)習(xí)率初始值設(shè)定為0.001,并將訓(xùn)練進(jìn)行至少10 800輪。為了更全面地評(píng)估算法性能,研究采用了兩項(xiàng)主要評(píng)估指標(biāo),F(xiàn)PS(每秒幀數(shù))和mAP(平均精度均值)。為了保持一致性,研究將本文算法中的DIoU閾值設(shè)置為0.45,而將其他算法模型中的IoU閾值設(shè)置為0.5。同時(shí),我們保持了其他參數(shù)的一致性。在實(shí)驗(yàn)結(jié)果方面,對(duì)算法性能進(jìn)行了對(duì)比,并將對(duì)比結(jié)果列于表2中。
表2 不同算法性能對(duì)比
在探究各深度學(xué)習(xí)算法在金屬表面損傷檢測(cè)中的效能時(shí),研究提出的優(yōu)化后的YOLOv3算法以71.52%檢測(cè)精度在五種模型中較為突出。具體而言,與Faster R-CNN相比,研究提出的算法實(shí)現(xiàn)了高達(dá)6.83%的精度優(yōu)勢(shì),雖然Faster R-CNN在準(zhǔn)確性上優(yōu)于其他3種深度學(xué)習(xí)算法,但因其分階段的檢測(cè)方法,導(dǎo)致檢測(cè)時(shí)間較長(zhǎng),從而成為速度最慢的選項(xiàng)。SSD在檢測(cè)速度方面明顯超越Faster R-CNN,但相對(duì)于YOLOv2而言,速度仍有所不及。YOLOv2以一種單階段算法的身份,極大地提高了檢測(cè)速度,然而,其相對(duì)較少的網(wǎng)絡(luò)層數(shù)限制了其對(duì)有用目標(biāo)特征信息的提取,導(dǎo)致檢測(cè)精度略有下降。此外,Mask R-CNN改進(jìn)算法在檢測(cè)精度上表現(xiàn)出色,但在速度上仍不如單階段算法。同樣地,基于YOLOv3的改進(jìn)算法盡管使用了類似的基礎(chǔ)模型,但其檢測(cè)精度和速度均不及研究提出的算法,這可以歸因于本文算法引入了全新的特征圖層,并通過(guò)深度可分離卷積技術(shù)精簡(jiǎn)了模型的計(jì)算復(fù)雜度。研究通過(guò)與YOLOv3算法的對(duì)比分析,從mAP和FPS兩個(gè)方面評(píng)估了研究算法的性能,具體如表3所示。
表3 多尺度融合后的算法與YOLOv3算法對(duì)比
根據(jù)表3的結(jié)果顯示,研究算法的平均檢測(cè)精度為79.21%,相較于YOLOv3算法提高了7.77個(gè)百分點(diǎn)。這一改進(jìn)主要體現(xiàn)在網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化,通過(guò)增加一個(gè)尺度更大的輸出來(lái)提升檢測(cè)能力,尤其是對(duì)小尺寸目標(biāo)損傷的檢測(cè)能力,減少了漏檢的概率。另外,對(duì)比兩種算法的FPS,由于研究算法增加了網(wǎng)絡(luò)層數(shù),模型參數(shù)增加,導(dǎo)致計(jì)算量增加,因此檢測(cè)速度略有下降。然而,引入深度可分離卷積后,模型的計(jì)算量?jī)H為原計(jì)算量的九分之一,大大提高了檢測(cè)效率。具體來(lái)說(shuō),研究算法的檢測(cè)速度為36.2 f/s,僅比YOLOv3算法低2.4 f/s。
圖5呈現(xiàn)了各個(gè)損傷類型的檢測(cè)精度對(duì)比結(jié)果。從圖中數(shù)據(jù)可以觀察到,改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)在所有類別的檢測(cè)精度上都有顯著提升,特別是對(duì)于小尺寸類型目標(biāo)的檢測(cè),改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)展現(xiàn)出明顯優(yōu)勢(shì)。如圖5中,裂紋類別的檢測(cè)精度提高了6.35%,鱗片痕類別的檢測(cè)精度提高了6.40%。這表明新增的特征圖層能夠有效解決原網(wǎng)絡(luò)結(jié)構(gòu)在物體表面小尺寸目標(biāo)的特征提取和檢測(cè)方面的不足。因此,該改進(jìn)方法對(duì)于小尺寸目標(biāo)的優(yōu)化是具有可行性的。綜合來(lái)看,研究?jī)?yōu)化后的算法在檢測(cè)性能上明顯優(yōu)于YOLOv3算法,適用于物體表面小尺寸檢測(cè)。
圖5 改進(jìn)網(wǎng)絡(luò)前后各類型網(wǎng)絡(luò)的mAP對(duì)比
研究旨在解決物體目標(biāo)檢測(cè)中小尺寸目標(biāo)的不敏感性和檢測(cè)精度不足的問(wèn)題。為此,研究對(duì)YOLOv3網(wǎng)絡(luò)模型進(jìn)行了結(jié)構(gòu)上的改進(jìn)和實(shí)驗(yàn)分析。首先,通過(guò)融合一個(gè)新的特征圖層,實(shí)現(xiàn)了多尺度檢測(cè),以增強(qiáng)對(duì)小損傷目標(biāo)的識(shí)別能力。其次,研究采用了深度可分離卷積技術(shù)來(lái)替代標(biāo)準(zhǔn)卷積,大幅降低了模型的計(jì)算量和大小。實(shí)驗(yàn)結(jié)果表明,經(jīng)過(guò)一系列的改進(jìn),研究的模型在物體表面小尺寸檢測(cè)方面取得了顯著的性能提升,比較金屬表面損傷檢測(cè)算法,優(yōu)化后的YOLOv3精度達(dá)71.52%,高于Faster R-CNN 6.83%。Faster R-CNN準(zhǔn)確但慢,SSD快于它,但不及YOLOv2。YOLOv2速度快但精度略低。Mask R-CNN精度好但慢,基于YOLOv3的改進(jìn)算法則綜合優(yōu)勢(shì)。相對(duì)于原始模型,研究算法的平均精度達(dá)到了79.21%,比原模型提高了7.77個(gè)百分點(diǎn)。盡管研究算法在網(wǎng)絡(luò)深度上增加了計(jì)算量,導(dǎo)致模型的檢測(cè)速率略有下降,但引入深度可分離卷積后,模型的檢測(cè)速度明顯提高,達(dá)到了36.2 f/s,僅比原模型略低2.4 f/s。研究仍存在一些不足之處,在算法的訓(xùn)練過(guò)程中,仍需注意如何平衡模型的精度和速度之間的權(quán)衡,以達(dá)到更好的檢測(cè)效果和實(shí)時(shí)性能。