吳高德 朱振剛 梅浪奇 劉 清
1 寧波港信息通信有限公司 2 武漢理工大學自動化學院
近年來隨著人工智能、計算機視覺和移動互聯網技術應用的深入,集裝箱箱號識別技術在集裝箱碼頭岸邊作業的理貨過程和閘口得到了廣泛應用[1-3],極大提升了集裝箱碼頭作業的智能化水平、生產效率和安全性。但碼頭堆場的集裝箱仍需要通過手工方式記錄集裝箱箱號,導致人工工作量大、效率低下、信息化水平低。隨著移動終端如智能手機的廣泛應用,國內外學者開展了基于移動終端來解決堆場集裝箱箱號識別問題的相關研究[4-5]。但移動終端只能拍攝1個后箱門的箱號作為識別對象,不能像閘口和岸邊理貨中箱號識別那樣,可以有5面箱號(頂面箱號、前箱面箱號、左側箱面箱號、右側箱面箱號、后箱門箱號)圖像選擇最佳識別結果。而且拍攝的圖像中字符傾斜角度相對較大,陰雨天、晚上等補光不能滿足要求,移動端的箱號識別技術對單張圖片的字符區域粗定位和精定位以及字符識別算法的識別率需要更高的要求。因此,目前基于移動終端的箱號識別還沒有得到實際應用。
本文基于深度學習技術、圖像處理技術、Flask服務端框架、微信小程序開發了一種基于移動端的集裝箱號識別系統,經過現場測試,移動端的箱號識別率達到97%,識別時間為500 ms內,滿足現場作業的要求。本文提出的箱號定位和識別算法還可以移至到智能理貨、智能閘口等相關箱號識別系統中。
移動終端箱號識別系統由前端作業現場中的移動設備(手機)構成的采集端和后端服務器識別系統構成的識別端兩部分組成,采集端通過移動設備中的微信小程序調用手機中的相機模塊對集裝箱箱門拍攝,獲得的圖像數據通過移動網絡傳送識別端圖像數據文件夾中,通過向識別端服務器發送識別請求,識別服務器進行箱號ocr智能識別,識別端服務器將識別結果返回給移動端設備顯示最終箱號。基于移動終端箱號識別服務系統關鍵流程分為微信小程序前端頁面顯示、前后端服務通信和后端箱號識別3個模塊(見圖1)。其中微信小程序前端頁面顯示模塊中主要實現圖像數據的采集功能并提交圖片至后臺服務器,并顯示接受到的識別后的箱號字符,其操作界面見圖2。前后端數據通信服務模塊采用的是Flask服務端框架[6],它是一種輕量級Web應用框架,具有易擴展應用功能、靈活度高等優點實現數據的通信功能。后端箱號識別服務主要采用箱號字符粗定位算法完成關鍵字符區域定位,再通過字符區域精定位算法定位旋轉字符塊,最后通過字符識別算法完成最終的箱號識別。

圖1 移動端箱號識別服服務系統關鍵流程

圖2 移動端操作界面圖
箱號識別服務算法主要包含字符區域的粗定位、圖像預處理、字符區域精定位、字符區域識別等算法組成。
在本文目標粗定位檢測要求中,通常只有1個或固定數目的目標,找出圖像中所有感興趣的目標(物體),確定它們的位置和大小。采集的圖片見圖3(a)。粗定位算法需要在圖像中定位箱號的字符區域來完成箱號字符粗s定位檢測,因此又快又準確的目標檢測算法對本系統至關重要,目前常用的定位算法有傳統區域定位算法和深度學習算法,其中常用的深度學習定位算法如下:YOLO、STDN、SPP-Net、Fast R-CNN等,傳統的區域定位算法如下:FASText、CTPN等,根據測試速度以及目標檢測精度方面綜合考慮,本文采用YOLO V4[7]算法進行關鍵區域定位,粗定位的字符塊情況見圖3(b),YOLOV4算法的網絡結構見圖4。本實驗是在GTX1080顯卡上進行模型的訓練測試,其中訓練集數據量為28 866張圖片,測試集數據量為5 000張圖片,測試結果定位正確率在99.9%左右(見表1),顯見YOLO V4網絡能夠滿足箱號字符粗定位關鍵區域檢測的要求。

圖3 箱號字符粗定位效果圖

圖4 YOLO V4網絡結構圖

表1 YOLO V4粗定位情況表
圖像預處理算法是突出感興趣區域并同時減少其他因素的干擾,有易于圖像的最終識別,由于陰雨天、晚上、補光燈等復雜的環境影響,移動端相機的成像清晰度質量相對較低,從而影響最終的箱號識別。因此提高圖像的成像質量尤其關鍵,其中常用的方法有灰度轉換、均值/中值/維納濾波濾波器、圖像銳化、對比度改善、圖像平滑、直方圖均衡化等方法[8],本文采用對比度增強算法進行圖像的預處理增強來提高夜間的圖像,處理后效果良好。
由于手機拍攝的圖像存在一定的傾斜問題,如何精確定位各個字符塊區域顯得尤為重要。一般情況下檢測定位出的對象是矩形,能夠定位為旋轉四邊形才能減少其他字符的干擾,因此采用定位旋轉矩形來表示字符塊。但是旋轉矩形的旋轉角比較難得到,本文采用一種能夠定位旋轉框目標的算法:gliding_vertex[9],其核心基本思想是通過4個點在非旋轉矩形上的偏移量來定位出1個四邊形來表示1個字符區域。精定位后的效果見圖5,字符塊定位情況見表2。結果表明該算法能夠滿足箱號字符塊精定位的測試要求。

圖5 精定位后效果圖

表2 字符塊精定位情況表
傳統的字符識別方法一般都是單字符識別的方式進行,首先對字符區域進行字符矯正,然后再進行單字符分割,再通過到字符分類器或者BP神經網絡算法完成單字符的識別,最后組合在一起完成箱號的識別。但是該方法對于一些復雜成像的字符識別難以保證其識別率,因此采用RARE[10]算法進行箱號的字符塊識別,它主要解決不規則排列文字的文字識別問題,針對不規則文字,先矯正成正常線性排列的文字再識別。字符塊的訓練測試識別情況見表3,結果表明RARE識別算法能夠滿足箱號字符塊識別的要求。

表3 RARE字符塊的識別情況表
該箱號識別系統最終在移動端的識別結果顯示界面見圖6,現場測試的箱號識別率見表4,測試9天約1 203次作業,無論是下雨天、白天還是晚上,平均箱號識別率在97.35%左右,平均測試時間不超過500 ms,滿足了現場作業的要求。現場測試顯示,該方法在移動端的集裝箱號識別系統是具有可行性的,結合Python軟件編程能夠快速并且準確地識別出箱號并返回結果給移動端。

圖6 移動端箱號識別結果界面

表4 現場測試箱號識別率統計表
本文設計的移動端箱號識別方案適用于碼頭、海關、閘口等快速記錄箱號,對場地沒有特殊要求,界面設計簡潔清晰,工作人員使用便捷靈活。相比于傳統方法,該識別算法識別率更高,識別速度更快。該系統的應用降低了人力的工作量,提高了工作效率,對港口智能化水平有推進作用。