------韋訪 20181016 1、概述上一講學習了怎么樣用opencv識別車牌,,但是,,我們只做到了將車牌上的字符分割出來,還沒有對字符進行識別,,這一講先來學習OCR(Optical Character Recognition,,光學字符識別)。目前OCR用的比較多的是開源框架Tesseract-OCR,,所以就挑這個來學學,。 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 如果想自己訓練數(shù)據(jù),,則還要安裝以下工具: sudo apt-get install libicu-dev sudo apt-get install libpango1.0-dev sudo apt-get install libcairo2-dev 再安裝Leptonica: 注意Tesseract和Leptonica版本的對應,,如下表,
安裝命令如下,, 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到源碼的根目錄,,然后運行 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í)行以下代碼,,
運行結(jié)果: 4,、試著用官方字庫識別車牌上面的例子既然能識別中文、英文和數(shù)字,,那么,,能否直接用來識別我們上一講提取出來的車牌呢,?試試看, 扣出來的字符圖片為,,代碼如下,,
運行結(jié)果: 什么都沒識別到,試試中文呢,?原圖片為,,運行結(jié)果: 也什么都沒識別出來。 5,、訓練既然使用官方的字庫無法識別出字符,,那么,我們就應該訓練自己的數(shù)據(jù),,訓練需要用到一個工具---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導致的,?因為我兩臺電腦安裝的都是openjdk,然后,,將openjdk改成Oracle的,,果然就可以了。因為公司電腦要編譯安裝7.1系統(tǒng),,只能用Openjdk,,所以就不改公司電腦環(huán)境了,先往后學,,以后再補上OCR自己訓練字庫這部分,。
如果您感覺本篇博客對您有幫助,請打開支付寶,,領(lǐng)個紅包支持一下,,祝您掃到99元,謝謝~~
|
|