Windows開発者向けTesseract 5のカスタムフォントトレーニングで文字認識精度を向上
Tesseract 5のカスタムフォントトレーニングは、特定のフォントの文字認識・テキスト抽出精度を向上させます。 このプロセスでは、エンジンのフォント特性を学習するためのトレーニングデータを作成します。 生成された .traineddata ファイルはIronOCRと連携して、装飾フォントや特殊フォントを正確に認識します。
クイックスタート: C# で .traineddata フォント ファイルを使用する
カスタムトレーニングされたTesseractフォントファイルをわずか数行でIronOCRで使用することができます。 特殊フォントや装飾フォントの正確なOCRに最適です。
-
IronOCR をNuGetパッケージマネージャでインストール
PM > Install-Package IronOcr -
このコード スニペットをコピーして実行します。
var ocr = new IronOcr.IronTesseract(); ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata"); string text = ocr.Read(new IronOcr.OcrInput("image-with-special-font.png")).Text; -
実際の環境でテストするためにデプロイする
今日プロジェクトで IronOCR を使い始めましょう無料トライアル
- カスタムフォントをトレーニングするための C# ライブラリをダウンロードする。
- トレーニング用ターゲットフォントファイルの準備
- この記事の手順に従ってください
- よくあるエラーの解決策を適用する
- 学習済みデータファイルのエクスポート
IronOCRの最新版をダウンロードするには?
どのインストール方法を使用すべきですか?
IronOCR DLL をマシンに直接ダウンロードします。
なぜNuGetを代わりに使うのですか?
あるいは、NuGetからこのコマンドでインストールしてください:
Install-Package IronOcr
IronOCRはTesseract 5の機能とカスタム言語実装を包括的にサポートしており、特殊なOCRの要件に最適です。
WSL2とUbuntuのインストールとセットアップ方法は?
WSL2 と Ubuntu のセットアップに関するチュートリアルを参照してください。
トレーニングには Linux が必要ですが、結果として得られる .traineddata ファイルはすべてのプラットフォームでシームレスに動作します。 Linux の詳細なセットアップ手順については、Linux 導入ガイドを参照してください。
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
これらのパッケージは、トレーニングに必要なTesseract OCRエンジンと開発ライブラリを提供します。 Tesseractの高度な設定オプションについては、詳細設定ガイドをご参照ください。
トレーニング用にどのフォントをダウンロードすればよいですか?
このチュートリアルでは、AMGDT フォントを使用しています。 フォント ファイルは .ttf または .otf のいずれかになります。 
トレーニング用のフォントを選択する場合
- 標準的なTesseractモデルとは大きく異なるフォントを選択すること。
- フォントの適切なライセンスの確保
- 装飾的なフォント、手書きフォント、または特殊な業界フォントを考慮してください。
- アプリケーションが本番環境で使用するフォントでテストしてください。
カスタム フォント トレーニング用のディスク ドライブをマウントするにはどうすればよいですか?
次のコマンドを使用して、ドライブ D: を作業スペースとしてマウントします。
cd /
cd /mnt/d
cd /
cd /mnt/d
これにより、Ubuntu WSL2環境からWindowsドライブに保存されたファイルを直接操作できるようになります。
フォント ファイルを Ubuntu フォント フォルダーにコピーするにはどうすればよいですか?
フォント ファイルを次の Ubuntu ディレクトリにコピーします: /usr/share/fonts および /usr/local/share/fonts。
ファイル エクスプローラーのアドレス バーに \\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
フォントのインストールは、トレーニングプロセスにとって非常に重要です。 システムは、トレーニング画像を生成する際にフォントをレンダリングするためのアクセスが必要です。
GitHubから tesseract_tutorial をクローンするにはどうすればいいですか?
次のコマンドを使用して、tesseract_tutorial リポジトリをクローンします。
git clone https://github.com/astutejoe/tesseract_tutorial.git
git clone https://github.com/astutejoe/tesseract_tutorial.git
このリポジトリには、トレーニングプロセスに不可欠なPythonスクリプトと設定ファイルが含まれています。 スクリプトは、フォントトレーニングにおける多くの手動ステップを自動化します。
GitHubから tesstrain と tesseract をクローンするにはどうすればいいですか?
tesseract_tutorial ディレクトリに移動し、tesstrain および tesseract リポジトリをクローンします。
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
tesstrainには、.traineddataファイルを作成するために使用される Makefile が含まれています。tesseractには、カスタム フォントのトレーニング中に参照として使用されるオリジナルの.traineddataファイルを含む tessdata フォルダーが含まれています。
複数の言語パックとカスタムトレーニングデータを使用する場合の詳細については、国際言語ガイドを参照してください。
出力を保存するための"data"フォルダを作成するにはどうすればよいですか?
tesseract_tutorial/tesstrain 内にデータ フォルダーを作成します。
mkdir tesseract_tutorial/tesstrain/data
mkdir tesseract_tutorial/tesstrain/data
このフォルダには、.box、.tif、および中間トレーニング成果物を含む、生成されたすべてのトレーニングファイルが保存されます。
split_training_text.py を実行するにはどうすればよいですか?
tesseract_tutorial フォルダに戻り、次のコマンドを実行します。
python split_training_text.py
python split_training_text.py
split_training_text.py を実行すると、データ フォルダーに .box および .tif ファイルが作成されます。
Fontconfigの警告を修正するにはどうすればよいですか?
警告 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>
<dir>~/.fonts</dir>
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<dir>~/.fonts</dir>
これを /etc/fonts にコピーします:
cp fonts.conf /etc/fonts
cp fonts.conf /etc/fonts
さらに、split_training_text.py を更新します。
fontconf_dir = '/etc/fonts'
fontconf_dir = '/etc/fonts'
トレーニングファイルはいくつ作成すればよいですか?
現在の設定では、100個のトレーニングファイルが生成されます。 これはsplit_training_text.pyで変更できます。

プロダクション品質のトレーニング
- テスト用に100~500のサンプルからスタート
- 精度を高めるため、1000~5000サンプルを使用してください。
- 必要なすべての文字をカバーする多様なテキストサンプルを含む
- トレーニング時間と要求精度のバランス
eng.traineddata はどこからダウンロードできますか?
このリポジトリから eng.traineddata をダウンロードし、tesseract_tutorial/tesseract/tessdata に配置します。
ベースモデルは、認識精度を向上させる言語的コンテキストを提供します。 ターゲット言語に合ったベースモデルを選択します。 カスタム言語パックの問題のトラブルシューティングについては、カスタム OCR 言語パック ガイドを参照してください。
カスタムフォントを作成するにはどうすればよいですか?.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
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
この修正により、Makefile は正しい出力ディレクトリ構造でファイルを探すようになります。
どのように"Failed to Load Script Unicharset"を修正しますか?
Latin.unicharset を tesstrain/data/langdata フォルダーに挿入します。 ここでLatin.unicharsetを見つけてください。
unicharsetファイルは、あなたの言語またはスクリプトの文字セットを定義します。 フォントの文字範囲に合っていることを確認してください。
作成された .traineddata の正確性を確認するにはどうすればよいですか?
1000 個の .box および .tif ファイルと 3000 回のトレーニング反復により、出力 AMGDT.traineddata は、約 5.77% の最小トレーニング エラー レート (BCER) を達成します。

学習したモデルをIronOCRでテストする:
using IronOcr;
// Initialize IronOCR with custom trained data
var ocr = new IronTesseract();
// Load your custom trained font
ocr.UseCustomTesseractLanguageFile(@"path\to\AMGDT.traineddata");
// Configure for optimal results
ocr.Configuration.BlackListCharacters = "";
ocr.Configuration.WhiteListCharacters = "";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
// Process an image with your custom font
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");
// Optional: Apply filters if needed
input.EnhanceResolution(300);
input.DeNoise();
// Perform OCR
var result = ocr.Read(input);
Console.WriteLine($"Recognized Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
using IronOcr;
// Initialize IronOCR with custom trained data
var ocr = new IronTesseract();
// Load your custom trained font
ocr.UseCustomTesseractLanguageFile(@"path\to\AMGDT.traineddata");
// Configure for optimal results
ocr.Configuration.BlackListCharacters = "";
ocr.Configuration.WhiteListCharacters = "";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
// Process an image with your custom font
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");
// Optional: Apply filters if needed
input.EnhanceResolution(300);
input.DeNoise();
// Perform OCR
var result = ocr.Read(input);
Console.WriteLine($"Recognized Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
Imports IronOcr
' Initialize IronOCR with custom trained data
Dim ocr As New IronTesseract()
' Load your custom trained font
ocr.UseCustomTesseractLanguageFile("path\to\AMGDT.traineddata")
' Configure for optimal results
ocr.Configuration.BlackListCharacters = ""
ocr.Configuration.WhiteListCharacters = ""
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd
' Process an image with your custom font
Using input As New OcrInput()
input.LoadImage("test-image-with-amgdt-font.png")
' Optional: Apply filters if needed
input.EnhanceResolution(300)
input.DeNoise()
' Perform OCR
Dim result = ocr.Read(input)
Console.WriteLine($"Recognized Text: {result.Text}")
Console.WriteLine($"Confidence: {result.Confidence}%")
End Using
本番アプリケーションにカスタムフォントを実装するには、カスタム言語ファイルの使用に関するガイドをご覧ください。
さらに詳しい情報や参考資料については、チュートリアルをご覧ください: YouTubeビデオ
よくある質問
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の機能とカスタム言語の実装を包括的にサポートしています。

