如何在 C# 中使用 Tesseract 自訂語言#

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

IronOCR 可透過 UseCustomTesseractLanguageFile 方法載入 Tesseract .traineddata 檔案,啟用自訂語言、專門腳本或密碼的 OCR,讓您可以從任何自訂訓練的語言模型中抽取文字。

快速入門:為 OCR 載入自訂語言

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

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

    PM > Install-Package IronOcr

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

    using IronOcr;
    
    // Initialize OCR engine
    var ocr = new IronTesseract();
    
    // Load custom language file
    ocr.UseCustomTesseractLanguageFile("custom.traineddata");
    
    // Process document
    using var input = new OcrInput();
    input.LoadImage("document.png");
    
    // Extract text
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
  3. 部署到您的生產環境進行測試

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

1.透過 NuGet 套件管理器安裝 IronOCR 2.使用 UseCustomTesseractLanguageFile 載入您的自訂 .traineddata 檔案 3.建立 OcrInput 並載入您的文件 4.呼叫 Read() 以自訂語言擷取文字 5.儲存或處理擷取的文字

<! -- 介紹的視覺演示 --> <!--說明:螢幕截圖或圖表 -->

光學字元識別 (OCR) 有時需要處理自訂語言、專門腳本或密碼。 若要讀取包含自訂語言的輸入影像,必須向 Tesseract 引擎提供該特定語言的訓練資料。 這些資料儲存在一個名為.traineddata特殊檔案中。

雖然創建(訓練)此文件的複雜過程是使用 Tesseract 自己的工具完成的,但 IronOCR 完全支援使用這些自訂語言檔案。 這樣,您就可以應用訓練好的模型來破解和讀取任何輸入文字。 本指南示範如何使用 IronOCR 載入和使用自訂的 .traineddata 檔案。


如何使用 Tesseract 實作自訂語言 OCR?

<! -- 說明自訂語言與 tesseract 實作的示意圖 --> <!--說明:說明程式碼概念的圖表或截圖 -->

若要在 Tesseract 中使用自訂語言,請先呼叫 UseCustomTesseractLanguageFile 方法,載入您的 .traineddata 檔案。 這是至關重要的一步,因為該文件包含所有訓練數據,使 Tesseract 能夠識別自訂語言的獨特字元。

IronOCR 的自訂語言支援不只限於標準語言。 無論您使用的是歷史腳本、發明的語言或專門的記號系統,都適用相同的流程。 對於需要多種語言的專案,請參閱我們的 多語言讀取指南,或瞭解開箱即支援的 125 種國際 OCR 語言

接下來,就像執行一般 OCR 作業一樣載入您的輸入文件。 我們使用 LoadPdf 載入包含自訂語言段落的 PDF。 IronOCR 支援多種輸入格式,包括 圖片 (jpg, png, gif, tiff, bmp)PDF

最後,使用 Read 方法從輸入中擷取文字。 翻譯結果可列印至控制台,或儲存至文字檔以供參考。

自訂語言需要哪些訓練資料?

我們將使用這個包含我們自訂語言文字的範例 PDF 作為輸入。

我們將使用這個自訂語言的.traindata作為範例。

訓練資料的品質與全面性會直接影響 OCR 的精確度。 準備自訂語言訓練資料時:

1.字元涵蓋範圍:確保您的訓練資料包含所有字元和符號 2.字體變化:如果您的文件在排版上有所不同,請包含多種字體樣式 3.影像品質:使用與您在生產中處理的影像相似的影像進行訓練 4.上下文模式:包含常見的單字組合和詞組

如需進階組態選項,請參閱我們的 Tesseract 詳細組態指南

如何載入和處理自訂語言文件?

:path=/static-assets/ocr/content-code-examples/how-to/ocr-custom-language.cs
using IronOcr;
using System;
using System.IO;

var ocrTesseract = new IronTesseract();

// Load the traineddata file for the custom language
ocrTesseract.UseCustomTesseractLanguageFile("AMGDT.traineddata");

using var ocrInput = new OcrInput();
// Load the PDF containing text in the custom language
ocrInput.LoadPdf("custom.pdf");

var ocrResult = ocrTesseract.Read(ocrInput);

// Print text to the console
Console.WriteLine("--- OCR Result ---");
Console.WriteLine(ocrResult.Text);
Console.WriteLine("------------------");

// Pipe text to a .txt file
string outputFilePath = "ocr_output.txt";
File.WriteAllText(outputFilePath, ocrResult.Text);

Console.WriteLine($"\nSuccessfully saved text to {outputFilePath}");
Imports IronOcr
Imports System
Imports System.IO

Dim ocrTesseract As New IronTesseract()

' Load the traineddata file for the custom language
ocrTesseract.UseCustomTesseractLanguageFile("AMGDT.traineddata")

Using ocrInput As New OcrInput()
    ' Load the PDF containing text in the custom language
    ocrInput.LoadPdf("custom.pdf")

    Dim ocrResult = ocrTesseract.Read(ocrInput)

    ' Print text to the console
    Console.WriteLine("--- OCR Result ---")
    Console.WriteLine(ocrResult.Text)
    Console.WriteLine("------------------")

    ' Pipe text to a .txt file
    Dim outputFilePath As String = "ocr_output.txt"
    File.WriteAllText(outputFilePath, ocrResult.Text)

    Console.WriteLine(vbCrLf & "Successfully saved text to " & outputFilePath)
End Using
$vbLabelText   $csharpLabel

上述程式碼示範了自訂語言 OCR 的基本工作流程。 對於更複雜的情況,請考慮這些加強功能:

最佳化效能:對於大型文件或批次處理,實施 多執行緒和 async 支援 以提高效能。

影像預處理:如果您的原始文件有品質問題,請在 OCR 處理之前套用 影像修正篩選器Filter Wizard 可以幫助您找到最佳的預處理設定。

特定區域的 OCR:對於內容混雜的文件,可使用 OCR 區域的影像技術,專注於包含您自訂語言的特定區域。

自訂語言 OCR 可帶來什麼結果?

Tesseract OCR 輸出,在終端介面顯示擷取的 Apex Legends 遊戲功能文字

此輸出結果顯示了我們自訂語言模型的運行結果。 藉由提供正確的訓練資料,IronOCR 成功破譯了文字,結果是通俗易懂的英文。 此外,這是程式碼產生的 txt 輸出。

自訂語言 OCR 的精確度取決於幾個因素:

  • 訓練資料品質:更好的訓練資料會產生更好的結果
  • 文件一致性:與訓練資料相符的文件表現最佳
  • 影像解析度:較高 DPI 的影像可產生更精確的結果 - 請參閱我們的 DPI 設定指南

自訂語言實作的最佳做法

在生產環境中實作自訂語言 OCR 時,請考慮這些最佳實務:

錯誤處理與驗證:在嘗試載入您的 .traineddata 檔案之前,請務必先確認它是否存在且可以存取。 在自訂語言檔案可能遺失或損毀的情況下,執行適當的錯誤處理。

效能最佳化:自訂語言模型可能比標準語言套件更大。 為達到最佳效能:

  • 處理多個文件時,快取載入的語言模型
  • 使用 進度追蹤 監控長時間執行的 OCR 作業
  • 考慮實施 逾時以處理大型文件

與標準語言結合:如果您的文件同時包含自訂語言和標準語言,您可以同時載入多種語言。 這對內容混雜的文件特別有用。

測試與驗證:建立測試架構以驗證 OCR 的精確度:

進階使用案例

自訂語言 OCR 開啟了無數的可能性:

歷史文件保存:將古代手稿或以過時文字撰寫的文本數位化 專業記號系統:處理數學方程式、音樂記號或技術圖表 - 請參閱我們的 方程式疑難排解指南安全應用程式:解碼專屬的編碼系統或密碼 無障礙環境:將專門的點字或觸覺書寫系統轉換為標準文字

如需更進階的使用情境,請探索我們全面的 程式碼範例,展示 IronOCR 與 Tesseract 5 的各種功能。

常見問題解答

如何在具有自訂語言或腳本的文件上執行 OCR?

IronOCR 可透過 UseCustomTesseractLanguageFile 方法載入 Tesseract .traineddata 檔案,從而啟用自訂語言 OCR。這可讓您從任何自訂訓練的語言模型中擷取文字,包括專門的腳本、歷史文字或密碼。

自訂語言識別需要什麼檔案格式?

IronOCR 需要一個 .traineddata 檔案,其中包含您自訂語言的訓練資料。此檔案使用 UseCustomTesseractLanguageFile 方法載入,並包含 Tesseract 識別自訂語言獨特字元的所有必要資訊。

我可以在單一 OCR 作業中使用多種自訂語言嗎?

是的,IronOCR 支援多種語言識別。您可以載入多個自訂語言檔案,或結合自訂語言與 IronOCR 開箱即支援的 125 種國際語言中的任何一種。

可以辨識哪些類型的自訂腳本?

IronOCR 可以識別任何經過適當訓練成 .traineddata 檔案的自訂腳本,包括歷史腳本、發明語言、專門的記號系統和密碼。其靈活性可延伸至任何可使用 Tesseract 工具訓練的書寫系統。

如何在 C# 應用程式中實作自訂語言 OCR?

使用 IronOCR 實作自訂語言 OCR 的步驟如下:1)初始化一個 IronTesseract 實例;2)使用 UseCustomTesseractLanguageFile 載入您的自訂 .traineddata 檔案;3)建立一個 OcrInput 物件並載入您的文件;4)呼叫 Read() 方法以擷取文字;以及 5)根據需要處理擷取的文字。

Curtis Chau
技術撰稿人

Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。

準備好開始了嗎?
Nuget 下載 5,384,824 | 版本: 2026.2 剛剛發布