緬甸聯邦共和國,原名緬甸,是東南亞的一個國家,從1962年到2010年,緬甸一直被政變后上臺的軍政府統治,直至最近5年它才對外界開放,與其他國家建立了貿易與文化聯系。
緬甸語由很多方言組成,但所有方言都共享一個核心字母表,該核心字母表主要用于正式文本和印刷媒體,有33個輔音和12個輔助字符,地區方言可能還使用其 他字符,完整列表大約有核心字母表的三倍大。幸運的是,我們的工作是識別使用流行的至少10點大小的緬甸3字體書寫的標準緬甸文本,文本圖像可以是灰度、 黑白或彩色的,分辨率至少有300dpi,下面是典型的緬甸文本樣板:
用ABBYY OCR識別技術在電腦上閱讀緬甸語
在項目初步階段,我們必須實現75%的OCR準確度,最小目標準確度為94%。
緬甸腳本就是所謂的alphasyllabary,在這里每一個輔音字母也都傳達“默認”元音聲,其他元音聲使用特殊字符和輔音上面、下面、前面、后面的變音符號甚至輔音周圍的變音符號轉錄。
字母大多由半圓組成,因為在過去,文本都是寫在棕櫚葉上,很容易被直線切口損壞。
緬甸語是一種有聲調的語言,有三個主要聲調—高、低和嘎吱聲,和兩個次要聲調—入耳調和降調。
由于聲調也要在書寫中進行轉錄,緬甸腳本實際上有兩種可分辨的符號,可能放在主要字母上面、下面或同時放在主要字母的上面和下面,這兩種層疊的可分辨系統給OCR軟件帶來了重大挑戰,但不僅僅如此。
若要讓事情變得更復雜,有些字母組合可以融合在一起形成新字符。
在大多數常規術語中,光學字符識別如雷貫耳。當OCR軟件收到圖像文件時,它會使用OCR技術執行一些初步處理,將圖像轉換為黑白文本并糾正看得見的扭 曲,接下來檢測包含不同類型文本(標題、正文、腳注)、照片和表格的區域,文本塊隨后解析成行,行再到單詞,單詞再到字母,單個字母識別完成之后,文本將 自下至上重組,緬甸文本的圖像處理和板塊檢測和大多數其他語言里的操作一樣,但是檢測文本行是一件棘手的事。
由于變音符號的豐富性,教電腦識別短文本行非常困難,這就是原因所在,我們的運算法則使用很多功能體現文本行,其中的一個功能是虛構的基線,所有主要字符都位于這個基線上,電腦需知道在哪里畫一條基線,以便生成有關單個字符的合理假設。
電腦使用統計數據檢測基本文本行,為了收集必要的數據,要觀察構成字母的黑點生成的直方圖上的峰值,在歐洲字母的直方圖上,有三個清晰可見的峰值對應于基線和小寫字母的高度:
然而在緬甸語中,文本行正常寬度以外的眾多變音符號在直方圖中導致額外的統計學上有意義的峰值,為此,我們的最初面向歐洲腳本的運算法則,無法正確地識別緬甸文本行的重要參數。
在下面的圖形中,程序正確地檢測到了前兩行,但沒有檢測到第三行:
針對文本行檢測運算法則,我們必須要做一些調整,讓其同樣適用于緬甸文本。
文本行檢測到之后,我們開始尋找單詞和字母之間的間隙,這一次,我們運用了水平直方圖,將大的間隙假設為單詞之間的空隙,小的間隙理解為字母之間的空隙,檢測緬甸文本中的空隙幾乎沒有出現問題,不像泰語,幾乎沒有空隙。(我們的OCR技術可以識別泰語文本,多達200種其他語言)
將文本行劃分為更小的片段之后,我們嘗試將片段劃分為單個字符,再一次在直方圖上觀察高峰和低谷值,低谷對應于字母之間的可能間隙,有些間隙可以很確定地檢測到,有些則需要通過各種試探法進行驗證。
以下圖形展示了英語單詞的直方圖:
緬甸腳本中的大量半圓字符產生了很多“錯誤”高峰和低估,使得檢測空隙變得更難,但是直方圖法同樣適用于緬甸語。
現在我們可以嘗試識別單個字符,確切地講是字母,字母就是字符的圖形表現形式,但它不是一一對應的。在歐洲文本中,一個字母可能對應多個字符(比如大寫的 “C”和小寫的“c”屬于同一個字母),且一個字符可能由多個字母傳達(比如,字母“a”在不同的字體中可能由不同的字母表示)。
沒有標準的字母列表,因此我們手動編譯,為每個字母指定所有可能的字符,再在候選單詞產生的時候將字母翻譯成字符。
正如我們之前注意到的,緬甸腳本中存在大量可分辨的字符,其中很多可以與他們主字母融合形成新字符:
如果某個變音符與其字母分離,我們先識別該字母,然后識別變音符,最后結合識別結果獲獲取新字母。如果某個變音符和其字母形成不可分割的單元,我們會嘗試整體識別。
融合字符在緬甸書寫系統中如此普遍以至于我們不得不提升技術以識別3500種新字母,這遠遠超過我們通常添加新語言的工作量。
字母識別完成之后,必須將其翻譯成Unicode字符,然后組成單詞。該過程對于歐洲語言相當簡單,只需一個一個識別字符然后翻譯為Unicode,但針對緬甸融合字符,則需要特別對待。
在翻譯字符過程中有一個特定的正確順序,在這個順序中緬甸字母必須通過鍵盤輸入,這樣Windows才能將它們連接起來,有些字符必須在其他所有字符輸入之后再進行輸入,這樣Windows才能在劃分音節一開始將它們放置在正確的位置。
例如:在文本編輯器中鍵入下面這個單詞:
用戶必須按照字符的下面順序鍵入字符:
我們已在我們的技術中加入了特殊修正后模塊,確保結果單詞遵從這些鍵入規則,所有文本都識別完成之后,模塊再次閱讀識別的文本,檢查字符順序是否正確,緬甸語是一種結構非常好的語言,有足夠的正式規則支持這些檢查。
完成此項目花了我們4個月時間,最終識別準確度高達97%(客戶要求至少94%),未來應該會實現識別更多的緬甸語字體。
新聞熱點
疑難解答