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