C# における Tesseract 5 用のカスタムフォントトレーニングの方法

Windows開発者向けTesseract 5のカスタムフォントトレーニング

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

Tesseract 5のカスタムフォントトレーニングは、特定のフォントのOCR精度を向上させます。 このプロセスでは、エンジンのフォント特性を学習するためのトレーニングデータを作成します。 生成された .traineddata ファイルはIronOCRと連携して、装飾フォントや特殊フォントを正確に認識します。

クイックスタート: C# で .traineddata フォント ファイルを使用する

カスタムトレーニングされたTesseractフォントファイルをわずか数行でIronOCRで使用することができます。 特殊フォントや装飾フォントの正確なOCRに最適です。

  1. IronOCR をNuGetパッケージマネージャでインストール

    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

IronOCRの最新版をダウンロードするには?

どのインストール方法を使用すべきですか?

IronOCR DLL をマシンに直接ダウンロードします。

なぜNuGetを代わりに使うのですか?

あるいは、NuGetからこのコマンドでインストールしてください:

Install-Package IronOcr

IronOCRはTesseract 5の機能カスタム言語実装を包括的にサポートしており、特殊なOCRの要件に最適です。


WSL2とUbuntuのインストールとセットアップ方法は?

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

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

トレーニングには 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
SHELL

これらのパッケージは、トレーニングに必要なTesseract OCRエンジンと開発ライブラリを提供します。 Tesseractの高度な設定オプションについては、詳細設定ガイドをご参照ください。

トレーニング用にどのフォントをダウンロードすればよいですか?

このチュートリアルでは、AMGDT フォントを使用しています。 フォント ファイルは .ttf または .otf のいずれかになります。 Windows ファイル エクスプローラーに、トレーニング用に赤いボックスで強調表示されたダウンロード済みの AMGDT Regular.ttf フォント ファイルが表示されています

トレーニング用のフォントを選択する場合

  • 標準的なTesseractモデルとは大きく異なるフォントを選択すること。
  • フォントの適切なライセンスの確保
  • 装飾的なフォント、手書きフォント、または特殊な業界フォントを考慮してください。
  • アプリケーションが本番環境で使用するフォントでテストしてください。

カスタム フォント トレーニング用のディスク ドライブをマウントするにはどうすればよいですか?

次のコマンドを使用して、ドライブ D: を作業スペースとしてマウントします。

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

これにより、Ubuntu WSL2環境からWindowsドライブに保存されたファイルを直接操作できるようになります。

フォント ファイルを Ubuntu フォント フォルダーにコピーするにはどうすればよいですか?

フォント ファイルを次の Ubuntu ディレクトリにコピーします: /usr/share/fonts および /usr/local/share/fonts

ファイル エクスプローラーのアドレス バーに \\wsl$ と入力して、Ubuntu のファイルにアクセスします。

Windows File Explorer showing \\wsl$ network path for accessing Ubuntu filesystem from Windows

デスティネーション フォルダーへのアクセスが拒否された場合はどうすればよいですか?

アクセス拒否エラーが発生した場合は、コマンドラインを使用してファイルをコピーしてください:

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

フォントのインストールは、トレーニングプロセスにとって非常に重要です。 システムは、トレーニング画像を生成する際にフォントをレンダリングするためのアクセスが必要です。

GitHubから tesseract_tutorial をクローンするにはどうすればいいですか?

次のコマンドを使用して、tesseract_tutorial リポジトリをクローンします。

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

このリポジトリには、トレーニングプロセスに不可欠なPythonスクリプトと設定ファイルが含まれています。 スクリプトは、フォントトレーニングにおける多くの手動ステップを自動化します。

GitHubから tesstraintesseract をクローンするにはどうすればいいですか?

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
SHELL
  • tesstrain には、.traineddata ファイルを作成するために使用される Makefile が含まれています。
  • tesseract には、カスタム フォントのトレーニング中に参照として使用されるオリジナルの .traineddata ファイルを含む tessdata フォルダーが含まれています。

複数の言語パックとカスタムトレーニングデータを使用する場合の詳細については、国際言語ガイドを参照してください。

出力を保存するための"data"フォルダを作成するにはどうすればよいですか?

tesseract_tutorial/tesstrain 内にデータ フォルダーを作成します。

mkdir tesseract_tutorial/tesstrain/data
mkdir tesseract_tutorial/tesstrain/data
SHELL

このフォルダには、.box、.tif、および中間トレーニング成果物を含む、生成されたすべてのトレーニングファイルが保存されます。

split_training_text.py を実行するにはどうすればよいですか?

tesseract_tutorial フォルダに戻り、次のコマンドを実行します。

python split_training_text.py
python split_training_text.py
SHELL

split_training_text.py を実行すると、データ フォルダーに .box および .tif ファイルが作成されます。

Fontconfigの警告を修正するにはどうすればよいですか?

Apex フォントが見つからないことと、フォント ディレクトリが空であることを示す 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>
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

トレーニングファイルはいくつ作成すればよいですか?

現在の設定では、100個のトレーニングファイルが生成されます。 これはsplit_training_text.pyで変更できます。

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

プロダクション品質のトレーニング

  • テスト用に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
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

この修正により、Makefile は正しい出力ディレクトリ構造でファイルを探すようになります。

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

Latin.unicharsettesstrain/data/langdata フォルダーに挿入します。 ここでLatin.unicharsetを見つけてください。

unicharsetファイルは、あなたの言語またはスクリプトの文字セットを定義します。 フォントの文字範囲に合っていることを確認してください。

作成された .traineddata の正確性を確認するにはどうすればよいですか?

1000 個の .box および .tif ファイルと 3000 回のトレーニング反復により、出力 AMGDT.traineddata は、約 5.77% の最小トレーニング エラー レート (BCER) を達成します。

Tesseract トレーニング ログ。反復 2194 ~ 2298 で BCER が 6.388% から 5.771% に改善されたことを示しています。

学習したモデルを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}%");
$vbLabelText   $csharpLabel

本番アプリケーションにカスタムフォントを実装するには、カスタム言語ファイルの使用に関するガイドをご覧ください。

さらに詳しい情報や参考資料については、チュートリアルをご覧ください: 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の機能とカスタム言語の実装を包括的にサポートしています。

Kannaopat Udonpant
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、Kannapatは北海道大学で環境資源の博士号を修了しました。博士号を追求する間に、彼はバイオプロダクションエンジニアリング学科の一部である車両ロボティクスラボラトリーのメンバーになりました。2022年には、C#のスキルを活用してIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。Kannapatは、IronPDFの多くのコードを執筆している開発者から直接学んでいるため、この仕事を大切にしています。同僚から学びながら、Iron Softwareでの働く社会的側面も楽しんでいます。コードやドキュメントを書いていない時は、KannapatはPS5でゲームをしたり、『The Last of Us』を再視聴したりしていることが多いです。
レビュー済み
Jeff Fritz
Jeffrey T. Fritz
プリンシパルプログラムマネージャー - .NETコミュニティチーム
Jeffはまた、.NETとVisual Studioチームのプリンシパルプログラムマネージャーです。彼は.NET Conf仮想会議シリーズのエグゼクティブプロデューサーであり、週に二回放送される開発者向けライブストリーム『Fritz and Friends』のホストを務め、テクノロジーについて話すことや視聴者と一緒にコードを書くことをしています。Jeffはワークショップ、プレゼンテーション、およびMicrosoft Build、Microsoft Ignite、.NET Conf、Microsoft MVPサミットを含む最大のMicrosoft開発者イベントのコンテンツを企画しています。
準備はできましたか?
Nuget ダウンロード 5,525,971 | バージョン: 2026.3 リリース
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronOcr
サンプルを実行 あなたの画像が検索可能なテキストになるのをご覧ください。