Cloud Service
Cloud Vision OCR (光学文字認識)
画像やスキャン文書をAPIに送るだけで写り込んだ文字を抽出し、検索・自動化につなげる。モデル学習なしで多言語の文字読み取りを組み込めるCloud Vision OCR。AWSのRekognition文字検出に相当。
- 1.画像内の文字を読み取り、座標付きテキストとして返す事前学習済みのOCR機能。
- 2.短文向けのTEXT_DETECTIONと、文書のレイアウトも扱うDOCUMENT_TEXT_DETECTIONがある。
- 3.多言語・手書きに対応し、帳票の項目抽出まで必要ならDocument AIを使う。
Cloud Vision OCR(光学文字認識)は、Cloud Vision API が提供する文字読み取り機能です。写真やスキャン画像、PDF に写り込んだ文字を API に送るだけで、機械学習モデルを自前で訓練せずにテキストとして抽出できます。Vision API の中でも文字検出に特化した使い方を指します。
解決する課題
- 紙の書類や看板・画面のスクリーンショットなど、画像の中の文字を人手で打ち直している
- 大量の画像から文字を抜き出して全文検索できるようにしたい
- レシートや名刺などからテキストを取り出して後続処理に流したい
- 日本語・英語など複数言語が混在する画像を、言語を指定せずに読み取りたい
主要概念と用語
- OCR(光学文字認識): 画像内の文字を機械が読み取り、編集・検索できるテキストに変換する技術
- TEXT_DETECTION: 看板やラベルなど短い文字列向けの検出。検出した単語と全体テキストを返す
- DOCUMENT_TEXT_DETECTION: 文書・帳票向けの検出。ページ・ブロック・段落・単語・記号といった階層構造まで返す
- バウンディングボックス: 検出した文字や単語の位置を示す矩形の座標
- fullTextAnnotation: 文書テキスト検出のレスポンス本体。読み取った全文とレイアウト階層を含む
- 言語ヒント (languageHints): 読み取り言語を任意で指定する補助情報。未指定でも自動推定される
- 信頼度スコア: 検出結果の確からしさを示す0から1の値
仕様・制限・クォータ
- 入力画像は Cloud Storage 上のオブジェクト指定か、リクエストに Base64 で直接埋め込む形で渡す
- PDF や TIFF の複数ページ文書は非同期(バッチ)の OCR で処理し、結果を Cloud Storage に JSON 出力する
- 1リクエストの画像サイズ・ファイルサイズ・ページ数には上限があり、極端に大きい入力は事前に縮小・分割する
- API 呼び出しには**プロジェクト単位のレート上限(クォータ)**があり、必要に応じて引き上げを申請する
- 対応言語や手書き対応の範囲はサービス更新で変わるため、具体的なサイズ・件数・対応言語の最新値は公式ドキュメントで確認する
内部の仕組み
利用者から見ると OCR はステートレスな REST / gRPC エンドポイントです。画像を送ると、Google 側で事前学習済みの文字認識モデルが推論を実行し、読み取ったテキストと位置情報を JSON で返します。モデルの訓練・更新・スケーリングはすべて Google が管理します。
TEXT_DETECTION は画像から単語単位の文字を検出して全体テキストを返すのに対し、DOCUMENT_TEXT_DETECTION は同じ画像をページ・ブロック・段落・単語・記号の階層に整理して返します。文書のように行や段落の構造が重要な場合は後者が適しています。1リクエストで OCR と他の機能(ラベル検出など)をまとめて指定することもできます。
看板やラベルのような短い文字列なら TEXT_DETECTION、複数行の文書やレイアウトを保ちたいなら DOCUMENT_TEXT_DETECTION を選ぶと、必要な情報を無駄なく得られる。
設計パターン / ベストプラクティス
- イベント駆動連携: Cloud Storage への画像アップロードをトリガーに Cloud Functions / Cloud Run を起動し、OCR を呼ぶ
- 大きい画像は事前に縮小してから送り、転送量と処理時間を削減する
- 複数ページの PDF / TIFF は同期 API ではなく非同期 OCR で処理し、レート上限超過を避ける
- 同じ画像を何度も解析しないよう、読み取り結果をキャッシュ・永続化する
- 信頼度スコアにしきい値を設け、低スコアの結果は人手レビューや再撮影に回す
運用・監視
- API の呼び出し回数・エラー率・レイテンシは Cloud Monitoring で可視化する
- アクセスログ・監査ログは Cloud Logging に集約し、誰がどの画像を処理したか追跡する
- レート上限(クォータ)超過のエラーを監視し、リトライは指数バックオフで実装する
- 非同期 OCR は失敗ファイルが混ざるため、出力 JSON の有無や処理ステータスを確認し、失敗分だけ再処理する
- コスト超過を早期に検知するため予算アラートを設定する
コスト
- 課金は基本的に**処理した画像数(機能としての OCR 呼び出し数)**に応じる従量制
- 1枚の画像で OCR と他機能を同時に指定すると、機能ごとに加算される点に注意する
- 一定量までの無料枠が用意される場合があるが、具体的な単価・無料枠は変動するため公式の料金ページで確認する
- 不要な機能を外す・結果を再利用する・複数ページはバッチでまとめると、コストを抑えやすい
セキュリティ
- アクセスは IAM で制御し、サービスアカウントには最小権限のロールだけを付与する
- 画像を保存する Cloud Storage バケットは公開せず、**暗号化(保存時・転送時)**を有効にする
- 読み取り対象に氏名や口座番号などの個人情報が含まれる場合は、保持期間やアクセス範囲をポリシーで定める
- データ境界を強化したい場合は VPC Service Controls を併用する
レシートや本人確認書類の OCR では氏名・住所・番号などの個人情報が抽出される。抽出テキストの保存先・保持期間・アクセス権を明確にし、不要になったら削除する運用を設計する。
関連サービス・比較
文字を「読み取る」だけなら Cloud Vision OCR で十分ですが、請求書や領収書から特定の項目(金額・日付・取引先など)を構造化データとして抽出したい場合は Document AI が適しています。Document AI は内部で OCR を行ったうえで、項目の意味づけまで返します。
| 観点 | Cloud Vision OCR | Document AI |
|---|---|---|
| 主目的 | 画像からの文字読み取り | 文書からの項目抽出と構造化 |
| 出力 | テキストと座標・レイアウト階層 | テキストに加え項目(エンティティ) |
| 向く入力 | 写真・看板・スクショ・スキャン | 請求書・領収書・帳票など定型文書 |
| カスタム学習 | なし(事前学習のみ) | カスタム抽出プロセッサで拡張可 |
| 課金 | 処理画像数の従量制 | 処理ページ数とプロセッサ種別 |
ハンズオン / CLI例
# 画像内のテキストを検出する(TEXT_DETECTION 相当)
gcloud ml vision detect-text gs://my-bucket/sign.jpg
# 文書画像のテキストとレイアウトを検出する(DOCUMENT_TEXT_DETECTION 相当)
gcloud ml vision detect-document gs://my-bucket/page.png
# 言語ヒントを付けて日本語の読み取り精度を補助する
gcloud ml vision detect-text gs://my-bucket/receipt.jpg \
--language-hints=ja
Google Cloud Service
Cloud Vision OCR (光学文字認識)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
AI / 機械学習
比較で見る軸
クラウド: Google Cloud / カテゴリ: AI / 機械学習 / 難易度: basic
導入後に効く点
短文向けのTEXT_DETECTIONと、文書のレイアウトも扱うDOCUMENT_TEXT_DETECTIONがある。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Google Cloud
- カテゴリ
- AI / 機械学習
- 難易度
- basic
- 関連資格
- —
- 設計柱
- operational / cost
判断チェックリスト
- 自社の用途が「AI / 機械学習 / operational」に近いか確認する。
- 強みである「画像内の文字を読み取り、座標付きテキストとして返す事前学習済みのOCR機能。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。