錢 江 張桂榮 姚 江 季建中 何 平 顧宋華
(江蘇省泰州引江河管理處 江蘇 泰州 225300)
船名是船舶的身份標識,完整、清晰及有效的船名識別有利于船舶安全通航監(jiān)管。在當前的航務(wù)管理中,船名的識別主要依靠工作人員肉眼判斷,隨著船舶數(shù)量的大量增加人工方式極易出現(xiàn)誤判問題,利用機器的自動識別方法亟待提出。船名定位是利用計算機視覺實現(xiàn)船舶身份自動識別的第一步,但由于該技術(shù)尚處于起步階段,較少學(xué)者對其進行研究,因此在船名定位的研究階段可參考車牌識別方法。
在車牌識別領(lǐng)域,王永杰等[1]通過根據(jù)車牌字符的分布信息精確定位車牌,結(jié)合邊緣密度、模板匹配提出了多信息融合的快速車牌定位方法,但該方法忽視了顏色對于分布信息的影響。鐘偉釗等[2]基于車牌字符顏色與車牌底的搭配固定的紋理特征,提出基于顏色屬性與紋理結(jié)構(gòu)相結(jié)合的方法。文獻[3]直接用每個像素值作為特征,用支持向量機訓(xùn)練分類器,之后在概率圖上用均值平移法(MeanShift)來尋找文字區(qū)域,該方法在背景簡單的圖像或視頻中效果較好,但難以適應(yīng)自然場景的復(fù)雜背景。魏娜等[4]在融合濾波的基礎(chǔ)上,提出一種基于模糊算子的彩色圖像邊緣檢測方法以克服復(fù)雜背景的影響。魏金光等[5]基于均值差分邊緣檢測,結(jié)合連通分量分析技術(shù)和單鏈聚類算法提出了一種快速的車牌定位方法。文獻[6]結(jié)合紋理和連通域的方法,從多尺度的概率圖中提取候選區(qū)。鄧泓等[7]提出了一種像素連接的車牌定位方法,結(jié)合Sobel算子與非極大值抑制法進行邊緣檢測,達到理想檢測效果。王曉群等[8]提出一種基于自適應(yīng)數(shù)學(xué)形態(tài)學(xué)的位方法,在預(yù)處理階段適應(yīng)圖像增強算法進行對比度增強,粗定位階段采用改進行列自適應(yīng)數(shù)學(xué)形態(tài)學(xué)結(jié)構(gòu)元素的方法進行定位,精定位步驟結(jié)合區(qū)域標記法和投影法獲取精準車牌位置。綜上,車牌定位技術(shù)現(xiàn)已較為成熟,算法主要基于車牌的顏色、紋理、邊緣和連通域等特征。
不同于車牌的形狀規(guī)矩、字體統(tǒng)一,船名背景復(fù)雜、字體大小不統(tǒng)一、船名位置不確定、字符眾多,因此車牌識別算法不能很好地應(yīng)用于船名定位。本文提出了船名定位的新思路,首先使用Retinex算法增強圖像特征,然后搜索最穩(wěn)定極值區(qū)域縮小目標范圍,利用先驗知識篩選字符區(qū)域,最后合并單個字符得到船名區(qū)域。本文算法的提出,在一定程度上彌補了船名定位在計算機視覺方面的空白。
船名字符定位流程如圖1所示:1) 輸入圖像并使用Retinex算法進行對比度增強預(yù)處理;2) 搜索圖像的最穩(wěn)定極值區(qū)域(MSER),并將MSER區(qū)域作為船名字符候選區(qū)域;3) 檢測圖像邊緣,得到符合邊緣條件的候選區(qū)域;4) 利用幾何形狀、尺寸等先驗知識對候選區(qū)域進行篩選過濾,得到符合先驗知識的字符區(qū)域;5) 合并單個字符得到最終船名區(qū)域。
圖1 船名字符定位流程圖
由于本文所采用的圖像都是在室外獲取的,因此光照、天氣和環(huán)境變化多樣,拍攝出來的船舶圖像容易到外界因素干擾產(chǎn)生噪聲。如若不對獲取到的船舶圖像進行預(yù)處理,會大大影響后續(xù)的字符定位精度。本文采用Retinex算法進行對船舶圖像進行對比度增強處理,Retinex算法針對霧天、逆光場景能很好地還原圖像。
Retinex理論始于Land和McCann于20世紀60年代作出的一系列貢獻,其基本思想是人感知到某點的顏色和亮度并不僅僅取決于該點進入人眼的絕對光線,還和其周圍的顏色和亮度有關(guān)。Retinex理論認為原始圖像S(x,y)可以看成是光照圖像L(x,y)和反射率圖像R(x,y)的乘積,即S(x,y)=R(x,y)×L(x,y)?;赗etinex的圖像增強的核心就是從原始圖像S(x,y)中估計出光照L(x,y),從而分解出R(x,y),消除光照不均的影響。首先將圖像變換到對數(shù)域,圖像變換過程如式(1)。Retinex理論假設(shè)圖像的噪聲來源于圖像各個位置反射率不同,因此去除反射圖像的噪聲便可還原圖像,反射分量噪聲可通過歸一化去除,歸一化過程如式(2)。將去噪后的反射分量求指數(shù),反變換到實數(shù)域即得到增強后的圖像。
(1)
(2)
圖2為船舶圖像預(yù)處理前后對比圖,(a)為原圖像,(b)為使用Retinex算法預(yù)處理后的圖像。從圖中可以看出,預(yù)處理后圖像對比度得到提高,船名特征得到增強。
(a) 預(yù)處理前
(b) 預(yù)處理后圖2 船舶圖像預(yù)處理前后對比圖
自然場景中的文字檢測主流方法有兩大類:基于紋理特征的方法和基于連通域的方法?;谶B通域的方法首先提取候選區(qū)(顏色聚類和極值區(qū)域提取等方法),利用一些人為設(shè)定的規(guī)則或者自動分類器過濾一些非文字區(qū)域。由于連通域數(shù)量相對較小,此類方法相對高效,對旋轉(zhuǎn)、尺度變化和字體差異不敏感,是自然場景文字識別的主流方法。船名文字一般是一個可靠的連通域,且連通域內(nèi)像素差異較小,因此本文采用基于連通域的方法進行文字檢測,提取最穩(wěn)定極值區(qū)域作為文字候選區(qū)域。
最穩(wěn)定極值區(qū)域MSER算法對圖像具有較強的仿射變換不變性。最穩(wěn)定極值區(qū)域的提取方法如下:對一幅灰度圖像(灰度值為0~255)取閾值進行二值化處理,閾值從0到255依次遞增,在得到的所有二值圖像中,圖像中的某些連通區(qū)域變化很小甚至沒有變化,則該區(qū)域就被稱為最大穩(wěn)定極值區(qū)域,連通區(qū)域變化的數(shù)學(xué)定義為q(i)=|Qi+Δ-Qi-Δ|/|Qi|。
圖3(a)為船舶圖像的MSER區(qū)域示意圖,圖中每一種灰度代表一個MSER區(qū)域,圖3(b)為MSER區(qū)域二值圖,圖中白色區(qū)域為MSER區(qū)域。從圖中可以看出,船名區(qū)域都為最穩(wěn)定極值區(qū)域,此外還有一些細長條船身邊緣及部分船身區(qū)域也被檢測為最穩(wěn)定極值區(qū)域。
(a) MSER區(qū)域圖
(b) MSER區(qū)域二值圖圖3 MSER區(qū)域示意圖
圖像的邊緣指的是某像素點周圍像素值不連續(xù)且像素灰度有階躍性變化,是圖像局部強度變化最明顯的位置,表征一個特征區(qū)域的終結(jié)和另一特征區(qū)域的開始。船名中無論是中文字符還是數(shù)字字符,都具有明顯的邊緣特征,因此邊緣可作為特征把船名與背景區(qū)分開來。
Canny算子檢測邊緣法與一般邊緣算法相比,采用非極大抑制法去除弱邊緣,且采用雙閾值進行邊緣連接,既不丟失強邊緣又去除弱邊緣。因此本文選用Canny算子檢測邊緣。Canny邊緣計算過程如下:首先對圖像進行高斯模糊;其次計算垂直方向和水平方向梯度,根據(jù)梯度計算邊緣幅值和角度,方向梯度計算如式(3),邊緣幅值和角度計算如式(4);之后采用非極大抑制法舍棄弱邊緣,比較相鄰像素邊緣點值,若中心像素值角度區(qū)域小于相鄰像素值角度區(qū)域,則舍棄該點邊緣;最后設(shè)置雙閾值,對大于高閾值的邊緣點直接保留,小于低閾值的邊緣點直接舍棄,介于兩閾值之間的若能連接到邊緣則保留否則舍棄。
(3)
(4)
雖然Canny算子檢測的邊緣為強邊緣,但并非所有邊緣都是本算法關(guān)注的邊緣。船名文字既有最穩(wěn)定極值的特征,又有邊緣特征,因此在最穩(wěn)定極值區(qū)域內(nèi)的邊緣才是船名定位的重點關(guān)注區(qū)域。首先取原始Canny邊緣與MSER區(qū)域交集,得到MSER區(qū)域內(nèi)邊緣,之后使用邊緣增長法增強邊緣。所謂邊緣增長就是設(shè)定一個邊緣增長值,邊緣沿著梯度方向的垂直方向增長。圖4(a)為Canny邊緣檢測結(jié)果,圖中字符邊緣明顯,但也檢測到船身邊緣和水面等邊緣,圖4(b)為結(jié)合MSER區(qū)域后的邊緣增長圖,從圖中可以看出邊緣變“粗”且過濾了一些背景邊緣。
(a) Canny邊緣圖
(b) 邊緣增長圖圖4 Canny邊緣示意圖
圖4(b)的邊緣增長圖展示了文字定位中的重要邊緣信息,將MSER區(qū)域與邊緣增長圖取交集,即可得到有強邊緣的MSER區(qū)域。圖5為MSER二值圖在邊緣增長前后的對比圖,(a)為邊緣增長前的二值圖,圖中的字符連通域與船邊緣連通域存在粘連,(b)為結(jié)合邊緣增長后的二值圖,圖中連通域相對獨立但卻又不丟失字符特征。
(a) 邊緣增長前的二值圖
(b) 連通域分析后的二值圖圖5 邊緣增長前后的二值圖對比
基于MSER和邊緣檢測后,基本得到字符候選區(qū)域,但候選區(qū)域中存在大量非字符區(qū)域,因此去除非字符區(qū)域是本節(jié)重點考慮問題。由于字符區(qū)域都具有一定的幾何特性,如大小、面積和寬高比等。因此通過先驗知識合理設(shè)定閾值可以達到對非字符區(qū)域去除的目的。
本文采用的先驗知識主要包括:區(qū)域面積、區(qū)域矩形度、外接矩形的寬高比和外接矩形高度等。區(qū)域是一個點集,包含該區(qū)域內(nèi)每個像素點坐標,外接矩形就是對該區(qū)域取最小外接矩形;區(qū)域面積即為該區(qū)域內(nèi)像素點個數(shù);區(qū)域矩形度即為區(qū)域面積與外接矩形面積之比,該值越接近1則該區(qū)域外形越接近矩形;外接矩形寬高比即外接矩形寬度與高度之比;對以上先驗知識設(shè)定閾值,可以得到符合先驗知識的文字候選區(qū)域。
圖6為連通域分析前后的二值圖對比,從圖中可看出,細長條的邊緣連通域和不規(guī)則的背景連通域都得到很好地去除,最后僅留下字符區(qū)域,至此完成船名字符定位。
(a) 連通域分析前的二值圖
(b) 連通域分析后的二值圖圖6 連通域分析前后的二值圖對比
本文算法在Visual Studio 2015環(huán)境中基于C++開發(fā)語言及OpenCV3.1.0開源機器視覺庫進行。
船名定位測試實驗中,測試圖像共計272張,其中晝間圖像158張,夜間圖像114張,共計2 000個船名字符,其中漢字字符749個,數(shù)字1 251個。船名字符定位測試結(jié)果如表1所示,晝間數(shù)字定位精度高達90.9%,漢字定位精度60%左右,漢字+數(shù)字晝間精度為80.1%。字符定位結(jié)果顯示數(shù)字定位精度遠遠高于漢字字符,這是因為數(shù)字個數(shù)種類較少,結(jié)構(gòu)簡單,而船名中常用漢字種類達上百種且漢字結(jié)構(gòu)復(fù)雜,幾何形狀各異,導(dǎo)致在候選字符篩選過程中錯誤去除字符,最后導(dǎo)致漢字定位不準確。
表1 船名字符定位測試結(jié)果 %
船名定位是在船名字符定位基礎(chǔ)上進行的,將相鄰的字符區(qū)域組合成最終船名位置。船名定位測試結(jié)果如表2所示,表中定位完全正確表示最終定位的船名區(qū)域包含船名所有字符,定位部分字符表示最終定位的船名區(qū)域僅包含船名部分字符,定位錯誤表示最終定位的船名區(qū)域并非實際船名區(qū)域。從表中可看出,晝間定位準確率高達78.5%,定位錯誤率僅3.1%,夜間定位準確率達72.8%,定位錯誤率僅6.1%。由于漢字字符定位準確率不高,造成船名中很多漢字漏定位,因此20%的船名僅能正確定位部分字符。部分圖像船名定位結(jié)果如圖7所示。
表2 船名定位測試結(jié)果 %
圖7 部分圖像定位結(jié)果圖
本文提出一種結(jié)合最穩(wěn)定極值區(qū)域和邊緣增強的船名定位方法。該方法首先采用Retinex算法增強待處理圖像,然后檢測MSER區(qū)域,之后采用Canny算子檢測邊緣,得到邊緣增長后的文字候選區(qū)域,最后分析連通域?qū)傩?,設(shè)定先驗知識閾值,得到最終文字區(qū)域。該算法通過實驗和分析,驗證了該方法在晝間和夜間均能實現(xiàn)船名精準定位。實驗結(jié)果表明,晝間數(shù)字定位準確率高達90.9%,晝間船名定位準確率達78.5%。
本文對于船名字符定位算法的研究在一定程度上彌補了船名定位在計算機視覺方面的空白,另一方面該研究也推進了基于計算機視覺的船舶身份自動識別進程。本文所提出的算法仍有需改進之處,如針對船名中的漢字字符的定位準確率相對較低,提高字符定位準確率尤其是中文字符準確率將是今后研究需要突破的難點。