徐寶康,鄭樹彬,2,戚瑋瑋,2,李立明,2,丁亞琦
(1 上海工程技術大學 城市軌道交通學院,上海 201620;2 上海工程技術大學上海市軌道交通振動與噪聲控制技術工程研究中心,上海 201620;3 上海地鐵維護保障有限公司車輛分公司,上海 200235)
軌道車輛的螺栓狀態檢測是保障列車安全運營的一項重要檢修工作,地鐵車輛段主要由簡單直接的人工巡檢完成,但工人長時間工作造成的視覺疲勞和精力下降會導致效率低下、誤檢率高等問題。目前已有地鐵維保公司安裝了基于機器視覺的檢測設備,但采用的檢測算法誤檢率過高,檢測算法的性能亟需提升。
近年來國內外對利用機器視覺實現螺栓狀態檢測技術進行了研究。目前主要檢測方法是利用圖像處理技術對螺栓特征進行識別檢測,如文獻[1]采用混合高斯模型剔除正常螺栓,利用SIFT提取螺栓邊緣和紋理等特征。而傳統圖像處理方法提取的是淺層特征信息,存在定位不準、誤漏率高的缺陷。有學者采用基于深度學習來建立目標檢測模型,如文獻[2]提出利用Faster Rcnn級聯的輸電塔螺栓缺失檢測方法。文獻[3]利用SSD算法定位螺栓并切割,再利用YOLOv3檢測缺陷螺栓。深度學習方法雖較前述方法優勢突出,但針對特定小目標檢測仍存在不足。
目標檢測算法按檢測策略分為2類。一類是檢測和定位分2次完成的兩階段檢測算法,例如Faster Rcnn、Mask Rcnn,此類算法精度高但檢測速度較慢。另一類是直接一次完成檢測定位的單階段檢測算法,例如SSD、YOLO系列,此類方法檢測速度快,但精準度偏低。其中,YOLOv4對檢測精度與時效性較均衡,但實際工程檢測中需根據數據集具體特征進行優化。針對螺栓檢測的具體問題特征來改進YOLOv4,采用自適應空間特征融合(ASFF)技術對多尺度特征地圖進行融合,改善各特征比例固定的性質,提升檢測性能。將改進YOLOv4算法在實驗數據集上訓練,以期縮短訓練時長,改進檢測精度及速度,并在驗證集上驗證、對比檢測結果。
YOLOv4算法由Alexey等人提出,可分為主干網絡、尺寸變換模塊和檢測器預測模塊三部分,具體結構及相應模塊如圖1所示。

圖1 YOLOv4結構圖Fig.1 YOLOv4 structure diagram
主干網絡的結構部分融入CSPNet的設計思路,在ResNet殘差結構基礎上添加CSP結構構成CSPX基本組件,并采用函數保證較好的信息流動性。整個網絡共52層,通過卷積、下采樣、特征合并、殘差的堆積復用,在DarkNet53基礎上構成新主干網絡結構。
尺寸變換模塊主要由SPPNet、FPN+PANet構成,如圖1所示。經SPPNet并行池化再合并所產生的固定大小特征更有效地擴張主干特征的提取范圍,見圖1中SPP模塊。FPN+PANet結構中,FPN輸出更多的強語義特征,PANet輸出更多的強定位特征,2種網絡將2種特征通過不同主干與檢測層實行參數合并達到融合目的,高底層間過長的信息傳輸路徑也因此縮短,減少信息衰減,見圖1中PANet模塊。
檢測器預測模塊是對輸出特征進行解碼。首先使用網格劃分圖片,以網格為預測單位確認網格中目標,對存在目標的網格生成先驗框,根據特征信息得出目標中心點對網格左上角的偏移量,再加上對應網格的位置信息,其中預測置信度和預測類別概率的乘積為預測結果的得分,通過NMS排除冗余預測框,設定預測閾值,在逐層篩選后,最終得到預測結果。
檢測模型的改進分為2個方向:模型的檢測策略改進和YOLOv4網絡改進。整體的檢測策略使用二級級聯的方法,分2步實現螺栓目標的定位與分類;YOLOv4網絡改進是對算法和結構的優化,上述的二級級聯的2步檢測均采用此改進后的YOLOv4作為檢測算法。
轉向架側梁螺栓的識別特征較為簡單,地鐵車身在日常運行過程中會產生臟污斑點,其外形和螺栓目標相似,且車身圖像內容復雜,更容易導致誤檢率增加的問題。觀察地鐵車輛側身圖像,可發現螺栓目標所處位置較集中,構成規則的矩形陣列,因此可將整體看作為一個目標。本次研究中,就可以采用級聯結構來檢測螺栓矩形陣列,對螺栓的目標檢測由粗到細地進行定位和分類。檢測系統的二級級聯示意如圖2所示。由圖2可知,Stage 1中首先使用下述改進后的YOLOv4算法對整體圖像進行粗定位,得到螺栓矩形陣列的目標區域,輸入圖像調整為900×900,由于螺栓矩形陣列面積大且特征明顯,所以容易識別。該輸出作為Stage 2的輸入再次對螺栓目標進行定位和分類,因此在Stage 2中基于改進YOLOv4的定位分類體系結構被級聯。通過此級聯可降低螺栓目標的誤檢率,提高檢測精度和召回率。

圖2 檢測系統的二級級聯示意圖Fig.2 Schematic diagram of two level cascade of detection system
2.2.1 先驗框的聚類與設定
根據數據集的特征先將先驗框尺度聚類為2類,再按尺寸大小依次分配給3個特征層。由于本實驗的數據集目標尺寸變化率極小,統計出螺栓所占像素為250×260左右,面積占原圖2000×4096的0.79%,可知螺栓尺寸單一且歸屬于小目標。原算法聚類得到的先驗框是為了覆蓋各種尺寸目標,不適用于本實驗數據集。改進的算法先根據的畸變程度曲線,如圖3所示。由圖3可見,依據肘部法可得最佳值為2,經K-means++對基于輸入尺寸416×416的螺栓尺寸數據進行聚類,得到尺寸為(30.4,3.1)和(34.7,42.4),為了計算簡便取整數值,將先驗框0~5設為(30,34),6~8設為(35,42)。先驗框的設定影響訓練過程的速度,依據數據集的特點獲取尺寸可加快模型回歸速度。

圖3 SSE-k畸變程度曲線Fig.3 SSE-k distortion degree curve
2.2.2 先驗框的回歸改進
自適應生成先驗框位置如圖4所示。原算法是以每網格的左上角生成先驗框,目標由其中心點所處的網格負責預測。而目標中心點位置隨機,常會出現先驗框中心起點坐標遠離目標中心點坐標,這種情況下則需要網絡大量負反饋調整預測框位置降低值以提高交并比,因此影響了回歸效率。改進網絡提出根據目標中心點的具體坐標,在算法中通過四舍五入函數(,),選取最靠近中心點的網格角點作為生成先驗框起點中心坐標,再通過特征層的調整策略進行網絡參數的回歸更新。此時網格的4個角點均可為先驗框的生成位置,邊界框的位置計算方式依據4種生成位置選擇其計算方式,以圖4為例先驗框生成位置為右下角,其對應的預測框實際位置計算參見式(1):

圖4 自適應生成先驗框位置Fig.4 Adaptively generating priori box position

其中,c、c為網格單位長度;t、t為坐標變換系數;b、b為預測框的實際位置。
該改進智能選擇生成先驗框的初始位置,有效提高網絡的訓練效率。
2.2.3 網絡結構改進—多尺度特征融合模塊
對于處理特征融合方式,原YOLOv4網絡在FPN基礎上融入了PANet,縮短了高低層間特征傳遞路徑,保證強語義及強定位信息的融合。但單級檢測模型多直接使用或的方式融合特征,而各特征尺度是不一致的,上述方式并不能充分利用各尺度的不同特征,一定程度限制了特征融合的效能。改進的算法在此基礎上將網絡的輸出特征進行ASFF操作,通過學習不同尺度特征層之間的聯系參數來處理上述問題,在空間層面,沖突信息被限制傳遞,梯度反傳時使其不一致性得以抑制,各特征之間的比例問題得到改善,同時降低推理消耗,提高了網絡對螺栓檢測的精度。
圖5描述了由不同特征尺寸融合的方式,由13輸出,3層特征分別與權重參數相乘再求和,得到新的融合特征。其中,權重參數是通過網絡自適應地學習獲得,只保留有用的信息進行組合,可看作是代表每個位置上不同層次特征的導入程度,有效地避免不同尺度特征融合時出現的空間矛盾問題,從而增強了特征表示,此處需要用到的數學公式依次可寫為:

圖5 自適應空間特征融合示意圖Fig.5 Schematic diagram of adaptive spatial feature fusion



實驗使用圖像由上海地鐵九號線提供,正常及丟失螺栓這2個檢測目標分別為正負樣本。先將數據集通過圖6流程實現擴充,再使用黑色涂抹螺栓區域模擬丟失螺栓以解決負樣本稀少問題。圖像由定點相機拍攝,轉向架在圖像中位置不變且上下部位均是背景區域,在訓練過程中將此區域裁剪,原圖的尺寸大小變為2000×1400,裁剪后可減少冗余計算。共采集圖像1269張,其中正常螺栓4155個,丟失螺栓311個;經過數據處理后達3500張,其中正常螺栓14938個,丟失螺栓1526個。

圖6 數據集擴增與預處理Fig.6 Dataset amplification and pretreatment
硬件配置:CPU為Core i7-8700,GPU為RTX 2080,RAM32 G;軟件環境為python3.6,訓練框架為Keras2.1.5+Tensorflow1.3.1,OS為Windows10,結合OpenCV等第三方庫,CUDA10.0加速。
輸入尺寸為416×416,設置150次,采用分階段遷移訓練策略,先凍結前層參數完成70個訓練,解凍再訓練剩余,、初始學習率、動量分別設置為6、0.0001及0.9。采用批梯度下降策略調整學習率,權重衰減值為0.00001。數據集按9:1的比列劃分為訓練集、測試集,另留589張圖像作后續測試集,包含正常螺栓1495個,丟失螺栓434個。
采用平均精確度、平均精度均值、召回率、預測時長、每秒傳輸幀數,即作為性能評價指標,計算公式具體如下:

采用訓練時長作為模型訓練開銷的評價指標,時長越短說明模型訓練越高效。
圖7為改進YOLOv4算法訓練過程中變化曲線。設置迭代150輪,第一輪訓練結束損失值近680,隨后劇烈下降,在20~80世代緩慢下降。凍結前層網絡經過70個后,解凍訓練值再次下降,最終穩定于10,觀察曲線可知訓練收斂理想。

圖7 Loss值收斂情況Fig.7 Convergence of the Loss value
為剖析對比改進措施對原算法的影響狀況,采用消融實驗方法將原算法結合不同改進措施驗證性能,裁剪成4組算法分別進行訓練及測試,結果見表1。表1中,“√”表示相應改進措施被采用。

表1 不同算法改進措施的對比Tab.1 Comparison of improvement measures of different algorithms
由表1可知,改進算法1先根據確定值,再通過聚類算出尺寸,其訓練時長和有明顯改善,時長縮短超0.5 h,從26幀加速到37幀,結果說明依據檢測目標尺寸調整先驗框對算法速度有提升效果。改進算法2改進先驗框回歸策略,進一步加快訓練和預測速度,和值無明顯變化。算法3加入ASFF模塊,針對不同尺度特征的不一致性自適應地學習獲取融合所需用的權重參數,以解決空間矛盾問題,提升了3.7%,值提升了1.1%,證明ASFF模塊的加入對檢測效果有重大影響,也有小幅提升,訓練時長有小幅縮短,在算法體量增加的情況下速度仍有較好表現,有效提升檢測效果。算法4采用級聯的方法分2步檢測螺栓目標,提升較小,值再次得到1的提升,誤檢率得以降低。
進一步驗證改進算法的性能,分別對原算法和改進算法進行不同輪數和不同數量訓練集的訓練及驗證,結果見圖8。圖8中,柱狀圖代表原算法YOLOv4,折線圖代表改進YOLOv4,迭代輪數劃分為70、90、110、130、150,訓練集劃分為700、1000、1750、3500。圖8(a)中,隨著迭代輪數遞增,2種算法值均在提高,總體上改進的YOLOv4算法均高于原算法,且在早期第70輪時已達到90%以上的。可見算法的改進能夠更高效地提取及融合特征,加快特征學習,即在較少迭代的情況下也能較快達到比原算法更高的檢測效果。圖8(b)與圖8(a)趨勢相似,隨著迭代輪數遞增,值皆隨之遞增,且改進算法均高于原算法,對于小樣本訓練集的學習,相較于原算法也具有更好的檢測結果,對700個圖像的學習已能達到87.6%,高出原算法7.9%,再次證明改進算法對圖像特征學習的高效性及強大的泛化能力,綜上說明算法的改進具有重要的性能影響。

圖8 原算法與改進算法的檢測結果對比Fig.8 The detection results of the original algorithm and the improved algorithm
近年來存在的熱門目標檢測模型較多,針對上述驗證集本文將改進的YOLOv4算法與其他主流算法進行了對比,結果詳見表2。由表2可知,算法Faster-RCNN和改進YOLOv4的與值相較于其他檢測算法都表現出明顯優勢,分別達到了99.6%和99.1%,但前者的檢測速度最慢,而改進的算法對比原算法快出5幀/s,超出了Faster-RCNN的4倍,檢測速度表現突出,其訓練時長及算法存儲量相較于其他算法也處于適中水平。SSD訓練所需時長較短,但其算法存儲量與RetinaNet都相對較大,檢測性能分別低于改進YOLOv4的6.5%、5.8%。觀察表2數據可知,改進YOLOv4綜合水平在原算法的基礎上提升明顯,其檢測效果出色,性能水平較高,所以算法改進的優勢進一步得以驗證。

表2 各主流算法檢測結果Tab.2 Detection results of various mainstream algorithms
圖9展示了各主流算法的實測對比圖,首列為人工手動圖像標注。算法在訓練時模型學習能力弱、對圖像特征提取不夠充分等性能問題都會導致目標誤漏檢測情況。參見圖9(b)可以看到,SSD和RetinaNet存在丟失螺栓的漏檢問題,參見圖9(c)中可知,螺栓顯示不完整,這也分別表明YOLOv3和YOLOv4出現了漏檢問題。觀察改進YOLOv4算法表現,其目標檢測、且定位精準,不完整目標也可得到正常高置信度識別,整體檢測性能優于其他檢測算法。


圖9 各主流算法實測效果對比Fig.9 Comparison of results of various mainstream algorithms
本研究針對地鐵車輛螺栓檢測問題提出一種基于改進YOLOv4的算法,旨在解決地鐵螺栓圖像誤/漏檢率高的問題。研究中,對先驗框設置和回歸方式進行改進,將PANet網絡與ASFF技術進行融合,抑制了梯度反傳的不一致,進而改善特征的比例不變性,采取二級級聯分步檢測螺栓目標的方法降低誤檢率。根據實驗結果可知,改進算法值達到99.5%,達到99.8%,且檢測速度與原算法相當,對比現存的主流目標檢測算法綜合性能突出,可靠性和檢測精度均得到提升。此外,本文選用地鐵車輛轉向架螺栓作為研究對象,可進一步開展對軸箱及車底等其他部位、類型的螺栓檢測研究工作。