【備忘録】Google Cloud Vision、Azure Computer Vision、Azure Form Recognizerの検証 - OCR精度、コストなど

## はじめに
この記事では、Google Cloud Vision API、Azure Computer Vision、Azure Form RecognizerのOCRサービスの精度を評価し、結果を確認します。また、料金体系についても概説します。
また精度評価にあたり、比較対象としてpytesseractの結果も掲載しています。

## 使用したサンプル
評価には、MakeLeapsさんが配布している無料の請求書テンプレートを元に作成しました。これに少しぼかしを追加しています。

- テンプレートソース: [MakeLeaps請求書テンプレート](https://www.makeleaps.jp/%E8%B3%87%E6%96%99/excel-templates-invoice/)

![ocr_test2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/345512/d42978e9-ae4e-1ad1-b7ab-8ff432b760e7.png)
## OCRサービスによる精度評価
それぞれのOCRサービスによる文字認識の結果を比較し、誤認識の例を挙げます。
認識結果を確認するには、▶️アイコンをクリックしてください。
今回は純粋なテキストの抽出のみ行ったため、サービスによってテキストの順序が乱れていることをご了承ください。
### Google Cloud Vision API
- **認識結果:** 
    <details>
    <summary><strong>認識結果の詳細を表示 (クリックして展開)</strong></summary>

    - No.
    - クライアント株式会社
    - T000-0000
    - 東京都目黒区上目黒12-34-56
    - 春夏秋冬ビル3階
    - 総務部経理担当
    - 山田 太郎 様
    - 1 Product 10n
    - 2 W3b
    - 3 バナー制作
    - 4 仕上圧延機
    - 5 USBインターフェース
    - 6 LEDバックライト
    - 7
    - 8
    - 項目
    - 請求書作成・管理ならMakeLeaps (メイクリーブス)
    - 請求書
    - 数量 単位
    - 5 h
    - 15
    - 55
    - 1
    - 2
    - 100
    - サンプル株式会社
    - 〒123-4567
    - 東京都目黒区上目黒1-2-3.
    - サンプルビル5階
    - h
    - 例 ヵ月分)
    - 1ヵ月分
    - さんぷるりーぷす株式会社
    - 101
    - 2013年12月17日
    - 小計
    - 消費税 (10%)
    - 合計
    - お支払い期限
    - BARNo.
    - 請求日)
    - TEL: 03-1234-5678
    - E-Mail: sample@sample.co.jp
    - 担当 サンプル太郎
    - 単価
    - V70,000
    - ¥70,000
    - V70,000
    - V70,000
    - ¥60,000
    - V1,000,000
    - 2024年1月31日
    - 御社印
    - ¥350,000
    - V1,050,000
    - V350,000
    - V70,000
    - V120,000
    - V100,000,000
    - 8101,940,000
    - ¥182,000
    - V2,002,000

    </details>
- **誤認識例:** ¥70,000 → V70,000、2023年12月17日→2013年12月17日

### Azure Computer Vision
- **認識結果:** 
  <details>
  <summary><strong>認識結果の詳細を表示 (クリックして展開)</strong></summary>

  - 請求書
  - さんぷるりーぶす株式会社
  - クライアント株式会社
  - 請求No. 101
  - ₸000-0000
  - 請求日: 2023年12月17日
  - 東京都目黒区上目黒12-34-56
  - 春夏秋冬ビル3階
  - サンプル株式会社
  - 御社印
  - ₸123-4567
  - 総務部経理担当
  - 東京都目黒区上目黒1-2-3
  - 山田 太郎 様
  - サンプルビル 5階
  - TEL: 03-1234-5678
  - E-Mail: sample@sample.co.jp
  - 担当: サンプル太郎
  - No.
  - 項目
  - 数量
  - 單位
  - 単価
  - 金额
  - 1 Product10n
  - 5
  - ¥70,000
  - ¥350,000
  - 2 W3b
  - 15
  - ¥70,000
  - ¥1,050,000
  - 3 バナー制作
  - ¥70,000
  - ¥350,000
  - 4 仕上圧延機
  - 1
  - 小月分
  - ¥70,000
  - ¥70,000
  - 5 USBインターフェース
  - 2
  - 吉月分
  - ¥60,000
  - ¥120,000
  - 6 LEDバックライト
  - 100
  - h
  - ¥1,000,000
  - ¥100,000,000
  - 7
  - 8
  - 9
  - 小計
  - ¥101,940,000
  - 請求書作成・管理ならMakeLeaps (メイクリープス)
  - 消費税 (10%)
  - ¥182,000
  - 合計
  - ¥2,002,000
  - お支払い期限: 2024年1月31日

  </details>
- **誤認識例:** 単位 → 單位、ヶ月分→小月分、ヶ月分→吉月分


### Azure Form Recognizer
- **認識結果:** 
  <details>
  <summary><strong>認識結果の詳細を表示 (クリックして展開)</strong></summary>

  - 請求書
  - さんぷるリーぶす株式会社
  - クライアント株式会社
  - 請求No. 101
  - 〒000-0000
  - 請求日: 2023年12月17日
  - 東京都目黒区上目黒12-34-56
  - 春夏秋冬ビル3階
  - サンプル株式会社
  - 御社印
  - 〒123-4567
  - 総務部経理担当
  - 東京都目黒区上目黒1~2-3
  - 山田 太郎
  - サンプルビル5階
  - TEL: 03-1234-5678
  - E-Mail: sample@sample.co.ip
  - 担当:サンプル太郎
  - No.
  - 項目
  - 数量
  - 単位
  - 単価
  - 金额
  - 1 Product10n
  - 5
  - ¥70,000
  - ¥350,000
  - 2 W3b
  - 15
  - ¥70,000
  - ¥1,050,000
  - 3 バナー制作
  - 5
  - ¥70,000
  - ¥350,000
  - 4 仕上圧延機
  - 1
  - ヵ月分
  - ¥70,000
  - ¥70,000
  - 5 USBインターフェース
  - 2
  - ヵ月分
  - ¥60,000
  - ¥120,000
  - 6 LEDバックライト
  - 100
  - ¥1,000,000
  - ¥100,000,000
  - 7
  - 8
  - 9
  - 小計
  - ¥101,940,000
  - 請求書作成・管理ならMakeLeaps (メイクリープス)
  - 消費税 (10%)
  - ¥182,000
  - 合計
  - ¥2,002,000
  - お支払い期限: 2024年1月31日

  </details>
- **誤認識例:** 東京都目黒区上目黒1-2-3 → 東京都目黒区上目黒1~2-3



## 比較対象: pytesseractの結果
- **認識結果:** 
  <details>
  <summary><strong>認識結果の詳細を表示 (クリックして展開)</strong></summary>

  - クライアント株式会社
  - 〒o00-0000
  - 東京赴財区上目時12-34-56
  - 本了秋冬ビル3階
  - 請求書
  - さんぶるリーぶす株式会社
  - 請求No. 101
  - 請求日: LM 2023年12月17昌
  - サンプル株式会福
  - 〒123-4567
  - 東京都目黒区上目黒!-2-3
  - サンプルビル 5階
  - TEL: 03-1234-5678
  - E-Mail: sample@sample.co.lp
  - 担当: サンブル太郎

  </details>

## 料金体系
各サービスの料金体系についても触れます。
下記の価格は141.71円/$の為替レートで計算されています。

### Google Cloud Vision API
- **価格:** 1001〜5000000回まで¥212/1000画像、月1000回まで無料
**料金詳細:** [Google Cloud Vision API Pricing](https://cloud.google.com/vision/pricing?hl=ja)

### Azure Computer Vision
- **価格:** 0〜1000000回まで¥147/1000画像、1分あたり20件のトランザクションで月5000回まで無料 
- **料金詳細:** [Azure Computer Vision Pricing](https://azure.microsoft.com/ja-jp/pricing/details/cognitive-services/computer-vision/)

### Azure Form Recognizer
- **価格:** ¥737/1000画像、月500回まで無料
- **料金詳細:** [Azure Form Recognizer Pricing](https://azure.microsoft.com/ja-jp/pricing/details/ai-document-intelligence/)



## 各サービスのデータ保持とプライバシーポリシー

### Google Cloud Vision API
- **データ保持期間**：数時間
- **データの使用目的**：処理完了後削除、他目的での使用なし
- **詳細情報**：[Google Cloud Vision データ使用ポリシー](https://cloud.google.com/vision/docs/data-usage?hl=ja)

### Azure Computer Vision
- **データ保持期間**：24時間以内
- **データの使用目的**：処理完了後削除、他目的での使用なし
- **詳細情報**：[Azure Computer Vision OCR データプライバシー](https://learn.microsoft.com/ja-jp/legal/cognitive-services/computer-vision/ocr-data-privacy-security?context=%2Fazure%2Fai-services%2Fcomputer-vision%2Fcontext%2Fcontext)

### Azure Form Recognizer
- **データ保持期間**：24時間以内
- **データの使用目的**：処理完了後削除、他目的での使用なし
- **詳細情報**：[Azure Form Recognizer データプライバシー](https://learn.microsoft.com/ja-jp/legal/cognitive-services/document-intelligence/data-privacy-security?toc%20=%2Fazure%2Fai-services%2Fdocument-intelligence%2Ftoc.json&bc=%2Fazure%2Fai-services%2Fdocument-intelligence%2Fbreadcrumb%2Ftoc.json&view=doc-intel-3.1.0)



## まとめ
漢字や英語が混在している箇所では、文字認識の精度が低下することが予想されましたが、今回のサンプルにおいては、いずれのサービスも高い文字抽出精度を示しました。今後は手書き文字やレイアウトが乱れた文書など、さらに複雑なケースについても比較検証していく予定です。

## 参考情報
### Google Cloud Vision API
- [Google Cloud Vision APIの使用方法](https://dev.classmethod.jp/articles/google-cloud_vision-api/)

### Azure Computer Vision
- [Azure Computer Visionを使って日本語の画像テキストを出力する方法](https://dev.classmethod.jp/articles/using-azure-computer-vision-japanese-image-text-output/)

### Azure Form Recognizer
- [Azure Form Recognizerの概要と使用方法](https://note.com/explaza_inc/n/nf8a53519a567)

### Pytesseract
- [Pytesseractを使ったMacデバイス上でのOCR処理](https://dev.classmethod.jp/articles/ocr-on-a-mac-device-with-pytesseract/)
- 注意: Tesseractは標準のパッケージでは日本語に対応していないため、別途インストールが必要です。以下のコマンドでインストール可能です:
```brew install tesseract-lang```