ランドマーク検出は、よく知られている自然のランドマークや人工建造物を画像から検出します。

ランドマーク検出リクエスト
GCP プロジェクトと認証の設定
ローカル画像でランドマークを検出する
Vision API は、リクエストの本文で画像ファイルのコンテンツを Base64 エンコードの文字列として送信し、ローカル画像ファイルの特徴検出を行います。
REST とコマンドライン
後述のリクエストのデータを使用する前に、次のように置き換えます。
- base64-encoded-image: バイナリ画像データの base64 表現(ASCII 文字列)。これは次のような文字列になります。
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
HTTP メソッドと URL:
POST https://vision.googleapis.com/v1/images:annotate
JSON 本文のリクエスト:
{ "requests": [ { "image": { "content": "base64-encoded-image" }, "features": [ { "maxResults": 10, "type": "LANDMARK_DETECTION" }, ] } ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://vision.googleapis.com/v1/images:annotate
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードと JSON 形式のレスポンスを返します。
レスポンス:
{ "responses": [ { "landmarkAnnotations": [ { "mid": "/m/014lft", "description": "Saint Basil's Cathedral", "score": 0.7840959, "boundingPoly": { "vertices": [ { "x": 812, "y": 1058 }, { "x": 2389, "y": 1058 }, { "x": 2389, "y": 3052 }, { "x": 812, "y": 3052 } ] }, "locations": [ { "latLng": { "latitude": 55.752912, "longitude": 37.622315883636475 } } ] } ] } ] }
C#
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある C# の設定手順を行ってください。詳細については、Vision C# API のリファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある Go の設定手順を行ってください。詳細については、Vision Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、Vision API クイックスタート: クライアント ライブラリの使用の Java の設定手順に従ってください。詳細については、Vision API Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を行ってください。詳細については、Vision Node.js API のリファレンス ドキュメントをご覧ください。
PHP
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある PHP の設定手順を行ってください。詳細については、Vision PHP API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある Python の設定手順を行ってください。詳細については、Vision Python API のリファレンス ドキュメントをご覧ください。
Ruby
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある Ruby の設定手順を行ってください。詳細については、Vision Ruby API のリファレンス ドキュメントをご覧ください。
リモート画像でランドマークを検出する
Vision API を使用すると、画像ファイルのコンテンツをリクエストの本文で送信することなく、Google Cloud Storage またはウェブ上にある画像ファイルに対して特徴検出を直接実行できます。
REST とコマンドライン
後述のリクエストのデータを使用する前に、次のように置き換えます。
- cloud-storage-image-uri: Cloud Storage バケット内の有効な画像ファイルへのパス。少なくとも、ファイルに対する読み取り権限が必要です。たとえば次のように指定します。
gs://cloud-samples-data/vision/landmark/st_basils.jpeg
HTTP メソッドと URL:
POST https://vision.googleapis.com/v1/images:annotate
JSON 本文のリクエスト:
{ "requests": [ { "image": { "source": { "gcsImageUri": "cloud-storage-image-uri" } }, "features": [ { "maxResults": 10, "type": "LANDMARK_DETECTION" }, ] } ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://vision.googleapis.com/v1/images:annotate
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードと JSON 形式のレスポンスを返します。
レスポンス:
{ "responses": [ { "landmarkAnnotations": [ { "mid": "/m/014lft", "description": "Saint Basil's Cathedral", "score": 0.7840959, "boundingPoly": { "vertices": [ { "x": 812, "y": 1058 }, { "x": 2389, "y": 1058 }, { "x": 2389, "y": 3052 }, { "x": 812, "y": 3052 } ] }, "locations": [ { "latLng": { "latitude": 55.752912, "longitude": 37.622315883636475 } } ] } ] } ] }
C#
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある C# の設定手順を行ってください。詳細については、Vision C# API のリファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある Go の設定手順を行ってください。詳細については、Vision Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある Java の設定手順を行ってください。詳細については、Vision Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を行ってください。詳細については、Vision Node.js API のリファレンス ドキュメントをご覧ください。
PHP
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある PHP の設定手順を行ってください。詳細については、Vision PHP API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある Python の設定手順を行ってください。詳細については、Vision Python API のリファレンス ドキュメントをご覧ください。
Ruby
このサンプルを試す前に、Vision クイックスタート: クライアント ライブラリの使用にある Ruby の設定手順を行ってください。詳細については、Vision Ruby API のリファレンス ドキュメントをご覧ください。
gcloud
ランドマーク検出を実行するには、次の例のように gcloud ml vision detect-landmarks
コマンドを実行します。
gcloud ml vision detect-landmarks gs://cloud-samples-data/vision/landmark/st_basils.jpeg
試してみる
ランドマークの検出を試してみましょう。前のセクションで指定した画像(gs://cloud-samples-data/vision/landmark/st_basils.jpeg
)を使用しても構いませんし、ご自分の画像を指定して試してみるのもよいでしょう。[実行] を選択してリクエストを送信します。
