王兵水, 鄭樹彬, 李立明, 鐘倩文
(上海工程技術(shù)大學(xué) 城市軌道交通學(xué)院, 上海 201620)
為了能夠及時(shí)發(fā)現(xiàn)會(huì)嚴(yán)重影響列車行車安全的隱患,鐵路部門需要定期地對鐵路沿線進(jìn)行相關(guān)巡查,其中重要的一項(xiàng)便是對軌道扣件進(jìn)行檢測。軌道扣件作為固定鋼軌和軌枕的連接件,扣件狀態(tài)的好壞直接影響著行車的安全。但目前國內(nèi)主要采用人工巡檢的方式,該方式存在的弊端是巡檢效率低下,漏檢率高并且檢測結(jié)果與巡檢人員技術(shù)熟練程度嚴(yán)重正相關(guān)。
隨著近年來人工智能研究的日趨深入,作為其應(yīng)用基礎(chǔ)的圖像檢測技術(shù)也獲得飛速發(fā)展。代表性成果主要有:通過對含有待檢測目標(biāo)的圖像利用卷積神經(jīng)網(wǎng)絡(luò)提取目標(biāo)特征并正確識(shí)別出目標(biāo)的技術(shù),例如人臉識(shí)別技術(shù)[1],車牌識(shí)別技術(shù)等。然而,目前主流的應(yīng)用在目標(biāo)檢測方面的智能算法主要有兩類。一類是基于區(qū)域的目標(biāo)檢測算法,主要有Fast R-CNN[2],F(xiàn)aster R-CNN[3]等,該類算法雖有較高的檢測精度,但是檢測速度較慢。另一類是基于回歸的目標(biāo)檢測算法,主要有YOLO[4],SSD[5]等,該類算法的特點(diǎn)是采用端到端的檢測,具有較快的檢測速度?;诰矸e神經(jīng)網(wǎng)絡(luò)的扣件檢測算法具有廣泛的應(yīng)用前景和巨大的商業(yè)價(jià)值。
本文提出一種基于改進(jìn)YOLO算法的扣件狀態(tài)檢測方法,通過對采集到的扣件圖像進(jìn)行預(yù)處理后輸入到改進(jìn)的YOLO網(wǎng)絡(luò)中即可得到標(biāo)注類別的輸出結(jié)果,準(zhǔn)確高效。本文改進(jìn)了傳統(tǒng)的YOLO網(wǎng)絡(luò),增加了Darknet-53基礎(chǔ)網(wǎng)絡(luò)。由于拍攝圖像并非處于實(shí)驗(yàn)室環(huán)境下,圖像中扣件與背景差異甚小,傳統(tǒng)YOLO網(wǎng)絡(luò)對此處理容易丟失特征信息,所以本文進(jìn)行多尺度的特征融合并且針對不同特征通過賦予不同權(quán)重,則可保證特征信息得到充分可靠的呈現(xiàn)。最后仿真對比了在同一數(shù)據(jù)集下的傳統(tǒng)YOLO與改進(jìn)YOLO的訓(xùn)練結(jié)果對比性能。結(jié)果數(shù)據(jù)均顯示,改進(jìn)后的網(wǎng)絡(luò)損失值相較之前收斂更快且更低,在檢測速度與精度上都有明顯提升。
軌道扣件狀態(tài)檢測的傳統(tǒng)的YOLO算法的核心思想是將從現(xiàn)場通過線陣相機(jī)采集回來的扣件圖片作為網(wǎng)絡(luò)的輸入,制作對應(yīng)的數(shù)據(jù)集后進(jìn)行訓(xùn)練,并直接在輸出層進(jìn)行回歸得到對應(yīng)的扣件的位置和類別,實(shí)現(xiàn)端到端的訓(xùn)練與檢測工作。對于基于傳統(tǒng)的YOLO算法的扣件狀態(tài)檢測系統(tǒng)流程,擬做闡釋解析如下。
(1)將線陣相機(jī)拍攝的軌道扣件照片尺寸標(biāo)準(zhǔn)化到448×448。
(2)將標(biāo)準(zhǔn)化后的照片作為YOLO多層網(wǎng)絡(luò)結(jié)構(gòu)的輸入,在中間層進(jìn)行卷積和池化操作。
(3)再經(jīng)非極大值抑制優(yōu)化,最終得到檢測結(jié)果如圖1所示。
圖1 傳統(tǒng)YOLO算法的扣件狀態(tài)檢測流程
傳統(tǒng)的YOLO算法檢測機(jī)制是通過將目標(biāo)檢測轉(zhuǎn)化為邊框預(yù)測和對應(yīng)類別的概率回歸問題,從而實(shí)現(xiàn)了單個(gè)卷積神經(jīng)網(wǎng)絡(luò)直接從完整的圖像預(yù)測邊框和類別概率[4]??紤]到整個(gè)檢測過程只在同一尺度的軌道扣件特征圖上進(jìn)行,所以容易出現(xiàn)準(zhǔn)確率較低的問題。在此基礎(chǔ)上對傳統(tǒng)YOLO算法進(jìn)行改進(jìn),重點(diǎn)從回歸尺度、特征權(quán)重并對數(shù)據(jù)集進(jìn)行增廣與聚類分析等方面做出改進(jìn),從而提高檢測速度與準(zhǔn)確性。
在基于傳統(tǒng)的YOLO網(wǎng)絡(luò)的基礎(chǔ)上以Darknet-53為輔助網(wǎng)絡(luò)構(gòu)建YOLO改進(jìn)算法模型,其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,將扣件圖像進(jìn)行放縮為608×608的像素大小作為網(wǎng)絡(luò)的輸入,在3個(gè)不同尺度內(nèi)通過卷積的方式實(shí)現(xiàn)局部特征的提取。輸出的3個(gè)不同大小的特征圖19×19、38×38和76×76分別對應(yīng)尺度1、尺度2和尺度3。其中,尺度19×19是在輔助基礎(chǔ)網(wǎng)絡(luò)之后通過增加一些卷積塊再卷積輸出檢測框信息,尺度38×38是在尺度1的末尾之前的卷積基礎(chǔ)上再引入新的一輪卷積塊并且進(jìn)行上采樣之后配合Darknet-53網(wǎng)絡(luò)的前五層的輸入共同以張量的形式進(jìn)行最終的卷積輸出檢測框信息,此時(shí)尺度增加了1倍,同理尺度76×76輸出檢測框也增加了1倍。然后基于交互層輸出的特征圖進(jìn)行類別和位置的回歸判斷。使用邏輯回歸來預(yù)測每個(gè)bounding boxes的對象分?jǐn)?shù),每個(gè)bounding box與ground truth的匹配策略為1∶1,并且每個(gè)bounding boxes使用多標(biāo)簽分類法預(yù)測包含的類,避免標(biāo)簽重疊等問題,采用二元交叉熵進(jìn)行類別預(yù)測來提高準(zhǔn)確度[6]。
圖2 用于檢測軌道扣件狀態(tài)的改進(jìn)YOLO算法框架
YOLO算法將輸入的軌道扣件照片進(jìn)行分割為M×M塊,若某個(gè)物體的中心落入到某一個(gè)網(wǎng)格的內(nèi)部,則該網(wǎng)格就負(fù)責(zé)預(yù)測該物體。在算法進(jìn)行訓(xùn)練和測試的時(shí)候,每個(gè)格子將會(huì)預(yù)測N個(gè)檢測邊界框以及每個(gè)檢測邊界框?qū)?yīng)的置信度。以上每個(gè)檢測框都包含5個(gè)參數(shù),分別為物體中心位置的橫坐標(biāo)x、縱坐標(biāo)y、置信度評(píng)分Cobject、檢測邊框的高度h和寬度w。有效地降低了傳統(tǒng)YOLO算法中采用固定檢測邊框尺度導(dǎo)致的扣件邊界框回歸錯(cuò)位的影響。但作為改進(jìn)的YOLO算法,不同之處在于是以x和y的偏移作為檢測邊框的長寬的線性表達(dá)式如式(1)- 式(4)所示:
Rx=Pwtx(P)+Px,
(1)
Ry=Phty(P)+Py,
(2)
Rw=Pwetw(P),
(3)
Rh=Pheth(P),
(4)
其中,Rx、Ry、Rw、Rh是真實(shí)的在扣件特征圖上的4個(gè)位置坐標(biāo)的估計(jì)值;Px、Py表示在特征圖上的預(yù)設(shè)錨框的中心點(diǎn)坐標(biāo)值;Pw、Ph表示在特征圖上的預(yù)設(shè)錨框的寬和高;tx、ty、tw、th代表網(wǎng)絡(luò)學(xué)習(xí)目標(biāo)。繼而,研究可得邊框信息的橫坐標(biāo)、縱坐標(biāo),寬和高的值求解公式如下:
bx=δ(tx)+cx,
(5)
by=δ(ty)+cy,
(6)
bw=pwetw,
(7)
bh=pheth,
(8)
其中,bx、by、bw、bh即為解得的邊框的信息,同樣tx、ty、tw、th表示網(wǎng)絡(luò)學(xué)習(xí)目標(biāo),cx、cy表示邊框坐標(biāo)的偏移量,預(yù)設(shè)的錨邊框的寬和高為pw和ph。在此基礎(chǔ)上,置信度和交并比的數(shù)學(xué)表達(dá)式如下:
(9)
(10)
傳統(tǒng)YOLO算法只采用單一的均方和誤差函數(shù)來作為損失函數(shù),其數(shù)學(xué)表達(dá)式如下:
(11)
綜合考慮以上各損失的貢獻(xiàn)率和在訓(xùn)練中的權(quán)重,改進(jìn)的YOLO算法的損失函數(shù)如下:
(12)
為了使得特征提取得更加全面,一般都采取增加網(wǎng)絡(luò)的層數(shù)。但是隨著網(wǎng)絡(luò)的加深,每一層都會(huì)丟失一些信息,到最后一層就會(huì)丟掉比較多的信息。Liu等人[7]在European Conference on Computer Vision會(huì)議上提出新的目標(biāo)檢測算法SSD,主要結(jié)合了YOLO的端到端的思想和一般卷積神經(jīng)網(wǎng)絡(luò)的候選框的思想,從而引入了新的空間維度來融合不同尺度上特征信息,并作為新的參數(shù)傳給最后的預(yù)測層,從而解決了網(wǎng)絡(luò)層數(shù)的增加可能導(dǎo)致信息丟失的問題。
本文改進(jìn)的YOLO算法模型正是結(jié)合該方法將多尺度特征融合進(jìn)網(wǎng)絡(luò)框架中,并經(jīng)過基礎(chǔ)網(wǎng)絡(luò)計(jì)算后再添加4個(gè)不同大小的卷積塊。具體如圖3所示。
通過在多個(gè)不同尺度的特征進(jìn)行映射后,能夠更好地提取出扣件的特征,還能更好地提取出圖像中實(shí)際尺寸過大的目標(biāo)物體,提升定位的精度和預(yù)測的準(zhǔn)確性。由圖5可以看到在越大的感受野下,網(wǎng)絡(luò)對尺度較小的特征越不敏感[8], 公式如下:
RFn+1=RFn+(kn)×stride_n+1,
(13)
其中,stride_n+1表示第n+1次的卷積移動(dòng)的步長,RFn+1表示下一層的感受野大小。另外,考慮到拍攝扣件照片時(shí)扣件在照片中位置分布的差異性,就要在輸入扣件照片時(shí)先進(jìn)行標(biāo)準(zhǔn)化操作,對應(yīng)公式可表示為:
圖3 多尺度特征融合效果圖
(14)
通過事先標(biāo)定7×7×25的特征維度作為第一回合的輸出得到一個(gè)7×7×25的張量之后,若在輸出的目標(biāo)信息檢測中發(fā)現(xiàn)訓(xùn)練階段設(shè)定的目標(biāo)物體,則將此次張量送入下一輪并作為第二回合的輸入,最終經(jīng)過2次1×1×k的卷積層后再轉(zhuǎn)入檢測器和分類器判斷階段。分類器使用softmax回歸函數(shù)得到的結(jié)果作為輸出標(biāo)定來對結(jié)果進(jìn)行預(yù)測。研究可得數(shù)學(xué)公式為:
(15)
其中,zj表示上一層輸出結(jié)果的預(yù)測值。
當(dāng)傳統(tǒng)YOLO網(wǎng)絡(luò)的樣本照片中扣件存在有遮擋物干擾或者摻雜有圖像噪聲時(shí),YOLO網(wǎng)絡(luò)檢測輸出的置信度較高區(qū)域?qū)⒍技性谔卣鲌D的邊緣位置,從而出現(xiàn)檢測置信度分布的不均衡。雖然已有學(xué)者提出通過提高空間的維度從而來提升網(wǎng)絡(luò)的性能,但是一味地加深網(wǎng)絡(luò)深度,不僅會(huì)讓網(wǎng)絡(luò)顯得龐大,還會(huì)導(dǎo)致網(wǎng)絡(luò)的計(jì)算速度明顯下降。所以考慮從其它方面來提升網(wǎng)絡(luò)的性能,為了保證網(wǎng)絡(luò)學(xué)習(xí)到的是全局特征并且讓置信度值在特征圖中做到均衡分布,參考Hu等人[9]提出的SENet思想,就是通過給不同特征通道賦予不同權(quán)重從而保證研究想要的有效的特征圖獲取較大占比的權(quán)重,效果差甚至無效的特征圖獲取較小的權(quán)重占比。通過該方式可以直觀顯式地建立不同特征通道間的相互依賴關(guān)系,從而使模型訓(xùn)練達(dá)到更好的效果。這里,需用到如下數(shù)學(xué)公式:
(16)
其中,uc表示C經(jīng)過標(biāo)準(zhǔn)卷積算子Ftr得到的結(jié)果,vc是網(wǎng)絡(luò)用到的濾波器核心的第c通道的參數(shù)。
通道分權(quán)重的算法研發(fā)思路是將本層的特征作為下一卷積塊的輸入,再分兩條路徑傳遞給下一層,但其中有一條路徑會(huì)進(jìn)行Squeeze操作,其數(shù)學(xué)公式可寫為:
(17)
這樣一來,就可對上一層傳遞來的參數(shù)進(jìn)行壓縮,得到具有n維的特征向量,從而使其可以感受全局特征。
另一條路徑則要進(jìn)行Excitation操作,該操作類似于LSTM中的gate機(jī)制,旨在保證在經(jīng)過卷積和激活函數(shù)計(jì)算后能夠建立各通道間的相關(guān)性模型,同時(shí)為了讓算法學(xué)習(xí)不同通道間的交互關(guān)系,減少通道間的互斥現(xiàn)象,gate機(jī)制中的控制單元采用Sigmoid激活函數(shù)??刂茊卧獢?shù)學(xué)表達(dá)式可寫為:
s=Fex(z,W)=σ(W2δ(W1z)).
(18)
其中,δ表示ReLU函數(shù)[10]。
考慮到本次訓(xùn)練數(shù)據(jù)集的量級(jí)可能會(huì)發(fā)生過擬合的情況,所以后期會(huì)對數(shù)據(jù)集進(jìn)行增廣操作,用來提升數(shù)據(jù)集的大小以避免出現(xiàn)過擬合的現(xiàn)象。
本文所有扣件圖像均來自課題組項(xiàng)目的實(shí)拍照片,圖像拍攝設(shè)備為線陣相機(jī),扣件類型為潘得路扣件。起始數(shù)據(jù)集包含扣件圖像3 150張,扣件圖像有a,b,c,d四種狀態(tài),如圖4所示。
圖4 數(shù)據(jù)集中扣件狀態(tài)類別
Fig. 4 Fasteners status category in the data set
但在目標(biāo)檢測中將(a)和(b)統(tǒng)一歸為正常狀態(tài)扣件類,標(biāo)注為“nm”,非正常狀態(tài)的被標(biāo)注為“um_1”與“um_2”兩種。由于軌道扣件絕大部分都是處于正常狀態(tài)的,只有很少一部分扣件出現(xiàn)損壞等非正常狀態(tài),所以扣件圖像數(shù)據(jù)集存在嚴(yán)重的類別不平衡問題[11]。
針對這一問題,需要增加非正常狀態(tài)下的扣件圖像數(shù)量。為此考慮應(yīng)用圖像數(shù)據(jù)增廣的方法來達(dá)到這一目的。圖像數(shù)據(jù)增廣是通過對原始的圖像進(jìn)行一系列無規(guī)則的處理,從而產(chǎn)生與原始圖像相似,但又不一樣的新的圖像來擴(kuò)充數(shù)據(jù)集。如圖5所示,對非正常狀態(tài)扣件進(jìn)行增廣處理有翻轉(zhuǎn)、翻轉(zhuǎn)+偏移、翻轉(zhuǎn)+縮放+偏移和縮放+偏移。在增廣過程中產(chǎn)生的空白的區(qū)域,研究選擇用RGB值均為0的黑色來對增廣后空白區(qū)域作填充,使其可能對目標(biāo)特征產(chǎn)生的影響降到最小。增廣后的數(shù)據(jù)集由原來的3 150張扣件照片增加到5 300張。
傳統(tǒng)的YOLO網(wǎng)絡(luò)對目標(biāo)框的位置并不準(zhǔn)確,源于網(wǎng)絡(luò)沒有事先對預(yù)測框位置做出一定的判斷而是直接采取回歸的方法?;贔aster R-CNN提出的錨的思想,YOLO在此基礎(chǔ)上進(jìn)行改進(jìn),通過K-means聚類的方式對錨框的寬高進(jìn)行聚類分析得到錨框集合。使用平均交并比作為聚類分析結(jié)果的量度,研究推得平均交并比的目標(biāo)函數(shù)表達(dá)式如下:
(19)
其中,IIOU(B,C)表示聚類的錨框與簇的中心框的交并比;B表示檢測框中的樣本數(shù);C是簇的中心;nk表示第k個(gè)聚類中心的樣本數(shù);k為簇的個(gè)數(shù)。
基于以上分析對軌道扣件圖像數(shù)據(jù)集進(jìn)行聚類運(yùn)算,設(shè)定k=9得到平均交并比(AvgIOU)與k的關(guān)系圖如圖6所示。
(a) 原圖像 (b)增廣處理后圖像
圖6 K-means聚類分析結(jié)果
隨著k的增加,目標(biāo)函數(shù)的變化逐漸平穩(wěn),在k=6時(shí)目標(biāo)函數(shù)基本穩(wěn)定不變,所以錨框數(shù)設(shè)為6,既能有效減小檢測框的誤差,還能加快損失函數(shù)的收斂速度。對應(yīng)預(yù)測框的大小設(shè)定為6個(gè)聚類中心,參數(shù)分別為(20,17),(10,20),(22,9),(19,13),(21,14),(18,11)。
本文實(shí)驗(yàn)平臺(tái)配置為Windows10操作系統(tǒng),顯卡是trx2080ti,CPU是i9 9900k,內(nèi)存16 GB,程序設(shè)計(jì)語言為Python,使用了Darknet框架。訓(xùn)練集和測試集分別包含4 200張和1 060張扣件圖像。
由于本文扣件圖像均來自線陣相機(jī)拍攝,圖像分辨率很高,研究中即統(tǒng)一將圖像分辨率調(diào)為608×608作為網(wǎng)絡(luò)輸入分辨率。訓(xùn)練階段基礎(chǔ)學(xué)習(xí)率為0.000 01,權(quán)重衰減0.000 05,批量大小為64,動(dòng)量為0.9。在該參數(shù)設(shè)置下,對比了傳統(tǒng)YOLO與本文使用的改進(jìn)YOLO的訓(xùn)練過程中的損失值的變化,結(jié)果如圖7所示。
圖7 損失值曲線圖
由圖7中可以看出,隨著迭代次數(shù)的增加,兩網(wǎng)絡(luò)的損失值均迅速降低,但很明顯改進(jìn)YOLO的損失值收斂得更低、為0.2左右,但未改進(jìn)過的損失值明顯高于0.5。因此從損失值上就可直接反映出改進(jìn)YOLO算法的模型更加理想,檢測準(zhǔn)確性和速度更加符合實(shí)驗(yàn)要求。
當(dāng)進(jìn)行網(wǎng)絡(luò)訓(xùn)練達(dá)30 000次左右時(shí),損失值收斂到0.2左右且穩(wěn)定,這時(shí)將測試集中的圖像傳送至訓(xùn)練好的網(wǎng)絡(luò)中進(jìn)行測試驗(yàn)證,選取部分測試結(jié)果截圖如圖8所示。
同樣將該測試樣本輸入到未經(jīng)改進(jìn)過的網(wǎng)絡(luò)中進(jìn)行測試,得出的結(jié)果部分截圖如圖9所示。
(a) 截圖1 (b) 截圖2 (c) 截圖3 (d)截圖4
(a) 截圖1 (b) 截圖2 (c) 截圖3 (d)截圖4
由測試結(jié)果可知,經(jīng)過改進(jìn)的網(wǎng)絡(luò)識(shí)別準(zhǔn)確度均獲得較大提高,對于有遮擋的道岔區(qū)段的扣件識(shí)別準(zhǔn)確度由83%提高到98%;由圖8(b)和圖9(b)可以看出改進(jìn)后的網(wǎng)絡(luò)目標(biāo)識(shí)別框的位置更加精準(zhǔn);由圖8(a)和圖9(d)可知數(shù)據(jù)集的增廣使得網(wǎng)絡(luò)對非正常狀態(tài)的扣件識(shí)別準(zhǔn)確度由89%提高到96%。為了更好地觀察改進(jìn)前后的對比,對測試集的結(jié)果加以統(tǒng)計(jì),其中涉及的主要參考指標(biāo)為平均精度值(mAP),查全率和查準(zhǔn)率[12],對比結(jié)果見表1。
表1 性能參數(shù)對比
提出一種YOLO改進(jìn)算法的扣件狀態(tài)檢測方法,通過對非正常狀態(tài)扣件圖像進(jìn)行數(shù)據(jù)增廣操作解決了原數(shù)據(jù)集類別不平衡問題,利用K-means聚類分析對檢測框進(jìn)行研究,提高了目標(biāo)框位置的精度。由于所拍圖像并非實(shí)驗(yàn)室環(huán)境下,圖像中扣件與背景差異甚小,傳統(tǒng)YOLO網(wǎng)絡(luò)對此處理容易丟失特征信息,所以本文對多尺度的特征進(jìn)行了有效融合,并且針對不同特征通過賦予不同權(quán)重,保證特征信息得到充分可靠的表現(xiàn)。最后通過實(shí)驗(yàn)仿真給出了在同一數(shù)據(jù)集下的傳統(tǒng)YOLO與改進(jìn)YOLO的訓(xùn)練結(jié)果對比。數(shù)據(jù)顯示改進(jìn)后的網(wǎng)絡(luò)損失值相較之前收斂更快且更低,在檢測速度與準(zhǔn)確度上都有明顯提升,其中查全率達(dá)到95.2%,平均精度值達(dá)到96.7。但是仍需指出,該模型都是基于靜態(tài)圖像處理的結(jié)果,如何對動(dòng)態(tài)扣件視頻進(jìn)行檢測將是后續(xù)的主要研究方向。