OCR文字識別技術(shù)

一 OCR文字識別簡介

1.1 什么是OCR

OCR (Optical Character Recognition,光學字符識別)是指電子設(shè)備(例如掃描儀或數(shù)碼相機)檢查紙上打印的字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程;即,針對印刷體字符,采用光學的方式將紙質(zhì)文檔中的文字轉(zhuǎn)換成為黑白點陣的圖像文件,并通過識別軟件將圖像中的文字轉(zhuǎn)換成文本格式,供文字處理軟件進一步編輯加工的技術(shù)。如何除錯或利用輔助信息提高識別正確率,是OCR最重要的課題,ICR(Intelligent Character Recognition)的名詞也因此而產(chǎn)生。衡量一個OCR系統(tǒng)性能好壞的主要指標有:拒識率、誤識率、識別速度、用戶界面的友好性,產(chǎn)品的穩(wěn)定性,易用性及可行性等。-摘自百度百科。

1.2 OCR技術(shù)的發(fā)展現(xiàn)狀

在一些簡單環(huán)境下OCR的準確度已經(jīng)比較高了(比如電子文檔),但是在一些復(fù)雜環(huán)境下的字符識別,在當今還沒有人敢說自己能做的很好。現(xiàn)在大家都很少會把目光還放在如何對電子文檔的文字識別該怎么進一步提高準確率了,因為他們把目光放在更有挑戰(zhàn)性的領(lǐng)域。OCR傳統(tǒng)方法在應(yīng)對復(fù)雜圖文場景的文字識別顯得力不從心,越來越多人把精力都放在研究如何把文字在復(fù)雜場景讀出來,并且讀得準確作為研究課題,用學界術(shù)語來說,就是場景文本識別(文字檢測+文字識別)。


文本識別場景

1.3 OCR文字識別技術(shù)的應(yīng)用領(lǐng)域和價值

  • 證件識別、車牌識別
  • 智慧醫(yī)療
  • pdf文檔轉(zhuǎn)換為Word
  • 拍照識別、截圖識別、網(wǎng)絡(luò)圖片識別
  • 無人駕駛
  • 無紙化辦公、稿件編輯校對
  • 物流分揀
  • 輿情監(jiān)控
  • 文檔檢索
  • 字幕識別
  • 文獻資料檢索等

1.4 OCR文字識別分類

OCR文字識別主要可以分為:印刷體文字識別手寫體文字識別

1.5 文字識別的一般流程

目前,OCR文字識別技術(shù)的手段多種多樣,各個識別過程也是不盡相同,這里簡要介紹文字識別方法的一般流程。

  • 識別出文字區(qū)域(通過滑動窗口算法,遍歷整個圖片,有監(jiān)督的標記訓練樣本特征進行判斷,找到目標圖片進行矩形化摘取出來)
  • 對文字區(qū)域矩形分割,拆分成不同的字符(在矩形中做一維滑動窗口移動,判斷字符間間距,對字符進行劃分)
  • 字符分類(對劃分好的字符根據(jù)監(jiān)督算法,對字符進行預(yù)測)
  • 識別出文字(最終識別出整個字符)
  • 后處理識別矯正,對識別出的文字進行后續(xù)處理和校正。比如,考慮單詞Because,我們設(shè)計的識別模型把它識別為8ecause,那么我們就可以用語法檢測器去糾正這種拼寫錯誤,并用B代替8并完成識別矯正。這樣子,整個OCR流程就走完了。
    下面就具體談?wù)?strong>印刷體文字識別和手寫體文字識別的方法。

二 印刷體文字識別

OCR技術(shù)的興起便是從印刷體識別開始的,印刷體識別的成功為后來手寫體的發(fā)展奠定了堅實的基礎(chǔ)。印刷體識別的主要流程大致分為以下幾個部分:圖像預(yù)處理;版面處理;圖像切分;特征提取及模型訓練;識別后處理。

2.1 圖像預(yù)處理

由于紙張的厚薄、光潔度和印刷質(zhì)量都會造成文字畸變,產(chǎn)生斷筆、粘連和污點等干擾,所以在進行文字識別之前,要對帶有噪聲的文字圖像進行處理。預(yù)處理一般包括灰度化二值化,傾斜檢測與校正行、字切分,圖像平滑,規(guī)范化等等。

2.1.1 灰度化

通過外設(shè)采集的圖像通常為彩色圖像,彩色圖像會夾雜一些干擾信息,灰度化處理的主要目的就是濾除這些信息,灰度化的實質(zhì)其實就是將原本由三維描述的像素點,映射為一維描述的像素點。轉(zhuǎn)換的方式、工具和規(guī)則有很多,在這里不詳細介紹。

2.1.2 二值化

經(jīng)過灰度處理的彩色圖像還需經(jīng)過二值化處理將文字與背景進一步分離開,所謂二值化,就是將灰度值(或者彩色值)圖像信號轉(zhuǎn)化成只有黑(l)和白(0)的二值圖像信號。二值化效果的好壞,會直接影響灰度文本圖像的識別率。二值化方法大致可以分為局部閾值二值化和整體閾值二值化。

2.1.3 傾斜檢測與校正

印刷體文本資料大多是由平行于頁面邊緣的水平(或者垂直)的文本行(或者列)組成的,即傾斜角度為零度。然而在文本頁面掃描過程中,不論是手工掃描還是機器掃描,都不可避免地會出現(xiàn)圖像傾斜現(xiàn)象。而傾斜的文檔圖像對后期的字符分割、識別和圖像壓縮等工作將產(chǎn)生很大影響。為了保證后續(xù)處理的正確性,對文本圖像進行傾斜檢測和校正是十分必要的。
文本圖像的傾斜校正分為手動校正自動校正兩種。
手動校正,是指識別系統(tǒng)提供某種人機交互手段,實現(xiàn)文本圖像的傾斜校正。
自動校正,是指由計算機自動分析文本圖像的版面特征,估計圖像的傾斜角度,并根據(jù)傾斜角度對文本圖像進行校正

目前,文本圖像的傾斜檢測方法有許多種,主要可以劃分為以下五類:基于投影圖的方法,基于Houhg變換的方法,基于交叉相關(guān)性的方法基于Fourier變換的方法基于最近鄰聚類方法。

  • 最簡單的基于投影圖的方法是將文本圖像沿不同方向進行投影。當投影方向和文字行方向一致時,文字行在投影圖上的峰值最大,并且投影圖存在明顯的峰谷,此時的投影方向就是傾斜角度。
  • 基于Houhg變換的方法也是一種最常用的傾斜檢測方法,它是利用Hough變換的特性,將圖像中的前景像素映射到極坐標空間,通過統(tǒng)計極坐標空間各點的累加值得到文檔圖像的傾斜角度。
  • 基于Fourier變換的方法是利用頁面傾角對應(yīng)于使Fourier空間密度最大的方向角的特性,將文檔圖像的所有像素點進行Fourier變換。這種方法的計算量非常大,目前很少采用。
  • 基于最近鄰聚類方法,取文本圖像的某個子區(qū)域中字符連通域的中心點作為特征點,利用基線上的點的連續(xù)性,計算出對應(yīng)的文本行的方向角,從而得到整個頁面的傾斜角。

2.1.4 圖像平滑

文本圖像經(jīng)過平滑處理之后,能夠去掉筆劃上的孤立白點和筆劃外部的孤立黑點,以及筆劃邊緣的凹凸點,使得筆劃邊緣變得平滑。一種簡單的平滑處理方法如下。采用NxN窗口(N一般為3,如圖2-1所示是一個3X3窗口),依次在二值文字點陣中進行掃描,根據(jù)窗口中黑白像素的分布情況,使處于窗口中心的被平滑像素X。,從“0”變成“1”或者從“l(fā)”變成“0”。

該方法是按以下規(guī)則對文字輪廓邊緣進行平滑的。

規(guī)則1如果滿足圖2-2中(a),(b),(c),(d)四種情況中的任何一種,則中心點應(yīng)該由“0”變成“l(fā)”。

規(guī)則2如果滿足圖2-2中(e),(f),(g),(h)四種情況中的任何一種,則中心點應(yīng)該由“1”變成“0”。


圖像平滑

2.1.5 規(guī)范化

規(guī)范化操作就是將輸入的任意尺寸的文字都處理成統(tǒng)一尺寸的標準文字,以便與己經(jīng)預(yù)先存儲在字典中的參考模板相匹配。規(guī)范化操作包括1211:位置規(guī)范化、大小規(guī)范化以及筆劃粗細規(guī)范化。在這里只討論位置規(guī)范化大小規(guī)范化。

為了消除文字點陣位置上的偏差,需要把整個文字點陣圖移動到規(guī)定的位置上,這個過程被稱為位置規(guī)范化。常用的位置規(guī)范化操作有兩種,一種是基于質(zhì)心的位置規(guī)范化,另一種是基于文字外邊框的位置規(guī)范化?;谖淖滞膺吙虻奈恢靡?guī)范化需要首先計算文字的外邊框,并找出中心,然后把文字中心移動到指定的位置上來?;谫|(zhì)心的位置規(guī)范化方法抗干擾能力比基于文字外邊框的位置規(guī)范化方法要強。
使用基于文字外邊框的位置規(guī)范化方法對文字進行位置規(guī)范化的操作結(jié)果,如下圖所示。

基于文字外邊框的位置規(guī)范化

對不同大小的文字做變換,使之成為同一尺寸大小,這個過程被稱為大小規(guī)范化。很多已有的多字號印刷體識別系統(tǒng)都是通過大小規(guī)范化來識別不同字號的文字。常用的大小規(guī)范化操作也有兩種,一種是將文字的外邊框按比例線性放大或縮小成規(guī)定尺寸的文字,另一種是根據(jù)水平和垂直兩個方向上文字黑像素的分布情況進行大小規(guī)范化。
使用根據(jù)水平和垂直兩個方向上文字黑像素的分布情況方法對文字進行大小規(guī)范化操作的效果,如下圖所示。

根據(jù)水平和垂直兩個方向上文字黑像素的分布情況進行大小規(guī)范化

2.2 版面處理

版面處理通常可以分為三個主要部分,版面分析、版面理解、版面重構(gòu)。

2.2.1版面分析

將文本圖像分割為不同部分,并標定各部分屬性,如:文本、圖像、表格。目前在版面分析方面的工作核心思想都是基于連通域分析法,后衍生出的基于神經(jīng)網(wǎng)絡(luò)的版面分析法等也都是以連通域為基礎(chǔ)進行的。連通域是指將圖像經(jīng)過二值化后轉(zhuǎn)為的二值矩陣中任選一個像素點,若包圍其的所有像素點中存在相同像素值的像素點則視為兩點連通,以此類推,這樣的像素點構(gòu)成的一個集合在圖像中所在的區(qū)域即一個連通域。根據(jù)連通域大小或像素點分布等特征可以將連通域的屬性標記出來,用作進一步處理的依據(jù)。

2.2.2版面理解

獲取文章邏輯結(jié)構(gòu),包括各區(qū)域的邏輯屬性、文章的層次關(guān)系和閱讀順序。根據(jù)版面分析時記載的連通域位置信息,確定連通域歸屬序列。

2.2.3版面重構(gòu)

根據(jù)版面分析和OCR的結(jié)果,重構(gòu)出包含文字信息和版面信息的電子文檔。

2.3 圖像切分

圖像切分大致可以分為兩個個主要類別,行(列)切分和字切分。經(jīng)過切分處理后,才能方便對單個文字進行識別處理。如下圖所示。


圖像切分

2.3.1 行列切分

由于印刷體文字圖像行列間距.、字間距大致相等,且?guī)缀醪淮嬖谡尺B現(xiàn)象,所以可以采用投影法對圖像進行切分,得到每列(行)在坐標軸的像素值投影曲線是一個不平滑的曲線,通過高斯平滑后的曲線在每個波谷位置間的區(qū)域即為要的一行(列)。

2.3.2 字切分

字切分對于不同的文種存在著比較明顯的差異,通常意義下,字切分是指將整行或整列文字切分成獨立的一個個文字,而實際上根據(jù)文種差異,可能還需需要將單個文字進行進一步切分。而因為文種不同,構(gòu)詞法或鉤字法也有所不同,所以切分方法的難度差別也是天壤之別。例如將漢字“屋”切分開的難度和將英文“house”切分開的難度差別就很大,因此在識別模式上,也會根據(jù)文種特性,設(shè)計不同的識別方法。

2.4 特征提取及模型訓練

在深度學習廣泛應(yīng)用于圖像識別領(lǐng)域之前,模板匹配是較為常見的一種識別方式,之后由于神經(jīng)網(wǎng)絡(luò)的復(fù)蘇,基于反饋的神經(jīng)網(wǎng)絡(luò)給OCR領(lǐng)域帶來了又一春?,F(xiàn)在隨著計算機硬件算力的提升,利用大批數(shù)據(jù)訓練深度神經(jīng)網(wǎng)絡(luò)在圖像識別方面取得了傲人的成績。

2.4.1 特征提取及匹配

特征提取是從單個字符圖像上提取統(tǒng)計特征或結(jié)構(gòu)特征的過程。所提取的特征的穩(wěn)定性及有效性,決定了識別的性能。對于統(tǒng)計特征的提取,可利用統(tǒng)計模式識別中的特征提取方法,而對結(jié)構(gòu)特征的提取,應(yīng)根據(jù)具體文字所確定的識別基元確定相應(yīng)的特征提取方法。在相當長的文字識別的研究過程中,是利用人們的經(jīng)驗知識,指導文字特征的提取。例如邊緣特征、變換特征、穿透特征、網(wǎng)格特征、特征點特征、方向線素特征等等。

特征匹配是從已有的特征庫中找到與待識別文字相似度最高的文字的過程。當待識別文字提取完特征之后,不管使用的是統(tǒng)計特征,還是結(jié)構(gòu)特征,都需要有一個特征庫來進行比對,特征庫中應(yīng)包含欲識別字符集中所有文字的特征。特征匹配的方法有很多,比較常用的有:歐式空間的比對法、松弛比對法、動態(tài)程序比對法以及HMM(HiddneMarkovModel)法等等。在神經(jīng)網(wǎng)絡(luò)出現(xiàn)之前以及之后很長一段時間,在漢字OCR領(lǐng)域,一直采用的就是這種模板匹配的方法。

2.4.2 模型訓練

人工神經(jīng)網(wǎng)絡(luò)經(jīng)過一段時間的發(fā)展在OCR中主要充當了分類器的作用,網(wǎng)絡(luò)的輸入為文字特征向量,輸出是類編碼,在識別類型較少且結(jié)構(gòu)區(qū)分較為明顯的文字識別中,特征向量通常為字符圖像像素點的矩陣,這樣特征提取相當于是一個黑盒的操作,對于原理的解釋有很多,這里不做詳細介紹。深度學習已經(jīng)成功應(yīng)用于OCR領(lǐng)域,深度學習的發(fā)展替代了繁重的特征工程,從大量標記預(yù)料中自動學習出圖像的特征,其中CNN(卷積神經(jīng)網(wǎng)絡(luò))尤為搶眼,除了省去人工特征提取的流程外,共享權(quán)值的方式也減少了權(quán)值數(shù)量,大幅減少了計算開銷,它的兩大優(yōu)勢使得CNN在OCR領(lǐng)域表現(xiàn)十分卓越。

2.4.3 識別方式

隨著用戶數(shù)量及需求的增加,識別效率也成為OCR工程化的一項重要指標。傳統(tǒng)方法,會對服務(wù)器性能要求較高,這樣使得投入成本較高且不易擴展;在Hadoop出現(xiàn)之后,該問題得到了較好的改善,通過MapReduce編程框架,使得企業(yè)需要為之投入的硬件成本大幅減少,對OCR的發(fā)展提供了有力的推動作用。

2.5 識別后處理

識別后處理主要應(yīng)用于兩個方面分別是版面恢復(fù)識別校正。版面恢復(fù)在版面處理章節(jié)已經(jīng)講過,這里不再贅述。識別校正,主要方式是在識別結(jié)果基礎(chǔ)上根據(jù)語種的語言模型進行,當然在單語種識別中相對容易一些,而在多語種則較為復(fù)雜。

三 手寫體文字識別

手寫體識別較印刷體識別難度較高,而在手寫體識別中脫機手寫體識別難度又比聯(lián)機手寫體識別高。這也是脫機手寫體識別還未成功應(yīng)用的主要原因。

聯(lián)機手寫體文字識別(on-line handwritten character recognition)又被稱為實時(或者在線)手寫體識別,即:人在書寫文字的同時,機器根據(jù)所書寫文字的筆劃、筆順等特征進行識別。聯(lián)機手寫體文字識別是依靠電磁式或壓電式等手寫輸入板來完成的,當用戶使用光筆在輸入板上寫字的時候,光筆在板上的運動軌跡(板上的坐標)會被轉(zhuǎn)化為一系列的電信號,這些電信號能夠串行地輸入到計算機中,從這些電信號我們可以比較容易地抽取筆劃和筆順的信息,從而進行文字識別。從上世紀90年代以來,聯(lián)機手寫體文字識別正逐步走向?qū)嵱?。中國的科研工作者推出了多個聯(lián)機手寫體漢字識別系統(tǒng),國外的一些大公司也開始進入這一市場。這一技術(shù)也迎合了PDA(Personal Digital Assistant)的發(fā)展潮流。

脫機手寫體文字識別(off-line handwritten character recognition)又被稱為離線手寫體文字識別:由書寫者預(yù)先將文字寫在紙上,然后通過掃描儀轉(zhuǎn)換成文字圖像,再由計算機識別成相應(yīng)文字。由于每個人書寫習慣的不同,所以脫機手寫體文字的類型是多種多樣的,而且既便同一個人在不同情況下寫出來的文字也會有變化,這些都給脫機手寫體文字識別帶來了巨大的困難。對于脫機手寫體文字識別而言,如果對文字的書寫不加以任何限制(即自由手寫體文字),則識別難度相當大。

對于脫機手寫體文字識別處理流程和技術(shù)手段大致和印刷體識別相似,但是由于手寫體隨意性較大,因此對文字圖像的行列切分、字切分帶來了較大的困難,根據(jù)文種不同,切分的方法也有所不同,例如:在手寫體蒙古文字中內(nèi)蒙古大學的研究學者采用了一種基于字符外接多邊形的尋找切分點的字切分算法,取得了不錯的切分效果。

對于聯(lián)機手寫體識別的處理流程,主要是利用筆劃順序作為序列模型,加上字符結(jié)構(gòu)特征、筆順方向特征、筆畫數(shù)量特征作為空間模型的組合式模型,完成識別任務(wù)。

參考文獻
機器學習(第十一周)--圖片OCR算法
文字識別總結(jié)(OCR)

聲明:本文只是個人學習總結(jié),部分內(nèi)容來自于網(wǎng)絡(luò),不做任何商用?。?!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容