當前位置:成語大全網 - 書法字典 - 宇宙魔方可以識別哪些語言?

宇宙魔方可以識別哪些語言?

多種字體、多種語言的字符識別是實際應用中常見的問題。

經過測試和檢查tesseract3.01的源代碼,tesseract 3.01不支持多語言多字體OCR識別。

Tesseract3.01版本不支持新訓練的數據,也不支持通過添加原字符集的方式聯合使用多個訓練庫。

如何使用tesseract進行多語言或多字體識別?

壹種方法是自己訓練字符集,把所有字體和語言的訓練數據放到壹個訓練數據文件裏。可惜這種方法需要龐大的訓練樣本數據,工作量大,而且拋棄了原有的google訓練庫。

另壹種方法是將宇宙魔方升級到3.02版本。目前3.02版本還沒有發布,需要下載源代碼,自己編譯生成。宇宙魔方3.02支持多個訓練庫的聯合使用,這樣就可以支持多語言多字體的識別,而且宇宙魔方3.02的固有數據集要增加大量的樣本,因為它的體積比3.01版本的數據文件大很多。

介紹了采用tesseract開源OCR引擎進行多語言OCR識別的原理和算法。這裏我記錄下我對這篇文章的理解。

OCR字符識別的熱點趨勢:

拉丁語->;中文、日文、韓文-& gt;阿拉伯語-& gt;印地語

這些語言各有特色。

漢字和日語:有壹些相同的字符,但字符有成千上萬的形狀和結構。

韓文:自身獨特的文本結構,且數量較多。

阿拉伯語:字母寫在壹起,字母位置不同,形狀也不同。

印地語:將字符連接起來,形成數以千計的形狀來代表不同的音節。包含了阿拉伯語和韓語面臨的問題。

漢字、朝鮮語和印地語都有偏旁部首和詞根的結構。漢字與朝鮮語相比,字根在不同的字裏,形狀也不固定,往往與其他部首連寫。印地語更復雜。

另壹篇文章介紹了拉丁字符識別。下面是壹些沒有提到的想法和問題。

1.分析連通區域後,找出blob,即單個字母塊。

2.線檢測。使用等間距檢測和分割算法,包括識別單詞和字母之間的空白差異。

3.識別單個字符,對初始識別效果差的字符進行切分和關聯。對於許多可能性,使用字典距離計算來選擇最佳可能性。

4.多次識別:將識別效果好的字符作為訓練樣本,對其他不好的字符進行再次識別。(自適應分類器)

問題:

通常,字母是單個連通區域,但也有例外。壹個字母有多個相連的區域或嵌套的孔,例如壹個圓圈中有壹個C或R的字符。

-

文章的構成:

1.水平、垂直和混合排列

宇宙魔方最初支持水平排列的處理。如果處理各種排列,宇宙魔方需要考慮更多的特征檢測。

段落縮進的檢測;字符間距檢測(垂直字符的中值間距小於字符的平均大小);文本行(列)檢測

另外,對於豎排占多數的頁面,可以旋轉90度,使大部分文字轉化為橫排,降低豎排的誤檢率。

混合排列是存在的,在各種角色中都很常見,所以宇宙魔方要處理這些情況。

2.文本行和列檢測

線路檢測算法:

每行文字中字符的直接間距比較小,壹般比行距小,壹般字符大小也差不多,除了壹些特殊位置的字符。使用此功能,相鄰的字符串被連接起來形成壹條線。多條線形成後,還有多條平行線,多條平行線形成壹個模塊。

不同平行線形成的排版可以分割整頁。

行檢測完成後,您可以檢測行中的單個字符。對於拉丁文字來說,空格是最小識別單位的特征,而有些語言的空格特征並不明顯,比如漢字,字與字之間沒有空格的區別,詞根之間也有空格。把壹個連通區域作為壹個獨立的識別單元,這種識別方法缺乏整體識別能力,比如字典。壹種解決方案是首先識別標點符號,但對於長句,仍然有局限性。

如果有混合語言,字符的大小特征可能會有所不同,比如拉丁文和漢字。這需要不同的語言字符和不同的過濾閾值。

3.西裏爾文古斯拉夫語,類似俄語,小寫字母x的高度估計。

拉丁字符檢測方法不適用於此語言。

俄羅斯探測需要應用其他特征。我對這裏的俄語不太熟悉,就忽略了。

4.單詞和短語的識別

包括分割、搜索和形狀分類。

字母語言的識別不同於象形文字的識別。象形文字的界限不像字母表那樣清晰。

對於象形文字之間的關聯,tesseract使用最佳優先搜索法在字典中查找匹配的單詞,這比字母單詞搜索需要更深的搜索層次。

形狀分類

線寬和線長可以作為字符的形狀特征。對於壹個詞或字,可以先做壹個粗略的分類,選擇幾個近似的分類,然後再做壹個細致的分類,從候選類別中選出可能的類別。

6.上下文關聯的後處理

字典搜索