安裝 Tesserocr (填坑)

轉(zhuǎn)載請注明出處:http://www.reibang.com/u/5e6f798c903a

環(huán)境:

  • Win10_64
  • Python 3.6.6,安裝路徑 C:\Python36 (后面會用到該路徑)

1. 安裝 Tesserocr

tesserocr 是 Python 下的一個 OCR 識別庫渤闷,該庫本質(zhì)上是對 tesseract 做了一層 Python API 封裝。通過 tesserocr 的 PyPI頁面撮弧,可以找到該項目的 GitHub 倉庫 潘懊。倉庫的 README.rst 中介紹了 Windows 平臺的安裝方式,原文如下:

The proposed downloads consist of stand-alone packages containing all the Windows libraries needed for execution. This means that no additional installation of tesseract is required on your system.

--snip: 這里跳過了使用 Conda 安裝的方式贿衍,需要的話可以查看原文檔--

pip:Download the wheel file corresponding to your Windows platform and Python installation from simonflueckiger/tesserocr-windows_build/releases and install them via:

> pip install <package_name>.whl

按照文檔的意思授舟,由于 stand-alone packages 中包含了 Windows 下所需的所有庫。如果使用 stand-alone packages 安裝 tesserocr 舌厨,便無需再額外安裝 tesseract 岂却。

這里一定要通過獨立的 .whl 文件安裝,不要通過 pip3 install tesserocr 直接安裝裙椭,因為在 Windows 上會失敗——據(jù)說這種方式只能用于 Linux躏哩,但我沒有仔細研究過。

選擇安裝包時揉燃,tesserocr 和 tesseract 的版本要匹配扫尺,如 "tesserocr v2.2.2 (tesseract 4.0.0 master)" 釋放,表明 "tesserocr-2.2.2" 要配合 "tesseract 4.0.0 master" 使用炊汤。如果 tesserocr 與 tesseract 間版本不匹配正驻,識別結(jié)果中會出現(xiàn)非預(yù)期字符。例如抢腐,若是將 "tesserocr-2.2.2" 與 "tesseract 3.5.2" 搭配使用姑曙,結(jié)果中便會出現(xiàn)非預(yù)期字符。

由于迈倍,目前 Windows 下 tesseract 的最新穩(wěn)定版是 3.5.2伤靠,于是我試圖安裝 "tesserocr v2.2.2 (tesseract 3.5.1)" 版本的 .whl 文件,卻提示該 .whl 文件不支持當前平臺啼染,無法安裝宴合。所以,只能安裝 "tesserocr v2.2.2 (tesseract 4.0.0 master)" 版本迹鹅,在后文中需要配合 "tesseract 4.0.0 master" 使用卦洽。

1.1. 坑-1

如果依照官方文檔,只安裝了 tesserocr 的 .whl 文件斜棚,并嘗試運行如下測試代碼:

import tesserocr
from PIL import Image
image = Image.open('image.jpg') # 可在文末找到image.jpg
print(tesserocr.image_to_text(image))

便會得到如下錯誤提示:

Traceback (most recent call last):
  File "c:/Users/iwhal/Documents/GitHub/python_notes/notes_of_crawler/code_of_learn_is_ignored/test_of_tesserocr .py", line 4, in <module>
    print(tesserocr.image_to_text(image))
  File "tesserocr.pyx", line 2401, in tesserocr._tesserocr.image_to_text
RuntimeError: Failed to init API, possibly an invalid tessdata path: C:\\

Traceback 告訴我們:tessdata 路徑無效阀蒂,無法初始化 API。

錯誤的原因是:stand-alone packages 雖然包含了 Windows 下所需的所有庫弟蚀,但并是不包含語言數(shù)據(jù)文件(language data files)脂新。并且數(shù)據(jù)文件需要被統(tǒng)一放置在 tessdata\ 文件夾中,并置于 C:\Python36 內(nèi)粗梭。

獲得數(shù)據(jù)文件有如下兩種方式:

  • 方法一:按照下一節(jié)的方法安裝 "tesseract-ocr-w64-setup-v4.0.0-beta.1.20180608.exe"(因為要與 tesserocr-2.2.2 匹配)。然后级零,將 C:\Program Files (x86)\Tesseract-OCR\ 下的 tessdata\ 文件夾復(fù)制到 C:\Python36\ 下即可 断医。
  • 方法二:無需安裝 tesseract 滞乙,只需克隆 tesseract 倉庫的主分支,然后將其中的 tessdata\ 文件夾復(fù)制到 C:\Python36\中鉴嗤。接下來斩启,通過 tessdata_fast 倉庫下載 eng.traineddata 語言文件,并放置于 C:\Python36\tessdata\ 內(nèi)即可醉锅。

可見兔簇,解決此問題的關(guān)鍵在于獲得 tesseract 的 tessdata\ 文件夾,并不一定要安裝 tesseract 硬耍,但 tesseract 的版本一定要正確垄琐。

接下來嘗試運行之前的代碼:

import tesserocr
from PIL import Image
image = Image.open('image.jpg') # 可在文末找到image.jpg
print(tesserocr.image_to_text(image))

便會輸出:

4VC7

1.2. 坑-2

為什么要使用 tessdata_fast 倉庫 中的語言數(shù)據(jù)文件,而不使用 tessdata_best 倉庫tessdata 倉庫 中的文件喃经柴?

因為狸窘,我使用了三個倉庫各自的 eng.traineddata 文件,來識別了文末的驗證碼坯认,發(fā)現(xiàn)只有 tessdata_fast 倉庫 的識別結(jié)果與預(yù)期相同翻擒,另外兩個都沒有輸出。 但對于更加簡單的內(nèi)容牛哺,tessdata 倉庫tessdata_best 倉庫 都有輸出陋气,但前者表現(xiàn)更好。 另外引润,"tesseract-ocr-w64-setup-v4.0.0-beta.1.20180608.exe" 安裝包中同樣使用的是 tessdata_fast 倉庫 中的 eng.traineddata 文件巩趁。

2. 安裝 tesseract

通過查看 tesseract 的 GitHub 倉庫Wiki 主頁,可得知 Windows 下的安裝方法 椰拒,原文如下:

Installer for Windows for Tesseract 3.05-02 and Tesseract 4.00-beta are available from Tesseract at UB Mannheim. These include the training tools. Both 32-bit and 64-bit installers are available.

An installer for the OLD version 3.02 is available for Windows from our download page. This includes the English training data. If you want to use another language, download the appropriate training data, unpack it using 7-zip, and copy the .traineddata file into the 'tessdata' directory, probably C:\Program Files\Tesseract-OCR\tessdata.

To access tesseract-OCR from any location you may have to add the directory where the tesseract-OCR binaries are located to the Path variables, probably C:\Program Files\Tesseract-OCR.

大意是在 Tesseract at UB Mannheim晶渠,可獲得 Windows 安裝包。 轉(zhuǎn)到 UB-Mannheim/tesseract/wiki 后可見到下載鏈接燃观,如下:

The latest installers can be downloaded here: tesseract-ocr-setup-3.05.02-20180621.exe, tesseract-ocr-w32-setup-v4.0.0-beta.1.20180608.exe and tesseract-ocr-w64-setup-v4.0.0-beta.1.20180608.exe (new, 64 bit, experimental). There are also older versions available.

如果需要 older versions 可以去到 https://digi.bib.uni-mannheim.de/tesseract/ 下載褒脯。 這里需要安裝 "tesseract-ocr-w64-setup-v4.0.0-beta.1.20180608.exe",因為要與 tesserocr-2.2.2 匹配缆毁。
另外番川,tesseract 的文檔位于 https://github.com/tesseract-ocr/tesseract/wiki/Documentation

2.1 語言包

通過 wiki 的 Data Files 部分,我們可以下載經(jīng)過訓(xùn)練的語言包脊框。將下載后的語言包颁督,直接放到C:\Program Files (x86)\Tesseract-OCR\tessdata 即可使用。

注意語言包有三個分支:

在使用語言數(shù)據(jù)時要注意區(qū)分 Tesseract 的版本浇雹,3.04 或 3.05 的語言數(shù)據(jù)需要從 3.04 tree 獲取沉御。在 Data Files 中可以了解到更多語言包的分支,及其區(qū)別昭灵。

3. 附件

驗證碼
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吠裆,一起剝皮案震驚了整個濱河市伐谈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌试疙,老刑警劉巖诵棵,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異祝旷,居然都是意外死亡履澳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門怀跛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來距贷,“玉大人,你說我怎么就攤上這事敌完〈⒛停” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵滨溉,是天一觀的道長什湘。 經(jīng)常有香客問我,道長晦攒,這世上最難降的妖魔是什么闽撤? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮脯颜,結(jié)果婚禮上哟旗,老公的妹妹穿的比我還像新娘。我一直安慰自己栋操,他們只是感情好闸餐,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著矾芙,像睡著了一般舍沙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上剔宪,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天拂铡,我揣著相機與錄音,去河邊找鬼葱绒。 笑死感帅,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的地淀。 我是一名探鬼主播失球,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼帮毁!你這毒婦竟也來了她倘?” 一聲冷哼從身側(cè)響起璧微,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎硬梁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胞得,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡荧止,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了阶剑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跃巡。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖牧愁,靈堂內(nèi)的尸體忽然破棺而出素邪,到底是詐尸還是另有隱情,我是刑警寧澤猪半,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布兔朦,位于F島的核電站,受9級特大地震影響磨确,放射性物質(zhì)發(fā)生泄漏沽甥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一乏奥、第九天 我趴在偏房一處隱蔽的房頂上張望摆舟。 院中可真熱鬧,春花似錦邓了、人聲如沸恨诱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽照宝。三九已至,卻和暖如春痕鳍,著一層夾襖步出監(jiān)牢的瞬間硫豆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工笼呆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留熊响,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓诗赌,卻偏偏與公主長得像汗茄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子铭若,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1洪碳、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,980評論 3 119
  • 3.1 認知負荷 最小化受眾感知到的認知負荷递览,最大化數(shù)據(jù)的墨水比 3.2雜亂 讓圖形顯得不必要的復(fù)雜 3.3視覺認...
    dreamhappy2009閱讀 418評論 0 0
  • 1本篇文章中學到的最重要的概念 ①每個人都是不一樣的,都是自己不一樣的煙火瞳腌,正是每個人的不同才構(gòu)成了這個豐富多彩的...
    103王舒閱讀 392評論 5 3
  • 背景 由于升級了最新版本的mac操作系統(tǒng)绞铃,導(dǎo)致以前的python腳本不能用了,網(wǎng)上搜集了相關(guān)的資料發(fā)現(xiàn)老版本的命令...
    Daniel_Guo閱讀 342評論 0 5