[OCR][Python]tesseract 辨識模型Fine tune

閱讀時間約 4 分鐘

微調(Fine tune)是深度學習中遷移學習的一種方法,其中預訓練模型的權重會在新數據上進行訓練。

本文主要介紹如何使用新的訓練圖檔在tesseract 辨識模型進行Fine tune

有關於安裝的部分可以參考友人的其他文章

Tesseract OCR - 繁體中文【安裝篇】


將所有資料都放在同一資料夾,在用那資料夾 cmd開始工作,環境變數Tesseract資料夾要新增,才可以使用Tesseract指令喔。

使用版本:tesseract v5.3.1.20230401

1.合併圖檔

使用jTessBoxEditor 工具來合併圖檔,可參考這篇文章介紹jTessBoxEditor應用

raw-image

2.產生box資料 .box

指令:

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  
raw-image
產生.box檔案

產生.box檔案


3.產生模型訓練檔 .lstm

指令:

tesseract ocr_1.tif  ocr_1 -l eng_ocr --psm 7 lstm.train
raw-image
產生ocr_1訓練檔

產生ocr_1訓練檔

4.提取要微調的模型,產生模型訓練檔 eng_ocr.lstm

指令:

-e 可從.traineddata中擷取出lstm檔

combine_tessdata -e eng_ocr.traineddata eng_ocr.lstm
raw-image
提取要微調的模型

提取要微調的模型

5.新建文件檔 (指定訓練檔路徑) .txt

輸入指定的訓練檔名稱,新的訓練集

新建文件檔

新建文件檔


6.模型訓練

參數名稱說明:

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
raw-image
訓練結果

訓練結果

訓練完產生train_checkpoint

訓練完產生train_checkpoint


7.模型輸出

複製eng_ocr.traineddata 另外立名新名稱eng_ocr_1.traineddata,最後指令輸入完,eng_ocr_1.traineddata就是訓練好的新模型了。

指令

  1.  --continue_from 輸入剛剛訓練完的checkpoint檔案
  1. --traineddata 輸入要覆蓋的模型名稱
  2. --model_output
lstmtraining --stop_training --continue_from="train_checkpoint" --traineddata="eng_ocr.traineddata" --model_output="eng_ocr_1.traineddata"
輸出模型

輸出模型

raw-image

大功告成模型傳到Tesseract-OCR\tessdata目錄中就可以使用囉。

更改lang="eng_ocr_1",就可以使用新的模型囉

pytesseract.image_to_boxes(new_image, lang="eng_ocr_1", config=config)



參考文獻



52會員
112內容數
Python程式設計師,不是在學習就是在學習的路上
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
如何利用OCR技術提高PDF文檔處理效率學習如何將掃描的PDF轉換為可搜索文本,並高效管理和查找文件。探索先進的OCR技術如何提升文檔處理效率。
Thumbnail
avatar
leqi.ai
2024-06-11
What is OCR? Discover the Advantages and Applications of OCROCR (Optical Character Recognition) technology revolutionizes the conversion of texts from physical documents into digital data, enhancing processing
avatar
Anice H.
2024-05-14
光學字元辨識(OCR)技術:提升數位轉型的關鍵利器什麼是 OCR 光學字元辨識技術?它是當今數位時代中不可或缺的重要工具之一,能夠將紙本文件、圖片或 PDF 中的文字快速、準確地轉換成數位檔案,從而極大地提升了資料處理效率,成為各行各業數位轉型的關鍵利器。不僅如此,OCR 技術還能有效減少人為錯誤,幫助企業提升整體營運效率,從而在市場競爭中取得優勢
avatar
Anice H.
2024-05-05
Python中的函式操作們(上)今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
avatar
媗日
2024-04-25
Python四大容器大解析古有四大名著,現今Python四大容器🤣 哪四個?list串列,tuple元組,dict字典,set集合。 那這四個怎麼分? 一起來看看吧! (以下有手寫與上機實際測試請付費觀看) 以上我精心整理主要會使用到的功能 當然python功能太多了,肯定不只。 實際操作: 大概就這樣?(
Thumbnail
avatar
媗日
2024-04-06
【Python】Mac平台上的Jython和JES安裝指導先來名詞解釋jython跟JES: jython是一種實現了Python語言的Java平台版本的解釋器。它允許開發人員在Java虛擬機(JVM)上運行Python代碼,從而實現了Python語言與Java平台的無縫集成。 JES(Jython Environment for Students)是
Thumbnail
avatar
W. C. Chen
2024-03-27
Tesseract OCR - 繁體中文【安裝篇】Tesseract OCR 光學字元辨識
Thumbnail
avatar
匿名李
2022-02-28