小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

OpenCV3入門教程(三)Tesseract

 行走在理想邊緣 2019-05-12

------韋訪 20181016

1、概述

上一講學(xué)習(xí)了怎么樣用opencv識(shí)別車牌,但是,我們只做到了將車牌上的字符分割出來,還沒有對(duì)字符進(jìn)行識(shí)別,這一講先來學(xué)習(xí)OCR(Optical Character Recognition,光學(xué)字符識(shí)別)。目前OCR用的比較多的是開源框架Tesseract-OCR,所以就挑這個(gè)來學(xué)學(xué)。

2、Tesseract-OCR安裝

Ubuntu的話,直接執(zhí)行命令:

sudo apt-get install tesseract-ocr

就可以安裝了,我沒試過。下面我們用源碼安裝。

下載tesseract-ocr源碼:

Github地址為:https://github.com/tesseract-ocr/tesseract

安裝步驟可以參考文檔:https://github.com/tesseract-ocr/tesseract/wiki/Compiling

安裝依賴:

首先安裝一些依賴工具和庫:

sudo apt-get install g++ # or clang++ (presumably)

sudo apt-get install autoconf automake libtool

sudo apt-get install pkg-config

sudo apt-get install libpng-dev

sudo apt-get install libjpeg8-dev

sudo apt-get install libtiff5-dev

sudo apt-get install zlib1g-dev

如果想自己訓(xùn)練數(shù)據(jù),則還要安裝以下工具:

sudo apt-get install libicu-dev

sudo apt-get install libpango1.0-dev

sudo apt-get install libcairo2-dev

再安裝Leptonica:

注意Tesseract和Leptonica版本的對(duì)應(yīng),如下表,

 

安裝命令如下,

wget http://www./source/leptonica-1.74.4.tar.gz

tar -zxvf leptonica-1.74.4.tar.gz 

cd leptonica-1.74.4/

./configure

make -j8

編譯安裝:

先cd到源碼的根目錄,然后運(yùn)行

mkdir local

./autogen.sh

./configure --with-extra-libraries=/usr/local/include

make -j8

sudo make install

sudo ldconfig

如果上面命令都通過,再執(zhí)行命令

tesseract

如果打印如下信息則說明安裝成功。

安裝語言包:

git clone https://github.com/tesseract-ocr/tessdata.git

然后將所有的.traineddata文件拷貝到/usr/local/share/tessdata/文件夾。

用tesseract測(cè)試文字識(shí)別:

 

我們要識(shí)別的圖片如上圖,運(yùn)行以下命令,

tesseract 05.png 05 -l chi_sim

-l可以指定字庫文件,chi_sim是識(shí)別中文的字庫,運(yùn)行后會(huì)生成05.txt文本文件,

 

可以看到,中文識(shí)別出來了,但是英文的都識(shí)別出什么鬼咯!那指定一個(gè)英文的字庫文件看看效果如何?運(yùn)行命令,

tesseract 05.png 05_en -l eng

運(yùn)行結(jié)果,

這下英文識(shí)別正確,中文沒識(shí)別出來。就不能同時(shí)識(shí)別中文和英文嗎?字庫就不能混用嗎?百度了以下,蠻多人都有這個(gè)疑問的,找了老半天,在這個(gè)博客找到方法,

https://www.jianshu.com/p/f09045a4fc8a

把兩個(gè)字庫用加法”+”連起來就可以了,命令如下,

tesseract 05.png 05 -l chi_sim+eng

運(yùn)行結(jié)果,

3、Python編程

想讓python調(diào)用tesseract,得先執(zhí)行以下命令安裝pytesseract,

sudo pip install pytesseract

安裝好以后,識(shí)別圖片里的字符就很簡(jiǎn)單了,執(zhí)行以下代碼,

  1. import pytesseract as pyt
  2. from PIL import Image

  3. img = Image.open('05.png')
  4. text = pyt.image_to_string(img, lang='chi_sim+eng')
  5. print(text)

運(yùn)行結(jié)果:

4、試著用官方字庫識(shí)別車牌

上面的例子既然能識(shí)別中文、英文和數(shù)字,那么,能否直接用來識(shí)別我們上一講提取出來的車牌呢?試試看,

扣出來的字符圖片為,代碼如下,

  1. #encoding:utf-8
  2. import pytesseract as pyt
  3. from PIL import Image

  4. img = Image.open('chepai_img0.jpg')
  5. text = pyt.image_to_string(img, lang='chi_sim+eng')
  6. print('車牌:' + str(text))

運(yùn)行結(jié)果:

什么都沒識(shí)別到,試試中文呢?原圖片為,運(yùn)行結(jié)果:

也什么都沒識(shí)別出來。

5、訓(xùn)練

既然使用官方的字庫無法識(shí)別出字符,那么,我們就應(yīng)該訓(xùn)練自己的數(shù)據(jù),訓(xùn)練需要用到一個(gè)工具---jTessBoxEditorFX,這個(gè)工具是java寫的,我的系統(tǒng)是ubuntu,jTessBoxEditorFX根目錄如下圖,

Windows系統(tǒng)直接雙擊train.bat文件即可,linux系統(tǒng)則運(yùn)行train腳本,我電腦運(yùn)行腳本后,提示錯(cuò)誤如下:

Error: Could not find or load main class net.sourceforge.tessboxeditor.JTessBoxEditor

搞了半天不知什么原因,在我自己的電腦上運(yùn)行也是這個(gè)問題,我就想會(huì)不會(huì)是這個(gè)工具不支持openjdk導(dǎo)致的?因?yàn)槲覂膳_(tái)電腦安裝的都是openjdk,然后,將openjdk改成Oracle的,果然就可以了。因?yàn)楣倦娔X要編譯安裝7.1系統(tǒng),只能用Openjdk,所以就不改公司電腦環(huán)境了,先往后學(xué),以后再補(bǔ)上OCR自己訓(xùn)練字庫這部分。

 

如果您感覺本篇博客對(duì)您有幫助,請(qǐng)打開支付寶,領(lǐng)個(gè)紅包支持一下,祝您掃到99元,謝謝~~

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多