涂 昊 刁云峰 程文明 唐 鑫 翟守才
1西南交通大學機械工程學院 成都 610031 2軌道交通運維技術與裝備四川省重點實驗室 成都 610031
在鐵路站場裝卸作業(yè)中,起重機操作系統(tǒng)執(zhí)行稱重校核、打印貨單等操作常常需要當前吊裝集裝箱的箱號信息,而大部分鐵路貨場都是依賴起重機司機手動錄入箱號,不僅輸入速度慢,在裝卸量大的情況下還容易造成司機疲勞甚至發(fā)生事故。鐵路貨場集裝箱箱號自動識別系統(tǒng)能提高貨場作業(yè)效率,減輕司機工作強度,保障安全,提升貨場自動化水平,具有很大的研究意義。
早期的研究[1-3]已經探索了利用傳統(tǒng)的圖像處理方法,手工提取特征來識別箱號。然而,傳統(tǒng)方法面臨著很多問題[4],如集裝箱特征復雜和室外環(huán)境多樣性等問題,光照強度差異很大,容易導致字符定位、分割不準;集裝箱表面的腐蝕和磨損也容易導致字符模板匹配和特征匹配出錯等。
近年來,隨著深度學習理論的不斷發(fā)展和計算機硬件水平的提高,深度學習算法在速度、精度上達到了非常高的水平。深度學習方法通過數(shù)據(jù)驅動訓練模型,自適應能力強,魯棒性好,準確度高,出現(xiàn)了許多使用深度學習方法對箱號進行識別的研究。
常見的箱號識別算法通常分為兩種,一種是一步式的方法。即利用深度學習的目標檢測模型直接輸入圖像中,檢測箱號的每一位字符位置,并進行分類識別,再將識別到的箱號字符依次排列。WANG Zhiming等[5]提出了一種利用Faster-RCNN[6]算法直接檢測并識別圖中箱號字符的方法。這種方法模型簡單,僅靠一個Faster-RCNN網(wǎng)絡,避免了箱號區(qū)域定位不準確所造成的錯檢和漏檢。但輸入圖像中箱號占比極少,背景極多,計算時會浪費很多計算資源,背景中存在很多非箱號字符或和字符相似的特征,對檢測識別干擾很大,同時箱號字符包括26個字母和10個阿拉伯數(shù)字共36個分類,為了保證每個字符識別準確,需要足夠的分辨率和神經網(wǎng)絡的深度,需要輸入圖片的尺寸較大,模型深度高,導致計算量大,速度慢。
另一種方法是兩步式方法,第一步對集裝箱箱號區(qū)域進行定位,第二步提取定位的目標區(qū)域進行箱號字符識別。C. Li等[7]提出了一種使用EAST[8]文本檢測網(wǎng)絡進行箱號區(qū)域定位,使用全卷積網(wǎng)絡[9]提取箱號字符區(qū)域,并利用CRNN[10]網(wǎng)絡進行箱號字符識別。EAST網(wǎng)絡對各種方向排列的字符有較好的適應性,定位精度較高,但速度較慢,將EAST和CRNN兩個深度神經網(wǎng)絡直接串聯(lián),模型參數(shù)極多,計算量大,速度很慢。因此,設計一種整體識別精度高、速度快的算法成為了亟待解決的問題。
本文針對該問題提出了一種快速準確的箱號識別算法,利用劉志輝[11]等提出的降低圖片背景的前處理思路,設計了一種提高箱號識別算法速度的前處理,同時對傳統(tǒng)的YOLOv3[12]網(wǎng)絡進行改進,在保證識別精度的前提下提升圖片信息利用率,提高整體速度。
通過安裝在起重機下支腿處的攝像頭,拍攝集裝箱側面的箱號,其算法框架包含兩個模塊,第一個模塊為箱號快速定位模塊。該模塊通過前處理操作,提高箱號占比,再降低圖片尺度,利用YOLOv3網(wǎng)絡對箱號進行定位。第二個模塊為箱號識別模塊通過模塊一得到的定位信息,從原始尺度的圖片中截取箱號區(qū)域,送入箱號定位模塊中識別箱號。算法整體流程如圖1所示。
圖1 算法整體流程圖
1)前處理
為降低原始圖片中的大量背景,提高箱號區(qū)域占比,本文利用訓練集上標注的箱號區(qū)域框,統(tǒng)計數(shù)據(jù)集中箱號出現(xiàn)的位置。箱號區(qū)域框的統(tǒng)計熱力圖如圖2所示。
圖2 箱號區(qū)域統(tǒng)計熱力圖
圖2中熱力圖的顏色對應箱號區(qū)域的頻度,橫縱軸表示圖片的x、y坐標。
根據(jù)這一先驗條件,可以剪除箱號區(qū)域框出現(xiàn)頻度為零的背景區(qū)域。在前處理時依照統(tǒng)計信息,對原圖像(1 600×1 024分辨率)進行剪裁,只保留熱力圖數(shù)值≥0的區(qū)域,得到粗定位區(qū)域。實際操作為將原1 600×1 024分辨率的圖片,在水平方向上剔除[0,460]及[1 460,1 600]區(qū)間內的像素,在豎直方向上剔除[0,151]及[929,1 024]區(qū)間內的像素,得到1 000×778分辨率的圖片。為進一步加快檢測速度,本文將圖片等比例縮放到288×288分辨率后,進行箱號快速定位。
2)箱號快速定位
如何在不犧牲檢測精度的同時,利用輕量化模型進行實時檢測是本課題的一個研究重點。因此,本文采用了YOLOv3的Tiny版本對集裝箱箱號區(qū)域進行定位,其網(wǎng)絡結構如表1所示。
表1 集裝箱箱號定位網(wǎng)絡結構表
箱號快速定位模塊只需檢測箱號區(qū)域分類,故本文在原YOLOv3的輸出結構中移除分類通道的輸出,并在原損失函數(shù)中移除分類損失,降低網(wǎng)絡計算量,提高網(wǎng)絡收斂速度和模塊定位速度。改進的損失函數(shù)為
先驗框尺寸的設置,本文沿用YOLOv3算法中對數(shù)據(jù)集標注框尺寸進行K-means聚類,再對得到的標注框尺寸進行微調,得到的預測框尺寸為:72×92、42×127、52×160。由于箱號定位箱號區(qū)域尺寸屬于中等甚至較大,故本文只在9×9和18×18兩個尺度上對箱號區(qū)域進行預測,以減少預測層的通道數(shù),節(jié)約預測的時間。最終得到的箱號區(qū)域定位結果如圖3所示。
圖3 集裝箱箱號區(qū)域定位效果
由于在送入箱號快速定位模塊前,在前處理模塊,對待定位的圖片進行了縮小,縮小的288×288分辨率圖片稱為模糊檢測圖,在前處理模塊中,背景減除后,縮小之前1 000×778分辨率圖片,稱為高清檢測圖。識別模塊利用從模糊檢測圖中得到的神經網(wǎng)絡的預測結果,從高清檢測圖中獲得原始比例的集裝箱箱號進行識別。其操作為:識別模塊首先對箱號快速定位得到的模糊檢測圖中預測框位置坐標進行歸一化,即除以圖片尺度288,得到[0,1]區(qū)間內的相對坐標值,利用相對坐標信息從1 000×778分辨率的高清檢測圖中截取出清晰的箱號區(qū)域,即分別乘以高清檢測圖的長與寬。如圖4所示,(Xl,Yl)、(Xh,Yh)分別代表在箱號快速定位時神經網(wǎng)絡模型對模糊檢測圖計算得到的預測框中心坐標和在高清檢測圖中預測框所在對應位置的中心坐標;Wl、Hl為模糊檢測圖中的預測框寬和高,Wh、Hh為在高清檢測圖中預測框的寬和高。
圖4 在高分辨率圖像截取箱號
從模糊檢測圖預測結果的坐標,到高清檢測圖中箱號位置的坐標換算為
對預測的箱號區(qū)域,可根據(jù)其尺寸分為橫向排列和縱向排列兩種排列方式,并按一定比例進行擴大以防止在定位時造成的字符缺損。
本文在箱號字符檢測部分中將26個大寫英文字母和0~9的阿拉伯數(shù)字等36種字符視作單獨的分類,利用神經網(wǎng)絡進行字符檢測識別。箱號字符與箱號快速定位相比,分類多,特征復雜,所以字符識別模塊的改進YOLOv3網(wǎng)絡,其骨干網(wǎng)絡使用DarkNet53提取特征。
由于箱號字符的尺寸較為接近,且尺寸在截取出的箱號區(qū)域中,比例較大,本文刪除原YOLOv3網(wǎng)絡中用于檢測小目標的分支,將提取得到的字符特征僅在兩個尺度上進行檢測,以減少網(wǎng)絡參數(shù)并提高計算速度。網(wǎng)絡結構如圖5所示,集裝箱箱號字符的檢測結果如圖6所示。
圖5 集裝箱箱號字符檢測網(wǎng)絡結構圖
圖6 集裝箱箱號字符檢測結果
對網(wǎng)絡的輸出結果,根據(jù)先前確定的排列方式和網(wǎng)絡所回歸到的預測框坐標,將箱號依次排序,其中前4位只在字母分類中選取預測概率最高的作為預測值,同理,后7位只在數(shù)字分類中選擇預測概率最高的作為分類值。得到箱號字符的預測框坐標和分類信息后,根據(jù)先前得到的箱號橫向排列還是縱向排列的形式,在水平方向或豎直方向上聚類,如箱號是橫向排列,則按照水平方向對豎直坐標在相近范圍內的字符聚類,得到若干行箱號,然后自第一行到最后一行,按照水平位置順序取字符,一直到取滿11位字符為止。
本文使用的數(shù)據(jù)集來自國內某鐵路貨場,利用在門式起重機上安裝的攝像頭,拍攝裝卸作業(yè)過程中采集的圖片,數(shù)據(jù)集一共包括2 688張分辨率為1 600×1 024的圖片。其余圖片為傍晚時拍攝。數(shù)據(jù)集的劃分為訓練集2 474張,測試集200張。實驗所使用的計算機CPU為 AMD Ryzen 5 2600,GPU 為 Nvidia GeForce RTX 2070 SUPER 8G,內存16G。
在集裝箱箱號定位結果中,對于正樣本,當檢出的箱號區(qū)域(P)與標注的Ground Truth(G)的交并比(IoU)大于0.7時視為一次正確預測,稱之為True Positive(TP),對于負樣本,即圖片中不存在箱號區(qū)域,此時系統(tǒng)沒有錯檢出箱號也算做一次正確預測,稱之為True Negative(TN),準確率(A)表示正確預測的數(shù)量與總數(shù)量(N)的比值,交并比和正確率的計算公式為
與譚偉等[13]提出的基于數(shù)學形態(tài)學的集裝箱箱號分割改進算法、劉岑等[14]提出的基于YOLOv3的箱號定位、崔循等[15]提出的基于改進的Faster R-CNN的箱號定位算法進行對比,本文所述方法準確率更高,平均耗時更低,對比結果如表2所示。
表2 集裝箱箱號定位測試結果對比
對于集裝箱箱號字符檢測模塊,對每個字符分類進行檢測所得到的結果如表3所示。其中,P為準確率,R為召回率,mAP為平均精度。
表3 集裝箱箱號字符檢測模塊測試結果
對于該系統(tǒng)的總體識別結果,總體正確率表示系統(tǒng)對測試集中原始圖片做出正確預測的結果在測試集中的占比??傮w漏檢率表示對測試集中原本出現(xiàn)箱號卻判斷沒有箱號的錯誤預測在數(shù)據(jù)集中的占比。總體錯檢測率表示對沒有箱號的測試圖片卻預測出箱號,以及對有箱號的測試圖片中的箱號做出錯誤預測的結果在測試集中的占比,測試結果如表4所示。
表4 系統(tǒng)總體測試結果
本文所述算法是一種高效準確的箱號識別算法,在進行識別操作前,先對原始圖片進行背景剪除,利用改進的輕量化YOLOv3在低分辨率上進行箱號定位,提高計算資源利用率、節(jié)省耗時的同時使后續(xù)識別和檢測更為精準。再對高分辨率的集裝箱箱號區(qū)域圖片利用改進的較深層的YOLOv3在特定尺度上進行字符的精準檢測,得到集裝箱箱號。實驗結果表明,該算法總體正確率達到了98.4%,且平均總體耗時僅為103 ms,能夠高效準確地識別箱號。