光學字元識別

OCR技術

OCR (Optical Character Recognition,光學字元識別)是指電子設備(例如掃描儀或數碼相機)檢查紙上列印的字元,通過檢測暗、亮的模式確定其形狀,然後用字元識別方法將形狀翻譯成計算機文字的過程;即,針對印刷體字元,採用光學的方式將紙質文檔中的文字轉換成為黑白點陣的圖像文件,並通過識別軟體將圖像中的文字轉換成文本格式,供文字處理軟體進一步編輯加工的技術。如何除錯或利用輔助信息提高識別正確率,是OCR最重要的課題,ICR(Intelligent Character Recognition)的名詞也因此而產生。衡量一個OCR系統性能好壞的主要指標有:拒識率、誤識率、識別速度、用戶界面的友好性,產品的穩定性,易用性及可行性等。

簡介


OCR技術是光學字元識別的縮寫(Optical Character Recognition),是通過掃描等光學輸入方式將各種票據、報刊、書籍、文稿及其它印刷品的文字轉化為圖像信息,再利用文字識別技術將圖像信息轉化為可以使用的計算機輸入技術。可應用於銀行票據、大量文字資料、檔案卷宗、文案的錄入和處理領域。適合於銀行、稅務等行業大量票據表格的自動掃描識別及長期存儲。相對一般文本,通常以最終識別率、識別速度、版面理解正確率及版面還原滿意度4個方面作為OCR技術的評測依據;而相對於表格及票據,通常以識別率或整張通過率及識別速度為測定OCR技術的實用標準。

解析


採用OCR識別技術,可以將其應用於銀行票據光碟縮微系統,可以自動提取票據要素,可減輕操作員的工作量,減少重複勞動,尤其是在與銀行事後且監督系統相結合后,可以替代原先的操作人員完成事後監督工作。由計算機自動識別票據上的日期、帳號、金額等要素,通過銀行事後監督系統與業務系統中的數據進行比較,完成傳統的事後監督操作;配有印章驗證系統后,自動將憑證圖像中的印章與系統中預留的印鑒進行比較,完成印章的真偽識別。
OCR識別技術不僅具有可以自動判斷、拆分、識別和還原各種通用型印刷體表格,在表格理解上做出了令人滿意的實用結果,能夠自動分析文稿的版面布局,自動分欄、並判斷出標題、橫欄、圖像、表格等相應屬性,並判定識別順序,能將識別結果還原成與掃描文稿的版面布局一致的新文本。表格自動錄入技術,可自動識別特定表格的印刷或列印漢字、字母、數字,可識別手寫體漢字、手寫體字母、數字及多種手寫符號,並按表格格式輸出。提高了表格錄入效率,可節省大量人力。同時支持將表格識別直接還原成PTF、PDF、HTML等格式文檔;並可以對圖像嵌入橫排文本和豎排文本、表格文本進行自動排版面分析。
利用目前的高新技術-OCR,直接從憑證影像中提取金額、帳號等重要數據,代替人的手工錄入,與條碼識別/流水識別緊密結合,實現建立事後副本帳、完成事後監督的工作。OCR處理一般使用性能較好的PC機,OCR處理程序一經啟動會自動掃描資料庫中的憑證影像,發現有需OCR處理而未處理的,提取到本地進行處理。
OCR手寫體、印刷體識別技術,能識別不同人寫的千差萬別的手寫體漢字和數字,應用於本系統,識別憑證影像中儲戶填寫的信息,如大寫金額、小寫金額、帳號、存期、日期、證件號等,可以代替手工錄入。同時被識別得出的金額還要與流水識別所得的金額進行核對,核對成功,則OCR識別成功。這樣處理是為了避免誤判。
經過對銀行產生的實際憑證進行的大量測試,在實際開發過程中,根據銀行的實際需求,OCR技術在票據和表格識別能力和手寫體自動識別能力上不斷提升,目前處理速度可達到每分鐘60~80張票據,存摺識別率已經達到了85%以上,存單、憑條識別率達到90%以上,而85%以上的識別率就能減少80%以上的數據錄入員。
在檔案領域OCR技術使檔案掃描成果達到了全文可識別,將檔案數字化發展提升了到了一個新的階段,是原本掃描出來的圖片變得更容易進行檢索,為數字檔案館的數據查詢提供了技術支持,是檔案數字化發展中必不可少的一環。

發展簡史


OCR的概念是在1929年由德國科學家Tausheck最先提出來的,後來美國科學家Handel也提出了利用技術對文字進行識別的想法。而最早對印刷體漢字識別進行研究的是IBM公司的Casey和Nagy,1966年他們發表了第一篇關於漢字識別的文章,採用了模板匹配法識別了1000個印刷體漢字。
早在60、70年代,世界各國就開始有OCR的研究,而研究的初期,多以文字的識別方法研究為主,且識別的文字僅為0至9的數字。以同樣擁有方塊文字的日本為例,1960年左右開始研究OCR的基本識別理論,初期以數字為對象,直至1965至1970年之間開始有一些簡單的產品,如印刷文字的郵政編碼識別系統,識別郵件上的郵政編碼,幫助郵局作區域分信的作業;也因此至今郵政編碼一直是各國所倡導的地址書寫方式。
20世紀70年代初,日本的學者開始研究漢字識別,並做了大量的工作。中國在OCR技術方面的研究工作起步較晚,在70年代才開始對數字、英文字母及符號的識別進行研究,70年代末開始進行漢字識別的研究,到1986年,我國提出“863”高新科技研究計劃,漢字識別的研究進入一個實質性的階段,清華大學的丁曉青教授和中科院分別開發研究,相繼推出了中文OCR產品,現為中國最領先漢字OCR技術。早期的OCR軟體,由於識別率及產品化等多方面的因素,未能達到實際要求。同時,由於硬體設備成本高,運行速度慢,也沒有達到實用的程度。只有個別部門,如信息部門、新聞出版單位等使用OCR軟體。進入20世紀90年代以後,隨著平台式掃描儀的廣泛應用,以及我國信息自動化和辦公自動化的普及,大大推動了OCR技術的進一步發展,使OCR的識別正確率、識別速度滿足了廣大用戶的要求。

軟體結構


由於掃描儀的普及與廣泛應用,OCR軟體只需提供與掃描儀的介面,利用掃描儀驅動軟體即可。因此,OCR軟體主要是由下面幾個部分組成。
圖像輸入、預處理:
圖像輸入:對於不同的圖像格式,有著不同的存儲格式,不同的壓縮方式,目前有OpenCV,CxImage等開源項目。預處理:主要包括二值化,雜訊去除,傾斜較正等
二值化:
對攝像頭拍攝的圖片,大多數是彩色圖像,彩色圖像所含信息量巨大,對於圖片的內容,我們可以簡單的分為前景與背景,為了讓計算機更快的,更好的識別文字,我們需要先對彩色圖進行處理,使圖片只前景信息與背景信息,可以簡單的定義前景信息為黑色,背景信息為白色,這就是二值化圖了。
雜訊去除:
對於不同的文檔,我們對雜訊的定義可以不同,根據雜訊的特徵進行去噪,就叫做雜訊去除
傾斜較正:
由於一般用戶,在拍照文檔時,都比較隨意,因此拍照出來的圖片不可避免的產生傾斜,這就需要文字識別軟體進行較正。
版面分析:
將文檔圖片分段落,分行的過程就叫做版面分析,由於實際文檔的多樣性,複雜性,因此,目前還沒有一個固定的,最優的切割模型。
字元切割:
由於拍照條件的限制,經常造成字元粘連,斷筆,因此極大限制了識別系統的性能,這就需要文字識別軟體有字元切割功能。
字元識別:
這一研究,已經是很早的事情了,比較早有模板匹配,後來以特徵提取為主,由於文字的位移,筆畫的粗細,斷筆,粘連,旋轉等因素的影響,極大影響特徵的提取的難度。
版面恢復:
人們希望識別後的文字,仍然像原文檔圖片那樣排列著,段落不變,位置不變,順序不變地輸出到word文檔、pdf文檔等,這一過程就叫做版面恢復。
后處理、校對:
根據特定的語言上下文的關係,對識別結果進行較正,就是后處理。

工作流程


一個OCR識別系統,其目的很簡單,只是要把影像作一個轉換,使影像內的圖形繼續保存、有表格則表格內資料及影像內的文字,一律變成計算機文字,使能達到影像資料的儲存量減少、識別出的文字可再使用及分析,當然也可節省因鍵盤輸入的人力與時間。
從影像到結果輸出,須經過影像輸入、影像前處理、文字特徵抽取、比對識別、最後經人工校正將認錯的文字更正,將結果輸出。
影像輸入
欲經過OCR處理的標的物須透過光學儀器,如影像掃描儀、傳真機或任何攝影器材,將影像轉入計算機。科技的進步,掃描儀等的輸入裝置已製作的愈來愈精緻,輕薄短小、品質也高,對OCR有相當大的幫助,掃描儀的解析度使影像更清晰、掃除速度更增進OCR處理的效率。
影像預處理:影像預處理是OCR系統中,須解決問題最多的一個模塊。影像須先將圖片、表格及文字區域分離出來,甚至可將文章的編排方向、文章的提綱及內容主體區分開,而文字的大小及文字的字體亦可如原始文件一樣的判斷出來。
對待識別圖像進行如下預處理,可以降低特徵提取演演算法的難度,並能提高識別的精度。
● 二值化:由於彩色圖像所含信息量過於巨大,在對圖像中印刷體字元進行識別處理前,需要對圖像進行二值化處理,使圖像只包含黑色的前景信息和白色的背景信息,提升識別處理的效率和精確度。
圖像降噪:由於待識別圖像的品質受限於輸入設備、環境、以及文檔的印刷質量,在對圖像中印刷體字元進行識別處理前,需要根據雜訊的特徵對待識別圖像進行去噪處理,提升識別處理的精確度。
傾斜校正:由於掃描和拍攝過程涉及人工操作,輸入計算機的待識別圖像或多或少都會存在一些傾斜,在對圖像中印刷體字元進行識別處理前,就需要進行圖像方向檢測,並校正圖像方向。
文字特徵抽取:單以識別率而言,特徵抽取可說是 OCR的核心,用什麼特徵、怎麼抽取,直接影響識別的好壞,也所以在OCR研究初期,特徵抽取的研究報告特別的多。而特徵可說是識別的籌碼,簡易的區分可分為兩類:一為統計的特徵,如文字區域內的黑/白點數比,當文字區分成好幾個區域時,這一個個區域黑/白點數比之聯合,就成了空間的一個數值向量,在比對時,基本的數學理論就足以應付了。而另一類特徵為結構的特徵,如文字影像細線化后,取得字的筆劃端點、交叉點之數量及位置,或以筆劃段為特徵,配合特殊的比對方法,進行比對,市面上的線上手寫輸入軟體的識別方法多以此種結構的方法為主。
對比資料庫:當輸入文字算完特徵后,不管是用統計或結構的特徵,都須有一比對資料庫或特徵資料庫來進行比對,資料庫的內容應包含所有欲識別的字集文字,根據與輸入文字一樣的特徵抽取方法所得的特徵群組。
對比識別
這是可充分發揮數學運算理論的一個模塊,根據不同的特徵特性,選用不同的數學距離函數,較有名的比對方法有,歐式空間的比對方法、鬆弛比對法(Relaxation)、動態程序比對法(Dynamic Programming,DP),以及類神經網路的資料庫建立及比對、HMM(Hidden Markov Model)…等著名的方法,為了使識別的結果更穩定,也有所謂的專家系統(Experts System)被提出,利用各種特徵比對方法的相異互補性,使識別出的結果,其信心度特別的高。
字詞后處理:由於OCR的識別率並無法達到百分之百,或想加強比對的正確性及信心值,一些除錯或甚至幫忙更正的功能,也成為OCR系統中必要的一個模塊。字詞后處理就是一例,利用比對后的識別文字與其可能的相似候選字群中,根據前後的識別文字找出最合乎邏輯的詞,做更正的功能。
字詞資料庫:為字詞后處理所建立的詞庫。
人工校正
OCR最後的關卡,在此之前,使用者可能只是拿支滑鼠,跟著軟體設計的節奏操作或僅是觀看,而在此有可能須特別花使用者的精神及時間,去更正甚至找尋可能是OCR出錯的地方。一個好的OCR軟體,除了有一個穩定的影像處理及識別核心,以降低錯誤率外,人工校正的操作流程及其功能,亦影響OCR的處理效率,因此,文字影像與識別文字的對照,及其屏幕信息擺放的位置、還有每一識別文字的候選字功能、拒認字的功能、及字詞后處理后特意標示出可能有問題的字詞,都是為使用者設計盡量少使用鍵盤的一種功能,當然,不是說系統沒顯示出的文字就一定正確,就像完全由鍵盤輸入的工作人員也會有出錯的時候,這時要重新校正一次或能允許些許的錯,就完全看使用單位的需求了。
結果輸出
有人只要文本文件作部份文字的再使用之用,所以只要一般的文字文件、有人要漂漂亮亮的和輸入文件一模一樣,所以有原文重現的功能、有人注重表格內的文字,所以要和Excel等軟體結合。無論怎麼變化,都只是輸出檔案格式的變化而已。如果需要還原成原文一樣格式,則在識別後,需要人工排版,耗時耗力。

中文識別


資料錄入
文獻資料的數字化錄入,一般分為:
1.純圖像方式。
2.目錄文本、正文圖像方式。
3.全文本方式。
4.全文索引方式。文本方式和圖像方式的混合體。
識別過程
書本級:中文,英文;簡體,繁體;
版式級:豎排,橫排;有無分欄
行切分 字切分
識別:真正的OCR識別過程,圖像信息還原成文本信息
后處理:人工干預,主要集中在前四個階段。
決定因素
1.圖片的質量,一般建議150dpi以上
2.顏色,一般對彩色識別很差,黑白的圖片較高,因此建議ocr的為黑白tif格式
3.最重要的就是字體,如果是手寫識別率很低。
國內OCR識別簡體差錯率為萬分之三,如果要求更高的精度需要投入更大的人工干預。繁體識別由於繁體字型檔的不統一性(民國時期的字型檔和現在繁體字型檔不統一),導致識別困難,在人工干預下,精度能達到90%以上(圖文清晰情況下)。

識別技巧


1.解析度的設置是文字識別的重要前提。一般來講,掃描儀提供較多的圖像信息,識別軟體比較容易得出識別結果。但也不是掃描解析度設得越高識別正確率就越高。選擇300dpi或400dpi解析度,適合大部分文檔掃描。注意文字原稿的掃描識別,設置掃描解析度時千萬不要超過掃描儀的光學解析度,不然會得不償失。下面是部分典型設置,僅供參考。
(1)1、2、3號字的文章段,推薦使用200dpi。
(2)4、小4、5號字的文章段,推薦使用300dpl
(3)小5、6號字的文章段,推薦使用400dpl
(4)7、8號字的文章段,推薦使用600dpi。
2. 掃描時適當地調整好亮度和對比度值,使掃描文件黑白分明。這對識別率的影響最為關鍵,掃描亮度和對比度值的設定以觀察掃描后的圖像中漢字的筆畫較細但又不斷開為原則。進行識別前,先看看掃描得到的圖像中文字質量如何,如果圖像存在黑點或黑斑時或文字線條很粗很黑,分不清筆畫時,說明亮度值太小了,應該增加亮度值在試試;如果文字線條凹凸不平,有斷線甚至圖像中漢字輪廓嚴重殘缺時,說明亮度值太大了,應減小亮度后再試試。
3.選好掃描軟體。選一款好的適合自己的OCR軟體是作好文字識別工作的基礎,一般不要使用掃描儀自帶的OEM軟體,OEM的OCR軟體的功能少、效果差,有的甚至沒有中文識別。
再選一個圖像軟體,第一,OCR軟體不能識別所有的掃描儀;第二,也是最關鍵的,利用圖像軟體的掃描介面掃描出來的圖像便於處理。
4.如果要進行的文本是帶有格式的,如粗體、斜體、首行縮進等,部分OCR軟體識別不出來,會丟失格式或出現亂碼。如果必須掃描帶有格式的文本,事先要確保使用的識別軟體是否支持文字格式的掃描。也可以關閉樣式識別系統,使軟體集中注意力查找正確的字元,不再顧及字體和字體格式。
5.在掃描識別報紙或其他半透明文稿時,背面的文字透過紙張混淆文字字形,對識別會造成很大的障礙。遇到該類掃描,只要在掃描原稿的背面附。蓋一張黑紙,掃描時,增加掃描對比度,即可減少背面模糊字體的影響,提高識別正確率。
6.一般文本掃描原稿都為黑、白兩色原稿,但是在掃描設置時卻常將掃描模式設為灰度模式。特別是在原稿質量較差時,使用灰度模式掃描,並在掃描軟體處理完后再繼續識別,這樣會得到較好的識別正確率。值得注意的是OCR識別軟體可以自己確定閥值,幾個百分點的閥值差異,可能就會影響識別的正常進行。當然,得到的圖像文件的大小會比黑白文件大很多。在進行大批量文稿掃描時,必須對原稿進行測試,找到最佳的閥值百分比。
7.遇到圖文混排的掃描原稿,首先明確使用的識別軟體是否支持自動分析圖文這一功能。如果支持的話,在進行這類掃描識別時,OCR軟體會自動計算出文本的內容、位置和先後順序。文字部分可以按照標示順序正常識別。
8.手動選取掃描區域會有更好識別效果。設置好參數后,先預覽一下,然後開始選取掃描區域。不要將要用的文章一股腦兒選在一個區域內,因為現在的文章排版為了追求更好的視覺效果,使用圖文混排的較多,掃成一幅圖像會影響OCR識別。因此,要根據實際情況將版面分成N個區域,怎麼劃分區域呢?每一區域內的文字字體、字型大小最好一致,沒有圖形、圖像,每一行的寬度一致,遇到長短不一,再細分,一般一次最多可掃描10個選區。根據不同情況,合理地設置識別區域的順序。不要嫌這個過程太煩,那可是提高識別率的有效手段。注意各識別區域不能有交叉,做到一切覺得完好以後再進行識別。這樣一般的識別率會在95%以上,對於識別不正確的文字進行校對后,就可以進入相應的文字處理軟體進行所需的處理了。
9.在放置掃描原稿時,把掃描的文字材料一定要擺放在掃描起始線正中,以最大限度地減小由於光學透鏡導致的失真。同時應保護掃描儀玻璃的乾淨和不受損害。文字有一定角度的傾斜,或者是原稿文字部分為不正規排版,必須在掃描后使用旋轉工具,進行糾正;否則OCR識別軟體會將水平筆劃當做斜筆劃處理,識別正確率會下降很多。建議用戶盡量將掃描原稿放正,用工具旋轉糾正會降低圖像質量,使字元識別更加困難。
10.先"預覽"整體版面,選定要掃描的區域,再用"放大預覽"工具,選擇一小塊進行放大顯示到全屏幕,觀察其文字的對比度,文字的深淺濃度,據情況調整"閥值"的大小,最終要求文字清晰,不濃(文字成團),不淡(文字斷筆伐),一般在"閥值"80左右為宜,最後再掃描。
11.用工具擦掉圖像污點,包括原來版面中的不需要識別的插圖、分隔線等,使文字圖像中除了文字沒有一點多餘的東西;這可以大提高識別率並減少識別後的修改工作。
12.如果要掃描印刷質量稍微差一些的文章,比如說報紙,掃描的結果將不會黑白分明,會出現大量的黑點,而且在字體的筆畫上也會出現粘連現象,這兩項可是漢字識別的大忌,將嚴重影響漢字識別的正確率。為獲得較好的識別結果,必須仔細進行色調調節,反覆掃描多次才能獲得比較理想的結果。另外由於報紙很薄且大部分紙質不高,導致掃描儀上蓋板不能完全壓住報紙(有縫隙),所以一般情況下報紙的掃描識別效果沒有雜誌的效果好。解決辦法是在報紙上壓一至兩本16K的雜誌,效果還是不錯的。