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