C#のTesseractでカスタム言語を使用して文字起こし・テキスト抽出を行う方法
IronOCR は、Tesseract .traineddata ファイルを UseCustomTesseractLanguageFile メソッドを通じてロードすることで、カスタム言語、特殊なスクリプト、または暗号の文字認識を有効にし、カスタムトレーニングされた言語モデルからテキスト抽出できるようにします。
クイックスタート: OCR 用のカスタム言語の読み込み
-
IronOCR をNuGetパッケージマネージャでインストール
PM > Install-Package IronOcr -
このコード スニペットをコピーして実行します。
using IronOcr; // Initialize OCR engine var ocr = new IronTesseract(); // Load custom language file ocr.UseCustomTesseractLanguageFile("custom.traineddata"); // Process document using var input = new OcrInput(); input.LoadImage("document.png"); // Extract text var result = ocr.Read(input); Console.WriteLine(result.Text); -
実際の環境でテストするためにデプロイする
今日プロジェクトで IronOCR を使い始めましょう無料トライアル
1.NuGetパッケージマネージャ経由でIronOCRをインストールする
- カスタムの
.traineddataファイルをUseCustomTesseractLanguageFileで読み込みます。 OcrInputを作成し、ドキュメントをロードしますRead()を呼び出して、カスタム言語でテキストを抽出します。
5.抽出したテキストを保存または処理する
光学式文字認識(OCR)では、カスタム言語や特殊なスクリプト、暗号を扱う必要がある場合があります。 カスタム言語を含む入力イメージを読み取るには、Tesseract エンジンにその特定の言語のトレーニング データを提供する必要があります。 このデータは特別な .traineddata ファイルに保存されます。
このファイルを作成 (トレーニング) する複雑なプロセスは Tesseract 独自のツールを使用して実行されますが、IronOCR はこれらのカスタム言語ファイルの使用を完全にサポートしています。 これにより、トレーニング済みのモデルを適用して、任意の入力からテキストを解読して読み取ることができます。 このガイドでは、 IronOCRを使用してカスタム .traineddata ファイルをロードして使用する方法を説明します。
Tesseractでカスタム言語を使用する方法
- カスタム言語を読み取るためのC#ライブラリをダウンロードする
- OCRエンジンを初期化
- `UseCustomTesseractLanguageFile`を使用してカスタム言語トレーニング データをロードします。
- `LoadImage`で入力画像を読み込む
- `Read`でカスタム言語入力イメージを読み取り、抽出します。
Tesseractでカスタム言語OCRを実装するには?
Tesseract でカスタム言語を使用するには、まず UseCustomTesseractLanguageFile メソッドを呼び出して .traineddata ファイルをロードします。 このファイルには、Tesseract がカスタム言語の固有の文字を認識できるようにするすべてのトレーニング データが含まれているため、これは重要なステップです。
IronOCRのカスタム言語サポートは標準言語を超えています。 歴史的なスクリプトや発明された言語、特殊な表記システムを扱う場合でも、同じプロセスが適用されます。 複数の言語を必要とするプロジェクトについては、複数言語の読み取りに関するガイドをチェックするか、箱から出してすぐにサポートされている125の国際的なOCR言語について学んでください。
次に、通常のOCR操作と同じように、入力文書を読み込みます。 LoadPdf を使用して、カスタム言語の段落を含む PDF を読み込んでいます。 IronOCRは画像(jpg, png, gif, tiff, bmp)とPDFを含む様々な入力フォーマットをサポートしています。
最後に、Read メソッドを使用して、入力からテキストを抽出します。 翻訳結果は、コンソールに印刷したり、テキストファイルに保存して参照することができます。
カスタム言語にはどのようなトレーニングデータが必要ですか?
カスタム言語のテキストを含むこのサンプル PDF を入力として使用します。
この例では、カスタム言語 .traindataを使用します。
トレーニングデータの品質と網羅性は、OCRの精度に直接影響します。 カスタム言語トレーニングデータを作成する場合
1.文字カバレッジ: トレーニングデータにすべての文字と記号が含まれていることを確認してください。 2.フォントのバリエーション: 文書のタイポグラフィが異なる場合は、複数のフォントスタイルを含めてください。 3.画像品質:本番で処理する画像に近い画像でトレーニングしてください。 4.コンテキストパターン:一般的な単語の組み合わせやフレーズを含める。
高度な設定オプションについては、Tesseract 詳細設定ガイドをご覧ください。
カスタム言語ドキュメントを読み込んで処理するにはどうすればよいですか?
:path=/static-assets/ocr/content-code-examples/how-to/ocr-custom-language.cs
using IronOcr;
using System;
using System.IO;
var ocrTesseract = new IronTesseract();
// Load the traineddata file for the custom language
ocrTesseract.UseCustomTesseractLanguageFile("AMGDT.traineddata");
using var ocrInput = new OcrInput();
// Load the PDF containing text in the custom language
ocrInput.LoadPdf("custom.pdf");
var ocrResult = ocrTesseract.Read(ocrInput);
// Print text to the console
Console.WriteLine("--- OCR Result ---");
Console.WriteLine(ocrResult.Text);
Console.WriteLine("------------------");
// Pipe text to a .txt file
string outputFilePath = "ocr_output.txt";
File.WriteAllText(outputFilePath, ocrResult.Text);
Console.WriteLine($"\nSuccessfully saved text to {outputFilePath}");
Imports IronOcr
Imports System
Imports System.IO
Dim ocrTesseract As New IronTesseract()
' Load the traineddata file for the custom language
ocrTesseract.UseCustomTesseractLanguageFile("AMGDT.traineddata")
Using ocrInput As New OcrInput()
' Load the PDF containing text in the custom language
ocrInput.LoadPdf("custom.pdf")
Dim ocrResult = ocrTesseract.Read(ocrInput)
' Print text to the console
Console.WriteLine("--- OCR Result ---")
Console.WriteLine(ocrResult.Text)
Console.WriteLine("------------------")
' Pipe text to a .txt file
Dim outputFilePath As String = "ocr_output.txt"
File.WriteAllText(outputFilePath, ocrResult.Text)
Console.WriteLine(vbCrLf & "Successfully saved text to " & outputFilePath)
End Using
上記のコードは、カスタム言語OCRの基本的なワークフローを示しています。 より複雑なシナリオについては、以下の機能拡張をご検討ください:
パフォーマンスを最適化する:大きなドキュメントやバッチ処理では、マルチスレッドと非同期サポートを実装してパフォーマンスを向上させましょう。
画像前処理:ソース文書に品質の問題がある場合、OCR処理の前に画像補正フィルターを適用します。 フィルタウィザードは、最適な前処理設定を見つけるのに役立ちます。
地域固有のOCR:コンテンツが混在するドキュメントでは、OCR region of an image テクニックを使用して、カスタム言語を含む特定の領域に焦点を当てます。
カスタム言語OCRにはどのような結果が期待できますか?
この出力は、カスタム言語モデルの結果を示しています。 IronOCRは正しい学習データを提供することで、テキストの解読に成功し、結果は平易な英語となりました。 さらに、これはコードによって生成されたテキスト出力です。
カスタム言語OCRの精度は、いくつかの要因に左右されます:
- トレーニングデータの品質:より良いトレーニングデータがより良い結果を生む
- ドキュメントの一貫性:学習データと一致する文書が最も良い結果を出す
- 画像解像度: DPIが高い画像ほど、より正確な結果が得られます - DPI設定に関するガイドを参照してください。
カスタム言語実装のベストプラクティス
本番環境でカスタム言語OCRを実装する場合は、以下のベストプラクティスを考慮してください:
エラー処理と検証: ロードを試みる前に、必ず .traineddata ファイルが存在し、アクセス可能であることを確認してください。 カスタム言語ファイルが見つからない、または破損している可能性がある場合の適切なエラー処理を実装します。
パフォーマンスの最適化:カスタム言語モデルは、標準の言語パックよりも大きくなる可能性があります。 最適なパフォーマンスのために
- 複数のドキュメントを処理するときに読み込まれた言語モデルをキャッシュする
- 進行状況の追跡を使用して、長時間実行される OCR 操作を監視します。
- 大きなドキュメントを処理するためにタイムアウトを実装することを検討してください。
標準言語との組み合わせ: 文書にカスタム言語と標準言語の両方が含まれている場合、複数の言語を同時に読み込むことができます。 これは、内容が混在する文書に特に有効です。
テストと検証: OCRの精度を検証するためのテストフレームワークを確立する:
- 既知の出力でテストデータセットを作成する
- 結果の信頼度メトリクスを使用して、認識品質を評価します。
- highlight text as images を実装し、ビジュアルデバッグを行う。
高度な使用例
カスタム言語OCRは、多くの可能性を広げます:
歴史的文書の保存:古代の写本や時代遅れの文字で書かれたテキストをデジタル化する。 専門表記システム:数式、楽譜、技術ダイアグラムの処理 - 数式トラブルシューティングガイドをご覧ください。 セキュリティアプリケーション:独自のエンコーディングシステムや暗号をデコードする。 アクセシビリティ:特殊な点字または触覚筆記システムを標準テキストに変換する。
より高度なシナリオについては、コード例をご参照ください。
よくある質問
カスタム言語やスクリプトを含む文書でOCRを実行するにはどうすればよいですか?
IronOCRはUseCustomTesseractLanguageFileメソッドを通してTesseract.traineddataファイルをロードすることでカスタム言語OCRを可能にします。これにより、特殊なスクリプト、歴史的なテキスト、暗号など、カスタム学習された言語モデルからテキストを抽出することができます。
カスタム言語認識に必要なファイル形式は?
IronOCRはカスタム言語の学習データを含む.traineddataファイルを必要とします。このファイルはUseCustomTesseractLanguageFileメソッドを使用して読み込まれ、Tesseractがカスタム言語固有の文字を認識するために必要なすべての情報が含まれています。
1つのOCR操作で複数のカスタム言語を使用できますか?
はい、IronOCRは複数の言語認識に対応しています。複数のカスタム言語ファイルを読み込んだり、カスタム言語とIronOCRがすぐにサポートする125の国際言語を組み合わせることができます。
どのような種類のカスタムスクリプトを認識できますか?
IronOcrは、歴史的なスクリプト、発明された言語、特殊な表記法、暗号など、.traineddataファイルに適切に学習されたカスタムスクリプトを認識することができます。その柔軟性は、Tesseractのツールを使って学習させることができるあらゆる文字体系にも及んでいる。
C#アプリケーションにカスタム言語OCRを実装するには?
IronOCRでカスタム言語OCRを実装するには: 1) IronTesseractインスタンスを初期化し、2) UseCustomTesseractLanguageFileを使用してカスタム.traineddataファイルをロードし、3) OcrInputオブジェクトを作成してドキュメントをロードし、4) Read()メソッドを呼び出してテキストを抽出し、5) 必要に応じて抽出されたテキストを処理する。

