高保平,白瑞林,溫振市
(江南大學 智能控制研究所輕工過程先進控制教育部重點實驗室,江蘇 無錫214122)
將字符識別技術應用于工業生產中,可以提高生產的自動化程度,便于產品的智能化管理。特征提取是字符識別中的一個重要環節。工業器件上的字符容易受到工業現場環境(噪聲,拍攝角度,光線明暗等)的影響,給識別造成一定困難。如何降低外界干擾引起的不確定性,提取出有效的、維數盡可能少的特征向量,提高識別系統的準確性和實時性,是字符特征提取面臨的關鍵問題。
字符識別中常用的特征可以分為結構特征和統計特征兩大類[1]。輪廓層次屬于結構特征的一種。用輪廓描述字符的特征符合人的感官認知過程,而且輪廓層次特征易于提取,在分類效果上較其他特征提取方法也具有一定的優勢。文獻 [2]將輪廓層次特征用于手寫字符的識別,采用兩級分類器進行粗分類和細分類,識別率較好,但是由于系統的復雜性,識別速度有待提高。
文獻 [3]將網格特征和輪廓特征串行融合,作為K近鄰分類器的分類依據進行車牌字符識別,其特征維數較高。輪廓層次特征雖然能較為全面的反應字符的結構層次,但是對于工業器件上的字符所處的復雜環境,其實用價值仍然會有一定的局限性。
本文利用小波變換多辨析分析的特點,提出了一種結合小波分解和輪廓層次的特征提取方法,克服了輪廓層次特征所存在的不足,對工業器件字符所處的復雜環境也有更好的適應性。
特征提取是字符識別的關鍵步驟。本文改進了輪廓層次特征,將小波多分辨率分析用于字符的特征提取中。
特征提取輸入的圖像(f(x,y))是經預處理歸一化為24×32大小的二值圖像。規定白色像素點(f(x,y)=1)為目標像素,黑色像素點(f(x,y)=0)為背景像素。從左右上下4個方向分別抽取字符的輪廓層次特征。
字符的左側第1層輪廓層次特征L1(j)定義為字符圖像的第j行從左到右掃描第1次遇到圖像像素從"0"轉變到"1"時的水平坐標值,即
字符的左側第n層輪廓層次特征Ln(j)定義為對字符圖像的j行從左到右掃描,f(i,j)第n次從"0"轉變到"1"時的水平坐標值。遞歸公式如下
根據遞歸式(2)、(3)求取字符的左側輪廓層次特征。同理,可以得到從右側及上下方向抽取的特征Rn(j)、Un(i)、Dn(i)。將4個方向上的輪廓層次特征合并,即得字符的第n層輪廓層次特征。
觀察字符結構,大部分字符從背景像素到目標像素跳變的次數小于3,故取n=1,2,得字符的兩層輪廓層次特征
輪廓層次特征[4]是字符筆畫在空間位置上的反映,可較為全面地反映出字符的層次結構,將筆畫在空間上的二維分布轉化為一維,便于識別使用,且抗干擾能力較強,簡單易求,但其特征向量維數往往較高。
為了彌補輪廓層次特征維數較高的缺點,提高特征對復雜環境的適應性,對特征信號進行小波分解[5],在分解結果的近似成分中提取有效特征。
1.2.1 小波基函數和分解尺度的選取
小波基的選取影響著小波分解計算的復雜性和特征分解的有效性。在對特征進行小波分解前,需要選擇適合的小波基函數。常用的小波基函數[6]有 Morlet小波,Meyer小波,Harr小波,樣條小波和Daubechies小波等。為了滿足識別要求并降低計算的復雜性,選取Daubechies小波系[7]中的db2作為小波基函數。Daubechies系列小波的支集和濾波器具有階數2倍左右的長度,消失矩等于階數,且擴展性較好。
對于小波分解尺度,較大分解尺度雖可以抓住信號的主要趨勢,但也會損失更多細節。綜合考慮計算的復雜性和特征的有效性,分解尺度選擇為2。
1.2.2 Mallat塔式分解算法
離散信號小波變換通常運用Mallat算法[8]。小波分解實質上就是讓信號通過選定的低通和高通濾波器,而離散信號通過濾波器可以利用卷積和進行描述[9],分解表達式為
式中:j——分解尺度,aj(n)——信號分解第j層的低頻(近似)部分,dj(n)——信號分解第j層的高頻(細節)部分。h(n),g(n)——所選取的小波基函數對應的低通和高通濾波器的系數序列。本文選取db2小波,其濾波器系數為
1.2.3 特征的小波分解
根據式(5),將輪廓層次特征G(k)作為輸入信號,通過低通濾波器h(n)加一個向下2抽樣得到近似分量,通過高通濾波器g(n)加一個向下2抽樣得到細節分量。這樣就完成了第一次小波分解。按選取的分解層數(本文分解層數選為2),將分解得到的近似分量作為輸入信號重復上述過程,最終得到一系列相應分解層數上的近似分量和細節分量。
兩層輪廓層次特征的維數為:(width+length)×2×2=224。經過兩次分解,選取得到的維數為224/4=56(每次分解都有一個向下2抽樣的過程)的近似分量為特征向量。作為示例,圖2為對兩個受到不同程度干擾的字符'B'(如圖1所示)進行輪廓層次特征提取得到的特征曲線,圖3和圖4曲線分別為特征經兩次小波分解后得到的近似成份和細節成分。
圖1 兩個受到不同程度干擾的字符 “B”
小波的多分辨率分析為字符輪廓層次特征的局部信息分析提供了一個直觀的框架,分解后的低頻部分表征了字符的主體部分,高頻部分表征了字符的細節部分。
根據分解所得到的曲線分析:
(1)受到成像系統或外界環境的影響,字符圖像可能會出現不同程度的噪聲干擾、筆畫的缺失(粘連)、形變,反映到輪廓層次特征上變現為曲線波形的波峰波谷出現加強和減弱,平滑部分出現毛刺。如圖2所示。
(2)小波的多分辨分析能起到濾波的作用。字符的噪聲、毛刺、形變,都將體現在高頻部分,這部分屬于字符特征的不穩定部分。如圖4所示,不同字符受到不同干擾影響后,其高頻部分差異較大。特征向量只選取分解后低頻部分,這屬于字符特征的穩定部分,如圖3所示,受到了不同干擾的字符,其分解后的低頻部分差異不大。這樣,即使字符受到一定程度的干擾,反映到輪廓層次特征上,也會在特征小波分解的低頻部分得到很大程度的抑制,這就提高了特征的抗干擾能力,使特征具有較強的魯棒性。
(3)經過小波分解,特征向量的維數也會大幅減少,降低了要處理的數據量,便于后續的識別。
SVM是在統計學習理論基礎上發展起來的新一代學習算法,能夠較好地解決小樣本、非線性及高維數等模式識別問題[10]。它與傳統的模式識別方法相比具有推廣能力強,能保證全局最優等優點。所以本文選擇SVM作為分類器。
SVM算法實現上使用LIBSVM[11]。LIBSVM有兩種類型用于解決分類問題:C-SVC和NU-SVC,這里選擇CSVC。SVM輸入的特征為56維的行向量,屬于36類(數字和英文字母)多分類問題。樣本特征送入SVM分類器進行訓練之前要按照軟件的要求轉化為特定的格式,并進行歸一化處理。
常用的核函數[12]主要有:線性核函數,多項式核函數,Sigmoid核函數,徑向基核函數(RBF)。
SVM是一個兩層的感知器神經網絡。Vapnik等人在研究中發現,不同的核函數對SVM性能的影響不大,反而核函數當中的具體參數和懲罰因子C是影響SVM性能的關鍵因素[13]。為了提高系統的識別速度,降低系統的運算量,本文選擇了RBF核函數:K(x,y)=exp{-γ x-y2}。
懲罰因子C的作用是調節訓練置信范圍和經驗風險的比例,以使得訓練分類的效果最好,推廣能力更強。合理選擇C的值,對于樣本訓練效果的好壞非常重要。
本文采用網格搜索法來選擇SVM的最優參數[14]。其基本思想為:將C和γ分別取m和n個值,用這些數值組成m×n的二維網格,每次采用一對網格頂點的值進行交叉測試直至所有頂點都測試完畢,最后從中選出交叉測試準確率最高者所對應的C和γ作為最優參數。
通過實拍圖片,識別工業器件上的字符,以驗證本文提出的字符識別算法的有效性和實用性。
3.1.1 圖像采集
圖像的采集使用研究室與公司共同研發的智能相機。其硬件結構基于模塊化設計,包括圖像采集模塊、主處理模塊、存儲模塊和通信模塊等,智能相機硬件結構如圖5所示。
圖像采集模塊采用Aptina公司的500萬像素CMOS傳感器芯片MT9P031,其采集速率最高可達60幀/s,能滿足系統對分辨率和實時性的要求。主處理器模塊采用TI公司的多媒體處理芯片DM642,其主頻可達600MHz,采用6級流水線架構,能有效地提高系統圖像處理的速度。DM642通過外部存儲器接口與FLASH和SDRAM存儲器相連,用于存儲系統程序代碼、圖像算法代碼和算法處理的配置信息、圖像數據等。智能相機提供的以太網接口和RS485串行接口,能方便地和現場工控設備進行通信。智能相機采集到的圖片是640×480的灰度圖片,如圖6所示。
圖5 智能相機的硬件結構
圖6 智能相機采集到的灰度圖片
3.1.2 圖像預處理
在進行字符識別前需要對圖片進行預處理。預處理的步驟包括:字符區域定位,二值化,分行分割,歸一化等。由于相機位置和器件上字符區域位置相對固定,所以可以利用這一點提取目標中的大致的字符區域。然后采用大津法對字符區域進行二值化。字符分行分割采用投影法[15],并結合字符平均寬度、高度等先驗知識解決字符分割斷裂或者粘連的問題。圖片字符區域分行分割后(如圖7所示)得到每個字符的外接矩形框,進而可把每個字符歸一化為24×32大小。
圖7 圖片分行分割的結果
3.1.3 字符識別
實際采集了1000張工業器件圖片。為每一個字符隨機選取20個字符圖片作為樣本圖片,數字和字母一共720個字符樣本圖片,按照上述特征提取方法提取其改進的輪廓層次特征作為樣本特征庫。然后用這1000張圖片進行字符識別測試。
實驗在Visual Studio 2005上進行。使用網格搜索法,為SVM選取最優懲罰因子和核函數參數。C取值分別為[2-10,2-9,…,29,210],γ 取 值 分 別 為 [2-10,2-9,…,29,210],組成20×20的二維網格,對每一個網格頂點的值進行交叉測試,最終得到的最優參數組合為C=64和γ=0.0625。參數確定后,用樣本特征訓練SVM。
在Pentium(R)Dual-Core E5200CPU、2GB內存的電腦上對測試圖片進行識別。并用未改進的輪廓層次特征和經過兩次向下二抽樣降維的輪廓層次特征,與本文提出的改進方法進行對比,測試識別速度和識別率。
實驗結果見表1,結果分析如下。
由表1識別速度實驗結果可以看出:字符特征提取時間由特征提取方法的復雜度決定。本文改進方法需要對特征進行小波分解,故而特征提取時間稍長。對特征兩次向下二抽樣算法復雜度低,特征提取時間增加不明顯。字符識別速度受特征維數影響較大。本文方法降低了特征向量維數,識別時間為6.1ms,而輪廓層次特征識別時間則為14ms。綜合考慮特征提取時間和識別時間,本文方法從整體上提高了系統的識別速度,能夠滿足字符識別實時性的需求。
表1所示的識別率實驗結果證實了輪廓層次特征具有較好的識別效果,運用本文方法進行改進后識別率有所提高,達到97%以上。與未改進的輪廓層次特征相比,本文方法利用小波多分辨率分析的特點,選取更能代表字符結構層次的低頻部分作為特征,有效抑制了高頻噪聲的干擾。兩次向下二抽樣的特征只能起到降維作用,甚至會丟失字符的有效的特征信息,識別效果有所降低。
表1 識別速度和識別率測試結果
本文將字符的輪廓層次特征和小波多分辨率分析相結合提取字符特征,并運用SVM作為分類器進行識別。一方面利用了小波分解的去噪作用,有效地抑制噪聲、形變等的影響,提高了字符識別的正確率;另一方面小波分解降低了后續要處理的數據量,整體上提高了識別速度;此外,SVM具有較強的泛化推廣能力,適用于有限集字符的識別。實驗表明:本文提出的字符識別方法識別率在97%以上,識別速度也能滿足實時性的需求,是一種實用而可靠的字符識別方法,適用于工業字符識別中。
[1]LI Qingchang.The study of english character recognition based on neural tree [D].Jinan:Shandong Normal University,2009(in Chinese).[李慶昌.基于神經樹的英文字符識別技術研究[D].濟南:山東師范大學,2009.]
[2]GAO Hongbin,CHEN Jun,CHEN Liping.Precise recognition algorithm for handwritten digit characters based on low-dimensional features [J].Journal of Computer Applications,2009,29(5):1412-1425(in Chinese). [高宏賓,陳軍,陳麗平.一種基于低維特征的高精度手寫數字識別算法 [J].計算機應用,2009,29(5):1412-1425.]
[3]YANG Xiaomin,HE Xiaohai,WU Wei,et al.An algorithm based on similarity and KNN for licence plate recognition [J].Journal of Sichuan University(Natural Science Edition),2006,43(5):1043-1047(in Chinese). [楊曉敏,何小海,吳煒,等.一種基于相似度判據的K近鄰分類器的車牌字符識別方法 [J].四川大學學報(自然科學版),2006,43(5):1043-1047.]
[4]QIN Zhong,XU Jianmin,SHI Shengli,et al.A method of vehicle plate character recognition under multiscale directional contours with wavelet transform [J].Microcomputer Information,2006,22(8-1):229-231(in Chinese). [秦鐘,徐建閩,史勝利,等.基于方向輪廓的小波分解車牌字符識別方法 [J].微計算機信息,2006,22(8-1):229-231.]
[5]Ekenel H K,Sanker B.Multiresolution face recognition [J].Image and Vision Computing,2005,23(5):469-477.
[6]BIAN Wei.Discuss the method of choice and construction of wavelet bases [D].Changchun:Northeast Normal University,2007(in Chinese). [邊威.小波基的選取與構造方法討論[D].長春:東北師范大學,2007.]
[7]SUN Yankui.Wavelet analysis and its applications [M].Beijing:China Machine Press,2005(in Chinese).[孫延奎.小波分析及其應用 [M].北京:機械工業出版社,2005.]
[8]Mallat S.A wavelet tour of signal processing [M].Beijing:China Machine Press,2009.
[9]WANG Mingxiang,NING Yurong,WANG Jinguo.Realization of one dimension discrete wavelet transform based on Mallat algorithm[J].Journal of Northwest University(Natural Science Edition),2006,36(3):364-368(in Chinese). [王明祥,寧宇蓉,王晉國.基于Mallat算法的一維離散小波變換的實現 [J].西北大學學報(自然科學版),2006,36(3):364-368.]
[10]Nello Cristianini,John Shawe-Taylor.An introduction to support vector machines and other kernel-based learning methods[M].Beijing:China Machine Press,2005.
[11]CHANG Chihchung,LIN Chinjen.LIBSVM:A library for support vector machines[EB/OL]. [2007-09-15].http://www.csie.ntu.edu.tw/~cjlin/libsvm.
[12]MENG Fandong.The study of character recognition based on active learning and support vector machines [D].Nanjing:Nanjing University of Science and Technology,2008(in Chinese).[孟凡棟.基于主動學習SVM的字符識別方法研究[D].南京:南京理工大學,2008.]
[13]ZHANG Honglie.Application of support vector machines in recognition of characters [J]. Microcomputer Information,2006,22(4-2):245-247(in Chinese).[張宏烈.支持向量機在字符識別中的應用研究 [J]微計算機信息,2006,22(4-2):245-247.]
[14]HE Jie.SVM and It'Application on car plate recognition [D].Chengdu:Sichuan University,2005(in Chinese).[何婕.SVM及其在車牌字符識別中的運用 [D].成都:四川大學,2005.]
[15]CHI Xiaojun,MENG Qingchun.Character segmentati on of license plate based on projection and eigenvalue [J].Application Research of Computers,2006,23(7):256-257(in Chinese).[遲曉君,孟慶春.基于投影特征值的車牌字符分割算法 [J].計算機應用研究,2006,23(7):256-257.]