NINA HOUSE

技術ブログ作ってみる

【AI-900】Azureの光学式文字認識(OCR)

AzureのOCRサービス

docs.microsoft.com

必要なリソース

Computer VisionCognitive Servicesのどちらか。
こちらもこれまでと同様キーとエンドポイントが必要。

Computer Visionでやってみる

2つのAPIがある。画像内にテキストがどれだけ含まれているかで使い分ける。

  • OCR API - 画像内の少量のテキストを素早く抽出

    • テキストを含む画像内の領域
    • 各領域のテキストの行
    • 各テキスト行の単語
      OCR API はこれらの各要素について、領域、行、または単語が表示される画像内の位置を示す四角形を定義する "境界ボックス" 座標も返す。
  • 読み取りAPI - 大量のテキストを含むスキャンされたドキュメントに適している(手書き文字もいける)

読み取りAPIは処理が多いので、コンテンツを読み取ってアプリケーションに結果を返す間、アプリケーションをブロックしないように非同期的に動作。よって、読み取りAPI を使用するには、アプリケーションで次の 3 ステップの処理を行う必要があるす。

  1. API に画像を送信し、応答として操作IDを取得

  2. 操作 ID を使用して画像解析操作の状態を確認し、完了するまで待機

  3. 結果を取得

ページ、行、単語、座標を取得できる。

フォームに特化したOCRサービスもあるよ

Form Recognizer

docs.microsoft.com

Form Recognizerとは

フォームの内容まで解釈してくれるスグレモノ。

例)フィールド名と値の照合
データのテーブルの処理
日付、電話番号、住所、合計などの特定の種類のフィールドの識別など

2つのモデルがある。

  • 事前作成済みの領収書モデル - 売上票からデータを認識して抽出するようにトレーニングされてる

  • カスタムモデル - キーと値のペアと、テーブル データをフォームから抽出できる

使用するにはForm RecognizerのAzureリソースが必要。

事前作成済みの領収書モデルでは

カスタムモデルのドキュメントはこちら↓

docs.microsoft.com

【何が抽出できるか】
* 取引時間
* 取引日
* 販売者情報
* 支払い税額
* 領収書合計
* 領収書に記載されている可能性があるその他の関連情報
* 領収書のすべての文字が同様に認識されて返される

【ファイルの要件はこちら】

  • 画像を JPEGPNGBMP、PDF、または TIFF 形式にする
  • ファイル サイズを 50 MB 未満にする
  • 画像のサイズを 50 x 50 から 10000 x 10000 ピクセルにする
  • PDF ドキュメントの場合、17 インチ x 17 インチ以下