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