




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于深度學(xué)習(xí)的圖像文本切分與識別ImagetextsegmentationAndrecognitionbasedondeeplearning內(nèi)容摘要自從1929年德國科學(xué)家提出OCR的概念,各個(gè)國家就開始對此展開研究,OCR全稱OpticalCharacterRecognition,即光學(xué)字符識別。一開始專家們并沒有對字母、單詞、文字、字形等進(jìn)行研究,就像電話還沒有被發(fā)明之前一樣,人們覺得這是天方夜譚,研究要從基礎(chǔ)開始,因此,但是的人們是從最簡單的10個(gè)數(shù)字(0-9)開始的。由于歷史原因,中文識別起步較晚,并且由于漢字字形與由字母組成的英文、法文等不同,漢字字形各異,組織結(jié)構(gòu)復(fù)雜,機(jī)器尋求其中的規(guī)律比較困難,常常會因?yàn)槠圆渴壮霈F(xiàn)切分錯(cuò)誤,要精準(zhǔn)地識別并不容易,可以說是相當(dāng)有挑戰(zhàn)性的。隨著信息化水平不斷的提升,圖像時(shí)代已經(jīng)越來越近,這是一件必然的事情,當(dāng)我們擁有足夠的科技,足夠的能力,印刷文化將會被新的視覺文化所取代,識別技術(shù)的發(fā)展勢不可擋,我們能很明顯地感受到身邊相關(guān)的技術(shù),百度、谷歌等都有相關(guān)應(yīng)用。在字符識別方面,可選擇的有谷歌Tesseract、百度API、傳統(tǒng)的字符特征提取、模板匹配法以及基于深度學(xué)習(xí)下的CNN字符識別。本文使用模板匹配法以及基于深度學(xué)習(xí)下的CNN字符識別相互結(jié)合的方法。關(guān)鍵詞:OCR中文文本識別卷積神經(jīng)網(wǎng)絡(luò)文本檢測AbstractSince1929,GermanscientistsputforwardtheconceptofOCR,Countriesbegantostudyit,andOCRfullnameopticalcharacterrecognition,Atthebeginning,expertsdidn'tstudyletters,words,characters,glyphs,etc.,justlikebeforethetelephonewasinvented,peoplethoughtitwasafantasy,andtheresearchshouldstartfromthefoundation,so,peoplestartedfromthesimplest10numbers(0-9).Forhistoricalreasons,Chineserecognitionstartedlate,andduetothedifferencesbetweenChinesecharactersandalphabeticEnglish,French,etc,Chinesecharactershavedifferentshapesandcomplicatedorganizationalstructure,soitisdifficultformachinestofindtherulesamongthem,Thereareoftensegmentationerrorsduetotheradicals,itisnoteasytoidentifyaccurately,whichisquitechallenging.Withthecontinuousimprovementofinformationtechnology,theimageagehasbecomemoreandmoreclose,whichisaninevitablething.Whenwehaveenoughtechnologyandability,theprintingculturewillbereplacedbythenewvisualculture,andthedevelopmentofrecognitiontechnologyisunstoppable,wecanclearlyfeeltherelevanttechnologyaroundus,Baidu,Googleandotherrelevantapplications.Intheaspectofcharacterrecognition,wecanchooseGoogleTesseract,baiduAPI,traditionalcharacterfeatureextraction,templatematchingandCNNcharacterrecognitionbasedondeeplearning.Inthispaper,templatematchingandCNNcharacterrecognitionbasedondeeplearningareused.Keywords:OCRChinesetextrecognitionCNNTextdetection廣東東軟學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)目錄第一章緒論 11.1研究背景及意義 11.2國內(nèi)外研究歷史以及現(xiàn)狀 2第二章基礎(chǔ)理論及相關(guān)技術(shù) 32.1卷積神經(jīng)網(wǎng)絡(luò)概述 32.2OCR與卷積神經(jīng)網(wǎng)絡(luò)技術(shù) 52.3OCR流程 62.3.1預(yù)處理 72.3.2計(jì)算輪廓和切割 82.3.3字符識別 9第三章系統(tǒng)設(shè)計(jì)與實(shí)驗(yàn)分析 103.1建立中文字體庫 103.1.1生成漢字映射表 113.1.2收集字體文件 113.1.3文字圖像生成 123.2圖像處理 133.3文字識別 13第四章實(shí)驗(yàn)研究總結(jié) 164.1實(shí)驗(yàn)研究總結(jié) 134.2研究現(xiàn)狀 13參考文獻(xiàn) 17致謝 18第一章緒論1.1研究背景及意義生活中常常有一些時(shí)候,需要將手上的圖像資料重新整理一遍,或者要把紙質(zhì)材料輸入計(jì)算機(jī)存儲,每當(dāng)這個(gè)時(shí)候,我們會覺得如果能夠把手上的圖像資料或者紙質(zhì)材料通過某種手段、媒介,一下子就能由電子產(chǎn)品輸出,而不是逐字逐句地手抄或者手動(dòng)輸出打印,那么就會方便很多,節(jié)省了大量地時(shí)間,也能減輕眼睛的負(fù)擔(dān),省心省力。隨著科學(xué)技術(shù)的不斷進(jìn)步,人們的生活質(zhì)量也而穩(wěn)步上升,多媒體信息成為信息傳遞重中之重,圖像信息更是因?yàn)樨S富的信息內(nèi)容和直觀的展現(xiàn)方式而具有高度可研究價(jià)值。隨著科技進(jìn)步,我們能很明顯地感受到身邊相關(guān)的技術(shù),百度、谷歌等都有相關(guān)應(yīng)用。我們?nèi)缃耠x圖像時(shí)代已經(jīng)越來越近,這是一件必然的事情,當(dāng)我們擁有足夠的科技,足夠的能力,印刷文化將會被新的視覺文化所取代??萍际菫榱巳祟惙?wù)的,從這方面出發(fā),這就對識別技術(shù)提出了更高的要求。舉個(gè)例子,如果我們高速路的收費(fèi)站采用全自動(dòng)收費(fèi),那就意味著掃描識別的結(jié)果要清晰,處理速度要快,識別率要非常高,否則就會出錯(cuò),會由于速度不夠快而引起用戶不滿。因此,OCR技術(shù)在我們的生活具有重要的意義?,F(xiàn)如今OCR技術(shù)已經(jīng)有了顯著的成果,在多個(gè)領(lǐng)域都有其用武之地,包括郵政編碼的自動(dòng)識別,政府交通部門的駕駛證自動(dòng)檢測,公民身份證的只能輸入識別檢測以及現(xiàn)如今的5G技術(shù)融入汽車自動(dòng)駕駛,醫(yī)療上對X射線結(jié)果的自動(dòng)診斷,學(xué)校的自動(dòng)評卷,由此可見文本識別的在生活中無處不在且相當(dāng)重要,然而在同時(shí),因?yàn)闈h字?jǐn)?shù)量大,字體擁有形態(tài)種類多樣,尤其筆畫眾多,字形結(jié)構(gòu)極端復(fù)雜多變,這些使得對漢字圖像文的識別更加困難。科學(xué)技術(shù)在發(fā)展,生產(chǎn)力在提高,人的需求也在增加,如今評判一個(gè)OCR產(chǎn)品的優(yōu)劣也不僅僅是識別精準(zhǔn)度,更包括識別速度、拒識率、用戶界面的友好性以及產(chǎn)品的易用程度、穩(wěn)定程度等等。通過結(jié)合深度學(xué)習(xí)技術(shù),對模糊不清的低質(zhì)量圖像的識別是可以實(shí)現(xiàn)的。1.2國內(nèi)外研究歷史自從1929年OCR概念被提出以后,印刷體字體識別是首先被研究的,60年代IBM公司公開了OCR產(chǎn)品——IBMl287,即首款OCR技術(shù)產(chǎn)品問世以后,經(jīng)過不斷的技術(shù)革新,算法變換,傳統(tǒng)的基于圖像處理和統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法分辨率和識別率也大大提升。初期的OCR技術(shù)主要研究數(shù)字和字母,且被運(yùn)用于郵政編碼、票據(jù)、身份證、駕駛證等簡單的印刷文本場景識別。目前,隨著技術(shù)的快步革新,以及掃描媒介的多樣化和推廣,手寫字體的識別也取得了令人矚目的成就。文本檢測框架DetectingTextinNaturalImagewithConnectionistTextProposalNetwork結(jié)合CNN和LSTM,用于復(fù)雜場景的文本檢測,效果良好,是目前比較熱門的、成熟的檢測框架,美中不足的是效率不高。Pixel-Anchor是結(jié)合anchor-based和pixel-based的優(yōu)點(diǎn)提出的框架,雖然框架創(chuàng)新性不高,但是想法新穎,并且能夠良好檢測長行的中文。RARE由空間變形網(wǎng)絡(luò)和序列識別網(wǎng)絡(luò)組成,適合低質(zhì)量的圖像文本檢測,例如文字扭曲,紙張變形。FOTS是端到端的集成檢測,計(jì)算速度是其顯著優(yōu)點(diǎn),同時(shí)學(xué)習(xí)效率也更高。中文識別起步較晚,并且由于漢字字形與由字母組成的英文、法文等不同,漢字字形各異,組織結(jié)構(gòu)復(fù)雜,機(jī)器尋求其中的規(guī)律比較困難,常常會因?yàn)槠圆渴壮霈F(xiàn)切分錯(cuò)誤,要精準(zhǔn)地識別并不容易,可以說是相當(dāng)有挑戰(zhàn)性的。隨著信息化水平不斷的提升,以圖像為主的多媒體信息迅速成為重要的信息傳遞媒介,圖像中的文字?jǐn)?shù)據(jù)包含豐富的語義信息與分析價(jià)值。1986年,國家863計(jì)劃信息領(lǐng)域課題組織了清華大學(xué)、北京信息工程學(xué)院、沈陽自動(dòng)化所三家單位聯(lián)合進(jìn)行中文OCR軟件的開發(fā)工作。至1989年,清華大學(xué)率先推出了國內(nèi)第一套中文OCR軟件--清華文通TH-OCR1.0版,至此中文OCR正式從實(shí)驗(yàn)室走向了市場。而在接下來的三年,我國的漢字識別技術(shù)成果呈井噴式爆發(fā),多個(gè)單位對印刷體漢字進(jìn)行了多次檢測識別,這些漢字字體包括了fangzheng_fangsong,fangzheng_heti,fangzheng_kaiti,其中包括3至5號字體,識別速度很快,識別精準(zhǔn)度高。20世紀(jì)90年代初期,TH-OCR94系統(tǒng)被推出,這個(gè)包含了眾多人心血的系統(tǒng)被認(rèn)為是具有創(chuàng)新型、代表性的,它擁有超前的技術(shù),領(lǐng)先當(dāng)時(shí)的世界水準(zhǔn)。我國高校開始對漢字識別的綜合研究發(fā)生于20個(gè)世紀(jì)90年代中后期,在這之后,漢字識別檢測技術(shù)在各個(gè)領(lǐng)域全面地取得成績。其中TH-OCR97是佼佼者,它不僅可以完成印刷圖像多文種多字體混合的識別輸入,還能完成手寫識別。幾年來,中文OCR技術(shù)不斷更新,市場擴(kuò)大,全球各地都有用戶使用相干產(chǎn)品。第二章基礎(chǔ)理論及相關(guān)技術(shù)2.1卷積和人工神經(jīng)網(wǎng)絡(luò)在泛函分析中,卷積、旋積或摺積是通過兩個(gè)函數(shù)f和g生成第三個(gè)函數(shù)的一種數(shù)學(xué)算子,表征函數(shù)f與g經(jīng)過翻轉(zhuǎn)和平移的重疊部分函數(shù)值乘積對重疊長度的積分。卷積運(yùn)算是卷積神經(jīng)網(wǎng)絡(luò)中的核心,相當(dāng)于圖像處理中的“濾波器運(yùn)算”。對于一個(gè)mxn大小的卷積核W=w11w12…w1nw21其對某一原圖像進(jìn)行卷積運(yùn)算的過程為:卷積核中的每一個(gè)權(quán)值w分別和覆蓋的原圖像中所對應(yīng)的像素x相乘,然后再求和。計(jì)算公式為:z=W1X1+W2X2+…+WmnXmn=k=1mnWkXk=事實(shí)上卷積就是一種加權(quán)求和,如下公式:cx,y把函數(shù)所有的s值和t值遍歷一遍,然后函數(shù)f的值和函數(shù)g的值相乘再相加,得到c值。根據(jù)上面的式子,我們可以發(fā)現(xiàn)實(shí)際上卷積是一種以(x,y)為中心的加權(quán)求和。人工神經(jīng)網(wǎng)絡(luò)是一種模擬自然界的神經(jīng)細(xì)胞的計(jì)算模型,我們類比兩者之間的關(guān)系,就能很快明白人工神經(jīng)網(wǎng)絡(luò)是怎么工作的。輸入層相當(dāng)于自然界神經(jīng)元的樹突,它的作用就是輸入信息,另外,就像樹突有多個(gè)一樣,輸入的信息也可以是來自前一層的神經(jīng)元;線性計(jì)算和激活函數(shù)相當(dāng)于胞體,他是一種計(jì)算機(jī)制,決定是否激活從輸入層輸入的信息;顯而易見的,輸出層相當(dāng)于神經(jīng)元的軸突,他負(fù)責(zé)傳遞上一層的信息給下一層。單個(gè)的神經(jīng)元只能做簡單的數(shù)學(xué)運(yùn)算,異運(yùn)算和或運(yùn)算是無法進(jìn)行的,而大量的神經(jīng)元組成的人工神經(jīng)網(wǎng)絡(luò)就能解決這個(gè)問題。我們假設(shè)對輸入神經(jīng)元p1,p2,p3,…,pn加權(quán)求和,對以上操作后的式子施加函數(shù),就能夠得到下面的公式,a是神經(jīng)元的輸出,b是偏置值:A=f(n)=fi=inpiwi+b=fw1,w2,…,wnp1由多個(gè)這樣的神經(jīng)元連接而成的人工神經(jīng)網(wǎng)絡(luò)就可以擁有各種各樣的拓?fù)浣Y(jié)構(gòu),inputlayer輸入的數(shù)據(jù)要鏈接到hidinglayer1的每一個(gè)節(jié)點(diǎn),hidinglayer1的每一個(gè)節(jié)點(diǎn)的輸出數(shù)據(jù)又要連接到hidinglayer2的每一個(gè)節(jié)點(diǎn),然后再輸出,以此類推,可以有hidinglayer3、hidinglayer4等等,最后一層outputlayer的輸出就是整個(gè)神經(jīng)網(wǎng)絡(luò)的輸出。值得注意的是,并不是說卷積層的層數(shù)越多越好,這取決于數(shù)據(jù)的復(fù)雜程度。圖(1-1)是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖:圖(1-1)2.2OCR與卷積神經(jīng)網(wǎng)絡(luò)技術(shù)卷積神經(jīng)網(wǎng)絡(luò)是把卷積和人工神經(jīng)網(wǎng)絡(luò)的思想結(jié)合在一起的網(wǎng)絡(luò)。它是一類包含卷積計(jì)算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),對處理大型圖像有優(yōu)秀的能力,在計(jì)算機(jī)視覺領(lǐng)域有廣泛應(yīng)用。如場景識別,圖像特征提取。卷積神經(jīng)網(wǎng)絡(luò)根據(jù)動(dòng)物地視覺系統(tǒng)研究的,如S層對應(yīng)感受野,C則對應(yīng)就接收和回應(yīng)。卷積神經(jīng)網(wǎng)絡(luò)一開始被應(yīng)用于語音識別,當(dāng)平移不變?nèi)斯ど窠?jīng)網(wǎng)絡(luò)出現(xiàn)后,開始在醫(yī)學(xué)領(lǐng)域應(yīng)用,同時(shí)嘗試著結(jié)合計(jì)算機(jī)視覺問題以期得到更廣泛的應(yīng)用。1998年,LeNet-5在手寫數(shù)字識別中取得成功,卷積神經(jīng)網(wǎng)關(guān)注度上升。由于其表征學(xué)習(xí)能力強(qiáng),卷積神經(jīng)網(wǎng)絡(luò)在深度學(xué)習(xí)的概念被提出以后,得到空前的關(guān)注度。圖(2-1)神經(jīng)網(wǎng)絡(luò)輸入層(inputlayer)會對圖像做一個(gè)簡單預(yù)處理,首先式去均值化,去均值能夠把數(shù)據(jù)樣本貼合坐標(biāo),圍繞坐標(biāo)原點(diǎn)分布,避免了過擬。為了提高數(shù)據(jù)提取簡便度,可以進(jìn)行把數(shù)據(jù)變成(0,1)之間的小數(shù)。卷積層(hiddenlayer)可由多個(gè)卷積核組成,有多少圖像輸入通道就有多少卷積核,對他們進(jìn)行點(diǎn)積累加可以得到一張功能圖。舉個(gè)例子,我們把通過三個(gè)通道得到的三張功能圖的對應(yīng)的位置相加,就能得到一張新卷積操作的功能圖。一般來說,圖片有紅、綠、藍(lán)三個(gè)通道。卷積層的計(jì)算是圖像矩陣與卷積核點(diǎn)積的過程,即濾波。圖(2-2)圖(2-3)激活函數(shù)可以解決線性不可分的問題,如圖(2-2),要用一條直線分開圓形和三角形,明顯是做不到的,用激活函數(shù)加入非線性因素,這時(shí)候就可以使用激活函數(shù)來使數(shù)據(jù)可分,如圖(2-3)。激活函數(shù)再神經(jīng)網(wǎng)絡(luò)中尤其重要,如果沒有激活函數(shù),那么線性不管經(jīng)過多少層都仍然是線性。圖(2-4)池化就是取區(qū)域平均或最大,假設(shè)4x4的數(shù)據(jù)表,分成4個(gè)2x2的區(qū)域,分別取其中的最大數(shù),得到的新的2x2數(shù)據(jù)表,這個(gè)過程就是池化。如上圖圖(2-4),取左邊圖表左上的最大數(shù)6,左下的最大數(shù)3,右上的最大數(shù)8和右下的最大數(shù)4,組合在一起即右邊圖表。所謂的池化層特征不變性就是尺度不變性,當(dāng)一張動(dòng)物的圖像被進(jìn)行壓縮時(shí),我們?nèi)匀荒芸吹贸瞿鞘鞘裁?,這是因?yàn)閳D像壓縮不會刪除重要的特征,而我們判斷物體是什么就只根據(jù)其重要特征進(jìn)行的。一張圖像可以包含非常豐富的信息,有繁多的特征,但是有一些信息是不重要的,或者重復(fù)的去除這一類信息就是池化層特征降維。全連接層的作用是實(shí)現(xiàn)分類,全連接層之前是在做特征提取,而這一層就是把被找到圖像的各個(gè)特征組合在一起,然后尋找最符合要求的類,這就是全連接層。值得一提的是這一層的參數(shù)很多,可占整個(gè)網(wǎng)絡(luò)的80%。什么是CNN把握圖像局部特征?我們假設(shè)一個(gè)神經(jīng)網(wǎng)絡(luò),它接受mxm個(gè)輸入,有兩個(gè)hiddenlayer,每一層都有mxm個(gè)神經(jīng)元,第一層hiddenlayer有mxm個(gè)整數(shù)值輸入,實(shí)際上就是神經(jīng)網(wǎng)絡(luò)的圖像輸入。第二層的每個(gè)神經(jīng)元連接3x3范圍內(nèi)的值,把第二層hiddenlayer每個(gè)神經(jīng)元的輸入值和權(quán)重相乘,然后全部相加,產(chǎn)出mxm個(gè)輸出。到這里我們就可以發(fā)現(xiàn),這個(gè)神經(jīng)網(wǎng)絡(luò)并不是全連接的,第二層hiddenlayer的每一個(gè)節(jié)點(diǎn)只連接前一層的局部圖像輸入。把握局部特征會減少權(quán)值,運(yùn)算時(shí)間。這個(gè)時(shí)候其實(shí)整個(gè)神經(jīng)網(wǎng)絡(luò)只有9個(gè)權(quán)值,因?yàn)樗麄儗?shí)際上是共享的,如此這個(gè)網(wǎng)絡(luò)的計(jì)算就很少了。cl2.get_weights()卷積第二層len(w)=1權(quán)值列表的長度是1w[].shape元素的維度權(quán)值列表的長度是1。唯一的元素的維度是(32,32,3,3)。第一個(gè)32對應(yīng)著32個(gè)濾波器。后面的32*3*3是一個(gè)三維離散濾波器,取一個(gè)3*3區(qū)域,區(qū)域來自輸入的32個(gè)通道,把它們放在一起濾,得到的通道是28*28,因此第二層hiddenlayer仍然輸出32個(gè)通道,濾波器把輸入的32個(gè)通道放一起過濾出每一個(gè)通道。1.計(jì)算卷積:convolve()2.調(diào)整像素:np.uint8()3.保存濾波后的圖像:Image.fromarray().save()4.建立模型:model=Sequential()5.添加卷積層,有濾波器:model.add(Convolution2D())2.3OCR流程簡單來說,OCR就是把圖像輸入電子產(chǎn)品通過掃描后,由計(jì)算機(jī)輸出圖像內(nèi)容。計(jì)算機(jī)處理信息的方式不像自然界那么靈活,它只有0和1,圖像文本信息也不例外,他的數(shù)據(jù)一樣通過0、1進(jìn)行記錄識別。關(guān)于識別方法,OCR識別檢測圖像文本上的信息,主要有特征提取法和模式匹配法兩種。特征提取識別法流程可以分為:1.對樣本生成特征向量矩陣2.計(jì)算每一列的特征的平均值,和每一維度進(jìn)行相應(yīng)的減法運(yùn)算3.特征用數(shù)據(jù)表示,計(jì)算他們的協(xié)方差矩陣4.針對協(xié)方差矩陣進(jìn)行特征值和特征向量的計(jì)算5.對特征值排序6.取出前n個(gè)特征向量和特征值并回退。因此OCR特征提取就是將每個(gè)字符分解成組成字符的特征,接著將字符和分解而來的特征進(jìn)行匹配。這種方法可以滿足漢字字體多樣性的需求。模式匹配識別法原理很簡單,是一種暴力易用的方法,遍歷母串,一旦發(fā)現(xiàn)有和字串完全符合的片段即匹配成功。在OCR文本識別中,則將每一個(gè)字符比較匹配。向系統(tǒng)輸入一張文本頁圖像,系統(tǒng)會對頁面上的文本朝向進(jìn)行判斷識別。假如圖像是直接從電子儀器上截屏,那么識別很容易就能確定行線坐標(biāo),劃分區(qū)域,這是因?yàn)榻仄翀D像水平投影和垂直投影的情況都很理想。但是實(shí)際生活中我們可以發(fā)現(xiàn)所需要識別的圖像并不是理想的,它可能是傾斜的,可能會明暗度差,甚至可能還有污漬,因此進(jìn)行圖像預(yù)處理是首先要做的事,預(yù)處理包括圖像去噪和角度矯正。在進(jìn)行角度矯正的工作中,首先要檢測出圖像的文本范圍,這一步利用Sobel算子進(jìn)行邊緣檢測。Sobel算子是計(jì)算機(jī)常用的視覺領(lǐng)域處理方法,圖像中每個(gè)像素的都有四個(gè)灰度值,求它們的加權(quán)差。邊緣檢測之后用霍夫變換進(jìn)行平空間到極坐標(biāo)空間的轉(zhuǎn)換,圖像上的點(diǎn)會被分為不同的,屬于孤立的點(diǎn)、連續(xù)的曲線或者連續(xù)的區(qū)域的子集,這一步稱為特征檢測。最后利用數(shù)學(xué)模型仿射變換旋轉(zhuǎn)圖像。模式匹配識別法原理很簡單,是一種暴力易用的方法,遍歷母串,一旦發(fā)現(xiàn)有和字串完全符合的片段即匹配成功。在OCR文本識別中,則將每一個(gè)字符比較匹配。傳統(tǒng)文字識別技術(shù)就是在這個(gè)基礎(chǔ)上進(jìn)行的,但是對于長行文本,沒有辦法一下子就識別出來,只能切分文本行成數(shù)個(gè)單字,再對它們進(jìn)行逐個(gè)識別。流程如下圖圖(1-2.1)圖(1-2.1)2.3.1預(yù)處理我們向系統(tǒng)輸入的圖像如果是直接從電子儀器上截屏,那么識別很容易就能確定行線坐標(biāo),劃分區(qū)域并標(biāo)定各部分屬性,這是因?yàn)榻仄翀D像水平投影和垂直投影的情況都很理想。但假如我們拍攝下來的圖像角度傾斜,那么完成行列劃分就需要先將圖片角度矯正。不僅如此,因?yàn)榧垙埖暮癖〕潭?、顏色、透光度、反光度、平滑度和和字跡的清晰程度等等因素,都會造成識別的精準(zhǔn)率。因此我們要先對這些因素進(jìn)行排除處理,即去噪,然后再開始識別檢測。上訴的內(nèi)容都要在圖像文本識別之前進(jìn)行。預(yù)處理的工作有灰度化,二值化,版面矯正等等。灰度化是為了處理圖像的亮度,它不包含其他信息。舉個(gè)例子,把輸入的圖像進(jìn)行灰度化處理,那么計(jì)算機(jī)會把圖像的三個(gè)顏色通道的值設(shè)為相等,不管你的圖像是蒙娜麗莎還是乘法口訣表,計(jì)算機(jī)都不會處理。彩色的圖像一定要經(jīng)過二值化,它能夠大大減少圖像的數(shù)據(jù)量,在圖片文本識別中,二值化能夠凸顯輪廓,從而更好識別輪廓。用霍夫變換進(jìn)行平空間到極坐標(biāo)空間的轉(zhuǎn)換,從而進(jìn)行傾斜矯正。輸入:圖片路徑過程:讀取圖像:cv2.imread(圖片)非局部平均去噪:cv2.fastNlMeansDenoisingColored()轉(zhuǎn)灰度圖:cv2.cvtColor(img_c,cv2.COLOR_BGR2GRAY)二值化:cv2.threshold(()cv2.THRESH_OTSU+cv2.THRESH_BINARY)邊緣檢測:cv2.Sobel(gray,cv2.CV_8U,1,0,ksize=3)求直線斜率:hufu=binary.astype(np.uint8旋轉(zhuǎn)圖像:cv2.warpAffine輸出圖像:cv2.imwrite圖(1-3.1)圖(1-3.2)2.3.2計(jì)算輪廓和切割漢字字符切割是OCR的一大難題,主要原因是漢字的字形結(jié)構(gòu)復(fù)雜多變,左右結(jié)合的漢字容易一個(gè)字被切成兩個(gè),排列密集的漢字則容易切割失敗,值得一提的是自從有字符識別技術(shù)到現(xiàn)在,都沒有一個(gè)能得到所有人認(rèn)可的解決方案。以下是本次實(shí)驗(yàn)計(jì)算輪廓和切割漢字用到的部分函數(shù):Non-LocalMeans():處理自然場景中圖片信息冗雜的問題,能夠較好地去噪cv2.findContours():接受兩個(gè)參數(shù),對輪廓進(jìn)行檢測,保留終點(diǎn)坐標(biāo)。cv2.drawContours():是輪廓填充函數(shù),里面可以有多個(gè)函數(shù),能夠指明要繪制輪廓地圖像,輪廓個(gè)數(shù),畫第幾個(gè),輪廓顏色等信息cv2.RETR_EXTERNAL:表示只檢測外輪廓cv2.CHAIN_APPROX_SIMPLE:壓縮各個(gè)方向的元素,只保留終點(diǎn)坐標(biāo)圖(1-3.3)圖(1-3.4)圖(1-3.5)2.3.3字符識別文本識別讓計(jì)算機(jī)“認(rèn)字”的關(guān)鍵,我們都知道模式匹配識別法原理很簡單,是一種暴力易用的方法,遍歷母串,一旦發(fā)現(xiàn)有和字串完全符合的片段即匹配成功。在OCR文本識別中,則將每一個(gè)字符比較匹配。傳統(tǒng)文字識別技術(shù)就是在這個(gè)基礎(chǔ)上進(jìn)行的,但是對于長行文本,沒有辦法一下子就識別出來,只能切分文本行成數(shù)個(gè)單字,再對它們進(jìn)行逐個(gè)識別。由于漢字字形與由字母組成的英文、法文等不同,漢字字形各異,組織結(jié)構(gòu)復(fù)雜,機(jī)器尋求其中的規(guī)律比較困難,常常會因?yàn)槠圆渴壮霈F(xiàn)切分錯(cuò)誤,要精準(zhǔn)地識別并不容易。舉個(gè)例子,我們要識別“好”字,但是實(shí)際結(jié)果出來,發(fā)現(xiàn)被切成“女”字和“子”字,為了解決這一問題,我們需要設(shè)計(jì)一個(gè)損失函數(shù)。第三章系統(tǒng)設(shè)計(jì)與實(shí)驗(yàn)分析3.1建立中文字體庫在本文中,我們只需要對印刷體的中文進(jìn)行識別,我們選用模板匹配的方法,因此需要生成一個(gè)有足夠量的中文字體圖片庫,其中包括常用漢字、常見字體的圖片。字體庫的圖片內(nèi)容自己決定,可以選擇多種字體,可以選擇字體的旋轉(zhuǎn)角度。但是并不是說圖片庫越大越好,圖片數(shù)據(jù)大固然可以提高識別率,但同時(shí)也會增加匹配時(shí)間。3.1.1生成漢字映射表首先確定所需要的漢字,這里選用了常見的漢字,寫入空白的txt文件中,建立字典,每一個(gè)漢字對應(yīng)相應(yīng)的ID,生成映射表利用pickle.dump讀入內(nèi)存,下面附上部分代碼:輸入:收集的漢字建立字典:d1=dict(zip('',range()))將字典寫入文本:withopen("my.txt","wb")asmy:讀入內(nèi)存:pickle.dump()讀入label:for()inlabel_dict.items()得到漢字映射表:label_dict圖(1-1)圖(1-2)圖(1-1)是漢字對應(yīng)label映射表,圖(1-2)是我們收集的部分常用漢字。3.1.2收集字體文件字體文件選擇適用于中文的字體,例如DroidSansFallback.ttf,考慮到字體多樣性,此次設(shè)計(jì)選用了九種字體,作為中文字體數(shù)據(jù)集所需的字體:DroidSansFallbackmingliuSourceHanSansCN-Lightfangzheng_fangsongfangzheng_kaitiSourceHanSansCN-BoldSourceHanSansCN-Heavyfangzheng_hetiSourceHanSansCN-Normal3.1.3文字圖像生成圖像生成使用PIL工具,利用其中的漢字生成工具結(jié)合字體文件,生成漢字圖片,此時(shí)可以設(shè)定我們想要的圖片尺寸以及圖片顏色。接下來寫兩個(gè)循環(huán),內(nèi)層循環(huán)是函子列表,外層循環(huán)是字體列表,按比例分開訓(xùn)練集和測試集。在讀取漢字文件txt之后,我們定義好輸入?yún)?shù),定義用argparse包,源碼如下(部分):1.漢字圖像存儲目錄:parser.add_argument('--out_dir',…)2.字體文件路徑:parser.add_argument('--font_dir',…)3.圖像寬度:parser.add_argument('--width',…)4.圖像高度:parser.add_argument('--height',…)5.字體與邊緣的間隔:parser.add_argument('--margin',…)6.生成字體圖像:classFont2Image(object):7.定義背景和字體顏色:font=ImageFont.truetype8.劃分訓(xùn)練集和測試集:parser.add_argument('--test_ratio',…)9.打亂圖像列表:random.shuffle代碼運(yùn)行之后會生成一個(gè)訓(xùn)練集,一個(gè)測試集。圖(1-1.1)圖(1-1.2)圖(1-1.1)和圖(1-1.2)分別是生成的mingliu字體圖片和仿宋楷體圖片。接下來我們可以對圖片進(jìn)行一些處理,對圖像增強(qiáng),比如說增加圖片尺寸,適當(dāng)膨脹,適當(dāng)腐蝕,圖像的膨脹和腐蝕都是建立在黑白像素地基礎(chǔ)上的,能夠把圖片中極小的白色括大,把圖片中極大的白色縮小,使圖像更加合理。3.2圖像處理要識別的圖像首先要經(jīng)過處理,不然可能會因?yàn)榍逦取⒎垂?、角度不正、磨損污漬等原因造成文本切割不成,文字提取失敗。獲得文本行后,需要進(jìn)行單個(gè)字符的切割,將每個(gè)字符切割出來后以便于后續(xù)字符識別。輸入:圖片路徑1.讀取圖像:cv2.imread(圖片)2.灰度化轉(zhuǎn)換:cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)3.二值化:cv2.threshold(()cv2.THRESH_OTSU+cv2.THRESH_BINARY)4.邊緣檢測:cv2.Sobel(gray,cv2.CV_8U,1,0,ksize=3)5.求直線斜率:hufu=binary.astype(np.uint86.6.旋轉(zhuǎn)圖像:cv2.warpAffine得到字符后,我們首先要對圖像進(jìn)行預(yù)處理,包括圖像去噪、二值化、圖像邊緣檢測和切割、圖像角度矯正和統(tǒng)一分辨率。減弱或者去除不需要的信息,在進(jìn)行角度矯正的工作中,首先要檢測出圖像的文本范圍,邊緣檢測之后用霍夫變換進(jìn)行平空間到極坐標(biāo)空間的轉(zhuǎn)換,最后利用數(shù)學(xué)模型仿射變換旋轉(zhuǎn)圖像。3.3文字識別像神經(jīng)網(wǎng)絡(luò)輸入圖片樣本之后,經(jīng)過卷積層的處理后,輸出一個(gè)大于0小于1的數(shù),如果輸出的數(shù)值離1越近,那就證明和字符越接近。本次實(shí)驗(yàn)所使用的深度學(xué)習(xí)框架是Tensorflow,我們建立一個(gè)基本的網(wǎng)絡(luò)做文字識別。導(dǎo)入keras相關(guān)庫:fromkeras.modelsimportSequential…模型初始化:model=Sequential()創(chuàng)建第一個(gè)卷積層:model.add(Convolution2D()…)創(chuàng)建全連接層:model.add(Flatten())創(chuàng)建輸出層:model.add(Dense()…)設(shè)置損失函數(shù)和優(yōu)化算法:pile(…,metrics=[])訓(xùn)練:model.fit()圖(1-3.1)圖(1-3.2)圖(1-3.1)是損失函數(shù),圖(1-3.2)是準(zhǔn)確率,我們可以看到準(zhǔn)確率隨著損失函數(shù)的下降而上升,數(shù)值接近1訓(xùn)練好模型之后就可以進(jìn)行漢字識別,當(dāng)然在此之前還要對每張圖片尺寸進(jìn)行標(biāo)準(zhǔn)化和歸一化。我們把要識別的圖片按照順序進(jìn)行編號,依次放入文件夾中,識別時(shí)只需要讀取文件夾路徑,對里面內(nèi)容逐一識別。圖(1-3.3)圖(1-3.4)圖(1-3.3)是單字切分,圖(1-3.4)是測試結(jié)果。廣東東軟學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第四章實(shí)驗(yàn)研究總結(jié)4.1實(shí)驗(yàn)研究總結(jié)自從1929年德國科學(xué)家提出OCR的概念,各個(gè)國家就開始對此展開研究,OCR全稱OpticalCharacterRecognition,即光學(xué)字符識別。一開始專家們并沒有對字母、單詞、文字、字形等進(jìn)行研究,就像電話還沒有被發(fā)明之前一樣,人們覺得這是天方夜譚,研究要從基礎(chǔ)開始,因此,但是的人們是從最簡單的10個(gè)數(shù)字(0-9)開始的。圖片在被檢測之前要經(jīng)過版面分析和預(yù)處理,處理過的圖片會被切成大小一樣的單字,然后再開始匹配,識別使用的是基于Tensorflow的模板匹配法,結(jié)合卷積神經(jīng)網(wǎng)絡(luò),完成實(shí)驗(yàn)。在本次實(shí)驗(yàn)中,一開始就在漢字字體圖片庫上遇到難題。起初我使用的是python庫中的pygame,生成由Unicode的0x4E00到0x9FA5的圖片庫,生成的結(jié)果當(dāng)然是有兩萬多張漢字圖片,并且只是一種字體的。這不是我想要的結(jié)果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 育嬰師有效教育方法試題及答案
- 激光設(shè)備操作規(guī)范試題及答案
- 理解技術(shù)背景對專利撰寫的重要影響與方式試題及答案
- 系統(tǒng)架構(gòu)設(shè)計(jì)師考試常見問題解答及試題答案
- 系統(tǒng)管理師復(fù)習(xí)要點(diǎn)分析試題及答案
- 育嬰師如何緩解家長焦慮試題及答案
- 文化產(chǎn)業(yè)管理證書考試專業(yè)技能題
- 系統(tǒng)架構(gòu)設(shè)計(jì)師考試架構(gòu)圖設(shè)計(jì)試題及答案
- 育嬰師服務(wù)評價(jià)標(biāo)準(zhǔn)試題及答案
- 藥物服用指導(dǎo)與患者教育試題及答案
- CPS產(chǎn)品推廣合作協(xié)議書標(biāo)準(zhǔn)合同
- 第一、二單元綜合檢測卷-必修中外歷史綱要下(附答案)
- JSBXC1-850時(shí)間繼電器
- 煤礦節(jié)電降耗管理措施
- 《英語委婉語與忌語》PPT課件.ppt
- 地域文化教學(xué)大綱(修訂本)
- 通用航空產(chǎn)業(yè)園項(xiàng)目商業(yè)計(jì)劃書范文參考
- 中國書法演變史
- 工商企業(yè)管理畢業(yè)論文范文
- 井下電纜著火應(yīng)急演練預(yù)案
- APP開發(fā)合作協(xié)議通用版
評論
0/150
提交評論