冉鑫,彭將輝
(上海海事大學 商船學院,上海 201306)
船舶水尺是在船舶的首、尾及船舶中間兩舷的位置上繪制的刻度,用于估量船舶吃水深度,是進行船舶計重和船舶積載安全評估的重要依據.
傳統的水尺觀測主要依靠人工目測,但此方法由于主觀或客觀因素(如工作量大、觀測不便、觀測者經驗、天氣條件、有無障礙物、危險性等),誤差較大.針對該問題,相關專家學者提出多種船舶電子水尺檢測方法.孫國元等[1]提出一種雙壓力傳感器船舶吃水檢測法,可自動監測船舶的6面水尺,但此方法對傳感器的精度要求高,且因傳感器放置環境潮濕,其電子線路不易布置.鄭灼輝[2]提出無須在惡劣環境下布置電子線路的超聲波水尺,利用傳感器接收發射到水面后返回的超聲波,根據當地聲速計算船舶吃水值.但聲速的誤差直接影響結果精度,而聲速又與介質密度有關,空氣中的介質受溫度影響較大,因此,超聲波水尺的精度不高.

圖1 船舶水尺標志
隨著圖像處理技術的蓬勃發展,涌現出很多利用圖像處理方法進行字符圖像自動識別的技術[3-4],同時航海行業對該技術的應用也越來越多,金雪丹等[5]提出一種基于靜態照片對船舶進行分類的方法.船舶水尺刻度主要由1個英文大寫字母“M”和10個阿拉伯數字字符組成,見圖1中的米制標志圖.該類字符的識別主要有模板匹配算法和神經網絡算法2類.前者常采用輪廓、投影等特征,對相似字符的區分能力較弱;后者需要選擇輸入特征、設計網絡結構以及優化系統參數,工作很復雜.
針對數字進行識別的具體算法有很多種.比如最小距離法是模式識別中最傳統的方法,其算法簡單,對小樣本問題有一定的優勢,但無法保證良好的識別率.在某些參數發生變化時,如特征值矩陣的分塊選取變化,實驗的識別效果差別就會比較大.[6]魏暢然[7]采用穿線法,但穿線條數必須大于一定的數值,才能使編碼重復率較低,保證識別水平.
船舶的所有水尺刻度高度均為10 cm,筆劃寬度基本一致,非常適合用細化算法提取字符的結構特征.因此,本文提出一種針對水尺數字刻度圖像三叉點結構特征的提取方法,將其制成樣本模板與特征模板進行匹配,實現船舶水尺刻度的自動識別.

圖2 圖像的預處理流程
水尺刻度圖像的預處理主要包括水尺刻度區域分割、形狀矯正、二值化、噪聲處理和圖像細化等,預處理流程見圖2.
船舶水尺圖像通過攝像機拍攝船體水尺獲取.船舶水尺刻度通常用白色油漆涂寫,可根據此特征提取水尺刻度區域.由于本文重點是圖像特征的提取和模板匹配算法,圖像分割方法在此不詳細展開.
由于船體本身不完全豎直,并且受攝像機架設角度的影響,所拍攝的圖像中水尺刻度會有一定的不成比例的壓縮變形.如果不進行形狀矯正,水尺刻度識別的準確性將受到較大影響.水尺圖像的幾何矯正可以用外接矩形和最小外接矩形進行仿射變換或投影變換,將歪斜的字符區域變換成方正的區域.[8]計算仿射矩陣,將原圖中像素點{p=(x,y),x∈R,y∈R}對應到新坐標系中的像素點{p'=(x',y'),x'∈R,y'∈R},通過仿射變換

計算矩陣對坐標進行放縮、旋轉、平移后取得的新坐標值.
水尺刻度特征提取需要進行圖像二值化處理,將圖像中的每個像素按一定閾值分類,將水尺圖像轉換成二值圖像.文中水尺刻度圖像二值化采用Kittler算法[9],通過計算整幅圖像梯度灰度的平均值獲取分割閾值.此方法效果好、速度快,可以應用在質量不錯的圖像上.水尺刻度圖像二值化后,進行必要的數學形態學處理可以提高圖像識別率.通過運用腐蝕和膨脹操作,消除圖像中不大的噪聲區域,填補水尺刻度圖像中的孔洞,從而得到水尺刻度的平滑邊緣.在連續進行幾次腐蝕迭代后,再進行同等次數的膨脹操作,可以加強去噪和平滑的效果,達到較好的期望效果.
水尺刻度圖像細化,就是尋找水尺數字的中軸線或骨架,以其骨架取代數字.細化之后,該數字的像素寬度為1,可以用數學語言嚴格地描述圖形的軸線或骨架.本文采用Hilditch細化算法[10],通過一種串行處理方式最終得到8鄰域連接線條.數字圖像的特征提取是在細化的基礎上進行的.
水尺刻度的三叉點特征表明字符筆畫的連接關系,體現待檢測字符的結構特征.因此,將水尺數字的三叉點作為特征點能夠很好地保證不同數字之間的區分度.利用水尺刻度三叉點的位置特征,構造圖像的特征模板,利用模板匹配實現水尺數字的機器自動識別.
二值化后,設水尺刻度圖像的背景點像素值為0,前景點像素值為1,則圖像各前景像素所對應的T值為


表1 當前像素點及其鄰域像素
式中:ti(i=1,2,…,8)表示第i個像素點處的值.t0表示當前點.若 T=1,則 t0是端點;若 T=2,則 t0是一般的連點;若 T=3,則 t0是三叉點;若 T=4,則 t0是四叉點.像素點分布見表1.
水尺刻度的三叉點特征是從細化處理后的圖像上提取的,由于提取出的三叉點信息是圖像中多個彼此相鄰的同類特征點的集合,需要在提取方向信息時將他們聚類成一個點.三叉點的方向特征按規定有向上、向下、向左、向右和其他共5類.[11]判別水尺刻度圖像三叉點方向的方法如下:
(1)對三叉點所在的3×3鄰域的每一行、列進行計數運算,并且只有在該行(列)存在前景點時才計數.若三叉點的鄰域中,存在1個行的計數值等于3并且1個列的計數值等于2的點,則判定該點的方向為上或下;如果三叉點又處在行計數為3的行的上方,則判定該點的方向向上,反之向下.
(2)判斷三叉點的左右方向的理論方法與判定上下方向的方法類同.
(3)方向為其他的三叉點標記為0.
針對水尺刻度圖像的三叉點方向進行判別后,接著就可以進行相應的特征模板制作.基于水尺刻度三叉點特征的模板制作步驟:
(1)刪除水尺刻度圖像中數字區域以外的無效區域,并分別沿高度和寬度方向平均分成3份,得到9個區域,根據新得出的圖像判斷三叉點所在區域.
(2)另外構造零矩陣,高寬為3×3,代表水尺刻度的9個區域.經過本文上述部分的聚類處理,將得到的三叉點與步驟(1)中的9個區域進行比對,對零矩陣中三叉點所在區域的賦值為1,從而得到位置特征模板.
按上述模板制作方法將標準的水尺刻度也制作成3×3的標準模板,見表2.
運用上述方法對事先挑選的典型船舶水尺刻度圖像提取三叉點特征制作模板,再對當前水尺刻度圖像用同樣的方法制作樣本模板,就可以利用模板匹配方法進行水尺刻度粗分類.首先將待識別水尺刻度的圖像模板與標準數字模板逐一進行比較,其中設待識別水尺刻度模板中各點的值分別為ti(i=1,2,…,9),標準數字模板中各點的值為 li(i=1,2,…,9).然后計算這兩個模板中對應點的差值

表2 標準字符模板及其代表的數字

式中:T0反映兩個模板之間的差別,差別越小說明兩個模板越接近.最后,將待識別模板與所有標準模板逐一比較得出關于T0的數組結果,哪個模板與待匹配模板最接近則將其歸入相應的數字子類.
將水尺刻度圖像與特征模板進行匹配,大部分水尺刻度已能用模板直接加以識別,從而實現數字的粗分類.水尺刻度的數字被粗分成兩大子類:一類是可以用三叉點特征模板直接識別的數字圖像;另一類是不能直接識別的數字圖像.從所有制作好的水尺字符的特征模板可以直接看出,除了“0”“1”和“3”“9”這兩組還不能區分開外,其他的水尺數字及字母“M”都能用三叉點特征模板準確地區分,而不能區分的兩組可以再進行細分類.細分類的方法很多,基于水尺數字本身的書寫特征,這里對“0”“1”采用端點特征區分,而對“3”“9”采取三叉點的方向特征進行識別,其中字符“3”的三叉點方向為0,字符“9”的三叉點方向為3.
基于上述模板匹配和細分類方法,可解決模板匹配法中的樣本模板與特征模板尺寸不符、字符長寬比例不統一等問題,有效提高識別準確率.

圖3 船舶水尺刻度識別流程
船舶水尺刻度識別的實際處理步驟如下:(1)選取具有代表性的船舶水尺刻度圖像樣本,提取相應的數字特征并建立對應的特征模板;(2)利用攝像機或數碼相機拍攝船舶水尺視頻或圖像,從中截取水尺刻度圖像;(3)定位并提取船舶水尺刻度區域,預處理水尺刻度圖像;(4)采用文中改進的特征提取方法提取實際水尺數字圖像的特征,與水尺刻度特征模板進行匹配,匹配結果即為系統識別的數值.水尺圖像數字刻度識別流程見圖3.本文方法側重于水尺刻度的識別,實驗假定水尺刻度區域已從原始圖像中準確提取.

圖4 船舶水尺視頻截圖
圖4為實際拍攝的船舶水尺視頻截圖,圖5為水尺刻度檢測過程中各階段的處理結果.算法實現的硬件環境為 IntelPentium 1.73 GHz,1 GB 內存 PC機,軟件平臺為 Windows XP,Visual C++編程環境.按照上述實驗流程,對多次獲取的船舶水尺數字圖像中共計1 200個刻度進行識別.為便于比較,同時還使用文獻[12]中的算法進行對比實驗,結果見表3.表3說明,本文方法比文獻[12]算法的數字識別率高,因為該方法能有效解決模板匹配法中的字符圖像與模板尺寸不符等問題,減少誤識率,改善識別精度.
針對船舶水尺人工讀取主觀誤差較大的問題,提出一種基于圖像處理的船舶水尺刻度識別方法,對傳統的水尺圖像特征提取方法進行改進,在圖像預處理基礎上針對數字字符的結構特征提取三叉點特征.利用三叉點的位置和方向構造模板數組進行字符分類,然后與構造的模板匹配進行水尺字符識別.由于是基于結構特征分析選取特征,故本文方法能夠有效區分相似字符.同時,使用的特征提取算法計算過程簡單、計算量小,能夠滿足實時性要求.

圖5 船舶水尺刻度識別各階段處理結果

表3 本文方法與文獻[12]方法識別率對比
[1]孫國元,徐揚.船舶電子水尺及其應用[C]//中國航海學會通信導航學術年會(1992)論文集.遼寧大連,1992:87-87.
[2]鄭灼輝.一種新型智能化船舶水尺檢測儀[J].工業計量,1999,9(6):38-39.
[3]COMELLI P,FERRAGINA P.Optical recognition of motor vehicle license plates[J].IEEE Trans Vehicular Technol,1995,44(4):790-799.
[4]羅輝武,唐遠炎,王翊,等.基于結構特征和灰度特征的車牌字符識別方法[J].計算機科學,2011,38(11):267-302.
[5]金雪丹,施朝健.圖像處理與神經網絡識別技術在船舶分類中的應用[J].上海海事大學學報,2007,28(1):11-16.
[6]王朋,王剛,竇海妮.基于最小距離法的數字識別[J].廣西輕工業,2011(3):74-75.
[7]魏暢然.基于穿線法的數字識別方法[J].科技情報開發與經濟,2010,20(28):137-139.
[8]左丹丹,劉鑫,朱雙東.仿射變換在交通標志檢測中的應用[J].寧波大學學報:理工版,2011,24(2):42-45.
[9]楊碩,尚振宏.一種新的二維條碼圖像二值化算法[J].昆明理工大學學報:理工版,2008,33(1):43-46.
[10]YU Jia,LI Yaqin.Improving Hilditch thinning algorithms for text image[C]//2009 Int Conf on E-Learning,E-Business,Enterprise Infor Syst,and E-Government.Hong Kong:IEEE,2009(5/6):76-79.
[11]宋懷波,路長厚,李國平,等.基于三叉點特征的激光刻蝕標牌字符識別[J].光電子·激光,2007,18(12):1465-1468.
[12]路小波,凌小靜,黃衛.一種基于模板匹配的汽車牌照識別方法[J].交通與計算機,2004,22(6):79-82.