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 makebox

【語法】:tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox  
【語法】:lang為語言名稱,fontname為字體名稱,num為序號;在tesseract中,一定要注意格式
  • 操作截圖
    這里寫圖片描述
    如果報錯可能是沒有進入合並好的 tif 文件目錄下,也可能是沒有換成自己用的文件名哦

5.定義字符配置文件

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

font 0 0 0 0 0

【語法】:<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 隨筆


- 本筆記不允許任何個人和組織轉載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM