涂 昊 刁云峰 程文明 唐 鑫 翟守才
1西南交通大學(xué)機(jī)械工程學(xué)院 成都 610031 2軌道交通運(yùn)維技術(shù)與裝備四川省重點(diǎn)實(shí)驗(yàn)室 成都 610031
在鐵路站場裝卸作業(yè)中,起重機(jī)操作系統(tǒng)執(zhí)行稱重校核、打印貨單等操作常常需要當(dāng)前吊裝集裝箱的箱號信息,而大部分鐵路貨場都是依賴起重機(jī)司機(jī)手動錄入箱號,不僅輸入速度慢,在裝卸量大的情況下還容易造成司機(jī)疲勞甚至發(fā)生事故。鐵路貨場集裝箱箱號自動識別系統(tǒng)能提高貨場作業(yè)效率,減輕司機(jī)工作強(qiáng)度,保障安全,提升貨場自動化水平,具有很大的研究意義。
早期的研究[1-3]已經(jīng)探索了利用傳統(tǒng)的圖像處理方法,手工提取特征來識別箱號。然而,傳統(tǒng)方法面臨著很多問題[4],如集裝箱特征復(fù)雜和室外環(huán)境多樣性等問題,光照強(qiáng)度差異很大,容易導(dǎo)致字符定位、分割不準(zhǔn);集裝箱表面的腐蝕和磨損也容易導(dǎo)致字符模板匹配和特征匹配出錯等。
近年來,隨著深度學(xué)習(xí)理論的不斷發(fā)展和計(jì)算機(jī)硬件水平的提高,深度學(xué)習(xí)算法在速度、精度上達(dá)到了非常高的水平。深度學(xué)習(xí)方法通過數(shù)據(jù)驅(qū)動訓(xùn)練模型,自適應(yīng)能力強(qiáng),魯棒性好,準(zhǔn)確度高,出現(xiàn)了許多使用深度學(xué)習(xí)方法對箱號進(jìn)行識別的研究。
常見的箱號識別算法通常分為兩種,一種是一步式的方法。即利用深度學(xué)習(xí)的目標(biāo)檢測模型直接輸入圖像中,檢測箱號的每一位字符位置,并進(jìn)行分類識別,再將識別到的箱號字符依次排列。WANG Zhiming等[5]提出了一種利用Faster-RCNN[6]算法直接檢測并識別圖中箱號字符的方法。這種方法模型簡單,僅靠一個Faster-RCNN網(wǎng)絡(luò),避免了箱號區(qū)域定位不準(zhǔn)確所造成的錯檢和漏檢。但輸入圖像中箱號占比極少,背景極多,計(jì)算時會浪費(fèi)很多計(jì)算資源,背景中存在很多非箱號字符或和字符相似的特征,對檢測識別干擾很大,同時箱號字符包括26個字母和10個阿拉伯?dāng)?shù)字共36個分類,為了保證每個字符識別準(zhǔn)確,需要足夠的分辨率和神經(jīng)網(wǎng)絡(luò)的深度,需要輸入圖片的尺寸較大,模型深度高,導(dǎo)致計(jì)算量大,速度慢。
另一種方法是兩步式方法,第一步對集裝箱箱號區(qū)域進(jìn)行定位,第二步提取定位的目標(biāo)區(qū)域進(jìn)行箱號字符識別。C. Li等[7]提出了一種使用EAST[8]文本檢測網(wǎng)絡(luò)進(jìn)行箱號區(qū)域定位,使用全卷積網(wǎng)絡(luò)[9]提取箱號字符區(qū)域,并利用CRNN[10]網(wǎng)絡(luò)進(jìn)行箱號字符識別。EAST網(wǎng)絡(luò)對各種方向排列的字符有較好的適應(yīng)性,定位精度較高,但速度較慢,將EAST和CRNN兩個深度神經(jīng)網(wǎng)絡(luò)直接串聯(lián),模型參數(shù)極多,計(jì)算量大,速度很慢。因此,設(shè)計(jì)一種整體識別精度高、速度快的算法成為了亟待解決的問題。
本文針對該問題提出了一種快速準(zhǔn)確的箱號識別算法,利用劉志輝[11]等提出的降低圖片背景的前處理思路,設(shè)計(jì)了一種提高箱號識別算法速度的前處理,同時對傳統(tǒng)的YOLOv3[12]網(wǎng)絡(luò)進(jìn)行改進(jìn),在保證識別精度的前提下提升圖片信息利用率,提高整體速度。
通過安裝在起重機(jī)下支腿處的攝像頭,拍攝集裝箱側(cè)面的箱號,其算法框架包含兩個模塊,第一個模塊為箱號快速定位模塊。該模塊通過前處理操作,提高箱號占比,再降低圖片尺度,利用YOLOv3網(wǎng)絡(luò)對箱號進(jìn)行定位。第二個模塊為箱號識別模塊通過模塊一得到的定位信息,從原始尺度的圖片中截取箱號區(qū)域,送入箱號定位模塊中識別箱號。算法整體流程如圖1所示。

圖1 算法整體流程圖
1)前處理
為降低原始圖片中的大量背景,提高箱號區(qū)域占比,本文利用訓(xùn)練集上標(biāo)注的箱號區(qū)域框,統(tǒng)計(jì)數(shù)據(jù)集中箱號出現(xiàn)的位置。箱號區(qū)域框的統(tǒng)計(jì)熱力圖如圖2所示。

圖2 箱號區(qū)域統(tǒng)計(jì)熱力圖
圖2中熱力圖的顏色對應(yīng)箱號區(qū)域的頻度,橫縱軸表示圖片的x、y坐標(biāo)。
根據(jù)這一先驗(yàn)條件,可以剪除箱號區(qū)域框出現(xiàn)頻度為零的背景區(qū)域。在前處理時依照統(tǒng)計(jì)信息,對原圖像(1 600×1 024分辨率)進(jìn)行剪裁,只保留熱力圖數(shù)值≥0的區(qū)域,得到粗定位區(qū)域。實(shí)際操作為將原1 600×1 024分辨率的圖片,在水平方向上剔除[0,460]及[1 460,1 600]區(qū)間內(nèi)的像素,在豎直方向上剔除[0,151]及[929,1 024]區(qū)間內(nèi)的像素,得到1 000×778分辨率的圖片。為進(jìn)一步加快檢測速度,本文將圖片等比例縮放到288×288分辨率后,進(jìn)行箱號快速定位。
2)箱號快速定位
如何在不犧牲檢測精度的同時,利用輕量化模型進(jìn)行實(shí)時檢測是本課題的一個研究重點(diǎn)。因此,本文采用了YOLOv3的Tiny版本對集裝箱箱號區(qū)域進(jìn)行定位,其網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。

表1 集裝箱箱號定位網(wǎng)絡(luò)結(jié)構(gòu)表
箱號快速定位模塊只需檢測箱號區(qū)域分類,故本文在原YOLOv3的輸出結(jié)構(gòu)中移除分類通道的輸出,并在原損失函數(shù)中移除分類損失,降低網(wǎng)絡(luò)計(jì)算量,提高網(wǎng)絡(luò)收斂速度和模塊定位速度。改進(jìn)的損失函數(shù)為

先驗(yàn)框尺寸的設(shè)置,本文沿用YOLOv3算法中對數(shù)據(jù)集標(biāo)注框尺寸進(jìn)行K-means聚類,再對得到的標(biāo)注框尺寸進(jìn)行微調(diào),得到的預(yù)測框尺寸為:72×92、42×127、52×160。由于箱號定位箱號區(qū)域尺寸屬于中等甚至較大,故本文只在9×9和18×18兩個尺度上對箱號區(qū)域進(jìn)行預(yù)測,以減少預(yù)測層的通道數(shù),節(jié)約預(yù)測的時間。最終得到的箱號區(qū)域定位結(jié)果如圖3所示。

圖3 集裝箱箱號區(qū)域定位效果
由于在送入箱號快速定位模塊前,在前處理模塊,對待定位的圖片進(jìn)行了縮小,縮小的288×288分辨率圖片稱為模糊檢測圖,在前處理模塊中,背景減除后,縮小之前1 000×778分辨率圖片,稱為高清檢測圖。識別模塊利用從模糊檢測圖中得到的神經(jīng)網(wǎng)絡(luò)的預(yù)測結(jié)果,從高清檢測圖中獲得原始比例的集裝箱箱號進(jìn)行識別。其操作為:識別模塊首先對箱號快速定位得到的模糊檢測圖中預(yù)測框位置坐標(biāo)進(jìn)行歸一化,即除以圖片尺度288,得到[0,1]區(qū)間內(nèi)的相對坐標(biāo)值,利用相對坐標(biāo)信息從1 000×778分辨率的高清檢測圖中截取出清晰的箱號區(qū)域,即分別乘以高清檢測圖的長與寬。如圖4所示,(Xl,Yl)、(Xh,Yh)分別代表在箱號快速定位時神經(jīng)網(wǎng)絡(luò)模型對模糊檢測圖計(jì)算得到的預(yù)測框中心坐標(biāo)和在高清檢測圖中預(yù)測框所在對應(yīng)位置的中心坐標(biāo);Wl、Hl為模糊檢測圖中的預(yù)測框?qū)捄透撸琖h、Hh為在高清檢測圖中預(yù)測框的寬和高。

圖4 在高分辨率圖像截取箱號
從模糊檢測圖預(yù)測結(jié)果的坐標(biāo),到高清檢測圖中箱號位置的坐標(biāo)換算為

對預(yù)測的箱號區(qū)域,可根據(jù)其尺寸分為橫向排列和縱向排列兩種排列方式,并按一定比例進(jìn)行擴(kuò)大以防止在定位時造成的字符缺損。
本文在箱號字符檢測部分中將26個大寫英文字母和0~9的阿拉伯?dāng)?shù)字等36種字符視作單獨(dú)的分類,利用神經(jīng)網(wǎng)絡(luò)進(jìn)行字符檢測識別。箱號字符與箱號快速定位相比,分類多,特征復(fù)雜,所以字符識別模塊的改進(jìn)YOLOv3網(wǎng)絡(luò),其骨干網(wǎng)絡(luò)使用DarkNet53提取特征。
由于箱號字符的尺寸較為接近,且尺寸在截取出的箱號區(qū)域中,比例較大,本文刪除原YOLOv3網(wǎng)絡(luò)中用于檢測小目標(biāo)的分支,將提取得到的字符特征僅在兩個尺度上進(jìn)行檢測,以減少網(wǎng)絡(luò)參數(shù)并提高計(jì)算速度。網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,集裝箱箱號字符的檢測結(jié)果如圖6所示。

圖5 集裝箱箱號字符檢測網(wǎng)絡(luò)結(jié)構(gòu)圖

圖6 集裝箱箱號字符檢測結(jié)果
對網(wǎng)絡(luò)的輸出結(jié)果,根據(jù)先前確定的排列方式和網(wǎng)絡(luò)所回歸到的預(yù)測框坐標(biāo),將箱號依次排序,其中前4位只在字母分類中選取預(yù)測概率最高的作為預(yù)測值,同理,后7位只在數(shù)字分類中選擇預(yù)測概率最高的作為分類值。得到箱號字符的預(yù)測框坐標(biāo)和分類信息后,根據(jù)先前得到的箱號橫向排列還是縱向排列的形式,在水平方向或豎直方向上聚類,如箱號是橫向排列,則按照水平方向?qū)ωQ直坐標(biāo)在相近范圍內(nèi)的字符聚類,得到若干行箱號,然后自第一行到最后一行,按照水平位置順序取字符,一直到取滿11位字符為止。
本文使用的數(shù)據(jù)集來自國內(nèi)某鐵路貨場,利用在門式起重機(jī)上安裝的攝像頭,拍攝裝卸作業(yè)過程中采集的圖片,數(shù)據(jù)集一共包括2 688張分辨率為1 600×1 024的圖片。其余圖片為傍晚時拍攝。數(shù)據(jù)集的劃分為訓(xùn)練集2 474張,測試集200張。實(shí)驗(yàn)所使用的計(jì)算機(jī)CPU為 AMD Ryzen 5 2600,GPU 為 Nvidia GeForce RTX 2070 SUPER 8G,內(nèi)存16G。
在集裝箱箱號定位結(jié)果中,對于正樣本,當(dāng)檢出的箱號區(qū)域(P)與標(biāo)注的Ground Truth(G)的交并比(IoU)大于0.7時視為一次正確預(yù)測,稱之為True Positive(TP),對于負(fù)樣本,即圖片中不存在箱號區(qū)域,此時系統(tǒng)沒有錯檢出箱號也算做一次正確預(yù)測,稱之為True Negative(TN),準(zhǔn)確率(A)表示正確預(yù)測的數(shù)量與總數(shù)量(N)的比值,交并比和正確率的計(jì)算公式為

與譚偉等[13]提出的基于數(shù)學(xué)形態(tài)學(xué)的集裝箱箱號分割改進(jìn)算法、劉岑等[14]提出的基于YOLOv3的箱號定位、崔循等[15]提出的基于改進(jìn)的Faster R-CNN的箱號定位算法進(jìn)行對比,本文所述方法準(zhǔn)確率更高,平均耗時更低,對比結(jié)果如表2所示。

表2 集裝箱箱號定位測試結(jié)果對比
對于集裝箱箱號字符檢測模塊,對每個字符分類進(jìn)行檢測所得到的結(jié)果如表3所示。其中,P為準(zhǔn)確率,R為召回率,mAP為平均精度。

表3 集裝箱箱號字符檢測模塊測試結(jié)果
對于該系統(tǒng)的總體識別結(jié)果,總體正確率表示系統(tǒng)對測試集中原始圖片做出正確預(yù)測的結(jié)果在測試集中的占比。總體漏檢率表示對測試集中原本出現(xiàn)箱號卻判斷沒有箱號的錯誤預(yù)測在數(shù)據(jù)集中的占比。總體錯檢測率表示對沒有箱號的測試圖片卻預(yù)測出箱號,以及對有箱號的測試圖片中的箱號做出錯誤預(yù)測的結(jié)果在測試集中的占比,測試結(jié)果如表4所示。

表4 系統(tǒng)總體測試結(jié)果
本文所述算法是一種高效準(zhǔn)確的箱號識別算法,在進(jìn)行識別操作前,先對原始圖片進(jìn)行背景剪除,利用改進(jìn)的輕量化YOLOv3在低分辨率上進(jìn)行箱號定位,提高計(jì)算資源利用率、節(jié)省耗時的同時使后續(xù)識別和檢測更為精準(zhǔn)。再對高分辨率的集裝箱箱號區(qū)域圖片利用改進(jìn)的較深層的YOLOv3在特定尺度上進(jìn)行字符的精準(zhǔn)檢測,得到集裝箱箱號。實(shí)驗(yàn)結(jié)果表明,該算法總體正確率達(dá)到了98.4%,且平均總體耗時僅為103 ms,能夠高效準(zhǔn)確地識別箱號。