徐望明, 陳 光, 伍世虔, 尹 亮
(武漢科技大學 a.信息科學與工程學院; b.教育部冶金自動化與檢測技術工程研究中心;c.機器人與智能系統(tǒng)研究院,武漢 430081)
圖像處理技術近年來得以廣泛應用,將與之緊密相關的工程實踐項目引入到工程實踐教育中,對培養(yǎng)學生工程實踐能力及創(chuàng)新能力至關重要。本文以雷管編碼圖像識別項目中的黏連字符分割問題為案例,探討運用圖像處理技術來解決實際問題的方案。雷管編碼識別項目來自有關部門對雷管使用的終端管控需求。雷管作為一種起爆材料,是國家嚴格管控的危險物品,一旦流失會危及人民生命及財產(chǎn)安全。為了有效管理雷管的生產(chǎn)及使用,國家有關部門規(guī)定每一發(fā)雷管在生產(chǎn)時其外殼表面都需印有獨一無二的表征其身份的編碼[1]。在雷管生產(chǎn)及日常爆破作業(yè)中,對雷管編碼的記錄大多還是采用人工識別和手工抄錄的方式。這種傳統(tǒng)的工作方式無法滿足現(xiàn)代信息化作業(yè)的高效和便捷,并且人工抄錄還會存在人為因素導致的錯誤,因此像光學字符識別及車牌識別[2-3]那樣將圖像處理技術應用在雷管編碼自動識別系統(tǒng)中很有必要。
傳統(tǒng)的光學字符識別[4-5]技術已經(jīng)較為成熟,一般是對字符進行圖像分割后再進行識別,其中字符分割[6-7]這一步尤為關鍵,字符分割效果的好壞直接影響著字符識別的準確率。針對字符分割算法人們已經(jīng)進行了大量研究,其中常見的有:① 垂直投影法[8],對字符區(qū)域進行垂直投影,取投影直方圖的谷點位置作為字符分割點,處理速度快;② 模板匹配法,將分割和識別結合起來,需要很高的識別準確性才能有效進行字符分割;③ 滴水分割算法[9-10],通過模擬水滴下落的路徑對字符進行分割,能在一定程度上克服字符黏連問題;④ 連通區(qū)域標記法[11],對字符像素進行連通域標記,在字符傾斜、扭曲時仍能取得較好的分割效果。上述字符分割方法在傳統(tǒng)光學字符分割中取得了不錯的效果,但在面對復雜工業(yè)現(xiàn)實場景時對字符分割的效果并不理想。雷管殼采用金屬材料制作,尺寸較小且表面呈圓弧形,因此雷管表面的編碼字符不同于常規(guī)光學印刷字符和車牌字符,其字符筆劃小、間隔近,筆劃顏色與背景區(qū)分度較低且容易受磨損、劃痕和銹跡等噪聲干擾,極易出現(xiàn)二值化雷管編碼圖像中字符黏連的現(xiàn)象,這就導致許多傳統(tǒng)的字符分割方法在雷管編碼字符分割上無法取得實用的效果。
本文以雷管編碼識別為案例,針對識別系統(tǒng)存在的二值化雷管編碼圖像中字符黏連難以分割的問題,提出了一種基于最優(yōu)分割路徑的黏連字符分割算法,并通過實驗驗證了其有效性。
由于市面上大多金屬雷管表面為深暗色且雷管編碼是通過激光蝕刻或機械雕刻而成的,直接用相機拍攝的圖像字符區(qū)域亮度較暗且對比度較低。因此,本文使用的雷管編碼圖像采集裝置利用兩個側(cè)光源進行補光,并對采集到的圖像使用限制對比度自適應直方圖均衡化法(Contrast Limited Adaptive Histogram Equalization,CLAHE)[12-13]進行增強處理,再通過下式將其轉(zhuǎn)換為單通道灰度圖:
f(x,y)=0.299R(x,y)+0.587G(x,y)+
0.114B(x,y)
(1)
式中:R、G、B分別表示圖像的紅、綠、藍通道;(x,y)表示圖像像素坐標;f是得到的灰度圖像。
采用自適應閾值法[14-15]對灰度圖像進行二值化。為計算方便,每個像素點處的二值化閾值由高斯平滑響應自適應確定,像素點(x,y)處的高斯平滑響應為
f′(x,y)=w(x,y)⊙f(x,y)
(2)
式中:w(x,y)為一個m×n的高斯濾波器模板;⊙表示圖像卷積運算。該點的二值化閾值為
T(x,y)=f′(x,y)+k
(3)
式中,k為計算閾值時的調(diào)節(jié)參數(shù)。本實驗中,對于分辨率為1 080×240的輸入雷管圖像,高斯模板大小取為23×23,調(diào)節(jié)參數(shù)k=7。從而圖像二值化結果為
(4)
對二值化的雷管編碼圖像先利用連通域分析法確定單個字符區(qū)域和黏連字符區(qū)域。單個字符區(qū)域無需進一步分割,黏連字符區(qū)域需要進一步分割為單個字符區(qū)域。后者是本文要解決的主要問題,算法流程如圖1所示。
圖1 黏連字符分割算法流程
為提取雷管編碼圖像中的黏連編碼字符,采用8連通域分析法對二值化圖像進行連通域標記,并根據(jù)連通域最小外接矩形的寬度、高度及面積等先驗條件濾除不符合字符結構特征的連通域。
黏連字符區(qū)域主要表現(xiàn)為其寬度明顯要比單個標準字符的寬度大。然而,實際雷管可能來自不同生產(chǎn)廠家且其編碼蝕刻方式也可能有差異,因此不同雷管編碼單個字符寬度也可能不同,無法給定一個通用的字符標準寬度作為參考值,需要根據(jù)當前雷管圖像估計出其中單個字符的參考寬度。具體方法為:
(1) 計算字符的平均寬度。
(5)
式中:k和wr分別為提取到的雷管編碼字符連通區(qū)域個數(shù)以及相應第r個字符區(qū)域的寬度;分母13是雷管編碼的總長度(根據(jù)我國工業(yè)雷管編碼的基本規(guī)則,雷管編碼由13位字符組成)。
進一步地,對以上提取到的所有字符連通區(qū)域,當區(qū)域?qū)挾却笥赾W0時(本文實驗中取c=1.4),判定該區(qū)域為黏連的字符區(qū)域;反之,判定其為單個字符區(qū)域。
如圖2所示,是經(jīng)以上連通域分析方法提取的雷管編碼字符區(qū)域,其中包含部分黏連字符區(qū)域。
圖2 通過連通域分析提取的字符區(qū)域(含黏連字符區(qū)域)示例
不難發(fā)現(xiàn),僅僅使用垂直投影法或滴水分割法很難對上述提取的所有黏連字符區(qū)域進行有效分割。本文通過垂直投影不僅提取黏連字符垂直投影直方圖,而且提取黏連編碼字符的上邊界位置和下邊界位置,并綜合這3種信息進行分析處理,檢測出字符候選分割點。
如圖3所示,從上到下依次為黏連編碼字符的二值圖、垂直投影直方圖、上邊界位置圖和下邊界位置圖,其中為了后面統(tǒng)一使用局部谷底點信息檢測候選分割點,下邊界位置圖的縱坐標等于字符高度減去下邊界實際位置高度。由于筆劃毛刺和不規(guī)則筆劃容易產(chǎn)生無效的小谷底,在上述3種圖中尋找谷底時,本文實驗中設置當谷底附近左右峰高度與谷底高度相差小于0.1h(h為當前字符高度)時,將其視為無效谷底剔除,根據(jù)此規(guī)則找到的谷底點如圖4(a)所示。
(a) 二值圖
(b) 垂直投影直方圖
(c) 上邊界位置圖
(d) 下邊界位置圖
圖3 黏連字符二值圖、垂直投影直方圖和上下邊界位置圖
圖4 從垂直投影直方圖和上下邊界位置圖中尋找局部谷底點
可見,凹進去的位置(谷底)大多為黏連編碼字符的分割點,但也會有例外情況發(fā)生,比如從圖4(a)中可以看到,其中“0”“5”“6”等字符的垂直投影直方圖中會在該字符寬度中間處出現(xiàn)谷底,但這些谷底并不是正確的分割點。
針對這個問題,本文結合垂直投影直方圖和上下邊界位置圖,提取谷底的“穿越特性”和“距離特性”來判定找到的谷底是否為黏連字符候選分割點。如圖5所示,谷底的“穿越特性”是指以該谷底點進行切分時,分割線穿越字符筆劃的次數(shù),用Cn表示;“距離特性”是指以該谷底點進行切分時,分割線與上、下邊界交點間的距離,用Dv表示。設h為黏連字符的高度,則判定谷底點為黏連字符候選分割點的條件為:
Cn<3,Dv<0.8h
(6)
對于圖4(a)中的谷底點,通過式(6)篩選后得到的候選分割點谷底如圖4(b)所示,不難發(fā)現(xiàn)其中仍有部分谷底點不是正確的分割點。
圖5 谷底點的距離特性和穿越特性示意圖
為了進一步從以上候選分割點中確定真正有效的分割點,本文對所有候選分割點計算一個“可信度”。由于垂直投影直方圖和上、下邊界圖中都有候選分割點,這里將某一候選分割點的可信度定義為該點出現(xiàn)的總次數(shù),并在兩個分割點距離很近(比如小于3個像素)時進行合并,合并后的候選分割點取為兩者中心且可信度為兩者可信度之和。得到所有候選分割點的可信度后,從黏連編碼字符的左端向右端尋找,確定一組有效分割點,得到一條分割路徑,再從黏連編碼字符的右端向左端尋找,確定另一組有效分割點,得到另一條分割路徑。選取有效分割點的規(guī)則為:
(1) 在距離起點[W0-d,W0+d]的范圍內(nèi)尋找有效分割點,W0為單個字符參考寬度,d為可容許誤差參數(shù),這里起點初始化為某一端點,之后為前一找到的有效分割點;
(2) 在[W0-d,W0+d]范圍內(nèi),優(yōu)先選取可信度大的候選分割點為有效分割點;
(3) 在[W0-d,W0+d]范圍內(nèi)存在多個可信度相等的候選分割點時,選取離該范圍中心最近的候選分割點為有效分割點;
(4) 當前起點沿著尋找方向到字符區(qū)域終點的距離小于1.4W0,或在[W0-d,W0+d]范圍內(nèi)不存在候選分割點時,選取過程結束,沿著選取到的這組有效分割點進行字符分割即得一條分割路徑。
對于前述黏連字符,分別沿兩個方向?qū)ふ矣行Х指铧c得到兩條分割路徑,結果如圖6所示。
(a) 左端往右端尋找得到的分割路徑
(b) 右端往左端尋找得到的分割路徑
顯然,兩者分割結果存在差異,這里通過計算分割路徑的方差來確定黏連字符的最優(yōu)分割路徑。分割路徑方差計算公式為
(7)
式中:n是沿該分割路徑將黏連字符分割后得到的字符個數(shù);Wdr是分割出來的第r個字符的寬度;W0是上文中求得的單個字符參考寬度。
分割路徑方差S2值越小,代表該分割路徑分割得到的字符寬度與單個字符參考寬度越接近,因此選取方差值較小的分割路徑為黏連編碼字符最優(yōu)分割路徑。
本文采集了700幅分辨率為1 080×240的金屬雷管編碼圖像,從中提取出793個雙字符黏連的樣本和154個多字符(>2個)黏連的樣本,分別采用常用的垂直投影分割算法、滴水分割算法和本文提出的算法對這些黏連字符樣本進行分割。3種算法對黏連字符分割的正確率統(tǒng)計如表1所示。
表1 不同算法對黏連字符分割的正確率比較 %
另外,圖7給出了部分雷管編碼圖像中字符分割效果對比圖。圖7(a)從上到下為4幅雷管編碼圖像,且其中檢測到的黏連字符用紅色框標記了(綠色標記的是單個字符);圖7(b)是垂直投影分割算法效果圖,下兩幅圖中有3處黏連字符分割錯誤;圖7(c)滴水分割算法效果圖,第1、2、4幅圖像中黏連字符分割錯誤;圖7(d)為本文算法的分割效果圖,4幅圖中的所有黏連字符均分割正確。
可見,對于現(xiàn)實工業(yè)場景中出現(xiàn)的雷管表面生銹、磨損和劃痕等造成的不規(guī)則黏連字符進行分割時,常用的垂直投影分割算法和水滴分割算法分割效果較差,從而導致最終分割正確率相對較低,而本文算法能夠很好的處理這些情況,取得較好分割效果和較高的分割正確率。
本文提出了一種基于最優(yōu)分割路徑的黏連字符分割方法。在圖像預處理階段,使用CLAHE算法對圖像進行增強然后使用自適應局部閾值法對圖像進行二值化。在此基礎上,通過連通域分析法提取黏連字符區(qū)域,利用垂直投影不僅獲得黏連字符的垂直投影直方圖,而且同時得到其上邊界位置圖和下邊界位置圖,
(a) 檢測到黏連字符的雷管編碼圖像(紅色框)
(b) 垂直投影分割算法效果圖
(c) 滴水分割算法效果圖
(d) 本文算法分割效果圖
并分別尋找這些圖中的谷底,定義了“穿越特征”和“距離特性”來確定黏連字符候選分割點。接著優(yōu)先選取可信度高的候選分割點作為有效分割點,分別從黏連編碼字符的左端向右端、右端向左端依據(jù)有效分割點得到兩條分割路徑,最后計算兩條分割路徑的方差,取方差值較小的分割路徑作為黏連字符的最優(yōu)分割路徑。通過實驗研究驗證了本文算法的有效性,尤其在分割由磨損、劃痕和生銹等導致的黏連字符時優(yōu)于常用的垂直投影分割算法和水滴分割算法。
本文運用圖像處理技術來解決了一個實際工程實踐項目中的具體問題,可作為圖像處理課程相關的工程實踐案例供學生參考學習。該案例通過解決工程實踐問題將圖像處理理論緊密聯(lián)系實際,有利于提升學生的工程實踐能力和創(chuàng)新能力。學生也可在此案例基礎上對研究內(nèi)容進一步拓展,比如研究更有效圖像分割方法或完成整個雷管編碼圖像識別項目。