路云 胡杰
摘要:陸地交通和水上交通是我國交通運輸必不可少的兩部分,而水上交通以船運為主。類似汽車車牌號,正規(guī)的船舶一般在兩舷水線以上標(biāo)明舷號以方便身份識別,但由于舷號命名和印刷的非標(biāo)準(zhǔn)性,其計算機的圖像識別尚未進入實用階段。本文基于EAST 的場景文本檢測算法以及基于CRNN的端到端不定長文字識別算法,提出一種分階段識別船舶舷號的解決方案。實驗結(jié)果表明,該方案能較有效地對船舶舷號進行檢測與識別,識別的準(zhǔn)確率為73.06%。
關(guān)鍵詞:深度學(xué)習(xí);舷號檢測;舷號識別;EAST;CRNN
中圖分類號 TP391? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)11-0178-03
Detection and Identification of Ship's Hull Number Based on Deep Learning
LU Yun,HU Jie
(School of Computer Science, Yangtze University, Jingzhou 434000, China)
Abstract: Land transportation and water transportation are two essential parts of China's transportation, and water transportation is mainly based on shipping. Similar to car license plate numbers, regular ships generally have hull numbers above the waterline on both sides to facilitate identification. However, due to the non-standard naming and printing of hull numbers, computer image recognition has not yet entered the practical stage. Based on EAST's scene text detection algorithm and CRNN-based end-to-end variable length text recognition algorithm, this paper proposes a solution to identify hull number in stages. Experimental results show that this scheme can detect and identify ship's hull number more effectively, and the accuracy of identification is 73.06%.
Key words: deep learning; detection of hull number; identification of hull number; ESAT; CRNN
1 引言
水上交通的船運在陸地交通擁擠的情況下,以其耗能低、載量大和運費少的優(yōu)點發(fā)揮著重要的交通運輸作用,即使有港口調(diào)度,規(guī)定具體時間段的具體船舶通行時間及航道,但也沒有發(fā)揮真正的優(yōu)勢,交通混亂、行駛不規(guī)范、撞擊航標(biāo)燈、船舶搶修不及時以及貨船側(cè)翻傾覆現(xiàn)象等時常發(fā)生。舷號像車牌號一樣透露出該船的基本信息,例如中國海軍小型艦艇和軍輔船舷號命名規(guī)則如下:“1”字頭為航母和驅(qū)逐艦,“2”或“3”字頭為常規(guī)潛艇,“4”字頭為核潛艇等[1]。運輸船的舷號也有特定的命名規(guī)則,命名規(guī)則不統(tǒng)一,舷號位置不固定,印刷字體及大小不固定,要考慮到漢字和數(shù)字的多種組合。因此,港口調(diào)度結(jié)合船舶舷號的檢測與識別可以得出該船舶的基本信息,方便事故追溯和及時搶修索賠,有利于規(guī)范行船行為,確保水上交通順暢。
自從2012年Krizhevsky等[2]使用深度卷積神經(jīng)網(wǎng)絡(luò)在大規(guī)模視覺識別挑戰(zhàn)(Large scale visual recognition challenge, LSVRC)上獲得冠軍后,深度學(xué)習(xí)在圖像、文字、語音、視頻等領(lǐng)域受到了廣泛的關(guān)注[3]。海上頻繁運輸以及多變的天氣狀況使得船舶舷號清晰度、完整度略有不足,采集船舶圖像時也極易受到外界環(huán)境影響,傳統(tǒng)圖像處理方法已無法滿足需求,但是現(xiàn)在,可以通過深度學(xué)習(xí)的方法從訓(xùn)練數(shù)據(jù)中直接學(xué)習(xí)有效的特征,以獲得泛化能力更強的高級特征屬性。本文采用基于深度神經(jīng)網(wǎng)絡(luò)的EAST算法檢測舷號,然后將舷號區(qū)域提取出來用CRNN算法識別舷號的具體內(nèi)容,在舷號的命名多變、長度多變、字體多變、大小多變以及殘缺模糊等情況下魯棒性更強。
2 舷號檢測
本文實驗所用的船舶圖像來源于網(wǎng)絡(luò)上的部分SeaShips數(shù)據(jù)集,該數(shù)據(jù)集包括內(nèi)河航道中通行的6種船舶圖像。第一階段在低分辨率全局船舶圖像中檢測出舷號區(qū)域位置,主要包括兩個方面的工作,分別是框出舷號位置,并將舷號從船體中分割出來。
EAST全稱是Efficient and Accurate Scene Text Detector,是一種基于單一神經(jīng)網(wǎng)絡(luò)的兩階段的端到端快速高效的文本檢測算法,有效地消除了中間的候選區(qū)域聚合、字符分割、后處理等多個不同的階段,直接檢測字符區(qū)域,檢測的形狀可以為任意傾斜的四邊形或矩形框,正好符合曲面體的舷號區(qū)域。EAST模型主要由特征提取、多尺度特征融合以及預(yù)測結(jié)果生成三部分構(gòu)成,在進行訓(xùn)練的過程中加入數(shù)據(jù)增強,包括隨機縮放,隨機裁剪,裁剪的目標(biāo)尺寸大小是512[×]512,隨機旋轉(zhuǎn),改變明度、對比度、色調(diào)以及飽和度等,以擴充數(shù)據(jù)集。檢測舷號區(qū)域經(jīng)過以下幾個步驟:
(1) 通過PVANet特征提取主干網(wǎng)絡(luò)進行舷號檢測,抽取不同層的feature map得到不同尺度的特征圖;
(2) 利用 U-shape的思想逐步合并特征圖,并且每層網(wǎng)絡(luò)保持較少的上層采樣,既利用不同級別的特征值,又節(jié)約了一定的計算成本,減少了網(wǎng)絡(luò)層中參數(shù)的數(shù)量[4];
(3) 采用RBOX幾何特征圖模式輸出一系列具有旋轉(zhuǎn)角度的矩形檢測框;
(4) 根據(jù)面積、高寬比等條件篩選滿足要求的舷號區(qū)域,然后按照舷號在整個船舶圖像中的先驗位置信息定位到舷號區(qū)域并輸出。
EAST的損失函數(shù)如公式(1)所示,Ls代表分?jǐn)?shù)損失函數(shù),Lg代表幾何損失函數(shù),λg為兩個損失函數(shù)之間的重要性,一般設(shè)為1。為了簡化訓(xùn)練過程,使用公式(2)類平衡交叉熵表示Ls,其中[Y]為預(yù)測值,[Y*]為標(biāo)注值,[β為]正負(fù)樣本之間的平衡因子,使用公式(3)表示Lg,總體幾何損失是AABB幾何形狀損失和角度損失的加權(quán)和, [LAABB]部分使用 IoU損失函數(shù)使計算更加平均化。
[L=Ls]+[λgLg]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)
[Ls=-βY*logY-1-β1-Y*log1-Y]? ? ? ?(2)
[Lg=LAABB+λθLθ]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)
3 舷號識別
通過舷號文本檢測及提取,可獲得舷號區(qū)域的圖像,第二階段在局部舷號圖像中檢測出舷號的每個字符,并通過字庫匹配最終確定船舶舷號內(nèi)容,這里不考慮字母和符號的識別。
3.1 生成數(shù)據(jù)集
實地搜集數(shù)據(jù)集具有一定困難,且可用的數(shù)據(jù)集較少,所以根據(jù)實際情況生成以擴充數(shù)據(jù)集。長江流域上行駛的運貨船船體和舷號具有一定的特征,常見的船舶顏色以白色、藍(lán)色、灰色、紅色、黑色以及綠色為主,結(jié)合椒鹽噪聲和高斯模糊,生成相應(yīng)的船體顏色,即舷號背景圖。然后根據(jù)舷號的特點選用0到9十個數(shù)字以及常用的貼合舷號命名的500個漢字隨機生成舷號數(shù)據(jù)集,字符大小控制在14號至30號之間。由于舷號印刷體不固定,所以搜集了微軟雅黑常規(guī)、宋體常規(guī)、隸書常規(guī)、SitKa Text粗體和Times New Roman粗體等字體文件,結(jié)合字體文件通過PIL的字符生成函數(shù)生成舷號字符,舷號一般為白色或黑色。并且通過高斯模糊、適當(dāng)膨脹、適當(dāng)腐蝕、隨即添加噪聲等進行數(shù)據(jù)增強,以提高識別的準(zhǔn)確率。生成的部分舷號數(shù)據(jù)集如圖1所示。
3.2 CRNN識別
CRNN全稱是Convolutional Recurrent Neural Network,是一種卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),不需要分割舷號,就可以識別整個舷號的內(nèi)容,網(wǎng)絡(luò)結(jié)構(gòu)從下到上依次為卷積層CNN,循環(huán)層RNN和轉(zhuǎn)錄層CTC,如圖2所示。CRNN改進了CNN模塊和RNN模塊中的LSTM,顯著提升了不規(guī)則文本的識別準(zhǔn)確率,同時對較規(guī)則文本具有很好的魯棒性。首先采用四個Conv*2-BN-MaxPool形式的塊結(jié)構(gòu)組成的卷積層提取圖像特征并根據(jù) Map-to-Sequence輸出特征序列,雙層卷積能更有效地提取圖像局部特征,BN能夠降低內(nèi)部協(xié)變量移位造成的影響,緩解梯度消失與梯度爆炸的問題,MaxPool可以快速提取圖像的深層特征,縮短訓(xùn)練時間。然后采用循環(huán)層的深度雙向LSTM識別向量化的特征以得到每列的概率分布。最后采用CTC和前向后向算法輸出最優(yōu)舷號識別結(jié)果。CRNN網(wǎng)絡(luò)由不同類型的神經(jīng)網(wǎng)絡(luò)組成,在訓(xùn)練的過程中,可以通過一個損失函數(shù)進行聯(lián)合訓(xùn)練,從而做到端到端的模型訓(xùn)練和結(jié)果預(yù)測[5]。
4 結(jié)果分析
本文實驗的開發(fā)環(huán)境,GPU 為 NVIDIA GRID T4-4Q,內(nèi)存為 8GB DDR4。深度學(xué)習(xí)開發(fā)平臺為 Pytorch 1.2.0版本,開發(fā)語言為 Python 3.6 版本,GPU并行開發(fā)環(huán)境為CUDA 10.0、CuDNN 7.4版本。首先基于EAST進行舷號檢測訓(xùn)練,框出舷號,將舷號區(qū)域提取出來后基于CRNN進行端到端的字符識別,并使用matplotlib的繪圖功能畫框,以微軟雅黑字體顯示最終識別的舷號內(nèi)容。
1) 舷號檢測時背影易干擾。檢測舷號區(qū)域時會誤框無舷號的其他區(qū)域,如圖3所示為正確檢測和錯誤檢測示例。這要求在檢測舷號之前要做進一步的圖像預(yù)處理,使舷號與其他區(qū)域區(qū)別明顯,弱化背景,并擴充數(shù)據(jù)集。
2) 舷號識別準(zhǔn)確率有待進一步提高。訓(xùn)練了825個epoch后,識別的準(zhǔn)確率為73.06%。每識別出一個舷號都會計算時間,通過多次測試,計算得出識別一個舷號平均耗費67ms。如圖4所示為正確識別舷號的結(jié)果圖,如圖5所示為舷號識別出錯的部分結(jié)果圖。這要求擴充真實情景下的舷號圖像,在生成舷號數(shù)據(jù)集時逐漸減少與真實數(shù)據(jù)集的差距,進一步進行圖像預(yù)處理和降噪處理,增加訓(xùn)練次數(shù),不斷調(diào)參,修改算法,優(yōu)化模型結(jié)構(gòu)。
5 總結(jié)與展望
為了識別運輸船舶的身份信息“舷號”,本文提出檢測與識別的分階段思想,首先用EAST 網(wǎng)絡(luò)定位到舷號區(qū)域,然后利用CRNN 網(wǎng)絡(luò)識別舷號字符。通過大量的訓(xùn)練和測試,驗證了該方法的有效性,在一定程度上有利于高效的水上交通管理。盡管如此,本文提出的方案仍有提高的可行性,在實驗流程上進一步細(xì)化,增加圖像預(yù)處理和舷號矯正,尤其是降噪處理。后期盡可能克服困難搜集更多的帶舷號的船舶圖像,并在生成數(shù)據(jù)集方面盡可能多的模擬真實情景中的舷號,采用遷移學(xué)習(xí),改進算法,增加數(shù)據(jù)訓(xùn)練,以達(dá)到更好的訓(xùn)練效果,進一步提高船舶舷號檢測與識別的準(zhǔn)確率,在港口合理調(diào)度的基礎(chǔ)上,優(yōu)化水上交通環(huán)境。
參考文獻(xiàn):
[1] 蕭蕭.中國軍艦舷號命名奧妙多[J].黨政論壇,2013(6):46.
[2] Krizhevsky A,Sutskever I,Hinton G E.ImageNet classification with deep convolutional neural networks[C]//NIPS'12:Proceedings of the 25th International Conference on Neural Information Processing Systems - Volume 1.2012:1097-1105.
[3] LeCun Y,Bengio Y,Hinton G.Deep learning[J].Nature,2015,521(7553):436-444.
[4] Zhou X Y,Yao C,Wen H,et al.EAST:an efficient and accurate scene text detector[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).July 21-26,2017,Honolulu,HI,USA.IEEE,2017:2642-2651.
[5] 易鑫.基于深度學(xué)習(xí)的不規(guī)則文本識別算法研究[D].成都:電子科技大學(xué),2020.
[6] 石鑫,董寶良,王俊豐.基于CRNN的中文手寫識別方法研究[J].信息技術(shù),2019,43(11):141-144,150.
【通聯(lián)編輯:梁書】