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に提供し、カスタムフォントの特定の特徴とパターンを学習させることが含まれます。


## ステップ1: 最新バージョンのIronOCRをダウンロード
OCR 用 C# NuGet ライブラリ

でインストール NuGet

Install-Package IronOcr
または
Java PDF JAR(ジャバPDF JAR)

ダウンロード DLL (ディーエルエル)

DLLをダウンロード

プロジェクトに手動でインストールする

OCR 用 C# NuGet ライブラリ

でインストール NuGet

Install-Package IronOcr
または
Java PDF JAR(ジャバPDF JAR)

ダウンロード DLL (ディーエルエル)

DLLをダウンロード

プロジェクトに手動でインストールする

今日からプロジェクトでIronPDFを使い始めましょう。無料のトライアルをお試しください。

最初のステップ:
green arrow pointer

チェックアウト IronOCR オン Nuget 迅速なインストールと展開のために。8百万以上のダウンロード数により、OCRをC#で変革しています。

OCR 用 C# NuGet ライブラリ nuget.org/packages/IronOcr/
Install-Package IronOcr

インストールを検討してください IronOCR DLL 直接。ダウンロードして、プロジェクトまたはGACの形式で手動でインストールしてください。 IronOcr.zip

プロジェクトに手動でインストールする

DLLをダウンロード

DLL経由でインストール

ダウンロード IronOCR DLL 直接あなたのマシンへ。

NuGetでインストール

あるいは、以下を通じてインストールすることもできます NuGet . ```shell :ProductInstall ```
## ステップ2: WSL2とUbuntuをインストールしてセットアップする [Here](https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10)WSL2とUbuntuのセットアップチュートリアル ** 現在、カスタムフォントのトレーニングはLinuxでのみ実行可能です ## ステップ3:UbuntuにTesseract 5をインストール ```bash sudo apt install tesseract-ocr sudo apt install libtesseract-dev ``` ## ステップ4: トレーニングしたいフォントをダウンロードする このチュートリアルでは、AMGDTフォントを使用しています。 フォントファイルは .ttf または .otf のどちらでも可能です。 ![](/static-assets/ocr/how-to/ocr-custom-font-training/example_of_downloaded_font_file.png) ## ステップ5: カスタムフォントトレーニング用の作業スペースのディスクドライブをマウントする 以下のコマンドは、ドライブ `D:` を作業スペースとしてマウントする方法を示しています。 ```bash cd / cd /mnt/d ``` ## ステップ6: フォントファイルをUbuntuのフォントフォルダにコピーする 以下は、Ubuntuフォントフォルダーのディレクトリです: `Ubuntu/usr/share/fonts` と `Ubuntu/usr/local/share/fonts` ファイルにアクセスするには、ファイルエクスプローラーのディレクトリに `\\\wsl$` と入力してください。 ![](/static-assets/ocr/how-to/ocr-custom-font-training/ubutu_folder_directory.png) ### トラブルシューティング: 送信先フォルダーへのアクセスが拒否されました ![](/static-assets/ocr/how-to/ocr-custom-font-training/destination_folder_access_denied.png) この問題は、コマンドラインを使用してファイルをコピーすることで解決できます。 ```bash 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](https://github.com/astutejoe/tesseract_tutorial.git)次のコマンドを使用して ```bash 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 - テストレインには、.traineddataファイルを作成するために使用する "Makefile" ファイルが含まれています。(このチュートリアルの目的) - tesseractには「tessdata」フォルダが含まれており、これはカスタムフォントトレーニングに使用される参照用のオリジナル.traindataファイルのコンテナです。 ## 手順9:“data”フォルダーを作成して出力を保存する 「data」は `tesseract_tutorial/tesstrain` に作成される必要があります。 ## ステップ10: split_training_text.py を実行する `tesseract_tutorial` フォルダーのディレクトリに戻り、次のコマンドをコンパイルします。 ```bash python split_training_text.py ``` `split_training_text.py` を実行すると、「data」フォルダーに `.box` および `.tif` ファイルが作成されます。 ### トラブルシューティング: Fontconfig 警告: "/tmp/fonts.conf, line 4: 空のフォントディレクトリ名が無視されました" ![](/static-assets/ocr/how-to/ocr-custom-font-training/fontconfig_warning.png) この問題は、Ubuntuフォルダ内のフォントディレクトリが見つからないことによって引き起こされます。この問題は、以下のコード行を `tesseract_tutorial/fonts.conf` に挿入することで解決できます。 ![](/static-assets/ocr/how-to/ocr-custom-font-training/fontconfig_dir.png.png) そして もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。 /usr/share/フォント (Note: This is a file path and does not require translation.)/usr/local/share/フォントフォント 申し訳ありませんが、翻訳するコンテンツのテキストを提供してください。その後、英語から日本語に翻訳いたします。!以下の要素は将来削除されます--> ~/.fonts もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。 次に、これを `/etc/fonts` にコピーします。 ```bash cp fonts.conf /etc/fonts ``` 最後に、これらのコード行を`split_training_text.py`に追加します。 ![](/static-assets/ocr/how-to/ocr-custom-font-training/fontconfig_sol.png) そして もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。 fontconf_dir = '/etc/fonts' もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。 ### 注記: トレーニングファイル(.box および .tif)数 現在、トレーニングファイルの数は100です。このトレーニングファイルの数は、split_training_text.pyのコード行を編集または削除することで変更できます。 ![](/static-assets/ocr/how-to/ocr-custom-font-training/number_of_trainfile.png) ## ステップ11: eng.traineddataをダウンロード `eng.traineddata` は以下のURLから見つけることができます:[https://github.com/tesseract-ocr/tessdata_best](https://github.com/tesseract-ocr/tessdata_best). `eng.traineddata`を`tesseract_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` の精度が高いことを意味します。 ![](/static-assets/ocr/how-to/ocr-custom-font-training/makefile_issues.png) ### 「Failed to read data from: 」 は、Makefileのコード行を編集することで解決できます。 以前: ![](/static-assets/ocr/how-to/ocr-custom-font-training/makefile_sol_before.png) 後: ![](/static-assets/ocr/how-to/ocr-custom-font-training/makefile_sol_after.png) そして もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。 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.unicharset`を`tesstrain/data/langdata`フォルダーに挿入することで解決できます。 - 次のURLで`Latin.unicharset`を見つけることができます; https://github.com/tesseract-ocr/langdata_lstm ## ステップ13: 作成された `.traineddata` の精度 `.box` および `.tif` ファイルの1000個と3000回のトレーニングの繰り返しで、出力 `.traineddta`(AMGDT.traineddata (Note: The term "AMGDT.traineddata" seems to be a technical term or file name. Following your instructions to maintain the integrity and understanding of technical terms, it remains unchanged in the translation.))最小トレーニングエラー率を持っています(BCER)約 5.77 ![](/static-assets/ocr/how-to/ocr-custom-font-training/traineddata_accuracy.png) **リファレンス作業および詳細な読書に関しては**:**ref**: https://www.youtube.com/watch?v=KE4xEzFGSU8

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

ソフトウェアエンジニア

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