Windowsユーザー向けのTesseract 5用C#カスタムフォントトレーニング
Tesseract 5のためのカスタムフォントトレーニングを利用して、特定のフォントやデフォルトでは十分にサポートされていないフォントスタイルを使用する際に、OCRエンジンの精度と認識能力を向上させましょう。
このプロセスには、フォントサンプルと対応するテキストなどのトレーニングデータをTesseractに提供し、カスタムフォントの特定の特徴とパターンを学習させることが含まれます。
IronOCRを始めましょう
今日から無料トライアルでIronOCRをあなたのプロジェクトで使い始めましょう。
C#でTesseractのカスタムフォントを使用する方法
- Tesseractでカスタムフォントを訓練するためのC#ライブラリをダウンロード
- トレーニングに使用する対象フォントファイルを準備する
- 記事に記載されている手順に従ってください
- 一般的なエラーに対する解決策が含まれています
- 学習データファイルをエクスポートしてさらに利用します
ステップ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でも可能です
ステップ5: カスタムフォントトレーニング用の作業スペースのディスクドライブをマウントする
以下のコマンドは、ドライブD:
を作業スペースとしてマウントする方法を示しています。
cd /
cd /mnt/d
ステップ6: フォントファイルをUbuntuのフォントフォルダにコピー
以下は、Ubuntuフォントフォルダーのディレクトリです: Ubuntu/usr/share/fonts と Ubuntu/usr/local/share/fonts。
** Ubuntuでファイルにアクセスするには、ファイルエクスプローラーのディレクトリで\\\wsl$
を入力してください。
トラブルシューティング: 送信先フォルダーへのアクセスが拒否されました
この問題は、コマンドラインを使用してファイルをコピーすることで解決できます。
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: 空のフォントディレクトリ名が無視されました
この問題は、Ubuntuフォルダ内のフォントディレクトリが見つからないことが原因で、tesseract_tutorial/fonts.conf
にこれらのコード行を挿入することで解決できます。
そして
<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
に追加します。
そして
fontconf_dir = '/etc/fonts'
注: トレーニング(.box および .tif)ファイルの数
現在、トレーニングファイルの数は100です。 この数のトレーニングファイルは、split_training_text.py 内のこれらのコード行を編集または削除することで変更できます。
ステップ11: eng.traineddataをダウンロード
eng.traineddata
は、次のURLから見つけることができます: https://github.com/tesseract-ocr/tessdata_best。 tesseract_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
の精度が高くなります)
「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.unicharset
をtesstrain/data/langdata
フォルダに挿入することで解決できます。
Latin.unicharset
は次のURLで見つけることができます; https://github.com/tesseract-ocr/langdata_lstm
ステップ13: 作成された.traineddata
の精度
1000の.box
ファイルと.tif
ファイル、3000回のトレーニングを行った結果、出力.traineddta
(AMGDT.traineddata)は、トレーニングエラー率(BCER)が約5.77と最小限になりました。
詳細や追加の参考資料については、こちらをご覧ください:ref: https://www.youtube.com/watch?v=KE4xEzFGSU8ustom