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

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をインストールしてセットアップする

HereWSL2と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/fontsUbuntu/usr/local/share/fonts

ファイルにアクセスするには、ファイルエクスプローラーのディレクトリに \\\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をクローンする

以下のURLからtesseract_tutorialリポジトリをクローンできます。 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/tesstrainhttps://github.com/tesseract-ocr/tesseract

  • テストレインには、.traineddataファイルを作成するために使用する "Makefile" ファイルが含まれています。(このチュートリアルの目的)
  • 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: 空...

そして もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。

/usr/share/fonts (Note: This is a file path and does not require translation.) /usr/local/share/fonts フォント

申し訳ありませんが、翻訳するコンテンツのテキストを提供してください。その後、英語から日本語に翻訳いたします。!以下の要素は将来削除されます-->

~/.fonts

もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。

次に、これを /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_best. eng.traineddatatesseract_tutorial/tesseract/tessdataにダウンロードしてください。これはtessdata_best内のデータが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 - メイクファイル

WORDLIST_FILE := $(出力ディレクトリ2)しわけできません、その情報だけでは翻訳が難しいです。ターゲット言語と内容を具体的に提供してください。(MODEL_NAME).lstm-word-dawg

NUMBERS_FILE := $(出力ディレクトリ2)しわけできません、その情報だけでは翻訳が難しいです。ターゲット言語と内容を具体的に提供してください。(MODEL_NAME).lstm-number-dawg

PUNC_FILE := $(出力ディレクトリ2)しわけできません、その情報だけでは翻訳が難しいです。ターゲット言語と内容を具体的に提供してください。(MODEL_NAME).lstm-punc-dawg

(The term ".lstm-punc-dawg" appears to be a technical or branded term. According to your instructions, terms that are integral to the product and its functionality should remain unchanged if they are brand-specific or technical in nature. Therefore, no translation is provided for this specific term.) もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。

「Failed to load script unicharset from:data/langdata/Latin.unicharset」というエラーは、Latin.unicharsettesstrain/data/langdataフォルダーに挿入することで解決できます。

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

.box および .tif ファイルの1000個と3000回のトレーニングの繰り返しで、出力 .traineddta(AMGDT.traineddata)最小トレーニングエラー率を持っています(BCER)約 5.77

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

リファレンス作業および詳細な読書に関してはref: https://www.youtube.com/watch?v=KE4xEzFGSU8

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

カンナパット・ウドンパント

ソフトウェアエンジニア

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