于圣遠(yuǎn)



摘要:文字作為社會(huì)文明的載體,在信息科技領(lǐng)域占有重要的地位。光學(xué)字符識(shí)別(OCR)可以減輕人力繁瑣的工作,本文重點(diǎn)研究實(shí)現(xiàn)了銀行卡上印刷體字符識(shí)別的算法。
首先進(jìn)行銀行卡字符識(shí)別的前期處理工作。采用常見的圖像的預(yù)處理方法,如用高斯濾波器對(duì)銀行卡圖像進(jìn)行了圖像的復(fù)原去噪、二值化,以及傾斜校正等。然后對(duì)銀行卡圖像的字符區(qū)域進(jìn)行了進(jìn)一步的提取,結(jié)合銀行卡圖像的版面分析、字符區(qū)域投影操作,對(duì)印刷體字符進(jìn)行了字符細(xì)化與分割。隨后研究總結(jié)了字符的特征提取與識(shí)別算法。對(duì)分割后的印刷體字符進(jìn)行了歸一化處理,最終選用基于模板匹配的字符識(shí)別方法,并對(duì)銀行卡圖像進(jìn)行特征提取后就以上方法進(jìn)行了仿真實(shí)現(xiàn),對(duì)識(shí)別結(jié)果進(jìn)行了分析,其識(shí)別率較高,但仍有不理想的結(jié)果出現(xiàn),需要改進(jìn)。
關(guān)鍵詞:光學(xué)字符識(shí)別;輪廓檢測(cè);特征提取;模板匹配
中圖分類號(hào):F832文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-9129(2020)07-0068-03
Abstract:As the carrier of social civilization, text occupies an important position in the field of information technology. Optical character recognition (OCR) can reduce the laborious work, this paper focuses on the realization of printed character recognition algorithm on bank CARDS.
Firstly, the preliminary processing of character recognition of bank card is carried out. Common image preprocessing methods are used, such as gaussian filter for image restoration, denoising, binarization and tilt correction. Then the character area of the bankcard image is further extracted, and the printed characters are refined and segmented by combining the layout analysis of the bankcard image and the projection operation of the character area. Then the algorithm of character feature extraction and recognition is summarized. Finally, the character recognition method based on template matching is selected. After the feature extraction of bank card image, the above methods are simulated and the recognition results are analyzed. The recognition rate is relatively high, but there are still some unsatisfactory results that need to be improved.
Key words:Optical character recognition;Contour detection;Feature extraction;Template matching
1緒論
1.1課題來源及研究意義。計(jì)算機(jī)技術(shù)的飛速發(fā)展給人們生活帶來了巨大改變,并極大的推動(dòng)了人類社會(huì)的發(fā)展。文字作為社會(huì)文明的載體,在信息科技領(lǐng)域占有重要的地位。OCR(Optical Character Recognition,光學(xué)字符識(shí)別)作為一個(gè)應(yīng)用研究領(lǐng)域,對(duì)減少從業(yè)人員的工作量,提高目標(biāo)認(rèn)證識(shí)別的工作效率和準(zhǔn)確率,有著極其重要的意義。機(jī)器視覺(又稱計(jì)算機(jī)視覺)是以數(shù)字圖像處理技術(shù)和極其視覺理論為基礎(chǔ),利用計(jì)算機(jī)對(duì)客觀世界進(jìn)行視覺感知和解釋的一種新興技術(shù)。它有許多突出的優(yōu)點(diǎn),如現(xiàn)場抗干擾能力強(qiáng)、非接觸、精度合適、速度快等等,具有良好的應(yīng)用前景。本文在這樣的發(fā)展趨勢(shì)下,利用opencv-python實(shí)現(xiàn)了一個(gè)銀行卡數(shù)字識(shí)別系統(tǒng)。
1.2本文的主要研究內(nèi)容。
第二章主要介紹了對(duì)銀行卡圖像的預(yù)處理,為之后的字符提取與識(shí)別奠定了基礎(chǔ),
第三章主要介紹了銀行卡數(shù)字區(qū)域部分抽取與切分的相關(guān)過程。
第四章主要介紹了字符特征提取與識(shí)別。
第五章給出了結(jié)論及反思。
2銀行卡圖像預(yù)處理
本章主要對(duì)銀行卡圖像進(jìn)行了前期的預(yù)處理,主要分為圖像的增強(qiáng)和水平校正。圖像增強(qiáng)旨在降低圖像中的噪聲,增強(qiáng)對(duì)比度,從而增強(qiáng)對(duì)文本區(qū)域的定位。圖像的水平校正則可以將原圖像轉(zhuǎn)換為文本水平分布的圖像,提高后續(xù)對(duì)圖像中文本定位的精確度,這一部分在本文不做深入展開。
2.1均值濾波。均值濾波的含義時(shí)將圖片中一個(gè)方塊區(qū)域(一般為3*3)內(nèi)中心點(diǎn)的像素為全部變?yōu)辄c(diǎn)像素值的平均值。
g(x,y)=1M∑f∈sf(x,y)
2.2高斯濾波。本文采用高斯濾波核與圖像進(jìn)行卷積。此步驟將稍微平滑圖像,以減少明顯噪聲對(duì)邊緣檢測(cè)器的影響。高斯濾波器核大小為(2k+1)×(2k+1)時(shí)的方程如下:
高斯濾波將點(diǎn)的8連通區(qū)域按照一定權(quán)重相加,將其中值作為點(diǎn)的像素值。使用高斯濾波處理可以將圖像中很多噪聲平滑,
將圖像中目標(biāo)圖像的輪廓凸顯出來。但此方法也會(huì)將一些不明顯的邊界平滑掉,需注意。高斯濾波矩陣的權(quán)值,隨著與中心像素點(diǎn)的距離增加,而呈現(xiàn)高斯衰減的變換特性。這樣的好處在于,離算子中心很遠(yuǎn)的像素點(diǎn)的作用很小,從而能在一定程度上保持圖像的邊緣特征。
2.3中值濾波。中值濾波的含義是在圖像中去3*3的矩陣,后將9個(gè)像素進(jìn)行排序,并將這個(gè)矩陣的中心點(diǎn)賦值為這九個(gè)像素的中值。
可以看出,高斯濾波的去噪效果最好,同時(shí)數(shù)字部分的邊界仍然保持的比較完整。而中值濾波對(duì)數(shù)字邊界的破壞較為嚴(yán)重。因此采用高斯濾波的結(jié)果進(jìn)行下一步的操作。
3證件圖像文本區(qū)域定位
經(jīng)過上一章的銀行卡圖像預(yù)處理之后,最大程度上恢復(fù)了圖像的質(zhì)量,并確定了圖像上的待識(shí)別區(qū)域,本章的主要任務(wù)是將待識(shí)別的數(shù)字區(qū)域進(jìn)行定位及切分操作。
3.1印刷體數(shù)字的定位。此部分的操作主要有禮帽操作、二值化以及閉操作等。
首先要將圖像進(jìn)行灰度化處理,圖像的灰度處理是指將色彩圖像轉(zhuǎn)化為灰度圖像的過程。彩色圖像分為R,G,B三個(gè)分量,分別顯示出紅綠藍(lán)等各種顏色,灰度化就是使彩色的R,G,B分量相等的過程,灰度化處理的意義在于減小圖像所占存儲(chǔ)空間以及后續(xù)的計(jì)算量,便于之后的處理。
(1)禮帽操作。禮帽操作的結(jié)果為原圖像-開運(yùn)算圖像。開運(yùn)算相當(dāng)于對(duì)圖像先進(jìn)行腐蝕運(yùn)算再進(jìn)行膨脹運(yùn)算,可以起到消除離散點(diǎn)和"毛刺"以及將兩個(gè)物體分開的效果,原圖像減去開運(yùn)算操作后的圖像后,就得得到了被消除的離散點(diǎn)和“毛刺”。禮帽操作通常用于突出圖像中的噪聲圖像。然而禮帽操作在本文中的意義在于突出原圖像中更加明亮的部位,從而便于準(zhǔn)確定位。之后進(jìn)行二值化操作,即將灰度圖像轉(zhuǎn)變?yōu)橹挥?0-255 數(shù)值的黑白圖像,二值化能夠方便后期的圖像分析,使圖像處理的數(shù)據(jù)量變小,同時(shí)能有效地抑制噪聲。
(2)sobel算子處理。在此處用了一個(gè)xsobel算子對(duì)原圖像進(jìn)行處理,并進(jìn)行了歸一化操作。此運(yùn)算使得銀行卡圖像中的數(shù)字部分橫向粘連在一起,從而突出了數(shù)字部分。
索伯算子(Sobel operator)是圖像處理中的算子之一,在影像處理及電腦視覺領(lǐng)域中常被用來做邊緣檢測(cè)。在技術(shù)上,它是一離散性差分算子,用來運(yùn)算圖像亮度函數(shù)的梯度之近似值。在圖像的任何一點(diǎn)使用此算子,索伯算子的運(yùn)算將會(huì)產(chǎn)生對(duì)應(yīng)的梯度向量或是其范數(shù)。如果以A代表原始圖像,Gx代表經(jīng)橫向及縱向邊緣檢測(cè)的圖像,其公式如下:
(3)閉運(yùn)算。最后,先進(jìn)行一次閉運(yùn)算,所得結(jié)果二值化后,再進(jìn)行一次閉運(yùn)算。閉運(yùn)算相當(dāng)于對(duì)圖像先進(jìn)行膨脹運(yùn)算再進(jìn)行腐蝕運(yùn)行,可以填充圖像的內(nèi)部孔洞和圖像的凹角點(diǎn),可以把兩個(gè)鄰近的目標(biāo)連接起來。此操作使銀行卡的數(shù)字區(qū)域連成一片,銀行卡數(shù)字區(qū)域?qū)?yīng)生成的白色區(qū)域更清晰明亮、便于定位,最后得到的圖像用作銀行卡文字部分輪廓檢測(cè)的基礎(chǔ)。
(4)數(shù)字輪廓檢測(cè)。將上圖用sobel算子做邊緣檢測(cè)后,得到的數(shù)字部分輪廓在原圖像中的顯示如下:
可以看到,4個(gè)數(shù)字區(qū)域已經(jīng)被成功地檢測(cè)出來了,但是同時(shí)也檢測(cè)出了其他并不需要的區(qū)域,需要將他們剔除掉。注意到目標(biāo)數(shù)字區(qū)域的外接矩形的長寬比在2.5至4.0之間,因此可以做一次遍歷篩選:先生成各個(gè)輪廓的外接矩形,再分別求出其外接矩形的長寬比,將矩形長寬比在2.5至4.0之間相應(yīng)的輪廓保留下來,其余的刪除,就得到了目標(biāo)區(qū)域的輪廓。
3.2字符分割。本文采用基于版面分析的數(shù)字分割原理進(jìn)行字符分割,主要是依據(jù)字符輪廓坐標(biāo)不同進(jìn)行切分的。該算法是一種經(jīng)典的數(shù)字分割方法,自問世以來,便被不斷的改善發(fā)展,得到了很大的應(yīng)用。從字符的大小以及字符間隔分析,字符的大小以及字符間的間隔一般起伏變化不大,這一特征在印刷體字符上尤其明顯。因此在字符的識(shí)別過程中,可以依據(jù)字符的大小特點(diǎn)和字符的間隔特征,做字符間的切分操作。
首先將含有4個(gè)數(shù)字的輪廓內(nèi)的圖像進(jìn)行與上面類似的二值化。
之后再進(jìn)行輪廓檢測(cè)。檢測(cè)方法如下用sobel算子檢測(cè)出4個(gè)數(shù)字的輪廓。之后計(jì)算出這4個(gè)輪廓的最小外接矩形,并分別取得這4個(gè)矩形的左上角點(diǎn)的坐標(biāo)值,將這4個(gè)矩形的左上角點(diǎn)的坐標(biāo)值由小到大排序,即得到了由左到右4個(gè)數(shù)字對(duì)應(yīng)的待檢測(cè)數(shù)字的輪廓。其余3個(gè)含有4個(gè)數(shù)字的輪廓也進(jìn)行類似的步驟,最終即得到了由左至右16個(gè)數(shù)字相應(yīng)的待檢測(cè)的輪廓。
4字符的識(shí)別
字符識(shí)別主要有以下幾種算法:
(1)模板匹配法:該方法就是將輸入的待識(shí)別字符歸一化為模板的大小,然后計(jì)算與模板集合的匹配相似度,選擇最佳匹配結(jié)果。該方法簡單快速但很容易對(duì)存在噪聲、變形、偏移的字符產(chǎn)生誤識(shí)別。為了提高正確率人們往往使用多個(gè)模板進(jìn)行匹配,這樣就大大增加了匹配算法的處理時(shí)間。后來有人對(duì)傳統(tǒng)的模板匹配法進(jìn)行了改進(jìn),提出了基于關(guān)鍵點(diǎn)的模板匹配法,該方法對(duì)字符中提取出的一些關(guān)鍵點(diǎn)進(jìn)行模板匹配,減少了模板匹配點(diǎn)數(shù),在很大程度上提高了識(shí)別速度[1]。
(2) 特征分析匹配法:該方法是提取字符圖像中的一種或幾種特征,然后與特征庫的集合進(jìn)行匹配,相對(duì)于前面的模板匹配法,該方法通過提取特征能夠更好的識(shí)別字符。
為簡便起見,本文采用模板匹配法進(jìn)行字符識(shí)別。首先將模板進(jìn)行灰度圖轉(zhuǎn)換、二值化處理、之后用sobel算子檢測(cè)出0-9這10個(gè)數(shù)字的輪廓。之后計(jì)算出這10個(gè)輪廓的最小外接矩形,并分別取得這10個(gè)矩形的左上角點(diǎn)的坐標(biāo)值,將這10個(gè)矩形的左上角點(diǎn)的坐標(biāo)值由小到大排序,之后將其對(duì)應(yīng)的10個(gè)模板所對(duì)應(yīng)的值分別賦為0-9。這樣就得到了已經(jīng)被分割好的、正確對(duì)應(yīng)著0-9的10個(gè)模板。
4.1 字符的歸一化處理。字符歸一化是字符特征提取前的重要步驟,由于切分后的數(shù)字,在大小形狀上不一致,為了保證特征提取的準(zhǔn)確性,必須進(jìn)行字符的歸一化處理。
字符的歸一化處理屬于圖像的空間轉(zhuǎn)換,其中常用的有圖像的平移、旋轉(zhuǎn)、縮放等。
為了保證在統(tǒng)計(jì)識(shí)別過程中,字符與模板之間能夠進(jìn)行距離與相似度的匹配,則必須使字符擁有與模板相同的維數(shù)。而在基于字符結(jié)構(gòu)的識(shí)別過程中,字符的間架結(jié)構(gòu)必須統(tǒng)一,這才可以保證字符與模板之間的關(guān)聯(lián)性。字符只有經(jīng)過歸一化處理,才可以提升系統(tǒng)識(shí)別的穩(wěn)定性,同時(shí)還具有抑制圖像噪聲干擾的作用。[3]在本文中將模板與待匹配的圖像尺寸大小均調(diào)整為(57,88)
4.2模板匹配法。模板匹配的字符識(shí)別是指通過一些標(biāo)準(zhǔn)的字符與待識(shí)別字符進(jìn)行比較,找出與待識(shí)別字符最為相似的模板,并將該模板作為識(shí)別的結(jié)果。待識(shí)別字符與標(biāo)準(zhǔn)模板之間的相似度衡量可以用如下公式表示:
式中Sft ——用于衡量相似度大小;
f(i,j)——待識(shí)別的字符;
T(i,j)——標(biāo)準(zhǔn)的字符模板。
在本文中對(duì)16個(gè)待檢測(cè)數(shù)字的圖像,分別用數(shù)字0-9共計(jì)10個(gè)數(shù)字的模板進(jìn)行遍歷,計(jì)算器匹配度Sft,并將其值最高的模板對(duì)應(yīng)的數(shù)字記為檢測(cè)結(jié)果。即成功得到了此銀行卡卡號(hào)的檢測(cè)結(jié)果:
Credit Card Type:MasterCard
5結(jié)論
本文的核心思路是采用模板匹配法進(jìn)行銀行卡數(shù)字識(shí)別。模板匹配的原理較簡單,但是對(duì)于模板庫的建立要求很高,可以看到當(dāng)模板和待檢測(cè)圖像的質(zhì)量較高時(shí),模板匹配法的檢測(cè)準(zhǔn)確率相當(dāng)高,幾乎可以達(dá)到100%。但是當(dāng)模板與待檢測(cè)圖像的字體差異較大時(shí),檢測(cè)的效果哦就會(huì)很不理想。另一方面,字符匹配過程中的計(jì)算量也很大,較為耗時(shí)。
另外,本文中對(duì)銀行卡圖像中數(shù)字區(qū)域的定位采用了較多的經(jīng)驗(yàn)參數(shù),如外接矩形長寬比等進(jìn)行識(shí)別篩選,在檢測(cè)不同樣式的銀行卡時(shí),會(huì)凸顯出自動(dòng)化程度與準(zhǔn)確率不足的情況,是亟待優(yōu)化的一個(gè)方面。
參考文獻(xiàn):
[1]陳學(xué)保.車牌字符識(shí)別算法的研究[D].重慶大學(xué).2013
[2]https://zh.wikipedia.org/wiki/%E7%B4%A2%E8%B2%9D%E7%88%BE%E7%AE%97%E5%AD%90
[3]張瑜. 支票掃描圖像中的字符識(shí)別算法及實(shí)現(xiàn).哈爾濱工業(yè)大學(xué).2016
[4]UP:啥都會(huì)一點(diǎn)的研究生. (全)基于python的Opencv項(xiàng)目實(shí)戰(zhàn).2019 https://www.bilibili.com/video/BV1oJ411D71z?p=9