ocr
光学式文字認識を使用したテキストの認識
説明
は、対応するイメージのデータストア txt = ocr(ds)ds で指定された ROI の認識結果が格納された ocrText オブジェクトの cell 配列を返します。この構文を使用して、複数のイメージに対して OCR を実行します。既定では、ocr 関数は各 ROI に 1 行のテキストのみが含まれていると想定します。複数のテキスト行を含む可能性のある ROI を処理するには、名前と値の引数 LayoutAnalysis を "block" に設定します。
は、前の構文にある引数の任意の組み合わせに加えて、名前と値の引数を 1 つ以上使用してオプションを指定します。たとえば、txt = ocr(___,Name=Value)LayoutAnalysis="page" は、イメージをテキスト ブロックを含むページとして処理します。
例
入力引数
名前と値の引数
出力引数
ヒント
光学式文字認識 (OCR) 言語データ ファイルは、Tesseract OCR エンジン用の事前学習済み言語モデルを提供し、さまざまな言語での正確かつ効率的なテキスト抽出を可能にします。これらのファイルは Computer Vision Toolbox™ との統合を前提として設計されており、複数の言語にわたって高度な OCR 機能を活用できます。これらの言語データ ファイルのインストール、サードパーティ言語サポートの有効化、および ocr 関数で事前学習済みモデルを使用して多言語テキスト認識を行うための段階ごとのガイドについては、OCR Language Data Files のインストールを参照してください。OCR ワークフローの概要と基本的な使用方法については、Getting Started with OCRを参照してください。
OCR の結果が期待どおりでない場合は、以下のオプションを 1 つ以上試してみてください。
イメージ サイズを 2 ~ 4 倍に拡大します。
イメージ内の文字の間隔が狭すぎたり、文字のエッジが隣の文字に接している場合、モルフォロジーを使用して文字を細くします。モルフォロジーで文字を細くすると、文字間にスペースを作成するのに役立ちます。
2 値化を用いて、ライティングが一様でないために問題が発生していないかをチェックします。
graythresh関数とimbinarize関数を使用してイメージを 2 値化します。2 値化の結果で文字が見えない場合、ライティング条件が一様でない可能性があります。imtophat関数を使用してトップ ハット フィルター処理を適用するか、一様でない明るさを取り除くその他の手法を試してみます。roi引数を使用してテキストを分離します。roiを手動で指定することも、テキスト検出を使用することもできます。イメージがスキャンしたドキュメントではなく、路上などの言葉を含む自然なシーンの場合、
LayoutAnalysis引数を"Block"か"Word"に設定してみます。イメージの背景が淡色でテキストが濃色であることを確認します。これを実現するには、関数
ocrに渡す前にイメージを 2 値化して反転します。
参照
[1] Smith, Ray. An Overview of the Tesseract OCR Engine. In Ninth International Conference on Document Analysis and Recognition (ICDAR 2007), 629–33. IEEE, 2007. https://doi.org/10.1109/ICDAR.2007.4376991."
[2] Smith, R., D. Antonova, and D. Lee. Adapting the Tesseract Open Source OCR Engine for Multilingual OCR. Proceedings of the International Workshop on Multilingual OCR, (2009).
[3] R. Smith. Hybrid Page Layout Analysis via Tab-Stop Detection. Proceedings of the 10th international conference on document analysis and recognition. 2009.





