微調(Fine tune)是深度學習中遷移學習的一種方法,其中預訓練模型的權重會在新數據上進行訓練。
有關於安裝的部分可以參考友人的其他文章
將所有資料都放在同一資料夾,在用那資料夾 cmd開始工作,環境變數Tesseract資料夾要新增,才可以使用Tesseract指令喔。
使用版本:tesseract v5.3.1.20230401
使用jTessBoxEditor
工具來合併圖檔,可參考這篇文章介紹jTessBoxEditor
應用
指令:
ocr_1.tif : 圖檔名稱
ocr_1 : 要產生的.box名稱
-l eng_ocr --oem 3 --psm 7 : 指定tesseract的辨識模型,搜尋引擎,頁面分割模式
batch.nochop makebox:產生產生box資料的指令
tesseract ocr_1.tif ocr_1 -l eng_ocr --oem 3 --psm 7 batch.nochop makebox
指令:
tesseract ocr_1.tif ocr_1 -l eng_ocr --psm 7 lstm.train
指令:
-e 可從.traineddata中擷取出lstm檔
combine_tessdata -e eng_ocr.traineddata eng_ocr.lstm
輸入指定的訓練檔名稱,新的訓練集
參數名稱說明:
eng_ocr.lstm : 指定用這個模型繼續訓練
eng_ocr.traineddata : 指定用這個模型的資料繼續訓練
eng_ocr.training_files.txt : 新增要訓練的資料 文件路徑
0.01 : 錯誤率低於0.01 就停止訓練
指令
Lstmtraining --model_output="train" --continue_from="eng_ocr.lstm" --traineddata="eng_ocr.traineddata" --train_listfile="eng_ocr.training_files.txt" --target_error_rate=0.01
複製eng_ocr.traineddata 另外立名新名稱eng_ocr_1.traineddata,最後指令輸入完,eng_ocr_1.traineddata就是訓練好的新模型了。
指令
lstmtraining --stop_training --continue_from="train_checkpoint" --traineddata="eng_ocr.traineddata" --model_output="eng_ocr_1.traineddata"
更改lang="eng_ocr_1"
,就可以使用新的模型囉
pytesseract.image_to_boxes(new_image, lang="eng_ocr_1", config=config)