1. 程式人生 > >tesseract-ocr字元識別,安裝/測試/訓練 問題/解決方案

tesseract-ocr字元識別,安裝/測試/訓練 問題/解決方案

2018.5.4更新 training tesseract

由於Ubuntu下訓練tesseract 教程不足,還在繼續摸索。現在轉用Windows下的tesseract 3.05版本(tesseract 4.0在我的win10下總是出錯 還沒辦法解決)

  • windows tesseract版本下載
  • exe安裝。
  • 安裝完成後開啟CMD輸入tesseract回車出現tesseract介紹/help等,即安裝成功。
測試:新建測試資料夾/.../test 用畫圖板準備圖片檔案:test.png


命令列進入該檔案目錄下,輸入測試命令:

tesseract test.png output_test -l eng
【語法】tesseract imagename outputbase[-l lang] [-psm pagesegmode] [configfile...]接下來的教程見→ 
教程

所遇到的問題及解決方案:

1. Failed to load font_properties from font_properties

【解決】: 將命令列

mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr 

更改為:

mftraining -F font_properties.txt -U unicharset -O num.unicharset num.font.exp0.tr 
2.Illegal short name for a feature換下一張圖片進行訓練,(跳過該問題訓練集)3.ICU ERROR...


【解決】開啟VS除錯,選擇除錯→選項→除錯→常規→啟動源伺服器支援                                                                                →符號→Microsoft符號伺服器有圖教程

4.【畫了6張tif圖,但是無法用jTessBoxEdit合併,可能訓練樣本有問題,重新嘗試解決】

5. empty page6. jTessBoxEditor中文亂碼 在setting中將字型改為宋體 
2018.3.23第一例EAST旭哥在做,開始調研tesseract-ocr(使用Github: 開啟專案後,先看看wiki,根據目錄進行操作)
HOME頁Download tesseract-ocr Engine.(關於PPA: Personal Package Archives)命令列 執行demo推薦一篇部落格對整體環境的編譯執行:教程1這篇文章是Ubuntu16.4 我實際使用的是Ubuntu14.4(uname -a 檢視版本資訊)
在Ubuntu14.4下安裝時會報一個錯:W: GPG 錯誤:http://ppa.launchpad.net lucid Release: 由於沒有公鑰,無法驗證下列簽名: NO_PUBKEY FAF69C646FF368B7的問題解決方案:在終端中執行:sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FAF69C646FF368B7
具體安裝程式碼如下:
sudo add-apt-repository ppa:alex-p/tesseract-ocrsudo apt-get updatesudo apt-get install tesseract-ocr
安裝完成後,先只能執行識別英文字元.其他字元需安裝依賴庫.////2018.3.23 完成demo測試 識別效果真的非常棒///2018.3.25 安裝編譯環境(參考GitHub與上面推薦的部落格均可) 可能出現的問題:
/usr/lib/nvidia-375/libEGL.so.1 is not a symbolic link /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link 
/usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so.5 is not a symbolic link


解決方法:
  • 針對
/usr/lib/nvidia-375/libEGL.so.1 is not a symbolic link /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link
解決:
sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.orgsudo 
ln -s /usr/lib/nvidia-375/libEGL.so.375.66 /usr/lib/nvidia-375/libEGL.so.1sudo 
ln -s /usr/lib32/nvidia-375/libEGL.so.375.66 /usr/lib32/nvidia-375/libEGL.so.1
  • 針對
/usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so.5 is not a symbolic link
解決:
cd /usr/local/cuda/lib64sudo ln -sf libcudnn.so.5.10 libcudnn.so.5sudo ln -sf libcudnn.so.5 libcudnn.so
執行
sudo ldconfig
檢查是否報錯一個坑安裝注意,一定要從官網下載XXX.tar.gz安裝包安裝。(有問題先看看GitHub中的issues)我這邊安裝了Latest version,不可以從github直接git clone是因為該原始碼中無configure資料夾,在編譯時很多錯不好解決。3種方法,使用了第二種autoconfig。這裡按照官網的步驟一步一步來,如果在make install報錯,可能是Permission denied報錯,使用 sudo make install。在一系列操作完成後,到配置字型庫,我這邊出現的問題,路徑配置:
export TESSDATA_PREFIX=/media/xxx/tessdata
可以直接使用
wget https://github.com/tesseract-ocr/tessdata/raw/master/eng.traineddata
wget https://github.com/tesseract-ocr/tessdata/raw/master/chi_sim.traineddata
下載英文/中文等需要的語言。可能會遇到的錯誤:
Error opening data file /usr/local/share/tessdata/eng.traineddataPlease make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.Failed loading language engTesseract couldn't load any languages!Could not initialize tesseract.
以上,可以完成測試。注意:tesseract-ocr 識別的是 印刷體字。有一篇部落格,寫了ocr.sh檔案,貌似是可以把路徑直接改正?我還沒嘗試,先貼在這裡吧。/// 開始準備 training 環節。安裝jTessBoxEditor到官網下載,tesseract-ocr 4.0,下載了最新版本的
  • 解壓 tar -zxvf jTessBoxEditor
  • 轉到解壓後的目錄: cd /jTessBoxEditor
  • 啟動 jTessBoxEditor,命令列輸入 java -Xms128m -Xmx1024m -jar jTessBoxEditor.jar
然後 配置Java環境。推一篇參考:最後選擇安裝了jdk8報錯:mirror什麼的,換成中科院源wget https://github.com/tesseract-ocr/tessdata/raw/master/eng.traineddatawget https://github.com/tesseract-ocr/tessdata/raw/master/chi_sim.traineddata