邵 虹,王 佳
(沈陽工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽 110870)
發(fā)票印刷體數(shù)字識(shí)別方法的研究
邵 虹,王 佳
(沈陽工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽 110870)
在發(fā)票圖片的采集過程中,由于拍攝不當(dāng)獲取到的圖片存在傾斜;受采集環(huán)境的影響,采集到的發(fā)票圖片表面有光照不均勻,部分區(qū)域過亮或過暗,不利于數(shù)字的定位與識(shí)別。針對(duì)此類問題,在預(yù)處理階段,首先應(yīng)用霍夫變換法檢測(cè)發(fā)票圖片中的橫線并計(jì)算其傾斜角,通過旋轉(zhuǎn)對(duì)傾斜發(fā)票圖片進(jìn)行矯正;其次,對(duì)發(fā)票圖像進(jìn)行預(yù)處理操作,減弱光照以及噪聲的影響;接著研究了普通發(fā)票版面特征以及數(shù)字分布位置,提出了一種基于投影法的定位方法,準(zhǔn)確定位出數(shù)字區(qū)域;最終選用基于數(shù)字結(jié)構(gòu)特征的方法判別數(shù)字。實(shí)驗(yàn)結(jié)果表明,該算法識(shí)別速度快、精度高。
預(yù)處理;霍夫變換;發(fā)票號(hào)碼;數(shù)字定位;號(hào)碼識(shí)別
隨著信息的快速發(fā)展,數(shù)字世界變得越來越明顯。光學(xué)字符識(shí)別是模式識(shí)別領(lǐng)域中的一個(gè)重要研究領(lǐng)域。通過前期的努力,這一領(lǐng)域已經(jīng)取得了豐碩的研究成果。
數(shù)字識(shí)別是光學(xué)字符識(shí)別的一個(gè)重要研究方向和組成部分,它僅利用計(jì)算機(jī)就能自動(dòng)識(shí)別阿拉伯?dāng)?shù)字0到9。是一種有效、可靠、快速的數(shù)字識(shí)別系統(tǒng),不僅可以作為單獨(dú)使用的軟件,也可用于識(shí)別車牌號(hào)碼系統(tǒng)以及智能安防系統(tǒng),具有非常重要的商業(yè)價(jià)值。因此,數(shù)字識(shí)別的研究吸引了眾多研究者,產(chǎn)生了許多識(shí)別算法和研究成果。
文獻(xiàn)[1]介紹了銀行支票識(shí)別系統(tǒng)的基礎(chǔ),針對(duì)同時(shí)出現(xiàn)的大小寫數(shù)字,提出多分類器融合算法和人工神經(jīng)網(wǎng)絡(luò)算法,分別實(shí)現(xiàn)大寫和小寫數(shù)字的魯棒識(shí)別;文獻(xiàn)[2]闡述的支票識(shí)別系統(tǒng)針對(duì)對(duì)象中線條特點(diǎn),給出一種快速線段檢測(cè)算法和基于特征線檢測(cè)的單據(jù)識(shí)別算法。
很長(zhǎng)一段時(shí)間,單據(jù)管理工作由人工完成。在許多企業(yè)和政府機(jī)構(gòu)、醫(yī)院、保險(xiǎn)行業(yè),賬單處理是沉重和繁瑣的手工勞動(dòng)。如果能夠利用計(jì)算機(jī)自動(dòng)處理這些發(fā)票,從發(fā)票印制的數(shù)字信息中自動(dòng)提取,實(shí)現(xiàn)數(shù)字的精確識(shí)別,那么就能減少由于輸入數(shù)據(jù)投入的人力和物力。
普通商業(yè)機(jī)打發(fā)票作為發(fā)票類別中最常見也最重要的一類,發(fā)票抬頭、日期等信息位于發(fā)票的上部,不同類別的數(shù)據(jù)分別列示于下部矩形框內(nèi)。文中課題有效的信息是發(fā)票的數(shù)字區(qū)域,在發(fā)票圖片的右上角,其分布形式為上下兩行打印。上部是發(fā)票代碼,12位印刷體數(shù)字,下部是發(fā)票號(hào)碼,8位印刷體數(shù)字。
圖像的預(yù)處理主要是指在圖像二值化前對(duì)圖像所進(jìn)行的處理工作。由于采像環(huán)境的變化和采像設(shè)備的影響,會(huì)出現(xiàn)不同程度的分布有噪聲和亮度不均勻以及圖像傾斜的情況,這會(huì)嚴(yán)重影響后面的處理效果。圖像的預(yù)處理可以有效消除噪聲、光照反射等情況的不良影響,增強(qiáng)圖像中的有效信息。因此,選擇適合的預(yù)處理方法將對(duì)后續(xù)二值化、識(shí)別工作帶來很大的便利[3]。
2.1 圖片的傾斜矯正
獲取到的發(fā)票圖片可能存在傾斜,這樣的圖片會(huì)影響后續(xù)的數(shù)字定位和識(shí)別,因此需要對(duì)獲取到的所有圖片進(jìn)行傾斜檢測(cè)?;舴蜃儞Q是圖像處理中的特征提取技術(shù),它是檢測(cè)一種特定形狀的對(duì)象投票算法。具體來說,霍夫變換檢測(cè)圖像中的直線,利用雙坐標(biāo)空間的變化,將空間中的相似形狀的直線線性映射到另一個(gè)坐標(biāo)空間的點(diǎn),并將檢測(cè)直線的問題轉(zhuǎn)化為統(tǒng)計(jì)峰值問題[4]。
利用霍夫變換方法檢測(cè)發(fā)票圖片中的水平最長(zhǎng)直線,然后計(jì)算出這條最長(zhǎng)直線的斜率,最后實(shí)現(xiàn)圖片的水平矯正,達(dá)到預(yù)期的目標(biāo)。具體的算法步驟包括以下幾點(diǎn):
(1)讀入彩色圖片并進(jìn)行灰度化。
(2)截取整個(gè)發(fā)票圖片的右上角部分,將檢測(cè)區(qū)域縮小。對(duì)發(fā)票的研究發(fā)現(xiàn),號(hào)碼所在位置在整幅圖片的上1/3到上邊界,右3/4到右邊界部分。縮小直線檢測(cè)區(qū)域?qū)p少處理數(shù)據(jù)量,提高程序運(yùn)行速度。
(3)對(duì)該區(qū)域進(jìn)行Roberts邊緣檢測(cè),獲取邊界,濾除豎線,檢測(cè)所有橫線,計(jì)算長(zhǎng)度并標(biāo)出最長(zhǎng)直線。
(4)計(jì)算斜率,矯正圖片。設(shè)A、B兩點(diǎn)分別是直線的起點(diǎn)和終點(diǎn),坐標(biāo)分別為(x1,y1)、(x2,y2)。通過式(1)計(jì)算出直線的斜率,然后求出傾斜角θ,將原始圖片逆時(shí)針旋轉(zhuǎn)θ角度,實(shí)現(xiàn)矯正。
(1)
圖1就是對(duì)其中一幅圖片進(jìn)行傾斜矯正的過程圖。其中,第一張圖片為讀入的原始圖片,為彩色圖片;第二張是局部灰度圖,截取的是發(fā)票的固定右上角部分,縮小檢測(cè)范圍,提高了檢測(cè)速度和準(zhǔn)確性;第三張是Roberts邊緣檢測(cè)的結(jié)果,并標(biāo)注出最長(zhǎng)直線;第四張是矯正圖,通過最長(zhǎng)直線計(jì)算出傾斜角度,再旋轉(zhuǎn)原圖,得到矯正后的圖像。
圖1 圖片的傾斜矯正
實(shí)驗(yàn)程序總共對(duì)100張圖片進(jìn)行測(cè)試,其中正確的有100張。傾斜矯正正確率達(dá)到了100%。
2.2 圖片的噪聲處理
圖像的噪聲主要來源于圖像采集和傳輸兩階段。噪聲應(yīng)極大程度地消除,消除噪音可以獲得圖像的真實(shí)數(shù)據(jù)。消除噪聲的方式有很多種,大抵可分為兩大類:一類是空間域方法,應(yīng)用不同的模板算子對(duì)原始圖像做卷積運(yùn)算處理,抑制或消除噪聲;另一類是頻率域方法,把原始圖像從空間域轉(zhuǎn)變到頻率域,再采用適當(dāng)?shù)母黝悶V波器對(duì)其進(jìn)行濾波,經(jīng)反變換后得到去噪后的圖像[5]。
實(shí)驗(yàn)中選取空間域處理方法,選用非線性濾波器中的中值濾波器,由于在實(shí)際運(yùn)算過程中它并不需要圖像的統(tǒng)計(jì)特征,所以具有簡(jiǎn)單與便利的優(yōu)點(diǎn),能夠消除線性濾波器引起的圖像細(xì)節(jié)模糊難題。實(shí)驗(yàn)中對(duì)發(fā)票圖片進(jìn)行中值濾波,采用3×3大小的模板。
2.3 發(fā)票數(shù)字的定位
在濾除噪聲之后,發(fā)票號(hào)碼數(shù)字需要被精確定位并截取為數(shù)字串存儲(chǔ)下來,以便于后續(xù)的分割和識(shí)別操作。仔細(xì)觀察發(fā)票版面后發(fā)現(xiàn),感興趣的發(fā)票號(hào)碼數(shù)字位于發(fā)票圖像中最大矩形框的上方,以這個(gè)矩形框右上角的頂點(diǎn)為基準(zhǔn)點(diǎn),分別向左、向上截取合適的寬度和高度,構(gòu)成一個(gè)特定的矩形把兩行數(shù)字包含起來,實(shí)現(xiàn)對(duì)數(shù)字的初次定位,最后將兩行數(shù)字進(jìn)行水平切割,將發(fā)票代碼和號(hào)碼分別儲(chǔ)存起來。實(shí)驗(yàn)過程如下:首先對(duì)整幅發(fā)票圖片作預(yù)處理操作,對(duì)二值圖像作水平投影,選取水平投影圖中左側(cè)波峰中最大的位置,記錄其行位置x0;其次對(duì)二值圖像作垂直投影,選取垂直投影圖中右側(cè)波峰中最大的位置,記錄其列號(hào)位置y0;最后得到基準(zhǔn)點(diǎn)的坐標(biāo)(x0,y0)。由于發(fā)票上的號(hào)碼數(shù)字是規(guī)范化印刷體,其每個(gè)數(shù)字的寬度和高度大小都是固定值,故可以統(tǒng)計(jì)出12個(gè)數(shù)字的寬度和高度,統(tǒng)計(jì)所有發(fā)票圖片,最后寬度采用Width/5,高度采用Height/5。Width、Height分別是原始圖像的寬度和高度。
數(shù)字圖像分割是把每個(gè)圖數(shù)字串的數(shù)字分開,使它成為一幅單一的數(shù)字圖像。這里,如果數(shù)字分割的準(zhǔn)確率很高,那么對(duì)后續(xù)的單個(gè)數(shù)字提取特征將非常有利。數(shù)字分割算法有很多,實(shí)驗(yàn)使用投影法的數(shù)字分割法,其過程有以下幾點(diǎn):先豎直投影,找出每個(gè)數(shù)字的左右邊界,分割出單個(gè)數(shù)字;其次再對(duì)每一個(gè)數(shù)字進(jìn)行水平投影,找出其上下邊界,至此,每一個(gè)數(shù)字都被一個(gè)最小外接矩形包圍,也就是數(shù)字分割工作完成;最后,將每一個(gè)數(shù)字做歸一化,使其所有單個(gè)數(shù)字大小一致。這里進(jìn)行歸一化所采用的方法為雙線性插值法,將數(shù)字歸一化到40×80大小[6]。圖2為采用投影法分割數(shù)字的效果圖。
圖2 數(shù)字分割結(jié)果
在過去的數(shù)十年中,研究者們提出了各種各樣的識(shí)別方法,如神經(jīng)網(wǎng)絡(luò)法[7]、模板匹配法[8]、基于數(shù)字結(jié)構(gòu)特征的識(shí)別算法[9-10]、基于組合特征的識(shí)別算法[11]等。
4.1 基于穿越號(hào)碼次數(shù)的結(jié)構(gòu)識(shí)別算法
該算法[12]使用的特征是:航程(包括上、下、左、右航程)、穿越號(hào)碼體次數(shù)(水平和垂直)、第一次穿越號(hào)碼體空體航程、長(zhǎng)橫和長(zhǎng)豎。識(shí)別方法根據(jù)結(jié)構(gòu)特征采用逐級(jí)判斷的方法:
(1)字符寬度小于最大字符寬度1/3的為“1”;上航程面積大于右航程面積設(shè)定值的為“4”;下航程面積大于上航程面積設(shè)定值的為“7”。
(2)左、右、上、下航程面積幾乎多為零的可能是“0,6,8,9”,水平穿越上半部分一次的為“6”;水平穿越下半部分一次的為“9”;垂直穿越中部?jī)纱蔚臑椤?”;垂直穿越中部大于等于三次的為“8”。
(3)左航程面積大于右航程面積設(shè)定值的為“3”;左航程面積等于1/2下半部分左航程面積且右航程面積等于1/2上半部分右航程面積的為“5”;另一個(gè)為“2”。
4.2 基于結(jié)構(gòu)特征的號(hào)碼識(shí)別算法
該算法[13]使用的特征是:水平、垂直方向穿線數(shù)。把數(shù)字從上到下平均分成8部分,在每部分中分別以水平方向掃描線從左到右穿過數(shù)字,計(jì)算每條掃描線穿越黑像素區(qū)域互不相鄰的交點(diǎn)數(shù),統(tǒng)計(jì)每部分的最大交點(diǎn)數(shù)。在上i/8(i=1,2,3,4)部分的最多交點(diǎn)數(shù)定義為該數(shù)字上i/8高度處的過線數(shù);在下i/8(i=1,2,3,4)部分的最多交點(diǎn)數(shù)定義為該數(shù)字的下i/8高度處的過線數(shù)。同理可得該數(shù)字的左i/8(i=1,2,3,4)寬度處的過線數(shù)和右i/8(i=1,2,3,4)寬度處的過線數(shù)。從10個(gè)數(shù)字中尋找穩(wěn)定而有效的特征來構(gòu)造編碼器,如表1所示,根據(jù)編碼器識(shí)別印刷體數(shù)字。
表1 編碼器
注:上1/8代表上1/8穿線數(shù),以此類推。
4.3 基于數(shù)字結(jié)構(gòu)特征的數(shù)字識(shí)別算法
特征提取的關(guān)鍵是選取穩(wěn)定且有效的結(jié)構(gòu)特征,提取不同的特征,識(shí)別率不同。實(shí)驗(yàn)中提取的結(jié)構(gòu)特征有:上橫線、下橫線、水平交線個(gè)數(shù)以及垂直交線個(gè)數(shù)。
橫線,指水平掃描號(hào)碼體,如果存在某行連續(xù)為號(hào)碼體像素的數(shù)目超過號(hào)碼體寬度的三分之二,則定義為橫線。根據(jù)橫線所處的不同位置可分為:上橫線,即橫線位于數(shù)字的頂部;下橫線,即橫線位于數(shù)字的底部。
交線個(gè)數(shù),指水平或垂直掃描號(hào)碼體,以像素為單位不同位置的穿線個(gè)數(shù)可能不同,一個(gè)像素位置有一個(gè)穿線次數(shù)的結(jié)果,但一般為一次、二次或三次,選取指定位置出現(xiàn)最多的次數(shù),定義為交線個(gè)數(shù)[14]。
識(shí)別過程如下:首先,數(shù)字5和7在頂部有上橫線特征,通過上橫線特征分類出數(shù)字5和7;數(shù)字1和2在底部有下橫線特征,在剩余的所有數(shù)字中分類出數(shù)字1和2;對(duì)其余的6個(gè)數(shù)字0、3、4、6、8、9,通過水平交線個(gè)數(shù)和垂直交線個(gè)數(shù)兩種特征進(jìn)行分類。對(duì)于數(shù)字0和8,在水平1/3處和2/3處的交線個(gè)數(shù)都是2,但是數(shù)字0的垂直交線個(gè)數(shù)為2,數(shù)字8的垂直交線個(gè)數(shù)是3,通過垂直交線個(gè)數(shù)分類出數(shù)字0和8;對(duì)于數(shù)字4和9,在水平1/3處和2/3處的交線個(gè)數(shù)分別均是2和1,但數(shù)字4的垂直交線個(gè)數(shù)為2,數(shù)字9的垂直交線個(gè)數(shù)為3,通過垂直交線個(gè)數(shù)分類出數(shù)字4和9;對(duì)于數(shù)字3和6,數(shù)字3在水平1/3處和2/3處的交線個(gè)數(shù)分別是1和1,數(shù)字6在水平1/3處和2/3處的交線個(gè)數(shù)分別是1和2,2/3處水平交線個(gè)數(shù)為2的是數(shù)字6,否則是數(shù)字3。
數(shù)字識(shí)別流程圖如圖3所示。
圖3 數(shù)字識(shí)別流程圖
對(duì)于數(shù)字0,3,4,6,8,9應(yīng)采用兩種交線特征來進(jìn)行識(shí)別。表2為特征編碼表。其中,a為1/3處水平交線個(gè)數(shù);b為2/3處水平交線個(gè)數(shù);c為垂直交線個(gè)數(shù)。
表2 特征編碼表
5.1 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)使用的PC機(jī)基本信息如下:
操作系統(tǒng):Windows 7旗艦版;
處理器:AMD速龍X2 ql-64 2.10 GHz;
內(nèi)存:2 GB;
系統(tǒng)類型:32位操作系統(tǒng)。
通過測(cè)試20張12位數(shù)字的發(fā)票代碼圖片和20張8位數(shù)字的發(fā)票號(hào)碼圖片,總計(jì)400個(gè)數(shù)字,其中正確識(shí)別的數(shù)字有394個(gè),識(shí)別率達(dá)到98.5%。
5.2 實(shí)驗(yàn)分析
實(shí)驗(yàn)對(duì)比分析見表3。
表3 實(shí)驗(yàn)對(duì)比分析
由表3可以看出,實(shí)驗(yàn)所用的識(shí)別算法識(shí)別率高于另外兩種數(shù)字識(shí)別算法,并且運(yùn)行時(shí)間短,識(shí)別速度快,具有明顯的優(yōu)勢(shì)。由于提取的特征減少,計(jì)算量相應(yīng)減少,識(shí)別效率有所提高,識(shí)別率也較高。
實(shí)驗(yàn)對(duì)圖像的獲取、圖像的預(yù)處理、數(shù)字分割以及數(shù)字識(shí)別四個(gè)步驟進(jìn)行了研究和分析。在圖像的獲取階段,是用普通300 W像素?cái)z像頭拍攝,圖片中會(huì)存在不同程度的噪聲及傾斜。在預(yù)處理階段,應(yīng)用霍夫變換檢測(cè)水平直線,計(jì)算直線斜率,計(jì)算圖像的傾斜角度,再逆時(shí)針旋轉(zhuǎn)圖片,實(shí)現(xiàn)圖像的傾斜校正。使用中值濾波法對(duì)圖像進(jìn)行噪聲濾除,極大減弱了噪聲影響,圖片更加清晰,有利于后續(xù)操作。對(duì)感興趣數(shù)字區(qū)域進(jìn)行定位,定位出識(shí)別所需的數(shù)字,為后續(xù)數(shù)字的分割和識(shí)別做技術(shù)準(zhǔn)備?;谕队胺ǖ臄?shù)字分割結(jié)果非常理想,將數(shù)字串分割為單一的數(shù)字;基于數(shù)字結(jié)構(gòu)特征的識(shí)別算法識(shí)別速度快,識(shí)別率高。
實(shí)驗(yàn)中還存在一些問題:第一,通過拍攝或掃描的圖片清晰度各異,經(jīng)過圖像預(yù)處理后仍有不清晰現(xiàn)象;第二,由于特征提取算法本身的問題,提取的特征可能出現(xiàn)誤差。
[1] 林 強(qiáng).基于OCR的支票識(shí)別系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2010.
[2] 李 琥,卜佳俊,陳 純.一種新的基于特征線檢取的票據(jù)識(shí)別算法[J].浙江大學(xué)學(xué)報(bào):工學(xué)版,2003,37(2):173-177.
[3] 嚴(yán)國莉,黃 山,李岱璋,等.印刷體數(shù)字快速識(shí)別算法在身份證編號(hào)數(shù)字識(shí)別中的應(yīng)用[J].計(jì)算機(jī)工程,2003,29(1):178-179.
[4]ZhangZongjian,ChenGuanghua,LiJianwei.Theresearchondigitrecognitionalgorithmforautomaticmeterreadingsystem[C]//Proceedingsofthe8thworldcongressonintelligentcontrolandautomation.Jinan,China:[s.n.],2010:5399-5403.
[5]LiYueqin,LiJinping,HanLei,etal.Abanknotenumberautomaticidentificationmethod[C]//Procofinternationalconferenceonenvironmentscience.Melbourne:IEEE,2012:185-192.
[6] 徐 哲,樓文高.基于模版對(duì)比的手寫體數(shù)字識(shí)別神經(jīng)網(wǎng)絡(luò)模型[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(9):226-228.
[7] 戴 靜,胡釗政,白建川.一種基于交點(diǎn)特征的印刷體數(shù)字識(shí)別方法[J].電視技術(shù),2014,38(13):28-30.
[8] 高 菊,葉 樺.一種有效的水表數(shù)字圖像二次識(shí)別算法[J].東南大學(xué)學(xué)報(bào):自然科學(xué)版,2013,43(S):153-157.
[9] 滕書華,孫即祥,邵曉芳.一種魯棒性的印刷體數(shù)字識(shí)別算法[J].光學(xué)與光電技術(shù),2005,3(6):12-15.
[10] 倪桂博,梁曉尊.基于結(jié)構(gòu)形狀的印刷體數(shù)字識(shí)別方法[J].軟件導(dǎo)刊,2010,9(5):67-68.
[11] 張翼成,陳 欣,楊紅軍,等.基于組合特征的BP神經(jīng)網(wǎng)絡(luò)數(shù)字識(shí)別方法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(3):113-116.
[12] 李春宇.金融發(fā)票印刷體數(shù)字及面值識(shí)別方法的研究[D].沈陽:沈陽工業(yè)大學(xué),2006.
[13] 鄔建瓴.數(shù)字識(shí)別及其應(yīng)用[D].武漢:華中科技大學(xué),2006.
[14] 徐 敬,劉 煒.基于特征矩陣的高效數(shù)字識(shí)別算法[J].軟件導(dǎo)論,2014,13(1):59-61.
Research on Recognition Method on Invoice Printing Number
SHAO Hong,WANG Jia
(School of Information Science and Engineering,Shenyang University of Technology,Shenyang 110870,China)
In the process of invoice collection,some pictures may have the tilt problem due to inappropriate photograph method.In addition,non-uniform illumination may happen as a result of the photograph environment,which adds to the difficulty of location and identification of invoice numbers.In view of these problems,Hough transform has been applied firstly in the preprocessing section to detect and calculate the tilt angle of the picture,then rotating to correct invoices.Secondly,preprocessing has been arranged for the invoices to eliminate the effect of noise.Thirdly,a method of location based on projection is proposed by the research on the layout of common invoices,which can identify the number area accurately.Finally,the algorithm based on digital structure feature is adopted to identify.The experiment shows that this algorithm has high identification velocity and precision rate.
preprocessing;Hough transform;invoice number;digital positioning;digital recognition
2015-11-10
2016-03-09
時(shí)間:2016-06-22
遼寧省自然科學(xué)基金(201202162)
邵 虹(1974-),女,教授,CCF會(huì)員,研究方向?yàn)閳D像處理與模式識(shí)別;王 佳(1990-),男,碩士,研究方向?yàn)橛?jì)算機(jī)圖形學(xué)與虛擬現(xiàn)實(shí)。
http://www.cnki.net/kcms/detail/61.1450.TP.20160622.0845.056.html
TP301
A
1673-629X(2016)07-0173-04
10.3969/j.issn.1673-629X.2016.07.037