IRONSOFTWAREHOME

Tesseract 5でC#を使用してカスタムフォントをトレーニングする方法

Kannaopat Udonpant
Kannapat Udonpant
Updated: 2026年6月4日

デフォルトのTesseract英語モデルは現実世界の多くの入力を誤読します: 病院の手書きの受付フォーム、ビンテージブックのデジタイズ、ゲームスタジオの特注の装飾フォント、または汎用OCRエンジンが見たことのない業界特有の記号。 修正方法は、Tesseract を自分で正確なフォントでトレーニングし、IronOCR がどこでも動作する単一の .traineddata アーティファクトを生成することです。

このガイドは、C#で Tesseract 5 カスタムフォントトレーニングを最初から最後まで案内します: WSL2 Ubuntu ツールチェーンをインストールし、.box.tif のトレーニングファイルを .ttf または .otf からレンダリングし、ベース eng.traineddata に対して tesstrain.traineddata モデルを作成し、その結果を IronOCR に読み込みます。 一度トレーニングしたファイルは、Windows、macOS、Linux、およびDocker間で持ち運び可能です。

クイックスタート: C#であなたのトレーニング済みフォントファイルを使用する

トレーニングされた .traineddata ファイルを UseCustomTesseractLanguageFile に指示して IronOCR を構成し、ストック言語パックと同様に任意の画像で Read を呼び出します。

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2このコード スニペットをコピーして実行します。

    using IronOcr;
    
    var ocr = new IronTesseract();
    ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");
    string text = ocr.Read(new OcrInput("image-with-special-font.png")).Text;
    C#
  3. 3実際の環境でテストするためにデプロイする

    今日プロジェクトで IronOCR を使い始めましょう無料トライアル
    arrow pointer

トレーニング環境をどのようにセットアップしますか?

IronOCRをどのようにインストールしますか?

NuGetを通じてIronOCRをインストールします:

PM > Install-Package IronOcr

DLLパッケージはNuGetを使用できない場合の手動代替です。 基礎となるエンジンについては、Tesseract 5の機能ガイドカスタム言語リファレンスを参照してください。

WSL2とUbuntuをどのようにインストールおよび設定しますか?

WSL2 と Ubuntu のセットアップに関するチュートリアルを参照してください。

ご注意: カスタム フォント トレーニングには Linux が必要です。

WSL2 で十分です: トレーニングが完了したら、結果の .traineddata ファイルは Windows、macOS、Linux、Docker で IronOCR アプリとともに出荷されます。 配信の詳細については、Linux配信ガイドを参照してください。

UbuntuにTesseract 5をどのようにインストールしますか?

Tesseract 5をインストールするには、以下のコマンドを使用します:

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

tesseract-ocr パッケージは認識を実行するエンジンです; libtesseract-dev は、tesstrain がモデルを構築するために必要なヘッダーを公開します。 トレーニング済みファイルが使用中になったら、Tesseract設定ガイドがランタイムの調整をカバーします。

トレーニングのためにフォントをどのように準備しますか?

どのフォントをダウンロードすべきですか?

このチュートリアルでは、AMGDT フォントを .ttf または .otf 形式で使用しています。

Windowsファイルエクスプローラーにこのトレーニング用のダウンロードされたAMGDT Regular.ttfフォントファイルが赤色のボックスでハイライトされています

トレーニングするフォントを選ぶとき:

  • デフォルトの英語モデルですでに誤読されているフォントを選びます。 すでに認識されているフォントをトレーニングすることは時間の無駄です。
  • フォントのライセンスがアプリケーションとともに出荷される場合は再配布を許可することを確認します。
  • 装飾的、手書き、または業界特有のフォント(医療、法律、地図)はトレーニングによって最も精度を向上します。
  • 生産で実際に見るものと一致するトレーニングサンプルを提供し、解像度や照明を含めます。

ディスクドライブをどのようにマウントしますか?

作業スペースとしてD: ドライブをマウントします:

cd /
cd /mnt/d
SHELL

WSL2はすべてのWindowsドライブを/mnt/<letter>の下にマウントするので、Windowsでファイルを編集し、同じセッションでトレーニングコマンドを実行できます。

フォントファイルをUbuntuフォントフォルダにどのようにコピーしますか?

Tesseractはトレーニング画像を構築するためにあなたのフォントでサンプルテキストをレンダリングするので、フォントはWindowsだけでなくLinux側にもインストールされている必要があります。 フォントファイルをUbuntuのフォントディレクトリ:/usr/share/fonts と /usr/local/share/fonts にコピーします。 最も簡単な方法は、ファイルエクスプローラーのアドレスバーに \wsl$ と入力して Windows から Ubuntu ファイルシステムを閲覧し、それから .ttf をドラッグすることです。

Windows から Ubuntu ファイルシステムにアクセスするための \wsl$ ネットワークパスを表示する Windows ファイルエクスプローラー

Ubuntuフォントディレクトリに着地したら、フォントのコピーはこのように見えるはずです:

AMGDT フォントファイルが 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
SHELL

GitHubからトレーニングリポジトリをどのようにクローンしますか?

トレーニングパイプラインは3つのリポジトリに依存しています。 最初にチュートリアルラッパーをクローンし、その中に2つの上流のTesseractリポジトリをクローンし、出力フォルダーを作成します:

git clone https://github.com/astutejoe/tesseract_tutorial.git
cd tesseract_tutorial
git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
mkdir tesstrain/data
SHELL
  • Tesseract_tutorialは、各トレーニングステップ(テキスト生成、画像レンダリング、トレーニングペア作成)を駆動するPythonスクリプトと構成ファイルをまとめています。
  • tesstrainは実際のトレーニングの実行を駆動するMakefileを含んでいます。
  • Tesseract にはカスタムトレーニングの開始モデルとして使用されるストック .traineddata ファイルを含む tessdata フォルダが含まれています。
  • tesstrain/data は .box ファイル (文字のバウンディングボックス), .tif 画像, そして中間 LSTM チェックポイントがすべて到着する場所です。

ターミナルでクローンシーケンスがどのように見えるべきかは以下の通りです:

4 つの git clone コマンドを実行し、tesstrain の data フォルダを作成しているターミナル

カスタムのものと一緒に多言語パックを扱うには、国際的な言語ガイドを参照してください。

トレーニングファイルをどのように生成しますか?

split_training_text.pyスクリプトをどのように実行しますか?

Tesseract_tutorialフォルダーから実行します:

python split_training_text.py
SHELL

スクリプトは、トレーニング サンプルごとに 1 つの .box / .tif ペアを生成し、データフォルダに書き込みます。

スクリプトの実行がトレーニングペアを生成する様子は以下の通りです:

split_training_text.py を実行し、data フォルダに .box および .tif ファイルを生成しているターミナル

fontconfigの警告をどのように修正しますか?

Apexフォントの欠落および空のフォントディレクトリエラーに関する警告を表示するターミナル

*Fontconfig warning: "/tmp/fonts.co/nf, line 4: empty font directory name ignored"*の警告が表示された場合、fontconfigはフォントディレクトリを解決できません。 tesseract_tutorial/fonts.co/nf を編集して修正してください。

<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.co/nf /etc/fonts
SHELL

次に split_training_text.py を同じパスに指示します。

fontconf_dir = '/etc/fonts'
Python

いくつのトレーニングファイルを生成すべきですか?

デフォルトでは、スクリプトは100のトレーニングペアを生成します。 split_training_text.py の上部付近のカウントを変更します。

Pythonコード カウント=100を設定し、トレーニングデータサイズを制限するためにlines配列をスライス

サイズガイダンス:

  • 100-500サンプルはパイプラインがエンドツーエンドで機能することを確認するのに十分です。
  • 1000-5000サンプルは生産精度の動作範囲です。
  • トレーニングテキストはフォントが認識するすべての文字を何度もカバーする必要があります。
  • より多くのサンプルがより長いトレーニング時間を意味します; あなたの精度目標に合った最小のカウントを選びます。

eng.traineddataファイルをどこでダウンロードしますか?

tessdata_best リポジトリ から eng.traineddata をダウンロードして Tesseract_tutorial/tesseract/tessdata に置きます。

ベースモデルはトレーナーに言語的な文脈を提供します(どの文字列が妥当な単語を形成するか)、したがって、ゼロからトレーニングするよりもはるかに正確です。 トレーニングテキストと同じ言語のベースモデルを選びます。 問題が発生した場合は、カスタムOCR言語パックのトラブルシューティングガイドを参照してください。

カスタムフォントトレーニングデータファイルをどのように構築しますか?

tesstrainフォルダから実行します:

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はトレーニング実行をキャップします; より高い値は通常、エラーレートを低下させます。

Makefileで "Failed to Read Data "と表示されたら?

"データの読み取りに失敗しました"エラーを解決するには、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
Text

パッチはMakefileを実際の出力ディレクトリに向け、辞書ファイルを見つけることができるようにします。

どのように"Failed to Load Script Unicharset"を修正しますか?

langdata_lstm から Latin.unicharset をダウンロードして、tesstrain/data/langdata フォルダーに置きます。

.unicharset ファイルは、トレーナーが発行することを許可されている文字を定義します。 フォント内のすべての文字をカバーするファイルを使用します。例えば、キリル文字のフォントには Cyrillic.unicharset を、デーヴァナーガリーのフォントには Devanagari.unicharset を使用します。

tesstrain が .traineddata ファイルを生成する際の成功したトレーニング実行の外観は次のとおりです:

トレーニングの反復を実行し、AMGDT.traineddata ファイルを出力している tesstrain ビルドパイプライン

トレーニングデータファイルの精度をどのように検証しますか?

1000 .box.tif ファイルおよび 3000 トレーニング イテレーションを使用すると、出力 AMGDT.traineddata は約 5.77% のトレーニング エラー率 (BCER) に達します。

Tesseractのトレーニングログが、反復2194-2298でのBCERの改善を6.388%から5.771%まで示しています

IronOCR でトレーニングされたモデルをテストするには、UseCustomTesseractLanguageFile をファイルに指示し、サンプル画像を読み取ります。

using IronOcr;

// Load the trained model; AutoOsd handles orientation
var ocr = new IronTesseract();
ocr.UseCustomTesseractLanguageFile("path/to/AMGDT.traineddata");
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Preprocess so the model sees clean glyphs
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");
input.EnhanceResolution(300);
input.DeNoise();

// Confidence reflects training quality
var result = ocr.Read(input);
Console.WriteLine($"Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");

Confidence プロパティは文書ごとのスコアです; もしきれいな入力でも低いままであれば、最も一般的な原因はトレーニングサンプルが少なすぎるか、スクリプトに合わないベースモデルです。 カスタム言語ガイドを参照して、任意のカスタム言語ファイルの読み込みの一般的なワークフローを確認してください。

カスタムフォントトレーニングの重要ポイントは何ですか?

カスタムフォントをトレーニングするのは一度きりのセットアップです: ターゲットフォントから .box / .tif ペアを生成し、tesstrain で .traineddata モデルを構築し、それを UseCustomTesseractLanguageFile を介してロードします。 そこからIronOCRは、新しいモデルで画像を読み込み、標準の英語を読み込むのと全く同じ方法で行います。

IronOCRをカスタムTesseractモデルと使用する主な利点:

  • 標準 Tesseract アーティファクトの再利用: tesstrain を使用して構築できる任意の .traineddata ファイルは、変換なしで IronOCR で動作します。
  • クロスプラットフォームの出力:トレーニングにはLinux(またはWSL2)が必要ですが、トレーニングされたファイルはWindows、macOS、Linux、Dockerでアプリケーションの一部として出荷されます。
  • APIの他の部分と共に使用:カスタムフォントを複数の補助言語画像品質補正、およびDPI調整と組み合わせても、認識パスを変更しません。
  • 調整可能な精度:エラー率はトレーニングサンプルとイテレーション数の関数です。 両方のノブが公開されている (スクリプトのサンプル数と MAX_ITERATIONS) ので、Tesseract を離れることなくトレーニング時間と BCER のトレードオフを調整できます。

より大きなパイプラインでは、進捗トラッキング非同期処理を検討してください。トレーニングされたモデルを多数のドキュメントで適用するときに便利です。

よくある質問

C#でカスタムトレーニングフォントファイルを使用するには?

わずか数行のコードで、カスタムトレーニングされたTesseractフォントファイルをIronOCRで使用することができます。IronTesseractインスタンスを作成し、.traineddataファイルへのパスを指定してUseCustomTesseractLanguageFile()を呼び出し、Read()メソッドを使用して特別なフォントを含む画像に対してOCRを実行するだけです。

OCR 用カスタムフォントのトレーニングにはどのような要件がありますか?

カスタムフォントトレーニングには、Linux環境(WindowsユーザーにはUbuntuのWSL2を推奨)、開発ライブラリとともにインストールされたTesseract 5、トレーニングしたいフォントファイル(.ttfまたは.otfフォーマットのいずれか)が必要です。Linuxで作成された.traineddataファイルはすべてのプラットフォームでIronOCRとシームレスに動作します。

標準的なOCRを使用する代わりに、なぜカスタムフォントをトレーニングする必要があるのですか?

カスタムフォントのトレーニングは、特定のフォント、特に標準のTesseractモデルとは大きく異なる装飾的なフォントや特殊なフォントのOCR精度を向上させます。IronOCRは、これらの学習されたフォントファイルを使用することで、標準のOCRモデルでは読み取りが困難な、これらのユニークなフォントを含む画像のテキストを正確に認識することができます。

異なるプラットフォーム間でカスタムトレーニングされたフォントを使用できますか?

トレーニング・プロセスにはLinuxが必要ですが、出来上がった.traineddataファイルはIronOCRのすべてのプラットフォームでシームレスに動作します。つまり、Linux上で一度トレーニングすれば、Windows、macOS、Linuxのデプロイメントでトレーニングされたデータファイルを使用することができます。

どのようなインストール方法が推奨されますか?

迅速なセットアップのために、IronOCR DLLを直接ダウンロードするか、NuGetパッケージマネージャを通してインストールすることができます。NuGetは依存関係を自動的に処理し、アップデートを容易にするので推奨される。IronOCRはTesseract 5の機能とカスタム言語の実装を包括的にサポートしています。

Can I deploy my custom-trained Tesseract model on multiple platforms?

Yes, once trained on a Linux environment, the `.traineddata` file is portable and can be used in applications running on Windows, macOS, Linux, and Docker.

What accuracy can I expect from a custom-trained font model in IronOCR?

The accuracy depends on training samples and iterations during the training process. More samples and iterations generally enhance accuracy, and IronOCR provides confidence scores to evaluate the model.

How can I troubleshoot 'Failed to Read Data' errors during training?

This error can often be resolved by patching the Makefile to correctly point it toward the output directory for dictionary files.

What is the role of the `eng.traineddata` file in custom font training?

`eng.traineddata` serves as the base language model providing linguistic context, which improves the accuracy of the custom-trained font over models built entirely from scratch.

What should I do if I encounter permission issues copying font files during setup?

If you receive a 'Destination Folder Access Denied' message, perform the file copy operation from a root shell in the terminal to ensure proper permissions.

準備はできましたか?

Nuget Downloads 6,236,385バージョン:2026.9リリースされたばかり

無料をゲット

30日間の試用キーをすぐに取得。

bullet_checkedクレジットカードやアカウントの作成は不要です。
bullet_test製品版でのテスト
透かしなし
bullet_calendar30日間
完全機能の製品
bullet_support試用期間中の
24/5テクニカルサポート
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. 「参照」を選択して「IronOCR」を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

または、Windowsインストーラーをこちらからダウンロード。

  1. IronOCRをダウンロードして、ソリューションディレクトリ内の~/Libsなどの場所に解凍します
  2. Visual Studioソリューションエクスプローラーで、リファレンスを右クリックします。「参照」、「IronOCR.dll」を選択

$999からのライセンス

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。