軟件工程基于深度學(xué)習(xí)的圖像文本切分與識(shí)別_第1頁(yè)
軟件工程基于深度學(xué)習(xí)的圖像文本切分與識(shí)別_第2頁(yè)
軟件工程基于深度學(xué)習(xí)的圖像文本切分與識(shí)別_第3頁(yè)
軟件工程基于深度學(xué)習(xí)的圖像文本切分與識(shí)別_第4頁(yè)
軟件工程基于深度學(xué)習(xí)的圖像文本切分與識(shí)別_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于深度學(xué)習(xí)的圖像文本切分與識(shí)別ImagetextsegmentationAndrecognitionbasedondeeplearning內(nèi)容摘要自從1929年德國(guó)科學(xué)家提出OCR的概念,各個(gè)國(guó)家就開(kāi)始對(duì)此展開(kāi)研究,OCR全稱OpticalCharacterRecognition,即光學(xué)字符識(shí)別。一開(kāi)始專家們并沒(méi)有對(duì)字母、單詞、文字、字形等進(jìn)行研究,就像電話還沒(méi)有被發(fā)明之前一樣,人們覺(jué)得這是天方夜譚,研究要從基礎(chǔ)開(kāi)始,因此,但是的人們是從最簡(jiǎn)單的10個(gè)數(shù)字(0-9)開(kāi)始的。由于歷史原因,中文識(shí)別起步較晚,并且由于漢字字形與由字母組成的英文、法文等不同,漢字字形各異,組織結(jié)構(gòu)復(fù)雜,機(jī)器尋求其中的規(guī)律比較困難,常常會(huì)因?yàn)槠圆渴壮霈F(xiàn)切分錯(cuò)誤,要精準(zhǔn)地識(shí)別并不容易,可以說(shuō)是相當(dāng)有挑戰(zhàn)性的。隨著信息化水平不斷的提升,圖像時(shí)代已經(jīng)越來(lái)越近,這是一件必然的事情,當(dāng)我們擁有足夠的科技,足夠的能力,印刷文化將會(huì)被新的視覺(jué)文化所取代,識(shí)別技術(shù)的發(fā)展勢(shì)不可擋,我們能很明顯地感受到身邊相關(guān)的技術(shù),百度、谷歌等都有相關(guān)應(yīng)用。在字符識(shí)別方面,可選擇的有谷歌Tesseract、百度API、傳統(tǒng)的字符特征提取、模板匹配法以及基于深度學(xué)習(xí)下的CNN字符識(shí)別。本文使用模板匹配法以及基于深度學(xué)習(xí)下的CNN字符識(shí)別相互結(jié)合的方法。關(guān)鍵詞:OCR中文文本識(shí)別卷積神經(jīng)網(wǎng)絡(luò)文本檢測(cè)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國(guó)內(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字符識(shí)別 9第三章系統(tǒng)設(shè)計(jì)與實(shí)驗(yàn)分析 103.1建立中文字體庫(kù) 103.1.1生成漢字映射表 113.1.2收集字體文件 113.1.3文字圖像生成 123.2圖像處理 133.3文字識(shí)別 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ī)存儲(chǔ),每當(dāng)這個(gè)時(shí)候,我們會(huì)覺(jué)得如果能夠把手上的圖像資料或者紙質(zhì)材料通過(guò)某種手段、媒介,一下子就能由電子產(chǎn)品輸出,而不是逐字逐句地手抄或者手動(dòng)輸出打印,那么就會(huì)方便很多,節(jié)省了大量地時(shí)間,也能減輕眼睛的負(fù)擔(dān),省心省力。隨著科學(xué)技術(shù)的不斷進(jìn)步,人們的生活質(zhì)量也而穩(wěn)步上升,多媒體信息成為信息傳遞重中之重,圖像信息更是因?yàn)樨S富的信息內(nèi)容和直觀的展現(xiàn)方式而具有高度可研究?jī)r(jià)值。隨著科技進(jìn)步,我們能很明顯地感受到身邊相關(guān)的技術(shù),百度、谷歌等都有相關(guān)應(yīng)用。我們?nèi)缃耠x圖像時(shí)代已經(jīng)越來(lái)越近,這是一件必然的事情,當(dāng)我們擁有足夠的科技,足夠的能力,印刷文化將會(huì)被新的視覺(jué)文化所取代??萍际菫榱巳祟惙?wù)的,從這方面出發(fā),這就對(duì)識(shí)別技術(shù)提出了更高的要求。舉個(gè)例子,如果我們高速路的收費(fèi)站采用全自動(dòng)收費(fèi),那就意味著掃描識(shí)別的結(jié)果要清晰,處理速度要快,識(shí)別率要非常高,否則就會(huì)出錯(cuò),會(huì)由于速度不夠快而引起用戶不滿。因此,OCR技術(shù)在我們的生活具有重要的意義?,F(xiàn)如今OCR技術(shù)已經(jīng)有了顯著的成果,在多個(gè)領(lǐng)域都有其用武之地,包括郵政編碼的自動(dòng)識(shí)別,政府交通部門的駕駛證自動(dòng)檢測(cè),公民身份證的只能輸入識(shí)別檢測(cè)以及現(xiàn)如今的5G技術(shù)融入汽車自動(dòng)駕駛,醫(yī)療上對(duì)X射線結(jié)果的自動(dòng)診斷,學(xué)校的自動(dòng)評(píng)卷,由此可見(jiàn)文本識(shí)別的在生活中無(wú)處不在且相當(dāng)重要,然而在同時(shí),因?yàn)闈h字?jǐn)?shù)量大,字體擁有形態(tài)種類多樣,尤其筆畫(huà)眾多,字形結(jié)構(gòu)極端復(fù)雜多變,這些使得對(duì)漢字圖像文的識(shí)別更加困難??茖W(xué)技術(shù)在發(fā)展,生產(chǎn)力在提高,人的需求也在增加,如今評(píng)判一個(gè)OCR產(chǎn)品的優(yōu)劣也不僅僅是識(shí)別精準(zhǔn)度,更包括識(shí)別速度、拒識(shí)率、用戶界面的友好性以及產(chǎn)品的易用程度、穩(wěn)定程度等等。通過(guò)結(jié)合深度學(xué)習(xí)技術(shù),對(duì)模糊不清的低質(zhì)量圖像的識(shí)別是可以實(shí)現(xiàn)的。1.2國(guó)內(nèi)外研究歷史自從1929年OCR概念被提出以后,印刷體字體識(shí)別是首先被研究的,60年代IBM公司公開(kāi)了OCR產(chǎn)品——IBMl287,即首款OCR技術(shù)產(chǎn)品問(wèn)世以后,經(jīng)過(guò)不斷的技術(shù)革新,算法變換,傳統(tǒng)的基于圖像處理和統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法分辨率和識(shí)別率也大大提升。初期的OCR技術(shù)主要研究數(shù)字和字母,且被運(yùn)用于郵政編碼、票據(jù)、身份證、駕駛證等簡(jiǎn)單的印刷文本場(chǎng)景識(shí)別。目前,隨著技術(shù)的快步革新,以及掃描媒介的多樣化和推廣,手寫(xiě)字體的識(shí)別也取得了令人矚目的成就。文本檢測(cè)框架DetectingTextinNaturalImagewithConnectionistTextProposalNetwork結(jié)合CNN和LSTM,用于復(fù)雜場(chǎng)景的文本檢測(cè),效果良好,是目前比較熱門的、成熟的檢測(cè)框架,美中不足的是效率不高。Pixel-Anchor是結(jié)合anchor-based和pixel-based的優(yōu)點(diǎn)提出的框架,雖然框架創(chuàng)新性不高,但是想法新穎,并且能夠良好檢測(cè)長(zhǎng)行的中文。RARE由空間變形網(wǎng)絡(luò)和序列識(shí)別網(wǎng)絡(luò)組成,適合低質(zhì)量的圖像文本檢測(cè),例如文字扭曲,紙張變形。FOTS是端到端的集成檢測(cè),計(jì)算速度是其顯著優(yōu)點(diǎn),同時(shí)學(xué)習(xí)效率也更高。中文識(shí)別起步較晚,并且由于漢字字形與由字母組成的英文、法文等不同,漢字字形各異,組織結(jié)構(gòu)復(fù)雜,機(jī)器尋求其中的規(guī)律比較困難,常常會(huì)因?yàn)槠圆渴壮霈F(xiàn)切分錯(cuò)誤,要精準(zhǔn)地識(shí)別并不容易,可以說(shuō)是相當(dāng)有挑戰(zhàn)性的。隨著信息化水平不斷的提升,以圖像為主的多媒體信息迅速成為重要的信息傳遞媒介,圖像中的文字?jǐn)?shù)據(jù)包含豐富的語(yǔ)義信息與分析價(jià)值。1986年,國(guó)家863計(jì)劃信息領(lǐng)域課題組織了清華大學(xué)、北京信息工程學(xué)院、沈陽(yáng)自動(dòng)化所三家單位聯(lián)合進(jìn)行中文OCR軟件的開(kāi)發(fā)工作。至1989年,清華大學(xué)率先推出了國(guó)內(nèi)第一套中文OCR軟件--清華文通TH-OCR1.0版,至此中文OCR正式從實(shí)驗(yàn)室走向了市場(chǎng)。而在接下來(lái)的三年,我國(guó)的漢字識(shí)別技術(shù)成果呈井噴式爆發(fā),多個(gè)單位對(duì)印刷體漢字進(jìn)行了多次檢測(cè)識(shí)別,這些漢字字體包括了fangzheng_fangsong,fangzheng_heti,fangzheng_kaiti,其中包括3至5號(hào)字體,識(shí)別速度很快,識(shí)別精準(zhǔn)度高。20世紀(jì)90年代初期,TH-OCR94系統(tǒng)被推出,這個(gè)包含了眾多人心血的系統(tǒng)被認(rèn)為是具有創(chuàng)新型、代表性的,它擁有超前的技術(shù),領(lǐng)先當(dāng)時(shí)的世界水準(zhǔn)。我國(guó)高校開(kāi)始對(duì)漢字識(shí)別的綜合研究發(fā)生于20個(gè)世紀(jì)90年代中后期,在這之后,漢字識(shí)別檢測(cè)技術(shù)在各個(gè)領(lǐng)域全面地取得成績(jī)。其中TH-OCR97是佼佼者,它不僅可以完成印刷圖像多文種多字體混合的識(shí)別輸入,還能完成手寫(xiě)識(shí)別。幾年來(lái),中文OCR技術(shù)不斷更新,市場(chǎng)擴(kuò)大,全球各地都有用戶使用相干產(chǎn)品。第二章基礎(chǔ)理論及相關(guān)技術(shù)2.1卷積和人工神經(jīng)網(wǎng)絡(luò)在泛函分析中,卷積、旋積或摺積是通過(guò)兩個(gè)函數(shù)f和g生成第三個(gè)函數(shù)的一種數(shù)學(xué)算子,表征函數(shù)f與g經(jīng)過(guò)翻轉(zhuǎn)和平移的重疊部分函數(shù)值乘積對(duì)重疊長(zhǎng)度的積分。卷積運(yùn)算是卷積神經(jīng)網(wǎng)絡(luò)中的核心,相當(dāng)于圖像處理中的“濾波器運(yùn)算”。對(duì)于一個(gè)mxn大小的卷積核W=w11w12…w1nw21其對(duì)某一原圖像進(jìn)行卷積運(yùn)算的過(guò)程為:卷積核中的每一個(gè)權(quán)值w分別和覆蓋的原圖像中所對(duì)應(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)元的樹(shù)突,它的作用就是輸入信息,另外,就像樹(shù)突有多個(gè)一樣,輸入的信息也可以是來(lái)自前一層的神經(jīng)元;線性計(jì)算和激活函數(shù)相當(dāng)于胞體,他是一種計(jì)算機(jī)制,決定是否激活從輸入層輸入的信息;顯而易見(jiàn)的,輸出層相當(dāng)于神經(jīng)元的軸突,他負(fù)責(zé)傳遞上一層的信息給下一層。單個(gè)的神經(jīng)元只能做簡(jiǎn)單的數(shù)學(xué)運(yùn)算,異運(yùn)算和或運(yùn)算是無(wú)法進(jìn)行的,而大量的神經(jīng)元組成的人工神經(jīng)網(wǎng)絡(luò)就能解決這個(gè)問(wèn)題。我們假設(shè)對(duì)輸入神經(jīng)元p1,p2,p3,…,pn加權(quán)求和,對(duì)以上操作后的式子施加函數(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ò)的輸出。值得注意的是,并不是說(shuō)卷積層的層數(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ò),對(duì)處理大型圖像有優(yōu)秀的能力,在計(jì)算機(jī)視覺(jué)領(lǐng)域有廣泛應(yīng)用。如場(chǎng)景識(shí)別,圖像特征提取。卷積神經(jīng)網(wǎng)絡(luò)根據(jù)動(dòng)物地視覺(jué)系統(tǒng)研究的,如S層對(duì)應(yīng)感受野,C則對(duì)應(yīng)就接收和回應(yīng)。卷積神經(jīng)網(wǎng)絡(luò)一開(kāi)始被應(yīng)用于語(yǔ)音識(shí)別,當(dāng)平移不變?nèi)斯ど窠?jīng)網(wǎng)絡(luò)出現(xiàn)后,開(kāi)始在醫(yī)學(xué)領(lǐng)域應(yīng)用,同時(shí)嘗試著結(jié)合計(jì)算機(jī)視覺(jué)問(wèn)題以期得到更廣泛的應(yīng)用。1998年,LeNet-5在手寫(xiě)數(shù)字識(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)會(huì)對(duì)圖像做一個(gè)簡(jiǎn)單預(yù)處理,首先式去均值化,去均值能夠把數(shù)據(jù)樣本貼合坐標(biāo),圍繞坐標(biāo)原點(diǎn)分布,避免了過(guò)擬。為了提高數(shù)據(jù)提取簡(jiǎn)便度,可以進(jìn)行把數(shù)據(jù)變成(0,1)之間的小數(shù)。卷積層(hiddenlayer)可由多個(gè)卷積核組成,有多少圖像輸入通道就有多少卷積核,對(duì)他們進(jìn)行點(diǎn)積累加可以得到一張功能圖。舉個(gè)例子,我們把通過(guò)三個(gè)通道得到的三張功能圖的對(duì)應(yīng)的位置相加,就能得到一張新卷積操作的功能圖。一般來(lái)說(shuō),圖片有紅、綠、藍(lán)三個(gè)通道。卷積層的計(jì)算是圖像矩陣與卷積核點(diǎn)積的過(guò)程,即濾波。圖(2-2)圖(2-3)激活函數(shù)可以解決線性不可分的問(wèn)題,如圖(2-2),要用一條直線分開(kāi)圓形和三角形,明顯是做不到的,用激活函數(shù)加入非線性因素,這時(shí)候就可以使用激活函數(shù)來(lái)使數(shù)據(jù)可分,如圖(2-3)。激活函數(shù)再神經(jīng)網(wǎng)絡(luò)中尤其重要,如果沒(méi)有激活函數(shù),那么線性不管經(jīng)過(guò)多少層都仍然是線性。圖(2-4)池化就是取區(qū)域平均或最大,假設(shè)4x4的數(shù)據(jù)表,分成4個(gè)2x2的區(qū)域,分別取其中的最大數(shù),得到的新的2x2數(shù)據(jù)表,這個(gè)過(guò)程就是池化。如上圖圖(2-4),取左邊圖表左上的最大數(shù)6,左下的最大數(shù)3,右上的最大數(shù)8和右下的最大數(shù)4,組合在一起即右邊圖表。所謂的池化層特征不變性就是尺度不變性,當(dāng)一張動(dòng)物的圖像被進(jìn)行壓縮時(shí),我們?nèi)匀荒芸吹贸瞿鞘鞘裁?,這是因?yàn)閳D像壓縮不會(huì)刪除重要的特征,而我們判斷物體是什么就只根據(jù)其重要特征進(jìn)行的。一張圖像可以包含非常豐富的信息,有繁多的特征,但是有一些信息是不重要的,或者重復(fù)的去除這一類信息就是池化層特征降維。全連接層的作用是實(shí)現(xiàn)分類,全連接層之前是在做特征提取,而這一層就是把被找到圖像的各個(gè)特征組合在一起,然后尋找最符合要求的類,這就是全連接層。值得一提的是這一層的參數(shù)很多,可占整個(gè)網(wǎng)絡(luò)的80%。什么是CNN把握?qǐng)D像局部特征?我們假設(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)只連接前一層的局部圖像輸入。把握局部特征會(huì)減少權(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)值列表的長(zhǎng)度是1w[].shape元素的維度權(quán)值列表的長(zhǎng)度是1。唯一的元素的維度是(32,32,3,3)。第一個(gè)32對(duì)應(yīng)著32個(gè)濾波器。后面的32*3*3是一個(gè)三維離散濾波器,取一個(gè)3*3區(qū)域,區(qū)域來(lái)自輸入的32個(gè)通道,把它們放在一起濾,得到的通道是28*28,因此第二層hiddenlayer仍然輸出32個(gè)通道,濾波器把輸入的32個(gè)通道放一起過(guò)濾出每一個(gè)通道。1.計(jì)算卷積:convolve()2.調(diào)整像素:np.uint8()3.保存濾波后的圖像:Image.fromarray().save()4.建立模型:model=Sequential()5.添加卷積層,有濾波器:model.add(Convolution2D())2.3OCR流程簡(jiǎn)單來(lái)說(shuō),OCR就是把圖像輸入電子產(chǎn)品通過(guò)掃描后,由計(jì)算機(jī)輸出圖像內(nèi)容。計(jì)算機(jī)處理信息的方式不像自然界那么靈活,它只有0和1,圖像文本信息也不例外,他的數(shù)據(jù)一樣通過(guò)0、1進(jìn)行記錄識(shí)別。關(guān)于識(shí)別方法,OCR識(shí)別檢測(cè)圖像文本上的信息,主要有特征提取法和模式匹配法兩種。特征提取識(shí)別法流程可以分為:1.對(duì)樣本生成特征向量矩陣2.計(jì)算每一列的特征的平均值,和每一維度進(jìn)行相應(yīng)的減法運(yùn)算3.特征用數(shù)據(jù)表示,計(jì)算他們的協(xié)方差矩陣4.針對(duì)協(xié)方差矩陣進(jìn)行特征值和特征向量的計(jì)算5.對(duì)特征值排序6.取出前n個(gè)特征向量和特征值并回退。因此OCR特征提取就是將每個(gè)字符分解成組成字符的特征,接著將字符和分解而來(lái)的特征進(jìn)行匹配。這種方法可以滿足漢字字體多樣性的需求。模式匹配識(shí)別法原理很簡(jiǎn)單,是一種暴力易用的方法,遍歷母串,一旦發(fā)現(xiàn)有和字串完全符合的片段即匹配成功。在OCR文本識(shí)別中,則將每一個(gè)字符比較匹配。向系統(tǒng)輸入一張文本頁(yè)圖像,系統(tǒng)會(huì)對(duì)頁(yè)面上的文本朝向進(jìn)行判斷識(shí)別。假如圖像是直接從電子儀器上截屏,那么識(shí)別很容易就能確定行線坐標(biāo),劃分區(qū)域,這是因?yàn)榻仄翀D像水平投影和垂直投影的情況都很理想。但是實(shí)際生活中我們可以發(fā)現(xiàn)所需要識(shí)別的圖像并不是理想的,它可能是傾斜的,可能會(huì)明暗度差,甚至可能還有污漬,因此進(jìn)行圖像預(yù)處理是首先要做的事,預(yù)處理包括圖像去噪和角度矯正。在進(jìn)行角度矯正的工作中,首先要檢測(cè)出圖像的文本范圍,這一步利用Sobel算子進(jìn)行邊緣檢測(cè)。Sobel算子是計(jì)算機(jī)常用的視覺(jué)領(lǐng)域處理方法,圖像中每個(gè)像素的都有四個(gè)灰度值,求它們的加權(quán)差。邊緣檢測(cè)之后用霍夫變換進(jìn)行平空間到極坐標(biāo)空間的轉(zhuǎn)換,圖像上的點(diǎn)會(huì)被分為不同的,屬于孤立的點(diǎn)、連續(xù)的曲線或者連續(xù)的區(qū)域的子集,這一步稱為特征檢測(cè)。最后利用數(shù)學(xué)模型仿射變換旋轉(zhuǎn)圖像。模式匹配識(shí)別法原理很簡(jiǎn)單,是一種暴力易用的方法,遍歷母串,一旦發(fā)現(xiàn)有和字串完全符合的片段即匹配成功。在OCR文本識(shí)別中,則將每一個(gè)字符比較匹配。傳統(tǒng)文字識(shí)別技術(shù)就是在這個(gè)基礎(chǔ)上進(jìn)行的,但是對(duì)于長(zhǎng)行文本,沒(méi)有辦法一下子就識(shí)別出來(lái),只能切分文本行成數(shù)個(gè)單字,再對(duì)它們進(jìn)行逐個(gè)識(shí)別。流程如下圖圖(1-2.1)圖(1-2.1)2.3.1預(yù)處理我們向系統(tǒng)輸入的圖像如果是直接從電子儀器上截屏,那么識(shí)別很容易就能確定行線坐標(biāo),劃分區(qū)域并標(biāo)定各部分屬性,這是因?yàn)榻仄翀D像水平投影和垂直投影的情況都很理想。但假如我們拍攝下來(lái)的圖像角度傾斜,那么完成行列劃分就需要先將圖片角度矯正。不僅如此,因?yàn)榧垙埖暮癖〕潭取㈩伾?、透光度、反光度、平滑度和和字跡的清晰程度等等因素,都會(huì)造成識(shí)別的精準(zhǔn)率。因此我們要先對(duì)這些因素進(jìn)行排除處理,即去噪,然后再開(kāi)始識(shí)別檢測(cè)。上訴的內(nèi)容都要在圖像文本識(shí)別之前進(jìn)行。預(yù)處理的工作有灰度化,二值化,版面矯正等等?;叶然菫榱颂幚韴D像的亮度,它不包含其他信息。舉個(gè)例子,把輸入的圖像進(jìn)行灰度化處理,那么計(jì)算機(jī)會(huì)把圖像的三個(gè)顏色通道的值設(shè)為相等,不管你的圖像是蒙娜麗莎還是乘法口訣表,計(jì)算機(jī)都不會(huì)處理。彩色的圖像一定要經(jīng)過(guò)二值化,它能夠大大減少圖像的數(shù)據(jù)量,在圖片文本識(shí)別中,二值化能夠凸顯輪廓,從而更好識(shí)別輪廓。用霍夫變換進(jìn)行平空間到極坐標(biāo)空間的轉(zhuǎn)換,從而進(jìn)行傾斜矯正。輸入:圖片路徑過(guò)程:讀取圖像:cv2.imread(圖片)非局部平均去噪:cv2.fastNlMeansDenoisingColored()轉(zhuǎn)灰度圖:cv2.cvtColor(img_c,cv2.COLOR_BGR2GRAY)二值化:cv2.threshold(()cv2.THRESH_OTSU+cv2.THRESH_BINARY)邊緣檢測(cè):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í)別技術(shù)到現(xiàn)在,都沒(méi)有一個(gè)能得到所有人認(rèn)可的解決方案。以下是本次實(shí)驗(yàn)計(jì)算輪廓和切割漢字用到的部分函數(shù):Non-LocalMeans():處理自然場(chǎng)景中圖片信息冗雜的問(wèn)題,能夠較好地去噪cv2.findContours():接受兩個(gè)參數(shù),對(duì)輪廓進(jìn)行檢測(cè),保留終點(diǎn)坐標(biāo)。cv2.drawContours():是輪廓填充函數(shù),里面可以有多個(gè)函數(shù),能夠指明要繪制輪廓地圖像,輪廓個(gè)數(shù),畫(huà)第幾個(gè),輪廓顏色等信息cv2.RETR_EXTERNAL:表示只檢測(cè)外輪廓cv2.CHAIN_APPROX_SIMPLE:壓縮各個(gè)方向的元素,只保留終點(diǎn)坐標(biāo)圖(1-3.3)圖(1-3.4)圖(1-3.5)2.3.3字符識(shí)別文本識(shí)別讓計(jì)算機(jī)“認(rèn)字”的關(guān)鍵,我們都知道模式匹配識(shí)別法原理很簡(jiǎn)單,是一種暴力易用的方法,遍歷母串,一旦發(fā)現(xiàn)有和字串完全符合的片段即匹配成功。在OCR文本識(shí)別中,則將每一個(gè)字符比較匹配。傳統(tǒng)文字識(shí)別技術(shù)就是在這個(gè)基礎(chǔ)上進(jìn)行的,但是對(duì)于長(zhǎng)行文本,沒(méi)有辦法一下子就識(shí)別出來(lái),只能切分文本行成數(shù)個(gè)單字,再對(duì)它們進(jìn)行逐個(gè)識(shí)別。由于漢字字形與由字母組成的英文、法文等不同,漢字字形各異,組織結(jié)構(gòu)復(fù)雜,機(jī)器尋求其中的規(guī)律比較困難,常常會(huì)因?yàn)槠圆渴壮霈F(xiàn)切分錯(cuò)誤,要精準(zhǔn)地識(shí)別并不容易。舉個(gè)例子,我們要識(shí)別“好”字,但是實(shí)際結(jié)果出來(lái),發(fā)現(xiàn)被切成“女”字和“子”字,為了解決這一問(wèn)題,我們需要設(shè)計(jì)一個(gè)損失函數(shù)。第三章系統(tǒng)設(shè)計(jì)與實(shí)驗(yàn)分析3.1建立中文字體庫(kù)在本文中,我們只需要對(duì)印刷體的中文進(jìn)行識(shí)別,我們選用模板匹配的方法,因此需要生成一個(gè)有足夠量的中文字體圖片庫(kù),其中包括常用漢字、常見(jiàn)字體的圖片。字體庫(kù)的圖片內(nèi)容自己決定,可以選擇多種字體,可以選擇字體的旋轉(zhuǎn)角度。但是并不是說(shuō)圖片庫(kù)越大越好,圖片數(shù)據(jù)大固然可以提高識(shí)別率,但同時(shí)也會(huì)增加匹配時(shí)間。3.1.1生成漢字映射表首先確定所需要的漢字,這里選用了常見(jiàn)的漢字,寫(xiě)入空白的txt文件中,建立字典,每一個(gè)漢字對(duì)應(yīng)相應(yīng)的ID,生成映射表利用pickle.dump讀入內(nèi)存,下面附上部分代碼:輸入:收集的漢字建立字典:d1=dict(zip('',range()))將字典寫(xiě)入文本:withopen("my.txt","wb")asmy:讀入內(nèi)存:pickle.dump()讀入label:for()inlabel_dict.items()得到漢字映射表:label_dict圖(1-1)圖(1-2)圖(1-1)是漢字對(duì)應(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è)定我們想要的圖片尺寸以及圖片顏色。接下來(lái)寫(xiě)兩個(gè)循環(huán),內(nèi)層循環(huán)是函子列表,外層循環(huán)是字體列表,按比例分開(kāi)訓(xùn)練集和測(cè)試集。在讀取漢字文件txt之后,我們定義好輸入?yún)?shù),定義用argparse包,源碼如下(部分):1.漢字圖像存儲(chǔ)目錄: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)練集和測(cè)試集:parser.add_argument('--test_ratio',…)9.打亂圖像列表:random.shuffle代碼運(yùn)行之后會(huì)生成一個(gè)訓(xùn)練集,一個(gè)測(cè)試集。圖(1-1.1)圖(1-1.2)圖(1-1.1)和圖(1-1.2)分別是生成的mingliu字體圖片和仿宋楷體圖片。接下來(lái)我們可以對(duì)圖片進(jìn)行一些處理,對(duì)圖像增強(qiáng),比如說(shuō)增加圖片尺寸,適當(dāng)膨脹,適當(dāng)腐蝕,圖像的膨脹和腐蝕都是建立在黑白像素地基礎(chǔ)上的,能夠把圖片中極小的白色括大,把圖片中極大的白色縮小,使圖像更加合理。3.2圖像處理要識(shí)別的圖像首先要經(jīng)過(guò)處理,不然可能會(huì)因?yàn)榍逦?、反光、角度不正、磨損污漬等原因造成文本切割不成,文字提取失敗。獲得文本行后,需要進(jìn)行單個(gè)字符的切割,將每個(gè)字符切割出來(lái)后以便于后續(xù)字符識(shí)別。輸入:圖片路徑1.讀取圖像:cv2.imread(圖片)2.灰度化轉(zhuǎn)換:cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)3.二值化:cv2.threshold(()cv2.THRESH_OTSU+cv2.THRESH_BINARY)4.邊緣檢測(cè):cv2.Sobel(gray,cv2.CV_8U,1,0,ksize=3)5.求直線斜率:hufu=binary.astype(np.uint86.6.旋轉(zhuǎn)圖像:cv2.warpAffine得到字符后,我們首先要對(duì)圖像進(jìn)行預(yù)處理,包括圖像去噪、二值化、圖像邊緣檢測(cè)和切割、圖像角度矯正和統(tǒng)一分辨率。減弱或者去除不需要的信息,在進(jìn)行角度矯正的工作中,首先要檢測(cè)出圖像的文本范圍,邊緣檢測(cè)之后用霍夫變換進(jìn)行平空間到極坐標(biāo)空間的轉(zhuǎn)換,最后利用數(shù)學(xué)模型仿射變換旋轉(zhuǎn)圖像。3.3文字識(shí)別像神經(jīng)網(wǎng)絡(luò)輸入圖片樣本之后,經(jīng)過(guò)卷積層的處理后,輸出一個(gè)大于0小于1的數(shù),如果輸出的數(shù)值離1越近,那就證明和字符越接近。本次實(shí)驗(yàn)所使用的深度學(xué)習(xí)框架是Tensorflow,我們建立一個(gè)基本的網(wǎng)絡(luò)做文字識(shí)別。導(dǎo)入keras相關(guān)庫(kù):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)行漢字識(shí)別,當(dāng)然在此之前還要對(duì)每張圖片尺寸進(jìn)行標(biāo)準(zhǔn)化和歸一化。我們把要識(shí)別的圖片按照順序進(jìn)行編號(hào),依次放入文件夾中,識(shí)別時(shí)只需要讀取文件夾路徑,對(duì)里面內(nèi)容逐一識(shí)別。圖(1-3.3)圖(1-3.4)圖(1-3.3)是單字切分,圖(1-3.4)是測(cè)試結(jié)果。廣東東軟學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第四章實(shí)驗(yàn)研究總結(jié)4.1實(shí)驗(yàn)研究總結(jié)自從1929年德國(guó)科學(xué)家提出OCR的概念,各個(gè)國(guó)家就開(kāi)始對(duì)此展開(kāi)研究,OCR全稱OpticalCharacterRecognition,即光學(xué)字符識(shí)別。一開(kāi)始專家們并沒(méi)有對(duì)字母、單詞、文字、字形等進(jìn)行研究,就像電話還沒(méi)有被發(fā)明之前一樣,人們覺(jué)得這是天方夜譚,研究要從基礎(chǔ)開(kāi)始,因此,但是的人們是從最簡(jiǎn)單的10個(gè)數(shù)字(0-9)開(kāi)始的。圖片在被檢測(cè)之前要經(jīng)過(guò)版面分析和預(yù)處理,處理過(guò)的圖片會(huì)被切成大小一樣的單字,然后再開(kāi)始匹配,識(shí)別使用的是基于Tensorflow的模板匹配法,結(jié)合卷積神經(jīng)網(wǎng)絡(luò),完成實(shí)驗(yàn)。在本次實(shí)驗(yàn)中,一開(kāi)始就在漢字字體圖片庫(kù)上遇到難題。起初我使用的是python庫(kù)中的pygame,生成由Unicode的0x4E00到0x9FA5的圖片庫(kù),生成的結(jié)果當(dāng)然是有兩萬(wàn)多張漢字圖片,并且只是一種字體的。這不是我想要的結(jié)果

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論