劉宗凡

編者按:光學字符識別(OCR),是將圖像中的文字識別為可編輯的文字的技術。OCR技術極大地推動了紙質書籍數字化的進程,使得浩如煙海的存量書籍轉化為數字版本成為可能,是數字化圖書館建立過程中當之無愧的最大功臣。當OCR技術插上人工智能的翅膀,更是將應用拓展到很多行業,如場景文字識別、手寫識別、車牌識別、證件識別、汽車VIN碼識別、發票識別、智能交通……使相應領域的工作方式和效率得到了前所未有的革新。因此,我們將分兩期探討光學字符識別(OCR)的發展以及使用。
OCR(Optical Character Recognition,光學字符識別)是指電子設備(如掃描儀或數碼相機)檢查字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程,即采用光學的方式將紙質文檔中的文字轉換成為黑白點陣的圖像文件,并通過識別軟件將圖像中的文字轉換成文本格式,供文字處理軟件進一步編輯加工的技術。傳統的OCR技術已經發展了幾十年,如今在人工智能(AI)的推動下,OCR技術又煥發出了新的活力。
● 漢字OCR發展沿革
我國使用漢字的歷史源遠流長,漢字的識別遠比數字、西文要棘手,主要體現在以下三個方面。
1.數量龐大
和10個數字、26個英文字母相比較,漢字的數量可以說是一個天文數字。1994年出版的《中華字海》收錄了87019個漢字,目前計算機上最全的字庫,收錄了91251個漢字。國標GB2312-80字符集有6763個漢字,其中一級漢字3755個,使用頻度已經覆蓋99.7%的使用范圍,二級漢字3008個,兩級漢字總使用頻度達到了99.99%。所以,目前主要解決一級漢字的識別。即使這樣,漢字識別也屬于大類別數的模式識別問題。
2.結構復雜
漢字的結構性很強。漢字可以看作是部件的組合,稱之為偏旁、部首或字根,是筆畫的有意義的組合。筆畫和部首的排列組合,構成了結構異常復雜的漢字。
3.相似字多
很多漢字之間差別很小,有些僅表現為某一個筆畫位置或形態的微小變化。這些漢字即使由人來識別也容易出錯,機器識別的難度可想而知。
正是由于這些原因,漢字的識別一直落后于西文。國際上最早展開對漢字識別的研究是在1966年,BIM公司發表了第一篇關于印刷體漢字識別的論文,利用簡單的模板匹配法,能夠識別1000個印刷體漢字。
1977年東芝綜合研究所研制出可以識別2000個單體印刷漢字的識別系統;20世紀80年代初期,日本武藏野電氣研究所研制出可以識別2300個多體漢字的印刷體漢字識別系統,識別率達到99.88%,識別速度大于100字/秒。
我國對漢字識別的研究主要分為三個階段:①探索階段(1979—1985年)。我國對漢字的識別研究是從20世紀90年代開始的,研制出了模擬識別軟件和系統,發表了一些論文成果,為漢字的識別打下了堅實的基礎。②研制階段(1986—1988年)。這三年是漢字識別技術研究的高潮期,總共有11個單位進行了14次印刷體漢字識別的成果鑒定,識別率高達99.5%以上,識別速度達到10~14字/秒。由于印刷體文字形狀發生了變化,軟件的適應性和抗干擾性比較差,實際上識別率是比較差的,還達不到實用的效果。③實用階段(1989年至今)。國家高技術研究發展計劃(863計劃)、國家重點科技攻關計劃、國家自然科學基金和軍事基礎研究基金都對印刷體漢字識別這一研究課題給予了極大的重視和大力的支持。目前,印刷體漢字識別和聯機手寫漢字識別走向實用化,其技術水平和當前世界最高水平并駕齊驅。清華大學電子工程系研制由清華紫光集團推出的TH-OCR、漢王集團推出的漢王OCR、尚書OCR,是我國印刷體漢字識別領域的翹楚。
2016年,阿爾法狗與世界冠軍李世石在圍棋領域的驚世駭俗的一戰,極大地推動了人工智能研究的熱潮,以深度學習、卷積神經網絡技術為代表的人工智能思想,在各個領域都得到了研究和應用。OCR技術在人工智能的推動下,進入了一個新的發展階段。和傳統OCR聚焦在印刷體漢字識別上不同,人工智能助推下的OCR對手寫體的識別更上一層樓,在各種不同復雜背景環境下的文字識別也進入實用階段。iOS15剛剛推出的圖片識別文字(Live Text)功能,就是蘋果公司人工智能研究的成果。我國互聯網科技公司也扎堆人工智能跑道,百度、搜狗、騰訊、有道等都推出了OCR接口,可供我們使用或軟件調用。可以預見,類似Live Text功能的軟件將很快普及,各種復雜環境下的文字識別(場景文字識別)將不斷提高識別率和識別速度,達到好用、易用的目的。
● 傳統漢字OCR原理
目前現存大量傳統漢字OCR軟件的技術線路如下圖所示。
1.文件管理
通過掃描儀、手機、相機等儀器采集需要識別的文字圖片。
2.圖像增強
圖像增強即是對圖像的成像進行修正,特別是手機、相機拍攝的圖片,如果不進行修正,將極大地影響文字識別率。處理過程包括灰度化、二值化、幾何變換(透視、扭曲、旋轉等)、畸變校正、圖像增強和光線校正、圖像平滑、行字切分等。
(1)灰度化
我們得到的文字圖片大多是彩色的,無疑會有很多干擾信息,對文字識別很不利。通過灰度化處理,將原本由三維描述的像素點映射為一維描述的像素點,可以排除多余的干擾。
(2)二值化
所謂二值化,就是把灰度值圖像信號轉化為只有黑和白的二值圖像信號,將漢字從圖像中分離出來。通常先確定像素的閾值,然后用像素的值和閾值比較,確定這個像素點為1或0。如果閾值太小,保留的信息過多,許多無用信息就會干擾以后的處理;如果閾值太大,則會丟失正常的信息,最終使得文字信息不完整,無法準確識別。
(3)行字切分