OCR技術分析
內容發展分項計畫/程婉如
OCR在技術研發方面以文件分析與光學文字辨識研究為主,其中文件分析包括彩色背景的去除、文件區塊(文字、影像、表格)的分離、直橫排的偵測、閱讀順序的決定等;而光學文字辨識則包括文字切割、手寫或印刷字之判斷、印刷字體的偵測、手寫及印刷中文和英數字的辨認核心等。OCR的處理過程除了本身的辨識引擎之外,還可針對辨識前的影像圖檔或辨識後的結果做進一步的處理與分析。以下略為描述前處理、辨識引擎及後處理等步驟。
一、前處理
期刊報紙等物件經由掃描成為影像檔至進入辨識引擎之前,這期間的處理過程均屬於前處理範圍。此步驟又可分為影像處理、版面分析與字元切割等三部分。
(一)、影像處理
本文曾說明物件本身的文字與底色反差明顯者較宜進行OCR,亦即直接以黑白文件且清楚而無雜點者進行掃描較佳,然而,為避免因掃描品質不佳而使得黑白文件影像檔中的字元產生破碎或模糊不清,如今OCR辨識系統已能允許彩色或灰階的文件影像輸入,並利用影像處理技術求得較佳的黑白影像檔,以提高辨識率的準確性。
(二)、版面分析
由於OCR辨識引擎通常只辨認單一字元,因此文件影像需先經過版面分析,而版面分析原理及使用技術敘述如下:
1.版面分析原理
將文件區分為影像、表格與文字三種區塊,其中影像區塊是不可辨認者,可經過壓縮予以儲存;表格區塊則經過格線抽取、交點偵測、欄位抽取等,將表格的格線與欄位分離,而表格的欄位和文字區塊,則需經過文字行的抽取與字元的切割,將每個字元抽取出來後再進入辨識引擎做辨認處理。
2.版面分析使用技術
(1).區塊分割
在一般文件影像中,每個區塊均會以空白行(大小不定)做區隔,因此可以利用「遞迴投影法」(Recursive projection analysis) 或「相連元件偵測法」(Connected component detection)來做區塊切割。上述兩種方法在理想情況下,可將每一文字行切出,甚至切出每個字元,然而面對版面傾斜的文件,「遞迴投影法」則較無法獲得準確的切割位置。
(2).區塊型態判斷
上述區塊分割之後,通常會以下列三種區塊特性進行區塊的型態判斷:
A.黑白點比例
首先,先計算區塊內的黑白點比例,若黑點遠多於白點,則可能為影像區塊。
B.線段的存在
若區塊內可找到數段直線,則可能是表格區塊。
C.相連元件的平均大小與間隔
區塊內相連元件的大小與間隔分佈平均,且找不到直線,則應為文字區塊。
(3).傾斜校正
一般而言,OCR通常可進行些微傾斜字元的辨識(傾斜角度在正負0.5度以內),但若傾斜角度過大,將會影響版面分析與文字辨識率,因此在版面分析階段,通常會先做傾斜角度的偵測與校正。而目前新技術「地理性校正」已能克服不僅是頁面甚或內容文字傾斜時進行曲度修正,並盡量將影像頁面調整至水平以利後續OCR辨識作業。
(三)、字元切割
當版面分析將每行或段落文字切出後,在進行辨識之前,尚須將每一文字元切割清楚。在此可利用一些文字特性,來決定哪些是正確的切割位置。例如,中文字乃方正字,若採用某切割位置,則可能導致切出太狹長的字元而無法採用。但若辨識文件為中英文夾雜者,可將切出的非方正字先進行英文辨識,如果辨識結果符合原字元,則此切割位置方法將可採用。當辨識文件中的每行字元間距夠明顯,即可提高字元切割的效率與速度。
二、辨識引擎
當字元切割完成後,即可將每個字元影像以辨識引擎進行辨認。最基本的辨認方式,即將字元影像與資料庫中每個中文字的影像比對,並計算相對位置的顏色是否相同,找出差異最小者即為辨識結果。辨識引擎的內部技術有特徵抽取、特徵比對與加速技術。
三、後處理
一般而言,在文件本身的影像品質不佳的情況下,辨識率其實不易達到令人滿意的效果,然而在後處理的技術方面,加強OCR系統學習功能是有可能微幅提高辨識率的。此部份可採取字典查詢或者前後文相關方法來進行:
(一)、字典查詢法
針對辨識內容特定的需求與用途(例如名片辨識、新聞字幕等),可事先內建辭典以提供候選字做更正的步驟。以名片辨識而言,通常會有一欄位為「電話:」,而其後緊接的字元就可限制為阿拉伯數字及特定字(如#、轉、分機等),如此便能降低辨識系統誤認的情況。
(二)、前後文相關法
蒐集大量辨識字元,並統計每個字元前後相關聯字出現最頻繁者,讓OCR系統具備自動學習關聯字之功能,待完成辨識結果後,即可以本身字元的候選字加上前後文來判斷最有可能的辨識結果。