Windowsユーザー向けのTesseract 5用C#カスタムフォントトレーニング

Kannaopat Udonpant
カンナパット・ウドンパント
2023年3月5日
更新済み 2024年12月10日
共有:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Tesseract 5のためのカスタムフォントトレーニングを利用して、特定のフォントやデフォルトでは十分にサポートされていないフォントスタイルを使用する際に、OCRエンジンの精度と認識能力を向上させましょう。

このプロセスには、フォントサンプルと対応するテキストなどのトレーニングデータをTesseractに提供し、カスタムフォントの特定の特徴とパターンを学習させることが含まれます。

IronOCRを始めましょう

今日から無料トライアルでIronOCRをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer



ステップ1: 最新バージョンのIronOCRをダウンロード

DLL経由でインストール

IronOcr DLL を直接コンピューターにダウンロードしてください。

NuGetでインストール

または、NuGetを通じてインストールすることもできます。

Install-Package IronOcr

ステップ2: WSL2とUbuntuのインストールとセットアップ

ここにWSL2とUbuntuのセットアップに関するチュートリアルがあります。現在、カスタムフォントのトレーニングはLinuxでのみ行うことができます。

ステップ3:UbuntuにTesseract 5をインストール

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

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

このチュートリアルでは、AMGDTフォントを使用しています。 フォントファイルは、.ttfでも.otfでも可能です Example Of Downloaded Font File related to ステップ4: トレーニングしたいフォントをダウンロードする

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

以下のコマンドは、ドライブD:を作業スペースとしてマウントする方法を示しています。

cd /
cd /mnt/d

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

以下は、Ubuntuフォントフォルダーのディレクトリです: Ubuntu/usr/share/fonts と Ubuntu/usr/local/share/fonts。

** Ubuntuでファイルにアクセスするには、ファイルエクスプローラーのディレクトリで\\\wsl$を入力してください。

Ubutu Folder Directory related to ステップ6: フォントファイルをUbuntuのフォントフォルダにコピー

トラブルシューティング: 送信先フォルダーへのアクセスが拒否されました

Destination Folder Access Denied related to トラブルシューティング: 送信先フォルダーへのアクセ...

この問題は、コマンドラインを使用してファイルをコピーすることで解決できます。

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
su username

ステップ 7: Githubからtesseract_tutorialをクローンする

tesseract_tutorial リポジトリは次のURLからクローンできます。 以下のコマンドを使用してhttps://github.com/astutejoe/tesseract_tutorial.git

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

ステップ 8: Github から tesstrain と tesseract をクローンする

tesseract_tutorial フォルダディレクトリに移動し、次に git clone https://github.com/tesseract-ocr/tesstrain および https://github.com/tesseract-ocr/tesseract を実行します

  • tesstrain には "Makefile" ファイルが含まれており、.traineddata ファイルの作成に使用されます(このチュートリアルの目的)。
  • tesseractには、「tessdata」フォルダーが含まれており、これはカスタムフォントトレーニングの参照として使用されるオリジナルの.traindataファイルのコンテナです。

ステップ9: 出力を保存するための「data」フォルダーを作成する

"data"はtesseract_tutorial/tesstrainに作成される必要があります。

ステップ10: split_training_text.py を実行する

tesseract_tutorial フォルダディレクトリに戻った後、次のコマンドをコンパイルします;

python split_training_text.py

split_training_text.pyを実行した後、"data"フォルダに.boxおよび.tifファイルが作成されます。

トラブルシューティング: Fontconfig 警告: "/tmp/fonts.conf, line 4: 空のフォントディレクトリ名が無視されました

Fontconfig Warning related to トラブルシューティング: Fontconfig 警告: "/tmp/fonts.conf, line 4: 空...

この問題は、Ubuntuフォルダ内のフォントディレクトリが見つからないことが原因で、tesseract_tutorial/fonts.confにこれらのコード行を挿入することで解決できます。

Fontconfig Dir Png related to トラブルシューティング: Fontconfig 警告: "/tmp/fonts.conf, line 4: 空...

そして

<dir>/usr/share/フォント

(Note: This is a file path and does not require translation.)</dir>
<dir>/usr/local/share/フォント</dir>
<dir prefix="xdg">フォント</dir>
<!-- the following element will be removed in the future -->
<dir>~/.フォント</dir>

その後、/etc/fonts にコピーします。

cp fonts.conf /etc/fonts

最後に、これらのコード行をsplit_training_text.pyに追加します。

Fontconfig Sol related to トラブルシューティング: Fontconfig 警告: "/tmp/fonts.conf, line 4: 空のフ...

そして


fontconf_dir = '/etc/fonts'

注: トレーニング(.box および .tif)ファイルの数

現在、トレーニングファイルの数は100です。 この数のトレーニングファイルは、split_training_text.py 内のこれらのコード行を編集または削除することで変更できます。

Number Of Trainfile related to 注: トレーニング(.box および .tif)ファイルの数

ステップ11: eng.traineddataをダウンロード

eng.traineddata は、次のURLから見つけることができます: https://github.com/tesseract-ocr/tessdata_besttesseract_tutorial/tesseract/tessdata にダウンロードしてください。なぜなら、tessdata_best にあるこの eng.traineddata は、tessdata フォルダーにあるオリジナルのものよりも優れているからです。

ステップ12: カスタムフォント .traineddata を作成します

tesstrainフォルダディレクトリに移動し、このコマンドラインをWSL2に入力してください


TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
  • トレーニングを行う = tesstrain/Makefileでコードを実行
  • MODEL_NAME = お客様のカスタムフォントの名前
  • START_MODEL = 元の.traineddataの名前
  • MAX_ITERATIONS = イテレーションの数(大きい数値ほど.traineddataの精度が高くなります)

    Makefile Issues related to ステップ12: カスタムフォント .traineddata を作成します

「Failed to read data from: 」は、Makefileのコード行を編集することで解決できます。

以前:

Makefile Sol Before related to 「Failed to read data from: 」は、Makefileのコード行を編集することで解...

後:

Makefile Sol After related to 「Failed to read data from: 」は、Makefileのコード行を編集することで解...

そして

make - 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

「data/langdata/Latin.unicharsetからスクリプトunicharsetの読み込みに失敗しました」という問題は、Latin.unicharsettesstrain/data/langdataフォルダに挿入することで解決できます。

ステップ13: 作成された.traineddataの精度

1000の.boxファイルと.tifファイル、3000回のトレーニングを行った結果、出力.traineddta(AMGDT.traineddata)は、トレーニングエラー率(BCER)が約5.77と最小限になりました。

Traineddata Accuracy related to ステップ13: 作成された.traineddataの精度

詳細や追加の参考資料については、こちらをご覧ください:ref: https://www.youtube.com/watch?v=KE4xEzFGSU8ustom

Kannaopat Udonpant
カンナパット・ウドンパント
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、カンナパットは日本の北海道大学から環境資源学の博士号を取得しました。学位を取得する過程で、カンナパットはバイオプロダクション工学部に所属する車両ロボティクス研究所のメンバーにもなりました。2022年には、C#のスキルを活かしてIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。カンナパットは、IronPDFで使用されているコードの大部分を作成した開発者から直接学べることに価値を見いだしています。同僚との学び合いに加えて、Iron Softwareで働くことの社会的側面も楽しんでいます。コードやドキュメントを書いていない時には、カンナパットは通常、PS5でゲームをしたり、『The Last of Us』を再視聴したりしています。