Tesseract-OCR-04-使用 jTessBoxEditor 進行訓練

Tesseract-OCR-04-使用 jTessBoxEditor 進行訓練

  • 本篇是關於 jTessBoxEditor 進行訓練,使 Tesseract-OCR 文字識別準確率獲得極大的提升,本篇完善了不少細節,初學者也能夠看懂,一塊兒學習吧!
  • 想要一遍成功要細心關注【注意】,我踩過的坑都標出來了

訓練的大體步驟:

  • 1.安裝 jTessBoxEditor
  • 2.獲取樣本文件
  • 3.Merge 樣本文件
  • 4.生成 .box 文件
  • 5.定義字符配置文件
  • 6.字符矯正
  • 7.執行批處理文件
  • 8.將生成的 num.trainddata 放入 Tesseract 安裝目錄的 tessdata 文件夾裏

1.安裝 jTessBoxEditor

  • 下載jTessBoxEditor,地址https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/
  • 解壓後獲得jTessBoxEditor
    這裏寫圖片描述
  • 因爲這是由Java開發的,因此咱們應該確保在運行jTessBoxEditor前先安裝JRE(Java Runtime Environment,Java運行環境)
  • 沒有安裝 jre 的能夠到官網下載安裝:
    http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
    這裏寫圖片描述
  • jre 安裝就不仔細介紹了,由於能找到這篇的,基本都安裝過了,下面介紹 jTessBoxEditor
  • 可是呢,這個 jTessBoxEditor ,不用安裝,直接解壓就能夠,單擊解壓到或者直接拉出來就能夠了
    這裏寫圖片描述

2.獲取樣本文件

  • 咱們能夠用畫圖工具繪製樣本文件,數量越多越好,我本身畫了 5 張圖做爲訓練的數據,如圖:
  • 【注意】:樣本圖像文件格式必須爲tif\tiff格式,不然在Merge樣本文件的過程當中會出現 Couldn’t Seek 的錯誤。
  • 再轉格式嫌麻煩就直接拿走個人:https://pan.baidu.com/s/1hoTkxMVw5z_ve9hzftLOqw
    這裏寫圖片描述這裏寫圖片描述這裏寫圖片描述這裏寫圖片描述這裏寫圖片描述

3.Merge樣本文件

  • 在安裝目錄找到一個【train.bat】打開 jTessBoxEditor >【Tools】>【Merge TIFF】
  • 操做截圖:
    這裏寫圖片描述
  • 將樣本文件所有選上,安裝 Ctrl 鍵不鬆
  • 【注意】:這裏是沒有界面化的提示的,選中後,點擊【打開】,立馬就是輸入合成後的文件名界面,輸入num.font.exp0.tif,點擊【保存】
  • 也就是將合併文件保存爲 num.font.exp0.tif
    這裏寫圖片描述

4.生成BOX文件

  • 打開 cmd 並切換至 num.font.exp0.tif 所在目錄
    • 使用 cd 目錄名 進入目錄
    • 使用 cd.. 返回上一級目錄
  • 輸入下面命令,生成文件名爲num.font.exp0.box

tesseract num.font.exp0.tif num.font.exp0 batch.nochop makeboxhtml

【語法】:tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox  
【語法】:lang爲語言名稱,fontname爲字體名稱,num爲序號;在tesseract中,必定要注意格式
  • 操做截圖
    這裏寫圖片描述
    若是報錯多是沒有進入合併好的 tif 文件目錄下,也多是沒有換成本身用的文件名哦

5.定義字符配置文件

  • 在文件夾文件夾內,新建一個文本文件,名爲font_properties,刪掉.txt,用記事本打開,寫入內容爲:java

    font 0 0 0 0 0oracle

【語法】:<fontname> <italic> <bold> <fixed> <serif> <fraktur> 
【語法】:fontname爲字體名稱,italic爲斜體,bold爲黑體字,
fixed爲默認字體,serif爲襯線字體,fraktur德文黑字體,
1和0表明有和無,精細區分時可以使用

6.準備環節

  • 將5個tif文件,num.font.exp0.tif,生成的num.font.exp0.box文件,還有font_properties文件放在同一個目錄下
  • 目前8個文件,截圖:
    這裏寫圖片描述

7.字符矯正

  • 打開 jTessBoxEditor>【BOX Editor】> 【Open】,打開num.font.exp0.tif;矯正【Char】上的字符
  • 操做截圖:
    這裏寫圖片描述
  • 【注意】:記得[Page]有好多頁哦!修改後記得保存
  • 固然有可能生成的 box 文件後,會多一個盒子,它把7識別成了兩個
  • 處理方式:本身根據看到的數字修改char,若是不是完整字符就敲 空格,而後回車
  • 操做截圖:
    這裏寫圖片描述
  • 而後就是依次處理 5 頁
  • 最後保存,替換原來的 box 文件
    這裏寫圖片描述

8.執行批處理文件

  • 【注意】:執行該批處理文件前,先要目錄下建立font_properties文件 ,也就是滴 5 步
  • 在目標目錄下,新建一個txt文件,複製代碼,重命名爲 do.bat,直接更改後綴名就能夠
  • 代碼以下
echo Run Tesseract for Training.. 
tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train 
 
echo Compute the Character Set.. 
unicharset_extractor.exe num.font.exp0.box 
mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr 


echo Clustering.. 
cntraining.exe num.font.exp0.tr 

echo Rename Files.. 
rename normproto num.normproto 
rename inttemp num.inttemp 
rename pffmtable num.pffmtable 
rename shapetable num.shapetable  

echo Create Tessdata.. 
combine_tessdata.exe num. 

echo. & pause
  • 保存後,雙擊執行便可,執行後會在文件夾生成不少文件,以下:
    這裏寫圖片描述

9.拷貝 num.trainddata 文件

  • 最後將 num.trainddata 複製到 Tesseract-OCR 安裝目錄下的 tessdata 文件夾
  • 【注意】:這裏是【Tesseract-OCR 安裝目錄下的 tessdata 文件夾】
    這裏寫圖片描述

10.大功告成,測試結果

  • 這裏我是將圖片 num1.jpg 放在了:D:\p
  • 咱們須要在 cmd 進入此目錄
    • 使用 cd 目錄名 進入目錄
    • 使用 cd.. 返回上一級目錄
  • 使用 Tesseract 命令:
  • 【注意】:語言參數要設置成 num,就是咱們剛纔拷貝的,沒拷貝 num.trainddata 文件不能使用
    tesseract 文件名 保存的txt文件名 例:

tesseract num1.jpg num01 -l num工具

  • 操做截圖:
    這裏寫圖片描述
  • 運行結果:
    這裏寫圖片描述學習

  • 咱們能夠看到新生成的文件 num01 的內容爲 762408,內容徹底正確。細心的人會發現,最後一句指令,咱們使用了指令[-l num]而不是[-l eng]。這說明,最後一次轉換咱們使用的是新生成的num語言的匹配庫而不是默認的 eng 語言匹配庫測試

  • 咱們能夠看到,通過簡單的訓練,咱們對於數字數據的轉換準確率提升了不少
  • 看到這裏若是尚未安裝工具,參考:Windows下 Tesseract-OCR 的安裝與 環境變量配置
  • 本篇完善了不少細節,初學者也能夠看懂,奉上 原文連接,拜拜字體

更多文章連接:Tesseract 隨筆


  • 本筆記不容許任何我的和組織轉載
相關文章
相關標籤/搜索