開発部のM.Tです。
Azureを使ってOCRするとなると、Document Intelligence (旧Form Recognizer) か、Computer Vision を使うことになると思います。
この2つのサービスの違いをよく知らなかったので、機能とコスト面を簡単に比較してみました。
Document Intelligence
Azure AI サービスのひとつで、ドキュメント処理を得意とします。 learn.microsoft.com
得意分野
複雑なドキュメントからのデータ抽出
- General Extraction Model
- Read (テキスト抽出)
- Layout (テキスト、テーブル、ドキュメントの構造を抽出)
- General Documents (Key-Valueペアやテーブルなどの構造を抽出)
- Prebuilt Model (Azureで用意された金融や法務用書類のModel)
- Invoices
- Credit cards
- ... (たくさんあるので省略)
- Custom Model
- Custom Extraction Model (ドキュメントからデータを抽出する)
- Custom Classification Model (ドキュメントの種類を特定する)
使い方
より精度よくドキュメントを解析できるよう、ツールでドキュメントに合わせたトレーニングやモデル構築をします。 独自のモデルを構築せず、事前構築済みのモデルを利用することも可能です。 モデル構築後、ツールやSDK、API経由でドキュメントの解析を依頼し、結果を取得します。
コスト
こちらのサイトで確認できます: azure.microsoft.com
従量課金の場合、1000ページごとにいくらかというに書かれ方になっています。 1か月あたり500ページまでなら無料で使用可能です。
Computer Vision
画像や動画を視覚的特徴に基づいて解析します。 learn.microsoft.com
得意分野
動画や画像の解析、単純なテキスト認識
- Basic OCR(画像からテキストを読み取る)
- 物体抽出
- 色(画像のメインカラー、サブカラーを選定)
- 顔認識(性別、年齢、表情などを認識)
- タグ作成(画像を説明するタグを選定)
- サムネイル作成
- ... (たくさんあるので省略)
使い方
SDKやAPIを使って解析したい画像の解析を依頼し、結果を取得します。
Vision Studioで各機能を試すことができます: https://portal.vision.cognitive.azure.com/gallery/featured
コスト
こちらのサイトで確認できます: azure.microsoft.com
Document Intelligenceと異なり、1000トランザクションごとにいくらかという書かれ方になっています。 1か月あたり5000トランザクションまでなら無料で使用可能です。 ただし、1分あたり20件という制限があります。
どっちを使う?
上であげたとおり、Document Intelligenceは複雑なドキュメント処理が得意で、Computer Visionは一般的な画像処理を得意とします。 フォーマットが決まっている帳票の解析はDocument Intelligence、それ以外の画像解析はComputer Visionに任せると良さそうですね。
OCR
文字認識に関しては、両方ともOCR機能があるので、どちらを採用するか迷うところかもしれません。精度については特に検証していないので細かいところは分かりませんが、使用しているOCRエンジンは同じでOCRそのものの精度に差はないとどこかで読んだことがあります(...文献をなくしてしまいました)。今のところ両サービスの精度に不満を持ったことはありませんが、これから検討する場合は実際に両方試してみて精度を確認してから決めるのも良いと思いますし、単純にコストが抑えられる方を採用しても問題なさそうです。
試しに、Document IntelligenceのReadとComputer VisionのOCRを使って同じドキュメントをOCRしてみましたが、Computer VisionのOCRは「Basic OCR」ということで、読み取った文字列をシンプルに配列に入れて返してくれました。一方、Document Intelligenceはドキュメント解析を得意とするだけあり、読み取った文字列だけでなく、ドキュメントのページ番号や読み取った領域の座標なども一緒にJSON形式で返してくれました。
少し試してみただけですが、似て非なるものだと感じました。
コスト面を比較すると、従量課金の場合、Document Intelligenceは1000ページあたり200円くらい、Computer Visionは1000トランザクションあたり140円くらいです(細かい値は変動するのでアバウトに書いています)。100万ページ/トランザクションを超えると、ページ数/トランザクション数によって料金が変わってくるので一概にどちらのほうが安いとは言い切れません。 また、1か月の定額課金の場合、1ページ=1トランザクションとすると、料金は同じになります。
まとめ
Document Intelligenceはドキュメント処理、Computer Visionは画像処理。 OCRに関しては、精度に大きな差はないはずで、コスト面では何ページ/トランザクション処理したいかによって料金が違う。
処理したい枚数が少なくて単純にOCRしたいだけならComputer Vision、OCRしたい読み取り位置が大体わかっているならDocument Intelligence、というところでしょうか。
私が直面しているケースに関しては、処理したい帳票のフォーマットは決まっていませんが、それぞれの帳票の座標情報は持っているので、Document IntelligenceのOCR機能が使えそうですし、コストも抑えられる可能性があります。 今回の調査を行うまでは、「帳票のフォーマット決まってないしComputer Vision使えばいいんじゃない?」と漠然と思っていましたが、調査によって別の選択肢が見えてきたのは収穫でした。
何をどう実現したいかによって選ぶサービスは変わってきますね。
おわりに
KENTEMでは、様々な拠点でエンジニアを大募集しています! 建設×ITにご興味頂いた方は、是非下記のリンクからご応募ください。 recruit.kentem.jp career.kentem.jp