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