




已閱讀5頁,還剩93頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第 9章 光學字符識別技術(上) 光學字符識別技術是計算機自動、高速地辨別紙上的文字,并將其轉化為可編輯的文本的一項實用技術。它是新一代計算機智能接口的一個重要組成部分,也是模式識別領域的一個重要分支。文字識別技術的研究涉及圖像處理、人工智能、形式語言、自動機、統(tǒng)計決策理論、模糊數學、信息論、計算機科學、語言文字學等學科,它是介于基礎研究和應用研究之間的一門綜合性學科。 隨著計算機技術的推廣應用,尤其是互聯網的日益普及,人類越來越多地依賴計算機獲得各種信息,大量的信息處理工作也都轉移到計算機上進行。在日常生活和工作中,存在著大量的文字信息處理問題,因而將文字信息快速輸入計算機的要求就變得非常迫切?,F代社會的信息量空前豐富,其中絕大部分信息又是以印刷體的形式進行保存和傳播的,這使得以鍵盤輸入為主要手段的計算機輸入設備變得相形見絀,輸入速度低已經成為信息進入計算機系統(tǒng)的主要瓶頸,影響著整個系統(tǒng)的效率。因此,要求有一種能將文字信息高速、自動地輸入計算機的方法。目前,文字輸入方法主要有鍵盤輸入、手寫識別、語音輸入和機器自動識別輸入等。人工鍵盤輸入方法需要經過一定時間的學習訓練才能掌握;手寫識別和語音輸入雖然簡單便捷,但其輸入速度不高,對于大量已有的文檔資料,采用這些方法要花費大量的人力和時間。因此,能夠實現文字信息高速、自動輸入的只能是計算機自動識別技術,即光學字符識別(OCR)技術。 目前文字識別技術已經廣泛地應用到了各個領域中。它作為計算機智能接口的重要組成部分,在信息處理領域中可以大大提高計算機的使用效率,是辦公自動化、新聞出版、計算機翻譯等領域中最理想的輸入方式;將龐大的文本圖像壓縮成機器內碼可以節(jié)省大量的存儲空間。 本章和第 10 章主要介紹光學字符識別中的一些關鍵技術,包括預處理、字符分割、特征提取、分類器設計以及后處理等。另外,會給出一些相關的算法代碼。當然給出的代碼只是一個雛形,只要讀者在這個框架的基礎上作修改,就可以構建自己的應用系統(tǒng)。 本章首先介紹了預處理技術及特征提取技術,其他技術將在第 10 章作詳細介紹。 9.1 概述 這一小節(jié)從總體上介紹光學字符識別技術。 9.1.1 文字識別系統(tǒng)的構成 印刷體文字識別的原始圖像是通過掃描儀、CCD 器件或傳真機等獲得的二維圖像,它可以是灰度(Grayscale)或二值(Binary)圖像,其識別過程如圖 9-1 所示,它包括 6 個組成部分。 1. 預處理 預處理包括對原始圖像的去噪、傾斜校正等。若輸入圖像不是二值圖像,首先要對其進行二值化。 2. 版面分析 對文本圖像進行總體分析,標識出文本段落、圖像、表格區(qū)域;對文本區(qū)域進行識別處理,對表格區(qū)域進行專用的表格分析及識別處理,對圖像區(qū)域進行壓縮或簡單存儲。 3. 字符切割 先將文本圖像切割為行(或列),再從圖像行(或列)中分離出單個字符。當圖像的質量較差時,不易進行簡單的分割,常與識別過程相結合。隨著單字識別率的提高,切割錯誤在所有錯誤中所占的比重不斷上升,怎樣實現字符的正確分割成了一個需要認真解決的問題。 4. 特征提取 從單個字符圖像上提取統(tǒng)計特征或結構特征,是整個環(huán)節(jié)中最重要的,所提取特征的穩(wěn)定性及有效性直接決定了識別的性能。在提取特征前常常先進行歸一化、細化等處理。 5. 單字識別 從學習得到的特征庫中找到與待識字符相似度最高的字符。為了提高識別速度,常采用樹分類器。 6. 后處理 對單字識別的結果,利用詞義、詞頻、語義等先驗知識進行識別結果的確認或糾錯。 9.1.2 文字識別技術 光學文字識別(OCR)技術可分為印刷體文字識別和手寫體文字識別兩大類,后者又可分為聯機(on-line)手寫體識別和脫機(off-line)手寫體識別。從識別的難度來看,多體印刷體識別難于單體印刷體識別,手寫體識別難于印刷體識別,而脫機手寫體識別又遠遠難于聯機手寫體識別。 識別器是整個系統(tǒng)的核心,識別器的結構通常如圖 9-2 所示。 字符的模式表達形式和相應的字典形成方法有多種,每種形式又可以選擇不同的特征,每種特征又有不同的抽取方法,這就使得判別方法和準則以及所用的數學工具不同,形成了種類繁多、形式特別的文字識別方法。用于文字識別的模式識別方法可以大致分為統(tǒng)計模式識別、結構模式識別和人工神經網絡識別。1. 統(tǒng)計模式識別方法 統(tǒng)計模式識別方法是先提取待識別模式的的一組統(tǒng)計特征,然后按照一定準則所確定的決策函數進行分類判別。將字符點陣看作一個整體,其所用的特征是從這個整體上經過大量的統(tǒng)計而得到的。統(tǒng)計特征抗干擾能力強,匹配與分類的算法簡單,易于實現,但不足之處在于細分能力較弱,區(qū)分相似字的能力差。 在統(tǒng)計模式識別中,通常用特征矢量間的距離和相似度進行判別,其計算公式如下: 均方誤差距離: 其他的判別方法有復合相似度、混合相似度等。為了提高單字匹配的準確度,還有一種類似于K-L 變換的特征提取方法,以及由此給出的多重相似度,它考慮了輸入模式的畸變,抗干擾能力強,但計算量很大。 2. 結構模式識別方法 結構模式識別方法一般需要先抽取筆段或基本筆畫作為基元,由這些基元構成部件(子模式),再由部件的組合來描述字符(模式),最后利用形式語言及自動機理論進行文法推斷,即識別。然而,從字符圖像中抽取筆畫等基元比較困難,為了抽取筆畫,通常需要對原始點陣圖像進行細化處理,而且容易產生偽筆畫段,給準確抽取基元造成了困難。有些研究人員采用字符輪廓結構信息作為特征,這一方案的識別結果優(yōu)于抽取基元的方法,但識別方法需要進行松弛迭代匹配,耗時嚴重,而且對于筆畫較模糊的字符圖像,抽取內輪廓會遇到極大困難,外輪廓的抽取也不太穩(wěn)定。也有些學者采用抽取字符圖像中的關鍵特征點來描述字符,但是特征點的抽取易受噪聲點、筆畫的粘連與斷裂等影響。 統(tǒng)計方法具有良好的魯棒性和較好的抗干擾能力,它采用多維特征值累加的辦法,把局部噪聲和微小畸變淹沒在最后的累加和里,但是,可以用來區(qū)分“敏感部位”的差異也隨之消失,因此區(qū)分相似字的能力較差;而結構方法對結構特征較敏感,區(qū)分相似字的能力較強,因此,可以將兩種方法結合起來使用,取長補短,網格化特征就是其中一種方法。將字符圖像劃分為若干區(qū)域,稱之為“網格”,在每一個網格內提取各種特征,特征的統(tǒng)計以網格為單位,即使個別點的統(tǒng)計有誤差也不會造成大的影響,增強了特征的抗干擾性。 3. 人工神經網絡 人工神經網絡(ANN,Artificial Neural Network)是一種模擬人腦神經元細胞的網絡結構,它是由大量簡單的基本元件神經元相互連接成的自適應非線性動態(tài)系統(tǒng)。ANN 具有一定的自適應的學習與組織能力,組成網絡的各個“細胞”可以并行工作,并通過調整“細胞”間的連接系數完成分類、識別等復雜的功能。不同于傳統(tǒng)的模式識別方法,在這種情況下,神經網絡所“提取”的特征并無明顯的物理含義,而是存儲在神經物理中各個神經元的連接之中,省去了由人來決定特征提取的方法與實現過程。從這個意義上來說,ANN 提供了一種“字符自動識別”的可能性。此外,ANN 分類器是一種非線性的分類器,它可以提供復雜的類間分界面,這也為解決復雜分類問題提供了一種可能的解決方式。 9.1.3 印刷體漢字識別 漢字識別是模式識別的一個重要分支,也是文字識別領域最為困難的問題之一。自 20 世紀 70 年代以來,日本學者在漢字識別方面做了大量工作,提出了多種識別方法,先后研制了能識別 2000/4000個印刷體漢字和限制性手寫體漢字的裝置。1984 年日本研制成多體印刷漢字識別裝置,經后處理后識別率可達 99.98%,識別速度大于 100 字/秒,代表了當時印刷體漢字識別的最好水平,但需要采用專用的硬件設備,價格昂貴,難以推廣。我國從 70 年代末開始就進行印刷體和手寫印刷體漢字識別的原理性研究,10 余年來,取得了很大進展,探索出許多新方法。自 1986 年以來,各種漢字識別軟件與系統(tǒng)大量涌現,已進入實用階段。系統(tǒng)支持簡 /繁體漢字識別,解決了多字號、多字體以及中英文混排的識別問題,可以進行簡單的版面分析,同時漢字識別率在樣本質量較好的情況下可達 98%以上。 在漢字識別中,目前常見的識別方法有以下兩種。 1. 統(tǒng)計識別方法 (1)模板匹配法 1966 年,IBM 公司的 Casey 和 Nagy 發(fā)表了第一篇關于漢字識別的論文,采用模板匹配法識別了一千個印刷體漢字,只能識別單一字體。模板匹配直接以像素為特征,不需要另外提取特征,其優(yōu)點是識別算法與文字種類無關,且抗隨機噪聲,但其缺點是對伸縮、平移、旋轉等變形敏感,對切分等前處理要求過高,且識別運算量大,目前使用的不多。 (2)筆畫復雜性指數(Complexity Index) 筆畫復雜性指數是指文字筆畫的線段密度,其定義如下:cx、cy 分別反應了橫向和縱向的筆畫復雜性,橫多的 cx 大,豎多的 cy 大。筆畫復雜性指數與漢字的位移無關,受字體和字號的影響較小,但易受筆畫斷裂和粘連的影響,且其分類能力較差,常與另一種粗分類方法“四邊碼”聯用。 (3)四邊碼(Four-side Code) 四邊碼是在漢字點陣圖的四周各取一條帶,計算其中的文字像素點數,并將它分成四級,構成一個四元組。 由于漢字邊框不但含有豐富的結構信息,而且邊框部分筆畫一般較少,不易粘連,抗干擾能力強,但對漢字的位移和旋轉比較敏感,與筆畫復雜性指數正好形成互補。 (4)特征點法 特征點法的主要思想是利用字符點陣中一些有代表性的黑點(筆畫)、白點(背景)作為特征來區(qū)分不同的字符。特征點包括筆畫骨架線的端點、折點、歧點和交點,漢字的背景也含有一定的區(qū)別于其他漢字的信息,選擇若干背景點作為特征點,有利于提高系統(tǒng)的抗干擾能力。其特點是能夠大大壓縮特征庫的容量,對于內部筆畫粘連字符,其識別的適應性較強、直觀性好,但不易表示為矢量形式,匹配難度大,不適合作為粗分類的特征。 (5)變換特征法 對字符圖像進行變換后,大大降低了圖像特征的維數。由于直接求二維圖像的變換系數的計算量很大,通常先采用投影法將其變?yōu)橐痪S數據,常用的變換是二進制變換(如 Walsh、Hardama 變換、R變換),其計算雖然簡單,但變換后的特征沒有明顯的物理意義。而更復雜的變換如 K-L 變換、Fourier變換等運算復雜度較高,K-L 變換雖然從最小均方誤差角度來說是最佳的,但是運算量太大,不實用。由于這些變換不是旋轉不變的,因此對于傾斜變形的字符的識別會有較大的偏差,而且變換特征與字體的關系十分密切,只能用于單體漢字識別。 (6)筆段特征法 漢字是由筆畫組成的,而筆畫又由筆段組成,筆段可近似為一定方向、長度和寬度的矩形段。利用筆段及筆段之間的關系組成的特征對漢字進行識別,受字體和字號的影響小,對于多體漢字的識別,獲得了良好的效果。其缺點是筆段的提取會較為困難,匹配的難度大,抗內部筆畫斷裂或粘連能力差。 (7)包含配選法 許多漢字都有相同的偏旁、部首,由此可將漢字進行粗分類。包含選配法就是用偏旁、部首的骨架做成標準模板,分類時將輸入漢字與各標準模板相與,如結果與標準模板相同,則表明輸入的漢字含有該偏旁、部首,即可判別出它所屬的類別。包含配選法的分類速度快,存儲量小,缺點是容易受到文字筆畫絕對位置移動的影響。 還有許多種不同的統(tǒng)計特征,如粗網格特征(Gross Meshed Feature)、筆畫序列(Stroke)、脫殼透視法、差筆畫法(Differential Stroke)、平均線密度(Average line density)、圖描述法、幾何矩特征(Geometric Moment)等,這里不一一介紹。 2. 漢字識別中的結構識別方法 主要包括抽取筆畫法、松弛匹配法和非線性匹配法等。 (1)抽取筆畫法 抽取筆畫法是利用漢字由筆畫所構成的特點進行識別,它利用漢字的結構信息來進行漢字的聯機識別,在印刷體和脫機手寫識別中,由于筆畫提取的困難,結果不是很理想。 (2)松弛匹配法 松弛匹配法是一種基于全局特征的匹配方法,它對輸入漢字作多邊形近似,抽取邊界線段,將這些邊界線段組成臨近線段表,然后用松弛匹配操作,完成邊與邊的匹配。這種方法利用彈性吸收漢字的變形,一個字只用一個樣本。其缺點是操作速度較慢,計算量大。 (3)非線性匹配法 非線性匹配法是由 Tsukumo 等提出的,用以解決字形的位移、筆畫的變形等現象。此方法試圖克服從圖形中正確抽取筆畫的困難,以提高正確判別的能力。 目前,對有關人工神經網絡漢字識別方法也進行了一系列的研究,如漢字嵌套層次特征和嵌套分層識別方法。但是,對于像漢字識別這樣超多類的分類問題,ANN 的規(guī)模過大,結構也很復雜,運算復雜度太大,還遠未達到實用的程度。 在分類器的設計上,由于漢字集合數量大,為了提高識別速度常采用多級分類方法,其中最為廣泛采用的是兩級分類器,待識漢字輸入識別器時,先根據某一準則判定它屬于整個漢字集合的某一子集,然后再將它與該子集中的漢字進行匹配和識別。前一級叫預分類或粗分類,后一級叫單字識別。由于每個子集的字數較少,因而可以減少逐字比較、匹配的時間。為進一步提高速度,可采用多級分類器??梢宰C明在假設漢字集中所有的漢字出現的概率相同,且分類過程的每一級相互獨立的情況下,能縮短漢字集均勻分類的特征對應的平均分類時間;且分類的最佳子類數為對應平均識別時間為9.1.4 存在的問題 雖然文字識別(OCR)軟件已經得到廣泛的應用,但現有的 OCR 軟件仍有很多不盡人意之處。 首先,抗干擾能力不強,對于噪聲、缺損、變形及切分錯誤比較敏感,對識別結果不能正確給出置信度??垢蓴_能力(魯棒性)是 OCR 系統(tǒng)的重要性能,提高抗干擾能力可以使 OCR 系統(tǒng)能夠識別質量較差的印刷文字,提高系統(tǒng)的可靠性。當然,提高抗干擾能力是有限度的,由于人具有根據語意推測文字的能力,單靠字型信息使 OCR 系統(tǒng)達到與人相同水平的識別能力是不可能的,重要的是讓OCR 系統(tǒng)能夠正確判斷自身識別結果的置信度,如果能做到這一點,即使識別失敗,系統(tǒng)也可以將不能識別的文字提交給用戶,由用戶進行修改,或移交其他功能模塊進行處理。雖然在現有的 OCR 系統(tǒng)中,都具備“拒識”和可疑字標記的能力,但由于給出的置信度并不正確,因此利用價值不大。 其次,在用戶界面和自動化程度方面還有待提高,如實現版面的自動分析與自動恢復,將印刷文本材料上面的各種插圖、表格、橫豎文字等自動加以區(qū)分,對于識別結果能夠保持原來的排版形式、字體信息、表格和插入的圖形圖像,使用戶能夠在 Word、北大方正等排版軟件中直接修改。實現印刷表格的自動錄入,自動進行框線檢測、欄目切分,直至將各欄目中的內容識別出來后再自動恢復成表格形式。 9.2 預處理技術 在進行印刷體漢字識別時,首先將印在紙上的漢字,經光電掃描產生模擬電信號,再通過模數轉換將其轉換為帶灰度值的數字信號并輸入計算機。紙張的薄厚度、潔白度、光潔度、油墨深淺、印刷或書寫質量都要造成字型畸變,產生污點、飛白、斷筆、交連等干擾。輸入設備的分辨率、線性度、光學畸變、量化過程也要產生噪聲。所以,在單個漢字識別之前,要對這幅帶有隨機干擾、噪聲的整版漢字灰度值數字信號進行預處理。 漢字圖像預處理一般包括二值化、行、字切分、平滑化、去噪聲、規(guī)范化和細化(或抽取輪廓)等。這里使用的預處理方法有二值化、行、字切分、平滑化、抽取輪廓等。因為預處理部分在文字識別的整個過程中較靠前,而模式識別部分是在文字圖像經過預處理的基礎上進行的,所以對原始圖形進行預處理后得到的文字圖形的質量直接影響著模式識別的效果。 4719.2.1 二值化 把漢字圖形帶灰度電平的數字信號處理成二值(0、1)的,稱為漢字圖形數字信號二值化。最先得到的原始文字圖形一般為 256 色灰度圖?,F在雖然在某些情況下可以直接得到二值圖,但這通常是掃描儀器用一個固定的閾值(下面將給出說明)進行二值化的結果,效果并不滿意,所以選用由系統(tǒng)進行二值化的方法。 如圖 9-3 所示的文字圖像就是一幅 256 色的灰度圖??梢钥吹轿淖值墓羌懿糠州^黑,但邊緣部分顏色較淺,與背景顏色相近,關鍵是怎樣分離出邊緣與背景。而且有的部分背景噪聲很大,這是因為所掃的資料的反正面都有字,而這在一般的書刊、報紙都是很正常的事。所選擇的二值化應充分注意到這些情況。 下面就介紹二值化方法和理論依據。在這里用 ( , )g i j 表示像素點 ( , )i j 的灰度值,按照文字識別的習慣定義方式,首先將 256 色灰度圖進行規(guī)范化,即 255g = 為最黑, 0g = 為最白(通常的 256 色圖形 0g = 為最黑, 255g = 為最白)。二值化后用 ( , )c i j 表示像素點值, ( , ) 0c i j = 表示背景,即白點;( , ) 1c i j = 表示文字上,即黑點。 漢字二值化的基本要求是,二值化后的圖像能如實地再現原漢字。具體為: (1)筆畫中不出現空白; (2)二值化后的筆畫基本保持原來文字的特征。 二值化的關鍵在于閾值 T 的選取,常用一個形式為三元函數的閾值算子來表示閾值 T。 T = T g ( i , j) , N( i , j ) , ( i , j ) 式中 ( , )N i j 是 ( , )i j 周圍局部灰度特性。 二值化有很多種算法,本章只介紹整體閾值二值化的方法。整體閾值二值化是指對一幅圖像的各個部分都用同一閾值進行二值化,而不考慮圖像局部的情況,即 T=Tg(i,j)。常用的整體閾值的設定方法有以下幾種。 1. 人工設定整體閾值 根據實驗或人的先驗知識,預先給定一個固定的閾值,當 ( , )g i j T 時為文字筆畫,否則為背景。這種方法簡單、易實現、速度快。但是,這種方法既不能根據每幅圖的具體情況修改閾值,又不能將一幅圖中不同位置的不同情況區(qū)別對待。2. 由灰度級直方圖確定整體閾值通常漢字圖形的直方圖如圖 9-4 所示,從圖中可以看出,漢字圖形的直方圖一般有兩個峰值,一個峰值對應漢字筆畫部分,另一個峰值對應漢字的背景部分。閾值應取在兩個峰值的波谷處,波谷越陡,二值化效果越好。但是這種方法實施起來較麻煩,容易出現問題,計算量較大。 3. 二次定值法 先根據經驗取 T1 作為閾值,對文字圖形進行整體閾值二值化,區(qū)分出是背景還是圖像。再分別求出對應 T1 的圖像和背景的灰度平均值 Fa 和 Ba,定出二次選用的閾值為: 最后再用 T2 對原圖進行整體閾值二值化。 用這種方法進行二值化比較好。因為這種二值化的方法,速度較快,而且對掃描前紙面、光源等不同的外界情況,閾值可以隨之進行適應。T1 取 7090 比較合適。圖 9-5 就是用二次定值法對圖 9-3進行了二值化后的結果,其中 T1=70。9.2.2 版面分析 印刷體文字識別常遇到的識別主體不是一個文字段,而是整個版面,所以版面分析是印刷體文字識別系統(tǒng)的重要組成部分。它是指對印刷文檔圖像進行分析,提取出文本、圖像、圖形、表格等區(qū)域,并確定其邏輯關系,并將相應的文本塊連接在一起。這一過程的自動完成算法還不是很完善,有些部分常由手工輔助完成,最終的系統(tǒng)能夠自動完成所有的版面分析任務。 通常印刷體版面的成分和結構非常復雜、靈活。圖文混排、中英文混排、不同字體、字號在不同方向上的混排大量存在;字間距、行間距、塊間距變化無常。而且漢字的印刷體還有橫排、豎排之分,同時,漢字、阿拉伯數字、英文字母和單詞的幾何特征不同(如寬高比、間距等),所以不能直接套用西方的版面分析方法。上述特點決定了如何適應漢字由部件組字與英文由字母組詞之間的差異;如何針對版面規(guī)范性差、印刷質量差的情況,使用具有較強適應能力的版面分析特征;如何在版面分析算法中的各個部分都注意處理橫 /豎排,成為了版面分析過程中需要解決的問題。 目前,版面分析的算法主要分為兩類,一種是自頂向下的方法,另一種是自底向上的方法。 1. 自頂向下 這種版面分析方法是從整個圖像入手,重視全局圖像信息,根據對文檔版面的形式語言描述,將圖像遞歸分解成足夠小的區(qū)域。它是一個分解的過程。優(yōu)點是速度快、簡單明了。但是,這種方法在分析過程中忽略了圖像的細節(jié),不適合復雜版面文檔。 2. 自底向上 這種方法從圖像細節(jié)入手,重視局部圖像信息,將圖像小區(qū)域逐步合并成較大區(qū)域,是一個合并的過程。由于重視圖像細節(jié),使得這類方法適合復雜版面。但是自底向上的方法合并過程非常復雜,速度較慢。 采取以自底向上分析為主,同時融入自頂向下的某些思想與方法,是目前公認的版面分析的發(fā)展方向。 9.2.3 傾斜度校正 通常掃描得到的文件可能由于掃描時文本擺放不正,光源位置不佳等各種原因,造成圖像文件中文本有不同程度的傾斜。這種傾斜可能是整個版面都存在的問題,也可能是局部文本塊存在的問題。當傾斜角度不大時,不影響識別過程,可以忽略不計。若傾斜角度較大,就影響到了垂直積分投影和水平積分投影的正確性和有效性,使版面分析行 /字切分受到干擾,不能正常進行。因此有人提出不依賴于垂直、水平積分投影的圖像預處理,行 /字切分等識別處理工作,但是這些算法普遍較復雜,運算時間比較長,運算速度較慢。還有一種處理方式是先根據版面的不同傾斜方式,進行不同算法的傾斜校正,然后再進行其他處理。 1. 整體傾斜度校正 掃描得到的圖像其整個版面有可能都是歪的,如圖 9-6 所示,一般是由于掃描時文檔沒有放正造成的。當然可以人工放正,然后再掃描一次;也可以讓計算機自行校正,其方法就是對整個版面進行校正,也就是對圖像進行旋轉。對整體圖像進行旋轉有兩種方法: (1)只將圖像進行旋轉,并不擴大圖像區(qū)域的面積。用這種方法處理的一個例子,如圖 9-7 所示,可以看出,旋轉后的圖像丟失了一部分文字。這是因為旋轉后圖像的寬度應該比原圖大一些,但是卻沒有擴大圖像區(qū)域造成的。(2)將圖像旋轉,并按照旋轉后新圖像的寬高擴大區(qū)域。 對于文字識別系統(tǒng),文字的丟失當然是不能接受的,所以選用第二種方法。 算法采用的是坐標變換的方法,先將圖像以原點為中心進行旋轉,分別計算旋轉后圖像的最高點、最低點的縱坐標 top、bottom,最左點、最右點的橫坐標 left、right,然后推算出新圖的寬和高,按照新的寬和高擴展圖像。最后,將坐標軸的原點移到( left,bottom)。旋轉的效果如圖 9-8 所示。 2. 局部版面的傾斜校正 有的時候版面的傾斜只是發(fā)生在局部區(qū)域上,如圖 9-9 所示,它可能是紙的褶皺現象造成的,可能是掃描時光源的影響,也可能是排版時故意這么做的。但是不論什么原因造成的局部版面傾斜,都會影響到版面分析及預處理的效果,所以也必須進行校正。 通常局部的版面傾斜角度都很小,或傾斜區(qū)域周圍有很寬的空白部分,傾斜部分旋轉回原來的位置時,不會造成文字丟失或覆蓋其他文字的現象(否則發(fā)生傾斜的局部區(qū)域就已經覆蓋了其他文字區(qū)域了)。所以就不考慮旋轉后圖像擴大的問題,而使用旋轉算法中的第一種方法,但旋轉的中心不再是左下點,而是發(fā)生傾斜區(qū)域的中心。校正后的效果如圖 9-10 所示。 3. 傾斜度自動測量 版面的傾斜校正屬于版面的預處理部分。它的難點是對版面圖像的傾斜進行自動測量。雖然已經提出許多自動測斜的算法,但是效果不好,目前基本采用自動測量與人工輔助相結合的測量方法。 由于各行文字所構成的底部基線能夠準確地反映出圖像的傾斜角度,如圖 9-11 所示,故將每個文字的底部基線的中點作為采樣點,得到一系列坐標值(xi,yi)(i=0,1,2。)。然后使用直線擬合算法算出該直線的傾斜角度 a,最后再進行校正。直線擬和算法可以由最小二乘法推導得到,具體算法如下:476設擬合后得到的直線為: y =a +bx ,則:但是從圖 9 -11 中可以看出這種算法只能測出小角度的傾斜。若傾斜角度較大,各個文字不能用連通域搜索算法分開,就無法知道傾斜角度了。所以對傾斜角度較大的版面圖像,還是需要進行人工輔助測量。9.2.4 版面切分 印刷版面由文本域和附屬域構成。文本域包括標題域和正文域,附屬域包括圖像、圖形、表格等。版面分析和切分的任務就是利用各個域本身的知識,對它們進行自動切分和標識。目前的版面切分算法沒有很完善的,這里不多加介紹。 9.2.5 行、字分割 文字圖像經過二值化后得到的是一個整體,其中包含了字與字之間、行與行之間的空白。所以要想識別單個漢字,首先要把單個的漢字從整個圖像中分離出來,這就是行切分和字切分要完成的任務。 這里介紹的是積分投影的方法,這種方法的算法簡單,但適應性差。它要求文字圖像不能有傾斜,且噪聲較小,因此在切分行、字之前,要對文字圖像進行傾斜校正,在文字識別時,要注意噪聲的影響。 1. 行切分 行與行之間通常都有一定的空白間隙,下面就利用這個空白間隙進行切分。 假設經過版面分析后得到的是文本塊。設文字圖像中的第 i 行、第 j 列的像素值為 g(i,j)。 在行與行的空白間隙處的水平積分投影理論值為 0(由于噪聲的存在,實際上可能不為 0),而文字行的水平積分投影不為 0。現在就利用這一性質進行行切分。由于圖像存儲的要求,將最下面一行設為第一行,行切分自下而上順序進行,由于切分的是已經進行過版面分析的文本塊,所以文字圖像的第一行像素必然是某個文字行的行下界。其中 N 為文字圖像的行數。 規(guī)則 1:對尚未切分的文本按照從下往上的順序進行搜索,當搜索到第一個滿足下列兩個條件的像素行 i 時,第 i 行為文本行的下界。 有連續(xù) n 行滿足: 規(guī)則 2:對尚未切分的文本按照從下往上的順序進行搜索,當搜索到第一個滿足下列兩個條件的像素行 i 時,第 i 行為文本行的上界。477其中 N 為文字圖像的行數。 規(guī)則 1:對尚未切分的文本按照從下往上的順序進行搜索,當搜索到第一個滿足下列兩個條件的像素行 i 時,第 i 行為文本行的下界。 有連續(xù) n 行滿足: 規(guī)則 2:對尚未切分的文本按照從下往上的順序進行搜索,當搜索到第一個滿足下列兩個條件的像素行 i 時,第 i 行為文本行的上界。在以上兩個規(guī)則中 n 、 p 、 q 、 m 、 r 、 t 均為根據實驗經驗得到的常數,其中 n m , p q ,r t 。所有這些參數都是為了消除噪聲的影響。在實際中可以?。?n =5 , p =3 , q =1 , m =3 , r =6 ,t =2 ,得到的切分結果如圖 9-12 所示。2. 字切分 從左往右搜索一行文字單字的左右界,切分出單字或標點符號。對漢字文本行來說,由于存在左右分離字、寬窄字、字間交連等,加上行中混有英文、數字、符號和字間污點干擾,使得字切分比行切分困難得多。所以字切分大致分為兩個過程,首先是求出文字、符號或部件的左右界線;其次是合并部件成為完整的漢字。 這里介紹的字切分算法是最大寬度回溯字切分算法。 首先,根據漢字是方塊字的特點以平均行寬作為字寬 w 的參考值: 設文字的最大寬度為 Wm,回溯范圍為 d,第 j 個字的起始位置為 ja,結束位置為 jb,如圖 9-13所示。對應的算法如下:不存在(有交連現象),則轉。若不存在(有交連現象),則轉。 用字典對上述切割出的圖像進行匹配,若匹配成功(證明切割正確),記下jb ,轉;否則轉。邊界,重復以上步驟。 這種字切分算法比較簡單,有一定的適應性,但運算時間長。其中 Wm、d、d 都要根據經驗確定。 以上的行、字切分都是以橫排版為基礎的,如果處理的是豎排版的版面,就要將行和列以對偶原則處理。9.2.6 細化和規(guī)范化 細化就是將二值化文字點陣逐層剝去輪廓邊緣上的點,變成筆畫寬度只有一個比特的文字骨架圖形。基于細化的識別方法以筆畫骨架線為基礎,將待識字符的筆段細化為骨架后再作進一步的分析和處理。通常在得到字符的骨架圖形后,用鏈碼跟蹤的方法得到一系列鏈碼形式的點列,然后再從點列中擬合出筆段。 細化算法的優(yōu)劣對這類方法的影響很大。對細化的一般要求是保持原有筆畫的連續(xù)性,不能由于細化造成筆畫斷開;細化為單線(一個比特);保持文字原有特征,既不要增加,也不要丟失,保持筆畫特征,最好細化掉筆鋒;細化結果是原曲線的中心線,保留曲線的端點,交叉部分中心線不畸變。針對各種不同的應用,國內外已發(fā)表了許多線細化算法,如 Hilditch 經典細化算法、Deutsch 算法、Pavlidis 異步細化算法、Zhang 快速并行細化算法等。然而,細化過程本身固有的弱點總是造成筆畫骨架線的畸變,增加對識別的干擾,主要的畸變包括:交叉筆畫畸變、轉折處出現分叉筆畫、失去短筆道、筆畫合并??梢哉f,這些問題依賴細化算法本身是無法克服的,需要在后續(xù)的處理中盡量消除這些畸變的干擾,如孫星明的基于正方形的漢字細化后處理方法。 通常在特征提取之前,需要對字符圖像進行規(guī)范化。所謂規(guī)范化,就是把文字尺寸變換成統(tǒng)一大小,糾正文字位置(平移),文字筆畫粗細變換等文字圖形的規(guī)格化處理。這樣做有兩個問題,一是字符圖像的縮放可能會引入一些干擾;二是圖像縮放本身的運算量較大。 可以采用一種新的處理方法來消除尺度變化對特征值的影響,首先根據原始字符圖像提取特征,然后根據字符的大小對提取的特征進行變換,使之與字符的尺度無關。具體的計算方法如下: (1)估計字符的大小,如字符的高度或寬度,這個值可以在文本切分時獲得。將它與標準樣本的大小相比較,得到字符圖像的放大倍數。 (2)在提取字符的特征之后,對所有的坐標、長度、寬度等特征除以這個放大倍數。方向特征本身與尺度無關,對于曲率的變換和寬度的變化,在特征提取時只分析它的變化趨勢,即逐漸變大、變小或基本不變等,而對其具體數值并不關心,因此不必在此進行修正。 (3)為了提高對字符大小估計的準確性,還要利用識別結果進行修正,最終得到不是規(guī)范化字符的特征,而是字符“規(guī)范化”的特征。 9.2.7 預處理算法源代碼示例 這里給出一些預處理相關的源代碼的主要部分,完整的代碼參見本書附帶的光盤。 1. 版面分析 包括行的檢測,以及旋轉角度的檢測。 /* * 光學字符識別程序 * 文件名:detect.c * 功能 :版面分析相關源代碼 * modified by PRT */ #include #include #include pgm2asc.h #include gocr.h / * 檢測文字行 * /* 傅立葉變換檢測行 m1 - 大寫字母的最上界 m2 - 小寫字母的上界 m3 - 基線 m4 res.lines; if (lines-num = 0) lines-m40 = 0; lines-m30 = 0; lines-m20 = 0; lines-m10 = 0; lines-x00 = p-x; lines-x10 = 0; lines-num+; i = lines-num; if (dy res.boxlist) box2 = (struct box *)list_get_current(&(JOB-res.boxlist); if (box2-c != PICTURE) if (box2-y1 - box2-y0 4) if (box2-y0 = y0 & box2-y1 x0 = x0 & box2-x1 y1 - box2-y0 + 1; end_for_each(&(JOB-res.boxlist); if (jj = 0) return 0; /* 沒有檢測到字符 */ my /= jj; if (my 3) return 0; /* 高度均值太小錯誤 */ m4pre=m3pre=y0; for (j2 = y = y0; y 存到 m1-min (m1=y) for_each_data(&(JOB-res.boxlist) box2 = (struct box *)list_get_current(&(JOB-res.boxlist); yy = lines-dy * box2-x0 / (p-x); if ( box2-y0 = y + yy & box2-y1 x0 = x0 & box2-x1 c != PICTURE / 沒有圖像 & 3 * (box2-y1 - box2-y0) 2 * my & (box2-y1 - box2-y0) y1 - box2-y0) 4) if (box2-y0 y0 - yy; end_for_each(&(JOB-res.boxlist); if (m1 = y0+dy) break; /* 沒有發(fā)現別的 line */ lines-x0i = x0 + dx - 1; lines-x1i = x0; m4=m2=m1; mi=m1+my; m3=m1+2*my; jj=0; for_each_data(&(JOB-res.boxlist) box2 = (struct box *)list_get_current(&(JOB-res.boxlist); yy = lines-dy * box2-x0 / (p-x); /* 檢查 ij-dots, 如果字符等高,則使用 */ if (box2-y0 = y + yy & box2-y1 x0 = x0 & box2-x1 c != PICTURE / 沒有圖像 & (box2-y1 - box2-y0) y0 = y & box2-y1 y0 y0 - yy; /* 求取 m2-max m3-min m4-max */ if ( box2-y0 = y + yy & box2-y1 x0 = x0 & box2-x1 x0 = x0 & box2-x1 c != PICTURE / 沒有圖像 & 3 * (box2-y1 - box2-y0) 2 * my & (box2-y1 - box2-y0) y1 - box2-y0) 4) if (box2-y0 = m1 & box2-y0 y1 y1 = m1 + yy + my / 2) jj+; if (box2-y0 m2 + yy) m2 = box2-y0 - yy; if (box2-y1 m4 + yy) m4 = box2-y1 - yy; if (box2-y1 y1 m2+m4+yy ) if( get_bw(box2-x0,box2-x1,box2-y1+1 ,box2-y1+my/2,box2-p,JOB-cfg.cs,1) = 0 | get_bw(box2-x0,box2-x1,box2-y1+my/2,box2-y1+my/2,box2-p,JOB-cfg.cs,1) = 1 | num_cross(box2-x0,box2-x1,(box2-y0+box2-y1)/2,(box2-y0+box2-y1)/2,box2-p,JOB-cfg.cs)2 ) m3 = box2-y1 - yy; if (box2-y0 + box2-y1 2*(m3 + yy) & box2-y1 y1 = (m2 + m4)/2 ) m3 = box2-y1 - yy; if (box2-x1lines-x1i) lines-x1i = box2-x1; if (box2-x0x0i) lines-x0i = box2-x0; end_for_each(&(JOB-res.boxlist); #if 0 /* 測試使用 */ if (JOB-cfg.verbose) fprintf(stderr, step 1 y=%4d m1=%4d m2=%4d m3=%4d m4=%4d my=%2d chars=%3dn, y,m1,m2,m3,m4,my,jj); #endif if (m3 = m1) break; #if 1 mc = (3 * m3 + m1) / 4; ma1 = ma2 = ma3 = ma4 = i1 = i2 = i3 = i4 = jj = 0; for_each_data(&(JOB-res.boxlist) box2 = (struct box *)list_get_current(&(JOB-res.boxlist); yy = lines-dy * box2-x0 / (p-x); if (box2-y0 = y + yy & box2-y1 x0 = x0 & box2-x1 c != PICTURE & 2 * (box2-y1 - box2-y0) my & (box2-y1 - box2-y0) y0 - yy = m1-my/4 & box2-y0 - yy y1 - yy = m3-my/4 & box2-y1 - yy y0 - yy - m1) y0 - yy - m2) i1+; m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 砂石卸載碼頭管理制度
- 師訓室安全管理制度
- 紡紗器材使用管理制度
- 舞蹈學校培訓管理制度
- 電廠檢修消防管理制度
- 監(jiān)委涉案財物管理制度
- 肥料經銷公司管理制度
- 舞臺設備安全管理制度
- 義工規(guī)劃與管理制度
- 工會活動室管理制度
- 新修訂《土地管理法》考試題庫及答案
- 小老虎過生日
- 2023-2024學年廣西壯族自治區(qū)南寧市小學語文六年級期末深度自測試卷詳細參考答案解析
- 國開《學前兒童語言教育活動指導》形考1-4試題及答案
- ???023綜合安防工程師認證試題答案HCA
- 濁度儀使用說明書
- GB/T 14404-2011剪板機精度
- GA 1517-2018金銀珠寶營業(yè)場所安全防范要求
- 提高痰留取成功率PDCA課件
- 伊金霍洛旗事業(yè)編招聘考試《行測》歷年真題匯總及答案解析精選V
- 深基坑支護工程驗收表
評論
0/150
提交評論