朱 均
(成都維創(chuàng)軌道交通特種設(shè)備有限責(zé)任公司,四川成都 610000)
隨著我國城市軌道的快速發(fā)展,城市地鐵運行的安全問題日益受到重視。螺栓連接的穩(wěn)定性決定了車體各部件能否正常運行。近年來,國內(nèi)外學(xué)者對螺栓松動檢測問題進(jìn)行了積極探索。
于俊輝利用采集系統(tǒng)采集與螺栓相耦合部件在螺栓發(fā)生松動現(xiàn)象時的振動信號,對采集的信號用快速傅里葉變換和小波分析法做進(jìn)一步處理,結(jié)合頻率響應(yīng)特征和時域上能量分布特征來完成螺栓連接松動特征的提取[1]。廖如天提出了一種全局信息融合的R-FCN(region-based fully convolutional networks)網(wǎng)絡(luò)結(jié)構(gòu),再結(jié)合霍夫變換,實現(xiàn)螺栓位置檢測[2]。王九龍等提出基于STFT-IP(Short-time Fourier Transform,STFT)時頻特征的螺栓松動識別方法,利用短時傅里葉變換處理振動信號獲得時頻圖,再通過對振動時的信號特征分析來完成對松動狀態(tài)的檢測[3]。
目前,大部分無損螺栓松動檢測算法需要額外的傳感器或者加入人工標(biāo)注線來輔助松動判斷,而且只能針對單一歷史對比檢測。
本算法首先利用軌旁兩側(cè)的面陣相機采集轉(zhuǎn)向架圖像數(shù)據(jù),引入改進(jìn)的YOLOv4(You Only Look Once,YOLO)網(wǎng)絡(luò)對車體各關(guān)鍵部位螺栓區(qū)域進(jìn)行粗定位和精定位。其次將采集的所有螺栓數(shù)據(jù)隨機兩兩組合,并分為松動和不松動兩類,構(gòu)成訓(xùn)練數(shù)據(jù)集。利用改進(jìn)的深度神經(jīng)網(wǎng)絡(luò)的聚合殘差變換網(wǎng)絡(luò)(Aggregated Residual Transformations for Deep Neural Networks[4],ResNeXt)對其進(jìn)行訓(xùn)練、預(yù)測。最后,對相關(guān)算法分別進(jìn)行實驗驗證,結(jié)果證明了方法的有效性。基于ResNeXt網(wǎng)絡(luò)的多歷史螺栓松動檢測算法流程如圖1所示,通過車側(cè)設(shè)備采集車體圖片,經(jīng)過降噪標(biāo)準(zhǔn)化處理獲得噪聲小、運算量少的標(biāo)準(zhǔn)圖像,用改進(jìn)的YOLOv4進(jìn)行區(qū)域定位,并提取區(qū)域圖片;通過改進(jìn)的YOLOv4對區(qū)域中的螺栓進(jìn)行定位;再利用優(yōu)化的ResNeXt網(wǎng)絡(luò)對組成松動與非松動的數(shù)據(jù)進(jìn)行訓(xùn)練。最后用相機記錄同車輛、同位置的不同歷史中的螺栓圖像,并用最終的松動檢測模型進(jìn)行檢測。
圖1 算法流程
為了得到螺栓數(shù)據(jù)集,在軌旁安裝4只面陣相機,完成實時圖片數(shù)據(jù)采集。圖2為軌旁面陣機分布圖,本算法采集得到的構(gòu)建數(shù)據(jù)集均為2K圖像。為了更準(zhǔn)確定位到螺栓,需要減少圖片其他物體的特征干擾。對此,本文提出兩個步驟完成對螺栓的定位,首先對車體圖像中螺栓所在的關(guān)鍵區(qū)域進(jìn)行定位,在待檢測區(qū)域的基礎(chǔ)上對螺栓進(jìn)行進(jìn)一步的定位[5]。
圖2 軌旁面陣相機分布
YOLOv4是在YOLOv3基礎(chǔ)上改進(jìn)而來,屬于一步檢測算法。檢測時,將待測圖片分割成n×n的網(wǎng)格,每個網(wǎng)格負(fù)責(zé)不同的區(qū)域,當(dāng)待檢測目標(biāo)的中心落在某個網(wǎng)格中,則由該網(wǎng)格負(fù)責(zé)完成對目標(biāo)的檢測[7]。YOLOv4的主干網(wǎng)絡(luò)CSPDarknet53是算法的核心。YOLOv4在上一個YOLO版本基礎(chǔ)上,引入跨階段部分(Cross Stage Partial,CSP)結(jié)構(gòu),這兩部分結(jié)構(gòu)具有特殊的映射,包括主通道的特征圖和走捷徑輸出的特征圖。同時為了提高準(zhǔn)確率,再合并多階段層次結(jié)構(gòu)。激活函數(shù)選擇方面使用的是比ReLu計算量更大的Mish函數(shù),其目的是更精準(zhǔn)地檢測物體。
與YOLOv3不同,YOLOv4構(gòu)建了空間金字塔池化結(jié)構(gòu)(Spatial Pyramid Pooling,SPP)和更好結(jié)合上下語義的路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PANet)結(jié)構(gòu),如圖3所示,其中,P1~P5代表不同的層數(shù)。為了更好地增加特征提取的感受野,分離出顯著的上下文特征。SPP結(jié)構(gòu)是對特征層P5輸出的特征圖經(jīng)過卷積后的結(jié)果進(jìn)行多種尺度的特征信息最大池化處理。其池化核大小分別為1×1、5×5、9×9、13×13。PANet結(jié)構(gòu)包括不同的卷積、上采樣、下采樣、跨層的特征層融合構(gòu)成的循環(huán)金字塔結(jié)構(gòu)。所以YOLOv4的網(wǎng)絡(luò)結(jié)構(gòu)中PANet能夠?qū)崿F(xiàn)高層特征與底層特征信息融合,來達(dá)到提高車體螺栓的檢測率的目的。最后,對每個輸出的特征層的3個先驗框進(jìn)行判別,判斷是否包含目標(biāo)以及目標(biāo)種類,并進(jìn)行非極大值抑制處理[8]。
圖3 YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv4的損失函數(shù)見公式(1),其損失函數(shù)是由回歸框預(yù)測位置的誤差、置信度誤差和目標(biāo)種類誤差構(gòu)成[9]。
式中,IOU為真實面積與預(yù)測面積的交并比;A和B為預(yù)測目標(biāo)與真實目標(biāo);ρ2(Actr,Bctr)為兩個中心點的歐式距離;m為同時包含預(yù)測框和真實框的最小封閉區(qū)域的對角線距離[6];a為正數(shù)是度量的參數(shù);v為度量長寬比的相似性;2為網(wǎng)格數(shù);B為網(wǎng)格中的先驗框數(shù)量。為預(yù)測的邊界框中存在目標(biāo)的表達(dá)式,為預(yù)測的錨框里不具有目標(biāo)的表達(dá)式,預(yù)測置信度。為真實置信度。c是檢測目標(biāo)的種類,代表檢測目標(biāo)的類別數(shù),是指預(yù)測為真實目標(biāo)的概率,為單元格中目標(biāo)屬于類別c的實際概率[6]。
αv的作用是讓模型預(yù)測的寬和高更快地收斂于真實的寬和高。當(dāng)真實框和預(yù)測框的寬和高相似,則v為0,該懲罰項就不起作用。其表達(dá)為公式(2)和(3)。
式中,wgt為真實框?qū)挾?,hgt為真實框高度,w為預(yù)測框?qū)挾?,h為預(yù)測框高度。
1.3.1 K-means聚類
在原始的YOLOv4算法中,其先驗框的大小是依據(jù)在COCO數(shù)據(jù)的目標(biāo)平均尺寸大小設(shè)定的。由于COCO數(shù)據(jù)集包含的目標(biāo)多樣,目標(biāo)的長寬比例不同,其先驗框尺寸大小也不同。對于車體的螺栓而言,尺寸基本固定,因此需要新的大小的先驗框。而通過K-means算法對于語義分割后的數(shù)據(jù)集的anchor大小進(jìn)行聚類,得到與螺栓特征比例相似的尺寸大小與聚類中心。并用聚類中心與標(biāo)簽的交并比IOU(1,C)作為聚類的相似度參數(shù)來代替原來的歐式距離以減少誤差。聚類距離計算公式如下[10]:
1.3.2 網(wǎng)絡(luò)結(jié)構(gòu)改變
本文引入了注意力機制中典型的SENet[11](Squeeze and Excitationn)擠壓激勵模塊。對于輸入二維圖像來說,兩種不同的維度分別是圖像的尺度空間和通道。該機制通過添加各個通道的影響程度的權(quán)重,針對不同的視覺檢測任務(wù)增強或者刪除對應(yīng)無效的通道,更好對有效特征進(jìn)行提取。
該結(jié)構(gòu)首先進(jìn)行壓縮操作,對所有通道特征圖做一個全局平均池化,生成1×1×c特征圖,其中每個特征圖都具有全局特征信息。此步驟將特征通道變成包含所有維度通道特征的均值,H×W為通道空間維度大小,其表達(dá)式為公式(5):
式中,Zk為產(chǎn)生的特征圖壓縮向量,μij為第i組的第j個特征向量。
其次是激勵操作,通過一個2層FC層和Sigmoid激活來實現(xiàn),見公式(6)。
式中,S為激勵操作的輸出,σ為激活函數(shù)sigmoid,F(xiàn)ex為對特征圖進(jìn)行特征提取的操作,z為壓縮后的特征向量,W為權(quán)重參數(shù),W1和W2分別為兩個全連接層對應(yīng)的參數(shù),δ為激活函數(shù)ReLU。然后對降維后的特征圖進(jìn)行升維操作。
最后是重新賦值權(quán)重,對每個通道重新賦值權(quán)重到之前的輸入特征上。再基于之前的通道維度,對原始特征的權(quán)重重新分配。
式中,uc為通道輸出特征值,sc為此通道反饋計算出的權(quán)重,F(xiàn)scale(uc,sc)為對特征張量進(jìn)行特征拼接的操作。
圖4為SEnet結(jié)構(gòu)圖,其中,c為通道數(shù),r為組數(shù),h和W分別為特征圖的寬和高。
圖4 SEnet結(jié)構(gòu)
改進(jìn)后的YOLOv4結(jié)構(gòu)如圖5所示,其中,P1~P5為每個大殘差神經(jīng)網(wǎng)絡(luò)塊的層數(shù),Conv為卷積操作,SPP為空間金字塔池化結(jié)構(gòu),SE為激勵擠壓模塊。
圖5 改進(jìn)YOLOv4結(jié)構(gòu)
對車體相關(guān)待檢測區(qū)域進(jìn)行定位,如圖6所示。在對車體關(guān)鍵區(qū)域進(jìn)行劃分的基礎(chǔ)上,為了提高定位模型的魯棒性,利用軌旁面陣相機采集得到不同天氣、不同光照條件下的地鐵轉(zhuǎn)向架以及車體高清圖像600張,并在保持橫縱比的情況下對原始高清圖像進(jìn)行尺寸統(tǒng)一,以適應(yīng)模型更好的提取特征和學(xué)習(xí)。使用labelImg工具完成對車螺栓區(qū)域圖像數(shù)據(jù)的標(biāo)注,用來訓(xùn)練改進(jìn)后的YOLOv4定位模型。
圖6 車體關(guān)鍵區(qū)域圖
對待測區(qū)域定位后,利用預(yù)測定位框的相對坐標(biāo),從原始高清圖像中截取定位到的所有包含螺栓的區(qū)域。再次利用labelImg圖像標(biāo)注工具對螺栓區(qū)域中的螺栓進(jìn)行標(biāo)注,以構(gòu)建螺栓定位數(shù)據(jù)集,如圖7所示。利用該數(shù)據(jù)集訓(xùn)練改進(jìn)的YOLOv4螺栓定位網(wǎng)絡(luò)對關(guān)鍵區(qū)域內(nèi)的所有螺栓進(jìn)行定位,從而組成螺栓松動判定數(shù)據(jù)集。
圖7 螺栓定位效果圖
為了提高模型的魯棒性和泛化性,所有采集的螺栓隨機兩兩組合,再劃分為松動的正樣本和非松動的負(fù)樣本,如圖8所示。
圖8 螺栓正負(fù)樣本
由于螺栓的外形特征豐富多樣,并且部分螺栓在外形上存在極大的相似性,為了提升圖像的識別精度,需要提取更豐富的特征。ResNeXt借鑒和繼承了Resnet和Inception的優(yōu)點,在提升網(wǎng)絡(luò)的精度下,保持同樣的參數(shù)量。ResNeXt結(jié)構(gòu)包括一系列拆分和融合的分組卷積[12]。其中Resnet中較大的卷積核被省去,取而代之的是多組小尺寸的卷積核組成的一種平行的結(jié)構(gòu)。利用多組的分組卷積方式能使得模型具有更高的精度。ResNeXt結(jié)構(gòu)有4種類型,如圖9所示,其中,RB為一個完整的殘差網(wǎng)絡(luò)塊。
圖9 4類殘差模塊結(jié)構(gòu)
ResNeXt-50與Resnet50相比參數(shù)量少了5×105,同時速度更快。與Resnet101相比速度更快,所以本文選擇ResNeXt-50作為主干提取網(wǎng)絡(luò)。
在使用ResNeXt-50網(wǎng)絡(luò)時,并不是所有通道提取的特征信息都是有效的,無效部分大大影響了螺栓松動檢測分類的準(zhǔn)確率。針對這個問題,同樣引用SENet,使得網(wǎng)絡(luò)能夠自適應(yīng)學(xué)習(xí)得到每個特征通道的影響權(quán)重,通過重新賦值調(diào)整通道對有效特征提取的權(quán)重,降低無效特征提取通道占比。對于低質(zhì)量螺栓圖像,可以使模型專注于具有更多能代表目標(biāo)信息的通道,抑制無用的特征信息。改進(jìn)后的結(jié)構(gòu)如圖10所示,其中,RB為完整的殘差網(wǎng)絡(luò)塊,F(xiàn)C為全連接層。
圖10 改進(jìn)后的ResNeXt網(wǎng)絡(luò)結(jié)構(gòu)
為了提升螺栓松動檢測模型的魯棒性,避免模型過擬合,先對單個螺栓進(jìn)行亮度值改變和灰度變換,再對一對螺栓進(jìn)行concatenate拼接然后再進(jìn)行隨機旋轉(zhuǎn)、平移、翻轉(zhuǎn)等操作。對于螺栓的特征比較明顯,不必用過深的特征提取層,本文采用ResNeXt-50網(wǎng)絡(luò)作為主干網(wǎng)絡(luò),用Resnet50為主干網(wǎng)絡(luò)的孿生網(wǎng)絡(luò)作為對比網(wǎng)絡(luò)。同時針對定位導(dǎo)致的螺栓偏差問題,采用不同尺寸的中心裁剪,再進(jìn)行訓(xùn)練比對。
為了驗證算法有效性,對提出的算法進(jìn)行實驗驗證和現(xiàn)場實際效果驗證。
處理器Intel i9-10900X,內(nèi)存32G,顯卡RTX3090,顯存24G,操作系統(tǒng)Windows10專業(yè)版,深度學(xué)習(xí)框架PyTorch和Darknet。為了提高螺栓定位模型及松動檢測模型的收斂速度,網(wǎng)絡(luò)訓(xùn)練參數(shù)設(shè)置見表1,其中,Batchsize為每一個送進(jìn)網(wǎng)絡(luò)訓(xùn)練的批量大小,StepLR為使用固定步長衰減策略,Adam為自適應(yīng)梯度下降。
表1 網(wǎng)絡(luò)訓(xùn)練參數(shù)設(shè)置
采用一致的量化評價標(biāo)準(zhǔn)能夠?qū)Ρ瘸鐾愃惴ǖ男阅艿膬?yōu)缺點。本文螺栓松動判定算法采用精確率(Precision)和召回率(Recall)兩個評價指標(biāo),分別由式(8)和式(9)表示。
式中,TP為被正確分類到正樣本的個體數(shù)量,F(xiàn)P為被錯誤分類到正樣本的個體數(shù)量,F(xiàn)N為被錯誤分類到負(fù)樣本的個體數(shù)量[13]。
對采集軟件采集的260張地鐵車體圖像按5∶1劃分訓(xùn)練集和驗證集。采用mAP作為模型算法的好壞的評價指標(biāo),mAP為平均精讀,先計算每一類物體的AP,相加后除以檢測的目標(biāo)種類數(shù)。AP為單一目標(biāo)的檢測精度。實驗分別采用SSD,YOLOv3,YOLOv4和改進(jìn)后的YOLOv4進(jìn)行訓(xùn)練,其螺栓區(qū)域?qū)Ρ冉Y(jié)果見表2。
表2 螺栓區(qū)域定位模型mAP對比
對定位到的區(qū)域再進(jìn)行螺栓定位訓(xùn)練、預(yù)測。其定位對比見表3。
表3 螺栓定位模型mAP對比
通過對4個網(wǎng)絡(luò)的橫向?qū)Ρ?,可以看出對螺栓區(qū)域定位而言,由于區(qū)域差異大,特征明顯,其定位效果都不錯。改進(jìn)的YOLOv4在原有基礎(chǔ)上提高1.1%。對于螺栓定位來說,YOLOv4網(wǎng)路模型由于采用了新的CSPDarknet53的網(wǎng)絡(luò)結(jié)構(gòu),比YOLOv3特征提取能力更強,同時具備多尺度檢測優(yōu)勢,提高了對螺栓的檢測精度,其檢測精度比YOLOv3提高5.4%。而改進(jìn)后的YOLOv4更加專注有效特征的提取,其精度在原來基礎(chǔ)上提高3.0%,有效減少螺栓定位偏差現(xiàn)象。松動模型是通過定位后對螺栓進(jìn)行裁剪,最后resize統(tǒng)一尺寸。螺栓定位偏差會導(dǎo)致螺栓松動檢測效果變差。圖11為當(dāng)前和歷史中螺栓定位偏差效果圖。
圖11 當(dāng)前歷史螺栓定位偏差效果
根據(jù)螺栓定位,對螺栓進(jìn)行截取。本算法訓(xùn)練集由定位的螺栓隨機兩兩配對組成正負(fù)樣本構(gòu)成,驗證集、測試集都由配對后數(shù)據(jù)集的20%構(gòu)成。
本算法應(yīng)用于國內(nèi)某地鐵線路車輛段檢測以驗證效果。該地鐵線路平均每輛車548顆需檢測螺栓,10輛過車共計5480顆螺栓。測試結(jié)果見表4。
表4 某地鐵線路的測試結(jié)果
本文提出了基于ResNeXt網(wǎng)絡(luò)多歷史螺栓松動檢測算法,能夠有效檢測地鐵車輛上的螺栓。該算法包括引入改進(jìn)的YOLOv4網(wǎng)絡(luò)對車體各關(guān)鍵部位螺栓區(qū)域進(jìn)行兩次定位;利用改進(jìn)的ResNeXt網(wǎng)絡(luò)獲取更加有效的目標(biāo)螺栓的特征。最后,對所提出的算法分別進(jìn)行實驗,結(jié)果證明了方法的有效性。本算法優(yōu)點是能檢測多歷史的螺栓松動,能夠檢測螺栓的緩慢松動情況。