地標偵測功能會偵測圖片中常見的自然和人造建築結構。

地標偵測要求
設定 Google Cloud 專案和驗證
偵測本機圖片中的地標
您可以使用 Vision API 在本機圖片檔案上執行功能偵測。
針對 REST 要求,請在要求主體中,將圖片檔案的內容傳送為base64 編碼字串。
針對 gcloud
和用戶端程式庫要求,請在要求中指定本機圖片的路徑。
REST
使用任何要求資料之前,請先替換以下項目:
- BASE64_ENCODED_IMAGE:二進位圖片資料的 Base64 表示法 (ASCII 字串)。這個字串應類似下列字串:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- RESULTS_INT:(選用) 要傳回的結果整數值。如果您省略
"maxResults"
欄位及其值,API 會傳回預設值 10 個結果。這個欄位不適用於下列地圖項目類型:TEXT_DETECTION
、DOCUMENT_TEXT_DETECTION
或CROP_HINTS
。 - PROJECT_ID:您的 Google Cloud 專案 ID。
HTTP 方法和網址:
POST https://vision.googleapis.com/v1/images:annotate
JSON 要求主體:
{ "requests": [ { "image": { "content": "BASE64_ENCODED_IMAGE" }, "features": [ { "maxResults": RESULTS_INT, "type": "LANDMARK_DETECTION" }, ] } ] }
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/images:annotate"
PowerShell
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
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 } } ] } ] } ] }
Go
在試用這個範例之前,請先按照 使用用戶端程式庫的 Vision 快速入門中的操作說明設定 Go。詳情請參閱 Vision Go API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
在試用這個範例之前,請先按照 Vision API 快速入門:使用用戶端程式庫中的操作說明設定 Java 環境。詳情請參閱 Vision API Java 參考說明文件。
Node.js
在試用這個範例之前,請先按照 使用用戶端程式庫的 Vision 快速入門中的操作說明設定 Node.js。詳情請參閱 Vision Node.js API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
在試用這個範例之前,請先按照 使用用戶端程式庫的 Vision 快速入門中的操作說明設定 Python。詳情請參閱 Vision Python API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
其他語言
C#:請按照用戶端程式庫頁面上的 C# 設定說明操作,然後參閱 .NET 適用的 Vision 參考說明文件。
PHP:請按照用戶端程式庫頁面上的 PHP 設定操作說明操作,然後參閱 PHP 適用的 Vision 參考文件。
Ruby:請按照用戶端程式庫頁面上的 Ruby 設定說明操作,然後參閱 Ruby 適用的 Vision 參考文件。
偵測遠端圖片中的地標
您可以使用 Vision API,針對位於 Cloud Storage 或網際網路上的遠端圖片檔案執行功能偵測。如要傳送遠端檔案要求,請在要求內文中指定檔案的網頁網址或 Cloud Storage URI。
REST
使用任何要求資料之前,請先替換以下項目:
- CLOUD_STORAGE_IMAGE_URI:Cloud Storage 值區中有效圖片檔案的路徑。您至少必須具備檔案的讀取權限。示例:
gs://cloud-samples-data/vision/landmark/st_basils.jpeg
- RESULTS_INT:(選用) 要傳回的結果整數值。如果您省略
"maxResults"
欄位及其值,API 會傳回預設值 10 個結果。這個欄位不適用於下列地圖項目類型:TEXT_DETECTION
、DOCUMENT_TEXT_DETECTION
或CROP_HINTS
。 - PROJECT_ID:您的 Google Cloud 專案 ID。
HTTP 方法和網址:
POST https://vision.googleapis.com/v1/images:annotate
JSON 要求主體:
{ "requests": [ { "image": { "source": { "gcsImageUri": "CLOUD_STORAGE_IMAGE_URI" } }, "features": [ { "maxResults": RESULTS_INT, "type": "LANDMARK_DETECTION" }, ] } ] }
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/images:annotate"
PowerShell
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
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 } } ] } ] } ] }
Go
在試用這個範例之前,請先按照 使用用戶端程式庫的 Vision 快速入門中的操作說明設定 Go。詳情請參閱 Vision Go API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
在試用這個範例之前,請先按照 使用用戶端程式庫的 Vision 快速入門中的操作說明設定 Java。詳情請參閱 Vision Java API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
在試用這個範例之前,請先按照 使用用戶端程式庫的 Vision 快速入門中的操作說明設定 Node.js。詳情請參閱 Vision Node.js API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
在試用這個範例之前,請先按照 使用用戶端程式庫的 Vision 快速入門中的操作說明設定 Python。詳情請參閱 Vision Python API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
gcloud
如要執行地標偵測,請使用 gcloud ml vision detect-landmarks
指令,如以下範例所示:
gcloud ml vision detect-landmarks gs://cloud-samples-data/vision/landmark/st_basils.jpeg
其他語言
C#:請按照用戶端程式庫頁面上的 C# 設定說明操作,然後參閱 .NET 適用的 Vision 參考說明文件。
PHP:請按照用戶端程式庫頁面上的 PHP 設定操作說明操作,然後參閱 PHP 適用的 Vision 參考文件。
Ruby:請按照用戶端程式庫頁面上的 Ruby 設定說明操作,然後參閱 Ruby 適用的 Vision 參考文件。
立即試用
請試試下方的地標偵測功能。您可以使用已指定的圖片 (gs://cloud-samples-data/vision/landmark/st_basils.jpeg
),也可以指定自己的圖片。選取「Execute」即可傳送要求。

要求主體:
{ "requests": [ { "features": [ { "maxResults": 10, "type": "LANDMARK_DETECTION" } ], "image": { "source": { "imageUri": "gs://cloud-samples-data/vision/landmark/st_basils.jpeg" } } } ] }