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 フォント ファイルを使用する

ここでは、わずか数行で、カスタムトレーニングされた Tesseract フォント ファイルを IronOCR で使用する方法について説明します。 特殊フォントや装飾フォントの正確な 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

ステップ4:トレーニングしたいフォントをダウンロードする

このチュートリアルでは AMGDT フォントを使用します。 フォント ファイルは .ttf または .otf のいずれかになります。 ダウンロードしたフォントファイルの例

ステップ5: カスタムフォントトレーニング用の作業スペースのディスクドライブをマウントする

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

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

ステップ6: フォントファイルをUbuntuのフォントフォルダにコピーする

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

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

! 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ディレクトリに移動し、 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は"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 警告

フォント設定の警告 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

トラブルシューティング: "スクリプトの Unicharset の読み込みに失敗しました"

Latin.unicharset tesstrain/data/langdataフォルダーに挿入します。 Latin.unicharsetここにあります。

ステップ13: 作成された.traineddataの精度を確認する

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

トレーニングデータの精度

さらに詳しい情報や参考資料については、チュートリアルをご覧ください: YouTubeビデオ

よくある質問

C#でTesseractで使用するためにカスタムフォントをどのようにトレーニングできますか?

C#を使ってTesseractでカスタムフォントをトレーニングするには、まずIronOCRをダウンロードし、フォントファイルを準備し、WSL2とUbuntuを使ってLinux環境をセットアップする必要があります。TesseractのカスタムフォントトレーニングはLinuxでのみサポートされています。

WSL2を使用してWindowsシステムにTesseract 5をインストールする手順は何ですか?

WSL2を使用してWindowsでTesseract 5をインストールするには、Ubuntuをセットアップして、sudo apt install tesseract-ocrsudo apt install libtesseract-devというコマンドを使用してインストールを完了する必要があります。

フォントファイルをコピーする際に「アクセス拒否」エラーが発生した場合はどうすればよいですか?

「アクセス拒否」エラーに直面した場合、フォントファイルを必要なディレクトリにコピーするためにルートアクセスを持つコマンドラインを使用して許可の問題を回避します。

TesseractでカスタムフォントトレーニングにLinux環境が必要なのはなぜですか?

TesseractでカスタムフォントトレーニングにLinux環境が必要な理由は、トレーニングツールがUnix系システムで実行するように設計されており、WSL2を使用してWindows上でこの環境をエミュレートできるためです。

カスタムフォントのトレーニング中に「フォントの警告」エラーをどのように修正しますか?

「フォントの警告」エラーを解決するには、フォントディレクトリのパスをfonts.confファイルに追加し、それが/etc/fontsディレクトリにコピーされていることを確認する必要があります。

カスタムフォントトレーニングにおける'tesstrain'リポジトリの目的は何ですか?

'tesstrain'リポジトリは、カスタムフォントトレーニングに必要な.traineddataファイルを作成するために使用され、このプロセスに必要なスクリプトとMakefileを提供しています。

「スクリプトUnicharsetの読み込みに失敗しました」エラーをどのように解決しますか?

「スクリプトUnicharsetの読み込みに失敗しました」エラーを修正するには、Latin.unicharsettesstrain/data/langdataフォルダに挿入して、必要な文字セットが利用可能であることを確認する必要があります。

Tesseractでのカスタムトレーニングデータの精度をどのように検証しますか?

トレーニングエラー率(BCERとして知られる)を確認し、十分な反復とトレーニングファイルの調整の後にそれが最小であることを確認することで、カスタムトレーニングデータの精度を検証できます。

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,167,857 | Version: 2025.11 リリース