陳金源,林群煦,鄒一鳴,鄭衡,劉凱,鐘程,李虎,黃挺博,李鵬
(五邑大學(xué) 軌道交通學(xué)院,廣東 江門 529020)
地鐵車輛的檢修關(guān)乎出行安全,其巡檢范圍分別為車頂、車側(cè)中、車側(cè)下和車底.目前地鐵車輛檢修的主要作業(yè)方式為傳統(tǒng)的人工巡檢,該方式存在效率低、工人勞動(dòng)強(qiáng)度大、漏檢等問題[1].為了提高巡檢效率、降低工人勞動(dòng)強(qiáng)度、杜絕漏檢,以地鐵車輛車側(cè)下巡檢為例,可以通過目標(biāo)檢測(cè)算法[2]對(duì)采集到的地鐵車輛車側(cè)下的圖像進(jìn)行處理后,輸出檢測(cè)識(shí)別的地鐵車輛車側(cè)下的關(guān)鍵結(jié)構(gòu),讓工人在線上對(duì)所識(shí)別出來的結(jié)構(gòu)一一進(jìn)行檢查,以達(dá)到線上巡檢的目的.線上巡檢因高效和便利的特性已在各行各業(yè)應(yīng)用[3].為了實(shí)現(xiàn)線上實(shí)時(shí)巡檢,要求使用的目標(biāo)檢測(cè)算法具有實(shí)時(shí)檢測(cè)的效果,由于地鐵車輛車側(cè)下外形結(jié)構(gòu)比較復(fù)雜,傳統(tǒng)的目標(biāo)檢測(cè)算法[4]不能準(zhǔn)確檢測(cè)識(shí)別,本文采用改進(jìn)的深度學(xué)習(xí)Faster-RCNN 算法作為地鐵車輛車側(cè)下各結(jié)構(gòu)的目標(biāo)檢測(cè)算法.
Faster-RCNN 算法[5]由GIRSHICK R 于2015 年提出,相比前作Fast-RCNN,使用RPN(Region Proposal Network)結(jié)構(gòu)代替SS(Selective search)算法來生成區(qū)域候選框,將整個(gè)流程統(tǒng)一整合到同一個(gè)CNN(Convolutional Neural Network)中以實(shí)現(xiàn)整個(gè)目標(biāo)檢測(cè)網(wǎng)絡(luò)端到端的訓(xùn)練.
雖然Faster-RCNN 性能優(yōu)越,但依然存在訓(xùn)練時(shí)間長(zhǎng)、整體模型參數(shù)量大、對(duì)計(jì)算設(shè)備要求高等問題.為了提升 Faster-RCNN 的檢測(cè)速度、降低訓(xùn)練過程中模型的參數(shù)量,不少學(xué)者對(duì)Faster-RCNN 的特征提取網(wǎng)絡(luò)VGG16 進(jìn)行了替換,如WIBOWO A 等[6]提出把原Faster-RCNN 特征提取網(wǎng)絡(luò)替換為更加輕量的網(wǎng)絡(luò)模型MobileNetV2(其網(wǎng)絡(luò)參數(shù)量只有VGG16 的三十二分之一);殷小芳等[7]提出用ResNet-101 網(wǎng)絡(luò)作為Faster-RCNN 的特征提取網(wǎng)絡(luò),并首次實(shí)現(xiàn)超深的網(wǎng)絡(luò)結(jié)構(gòu),首次提出了殘差模塊(Residual)、使用BN(Batch Normalization)層來加速訓(xùn)練;唐茂俊等[8]在殷小芳的基礎(chǔ)上增加了FPN(feature pyramid network)特征金字塔網(wǎng)絡(luò),把原Faster-RCNN 特征提取網(wǎng)絡(luò)由一層特征層輸出層改為五層特征層輸出層,以此增加Faster-RCNN 對(duì)小目標(biāo)的檢測(cè)能力.
MobileNetV2 網(wǎng)絡(luò)推理速度快、參數(shù)少,但有一定的精度損失;ResNet-101 網(wǎng)絡(luò)檢測(cè)精度高,但是推理速度慢、參數(shù)多,均不符合本文地鐵車輛車側(cè)下的結(jié)構(gòu)檢測(cè)識(shí)別要求.鑒于此,本文采用 YOLOV3 的特征提取網(wǎng)絡(luò) DarkNet53 作為Faster-RCNN 的特征提取網(wǎng)絡(luò),并在特征輸出層加入FPN 特征金字塔網(wǎng)絡(luò),DarkNet53 網(wǎng)絡(luò)模型結(jié)構(gòu)如圖1 所示.
圖1 DarkNet53 網(wǎng)絡(luò)結(jié)構(gòu)模型圖
DarkNet53 中的卷積層Convolutional 層與普通的神經(jīng)網(wǎng)絡(luò)卷積層不一樣,其結(jié)構(gòu)如圖2 所示.普通卷積層需要通過增加偏置來增加學(xué)習(xí)能力,而Convolutional 層中的卷積層經(jīng)過BN 層后則不需要再增加偏置.BN 層會(huì)將每層的輸入先進(jìn)行歸一化,解決網(wǎng)絡(luò)訓(xùn)練中中間層數(shù)據(jù)分布發(fā)生改變的問題,避免梯度消失或爆炸,從而節(jié)約訓(xùn)練時(shí)間.下面給出兩個(gè)公式:公式(1)表示在BN 層下d維向量輸入,公式(2)表示每一維的運(yùn)算過程:
圖2 Convolutional 結(jié)構(gòu)模型圖
式中,E[x(k)]為數(shù)學(xué)期望,Var[x(k)]為方差[7].而激活函數(shù)也從ReLU 激活函數(shù)改成了LeakyReLU激活函數(shù).Residual 殘差層結(jié)構(gòu)跟ResNet-101 的殘差結(jié)構(gòu)也有一定的區(qū)別,其結(jié)構(gòu)如圖3 所示.在DarkNet53 網(wǎng)絡(luò)中取消了最大池化層,改為Convolutional 層進(jìn)行接替,這樣可以加快整體網(wǎng)絡(luò)的訓(xùn)練速度.
圖3 Residual 結(jié)構(gòu)模型圖
本文實(shí)驗(yàn)采用的硬件配置為:2.2 GHz E5-25650 v4 CPU,NVIDIA GTX1080Ti 顯卡,128 Gb 內(nèi)存,2 Tb 硬盤;服務(wù)器配置系統(tǒng)使用Ubuntu 16.04 版本,CUDNN 7.6 版本,CUDAToolkit 10.2 版本;深度學(xué)習(xí)框架平臺(tái)為Pytorch 1.7 版本.
地鐵車輛車側(cè)下一共有18 個(gè)需要檢測(cè)的結(jié)構(gòu)(以深圳地鐵7 號(hào)線車型為例),由于篇幅限制這里只展示其中兩節(jié)車廂以及5 個(gè)結(jié)構(gòu).地鐵車輛車側(cè)面如圖4 所示,其中紅色框表示地鐵車輛需要檢測(cè)的車側(cè)下位置,黃色框表示車頭結(jié)構(gòu),藍(lán)色框表示轉(zhuǎn)向架結(jié)構(gòu),綠色框表示風(fēng)缸結(jié)構(gòu),白色框表示制動(dòng)電阻箱結(jié)構(gòu),棕色框表示貫通道結(jié)構(gòu).
圖4 地鐵車輛車側(cè)面
本實(shí)驗(yàn)的數(shù)據(jù)集源自深圳地鐵7 號(hào)線深云車輛段現(xiàn)場(chǎng)采集,線掃相機(jī)原始采集的圖像為1 024 ×4 096,包含的目標(biāo)顯示信息不足,如圖5 所示,為了完整清晰顯示目標(biāo)類別,需要對(duì)原始圖像按照一定的步長(zhǎng)進(jìn)行拼接,如圖6 所示.
圖5 原始數(shù)據(jù)圖像
圖6 拼接后的數(shù)據(jù)圖像
拼接后共有2 000 多張圖片,為了提高模型的泛化能力和魯棒性,采用翻轉(zhuǎn)、旋轉(zhuǎn)、增加噪聲和變換圖像的增強(qiáng)方法擴(kuò)充樣本圖像至5 000 多張.其中70%用于訓(xùn)練集,20%用于驗(yàn)證集,10%用于測(cè)試集.
在開始訓(xùn)練之前,先對(duì)本文改進(jìn)模型的超參數(shù)進(jìn)行配置,初始學(xué)習(xí)率(Learning Rate)為0.01,動(dòng)量(Momentum)為0.9,權(quán)重衰減(Weight Decay)為0.000 5,優(yōu)化器(Optimizer)采用隨機(jī)梯度下降法SGD,訓(xùn)練次數(shù)設(shè)置為1 000 個(gè)epochs.
在評(píng)估模型時(shí),需要一定的評(píng)價(jià)指標(biāo)對(duì)模型性能進(jìn)行評(píng)估,通過計(jì)算精確度(Precision)、召回率(Recall)、平均精度AP(Average Precision)、均值平均精度mAP(Mean Average Precision)、置信度(Confidence coefficient)、模型的參數(shù)個(gè)數(shù)以及檢測(cè)速度FPS(Frames Per Second)(參數(shù)個(gè)數(shù)越多網(wǎng)絡(luò)檢測(cè)速度越慢,F(xiàn)PS 越大檢測(cè)速度越快).
在改進(jìn)的Faster-RCNN 算法中,Anchors 設(shè)置的scales 大小為128、256、512 等三個(gè)尺度.為增加對(duì)小目標(biāo)的檢測(cè)能力,本文再增加兩個(gè)尺度,使Anchors 的scales 大小為32、64、128、256、512一共五個(gè)尺度.加入FPN 的分層預(yù)測(cè),可以提高Faster-RCNN 對(duì)小目標(biāo)的檢測(cè)精度[9].對(duì)比4 種不同的特征提取網(wǎng)絡(luò),結(jié)果如表1 所示.
表1 4 種特征提取網(wǎng)絡(luò)參數(shù)對(duì)比
由表1 可知:1)MobileNetV2 網(wǎng)絡(luò)檢測(cè)速度最快,參數(shù)量最少(VGG16 的三十分之一都不到),十分輕量化;但其精確度和召回率以及均值平均精度都較低.2)DarkNet53+FPN 網(wǎng)絡(luò)相比VGG16網(wǎng)絡(luò),精確度、召回率分別提高近了8%,檢測(cè)速度提高了接近4 倍;相比MobileNetV2 網(wǎng)絡(luò),其精確度、召回率分別提高了近13%,但檢測(cè)速度不到其一半;相比ResNet101+FPN 網(wǎng)絡(luò),其精確度、召回率分別降低了近3%.雖然與ResNet101+FPN 網(wǎng)絡(luò)相比,精確度和召回率有少許下降,但其整體參數(shù)量比ResNet101+FPN 網(wǎng)絡(luò)少了一半,檢測(cè)速度提升接近一倍.
選擇包含大中小目標(biāo)的測(cè)試圖片對(duì)4 種特征提取網(wǎng)絡(luò)進(jìn)行測(cè)試,其結(jié)果如圖7~10 所示:1)對(duì)于小目標(biāo)ACM 電抗器箱和中目標(biāo)高壓箱,MobileNetV2 網(wǎng)絡(luò)存在一定的漏檢而且檢測(cè)效果不好;VGG16 的邊界框回歸效果雖好,但對(duì)小目標(biāo)ACM 電抗器箱也一樣存在目標(biāo)漏檢;2)ResNet101+FPN網(wǎng)絡(luò)和DarkNet53+FPN 網(wǎng)絡(luò)對(duì)于大目標(biāo)AB 箱、中目標(biāo)高壓箱以及小目標(biāo)ACM 電抗器箱都可以成功檢測(cè),但 DarkNet53+FPN 檢測(cè)每個(gè)目標(biāo)的置信度明顯高于 ResNet101+FPN 網(wǎng)絡(luò).證明了DarkNet53+FPN 作為特征提取網(wǎng)絡(luò)無論在精度上和模型參數(shù)上都比其他三種特征提取網(wǎng)絡(luò)更適用于地鐵車輛車側(cè)下的結(jié)構(gòu)檢測(cè).
圖7 VGG16 網(wǎng)絡(luò)檢測(cè)結(jié)果
圖8 MobileNetV2 網(wǎng)絡(luò)檢測(cè)結(jié)果
圖9 ResNet101+FPN 網(wǎng)絡(luò)檢測(cè)結(jié)果
圖10 DarkNet53+FPN 網(wǎng)絡(luò)檢測(cè)結(jié)果
目前基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法主要分為兩類:一類為Two-stage 方法,該方法把檢測(cè)分為定位和分類兩個(gè)步驟,主要算法以RCNN、Fast-RCNN、Faster-RCNN 等為代表[10];而另一類One-stage方法則直接將定位和分類融合在一起,代表算法有YOLO、SSD、Retina-Net 等[11].Two-stage 方法識(shí)別準(zhǔn)確度較高,但很難做到實(shí)時(shí)檢測(cè);One-stage 方法檢測(cè)速度高,但識(shí)別精度較低.
為了進(jìn)一步對(duì)改進(jìn)Faster-RCNN 算法的檢測(cè)性能進(jìn)行評(píng)估,本文選用YOLOV3 算法和SSD 算法這兩種One-stage 方法對(duì)相同數(shù)據(jù)集進(jìn)行同步訓(xùn)練,訓(xùn)練的超參數(shù)與Faster-RCNN 相同.訓(xùn)練結(jié)果對(duì)比如表2 所示:改進(jìn)的Faster-RCNN 其均值平均精度最高,檢測(cè)速度最慢.伍錫如等[12]在汽車儀表檢測(cè)中單張圖片檢測(cè)速度為0.197 s(約6.3 fps),能滿足實(shí)時(shí)檢測(cè)要求.而本文改進(jìn)的Faster-RCNN算法檢測(cè)識(shí)別速度為20.5 fps,已經(jīng)滿足地鐵車輛車側(cè)下結(jié)構(gòu)實(shí)時(shí)檢測(cè)識(shí)別的要求.因此,本文改進(jìn)的 Faster-RCNN 算法作為一種 Two-stage 方法,在保持很高的檢測(cè)精度的情況下,也能實(shí)現(xiàn)與One-stage 中YOLOV3 算法和SSD 算法一樣的實(shí)時(shí)檢測(cè).
表2 不同算法對(duì)比結(jié)果
為了降低工人的勞動(dòng)強(qiáng)度、提升地鐵車輛的檢修效率,本文提出了一種基于改進(jìn) Faster-RCNN算法對(duì)地鐵車輛車側(cè)下需要檢測(cè)的結(jié)構(gòu)進(jìn)行檢測(cè)識(shí)別.試驗(yàn)結(jié)果表明通過改進(jìn)Faster-RCNN 算法的特征提取網(wǎng)絡(luò)對(duì)地鐵車輛車側(cè)下各結(jié)構(gòu)的識(shí)別有很好的提升效果,檢測(cè)均值平均精度mAP 可達(dá)到92.7%,檢測(cè)速度可達(dá)到20.5 fps,擁有比One-stage 方法更高的檢測(cè)精度,能達(dá)到與One-stage 方法一樣的實(shí)時(shí)檢測(cè)效果,成功實(shí)現(xiàn)了從人工線下巡檢到人工線上巡檢.不足之處是該算法暫時(shí)無法識(shí)別每個(gè)結(jié)構(gòu)的表面異常,如螺栓缺失、零件損壞以及表面脫落等問題,后續(xù)會(huì)針對(duì)這些不足繼續(xù)完善算法模型.