如何在 C# 中進行 Tesseract 5 的自定字體訓練

針對 Windows 開發人員的 Tesseract 5 C# 自訂字體培訓

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

利用 Tesseract 5 的自訂字體訓練,提高 OCR 引擎在處理預設情況下可能不支援的特定字體或字體樣式時的準確性和辨識能力。

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

快速入門:在 C# 中使用您的 .traineddata 字型檔

只需幾行程式碼,即可在 IronOCR 中使用您自訂訓練的 Tesseract 字體檔案。 非常適合快速且準確地識別特殊字體或裝飾字體的OCR資料。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronOCR

    PM > Install-Package IronOcr

  2. 複製並運行這段程式碼。

    var ocr = new IronOcr.IronTesseract();
    ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");
    string text = ocr.Read(new IronOcr.OcrInput("image-with-special-font.png")).Text;
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronOCR,免費試用!
    arrow pointer

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

透過 DLL 安裝

直接將IronOcr DLL下載到您的電腦。

透過 NuGet 安裝

或者,您也可以使用以下命令透過NuGet安裝:

Install-Package IronOcr

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

請參閱設定 WSL2 和 Ubuntu 的教學。

請注意目前自訂字型訓練只能在Linux系統上進行。

步驟 3:在 Ubuntu 上安裝 Tesseract 5

使用以下命令安裝 Tesseract 5:

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

第四步:下載您想要訓練的字體

本教程中使用的是 AMGDT 字體。 字型檔案可以是 .ttf 或 .otf 格式。 !下載的字型檔案範例

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

使用以下指令將D:碟掛載為工作空間。

cd /
cd /mnt/d
cd /
cd /mnt/d
SHELL

步驟 6:將字型檔案複製到 Ubuntu 字型資料夾

將字型檔複製到以下 Ubuntu 目錄: /usr/share/fonts/usr/local/share/fonts

在 Ubuntu 系統中,可以透過在檔案總管的網址列中輸入\\wsl$來存取檔案。

Ubuntu 資料夾目錄

故障排除:目標資料夾存取被拒絕

如果遇到存取被拒絕錯誤,請使用命令列複製檔案來解決此問題。

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
exit
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
exit
SHELL

步驟 7:從 GitHub 複製tesseract_tutorial

使用以下命令克隆tesseract_tutorial程式碼庫:

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

步驟 8:從 GitHub 複製tesstraintesseract

導覽至tesseract_tutorial目錄,然後複製tesstraintesseract程式碼庫:

git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
SHELL
  • tesstrain包含用於建立.traineddata檔案的"Makefile"。
  • tesseract包含"tessdata"資料夾,其中包含用於自訂字體訓練期間參考的原始.traindata檔案。

步驟 9:建立一個名為"data"的資料夾,用於儲存輸出結果

tesseract_tutorial/tesstrain下建立一個名為"data"的資料夾。

步驟 10:執行split_training_text.py

返回tesseract_tutorial資料夾並執行以下命令:

python split_training_text.py
python split_training_text.py
SHELL

運行split_training_text.py後,它將在"data"資料夾中建立.box.tif檔案。

故障排除:字型配置警告

字體配置警告 如果您看到警告Fontconfig warning: "/tmp/fonts.conf, line 4: empty font directory name ignored" ,則表示缺少字體目錄。 解決此問題的方法是對tesseract_tutorial/fonts.conf檔案進行編輯,並新增以下內容:

<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<!-- the following element will be removed in the future -->
<dir>~/.fonts</dir>
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<!-- the following element will be removed in the future -->
<dir>~/.fonts</dir>
XML

使用以下命令將其複製到/etc/fonts

cp fonts.conf /etc/fonts
cp fonts.conf /etc/fonts
SHELL

此外,更新split_training_text.py

fontconf_dir = '/etc/fonts'
fontconf_dir = '/etc/fonts'
PYTHON

註:訓練文件(.box 和 .tif)數量

目前訓練文件數量設定為 100。您可以在split_training_text.py中修改此值。

設定訓練文件數量

步驟 11:下載eng.traineddata

從該儲存庫下載eng.traineddata並將其放置在tesseract_tutorial/tesseract/tessdata中。

步驟 12:建立自訂字體.traineddata

導航至tesstrain資料夾,並在 WSL2 中使用以下命令:

TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
SHELL
  • MODEL_NAME是您的自訂字體名稱。
  • START_MODEL是原始的.traineddata引用。
  • MAX_ITERATIONS定義迭代次數(更多迭代可以提高.traineddata的準確度)。

故障排除:Makefile 中的"讀取資料失敗"錯誤

若要解決"讀取資料失敗"的問題,請修改 Makefile 檔案:

WORDLIST_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-word-dawg
NUMBERS_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-number-dawg
PUNC_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-punc-dawg

故障排除:"載入腳本單字集失敗"

Latin.unicharset插入tesstrain/data/langdata資料夾。 Latin.unicharset可以在這裡找到。

步驟 13:驗證已建立的.traineddata的準確性

使用 1000 個.box.tif檔案以及 3000 次訓練迭代,輸出的.traineddata (AMGDT.traineddata) 實現了約 5.77 的最小訓練錯誤率 (BCER)。

訓練資料準確率

如需進一步閱讀和參考,請觀看教學: YouTube 影片

常見問題解答

我如何訓練自訂字體以在 C# 中搭配 Tesseract 使用?

要使用 C# 為 Tesseract 訓練自訂字體,您必須首先下載 IronOCR、準備字體文件,並通過 WSL2 和 Ubuntu 在 Windows 上設置 Linux 環境,因為 Tesseract 的自訂字體訓練僅在 Linux 上受支持。

使用 WSL2 在 Windows 系統上安裝 Tesseract 5 的步驟是什麼?

要使用 WSL2 在 Windows 上安裝 Tesseract 5,您需要設置 Ubuntu,然後使用命令 sudo apt install tesseract-ocrsudo apt install libtesseract-dev 完成安裝。

如果在複製字體文件時遇到 '目標資料夾訪問被拒' 錯誤,我該怎麼辦?

如果面臨 '目標資料夾訪問被拒' 錯誤,請使用具有 root 訪問權限的命令行將字體文件複製到必要的目錄中,以繞過權限問題。

為什麼 Tesseract 的自訂字體訓練需要 Linux 環境?

Tesseract 的自訂字體訓練需要 Linux 環境,因為訓練工具被設計為在類 Unix 系統上運行,WSL2 可用於在 Windows 上模擬該環境。

如何解決訓練自訂字體時的 'Fontconfig warning' 錯誤?

要解決 'Fontconfig warning' 錯誤,您應將字體目錄路徑添加到 fonts.conf 文件中,並確保複製到 /etc/fonts 目錄。

在自訂字體訓練中 'tesstrain' 儲存庫的用途是什麼?

在 Tesseract 自訂字體訓練中,'tesstrain' 儲存庫用於創建所需的 .traineddata 文件,提供該過程所需的腳本和 Makefile。

如何解決 '無法加載腳本 Unicharset' 錯誤?

要修復 '無法加載腳本 Unicharset' 錯誤,您需要將 Latin.unicharset 插入到 tesstrain/data/langdata 資料夾中以確保必需的字符集可用。

我如何檢驗在 Tesseract 中自訂訓練數據的準確性?

您可以通過檢查訓練錯誤率(稱為 BCER)來驗證自訂訓練數據的準確性,確保在充分迭代和調整訓練文件後錯誤率最小。

Kannaopat Udonpant
軟體工程師
在成為软件工程師之前,Kannapat 從日本北海道大學完成了環境資源博士學位。在追逐學位期间,Kannapat 還成為了生產工程系一部份——汽車机器人实验室的成員。2022 年,他利用他的 C# 技能加入 Iron Software 的工程團隊, 專注於 IronPDF。Kannapat 珍惜他的工作,因为他直接向编写大部分 IronPDF 使用的代码的开发者学习。除了同行学习,Kannapat 还喜欢在 Iron Software 工作的社交十环。当他不编写代码或文档时,Kannapat 通常在他的 PS5 上打游戏或重看《The Last of Us》。
審核人
Jeff Fritz
Jeffrey T. Fritz
首席程序经理 - .NET 社区团队
Jeff 也是 .NET 和 Visual Studio 团队的首席程序经理。他是 .NET Conf 虚拟会议系列的执行制作人,并主持“Fritz 和朋友”这一每周两次的开发者的直播节目,在节目上讨论技术并与观众一起编写代码。Jeff 撰写研讨会、主持演讲,并计划大型 Microsoft 开发者活动(包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP Summit)的内容。
準備好開始了嗎?
Nuget 下載 5,167,857 | Version: 2025.11 剛發表