免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
OpenCV3入門教程(三)Tesseract

------韋訪 20181016

1、概述

上一講學(xué)習(xí)了怎么樣用opencv識別車牌,但是,我們只做到了將車牌上的字符分割出來,還沒有對字符進行識別,這一講先來學(xué)習(xí)OCR(Optical Character Recognition,光學(xué)字符識別)。目前OCR用的比較多的是開源框架Tesseract-OCR,所以就挑這個來學(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版本的對應(yīng),如下表,

 

安裝命令如下,

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

tar -zxvf leptonica-1.74.4.tar.gz 

cd leptonica-1.74.4/

./configure

make -j8

編譯安裝:

先cd到源碼的根目錄,然后運行

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測試文字識別:

 

我們要識別的圖片如上圖,運行以下命令,

tesseract 05.png 05 -l chi_sim

-l可以指定字庫文件,chi_sim是識別中文的字庫,運行后會生成05.txt文本文件,

 

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

tesseract 05.png 05_en -l eng

運行結(jié)果,

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

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

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

tesseract 05.png 05 -l chi_sim+eng

運行結(jié)果,

3、Python編程

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

sudo pip install pytesseract

安裝好以后,識別圖片里的字符就很簡單了,執(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)

運行結(jié)果:

4、試著用官方字庫識別車牌

上面的例子既然能識別中文、英文和數(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))

運行結(jié)果:

什么都沒識別到,試試中文呢?原圖片為

,運行結(jié)果:

也什么都沒識別出來。

5、訓(xùn)練

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

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

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

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

 

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

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
GF漢化詳細教程[內(nèi)核修改篇]
9000款字體送給你:5000款經(jīng)典中文 3500款絕版英文 500免費商用
手機字庫
車牌識別系統(tǒng)
做設(shè)計的~來看看字體吧~
運行命令,最實用的工具。
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服