天天看點

Tesserac初探

用 Homebrew(http://brew.sh/)等第三方庫可以很友善地安裝 

在大多數 Linux 系統和 Mac OS X 系統上,你可以這麼設定: <code>$export TESSDATA_PREFIX=/usr/local/share/Tesseract</code>

在 Windows 系統上也類似,你可以通過下面這行指令設定環境變量: <code>#setx TESSDATA_PREFIX C:\Program Files\Tesseract OCR\Tesseract</code>

Tesseract 是一個 Python 的指令行工具,不是通過 import 語句導入的庫。安裝之後,要用 tesseract 指令在 Python 的外面運作,但我們可以通過 pip 安裝支援Python 版本的 Tesseract庫:

你要處理的大多數文字都是比較幹淨、格式規範的。格式規範的文字通常可以滿足一些需求,不過究竟什麼是“格式混亂”,什麼算“格式規範”,确實因人而異。 通常,格式規範的文字具有以下特點:

使用一個标準字型(不包含手寫體、草書,或者十分“花哨的”字型) • 雖然被影印或拍照,字型還是很清晰,沒有多餘的痕迹或污點

排列整齊,沒有歪歪斜斜的字

沒有超出圖檔範圍,也沒有殘缺不全,或緊緊貼在圖檔的邊緣

文字的一些格式問題在圖檔預處理時可以進行解決。例如,可以把圖檔轉換成灰階圖,調 整亮度和對比度,還可以根據需要進行裁剪和旋轉(詳情請關注圖像與信号處理),但是,這些做法在進行更具擴充性的 訓練時會遇到一些限制。

Tesserac初探

通過下面的指令運作 Tesseract,讀取檔案并把結果寫到一個文本檔案中: tesseract test.jpg text

識别結果還比較準确,大體上可以讓你很舒服地閱讀。

運作結果:<code></code>

Tesserac初探

很多時候我們在網上會看到這樣的圖檔:

Tesserac初探

Tesseract 不能完整處理這個圖檔,主要是因為圖檔背景色是漸變的,最終結果是這樣:

随着背景色從左到右不斷加深,文字變得越來越難以識别,Tesseract 識别出的 每一行的最後幾個字元都是錯的。

遇到這類問題,可以先用 Python 腳本對圖檔進行清理。利用 Pillow 庫,我們可以建立一個 門檻值過濾器來去掉漸變的背景色,隻把文字留下來,進而讓圖檔更加清晰,便于 Tesseract 讀取:<code></code>

通過一個門檻值對前面的“模糊”圖檔進行過濾的結果

Tesserac初探

除了一些标點符号不太清晰或丢失了,大部分文字都被讀出來了。Tesseract 給出了最好的 結果:

Tesserac初探

通過給 Tesseract 提供大量已知的文字與圖檔映射集,經過訓練 Tesseract 就可以“學會”識别同一種字型,而且可以達到極高的精确率和準确率,甚至可以忽略圖檔中文字的背景色和相對位置等問題。