コマンドラインを使用して画像内のラベルを検出する
このページでは、REST インターフェースと curl
コマンドを使用して、Vision API に 3 つの特徴検出リクエストとアノテーション リクエストを送信する方法について説明します。
Vision API を使用すると、Google の視覚認識技術をデベロッパーのアプリケーションに簡単に統合できます。Vision API に画像データと目的特徴タイプを送信すると、目的の画像属性に基づく対応するレスポンスが返されます。利用可能な特徴タイプの詳細については、Vision API のすべての機能の一覧をご覧ください。
始める前に
- Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google Cloud プロジェクトを作成または選択します。
-
Google Cloud プロジェクトを作成する
gcloud projects create PROJECT_ID
-
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
-
-
Vision API を有効にします。
gcloud services enable vision.googleapis.com
-
Google アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/storage.objectViewer
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。EMAIL_ADDRESS
は実際のメールアドレスに置き換えます。ROLE
は、個々のロールに置き換えます。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google Cloud プロジェクトを作成または選択します。
-
Google Cloud プロジェクトを作成する
gcloud projects create PROJECT_ID
-
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
-
-
Vision API を有効にします。
gcloud services enable vision.googleapis.com
-
Google アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/storage.objectViewer
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。EMAIL_ADDRESS
は実際のメールアドレスに置き換えます。ROLE
は、個々のロールに置き換えます。
画像アノテーション リクエストを作成する
始める前にの手順を完了すると、Vision API を使用して画像ファイルにアノテーションを付けられるようになります。
この例では、次の画像で curl を使用して Vision API にリクエストを送信します。
Cloud Storage URI:
gs://cloud-samples-data/vision/using_curl/shanghai.jpeg
HTTPS URL:
https://console.cloud.google.com/storage/browser/cloud-samples-data/vision/using_curl/shanghai.jpeg

JSON リクエストを作成する
次の request.json
ファイルでは、3 つの images:annotate
機能をリクエストする方法と、レスポンスの結果を制限する方法について説明します。
次のテキストを含む JSON リクエスト ファイルを作成し、作業ディレクトリに request.json
書式なしテキスト ファイルとして保存します。
request.json
{ "requests": [ { "image": { "source": { "imageUri": "gs://cloud-samples-data/vision/using_curl/shanghai.jpeg" } }, "features": [ { "type": "LABEL_DETECTION", "maxResults": 3 }, { "type": "OBJECT_LOCALIZATION", "maxResults": 1 }, { "type": "TEXT_DETECTION", "maxResults": 1, "model": "builtin/latest" } ] } ] }
リクエストを送信する
request.json
の curl と本文のコンテンツを使用して、リクエストを Vision API に送信します。コマンドラインで次のように入力します。
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://vision.googleapis.com/v1/images:annotate -d @request.json
レスポンスを解釈する
以下のような JSON レスポンスが表示されます。
各アノテーション型に maxResults
が指定された JSON 本文のリクエスト。したがって、レスポンスの JSON には次のようになります。
- 3 つの
labelAnnotations
の結果 - 1 つの
textAnnotations
の結果(わかりやすくするため短縮しています) - 1 つの
localizedObjectAnnotations
の結果
ラベル検出の結果
- 説明: 「人物」、スコア: 0.950
- 説明: 「通り」、スコア: 0.891
- 説明: 「交通手段」、スコア: 0.890

テキスト検出の結果
- テキスト: 牛牛面馆\ n
- 頂点: (x: 159、y: 212)、(x: 947、y: 212)、(x: 947、y: 354)、(x: 159、y: 354)

オブジェクト検出の結果
- 名前: 「人物」、スコア: 0.944
- 正規化された頂点: (x: 0.260、y: 0.468)、(x: 0.407、y: 0.468)、(x: 0.407、y: 0.895)、(x: 0.260、y: 0.895)

これで完了です。Vision API への最初のリクエストを送信しました。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、Google Cloud プロジェクトとそのリソースをまとめて削除してください。
(省略可)gcloud CLI から認証情報を取り消します。
gcloud auth revoke