游 索,陳平平*,林鍵輝,黃勝秋,涂橋橋
(1.福州大學 先進制造學院,福建 泉州 350003;2.華輝建工集團有限公司,福建 福州 350800;3.福建省順天億建設有限公司,福建 龍巖 364105;4.福建領航園林工程有限公司,福建 廈門 361023)
隨著文字識別場景的日益復雜,對自然場景下文字識別的需求也愈發強烈。場景文字識別(Scene Text Recognition, STR)成為研究熱點,它是OCR的子問題,主要任務是將自然場景中的文字提取出來并轉化成字符形式。相較于傳統 OCR 技術,STR 具有更多的挑戰,例如字體多樣性、多尺度、任意形狀、光照、背景和模糊等[1]。
雖然近年來深度學習在STR中的應用有效解決了上述問題,但針對特定的應用場景,這些通用的STR算法無法很好地解決文本識別問題。本文面向集裝箱運輸及管理的自動化和智能化需求,旨在設計一個高效的集裝箱箱號的文字檢測算法。
為了構建更加精準、高效的檢測網絡,基于已有的文本檢測和識別研究,同時利用集裝箱箱號空間排布和字符分布等特征,創新性地提出了一種基于熱圖感知的集裝箱箱號檢測識別算法,能夠在箱號傾斜、字符不清晰等背景復雜的港口集裝箱圖像中精準地檢測圖像中的箱號,解決了該場景下的算法難點和應用的技術瓶頸。首先,設計了融合卷積塊注意力機制(Convolutional Block Attention Module,CBAM)[2]的MobileNetV3[3]輕量級網絡對箱號框進行初定位,充分利用初定位網絡高效地檢測出矩形箱號框;接著提出像素級字符區域自適應網絡(Pixel-level Character Region Adaptive Module,PCAM) ,用于初定位箱號優化,PCAM利用基于Transformer[4]自適應網絡得到圖像的字符級別熱圖,通過最小二乘法算法結合圖像形態學處理方法,得到精準的任意方向箱號區域。實驗結果表明,能夠達到97.5%的箱號定位準確率,滿足實際應用的實時性,為集裝箱箱號的精準檢測提供了新思路。
集裝箱箱號的檢測總體可分為傳統方法和基于深度學習的方法,其中常用的傳統箱號檢測方法有基于數學形態學、基于邊緣特征和基于最大穩定極值區域(Maximally Stable Extremal Regions,MSER)。王炎等[5]提出了一種基于數學形態學的箱號定位方法,利用膨脹、腐蝕等基本運算處理圖像,通過改進形態學結構元素對箱號進行定位。黃深廣等[6]提出基于字符邊緣特征的定位方法,利用字符的邊緣特征信息對集裝箱號進行定位。王冬云等[7]提出了一種基于導向濾波Retinex和自適應Canny的圖像邊緣檢測算法細化圖像邊緣。沈寒蕾等[8]利用一種最大穩定極值區域的方法,通過灰度化的方法得到圖像最大S穩定極值區域,再進行后處理,完成對集裝箱號定位。上述傳統的圖像學處理方法對背景較復雜的圖像進行檢測有一定的局限性,且檢測速度相對較低。隨著深度學習的快速發展,基于深度學習的目標檢測算法無論是在檢測精度還是在速度上都有著出色的效果。利用卷積神經網絡提取圖像特征用于分類問題,比較經典的目標檢測網絡有SSD[9]、R-CNN[10]、Fast R-CNN[11]等。2015年,Redmon等[12]提出了YOLO目標檢測算法,用深度神經網絡進行圖像特征提取,用回歸的思想做分類問題,有著較高的檢測速度和準確率。崔循[13]將YOLOv3[14]用于集裝箱箱號的檢測;劉岑等[15]通過修改YOLOv3網絡,將輸入改為單通道,都有著較好于傳統方法的檢測效果。
在集裝箱箱號的檢測中,無論是傳統圖像處理方法,還是深度學習,在解決箱號的初定位之后,由于實地檢測時拍攝角度或者集裝箱??糠较虻牟淮_定,都不可避免地要對初定位區域的箱號字符進行傾斜校正處理,達到最佳的檢測效果,以滿足后續識別的要求。常用的傾斜校正方法有基于投影分析法[16]、基于分塊質心法[17]、基于Hough變換法[18]和基于最小外接矩形法[19]。以上方法對長串字符的傾斜校正都依賴于單個字符在圖像中的具體位置,位置的獲取基本上是通過圖像二值化獲得字符所在的連通區域來實現。然而在實際的箱號檢測中,用圖像二值化獲取字符位置的方法魯棒性能較差。因為在實地拍攝時,很容易遇到光線不均的問題,運用二值化時強光或者背光的區域會被當成字符。此外,在初定位的箱號區域內,除了目標字符外,還有距離目標字符非常近的干擾字符,當初定位框比較大時,其他位置的字符,如公司logo、箱型尺寸等文本信息也會框進來,進而影響傾斜校正的結果。
本文設計了一種由融合CBAM的MobileNetV3輕量級初定位網絡和PCAM模塊組成的箱號檢測網絡,如圖1所示。對于采集的箱號文本圖像,首先由箱號初定位網絡輸出該文本的初定位矩形框。但是該階段輸出的箱號框往往會出現多框、漏框及框不準等情況,需對候選框進行優化。為了解決這些問題,進一步提出了PCAM,通過挖掘箱號字符熱圖信息,引入最小二乘算法,最終得到優化后的四邊形箱號框。

圖1 系統流程Fig.1 System flowchart
為了提高箱號初定位階段的算法實時性,采用MobileNetV3作為網絡主干,以特征金字塔結構(Feature Pyramid Network, FPN)為基礎,加入CBAM注意力模塊來平衡檢測速度和精度。
設計的融合CBAM的MobileNetV3輕量級網絡,主干輸出3個尺度的箱號文本特征圖,圖像尺寸分別為13 pixel×13 pixel、26 pixel×26 pixel、52 pixel×52 pixel。然后通過FPN,將箱號特征圖進行多尺度特征融合。接著將融合得到的3個特征圖輸入到CBAM注意力機制模塊。通過卷積進行特征圖的平滑處理,得到通道數為21的3種不同尺度箱號特征圖。最后通過網絡的檢測頭以及非極大值抑制,得到箱號框。融合CBAM的MobileNetV3網絡結構如圖2所示。

圖2 融合CBAM的MobileNetV3輕量級的箱號初定位網絡Fig.2 MobileNetV3 lightweight coarse positioning network fused with CBAM
針對箱號字符呈直線排布的規律,提出了PCAM,如圖3所示。
具體而言,PCAM設計了一個基于Transformer的字符熱圖生成網絡,預測圖像中每一個字符熱圖信息,并利用熱圖非剛性邊界真值區的域像素值大小關系,獲取字符中心點的位置,然后對中心點進行直線擬合,得到擬合直線與目標箱號字符所在像素組成的連通域,并將此區域作為最終目標箱號區域。

圖3 PCAMFig.3 PCAM
2.3.1 字符熱圖生成網絡
字符熱圖生成網絡的目標是精確定位自然圖像中的每個字符區域,以更好地找到字符的中心點。為此,本文訓練的數據集采用合成文本(Synthtxt)[20]數據集,獲取圖像中每一個文本的熱圖標簽再進行訓練。在PCAM中,利用基于Transformer的字符熱圖生成網絡,生成單字符熱圖。將Swin Transformer[21]作為主干網絡,分別得到原圖1/4、1/8、1/16、1/32 pixel大小的特征圖{C1、C2、C3、C4}。這些特征圖通過FPN結構融合得到特征圖{P1、P2、P3}:
式中:ReLU()表示激活函數,Bn()表示標準化,Conv()表示卷積核為3×3的卷積層,UpSample()為2倍上采樣層。
特征圖{P2、P3、C4}經過卷積平滑操作和上采樣,得到P1相同尺寸的128維特征圖,P1只進行卷積平滑操作。然后將{P1,P2,P3,C4}通道連接在一起得到通道數為512的特征圖F:
F=Concat(P1,P2,P3,C4)。
(4)
此時特征圖F已經具有了高層和底層相融合的豐富語義信息,然后將F輸入卷積預測頭得到字符級別熱圖。字符熱圖生成網絡整體結構如圖4所示。

圖4 字符熱圖生成網絡Fig.4 Character heatmap generating network
2.3.2 基于最小二乘法的箱號精準定位算法
由字符熱圖生成網絡輸出的文本區域,每個像素值的大小能夠反映其對應文本中心坐標的概率大小,其中字符中心坐標像素的值大于等于其四周像素值。為了對箱號直線區域進行擬合,本文設計像素遍歷算法,利用字符熱圖生成網絡輸出的熱圖,將初定位預選框內每一個字符的中心點標記出來,如圖5所示。

圖5 字符中心點示例Fig.5 Example of character center point
上述過程充分利用了文本熱圖區域分數據,得到了字符中心點的坐標。為了能將初定位網絡輸出的預選框內呈直線排布的字符連接在一起,滿足最后連通域選取箱號區域的要求,采取最小二乘法擬合的方法。
設直線方程y=ax+b,根據最小二乘法的原理,擬合出來的直線與輸入的每一個點的距離平方和最小,其目標函數為:
(5)
當F最小時,對目標函數求偏導,參數a、b滿足:
(6)
可得方程組:
(7)
解上述方程組得到a、b的值,即得到擬合的直線。箱號精準定位過程示例如圖6所示,其中矩形框為初定位網絡輸出的檢測框。通過最小二乘法擬合直線后,在圖6(b)即文本區域分圖像內,將直線所在的像素點設置為255,然后對該圖進行圖像二值化處理,接著通過連通域法,將直線所在的連通域選取出來,連通域采取8鄰接規則。最后通過最小外接矩形算法,得到目標連通區域的最小外接矩形4個頂點的坐標,即為最后箱號精準定位的結果。

在實際的集裝箱號檢測中,字符方向的直線擬合往往會受到干擾字符的影響,特別是檢測傾斜橫排集裝箱號,初定位網絡可能會框到多余的干擾字符。為擬合目標字符方向上的最佳直線、消除目標外字符的干擾,本文采取二次擬合的方案。具體方法為:在第一次擬合后,分別計算每一個參與擬合的點到擬合直線的距離,得到距離最小的4個像素點后再次擬合(若初定位網絡輸出矩形框內中心坐標點≤4,則不進行二次擬合)。圖7為擬合一次與二次擬合過程效果對比的一個示例,圖7(a)的矩形框為初定位網絡檢測矩形框,其中上排為一次擬合,下排為二次擬合。通過實際的檢測統計,二次擬合相比只擬合一次,可取得更好的直線擬合效果,獲得更加精準的箱號檢測效果。

圖7 一次擬合與二次擬合對比Fig.7 Comparison of primary and secondary fitting
本文實驗實測樣本均采集于福建江陰港口,來源于人工多角度隨機拍攝和攝像頭定點拍攝的1 500張照片。所測試樣本包含了晝、夜樣本,分辨率為1 920 pixel×1 080 pixel,排列方式有橫排和豎排2種,且包含了不同的集裝箱箱型、光照條件、傾斜角度、不同箱號大小以及不同的自然環境下的樣本,每一張圖片有箱號目標數量1~5個不等,共4 290個箱號個體。
本次測試的實驗硬件環境為 Intel i7-3770 CPU @3.40 GHz ,內存16 GB RAM,GPU 為NVIDIA 3060Ti,軟件環境為 Ubuntu 18.04 操作系統,使用PyCharm編譯工具。
為測試箱號初定位融合CBAM的MobileNetV3輕量級網絡的表現,在現有數據集基礎上,本文網絡同經典目標檢測算法進行對比實驗,并選用平均精準度均值(mAP)和平均定位速度作為評價指標來衡量不同算法的綜合性能。箱號初定位與其他算法對比結果如表1所示。
由表1可以看出,融合CBAM的MobileNetV3輕量級網絡在mAP和平均定位速度2個指標上都比YOLOv3和Faster R-CNN高,mAP達到了91.7%、速度達到了44.3 幀/秒;盡管精度略遜色于YOLOv5,但是在速度上與之相比提高了4.7 幀/秒,可見本文初定位網絡在保證檢測速度的同時,確保了初定位基本的精度要求。

表1 不同算法初定位準確率和速度對比Tab.1 Comparison of coarse positioning accuracy and speed of different algorithms
為了驗證本文提出的箱號檢測算法及整體識別算法性能,其中檢測部分與YOLOv3、YOLOv5、Faster R-CNN、文獻[22]的基于最大穩定極值區域(MSER)和連通域分析方法進行對比。
對于定位準確率的計算,本文對目標箱號區域做了四邊形的標注,當預測框與四邊形標注框的交并比值大于0.7時,認為定位成功。定位準確率為定位成功數與箱號框總數的比值, 具體實驗結果如表2所示。

表2 不同算法定位準確率和速度對比Tab.2 Comparison of positioning accuracy and speed of different algorithms
由表2可以看出,本文的定位準確率相比YOLOv3、YOLOv5、Faster R-CNN和文獻[22]都高,高達98.1%,說明本文定位算法具有較好的自適應能力。原因在于本文采用基于熱圖感知的精確后處理方法,能夠輸出任意方向的矩形框,可以有效排除箱號傾斜下非箱號區域字符的干擾。而YOLOv3、YOLOv5和Faster R-CNN只能輸出平行于圖像邊界的矩形框,即使檢測框能夠覆蓋所有箱號區域,卻因為檢測過多的背景和干擾字符而導致定位失敗;而文獻[22]采用MSER方法對于不同傾斜且多光照背景下箱號定位容易失敗。從平均速度來看,由于加入了熱圖感知優化部分導致速度有一定程度的下降,但是本文算法滿足實際應用中的實時性要求,箱號檢測結果展示如圖8所示。

圖8 本文箱號檢測結果展示Fig.8 Display of the container code detection results
本文提出了一種熱圖感知的集裝箱箱號檢測識別算法,利用融合CBAM的輕量級網絡高效地檢測出矩形箱號框,同時結合Transformer利用圖像中字符的熱圖以及圖像形態學處理方法,得到精準的任意方向箱號區域。實驗結果表明, 相比目前主流的文本識別算法有著明顯的精度提升, 并且魯棒性好、檢測速度高,可滿足實際場景的應用需求。此外,將進一步考慮實現端到端的箱號檢測識別算法,從而優化在實際項目中的部署。