楊朋朋
(中鐵第一勘察設(shè)計(jì)院集團(tuán)有限公司,陜西 西安 710043)
全自動(dòng)運(yùn)行系統(tǒng)是地鐵車輛中自動(dòng)化程度最高的系統(tǒng),其集成了通信、信號(hào)、控制和計(jì)算機(jī)等技術(shù),使列車實(shí)現(xiàn)全過程自動(dòng)化運(yùn)行[1]。在無人區(qū)內(nèi)自動(dòng)完成車輛的喚醒、自檢、啟動(dòng)、加速、減速、巡航、惰行、停車、折返及休眠等。停車列檢庫是車輛停放、列檢作業(yè)的主要場所,按照功能劃分為無人區(qū)及檢修區(qū),每2~3股道為一檢修分區(qū),分區(qū)間采用柵欄進(jìn)行物理隔離。為了取代既有人工視覺記錄列車車號(hào)的方式,實(shí)現(xiàn)無人區(qū)自動(dòng)化運(yùn)維,本文提出了一種基于深度學(xué)習(xí)的地鐵車輛車號(hào)識(shí)別方法。
國外學(xué)者對(duì)車號(hào)識(shí)別的研究起步較早,Mullot等[2]采用紋理特征進(jìn)行集裝箱及汽車車牌號(hào)碼的識(shí)別及定位;Keck等[3-4]提出了集成計(jì)算機(jī)視覺系統(tǒng),該系統(tǒng)主要用于列車監(jiān)控視頻數(shù)據(jù)的采集、處理和壓縮。在國內(nèi),魏永勝等[5]設(shè)計(jì)了車底殘留物檢測、體積計(jì)算及車號(hào)識(shí)別系統(tǒng);王欣蔚[6]提出了基于卷積神經(jīng)網(wǎng)絡(luò)的車號(hào)識(shí)別方法,在分析動(dòng)車組車號(hào)圖像特點(diǎn)的基礎(chǔ)上,采用深度學(xué)習(xí)算法對(duì)列車車號(hào)進(jìn)行字符分割及識(shí)別;王曉鋒等[7-8]采用機(jī)械視覺方式進(jìn)行車號(hào)識(shí)別?,F(xiàn)有車號(hào)識(shí)別系統(tǒng)主要針對(duì)鐵路貨車,采用人工方式記錄車號(hào),缺少自動(dòng)化識(shí)別方式。本文基于目標(biāo)檢測的YOLO算法,針對(duì)全自動(dòng)駕駛車輛基地,提供了一種完善的車號(hào)識(shí)別方法,并通過工程實(shí)踐對(duì)該方法進(jìn)行了驗(yàn)證。
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的分支,是一種以人工神經(jīng)網(wǎng)絡(luò)為架構(gòu),對(duì)數(shù)據(jù)進(jìn)行表征學(xué)習(xí)的算法。
目前常用的目標(biāo)檢測算法可分為兩類,一類是R-CNN 系列的Two-stage算法,需先使用選擇性搜索算法[9](selective search algorithm)或 CNN 網(wǎng)絡(luò)(如 RPN)來產(chǎn)生 Region Proposal,然后在候選框上進(jìn)行目標(biāo)分類與位置回歸[10];另一類是One-stage算法,包括SSD以及YOLO算法等。相比而言,One-stage算法占用計(jì)算機(jī)資源少,計(jì)算速度較快,但準(zhǔn)確率相對(duì)于Two-stage 算法較低。目標(biāo)檢測不僅要解決圖片的分類,同時(shí)要對(duì)目標(biāo)內(nèi)容進(jìn)行準(zhǔn)確定位。表1選取典型目標(biāo)檢測模型進(jìn)行了性能對(duì)比分析。結(jié)合全自動(dòng)駕駛模式特點(diǎn),為實(shí)現(xiàn)作業(yè)流程的智能卡控,節(jié)約計(jì)算資源,本文采用算力要求相對(duì)較低的YOLO算法。
表1 典型目標(biāo)檢測模型性能對(duì)比表
YOLO算法將輸入的圖像劃分成S×S個(gè)單元格,當(dāng)目標(biāo)幾何中心落入到某個(gè)單元格時(shí),該單元格負(fù)責(zé)對(duì)目標(biāo)進(jìn)行檢測。其他各單元格預(yù)測D個(gè)邊界框置信度,D為數(shù)據(jù)集中被識(shí)別劃分的類別數(shù)量,置信度為待檢測目標(biāo)的概率與該邊界框和真實(shí)位置交并比(IoU)的乘積,用來表征預(yù)測位置回歸精度。置信度Confidence計(jì)算公式為:
(1)
式中:Pr(Object)為方格中目標(biāo)存在的概率。Pr(Object)的取值如下:
(2)
每個(gè)方格即每個(gè)單元實(shí)際預(yù)測的是方格的大小、位置及置信度,共包含5個(gè)預(yù)測值(x,y,w,h,Confidence),其中(x,y)為方格幾何中心的坐標(biāo),w,h分別為該方格長、寬與整張圖像長、寬的比。假定(x,y,w,h)取值均為0~1。分類時(shí)YOLO算法對(duì)所有方格的類別進(jìn)行概率預(yù)測,假定方格類別為C,此概率是基于方格可信度下的條件概率值,以Pr(Classici/Object)表示,每個(gè)邊界框的置信度計(jì)算公式如下:
(3)
設(shè)概率的閾值k=0.5[11],通過設(shè)置閾值剔除置信度較低的方格。綜上所述,每個(gè)方格包含5個(gè)預(yù)測值,每張圖像包含S×S個(gè)方格,因此每張圖像的預(yù)測值為S×S×(D×5+C)。
由于停車列檢分區(qū)檢修通道寬度需滿足簡易高空作業(yè)車通行,因此車號(hào)識(shí)別系統(tǒng)硬件無單獨(dú)立柱安裝條件。段內(nèi)車輛行駛速度大于20 km/h,為了保證獲得準(zhǔn)確的車號(hào)信息,機(jī)器視覺系統(tǒng)安裝于運(yùn)用庫A端司機(jī)登車平臺(tái)南側(cè),采用可調(diào)節(jié)吊桿機(jī)構(gòu)吊裝,保證鏡頭以最佳視覺拍攝車輛車號(hào)區(qū)域,具體安裝位置如圖1和圖2所示。
圖1 機(jī)械視覺安裝位置平面圖
圖2 機(jī)械視覺安裝位置三維圖
1)數(shù)據(jù)集與圖像的預(yù)處理。
設(shè)定相機(jī)拍攝速度為0.01 s/次,隨機(jī)提取相機(jī)在不同檢修分區(qū)捕捉到的2 000張車號(hào)圖片,其中包含部分車號(hào)不全、角度不對(duì)正等存在多種缺陷的圖片。為了增加深度學(xué)習(xí)的數(shù)據(jù)量,結(jié)合車輛基地現(xiàn)場條件,采取以下2種方式對(duì)圖像進(jìn)行增強(qiáng):1)旋轉(zhuǎn),將每一幅訓(xùn)練樣本圖像分別旋轉(zhuǎn)-3°和3°;2)添加噪聲,對(duì)每一幅訓(xùn)練樣本圖像隨機(jī)添加高斯噪聲。
經(jīng)過數(shù)據(jù)增強(qiáng),樣本量由2 000張?jiān)黾拥? 000張,將這些樣本分為訓(xùn)練、驗(yàn)證和測試3個(gè)樣本集,各樣本集中圖像的選取由隨機(jī)數(shù)函數(shù)產(chǎn)生的隨機(jī)數(shù)來決定。
2)模型訓(xùn)練。
分別使用YOLO V4 和YOLO V4 tiny模型對(duì)同一數(shù)據(jù)集進(jìn)行訓(xùn)練。
3)評(píng)價(jià)指標(biāo)。
①準(zhǔn)確率。
對(duì)于一個(gè)N類任務(wù),輸出為一個(gè)N維向量,向量的每一個(gè)位置代表了一種類別,對(duì)應(yīng)位置的值為預(yù)測目標(biāo)屬于該類的概率。假設(shè)A物體與B物體分類的輸出向量為[m,n],如果m>n,則輸出為A物體,反之為B物體。
②損失。
引入交叉熵?fù)p失函數(shù),交叉熵?fù)p失函數(shù)輸出的是正確標(biāo)簽的似然對(duì)數(shù),和準(zhǔn)確率有一定的關(guān)系,但是取值范圍更大。交叉熵?fù)p失公式如下:
(4)
假設(shè)訓(xùn)練樣本量為n,則交叉損失函數(shù)(Θ)為:
(5)
本文采用準(zhǔn)確率(accuracy)和損失(loss)兩個(gè)參數(shù)對(duì)檢測結(jié)果進(jìn)行評(píng)估,分析結(jié)果如圖3所示。
圖3 平均損失-準(zhǔn)確率變化曲線圖
圖3中細(xì)線表示迭代周期與準(zhǔn)確率的變化,粗線表示準(zhǔn)確率。由圖可以看出,隨著模型訓(xùn)練次數(shù)的增加,平均損失趨于零,準(zhǔn)確率趨于1,說明模型預(yù)測值與對(duì)應(yīng)的標(biāo)簽值越接近,模型的準(zhǔn)確率也就越高。兩個(gè)模型對(duì)車號(hào)區(qū)域的識(shí)別準(zhǔn)確率都較高,區(qū)別在于YOLO V4 tiny模型容易將生活環(huán)境中的非車號(hào)圖形誤識(shí)別。由于應(yīng)用中相機(jī)視野固定,不會(huì)拍攝到雜亂圖像造成誤識(shí)別,而YOLO V4 tiny模型的實(shí)時(shí)性更好,因此本文選取YOLO V4 tiny模型進(jìn)行車號(hào)識(shí)別。
為了提高計(jì)算效率,減少計(jì)算資源占用率,增強(qiáng)算法的魯棒性,對(duì)圖像編號(hào)區(qū)域提取前先對(duì)地鐵車輛車號(hào)類型及相對(duì)位置采用機(jī)器學(xué)習(xí),選擇完整車號(hào)圖片,對(duì)車號(hào)區(qū)域進(jìn)行預(yù)處理,原始車號(hào)圖像如圖4所示。
圖4 原始車號(hào)圖像
1)圖像裁剪。
目標(biāo)檢測程序從視頻中獲取完整車號(hào)畫面,從原始圖像中截取包含完整車號(hào)的最小圖像,如圖5所示,去除噪聲的干擾。
圖5 除噪聲前的車號(hào)圖像
2)二值化。
采用特定的灰度值T作為閾值對(duì)圖像進(jìn)行二值化處理,二值化后輸出的圖像g(x,y)可表示為:
(6)
式中:f(x,y)為原圖灰度函數(shù)值。
參考文獻(xiàn)[12],取T=127,當(dāng)像素值小于T時(shí),設(shè)為0,即黑色;當(dāng)像素值大于T時(shí),設(shè)為255,即白色,二值化后的圖像如圖6所示。
圖6 二值化后圖像
3)形態(tài)學(xué)處理。
由于部分線路位于地面之上,地鐵列車運(yùn)營時(shí)不可避免沾上泥土、灰塵等,因此車號(hào)可識(shí)別度相對(duì)于初始狀態(tài)會(huì)有一定程度的降低,為了消除外部雜質(zhì)對(duì)車號(hào)識(shí)別的影響,需對(duì)車號(hào)區(qū)域進(jìn)行形態(tài)學(xué)處理。
①膨脹。
根據(jù)二值圖像,將原車號(hào)圖像區(qū)域沿著目標(biāo)區(qū)域邊緣擴(kuò)大一周,使外部環(huán)境誤斷開的目標(biāo)行合并連通。對(duì)于圖像集合A以結(jié)構(gòu)元素B進(jìn)行膨脹的運(yùn)算表示為A⊕B,計(jì)算公式如下:
(7)
②腐蝕。
與膨脹相反,腐蝕使邊界向內(nèi)收縮,將粘連在一起的不同目標(biāo)分離,同時(shí)消除出現(xiàn)在圖像里與目標(biāo)區(qū)域不連通的孤立點(diǎn),這些點(diǎn)往往是毛刺或者閾值分割后被誤認(rèn)為目標(biāo)的背景像素點(diǎn)[13],對(duì)于圖像集合A以結(jié)構(gòu)元素B進(jìn)行腐蝕的運(yùn)算表示為AΘB[12],計(jì)算公式如下:
AΘB={z|(B)z∩Ac≠?}
(8)
式中:Ac為集合A的補(bǔ)集。
通過膨脹、腐蝕后的二值化圖像分別如圖7和圖8所示,程序識(shí)別結(jié)果如圖9所示。
圖7 膨脹后的二值化圖像
圖8 腐蝕后的二值化圖像
圖9 程序識(shí)別結(jié)果截圖
訓(xùn)練樣本數(shù)量n=2 000,訓(xùn)練樣本識(shí)別結(jié)果及準(zhǔn)確率見表2。
表2 樣本訓(xùn)練數(shù)據(jù)統(tǒng)計(jì)表
由表可知,準(zhǔn)確率大于99.74%,因此該模型滿足了3σ設(shè)計(jì)原則,結(jié)果可靠。
為了進(jìn)行較高速度行駛下的全自動(dòng)運(yùn)行車輛車號(hào)識(shí)別,本文結(jié)合現(xiàn)場條件將車號(hào)識(shí)別機(jī)械視覺安裝于運(yùn)用庫A端司機(jī)登車平臺(tái)側(cè)面處,為了保證鏡頭以最佳視覺捕捉到車輛車號(hào)區(qū)域,單獨(dú)設(shè)計(jì)了可調(diào)節(jié)吊桿結(jié)構(gòu)。對(duì)比分析YOLO V4與YOLO V4 tiny模型對(duì)車號(hào)區(qū)域識(shí)別的準(zhǔn)確性,采用YOLO算法對(duì)形態(tài)學(xué)處理完的圖像進(jìn)行字符識(shí)別,識(shí)別準(zhǔn)確度大于99.74%,滿足3σ原則,從而驗(yàn)證了訓(xùn)練模型以及算法的可靠性。