軟件工程基于深度學習的圖像文本切分與識別_第1頁
軟件工程基于深度學習的圖像文本切分與識別_第2頁
軟件工程基于深度學習的圖像文本切分與識別_第3頁
軟件工程基于深度學習的圖像文本切分與識別_第4頁
軟件工程基于深度學習的圖像文本切分與識別_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論