1. 程式人生 > >[python]Tesseract OCR訓練

[python]Tesseract OCR訓練

因為工作中需要自動的識別驗證碼,起初,我們採用市面上的打碼服務,可是隨著量越來越大,打碼服務給我們帶來了很大的成本。經過觀察,有很大一部分的驗證碼還是比較簡單的,因此我們準備自己研發一個驗證碼識別服務,用來識別簡單的驗證碼。
經過本人調研(其實就是google一頓亂搜^_^),發現了Tesseract-OCR,簡單的介紹下它吧:
Tesseract是一個開源的OCR(Optical Character Recognition,光學字元識別)引擎,可以識別多種格式的影象檔案並將其轉換成文字,目前已支援60多種語言(包括中文)。 Tesseract最初由HP公司開發,後來由Google維護,github地址: 

https://github.com/tesseract-ocr/tesseract

OK,讓我們開始吧,本文使用的環境是Centos7。
Tesseract識別影象上文字的時候,需要基於一定的語言庫,我們既可以使用預設的語言庫,也可以自己來定製語言庫。
以下是搭建服務的步驟,記錄下來作為備份。

一、初體驗

首先我們來體驗下預設的語言庫,我們先安裝下環境:

1 2 3 4 5 6 7 $sudo yum install leptonica  leptonica-devel
tesseract tesseract-devel-y $tesseract-v tesseract3.04.00 leptonica-1.72 libgif4.1.6(?):libjpeg6b(libjpeg-turbo1.2.1):libpng1.2.49:libtiff3.9.4:zlib1.2.3:libwebp0.4.3

我們測試2張驗證碼圖片,如下:
1、LXDT.jpg
LXDT
我們執行以下命令,並檢視結果:

1 2 3 4 5 6 $
tesseract LXDT.jpgLXDT-leng Tesseract Open Source OCR Engine v3.04.00with Leptonica $catLXDT.txt LXDT

2、NG8N.jpg
NG8N
我們執行以下命令,並檢視結果:

1 2 3 4 5 6 $tesseract NG8N.jpgNG8N-leng Tesseract Open Source OCR Engine v3.02.02with Leptonica $catNG8N.txt NGsN

在上面的操作中,我們使用tesseract來識別LXDT.jpg圖片,並將結果輸出到LXDT(.txt字尾會自動新增)檔案中,在這裡,我們使用的語言庫是預設的英文庫eng,從結果(LXDT.txt檔案中的內容)可以看出,tesseract正確的識別了LXDT驗證碼。
同樣的步驟,tesseract 將NG8N.jpg識別為了NGsN,本人隨機的挑選了20張類似的驗證碼,使用tesseract預設的語言庫eng,正確的識別了其中的15張,也就是說成功率為75%,可以說是一個不錯的結果了,畢竟默人的eng語言庫識別的是比較標準的字型。但是對於一個線上的服務來說,75%是不夠的,因此我們就需要自己來製作語言庫。

二、訓練樣本資料

在最近幾年,機器學習是比較熱門的技術,其實自制語言庫,然後讓tesseract使用我們自己的語言庫就是機器學習的一個應用(其實本人也只是一個門外漢,大學的時候做數學建模的時候接觸過一些^_^)。
OK,讓我們開始訓練樣本資料吧!
1、準備樣本資料
首先我們需要準備一批樣本資料用於訓練,在這裡,本人準備了530張不同的驗證碼。如下示例:
captcha
2、編譯安裝tesseract-ocr
在訓練資料之前,我們需要手工編譯安裝tesseract-ocr以及它的訓練工具,否則執行過程中會報錯….當然,只需要在自制語言庫的時候編譯安裝,線上的服務使用yum安裝即可。
本人從 https://code.google.com/p/tesseract-ocr/downloads/list 下載 tesseract-ocr-3.02.grc.tar.gz檔案,然後進行安裝,輸入的命令依次為(省略輸出):

1 2 3 4 5 6 7 8 9 $sudo./autogen.sh $sudo./configure--prefix=/usr $sudo make $sudo makeinstall

相關推薦

[python]Tesseract OCR訓練

因為工作中需要自動的識別驗證碼,起初,我們採用市面上的打碼服務,可是隨著量越來越大,打碼服務給我們帶來了很大的成本。經過觀察,有很大一部分的驗證碼還是比較簡單的,因此我們準備自己研發一個驗證碼識別服務,用來識別簡單的驗證碼。 經過本人調研(其實就是google一頓亂

python tesseract-ocr 基礎驗證碼識別功能(Windows)

please 沒有 pan eas pin mage 需要 utf 文件夾 一、環境   windows 7 x64   Python 3 + 二、安裝   1、tesseract-ocr安裝   http://digi.bib.uni-mannheim.

Tesseract-OCR 訓練教程(一)

MF 根據 echo 實際應用 temp sse 自己 文件 替換 實際應用中[font]替換為你自己的字體名,比如newfont、hehe等 1.根據tif生成box文件(位置寬高等信息)tesseract [font].font.exp0.tif [font].font

tesseract-ocr訓練

參考文件: http://my.oschina.net/lixinspace/blog/60124 http://blog.csdn.net/shuzui1985/article/details/8188993 https://code.google.com/p/tesseract-oc

Tesseract-OCR訓練實現對模糊身份證號碼的識別

      根據公司專案需求,需要通過掃描實現身份證號碼的提取,使用官方提供的識別庫,在正常情況下都能夠正確提取出身份證號碼,但是在身份證拍攝模糊的情況下,識別效果並不理想。根據需求,我接觸瞭解到Tesseract,它是一個開源的OCR(Optical Character

Python調用Tesseract-OCR完成圖片OCR識別

3.0 for 安裝 ima pla 2.7 str spa 文件 [硬件環境] Win10 64位 [軟件環境] Python版本:2.7.3 Python庫: 1.1) Pillow 1.2) Pytesseract 其他: 1.1) Tesseract-OCR的可執行

python(pillow /tesseract-ocr/pytesseract)安裝介紹

sun log www. archive 讀取 tro python的安裝 image sim 1、PIL或pillow(Python Imaging Library) 圖像處理庫 原理:Image類是PIL庫中的一個非常重要的類,通過這個類來創建實例可以直接載入圖像

使用 tesseract-ocr生成訓練庫全部指令

rain pen 修改 sha works 文件 conf har charset coding:utf-8 import copyfrom PIL import Image,ImageEnhance im = Image.open(‘d:/workspace/captch

python使用tesseract-ocr完成驗證碼識別

一、 tesseract-ocr    C++編寫,最開始由hp編寫,後來束之高閣,最後決定貢獻給google開源。      原始碼:https://github.com/tesseract-ocr/tesseract &nb

圖片文字識別:Tesseract OCR庫在Python中基本使用

圖片識別:Tesseract OCR庫在Python中基本使用   一.Tesseract - Xmind的筆記     二. 程式碼案例:   基本使用程式碼  import pytesseract from

tesseract-ocr使用以及訓練方法

本人最近在做字元識別,所以自行在網上尋找方法,接觸到tesseract,自己按照網上方法做的時候,也遇到一些問題,解決了一些。所以我決定寫下我第一個部落格,一是方便自己以後檢視,更新學習。二是方便和網友交流學習。 Tesseract介紹          Tesserac

Tesseract-OCR識別中文與訓練字型檔例項

關於中文的識別,效果比較好而且開源的應該就是Tesseract-OCR了,所以自己親身試用一下,分享到部落格讓有同樣興趣的人少走彎路。 文中所用到的身份證圖片資源是百度找的,如有侵權可聯絡我刪除。 一、準備工作 1、下載Tesseract-OCR引擎,注意要3.0以

python+pillow+pytesseract+Tesseract-OCR驗證碼識別[轉]

安裝 pillow,pytesseract ,安裝該模組之後,還需要安裝 tesseract-ocr 。 (PS:如果安裝了pip,可以python的scripts檔案下,輸入cmd,然後輸入pip install pillow安裝最新版的pillow,如果需要安裝其它版本的則要自己下載

Tesseract-OCR 在烏班圖下訓練教程

一、Tesseract訓練 1.下載Tesseract-OCR(相關版本自行選擇)     這個就不多說了,可以百度一下。 2.下載jTessBoxEditor(執行環境為java虛擬機器)     下載百度下載,有很多。開啟資料夾,目錄如下。 把檔案下載到

Tesseract-OCR 字元識別---樣本訓練

        Tesseract是一個開源的OCR(Optical Character Recognition,光學字元識別)引擎,可以識別多種格式的影象檔案並將其轉換成文字,目前已支援60多種語言(包括中文)。 Tesseract最初由HP公司開發,後來由Goo

ubuntu下使用Tesseract-ocr(編譯、安裝、使用、訓練新的語言庫)

這是關於如何使用Tesseract3訓練新的語言的文件,該文件是tesseract-ocr官方wiki上翻譯過來的。 1.介紹 Tesseract3.0x是支援訓練的。這篇文章描述如何訓練的過程,提供適用於各種語言的一些指導方針,以及訓練會得到的結果。對於Tesseract2.0x的訓練參考:Traini

Tesseract-OCR的簡單使用與訓練

轉自 Tesseract,一款由HP實驗室開發由Google維護的開源OCR(Optical Character Recognition , 光學字元識別)引擎,與Microsoft Office Document Imaging(MODI)相比,我們可以不斷的訓練的庫,使影象轉換文字的能力

Tesseract-OCR 字元識別---樣本訓練 圖片識別訓練

        Tesseract是一個開源的OCR(Optical Character Recognition,光學字元識別)引擎,可以識別多種格式的影象檔案並將其轉換成文字,目前已支援60多種語言(包括中文)。 Tesseract最初由HP公司開發,後來由Google維護,目前釋出在Googel Pr

Tesseract-OCR 簡單的中文數字混合訓練

提示,我當前Tesseract-OCR 版本是 4.0 ,jTessBoxEditorFX是2.0.1 1.下載Tesseract-OCR 連結 2.下載jTessBoxEditorFX 連結,如果中文一定要選擇FX版本(基於Java,需安裝JDK) 3.Tessera

google Tesseract-ocr配置及訓練

一、配置 1、  從http://code.google.com/p/tesseract-ocr/downloads/list下載tesseract-ocr-3.02-vs2008、tesseract-ocr-3.02.eng.tar、tesseract-ocr-3.02.