Tesseract-OCR 4.0LSTM訓練流程 (Windows環境下)

**

Tesseract-OCR 4.0LSTM訓練流程 (Windows環境下)**

目前網上關於tesseract3.0版本的訓練過程很多,但是基於lstm的4.0版本的訓練幾乎沒有,自己深受困擾,後經過自己努力終於成功訓練,特地寫下來希望可以av幫助需要的人。

首先根據網上的教程安裝tesseract4.0以上的版本,這裏不詳細說明如何安裝。

1. 準備訓練文本.txt格式的文件和字體文件font,裏邊包含.ttf格式的字體文件
在這裏插入圖片描述
在這裏插入圖片描述
2. 利用text2image生成.tif和.box文件
從font和.txt所在的目錄下,通過cmd進入命令窗口,輸入以下內容

text2image --text="D:\new_05\text.txt" --outputbase="D:\new_05\zth.font.exp0" --fontconfig_tmpdir="%temp%"
 --font="HGMaruGothicMPRO" --fonts_dir="D:\new_05\font"

其中每個參數的意義爲:

–text=“D:\new_05\text.txt” 是要進行訓練的樣本文件路徑

–outputbase=“D:\new_05\zth.font.exp0” 表示生成的.tif和.box文件的路勁和命名(注意命名方式,可參照3.0的介紹)

–fontconfig_tmpdir="%temp%" 指明configer,這個在windows中默認這麼寫,不寫會報錯

–font=“HGMaruGothicMPRO” font文件夾中的字體名稱

–fonts_dir=“D:\new_05\font” font文件夾的路徑

至此,會在D:\new_05文件夾下生成兩個新的文件,分別爲.tif和.box格式的文件

注:當你的訓練文本只有圖片時,可以利用jTessBoxEditor工具生成.tif和.box格式的文件,可以參照網上3.0訓練的步驟介紹。
3. 利用.tif和.box文件生成.lstmf文件用於lstm訓練

tesseract zth.font.exp0.tif zth.font.exp0 -l jpn --psm 6 lstm.train

其中每個參數的意義爲

zth.font.exp0.tif 上一步生成的.tif 格式的文件

zth.font.exp0 指明要生成的.lstmf文件的名稱

-l jpn 表示用到的語言,這個我訓練的是日語

–psm 6 表示採用的識別模式,通常6 效果會好些

運行後會多出一個zth.font.exp0.lstmf文件

4. 從已有的.traineddata中提取.lstm文件

tessedata_best中的.traineddata文件 從該鏈接中下載所需語言的.traineddata文件

注:一定要用從上述鏈接中下載的.traineddata文件,如果利用原有的下載好的tesseract-OCR中的tessdata文件夾中的.traineddata文件中提取.lstm文件會造成無法進行訓練。

將下載好的.traineddata文件拷貝到上述文件夾下
輸入命令行:

combine_tessdata -e jpn.traineddata jpn.lstm

運行上述代碼,會從.traineddata文件中提取出jpn.lstm 文件
5. 創建jpn.training_files.txt文件,裏邊的內容爲.lstmf文件的路徑地址
在這裏插入圖片描述
6. 進行訓練

lstmtraining --model_output="D:\new_05\output\output" --continue_from="D:\new_05\jpn.lstm" 
--train_listfile="D:\new_05\jpn.training_files.txt" --traineddata="D:\new_05\jpn.traineddata" 
--debug_interval -1 --max_iterations 800

各個參數的意義:

–modeloutput 模型訓練輸出的路徑(我在new_05文件夾中新建了一個名爲output的文件夾用來存輸出的文件)

–continue_from 訓練從哪裏繼續,這裏指定從第4步中提取的jpn.lstm文件,

–train_listfile 指定上一步創建的文件的路徑

–traineddata 第4步中下載的.traineddata文件的路徑

–debug_interval 當值爲-1時,訓練結束,會顯示訓練的一些結果參數

–max_iterations 指明訓練遍歷次數

此時命令窗口中會有滾動的訓練歷程

訓練結束後,在output文件夾中會生成i一個output_checkpoint文件和多個類似output0.012_3.checkpoint的.checkpoint文件
7. 將checkpoint文件和.traineddata文件合併成新的.traineddata文件

lstmtraining --stop_training --continue_from="D:\new_05\output\output_checkpoint" 
--traineddata="D:\new_05\jpn.traineddata" --model_output="D:\new_05\output\zth.traineddata"

各個參數的意義:

–stop_training 默認要有的

–continue_from 上一步生成的output_checkpoint文件路徑

–traineddata 第4步中下載的.traineddata文件的路徑

–model_output zth.traineddata 輸出的路徑
8. 將新生成的zth.traineddata文件拷貝到tesseract-OCR\tessdata文件夾下,通過代碼進行識別

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章