このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
テキストの検出と認識
イメージ内のテキストの検出と認識は、コンピューター ビジョン アプリケーションで実行される一般的なタスクです。たとえば、走行中の車両から路上シーンのビデオをキャプチャし、キャプチャしたシーンの標識を認識して、ドライバーに標識について知らせることができます。ツールボックスは、複数の言語でテキストの検出と認識を行う機能を提供します。
テキスト認識の最初のステップは、イメージ内のテキスト領域を検出してセグメント化することです。テキスト領域を検出するには、局所的なイメージ特徴検出器と記述子、または複雑なイメージ シーン内のテキストを検出するように学習させた事前学習済みの深層学習モデルを使用します。ツールボックス内の例では、ブロブ解析、maximally stable extremal regions (MSER) 特徴検出器、および character region awareness for text detection (CRAFT) 深層学習モデルを使用してテキストを検出する方法を示しています。
ブロブ解析は、テスト イメージが 2 値化されたイメージで、前景にテキスト領域がある場合に効果的です。このメソッドは、領域統計を使用して、イメージ前景のテキストの位置推定と抽出を効果的に行います。イメージの 2 値化には、イメージのしきい値処理などのセグメンテーション アプローチを使用します。
MSER 特徴検出器は、イメージ内のテキスト領域の幾何学的特性が既知である場合に効果的です。また、イメージ内のテキスト領域は、強度やカラー値が均一な高コントラストの領域でなければなりません。特徴検出器は、幾何学的制約を使用して、テキスト以外の領域を除外し、均一な背景や複雑な背景のイメージ内のテキスト領域を検出します。
CRAFT モデルは、イメージの背景、コントラスト、強度値などの要因に関係なく、イメージ内のテキスト領域を検出するロバストなアプローチです。イメージ内のテキスト領域をセグメント化することが難しい場合は、CRAFT モデルを使用します。このモデルは、他のテキスト検出アプローチよりも多くの計算リソースを必要とします。
テキスト検出の精度を向上させるための前処理または後処理のステップとして、テキストのセグメンテーションを実行できます。イメージ領域からテキストをセグメント化するには、イメージのしきい値処理やクラスタリングなどのイメージ セグメンテーション手法を使用します。イメージ セグメンテーション用の MATLAB® 関数の詳細については、イメージのセグメンテーションを参照してください。または、色のしきい値アプリとイメージの領域分割アプリを使用して、イメージ内の目的のテキスト領域を対話的にセグメント化することもできます。
次のステップは、機械学習 (ML) ベースの分類や光学式文字認識 (OCR) 法を使用して、検出された領域やセグメント化された領域のテキストを認識することです。関数 ocr
は、OCR エンジンのページ Tesseract オープン ソース OCR エンジンからの OCR 言語データ サポート ファイルを使用します。サポート ファイルには、複数の言語で文字を認識するよう事前学習済みの言語データ ファイルが含まれています。追加の言語ファイルは、関数 visionSupportPackages
またはアドオン エクスプローラーを使用してダウンロードできます。アドオンのダウンロードの詳細は、アドオンの取得と管理を参照してください。Tesseract オープン ソース OCR エンジンから OCR 言語データ サポート ファイルをインストールして使用する方法については、OCR 言語データ ファイルのインストールを参照してください。
アプリ
OCR トレーナー | 特定の文字セットを認識するよう光学式文字認識モデルを学習させる |
関数
トピック
開始
- 局所特徴の検出と抽出
局所特徴の検出と抽出の利点と用途の学習。 - 特徴点のタイプ
いくつかの種類の特徴の点オブジェクトを返したり受け入れたりする関数の選択。
光学式文字認識の使用
- カスタム フォントについての光学式文字認識の学習
OCR アプリを使用して、カスタム言語またはカスタム フォントを認識するよう関数ocr
に学習させます。 - OCR 言語データ ファイルのインストール
光学式文字認識 (OCR) 言語のファイルをサポートしています。 - 関数 ocr の結果のトラブルシューティング
光学式文字認識 (OCR) 関数 ocr のトラブルシューティング