楊美程
摘要:系統(tǒng)的工作方式主要是對人民幣采集圖像,然后進行包括圖像灰值化、濾波、傾斜校正及對冠字號目標區(qū)域提取的圖像預(yù)處理,隨后利用LabVIEW中Vision Assistant工具里的OCR功能對冠字號中出現(xiàn)的字符進行訓練并建立模板數(shù)據(jù)庫,與提取出的冠字號區(qū)域進行匹配從而識別出字符并轉(zhuǎn)換成文本。系統(tǒng)用戶操作界面簡潔,具有較高的識別準確率及速度。
關(guān)鍵詞:LabVIEW;字符識別;匹配;冠字號
人民幣紙幣上的冠字號具有唯一性,對人民幣冠字號進行識別并統(tǒng)一管理可以用于人民幣的真?zhèn)舞b別,從而在某種程度上有效打擊偽鈔犯罪。如今,在人民幣冠字號識別技術(shù)領(lǐng)域存在著神經(jīng)網(wǎng)絡(luò)、二值化法及模板匹配等識別技術(shù),人們大都利用這些技術(shù)基于visual C++或MATLAB平臺進行研究,設(shè)計出的系統(tǒng)具有一定的穩(wěn)定性及準確率,但是過程大都比較復雜,對于用戶來說操作不是很方便。為此本文基于LabVIEW圖形化編程語言及其可視化用戶操作界面的特點,研究了一種人民幣冠字號識別系統(tǒng),以另一個編程開發(fā)平臺的角度為進一步研制國產(chǎn)紙幣冠字號識別機提供參考。
1.圖像采集及預(yù)處理
1.1圖像采集
采用高清工業(yè)相機對放置的人民幣紙幣進行拍照,在拍攝圖像時要注意圖像不要因為鏡頭而畸變,將相機對準與紙幣垂直的位置,避免相機獲取的圖像帶有角度而產(chǎn)生透視誤差。同時還要注意光照能夠提供被檢測紙幣與背景之間有足夠的對比度,以便從圖像中獲取信息,使圖像采集過程中保證圖像的質(zhì)量。
1.2圖像預(yù)處理
1.2.1圖像灰值化
采集到彩色圖像后需要進行灰值化處理,本文利用視覺與運動選板中的IMAQ Create控件進行灰值化,使用此控件時將其圖像類型接線端連接常量為Grayscale(u8),則控件輸出端即可得出灰度圖像。
1.2.2圖像濾波
圖像濾波常使用快速傅里葉變換將圖像變換到復頻域,然后利用工作在復頻域的算法除去圖像中不期望的頻率達到濾波的效果。在LabVIEW中常使用IMAQ FFT模塊將圖像變換到復頻域,形成代表圖像的頻率信息的復數(shù)圖像。然后使用IMAQ Complex Attenuate選擇低通或高通頻域濾波器在頻域改善圖像。
1.2.3圖像傾斜校正
拍攝圖像時圖像會出現(xiàn)傾斜的情況,要進行圖像傾斜校正。首先找出傾斜圖像邊緣像素點連成的基線,基線的方向角大小即對應(yīng)圖像的傾斜角大小,通過像素遍歷的方法找出這些特征點并將坐標值存儲在數(shù)組中,然后通過最小二乘法將這些數(shù)組中的數(shù)據(jù)擬合成直線并得到斜率即可求出角度,以此便可以將圖像進行校正。
在LabVIEW中利用IMAQ Get Row-col函數(shù)可得到圖像一行或一列的像素值,并通過構(gòu)建for嵌套循環(huán)遍歷像素,將循環(huán)結(jié)果不為0的像素點對應(yīng)i值索引出來,此值即為該像素點的坐標值。隨后利用IMAQ Line Fit函數(shù)進行線性擬合,推導出圖像傾斜的角度,最后使用IMAQ Rotate函數(shù)進行圖像的旋轉(zhuǎn)校正。
1.3冠字號目標區(qū)域提取
旋轉(zhuǎn)校正后的圖像其背景為純黑色灰度值為0,而其余部分灰度值都大于0,由此設(shè)定閾值將背景除去得到完整的紙幣圖像。由于冠字號字符區(qū)域相對于整張紙幣來說其相對位置固定,因此可以使用IMAQ Extract函數(shù)實現(xiàn)對目標區(qū)域的提取。在Optional Rectangle接線端創(chuàng)建提取區(qū)域輸入控件。提取目標區(qū)域的基本思想為以圖像左上端頂點為原點,其余像素點相對于原點的位置為其坐標點,由于目標區(qū)域位置相對固定,因此可通過提取區(qū)域輸入控件創(chuàng)建一個最合適的裁剪矩形框選中目標區(qū)域,而矩形框是通過其左上端頂點及右下端頂點確定的,因此要在前面板的提取區(qū)域數(shù)組中分別輸入兩個頂點的橫坐標與縱坐標。確定了裁剪的矩形框,運行程序后便能將目標區(qū)域提取出來。圖1為提取目標區(qū)域前面板及程序框圖,其中圖1(a)前面板中顯示了提取目標區(qū)域前后的圖像,圖1(b)則為該步驟的程序框圖。值圖像,因此必須先對圖像灰值化處理才能夠在該平臺下操作,可以調(diào)用LabVIEW IMAQ函數(shù)庫中的IMAQ Extract Single Color Plane函數(shù)進行圖像灰度化處理保存。
在需要被訓練的字符周圍選中一個ROI區(qū)域,選中區(qū)域后OCR能夠根據(jù)字符大致輪廓特征對字符進行自動分割并根據(jù)字符的長寬大小用紅色矩形框?qū)⒆址x中定位,對于易分辨的字符可以進行連續(xù)選中,對不易分辨的字符進行單獨選中訓練。
在參數(shù)設(shè)置區(qū)域可以對字符設(shè)置高速訓練參數(shù),如設(shè)置灰度級范圍、移除微粒、樣條運算等。
對字符選中ROI區(qū)域時,Text Read文本框中會顯示?符號表示待訓練,此時需要在Correct String文本框中輸入正確的訓練值。
點擊Train便自動完成對字符進行訓練,Text Read文本框中也會顯示訓練的結(jié)果,右側(cè)會提示完成訓練所需時間。
對所有的字符完成訓練后需要保存為ABC文件類型以供程序調(diào)用。圖3為利用NI OCR對字符模板完成訓練的界面。
2.冠字號字符識別
2.1字符訓練
2.1.1OCR功能實現(xiàn)
本文中字符訓練是在NI視覺核心工具包VDMY的視覺協(xié)助(Vision Assistant,VA)平臺下進行的。由于人民幣冠字號字符由固定的26個英文字母和10個阿拉伯數(shù)字共36個字符組成,這些字符的特征完全固定,因此可以使用OCR技術(shù)實現(xiàn)冠字號的識別。NI VA中的OCR技術(shù)采用模式識別算法分析字符形態(tài)特征。首先根據(jù)模板字符外部輪廓如對稱、拐點的特征對不同字符進行初步的學習,然后由字符像素灰度級相對背景不同確定字符像素的大致分布及疏密情況進行深度的學習,對于一些難以區(qū)分的字符,在VA平臺上可以通過對這些字符進行單獨的搜索模式、長寬依賴比等設(shè)置來進行區(qū)分。對模板字符訓練后再將需要識別的字符進行自動模式識別,找出特征量最為接近的結(jié)果。
2.1.2字符訓練過程
利用NI VA平臺下的OCR功能完成對字符的訓練構(gòu)成模板,其主要操作步驟流程如圖2所示。
2.2冠字號字符識別
字符識別過程主要是調(diào)用模板文件進行匹配過程。LabVIEW中首先調(diào)用IMAQ Crate函數(shù)為提取出的冠字號區(qū)域圖像設(shè)立暫存空間,調(diào)用IMAQ OCR Create Session函數(shù)給OCR創(chuàng)建會話。然后調(diào)用文件對話框函數(shù)為用戶創(chuàng)建打開字符識別模板文件路徑的對話框,同時調(diào)用文件對話框函數(shù)為用戶創(chuàng)建打開圖像文件選擇路徑并確定格式的對話框,供用戶選擇圖片。再使用IMAQ OCR Read Text函數(shù)進行模板文件及冠字號圖像字符的匹配并識別出結(jié)果,并設(shè)置時間計數(shù)器來計算識別所需的時間。
LabVIEw是基于圖形化編程的語言,可用來方便地創(chuàng)建用戶界面,用戶界面在LabVIEW中也被稱為前面板,用戶可通過操作前面板形象化的控件簡便地完成相應(yīng)的處理。
圖4為進行冠字號識別供用戶操作的前面板。用戶運行程序后,點擊打開數(shù)據(jù)匹配庫控件,會彈出請用戶選擇模板ABC文件路徑的對話框,用戶選定文件后,模板路徑控件會立即顯示用戶所選擇的模板路徑;點擊打開圖片控件后,也會彈出請用戶選擇圖像路徑的對話框,用戶選定后,圖像路徑控件則會立即顯示用戶所選擇的圖像路徑,并且在下方顯示所選擇的圖像。最后點擊識別控件,程序立即進行字符的匹配過程,并第一時間將識別結(jié)果及用時顯示出來。
3.實驗結(jié)果
本實驗中選取了30張百元人民幣紙幣作為樣本進行實驗,將這些樣本進行灰度化、濾波、傾斜校正及目標提取后產(chǎn)生了30張含冠字號字符待識別區(qū)域的圖像。這30張圖像中一共有300個字符,其中大寫英文字母字符60個,數(shù)字字符240個。將這些圖像分別與模板進行匹配識別,結(jié)果為紙幣整體識別成功率為93.3%,其中字母識別成功率為98.3%,數(shù)字識別成功率為98.8%,識別過程平均用時7 ms,字符識別錯誤的原因大致為某些紙幣存在老舊或破損、褶皺的情況,導致字符本身不完整或者不清晰使識別過程出現(xiàn)了不匹配的情況。
4.結(jié)語
本文在是LabVIEW開發(fā)環(huán)境下對人民幣冠字號字符進行識別研究的,設(shè)計了一種用戶操作簡潔,準確率較高,識別速度進一步提升的人民幣冠字號識別系統(tǒng)。相關(guān)研究不僅可以用于冠字號的識別,還可以用于產(chǎn)品序列號檢測、智能化儀表等領(lǐng)域。但是根據(jù)本文的實驗結(jié)果表明,本系統(tǒng)雖然能夠識別大多數(shù)字符,但依然存在著某些紙幣上的冠字號字符識別錯誤的情況,因此需要進一步的改善,使得系統(tǒng)在紙幣本身條件不佳的情況下也能夠?qū)谧痔栕址鰷蚀_的識別,提高系統(tǒng)的性能。