光學字符識別解析_第1頁
光學字符識別解析_第2頁
光學字符識別解析_第3頁
光學字符識別解析_第4頁
光學字符識別解析_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

摘要:本文設計了一系列的算法,完成了文字特征提取、文字定位等工作,并基于卷積神經(jīng)網(wǎng)絡(CNN建立了字符識別模型,最后結合統(tǒng)計語言模型來提升效果,構建一個完整的OCR光學字符識別)系統(tǒng).在特征提取方面,拋棄了傳統(tǒng)的邊緣檢測+腐蝕膨脹”的方法,基于一些基本假設,通過灰度聚類、圖層分解、去噪等步驟,得到了良好的文字特征,文字特征用于文字定位和模型中進行識別。在文字定位方面,通過鄰識別有著不錯的效果,可以作為電商、微信等平臺的圖片文字識別工具關于光學字符識別(OpticalCharact文字轉化為計算機可編輯的文字內(nèi)容,眾多的研究人員對相關的技術研究已久,也有不少成熟的OCR技術和產(chǎn)品然而,在諸多的OCR成品中,除了TesseractOCR^,其他的都是閉源別效果不算很好,而且中文識別正確率偏低,有待進一步改進.綜上所述,不管是為了學術研究還是實際應用,都有必要對OCR技術進光學識別”、語言模型”四個方面,逐步進行解決,最終完成了一個可信等平臺的圖片文字識別,以判斷上面信息的真?zhèn)?在本文中,假設圖像的文字部分有以下的特征:6.一般文字是通過比較密集的筆畫成字的,并且很多時候都具有一定的連通性.些假設都是比較合理的.2分析流程和實驗平臺―1■構建―"訓繪—"檢驗1作為OCR系統(tǒng)的核心,特征提取是希望找出圖像中候選的文字區(qū)域特征,以便進行文字定位和文字識別.模仿肉眼對圖像與漢字的處理過程。傳統(tǒng)的文本分割思路大多數(shù)是邊緣檢測+腐蝕膨脹+聯(lián)通區(qū)域檢測”如論文[1].然而,在復雜背景的圖像下進行邊緣檢測會導致背景部分的邊緣過),效果變差.如果在此時進行腐蝕或膨脹,那么將會使得背景區(qū)域跟文字區(qū)在本文中放棄了邊緣檢測和腐蝕膨脹,通過聚類、分割、去噪、池化等步因此能夠模型的可靠性得到保證.特征提取流程圖3.1圖像的預處理Y=0.299R+0.587G+0.114B(1)圖像本身的尺寸不大,如果直接處理,則會導致文字筆畫過小,容易被當不過,圖像放大之后,文字與背景之間的區(qū)分度降低了?分度?經(jīng)過測試,在大多數(shù)圖片中,使用次數(shù)為*255⑶3.2灰度聚類2.設計原則:根據(jù)一般的審美原則,在考慮海報設計、服裝搭配等搭],有效地降低噪音.使用的是核概率密度估計”的思路,通過求顏色密度極值的方式來聚類.核密度估計:經(jīng)過預處理的圖像,可以對每個色階的出現(xiàn)次數(shù)可以看到,色階的分布形成了幾個比較突出的峰,換言之,存在一定的我們分析研究,結果也更有說服力.將統(tǒng)計結果平滑化的方法,就是核密度估計(kerneldensityestimation).在統(tǒng)計學理論和應用領域均受到高度的重視[2].當然,也可以簡單地將它看成一種函數(shù)平滑方式.我們根據(jù)大量的數(shù)據(jù)來估計某個值出現(xiàn)的概率時,就是上述的直方圖估計.K(x)這一項的含義很簡單,它就是告訴我響結果的平滑性.1所得到的估計也叫高斯核密度估計.在這里,使用scott規(guī)于示例圖片,我們得到如圖6的紅色曲線的結果.O極大極小值分割:從圖6中可以看出,圖像確實存在著聚類趨勢.這表現(xiàn)為它有幾個明顯的極大值和極小值點,這里的極大值點位于x=10,57,97,123,154,極小值點位于25,71,121,142.因此聚類方法是:有多少個極大值點,就聚為多少類,并且以極點作為類別之間的邊界.對于圖3,可以將圖像分層5層,逐層處理.分層之后,每一層的形狀如下圖,其中白色是1,黑色是通過聚類將圖像分為5個圖層可見,由于對比逐層識別:當圖像有效地進行分層后,就可以根據(jù)前面的假設,進一步設計相應的模型,通過逐層處理的方式找出圖像中的文字區(qū)域.素都定義為鄰接像素,鄰接的像素則被定義為同一個連通區(qū)域.定義了連通區(qū)域后,每個圖層被分割為若干個連通區(qū)域,也就是說,我們謹通區(qū)域2謹通區(qū)域2逐步地將原始圖像進行分解,如圖連通區(qū)域1圖層1圖層2圏層4圖層丘抗腐蝕能力:將圖像分解至連通區(qū)域這一粒度后,就不再細分了,下一步開始識別哪些區(qū)域是可能的文字區(qū)域.這里要求文字具有一定的抗腐蝕能力.因此先來定義腐蝕.),如果連通區(qū)域的邊界線越長,那么腐蝕運算對它的傷害”就越大,反之,如果連通區(qū)域的邊界線越短,那么腐蝕運算對它的傷害”就越小.根據(jù)以上腐蝕的定義,可以給出一個對文字區(qū)域的要求:抗腐蝕要一個面積較大的方形區(qū)域,它的抗腐蝕能力是很強的,因為它邊界線很短,但這些區(qū)域明顯不是文字區(qū)域,此外,抗腐蝕能力太弱也不可以,比如細長的線條,腐蝕之后可能就消失了,這些也不作為候選的文字區(qū)域,上一篇文章中分解后圖層4的文字邊界線就屬于連通區(qū)域的抗腐蝕能力二該區(qū)域被腐蝕后的總面積/該區(qū)域被腐蝕前[0.1,0.9]這個區(qū)間中.池化操作:到現(xiàn)在為止,得到了5個特征層,雖然肉眼可以看到,文字特征層,因此需要對特征層進行整合.是分散在所有的特征層.因此,得到疊加特征后,使用類似最大值2.檢測每個連通區(qū)域的主要貢獻是哪個特征層,該連通區(qū)域就只保留這個特征層的來源.元后期處理:對于演示的這幅圖像,經(jīng)過上述操作后,得到的特征圖由表格線組成的連通區(qū)域,這樣的區(qū)域范圍較大,但點很少,也就是密度很低,這種低密度區(qū)可以排除?首先我們來定義連通區(qū)域密度和低密度連通區(qū)域密度從一個連通區(qū)域出發(fā),可以找到該連通連通區(qū)域密度二連通區(qū)域的面積外切矩形的面積源圖像個連通區(qū)域定義為低密度區(qū).直覺上的定義應該是連通區(qū)域的面積外切矩形的面積,但這里多了一個因子原圖像總面積外切矩形的面積,目的是把面積大小這個影響因素加進去,因為文字一般有明顯的邊界,容易被分割開來,所以一般來說面積越大的區(qū)域越不可能是文本區(qū)域.這里的參數(shù)范圍較大的高密度區(qū)也是一類需要排除的區(qū)域.有了低密度區(qū)之后,就高密度區(qū)定義*如果一個連通區(qū)域以水平外切矩形反轉后的區(qū)域是一個低密度區(qū),那個這個連通區(qū)域定義為高密度區(qū).高密度區(qū)定義當且僅當下面條件滿足時才被定義為這是在原來定義的基礎上加上了1,防止了翻轉后密度為0的情況.還有另外一種失效的情況,就是假如輸入圖片是單字圖片,那么只有一個連通區(qū)域,且原圖像總面積外切矩形的面積接近于1,因此它就被判為低密度區(qū),這樣就排除了單字?這種情形確實比較難兼顧?一個可行的Google的TesseractOCR也果一個區(qū)域明顯地孤立于其他區(qū)域,那么這個區(qū)域很可能不是文字區(qū)域.孤立區(qū)從一個連通區(qū)域出發(fā),可以找到該連通區(qū)域的水平外切),多噪音點都是孤立區(qū).但是孤立區(qū)排除是會存在一定風險的.如果一一幅圖像只有一個文字,構成了唯一一個連通區(qū)域,那么這個連通區(qū)域就是孤立的,于是這個文字就被排除了.因此,要對孤立區(qū)加上更多的限切矩形的面積要大于0.75(這個值源于圓與外切正方形的面積之比n/4).4.1鄰近搜索對提取的特征圖進行連通區(qū)域搜索,得到的每個連通區(qū)域視為一個漢字.這對于大多數(shù)漢字來說是適用,但是對于一些比較簡單的漢字卻不適就被分拆開了,如圖13.因此需要通過鄰近搜索的區(qū)域,得到單行的文本區(qū)域.鄰近搜索的目的是進行膨脹,以把可能成字的區(qū)域粘合”起來.如果不進行搜索就膨脹,那么膨脹是各個方向同時進行的,這樣有可能把上下行都粘合起來了.因此,我們只允許區(qū)域向單一的一個方向膨脹正是要通過搜索鄰近區(qū)域來確定膨脹方向(上、下、左、右):鄰近搜索:從一個連通區(qū)域出發(fā),可以找到該連通區(qū)域的水平外切矩形,將連通區(qū)域擴展到整個矩形.當該區(qū)域與最鄰近區(qū)域的距離小于一定范圍時,考慮這個矩形的膨脹,膨脹的方向是最鄰近區(qū)域的所在方向.既然涉及到了鄰近,那么就需要有距離的概念.下面給出一個比較合理的距離的定義.如上圖,通過左上角坐標(x,y)和右下角坐標(z,w)就可以確定一個矩形區(qū)域,這里的坐標是以左上角為原點來算的.這個區(qū)域的中心是差(xc,yc)=i--------------,-----------丿如果直接使用.x2y2作為距離是不合理的,因為這里的鄰近應該是按邊界來算,而不是中心點.因此,需要減去區(qū)域的長度:C,y;)=Xcw-xw-xz-yz-yds,sii因此,基于橫向排版假設,更好的方法是只允許橫向膨脹:鄰近搜索從一個連通區(qū)域出發(fā),可以找到該連通區(qū)域的水平外切矩形,將連通區(qū)域擴展到整個矩形.當該區(qū)域與最鄰近區(qū)域的距離小于一定范圍時,考慮這向是水平的,才執(zhí)行膨脹操作.米家壓力電飯煲米家壓力電飯煲元14.2文本分割也就是說不加任何判斷,直接按照高度來將單行文本切割為一個個方形圖片.這種思路可以應對大部分的單行文本,如下圖上英語和數(shù)字都不是,因此如果出現(xiàn)中英文混排的時候,均勻切割就失效另外一種比較簡單的思路是對單行的文字圖片進行垂直方向的的所在的列就是被切割的的列.用這種統(tǒng)計的思路可以很好地解決中英文混排的單行文字圖片分割的問題,但是它也存在一定的弊端.最明顯的就是諸如小”的”等字就被切割2.如果該候選切割線到左右兩條候選切割線的距離之和3.如果得到的區(qū)域是一個明顯的長條矩形,并且沒辦法按照上面兩個步驟切割,那個就均勻切割.前面步驟所提取的圖片文本特征的分割.層卷積神經(jīng)網(wǎng)絡,構建了單字的識別模型.卷積神經(jīng)網(wǎng)絡是人工神經(jīng)網(wǎng)絡的一種,已成為當前圖像識別領域的主流模型.它通過局部感知野和權值共享方法,降低了網(wǎng)絡模型的復雜度,減少了權值的數(shù)量,在網(wǎng)絡結構上更類似于生物神經(jīng)網(wǎng)絡,這也預示著它必然具始圖像進行輸入,免除了傳統(tǒng)模型的人工提取特征這一比較困縮、旋轉)以及圖像上的噪音對識別的結果影響不明顯,這正是為了訓練一個良好的模型,必須有足夠多的訓練數(shù)據(jù).幸運的是,雖然沒有算機自動生成一批訓練數(shù)據(jù).通過以下步驟,構建了一批比較充分的訓練數(shù)2.常見漢字:為了保證模型的實用性,從網(wǎng)絡爬取了數(shù)十萬篇微信公眾平臺上的文章,然后合并起來統(tǒng)計各自的頻率,最后選出了頻率最高的3000個漢字(在本文中我們只考慮簡體字),并且加上26個字母(大小寫)和音.經(jīng)過上述步驟,我們一共生成了3062X45X5X2=13779個樣本作為訓練樣本,可見數(shù)據(jù)量是足夠充分的.在模型結構方面,有一些前人的工作可以參考的.一個類似的例子是MNIST手寫數(shù)字的識別一一它往往作為一個新的圖像識別模型的試金石”一■要將六萬多張大小為28X28象素的手寫數(shù)字圖像進行識別,這個案例跟模型的結構方面可以借鑒.一個常見的通過卷積神經(jīng)網(wǎng)絡對MNIST鞘數(shù)激活打2址人值池化■■■R乩u歯邀溫沼全邇接層2說址人值池化ReLui^數(shù)遊活Dropout0.5MftmaxJE卷積層164^4詁卷積核原始圖f?轄別展2肛5歯數(shù)潰活2x2*大逍池牝Dropout025全送接層歯數(shù)瀕括Dropout0.25神經(jīng)元恥S團數(shù)溫活DropoulU.5(aifinuiK層.■字具有數(shù)千個,在本文的分類任務中,就共有3062個目標.也就是說,漢字具有更為復雜和精細的結構,因此模型的各方面都要進行調(diào)整.首先,在模型的輸入方面,我們已經(jīng)將圖像的大小從28x28提高為增加卷積核的數(shù)目,增加隱藏節(jié)點的數(shù)目、調(diào)整權重等.最終網(wǎng)絡結構如圖在激活函數(shù)方面,選取了RuLe函數(shù)為激活模型效果;在防止過擬合方面,使用了深度學習網(wǎng)絡中最常用的Dropout方],個不同網(wǎng)絡,從而防止了部分節(jié)點可能出現(xiàn)的過擬合現(xiàn)象.升,有時還會有明顯下降.為深度學習庫,用Theano作為GPU加速庫(Tensoflow—直提示內(nèi)存曰”了,這兩個的特征是很相似的,但是日”出現(xiàn)的頻率遠高于曰”,因函數(shù)進行了調(diào)整,使得高頻字的權重更大,這樣能夠提升模型的預測性能.經(jīng)過多次調(diào)試,最終得到了一個比較可靠的模型.模型的收斂過程如下圖.模型檢驗:將從以下三個方面對模型進行檢驗.實驗結果表明,對于99.7%,因此,單純從單字識別這部分來看,結果已經(jīng)達到了stateoftheart級別,而且在黑體、宋體等正規(guī)字體中(正規(guī)字體樣本是指所有訓練樣本中,字體為黑體、宋體、楷體、微軟雅黑和Arial我們另外挑選了5種字體,根據(jù)同樣的方法生成了一批測試樣本(每種字),造宇工島晴話常規(guī)休表2:揆型在測試集中的結果(5%的隨機嘩音)從表中可以看出,即便是對于訓練集之外的樣本,模型效果也相當不錯接),字怵龜稱字怵龜稱八大山人手寫體字體樣式園ys.ai%造字工舟悄書常規(guī)體游狼軟筆楷村簡趙機腳正嗨率表3:模型在測試規(guī)中的結果(1^的隨機噪冉)平均的正確率為87.59%,也就是說,噪音的影響并不明顯,模型能夠保持90%左右的正確率.這說明該模型已經(jīng)完全達到了實用的程度?態(tài)規(guī)劃的方法給出最優(yōu)的識別結果?這是改進一.轉移概率:在分析實驗結果的過程中,有出現(xiàn)這一案例?由于圖像不清晰等可能的原因,導致電視”一詞被識別為電柳”,僅用圖像模型是不能很好地解決這個問題的,因為從圖像模型來看,識別為電柳'是最優(yōu)的選擇?但是語言模型卻可以很巧妙地解決這個問題?原因很簡單,基于大量的文本數(shù)據(jù)我們可以統(tǒng)計電視”一詞和電柳”一詞的概率,可以發(fā)現(xiàn)電視”一詞的概率遠遠大于電柳”,因此會認為這個詞是電視”而不是電柳”.從概率的角度來看,就是對于第一個字的區(qū)域的識別結果si,前面的卷積神經(jīng)網(wǎng)絡給出了電”宙”兩個候選字(僅僅選了前兩個,后面的概率太),區(qū)域的識別結果S2,我們前面的卷積神經(jīng)網(wǎng)絡給出了柳”),下面考慮它們的遷移概率.所謂遷移概率,其實就是條件概率P(電|柳)=0145001=0P電|視)=12426145001?0.08570p(f=W(s1)P(s1|s2)W(s2)(14)們成功地通過統(tǒng)計的方法得到了正確結果,從而提高了正確率.第一個第二個WnWjiWaiWl3W22W32WisW29定,那么應當使得如中文分詞、語音識別、圖像識別等,都用到了同樣的方法[6].這對于第一個問題,只需要從大的語料庫中統(tǒng)計si的出現(xiàn)次數(shù)#si,以該生成一個3062X3062的矩陣,這是非常龐大的.當然,這個矩陣是非常稀疏的,我們可以只保存那些有價值的元素.現(xiàn)在要著重考慮當#(si,si+1)=0的情況.在前一節(jié)我們就直P(si|si+1)=0,但事實上是不合理的.沒有出現(xiàn)不能說明不會出現(xiàn),只能說明概率很小,因此,即便是對于#(si,si+1)=0也應該賦予一個小概率而不是0.這在統(tǒng)計上稱為數(shù)據(jù)的平滑問題.的(一個更合理的思路是當頻數(shù)小于某個閾值T時才加上常數(shù),其他不加.).按照這種思路,從數(shù)十萬微信文章中,我們計算得到了萬的鄰接漢字的轉移概率矩陣.Viterbi算法對于第二個問題,求解最優(yōu)組合s1,s2,…,是屬于動態(tài)規(guī)劃中求最優(yōu)路徑的問題,其中最有效的方法是Viterbi算法[6].碼.它的核心思想是:如果最終的最優(yōu)路徑經(jīng)過某個si-1,那么從初始節(jié)點到si-1點的路徑必然也是一個根據(jù)這個思想,可以通過遞推的方法,在考慮每個si時只需要求實驗表明,結合統(tǒng)計語言模型進行動態(tài)規(guī)劃能夠很好地解決部分形近字識TTT通過統(tǒng)計語言模型的動態(tài)規(guī)劃能修正不少識別錯誤由于用來生成轉移矩陣的語料庫不夠大,因此修正的效果提升

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論