本發(fā)明圖像識別領(lǐng)域,特別涉及基于模板匹配的OCR識別方法。
背景技術(shù):
隨著社會的發(fā)展和科技的進步,人類創(chuàng)造的知識正以指數(shù)級的數(shù)量增加,在電子書籍出現(xiàn)之前,大部分的知識是以圖書的方式進行傳承,中華上下五千年,產(chǎn)生了大量優(yōu)秀書籍,這些書籍在歷史的長河中,或多或少都遭到了不同程度的損壞,因此對這些書籍進行數(shù)字化存儲迫在眉睫;在圖書管理領(lǐng)域,書籍內(nèi)容的快速搜索對于快速定位書籍很有幫助,而由于書籍?dāng)?shù)量太多,加上早期印刷的圖書沒有作者的電子文稿,因此紙質(zhì)書籍的電子化很有必要。
光學(xué)字符識別軟件就是處理這種紙質(zhì)圖書到電子文檔轉(zhuǎn)化的利器,其主要利用大量的字符樣本,經(jīng)過復(fù)雜網(wǎng)絡(luò)的學(xué)習(xí),生成相應(yīng)的模型文件,從而達到識別圖片中字符的目的。
光學(xué)字符識別軟件主要功能是識別拍攝、掃描圖片中的字符,現(xiàn)有技術(shù)中在進行圖像中文字的識別時,首先需要將圖像中的字符串切分開,形成包含單個文字的小圖片,然后使用一定的方法對切分后的文字進行識別。而進行文字切分最常用的方法為投影法,即是將圖像文字二值化處理后,通過垂直投影法找到兩個文字之間的分界線,根據(jù)分界線將文字切分開來。然而當(dāng)圖像中的文字之間具有粘連,且圖像中包含左右結(jié)構(gòu)的漢字時,簡單的投影方法就很難實現(xiàn)較好的切分效果;正是因為這個原因使得切分一直是OCR識別的難點,切分的質(zhì)量將直接影響到文字的識別效果。
此外光學(xué)字符識別軟件主要功能是識別拍攝、掃描圖片中的字符,對于一些特殊字體的掃描件,公章,拍照,比如早期印刷的書籍,政府單位制作的證件等,由于歷史原因以及保密與安全需要,其字體往往是特制的,現(xiàn)有的光學(xué)字符識別軟件主要集中于機器學(xué)習(xí)的方法,模型運算量大,而且由于訓(xùn)練字體樣本沒有覆蓋到特殊字體,導(dǎo)致特殊字體的識別準確率不高,嚴重影響紙質(zhì)文檔的電子化。
現(xiàn)有技術(shù)大多采用神經(jīng)網(wǎng)絡(luò)機器學(xué)習(xí)算法對字符進行識別,需要制作大量的樣本,耗費大量的時間進行訓(xùn)練,且生成的模型文件非常龐大,且對于不同字體的字符,識別率不盡相同,對于某些特殊字體字符,識別率比較低,很難滿足一些特殊場景下的字符識別。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中所存在的上述不足,提供基于模板匹配的OCR識別方法,根據(jù)待識別圖像文字選擇對應(yīng)字體生成對應(yīng)的特征圖片,并在特征模板的基礎(chǔ)上,
在對待識別圖像文字進行有效切分的基礎(chǔ)上,結(jié)合針對性的字符特征模板為實現(xiàn)特殊字體OCR識別準備條件。
為了實現(xiàn)上述發(fā)明目的,本發(fā)明提供了以下技術(shù)方案:基于模板匹配的OCR識別方法,包含以下實現(xiàn)步驟:
(1)將待識別圖像文字切分成僅包含單個字符的子圖片;將其中的數(shù)字、字母和標點符號,文字子圖分別標記出來;
(2)在每個數(shù)字、字母和標點對應(yīng)的子圖片中選擇一張子圖片,將子圖中的字符,分別向上、下、左、右、左上、左下、右上和右下移動設(shè)定距離l,制成對應(yīng)的特征圖片,并對制成的特征圖片進行對應(yīng)的標注;
根據(jù)待識別圖像選擇對應(yīng)字體,生成樣本圖片,對樣本圖片中的字符分別向上、下、左、右、左上、左下、右上和右下移動設(shè)定距離l,制成對應(yīng)的特征圖片,并對制成的特征圖片進行對應(yīng)的標注;
(3)將特征圖片和待識別圖片進行歸一化處理:
將特征圖片和待識別子圖片的圖片尺寸調(diào)整成相同大小,并對各圖片中的各個像素灰度值根據(jù)設(shè)置的閾值分別轉(zhuǎn)化成0或者1(將圖片中0-255的灰度值,根據(jù)設(shè)置的閾值,轉(zhuǎn)化為0或1)將轉(zhuǎn)化后的像素值按位置存儲于內(nèi)存中;
(4)將待識別子圖片與對應(yīng)類型的特征圖片進行對比,同一像素位置的值執(zhí)行異或處理,統(tǒng)計1出現(xiàn)的次數(shù),記為誤差頻次,將誤差頻次最小的特征圖片對應(yīng)的標注作為識別結(jié)果進行輸出。
具體的,所述步驟(4)中,將待識別的數(shù)字、字母和標點子圖片與數(shù)字、字母和標點特征圖片進行對比,同一像素位置的值執(zhí)行異或處理,統(tǒng)計1出現(xiàn)的次數(shù),記為誤差頻次,將誤差頻次最小的特征圖片對應(yīng)的標注作為識別結(jié)果進行輸出;
對待識別文字字符子圖片與對應(yīng)的文字特征圖片進行對比,同一像素位置的值執(zhí)行異或處理,統(tǒng)計1出現(xiàn)的次數(shù),記為誤差頻次,將誤差頻次最小的特征圖片對應(yīng)的標注作為識別結(jié)果進行輸出。
進一步的,n*h<l<N*h。
進一步的,n≤1/4。
進一步的,文字字符圖片的切分包含以下實現(xiàn)過程:
使用投影法找出文字字符圖片的初始切分位置,根據(jù)初始切分位置將待識別圖像片切分成初始子圖片序列;
對序列中的初始子圖片使用如下規(guī)則進行處理:
A、使用投影法待識別圖像文字進行切分,切分成子圖片序列;將其中的數(shù)字、字母和標點符號標記出來;
B、對未標記的子圖片進行判斷:是否滿足L≤M*h,L為子圖片字符投影的寬度,M為系數(shù),h為行高;
對于不滿足條件的子圖片進行切分,切分位置根據(jù)以下公式進行確定:
f(x)=g(x)t(x)
重復(fù)執(zhí)行步驟B,直到序列中未標記的子圖片均滿足條件:L≤M*h;
C、對于序列中數(shù)字、字母和標點字圖片以外的相鄰兩子圖片的總寬度進行判斷:是否滿足L合≤M*h;
如果滿足,依序?qū)M足條件的相鄰子圖片進行合并;
重復(fù)執(zhí)行步驟C直到除數(shù)字、字母和標點以外的相鄰子圖片總寬度均不滿足L合≤M*h;
D、對序列中未標記的子圖片進行判斷:如果序列中存在三個相鄰的子圖片,且三個子圖片滿足:第一子圖片和第三子圖片的寬度L≤0.5h,且中間子圖片的寬度L≥h,則將中間子圖片根據(jù)公式:
f(x)=g(x)t(x)
所確定的切分點進行切分;根據(jù)確定的切分點,將中間子圖片切分成第一中間子圖片和第二中間子圖片;
將第一子圖片和第一中間子圖片合并;
將第二中間子圖片和第三子圖片合并。
進一步的,0.9≤M≤1.3。
作為一種優(yōu)選:M=1.2。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果:本發(fā)明提供基于模板匹配的OCR識別方法,根據(jù)需要識別的圖像文字僅需構(gòu)造少量的特征模板,無反復(fù)訓(xùn)練模型;就可以實現(xiàn)各種特殊字體文字圖像的較好的識別效果,對于識別任務(wù)的圖像文字的針對性更強;本發(fā)明方法在字體選擇的基礎(chǔ)上,構(gòu)造原始特征圖片,在原始特征圖片的基礎(chǔ)上,將圖片中的字符分別向不同方向移動設(shè)定的距離,制成對應(yīng)的特征模板;這樣制成的特征模板能夠更好的適應(yīng)字符圖片切分不完美的情況,因而具有更好的容錯性。在特征圖片的基礎(chǔ)上,用異或算法來識別待識別子圖片與特征模板的相似程度,計算過程簡單方法,識別效率和可靠性較高。
此外,本發(fā)明采用了一套獨特的切分方法:使用相應(yīng)的規(guī)則條件,逐級的來判斷切分后的子圖片的切分質(zhì)量,并對切分后的子圖片進行相應(yīng)的處理,層層篩選和處理的方式,保證子圖片的切分質(zhì)量;為最終的識別率,進一步準備了條件。此外相比于傳統(tǒng)的切分方法,本發(fā)明方法在幅值的基礎(chǔ)上引入了修正值,將切分位置與字符邊緣的距離作為了確定切分點的考慮因素,因此具有更高的準確性,而且當(dāng)遇到特殊結(jié)構(gòu)字符時出現(xiàn)多個較小值,或者極值點時,通過本公式可以快速的找出最優(yōu)化的切分點,增加了切分的準確性,提高了切分的效率;對粘連字符的切分效果更好。
附圖說明:
圖1為本基于模板匹配的OCR識別方法的實現(xiàn)步驟圖。
圖2為數(shù)字模板的制作示意圖。
圖3為文字模板的制作示意圖。
圖4粘連文字圖像樣例圖。
圖5為圖4中字符的幅值分布示意圖。
圖6為修正值g(x)的分布示意圖。
具體實施方式
下面結(jié)合試驗例及具體實施方式對本發(fā)明作進一步的詳細描述。但不應(yīng)將此理解為本發(fā)明上述主題的范圍僅限于以下的實施例,凡基于本發(fā)明內(nèi)容所實現(xiàn)的技術(shù)均屬于本發(fā)明的范圍。
本發(fā)明方法提供基于模板匹配的OCR識別方法,包含如圖1所示的以下實現(xiàn)步驟:
(1)將待識別圖像文字切分成僅包含單個字符的子圖片;將其中的數(shù)字、字母和標點符號,文字子圖分別標記出來(本步驟的標記,僅標記子圖片的類型,不進行具體的識別)。實現(xiàn)時,對待識別圖像文字使用投影法進行切分,切分成子圖片序列,將其中的數(shù)字、字母和標點符號標記出來;比如說投影的寬度較窄(比如設(shè)置為<0.4h),投影的面積較小(0.5h*0.8h),切割后形成的相鄰子圖片之間的距離明顯大于普通字符圖片的距離等,利用上述特征,可以首先將屬于數(shù)字、字母和標點的子圖片切分出來。在數(shù)字、字母和標點符號子圖片已并被標記的基礎(chǔ)上,對未標記的子圖片(文字字符圖片)進行切分,切分成僅包含單個字符的子圖片。分步驟進行的子圖片切分能夠達到更好的切分效果。
(2)在每個數(shù)字、字母和標點對應(yīng)的子圖片中選擇一張子圖片,將子圖中的字符,分別向上、下、左、右、左上、左下、右上和右下移動設(shè)定距離l,制成對應(yīng)的特征圖片,如圖2所示,并對制成的特征圖片進行對應(yīng)的標注(本次標注是指,將特征圖片對應(yīng)的字符內(nèi)容標記出來,比如說圖2中的9張?zhí)卣鲌D片均標注為“8”);
根據(jù)待識別圖像選擇對應(yīng)字體,生成樣本圖片,對樣本圖片中的字符分別向上、下、左、右、左上、左下、右上和右下移動設(shè)定距離l,制成對應(yīng)的特征圖片,并對制成的特征圖片進行對應(yīng)的標注(本次標注是指,將特征圖片對應(yīng)的字符內(nèi)容標記出來,比如說圖3中的9張?zhí)卣鲌D片均標注為:“字”);將模板中的字符分別移動設(shè)定的距離,超過子圖片框范圍的字符部分將被切除,向上述方向移動設(shè)局距離后形成的圖片和原圖片一起構(gòu)成了同一字符的9張不同切分情形的參考樣本圖片如圖3所示,這與實際操作中字符圖片切分可能不規(guī)則,不完美的情況相對應(yīng),因此基于本方法形成的特征模板來實現(xiàn)的字符識別,具有更好的容錯性。
(3)將特征圖片和待識別圖片進行歸一化處理:
將特征圖片和待識別子圖片的圖片尺寸調(diào)整成相同大小,并對各圖片中的各個像素灰度值根據(jù)設(shè)置的閾值分別轉(zhuǎn)化成0或者1(將圖片中0-255的灰度值,根據(jù)設(shè)置的閾值,轉(zhuǎn)化為0或1)將轉(zhuǎn)化后的像素值按位置存儲于內(nèi)存中;
(4)將待識別子圖片與對應(yīng)類型的特征圖片進行對比,同一像素位置的值執(zhí)行異或處理(如果特征圖片和待識別圖片對應(yīng)像素點的值相同,異或計算后的值為0;如果特征圖片和待識別圖片對應(yīng)像素點的值不同,異或計算后的值為1),統(tǒng)計1出現(xiàn)的次數(shù),記為誤差頻次,將誤差頻次最小的特征圖片對應(yīng)的標注作為識別結(jié)果進行輸出。
具體的,所述步驟(4)中,將待識別的數(shù)字、字母和標點子圖片與數(shù)字、字母和標點特征圖片進行對比,同一像素位置的值執(zhí)行異或處理,統(tǒng)計1出現(xiàn)的次數(shù),記為誤差頻次,將誤差頻次最小的特征圖片對應(yīng)的標注作為識別結(jié)果進行輸出;
對待識別文字字符子圖片與對應(yīng)的文字特征圖片進行對比,同一像素位置的值執(zhí)行異或處理,統(tǒng)計1出現(xiàn)的次數(shù),記為誤差頻次,將誤差頻次最小的特征圖片對應(yīng)的標注作為識別結(jié)果進行輸出。
本發(fā)明方法使用異或算法來識別待識別子圖片與特征模板的相似程度,計算過程簡單方法,識別效率和可靠性較高。
進一步的,文字字符圖片的切分包含以下實現(xiàn)過程:
使用投影法找出文字字符圖片的初始切分位置,根據(jù)初始切分位置將待識別圖像片切分成初始子圖片序列;
對序列中的初始子圖片使用如下規(guī)則進行處理:
A、使用投影法待識別圖像文字進行切分,切分成子圖片序列;將其中的數(shù)字、字母和標點符號標記出來;
B、對未標記的子圖片進行判斷:是否滿足L≤M*h,L為子圖片字符投影的寬度,M為系數(shù),h為行高;
對于不滿足條件的子圖片進行切分,切分位置根據(jù)以下公式進行確定:
f(x)=g(x)t(x)
重復(fù)執(zhí)行步驟B,直到序列中未標記的子圖片均滿足條件:L≤M*h。
式中f(x)為幅值,x為列投影點在行方向上的坐標,h為當(dāng)前字符的行高,g(x)為修正值,t(x)為行投影值,兩者共同決定投影點的幅值,當(dāng)幅值最小時,即為兩個字符之間的切割點;經(jīng)過g(x)的修正所找到最小幅值點作為切分點,相比于簡單的最小行投影值,本方法中所尋找的切分點,引入了切分點位置與字符邊緣距離的考量因素,因此具有更高的準確性,而且當(dāng)遇到特殊結(jié)構(gòu)字符時出現(xiàn)多個較小值,或者極值點時,通過本公式可以快速的找出最優(yōu)化的切分點,增加了切分的準確性,提高了切分的效率。
C、對于序列中數(shù)字、字母和標點字圖片以外的相鄰兩子圖片的總寬度進行判斷:是否滿足L合≤M*h;
如果滿足,依序?qū)M足條件的相鄰子圖片進行合并;
重復(fù)執(zhí)行步驟C直到除數(shù)字、字母和標點以外的相鄰子圖片總寬度均不滿足L合≤M*h;
D、對序列中未標記的子圖片進行判斷:如果序列中存在三個相鄰的子圖片,且三個子圖片滿足:第一子圖片和第三子圖片的寬度L≤0.5h,且中間子圖片的寬度L≥h,則將中間子圖片根據(jù)公式:
f(x)=g(x)t(x)
所確定的切分點進行切分;根據(jù)確定的切分點,將中間子圖片切分成第一中間子圖片和第二中間子圖片;
將第一子圖片和第一中間子圖片合并;
將第二中間子圖片和第三子圖片合并。
在某些情況下:連續(xù)的兩個左右結(jié)構(gòu)的字符圖片,中間具有粘連,那么在利用投影法進行切分時,可能將前后字符中間的部首切開,但是對于兩個字符之間粘連的部首識別不了,而當(dāng)成一個字符切分出來的情況;本發(fā)明方法對于這種情況有較好的處理效果,對于粘連的中間部分通過上述公式尋找到最佳的切分點,并將切分后的前后字符的部首進行重新的整合,達到了較好的切分效果。
上述規(guī)則依序循環(huán)使用,經(jīng)過不斷的迭代,最終形成了僅包含單個字符的子圖片,良好的切分效果為圖像文字識別準備了條件。
進一步的,0.9≤M≤1.3。子圖片寬度閾值的設(shè)置在本范圍內(nèi),均能實現(xiàn)較好的切分和識別效果。
作為一種優(yōu)選:M=1.2。經(jīng)過實驗反復(fù)驗證,將M設(shè)置為1.2時,能夠?qū)崿F(xiàn)較好的切分效果。
實施例1
比如對圖像中的文字進行識別時,經(jīng)過觀察,認為該圖像中的文字與微軟雅黑的字體較為接近,將圖像文字進行二值化處理后,經(jīng)過行投影,將圖像中的文字行切分出來,對每一行文字圖像進行列投影,找出初始切分點,根據(jù)初始切分對文字圖片進行初步的切分,形成子圖片,使用以下規(guī)則將其中的數(shù)字、字母和標點字符抽取出來,規(guī)則可以選擇為:子圖片的寬度L<0.4h行高,將數(shù)字、字母和標點的子圖片判斷并標記(本處的標記僅標記子圖片的類型,不做具體識別)出來之后,對于同一個數(shù)字、字母和標點只選取其中的一張子圖片進行模板的制備(圖片的選擇可以人工進行挑選,數(shù)字:0、1、2、3、4、5、6、7、8、9共計:10個,字母大小寫共26*2=52個,標點根據(jù)識別情況而定;數(shù)字、字母和標點的數(shù)量相比于龐大的漢字來說很少,少量的人工挑選不會影響識別的效率)。在選擇的數(shù)字子圖片的圖片框范圍內(nèi),將其中的字符向各個方向(比如:向上、下、左、右、左上、左下、右上和右下移)移動設(shè)定的像素,制成對應(yīng)的模板。
在此基礎(chǔ)上,對數(shù)字、字母和標點以外的文字字符子圖片進行判斷和處理,判斷過程如下:將滿足條件:B、對于L>1.2h的子圖片,使用以下公式來進行切分點的判斷:
f(x)=g(x)t(x)
如圖4所示的子圖片,經(jīng)過投影后像素的幅值分布為圖5所示,可以發(fā)現(xiàn)當(dāng)x點與行高h相距為0時,其修正值g(x)最小,為0.5,當(dāng)x與h相距越大,修正越大,由于本文假設(shè)字符的寬度與行高相當(dāng),因此可以理解為字符投影點越靠近該字符所處的寬度處時,其修正值越小,這樣可以避免幅值出現(xiàn)多個極值點。本子圖片中字符的幅值在x=19和20處出現(xiàn)極小值,該子圖片字符的行高為19,經(jīng)g(x)的修正,g(x)的值的分布如圖6所示,可以得出f(19)=0.5000,f(20)=0.5025;x=19時f(x)的值最小,x=19確定為切分點,并根據(jù)該切分點,將子圖片字符切分出來。
在上述處理的基礎(chǔ)上,對于切分滿足規(guī)則C的子圖片,進行合并。
在上述處理的基礎(chǔ)上,對于滿足規(guī)則D的子圖片,根據(jù)規(guī)則D進行處理。
上述A、B、C、D依序使用,沒有子圖片能被切分或者合并時,停止切分。
本實施例中采用微軟雅黑字體,來生成對應(yīng)的特征模板,利用3501個常用字符生成漢字圖片樣本(每個樣本按照向上、下、左、右、左上、左下、右上和右下移動1-2個像素,如圖所示),制成對應(yīng)的特征圖片;并進行對應(yīng)的標注。
在此基礎(chǔ)上,根據(jù)子圖片序列順序,依次將切分好的待識別子圖片與對應(yīng)類型的特征圖片進行比對,使用異或算法來計算待識別子圖片與相應(yīng)類型中各特征圖片的誤差頻次,將誤差頻次最小的特征圖片對應(yīng)的標注作為待識別子圖片識別結(jié)果。