摘 要:集裝箱號自動識別系統(tǒng)在海關(guān)物流領(lǐng)域中具有重要意義。本論文在分析集裝箱原始圖像的基礎(chǔ)上,綜合運用多種手段去除集裝箱圖像的非干擾信息,將預(yù)處理后的圖像進行邊緣提取,運用數(shù)學(xué)形態(tài)學(xué)方法使字符區(qū)域連通,通過查找最大連通區(qū)域定位箱號區(qū)域。最后利用投影直方圖法完成行與行、字符與字符的分割。實驗表明,整箱號分割正確率達(dá)到93.75%,證明了算法的有效性。
關(guān)鍵詞:圖像平滑;邊緣檢測;數(shù)學(xué)形態(tài)學(xué);最大連通區(qū)域;直方圖投影
中圖分類號:TP391.41 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-7712 (2012) 12-0131-02
一、引言
集裝箱是國際物流的主要運輸設(shè)備。目前,我國許多集裝箱碼頭的堆場管理和裝卸管理均已實現(xiàn)計算機化,而集裝箱碼頭管理處的集裝箱文字標(biāo)簽的識別基本靠人眼識別,手工記錄的工作方式,勞動強度大,工作效率低。因此實現(xiàn)集裝箱的自動識別是大勢所趨。本文從集裝箱原始圖像的特點出發(fā),對預(yù)處理,圖像定位,字符分割進行了深入分析。在圖像定位技術(shù)中,采用形態(tài)學(xué)運算,提出了基于最大連通區(qū)域的圖像定位算法。在字符分割中,運用了直方圖投影法,并對算法進行了優(yōu)化,以適應(yīng)集裝箱圖像的分割。
二、圖像文本定位
本文利用梯度信息先對圖像進行邊緣提取,再對邊緣圖像進行形態(tài)學(xué)計算,直到圖像中只留下包含文本的目標(biāo)區(qū)域。
(一)邊緣檢測
比較常用的邊緣檢測算子有Roberts邊緣檢測算子、Sobel邊緣檢測算子、Prewitt邊緣檢測算子、Log邊緣檢測算子和Canny邊緣檢測算子。運用不同算子檢測出的邊緣不同。為了提高字符分割的成功率和系統(tǒng)的識別率,我們選擇一種最佳的檢測方式。通過大量的實驗可知:對于像集裝箱文字標(biāo)簽這樣背景比較復(fù)雜的圖像,Roberts算子、Sobel算子和Prewitt算子的檢測效果都比較差,所以對檢測精度要求較高的時候應(yīng)該選用Log算子或Canny算子。
(二)數(shù)學(xué)形態(tài)學(xué)方法
運用數(shù)學(xué)形態(tài)學(xué)方法定位字符區(qū)域的基本依據(jù)是集裝箱箱號字符的排列特性。箱號字符的排列方式1行、2行、3行、4行或多列,且排列的距離有一定范圍,因此可利用數(shù)學(xué)形態(tài)學(xué)的膨脹運算使每一個字符粘連在一起形成集裝箱文字標(biāo)簽的矩形區(qū)域,利用腐蝕運算消除非字符區(qū)域,剩下的區(qū)域就是可能的文字標(biāo)簽區(qū)域了。
在進行數(shù)學(xué)形態(tài)學(xué)方法的處理的時候,關(guān)鍵是結(jié)構(gòu)元素的選擇。如果選擇結(jié)構(gòu)元素太小,形成不了較大的連通區(qū)域,實現(xiàn)不了預(yù)期的定位方法。選擇的結(jié)構(gòu)元素太大,一些干擾信息(如集裝箱箱面的上邊緣和右邊緣,箱面的其他公司信息等)也會形成較大的連通區(qū)域,影響定位的準(zhǔn)確性。由于箱號字符間距的不確定性,大量的實驗證明選擇長和寬分別為最大字符長度和寬度2倍的矩形結(jié)構(gòu)元素,效果比較理想。先對邊緣圖像進行膨脹運算(如圖1(a)所示),填平小于結(jié)構(gòu)元素的小孔和彌合小裂縫,使字符變粗粘連在一起,但這時其他諸如公司標(biāo)志邊緣也粘連在一起,所以繼續(xù)用相同的結(jié)構(gòu)元素對圖像進行腐蝕運算(如圖1(b)所示),這樣做的原因是公司標(biāo)志等字符的寬度和長度與文字標(biāo)簽的寬度和長度差距比較大,腐蝕可以使與結(jié)構(gòu)元素不符合的區(qū)域去除,所以通過膨脹-腐蝕就只剩下幾個明顯的文字標(biāo)簽候選區(qū)域。有時候此時公司標(biāo)志部分還是形成較大的連通區(qū)域,可以再用字符大小的結(jié)構(gòu)元素進行開運算(如圖1(c)所示),以達(dá)到較好的效果。
(三)基于最大連通區(qū)域的箱號定位
一般而言,我們所要提取的文字標(biāo)簽區(qū)域都連到了一塊,而且它是面積最大的一塊連通區(qū)域。但有時候由于集裝箱箱面上公司標(biāo)志部分字符靠得比較近,經(jīng)過膨脹-腐蝕-開運算等結(jié)果后,它可能是面積最大的連通區(qū)域。而且有時候由于拍攝的背景問題,箱面邊緣處的干擾信息特別嚴(yán)重,經(jīng)過上述處理后它也行成了一塊較大的連通區(qū)域。因此要通過一定的算法消除這兩個方面的影響,使定位正確率更高。通過查找符合要求的最大連通區(qū)域,就可以將文字標(biāo)簽定位出來。簡單的方法就是標(biāo)記不同的連通區(qū)域,然后求出每塊區(qū)域的面積。符合要求的最大面積對應(yīng)的區(qū)域為箱號區(qū)域。
三、字符分割
分割后的字符由于存在較大的干擾,并不能馬上用于字符分割,還應(yīng)進行圖像預(yù)處理。本文采用了形態(tài)學(xué)方法對所分割區(qū)域進行預(yù)處理,濾除非字符信息,然后用改進的投影直方圖法分別進行行分割和列分割。
(一)濾除非字符信息
觀察經(jīng)過邊緣提取的文字標(biāo)簽區(qū)域,發(fā)現(xiàn)某些圖像存在以下一些問題:
1.圖像中有邊框存在;
2.圖像中有條紋存在;
3.字符邊緣有毛刺存在。
為了提高字符分割的準(zhǔn)確性,先進行切
分前的預(yù)處理,來消除這些邊框、條紋和毛刺。
集裝箱文字標(biāo)簽的字符大小是有一定限制的,所以我們可以根據(jù)這一特性來去除一些長線條。如果橫向的線條大于字符的最大寬度,豎向的線條大于字符的最大高度,則可判定為干擾邊緣,把它們?nèi)コ?。根?jù)這一思想,具體的消除橫向長線條的算法如下:
1.逐行掃描經(jīng)過邊緣提取的文字標(biāo)簽區(qū)域,找到一個不為零的點,記錄該點的位置為起始點,并記線條長度為1;
2.跟蹤這個點后面的點,如果后一個點與前面的點一樣,則線條長度加1;如果不一樣,則結(jié)束跟蹤,記錄結(jié)束點的位置;
3.判斷線條長度是否大于最大字符寬度,如果大于,則此線條為干擾邊緣,將起始點到結(jié)束點的所有點置為0,重復(fù)步驟1.直到到達(dá)最后一行。
消除豎向長線條的算法跟橫向的相似,只要進行逐列掃描,比較跟蹤豎向長線條的長度與最大字符高度的關(guān)系來判斷是否是干擾邊緣。
(二)數(shù)學(xué)形態(tài)學(xué)法去除邊緣噪聲
數(shù)學(xué)形態(tài)學(xué)的開運算具有濾除小于結(jié)構(gòu)元素的細(xì)節(jié)部分的功能,可以去除孤立的小點、毛刺、連接兩連通區(qū)域的小橋而保持總的位置和形狀不變;閉運算具有填補小于結(jié)構(gòu)元素的細(xì)節(jié)部分的功能,可以填平小孔,彌補小裂縫而保持總的形狀和位置不變。所以可以利用閉運算來使字符邊緣粘連,利用開運算來清除非字符和孤立的區(qū)域。
因為字符的邊緣比較集中,所以很容易通過閉運算使字符邊緣粘連成塊狀區(qū)域,再使用較小的結(jié)構(gòu)元素來消除孤立的線條及噪聲。通過使用橫向的線性結(jié)構(gòu)元素使每一個字符的邊緣橫向連接(如圖2(a)所示),再使用較小的結(jié)構(gòu)元素進行開運算(如圖2(b)所示),消除橫向的線條和孤立的噪聲。同理,通過使用豎向的線性結(jié)構(gòu)元素使每一個字符的邊緣豎向連接(如圖2(c)),再使用較小的結(jié)構(gòu)元素進行開運算(如圖2(d)),消除豎向的線條和孤立的噪聲。為使字符邊緣粘連而與其他邊緣不粘連,必須選擇大小合適的結(jié)構(gòu)元素。經(jīng)過大量的實驗,橫向的線性結(jié)構(gòu)元素取最大字符寬度的70%,豎向的線性結(jié)構(gòu)元素取最大字符高度。
對于經(jīng)過橫向閉運算的邊緣圖像,橫向的零散邊緣及孤立的點不會形成很大的區(qū)域,因此可以用3行2列的矩形結(jié)構(gòu)元素來消除線條和孤立的噪聲;同樣,對于經(jīng)過豎向閉運算的邊緣圖像,可以用2行3列的矩形結(jié)構(gòu)元素來消除線條和孤立的噪聲。
(三)字符分割
區(qū)域增長和邊界跟蹤算法并不適應(yīng)于文字這種邊界很多且復(fù)雜的分割。而且經(jīng)過前面的處理我們得到的是一個具有清晰邊界的字符邊緣圖像,所以本文以投影直方圖法為基礎(chǔ),提出了一種適合集裝箱箱號分割的算法。由于集裝箱箱號可以是多行,因此首先要進行水平方向的直方圖投影,根據(jù)直方圖的分布特點可以看到集裝箱字符行與行之間間隔明顯,所以可以容易判斷每行字符起始行和結(jié)束行。
有時由于前面的預(yù)處理并不能完全的去除字符上下的噪聲,使得有時行的判斷出錯,所以如果兩個起始行之間的間距小于一定值,則可判斷前一個起始行為偽起始行,去掉這一起始行,如果兩個結(jié)束行之間的間距小于一定值,則可判斷后一個結(jié)束行為偽結(jié)束行,去掉這一結(jié)束行。起始行和結(jié)束行確定好后,就可一一對應(yīng),將字符一行行的分割出來(如圖3所示)。列分割與行分割算法基本一致。對于分割出來的每一行,根據(jù)垂直投影直方圖,將字符一一分割出來(如圖4所示)。
運用直方圖投影法對集裝箱箱號分割時應(yīng)注意的幾個問題:
1.由于干擾的存在,有時字符行與列之間有時并沒有明顯的間隔。此時要根據(jù)字符的大小進行判斷。如果起始行(列)與結(jié)束行(列)之間的距離大于最大字符高(寬)的2倍(或多倍),應(yīng)該對該行(列)進行截斷,截斷的行(列)作為所需的行(列)
2.字符的大小和字符間距對分割的結(jié)果影響較大。通過觀察多幅集裝箱圖片,選擇合適的閾值,對提高分割準(zhǔn)度很有幫助。
四、實驗結(jié)果
所有實驗都是在matlab7.0 環(huán)境下進行。本實驗樣本包含35幅集裝箱圖像。雖然樣本比較少,但包括各種條件下的圖像,具有代表性,在理論研究上可以證明該方法的有效性。圖像大小為632×574pixels。圖像有反光的、動態(tài)模糊的、箱體不干凈的、字符有缺損的、對比度很低的等等,箱號字符高度從30像素到50像素不等,寬度從10像素到15像素不等。行距和列距變化較大,從4像素到一倍字符高度或?qū)挾取?/p>
實驗結(jié)果如表所示。表1為整箱號定位和分割實驗結(jié)果。在35幅圖像中,定位成功32幅,準(zhǔn)確率為91.43%。未成功定位圖像部分原因是由于箱號字符間距太大,形成不了連通區(qū)域。在定位成功的基礎(chǔ)上,能正確分割的有30幅,正確率為93.75%。不能正確分割的原因為字符之間間距太小,或箱號字符有缺損。
五、結(jié)論
本文對集裝箱箱號的分割進行了較為深入的研究,針對集裝箱環(huán)境的特點,提出了適合集裝箱圖像處理的預(yù)處理方法,定位方法和字符分割方法。利用多種手段對圖像進行去干擾信息處理,提出了基于最大連通區(qū)域的定位算法,并利用改進的直方圖投影法進行字符分割。
參考文獻(xiàn):
[1]Rafael C G,Richard Z W,Digital Image Processing Second Edition [M].阮秋琦,阮宇智等譯,2006,11
[2]王志明,張麗,王麗君.基于單程分裂與歸并圖像分割的集裝箱號識別[J].中國圖像圖形學(xué)報,2007(12):450-455
[3]盧盛輝,唐加慧.集裝箱箱號字符的粗定位方法[J].視頻技術(shù)應(yīng)用與工程,2003(5):78-80