Sunday, November 14, 2010

製作Traineddata的手動步驟


製作Traineddata的手動步驟如下:
目錄在tesseract-3.00下。

1.將要辨識的圖檔製作成tif/tiff檔:

   在Mac 用預覽程式開啓 存檔選成TIFF  記得把Alpha的勾勾取消  也不要壓縮

2.建立 BOX:

   tesseract 圖片檔名.tif(或tiff)  圖片檔名 ./tessdata/tessconfigs/batch.nochop
   ./tessdata/configs/makebox

  此時會產生 .box檔

3.分析及修改 BOX:
  1. box檔 可以用文字編輯器開啓(Open),開啓時 記得將 編碼(encode)選成UTF-8 並將忽略RTF指令打勾
  2. box檔開起以後,跟你的圖片文字做比較,第一欄位 就是辨識出的結果 如果辨識不正確 請把他改成正確的.
  3. 第2,3欄位分別是該字左下的起始坐標(x1,y1),第4,5欄位是右上終點坐標(x2,y2)
    但須注意 y軸的起始是由下往上遞增和我們常用的坐標相反!
  4. 如果有多或少辨識的數字必須自行增加 並增減相對映的坐標
  5. 完成後存檔即可.
4.產生訓練檔(tr檔) 

  tesseract 圖片檔名.tif  輸出訓練檔名 ./tessdata/tessconfigs/nobatch    ./tessdata/configs/box.train.stderr


製作訓練檔時,會印出一些訊息 檢查是否最後一行 Generated training data for XX blobs


5.解析 Unicode:

training/unicharset_extractor 圖片檔名.box


6.cluster  和 製作 prototypes

  1. 先做mftraining 指令如下:
    training/mftraining 訓練檔名.tr執行以後會產生 inttemp (the shape prototypes) 和pffmtable兩個檔案
  2. 再做cntraining指令如下:training/cntraining 訓練檔名.tr產生normproto 檔案 (the character normalization sensitivity prototypes)
7.移動與更名檔案

  將產生的四個資料檔更改檔名(加lang代號,比如說eng)複製到 tessdata:
  mv inttemp tessdata/eng.inttemp
  mv normproto tessdata/eng.normproto
  mv pffmtable tessdata/eng.pffmtable
  mv unicharset tessdata/eng.unicharset

8.生成trainedata檔


   進入tessdata資料夾  下 $combine_tessdata lang代號.
 (比如說目前是 eng.xxxxx  --> 指令為  combine_tessdata eng. )
  會產生 語言代號.traineddata ,就可以使用了(eng.traineddata)


Clover & Reon