適用於 Windows 使用者的 Tesseract 5 自定義字體訓練 (C#)

This article was translated from English: Does it need improvement?
Translated
View the article in English

甘那拍·烏多潘

使用 Tesseract 5 的自定義字體訓練來提高 OCR 引擎在處理可能不被默認支持的特定字體或字體樣式時的準確性和識別能力。

該過程包括為 Tesseract 提供訓練數據,例如字體樣本和相應的文字,以便它能學習自定義字體的特定特徵和模式。

開始使用IronOCR

立即在您的專案中使用IronOCR,並享受免費試用。

第一步:
green arrow pointer



步驟一:下載最新版本的 IronOCR

透過 DLL 安裝

下載 IronOcr DLL 直接到您的機器。

透過NuGet安裝

或者,您可以通過安裝 NuGet .

Install-Package IronOcr

步驟 2:安裝並設定 WSL2 和 Ubuntu

這裡是設定 WSL2 和 Ubuntu 的教學

目前,自訂字體訓練僅能在 Linux 上進行。

步驟3:在Ubuntu上安裝Tesseract 5

sudo apt install tesseract-ocr
sudo apt install libtesseract-dev

步驟 4:下載您想要訓練的字體

我們在本教程中使用AMGDT字體。 字體檔案可以是 .ttf 或 .otf

Example Of Downloaded Font File related to 步驟 4:下載您想要訓練的字體

步驟5:掛載您工作空間中的磁碟機以進行自定義字體訓練

以下指令顯示如何將 D: 磁碟機掛載為工作空間。

cd /
cd /mnt/d

步驟6:將字體文件複製到Ubuntu字體資料夾

這是 Ubuntu 字型資料夾的目錄; Ubuntu/usr/share/fontsUbuntu/usr/local/share/fonts

** 要在 Ubuntu 上訪問文件,請在文件瀏覽器目錄中輸入 \\\wsl$

Ubutu Folder Directory related to 步驟6:將字體文件複製到Ubuntu字體資料夾

疑難排解:目的地資料夾存取被拒

Destination Folder Access Denied related to 疑難排解:目的地資料夾存取被拒

此問題可以通過使用命令行進行文件複製來解決。

cd /
su root
cd c/Users/Admin/Downloads/’AMGDT Regular’
cp ‘AMGDT Regular.ttf’ /usr/share/fonts
cp ‘AMGDT Regular.ttf’ /usr/local/share/fonts
su username

步驟 7:從 Github 克隆 tesseract_tutorial

tesseract_tutorial 儲存庫可以從以下網址克隆; https://github.com/astutejoe/tesseract_tutorial.git透過使用以下指令;

git clone https://github.com/astutejoe/tesseract_tutorial.git

步驟 8:從 Github 克隆 tesstrain 和 tesseract

進入tesseract_tutorial資料夾目錄,然後git克隆 https://github.com/tesseract-ocr/tesstrainhttps://github.com/tesseract-ocr/tesseract

  • tesstrain 包含用於創建 .traineddata 文件的 "Makefile" 文件。(本教程的目標)
  • tesseract 包含一個名為 "tessdata" 的資料夾,該資料夾是原始 .traindata 文件的容器,用作自訂字型訓練的參考。

步驟9:創建“data”文件夾以存儲輸出内容

"data" 應該在 tesseract_tutorial/tesstrain 中創建。

步驟 10:運行 split_training_text.py

返回到 tesseract_tutorial 資料夾目錄,然後編譯以下命令;

python split_training_text.py

運行 split_training_text.py 後,它會在“data”文件夾中創建 .box.tif 文件。

故障排除:Fontconfig 警告:“/tmp/fonts.conf,第4行:忽略了空的字體目錄名稱”。

Fontconfig Warning related to 故障排除:Fontconfig 警告:“/tmp/fonts.conf,第4行:忽略了空的字體目...

此問題是由於在 Ubuntu 文件夾中找不到字體目錄所致,可以通過在 tesseract_tutorial/fonts.conf 中插入以下幾行代碼來解決。

Fontconfig Dir Png related to 故障排除:Fontconfig 警告:“/tmp/fonts.conf,第4行:忽略了空的字體目...

和 請提供內容以進行翻譯。

/usr/share/fonts/usr/local/share/fonts字體~/.fonts

請提供內容以進行翻譯。

然後將其複製到/etc/fonts

cp fonts.conf /etc/fonts

最後,在 split_training_text.py 中添加這些代碼行。

Fontconfig Sol related to 故障排除:Fontconfig 警告:“/tmp/fonts.conf,第4行:忽略了空的字體目錄�...

和 請提供內容以進行翻譯。

fontconf_dir = '/etc/fonts' 請提供內容以進行翻譯。

注意:訓練文件(.box 和 .tif)的數量

目前訓練檔案的數量為100。這些訓練檔案的數量可以在 split_training_text.py 中編輯或刪除這些代碼行。

Number Of Trainfile related to 注意:訓練文件(.box 和 .tif)的數量

步驟11:下載 eng.traineddata

eng.traineddata 可於以下網址找到:https://github.com/tesseract-ocr/tessdata_best. 將其下載到tesseract_tutorial/tesseract/tessdata中,因為eng.traineddatatessdata_best中的版本比原始的tessdata文件夾中的版本更好。

步驟12:創建您的自訂字體 .traineddata

前往 tesstrain 資料夾目錄,在WSL2中輸入此命令行。 請提供內容以進行翻譯。

TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100 請提供內容以進行翻譯。

  • tesstrain/Makefile 中執行代碼来進行訓練。
  • MODEL_NAME = 您自定義字體的名稱
  • START_MODEL = 原始的 .traineddata 名稱
  • MAX_ITERATIONS = 迭代次數(較大的數字表示 .traineddata 的準確度更高。

    Makefile Issues related to 步驟12:創建您的自訂字體 .traineddata

“無法從以下位置讀取數據:”可以通過編輯 Makefile 中的代碼行來解決。

Before:

Makefile Sol Before related to “無法從以下位置讀取數據:”可以通過編輯 Makefile 中的代碼行來�...

After:

Makefile Sol After related to “無法從以下位置讀取數據:”可以通過編輯 Makefile 中的代碼行來�...

和 請提供內容以進行翻譯。

make - Makefile

WORDLIST_FILE := $(輸出目錄2)/$(模型名稱).lstm-word-dawg

NUMBERS_FILE := $(輸出目錄2)/$(模型名稱).lstm-number-dawg

PUNC_FILE := $(輸出目錄2)/$(模型名稱).lstm-punc-dawg 請提供內容以進行翻譯。

“無法從 data/langdata/Latin.unicharset 加載腳本 unicharset”可以通過將 Latin.unicharset 插入到 tesstrain/data/langdata 文件夾中來解決。

步驟 13:創建的 .traineddata 的準確性

使用1000個.box.tif文件以及3000次訓練迭代,輸出.traineddta。(AMGDT.traineddata)具有最低的訓練錯誤率(BCER)around 5.77

Traineddata Accuracy related to 步驟 13:創建的 .traineddata 的準確性

有關更多閱讀和進一步參考:參考https://www.youtube.com/watch?v=KE4xEzFGSU8ustom

Kannapat related to 步驟 13:創建的 .traineddata 的準確性

坎納帕特·烏頓潘

軟體工程師

在成為軟體工程師之前,Kannapat 在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat 也成為了車輛機器人實驗室的成員,該實驗室隸屬於生物生產工程學系。2022 年,他利用自己的 C# 技能,加入了 Iron Software 的工程團隊,專注於 IronPDF 的開發。Kannapat 珍視這份工作,因為他可以直接向負責撰寫大部分 IronPDF 程式碼的開發人員學習。除了同儕學習外,Kannapat 還享受在 Iron Software 工作的社交方面。當他不在撰寫程式碼或文件時,Kannapat 通常會在 PS5 上玩遊戲或重看《最後生還者》。