周 怡,祝啟瑞,謝海成,羊箭鋒
(蘇州大學電子信息學院,江蘇 蘇州 215006)
隨著交通科技的發展,水路航運在交通運輸方式中起到了越來越重要的作用,不斷推動著經濟全球化的發展。船舶是水路運輸過程的重要載體,因此在船舶之間、船舶與岸臺如何進行高效、準確的身份識別,成為保障航道安全的重點問題[1]。
船舶銘牌是船舶最重要的身份識別信息之一,銘牌上的船名標識是由國家統一規定的船舶身份信息。目前已經有一些文獻通過計算機視覺等相關技術對船舶銘牌進行識別與監管。金雪丹[2]將船舶監管系統與計算機視覺相結合,用來實現岸臺和目標船舶之間的識別與通信,并提出運用圖像處理相關技術和神經網絡對船舶進行分類和識別。古輝[3]等基于雙線性空間變換技術與弧度插值等技術提出了銘牌字符矯正方法。Zhu[4]等提出船舶非標銘牌的定制化字符識別。
加強對船舶身份的管理,亟需在各個航道設立實時智能視頻監控系統,通過圖像處理以及計算機視覺等相關技術對船舶銘牌進行提取與識別。設立的視頻監控系統需要實時、準確地對銘牌圖像序列進行目標檢測、分類和定位。與目前流行的車牌檢測算法不同的是,船舶銘牌由于較多內外因素的影響,其檢測更為復雜。例如銘牌字體印刷方式多變、印刷位置差異巨大、字符傾斜、外部光照、懸掛物遮擋與航道環境復雜、銘牌銹蝕損傷等。因此,必須結合相應的目標檢測算法與有限庫匹配等后續處理,才能達到準確、高效識別非標銘牌的要求。
傳統的目標檢測方法有三種:光流法[5]、背景建模法[6]和幀間差分法[7]。光流法是基于灰度圖中像素的運動矢量來提取目標并跟蹤的,光流法的檢測精度較高,但抗噪性能差,且所需硬件成本較高。幀間差分法對相鄰兩幀圖像之間的差值進行計算,對滿足設定閾值的目標進行提取,可以實時準確地對區域內運動目標進行檢測,但幀間差分法對速度較慢的運動目標檢測較差,且抗噪性能不高,很難長時間對運動目標進行檢測。背景建模法通過計算每一幀與背景模板之間的差值提取滿足閾值的運動區域,其優點是可以適應復雜多變的環境狀況,能夠完整地檢測出運動目標。但由于船舶航行時,會產生波浪、陰影、光強等多方因素影響,背景建模法會出現誤檢的現象。
為了更好地避免外界因素對檢測的影響,本文采用基于卷積神經網絡的目標檢測算法。卷積神經網絡(convolutional neural networks,CNN)是一種前饋神經網絡,其人工神經元能夠相應覆蓋范圍內的周圍單元,使得圖像可以作為網絡的直接輸入,無需傳統目標檢測算法中復雜的特征提取過程以及數據重建過程[8]。相對于傳統的檢測方法,基于卷積神經網絡的目標檢測可以更好的解決外部因素的影響,更適合船舶非標銘牌的提取與識別。
卷積神經網絡主要的組成部分有卷積層、池化層以及全連接層。卷積層和上一層的局部接受域連接,進行卷積運算提取區域的特征。池化層將上一層傳遞的數據進行采樣或聚合,通過采樣最大值或平均值等將該區域數據的復雜度大大降低,同時保留了數據的關鍵信息。全連接層起到分類器的作用,能夠將學習到的“分布式特征表示”映射到樣本標記空間。
基于卷積神經網絡的目標檢測算法大致可以分為兩大類,一類是基于區域提名的目標檢測,例如R-CNN、Fast R-CNN[9]等,另一類是端到端的檢測,例如YOLO[10](You Only Look Once)、SSD[11](single shot multibox detector)等。由于在船舶非標銘牌識別系統中,需要同時滿足實時性和準確性并存的要求,本文提出了基于卷積神經網絡的YOLO檢測方法,能夠快速精確的識別出船舶非標銘牌。
本文使用的YOLOv3[12]基本框架結構如圖1所示,采用了DarkNet-53的網絡結構,主要由卷積層、批標準化層連接而成,其采用LeakyRelu激活函數。同時借鑒了殘差神經網絡(Residual Network)的做法,在一些層與層之間設置了快捷鏈路。

圖1 YOLOv3框架Fig.1 YOLOv3 framework
DarkNet-53網絡的輸入為256×256×3,其中包含多個不同的殘差單元,每一個殘差單元由兩個卷積層和一個快捷鏈路組成。整個YOLOv3結構中通過改變卷積核的相應步長來進行張量的尺寸變換,由此替代掉了原先的池化層和全連接層。YOLOv3借鑒Faster R-CNN中的錨箱(anchor)機制,通過維度聚類的方法聚類出9種尺寸的先驗框,同時直接預測出先驗框的相對位置。對邊界框(bounding box)進行預測時采用了邏輯回歸方式,用于對錨箱包圍的部分進行目標性評分,預測該位置為目標的可能性有多大,以此去掉不必要的錨箱,減少計算量。YOLOv3將輸入圖像映射到3個不同尺度的輸出張量,用以代表圖像中各個位置存在某種目標的概率。
在YOLOv3的目標檢測任務中,需要確定幾個關鍵信息:坐標(x,y),長寬(w,h),分類(class),置信度(confidence),因此損失函數由各自的特點分別確定并相加得到,其表達式為:

(truthconf-predictconf)2
(1)
式中,主要分為三部分,坐標損失函數、置信度損失函數以及類損失函數。λobj代表柵格是否存在物體,當柵格內存在物體時λobj為1,反之為0。由于YOLOv3的檢測在三個尺度上進行,有13×13、26×26、52×52,每個b-box負責對三個anchor box進行回歸操作,因此最終輸出的尺寸為1×(3×(13×13+26×26+52×52))×(5+k)=1×10647×(5+k),其中k代表類的數量。
坐標損失是希望預測的邊界框和先驗框之間的差距能夠盡可能與真實框和先驗框的差距接近,使得預測的邊界框能夠最大的接近真實框,置信度損失與類損失則是希望預測的目標與類別更趨于準確。通過網絡訓練的過程,損失函數會計算預測值和真實值間的誤差,進一步調整參數,使得預測模型性能更好。
YOLO目標檢測是一種端對端的算法。采用架設在鶴溪大橋下京杭運河航段的兩臺網絡高清攝像機大量采集樣本圖片。兩臺攝像機架設方式如圖2所示。
其中1號為大焦距攝像機,用來采集船舶非標銘牌的細節更優、距離更近的圖片用以訓練字符;2號為小焦距攝像機,用來拍攝范圍更大的航道信息,同時對船舶物體進行訓練。分別提取分辨率為1280×720的10000張圖片制作訓練集和驗證集、提取1000張圖片制作測試集,通過大樣本圖片的采集有效解決了訓練集不足的問題。樣本包括了不同光照環境下、不同時間點的圖片,使得最后訓練出的模型具有較好的性能。YOLO目標檢測的樣本需要手動進行標注,為了避免光照、背景對船舶銘牌的影響,對船舶銘牌的樣本圖片采取二值化處理、中值濾波后進行標注訓練的方式,處理后的銘牌如圖3所示,每批訓練圖片的數量為10,迭代次數為1000。

圖2 攝像機架設示意圖Fig.2 Schematic diagram of camera erection

圖3 樣本處理示例Fig.3 Sample processing example
本文選取在架設在鶴溪大橋的兩組攝像機進行船舶視頻監控,用以進行算法的驗證分析。仿真實驗的在PC端完成,主要配置為:Inter(R)i5-4590 CPU處理器,主頻為3.30 GHz,GPU(NVIDIA GeForce GTX 1070)。
實驗中,使用小焦距攝像機的圖像進行實際測試。將包含有船舶目標的航道圖片輸入網絡后,首先對船舶進行識別與定位,將船舶所處的預測框裁剪出圖片。由于船舶圖像為長方形,網絡的輸入為正方形。且相對于高度來說,船舶的長度太大,直接對圖片進行尺寸的變換會壓縮圖片上的銘牌信息,因此將船舶圖片按寬度等比分為三段分別輸入網絡中,識別定位出銘牌,并裁剪出銘牌的預測框包含圖像。最后將銘牌再次輸入,能夠識別出船舶身份信息。船舶非標銘牌的檢測流程如圖4所示。

圖4 非標銘牌檢測流程示例Fig.4 Example of non-standard nameplate inspection process
通過測試結果,得到在測試集上YOLOv3目標檢測的查準率、查全率、每秒識別的幀數,相對于CNN和Faster R-CNN實驗結果如表1所示。

表1 測試集在YOLOv3上的實驗結果Tab.1 Experimental results of the test set on YOLOv3
觀察測試集在YOLOv3上的表現,同時與其他兩種方法比對發現,盡管YOLOv3的每秒識別幀數fps遠大于其余兩種方法,基本滿足實時性的要求,但是直接將YOLO用于非標銘牌識別會存在一些漏檢、錯檢的現象,這是因為船牌為非標銘牌,本身會存在銘牌銹蝕、障礙物遮擋等導致字符模糊不清的因素,再加上光照不均等外界因素,查準率和查全率較低。基于以上問題,本文在檢測之后采取設置關聯因子的方法,在有限船名庫中進行匹配。
交通運輸部發布的《船舶名稱管理辦法》對船舶銘牌的字符組成及數量做出了規定,其中第四條規定“船舶中文名稱由2個或是兩個以上的規范漢字后加阿拉伯數字構成”。針對銘牌為中文加數字這一特點,且船名中文部分組成為有限庫,隨機選取鶴溪大橋航道上不同時段的10000艘貨船進行中文船名庫的制作,制作出的中文船名庫中出現次數前15高的船名如圖5所示。

圖5 中文船名庫出現次數前15高的船名Fig.5 The top 15 ship names in the Chinese ship name database
依據管理規定中對船舶銘牌的中文部分制定的要求,再加上統計得到的中文船名庫,本文創新型的以δ因子作為匹配有限庫的參數,用來調節檢測非標銘牌與船名庫的關聯程度。可以得到非標銘牌識別系統的匹配公式為:

(2)
式中,R為檢測到的不完整非標銘牌中的單個字符序列;ω為中文船名庫中的統計字符所占比重;N為檢測到的銘牌字數。將檢測之后的船名在有限中文庫中尋找存在的相同字符,如果發現缺失字符,則依據船名出現次數占比,根據模糊匹配的規則自動找出可能性最高的船名。
經測試,通過有限中文庫模糊匹配后的非標銘牌識別系統,能夠保證較高的查準率和查全率,以及較快的檢測速度,如表2所示。這滿足了非標銘牌識別的準確性和實時性的要求。

表2 設置有限中文庫匹配后的實驗結果Tab.2 Experimental results after setting up limited Chinese library matching
設計非標銘牌有限中文庫匹配機制,通過匹配最大關聯因子解決銘牌無法辨別的問題,在很大程度上提高了系統的準確率。同時,每隔固定時間對中文船名庫進行更新,減少新增名牌帶來的誤差,進一步提高了系統的穩定性。
本文設計了一種基于YOLOv3目標檢測的非標船牌識別系統,通過視頻監控的方式實時準確對監管航道船舶進行船號的識別與獲取,并在YOLOv3目標檢測的基礎上提出了有限船名庫模糊匹配的思想。
本文對主要的目標檢測技術進行了詳細的描述,針對船舶非標銘牌識別的可行性與難點進行了分析介紹,提出船名有限中文庫模糊匹配方法,完成了對船舶非標銘牌較高查準率、查全率的識別,滿足了視頻監測準確性、實時性的要求。在后續的工作中,將不斷補充并完善現有船名中文庫,將系統更好地應用于廣泛場景中。