GSP037

總覽
Cloud Vision API 是能分析圖片及擷取資訊的雲端式服務,可用來偵測圖片中的物件、臉孔和文字。Cloud Vision API 將強大的機器學習模型封裝於容易使用的 REST API 中,是解讀圖片內容的實用工具。
在本實驗室中,您將瞭解如何將圖片傳送至 Cloud Vision API,以及使用 API 偵測物件、臉孔和地標/特徵。
目標
在本實驗室中,您將瞭解如何執行下列工作:
- 建立 Cloud Vision API 要求,並使用
curl 指令呼叫 API。
- 使用 API 的標籤、臉部和地標/特徵偵測方法。
設定和需求
瞭解以下事項後,再點選「Start Lab」按鈕
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
- 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
- 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。
如何開始研究室及登入 Google Cloud 控制台
-
點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:
- 「Open Google Cloud console」按鈕
- 剩餘時間
- 必須在這個研究室中使用的臨時憑證
- 完成這個實驗室所需的其他資訊 (如有)
-
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」。
-
如有必要,請將下方的 Username 貼到「登入」對話方塊。
{{{user_0.username | "Username"}}}
您也可以在「Lab Details」窗格找到 Username。
-
點選「下一步」。
-
複製下方的 Password,並貼到「歡迎使用」對話方塊。
{{{user_0.password | "Password"}}}
您也可以在「Lab Details」窗格找到 Password。
-
點選「下一步」。
重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。
注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
-
按過後續的所有頁面:
- 接受條款及細則。
- 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
- 請勿申請免費試用。
Google Cloud 控制台稍後會在這個分頁開啟。
注意:如要使用 Google Cloud 產品和服務,請點選「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。
啟動 Cloud Shell
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
-
點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示
。
-
系統顯示視窗時,請按照下列步驟操作:
- 繼續操作 Cloud Shell 視窗。
- 授權 Cloud Shell 使用您的憑證發出 Google Cloud API 呼叫。
連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID:。輸出內容中有一行文字,宣告本工作階段的 Project_ID:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
- (選用) 您可以執行下列指令來列出使用中的帳戶:
gcloud auth list
- 點按「授權」。
輸出內容:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (選用) 您可以使用下列指令來列出專案 ID:
gcloud config list project
輸出內容:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
注意:如需 gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。
工作 1:建立 API 金鑰
在這項工作中,您要產生 API 金鑰並用要求網址傳遞,以使用 curl 傳送要求至 Vision API。
-
在 Cloud 控制台的「導覽選單」中,依序前往「API 和服務」>「憑證」,建立 API 金鑰。
-
接著點按「建立憑證」並選取「API 金鑰」。

- 接著,複製剛才產生的金鑰,然後點按「關閉」。
請點選下方的「Check my progress」,確認實驗室進度。
建立 API 金鑰
接著,將 API 金鑰儲存為環境變數,這樣就不必在每個要求插入金鑰值。
- 更新下列指令,將預留位置文字替換成您複製的 API 金鑰,然後在 Cloud Shell 執行指令,將該值設為環境變數:
export API_KEY=<YOUR_API_KEY>
工作 2:將圖片上傳至 Cloud Storage bucket
將圖片傳送至 Cloud Vision API 進行偵測的方式有兩種:將採用 base64 編碼的圖片字串傳送至 API,或是傳送儲存在 Cloud Storage 的檔案網址。
本實驗室採用 Cloud Storage 網址方法。首先,請建立 Cloud Storage bucket 來儲存圖片。
-
依序選取「導覽選單」>「Cloud Storage」>「Bucket」,然後點按「Bucket」旁邊的「建立」。
-
為 bucket 取一個不重複的名稱:-bucket。
-
命名後,點按「選取如何控制物件的存取權」。
-
取消選取「強制禁止公開存取這個 bucket」核取方塊,然後選取「精細」圓形按鈕。
其他 bucket 設定則保留預設值。
- 點按「建立」。
將圖片上傳至 bucket
- 用右鍵點選下方的甜甜圈圖片,然後點按「另存圖片」,將圖片儲存至電腦並命名為 donuts.png。

- 前往剛才建立的 bucket,依序點按「上傳」>「上傳檔案」,然後選取 donuts.png 並點按「開啟」。

檔案應該會出現在 bucket 中。
現在您需要公開這張圖片。
- 點按圖片上的 3 點圖示,然後選取「編輯權限」。

-
點按「新增項目」,然後輸入下列內容:
-
實體:Public
-
名稱:allUsers
-
存取權:Reader
-
完成後點按「儲存」。
現在檔案已加入 bucket,您就可以建立 Cloud Vision API 要求,傳送甜甜圈圖片的網址了。
請點選下方的「Check my progress」,確認實驗室進度。
將圖片上傳至 bucket
工作 3:建立要求
在 Cloud Shell 主目錄中建立 request.json 檔案。
- 使用 Cloud Shell 程式碼編輯器 (點按 Cloud Shell 工具列的鉛筆圖示)

或您常用的指令列編輯器 (nano、vim 或 emacs),建立 request.json 檔案。
- 將下列程式碼貼到
request.json 檔案中:
{
"requests": [
{
"image": {
"source": {
"gcsImageUri": "gs://{{{project_0.project_id | PROJECT_ID}}}-bucket/donuts.png"
}
},
"features": [
{
"type": "LABEL_DETECTION",
"maxResults": 10
}
]
}
]
}
-
儲存檔案。
在 Cloud Shell IDE 啟用 Gemini Code Assist
您可以在 Cloud Shell 等整合式開發環境 (IDE) 中使用 Gemini Code Assist,取得程式碼相關指引或解決程式碼問題。Gemini Code Assist 必須先啟用,才能開始使用。
- 在 Cloud Shell 執行下列指令,啟用 Gemini for Google Cloud API:
gcloud services enable cloudaicompanion.googleapis.com
- 點按 Cloud Shell 工具列中的「開啟編輯器」。
注意:如要開啟 Cloud Shell 編輯器,請點選 Cloud Shell 工具列中的「開啟編輯器」。如要在 Cloud Shell 與程式碼編輯器之間切換,請視需要點選「開啟編輯器」或「開啟終端機」。
-
在左側窗格中,點按「設定」圖示,然後在「設定」檢視畫面中搜尋「Gemini Code Assist」。
-
找到「Geminicodeassist: Enable」,確認已勾選核取方塊,然後關閉「設定」。
-
點選畫面底部狀態列中的「Cloud Code - No Project」。
-
依指示授權外掛程式。如果系統未自動選取專案,請點按「選取 Google Cloud 專案」,然後選擇 。
-
確認狀態列的 Cloud Code 狀態訊息中已顯示 Google Cloud 專案 ()。
工作 4:執行標籤偵測
您要練習的第一項 Cloud Vision API 功能是標籤偵測,以下方法會傳回圖片內容的標籤 (字詞) 清單。
- 在 Cloud Shell 終端機執行下列
curl 指令,呼叫 Cloud Vision API 並將回應內容儲存至 label_detection.json 檔案:
curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json https://vision.googleapis.com/v1/images:annotate?key=${API_KEY} -o label_detection.json && cat label_detection.json
回應內容應如下所示:
輸出內容:
{
"responses": [
{
"labelAnnotations": [
{
"mid": "/m/01dk8s",
"description": "Powdered sugar",
"score": 0.9861496,
"topicality": 0.9861496
},
{
"mid": "/m/01wydv",
"description": "Beignet",
"score": 0.9565117,
"topicality": 0.9565117
},
{
"mid": "/m/02wbm",
"description": "Food",
"score": 0.9424965,
"topicality": 0.9424965
},
{
"mid": "/m/0hnyx",
"description": "Pastry",
"score": 0.8173416,
"topicality": 0.8173416
},
{
"mid": "/m/02q08p0",
"description": "Dish",
"score": 0.8076026,
"topicality": 0.8076026
},
{
"mid": "/m/01ykh",
"description": "Cuisine",
"score": 0.79036003,
"topicality": 0.79036003
},
{
"mid": "/m/03nsjgy",
"description": "Kourabiedes",
"score": 0.77726763,
"topicality": 0.77726763
},
{
"mid": "/m/06gd3r",
"description": "Angel wings",
"score": 0.73792106,
"topicality": 0.73792106
},
{
"mid": "/m/06x4c",
"description": "Sugar",
"score": 0.71921736,
"topicality": 0.71921736
},
{
"mid": "/m/01zl9v",
"description": "Zeppole",
"score": 0.7111677,
"topicality": 0.7111677
}
]
}
]
}
API 成功辨識出甜甜圈是糖霜口味,太酷了!Vision API 針對每個找到的標籤傳回了下列資訊:
-
description 為項目的描述。
-
score 為介於 0 到 1 之間的數字,表示模型對於「項目描述與圖片內容相符」的信心程度。
-
mid 值即為 Google 知識圖譜中的項目 mid 值。呼叫 Knowledge Graph API 時,可以使用 mid 取得項目詳細資訊。
- 在 Cloud Shell 編輯器中,前往
label_detection.json。這項動作會啟用 Gemini Code Assist。編輯器右上角出現
圖示時,代表工具已啟用。
Gemini Code Assist 會直接在程式碼編輯器中提供 AI 輔助智慧動作,協助您提高工作效率,同時減少切換情境的次數。在本節中,您打算請 Gemini Code Assist 提供協助,瞭解如何向團隊成員說明 Cloud Vision API 回應。
-
點選「Gemini Code Assist: Smart Actions」
圖示,然後選取「Explain this」。
-
Gemini Code Assist 會開啟對話窗格,並預先填入提示詞 Explain this。在 Code Assist 對話的內嵌文字方塊中,將預先填入的提示詞改成下列內容,然後點選「Send」:
您是 Cymbal AI 的機器學習工程師,需要協助新進團隊成員瞭解 Cloud Vision API 回應。請詳細說明 label_detection.json 檔案,分析當中的關鍵組成部分,以及這些部分在 JSON 程式碼中的作用。
如有建議改善的地方,請勿直接修改檔案內容。
Gemini Code Assist 對話視窗中,您會看到 AI 對 label_detection.json 程式碼內 Cloud Vision API 回應的詳細說明。
工作 5:執行網頁偵測
除了擷取圖片內容的標籤,Cloud Vision API 還能搜尋網際網路,找出更多圖片的詳細資訊。您可以透過 API 的 WebDetection 方法取得許多有趣的資料:
- 根據含有類似圖片的網頁內容,列出圖片中的實體。
- 網路上完全和部分相符圖片的網址,以及這些圖片所在網頁的網址。
- 類似圖片的網址 (如同執行反向圖片搜尋)。
執行網頁偵測時,可使用相同的甜甜圈圖片,並變更 request.json 檔案中的一行程式碼,或者以完全不同的圖片嘗試。
-
在 Cloud Shell 編輯器中,前往同一目錄中的 request.json 並開啟檔案。
-
點按工具列中的「Gemini Code Assist:智慧動作」
圖示。
除了詳細說明程式碼,您還可以使用 Gemini Code Assist 的 AI 功能,直接在編輯器中變更程式碼。在本例中,您決定讓 Gemini Code Assist 協助編輯 request.json 檔案的內容。
- 將下列提示詞貼到工具列開啟的 Gemini Code Assist 內嵌文字欄位,以編輯
request.json 檔案。
請更新 request.json 檔案中的特徵清單,將類型從 LABEL_DETECTION 更改為 WEB_DETECTION。
-
按下 Enter 鍵,提示 Gemini Code Assist 根據指示修改程式碼。
-
「Gemini Diff」檢視畫面出現提示時,點按「Apply all changes」。
request.json 檔案的內容應與下列類似。
{
"requests": [
{
"image": {
"source": {
"gcsImageUri": "gs://{{{project_0.project_id | PROJECT_ID}}}-bucket/donuts.png"
}
},
"features": [
{
"type": "WEB_DETECTION",
"maxResults": 10
}
]
}
]
}
- 前往 Cloud Shell 終端機執行下列
curl 指令,呼叫 Cloud Vision API:
curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json https://vision.googleapis.com/v1/images:annotate?key=${API_KEY}
- 讓我們從
webEntities 開始深入瞭解 API 的回應。這張圖片傳回的實體包括:
{
"responses": [
{
"webDetection": {
"webEntities": [
{
"entityId": "/m/0z5n",
"score": 0.8868,
"description": "Application programming interface"
},
{
"entityId": "/m/07kg1sq",
"score": 0.3139,
"description": "Encapsulation"
},
{
"entityId": "/m/0105pbj4",
"score": 0.2713,
"description": "Google Cloud Platform"
},
{
"entityId": "/m/01hyh_",
"score": 0.2594,
"description": "Machine learning"
},
...
]
這張圖片曾多次用於 Cloud ML API 簡報,因此 API 找到「Machine learning」和「Google Cloud Platform」實體。
查看 fullMatchingImages、partialMatchingImages 和 pagesWithMatchingImages 底下的網址時,會發現許多網址都指向這個實驗室網站 (打破第四道牆!)。
假設您想搜尋其他甜甜圈圖片,但不想找到完全相同的圖片,這時 API 回應中的 visuallySimilarImages 部分就能派上用場。以下是 API 找到的幾張相似圖片:
"visuallySimilarImages": [
{
"url": "https://media.istockphoto.com/photos/cafe-du-monde-picture-id1063530570?k=6&m=1063530570&s=612x612&w=0&h=b74EYAjlfxMw8G-G_6BW-6ltP9Y2UFQ3TjZopN-pigI="
},
{
"url": "https://s3-media2.fl.yelpcdn.com/bphoto/oid0KchdCqlSqZzpznCEoA/o.jpg"
},
{
"url": "https://s3-media1.fl.yelpcdn.com/bphoto/mgAhrlLFvXe0IkT5UMOUlw/348s.jpg"
},
...
]
您可以前往這些網址查看類似圖片:



看到那麼多甜甜圈,肚子都餓了起來 (抱歉!)。其實這就像是在 Google 圖片以圖搜圖。
有了 Cloud Vision,您就能透過簡單易用的 REST API 使用這項功能,並將其整合至應用程式。
工作 6:執行臉部偵測
接著來看看 Vision API 的臉部偵測方法。
臉部偵測方法會傳回圖片中的臉部資料,包括情緒和臉孔在圖片中的位置。
上傳新圖片
請將含有臉孔的新圖片上傳至 Cloud Storage bucket,才能使用這種方法。
- 用右鍵點選下方圖片,然後點按「另存圖片」,將圖片儲存至電腦並命名為 selfie.png。

- 按照前面的方式,將圖片上傳至 Cloud Storage bucket 並設為公開。
請點選下方的「Check my progress」,確認實驗室進度。
將用於臉部偵測的圖片上傳至 bucket
更新要求檔案
-
在 Cloud Shell 編輯器的同一目錄中,前往 request.json。
-
點按工具列中的「Gemini Code Assist:智慧動作」
圖示。
-
將下列提示詞貼到工具列開啟的 Gemini Code Assist 內嵌文字欄位,請 Gemini Code Assist 協助更新 request.json 檔案。
請在 JSON 檔案 request.json 中進行以下三項更新:
* 將 gcsImageUri 值從 donuts.png 更新為 selfie.png。
* 將現有的特徵陣列替換為兩種新特徵類型:FACE_DETECTION 和 LANDMARK_DETECTION。
* 請勿傳回 maxResults 結果。
-
按下 Enter 鍵,提示 Gemini Code Assist 根據指示修改程式碼。
-
「Gemini Diff」檢視畫面出現提示時,點按「Apply all changes」。
更新後的要求檔案應如下所示:
{
"requests": [
{
"image": {
"source": {
"gcsImageUri": "gs://{{{project_0.project_id | PROJECT_ID}}}-bucket/selfie.png"
}
},
"features": [
{
"type": "FACE_DETECTION"
},
{
"type": "LANDMARK_DETECTION"
}
]
}
]
}
呼叫 Vision API 並剖析回應
- 前往 Cloud Shell 終端機執行下列
curl 指令,呼叫 Cloud Vision API:
curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json https://vision.googleapis.com/v1/images:annotate?key=${API_KEY}
- 查看回應中的
faceAnnotations 物件。API 每在圖片中找到一張臉孔,就會傳回一個物件,因此本例傳回三個物件。以下是部分回應內容:
{
"faceAnnotations": [
{
"boundingPoly": {
"vertices": [
{
"x": 669,
"y": 324
},
...
]
},
"fdBoundingPoly": {
...
},
"landmarks": [
{
"type": "LEFT_EYE",
"position": {
"x": 692.05646,
"y": 372.95868,
"z": -0.00025268539
}
},
...
],
"rollAngle": 0.21619819,
"panAngle": -23.027969,
"tiltAngle": -1.5531756,
"detectionConfidence": 0.72354823,
"landmarkingConfidence": 0.20047489,
"joyLikelihood": "LIKELY",
"sorrowLikelihood": "VERY_UNLIKELY",
"angerLikelihood": "VERY_UNLIKELY",
"surpriseLikelihood": "VERY_UNLIKELY",
"underExposedLikelihood": "VERY_UNLIKELY",
"blurredLikelihood": "VERY_UNLIKELY",
"headwearLikelihood": "VERY_LIKELY"
}
...
}
}
-
boundingPoly 代表圖中臉部輪廓的 x 與 y 座標。
-
fdBoundingPoly 是比 boundingPoly 更小的方塊,代表臉部皮膚座標。
-
landmarks 是每個臉部特徵的物件陣列,有時候甚至會出現您從未注意過的特徵。這些資訊會告訴您特徵類型,以及該特徵在 3D 空間中的位置 (x、y、z 座標),z 座標代表深度。其餘值則提供更多表情詳細資訊,包括喜、悲、怒和驚訝的機率。
您正在查看的回應是離鏡頭最遠的人,他做了一個有點俏皮的表情,這解釋了 joyLikelihood 為何是 LIKELY。
工作 7:執行地標註解
地標偵測功能可辨識常見 (和較不知名) 的地標,這項功能會傳回地標名稱、經緯度座標,以及地標在圖中的位置。
上傳新圖片
請上傳新圖片至 Cloud Storage bucket,才能使用這個方法。
- 用右鍵點選下方圖片,然後點按「另存圖片」,將圖片儲存至電腦並命名為 city.png。

圖片出處:聖瓦西里主教座堂,2019 年 12 月 19 日由 Adrien Wodey 攝於俄羅斯莫斯科,圖片由免費媒體圖庫 Unsplash 提供。取自:https://unsplash.com/photos/multicolored-dome-temple-yjyWCNx0J1U。檔案已取得 Unsplash 授權。
- 按照前面的方式,將圖片上傳至 Cloud Storage bucket 並設為公開。
請點選下方的「Check my progress」,確認實驗室進度。
將用於地標註解的圖片上傳至 bucket
更新要求檔案
- 接著,請使用下列指令更新
request.json 檔案,這段指令包含新圖片的網址,並要求 API 偵測地標:
{
"requests": [
{
"image": {
"source": {
"gcsImageUri": "gs://{{{project_0.project_id | PROJECT_ID}}}-bucket/city.png"
}
},
"features": [
{
"type": "LANDMARK_DETECTION",
"maxResults": 10
}
]
}
]
}
呼叫 Vision API 並剖析回應
- 前往 Cloud Shell 終端機執行下列
curl 指令,呼叫 Cloud Vision API:
curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json https://vision.googleapis.com/v1/images:annotate?key=${API_KEY}
- 查看回應的
landmarkAnnotations 部分:
"landmarkAnnotations": [
{
"mid": "/m/0hm_7",
"description": "Red Square",
"score": 0.8557956,
"boundingPoly": {
"vertices": [
{},
{
"x": 503
},
{
"x": 503,
"y": 650
},
{
"y": 650
}
]
},
"locations": [
{
"latLng": {
"latitude": 55.753930299999993,
"longitude": 37.620794999999994
}
...
Cloud Vision API 成功辨識出相片拍攝地點,並提供該地點的地圖座標 (位於俄羅斯莫斯科紅場的聖瓦西里主教座堂)。
這段回應中的值應與上方的 labelAnnotations 回應類似:
- 地標的
mid
- 名稱 (
description)
- 可信度
分數
-
boundingPoly 代表圖中辨識出地標的區塊。
-
locations 鍵代表相片拍攝地點的經緯度座標。
工作 8:執行物件定位
Vision API 的物件定位功能可偵測並擷取圖片中多個物件的資訊,因此能辨識一張圖片中多個物件,並分別提供 LocalizedObjectAnnotation。每個 LocalizedObjectAnnotation 會識別物件資訊、物件位置,以及框住圖中物件的矩形區域。
物件定位功能可用來識別圖片中顯眼和不明顯的物件。
物件資訊僅會以英文傳回,不過您可以用 Cloud Translation 將英文標籤翻譯成多種語言。
請使用網路上現有的圖片,並更新 request.json 檔案,才能使用這個方法。
更新要求檔案
- 使用下列指令更新
request.json 檔案,這段指令包含新圖片的網址,並要求 API 定位物件。
{
"requests": [
{
"image": {
"source": {
"imageUri": "https://cloud.google.com/vision/docs/images/bicycle_example.png"
}
},
"features": [
{
"maxResults": 10,
"type": "OBJECT_LOCALIZATION"
}
]
}
]
}
呼叫 Vision API 並剖析回應
- 前往 Cloud Shell 終端機執行下列
curl 指令,呼叫 Cloud Vision API:
curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json https://vision.googleapis.com/v1/images:annotate?key=${API_KEY}
- 接著,查看回應的
localizedObjectAnnotations 部分:
{
"responses": [
{
"localizedObjectAnnotations": [
{
"mid": "/m/01bqk0",
"name": "Bicycle wheel",
"score": 0.89648587,
"boundingPoly": {
"normalizedVertices": [
{
"x": 0.32076266,
"y": 0.78941387
},
{
"x": 0.43812272,
"y": 0.78941387
},
{
"x": 0.43812272,
"y": 0.97331065
},
{
"x": 0.32076266,
"y": 0.97331065
}
]
}
},
{
"mid": "/m/0199g",
"name": "Bicycle",
"score": 0.886761,
"boundingPoly": {
"normalizedVertices": [
{
"x": 0.312,
"y": 0.6616471
},
{
"x": 0.638353,
"y": 0.6616471
},
{
"x": 0.638353,
"y": 0.9705882
},
{
"x": 0.312,
"y": 0.9705882
}
]
}
},
...
如您所見,Vision API 能辨識出這張圖片包含自行車和車輪。這段回應中的值應與上方的 labelAnnotations 回應類似:物件的 mid、名稱 (name)、可信度分數,boundingPoly 同樣代表圖中辨識出物件的區塊。
此外,boundingPoly 也提供了 normalizedVertices 鍵,代表圖中物件的座標。這些座標會正規化成 0 到 1 的範圍,0 代表圖片左上角,1 代表右下角。
恭喜!您已成功使用 Vision API 分析圖片,並擷取圖中物件的相關資訊。
工作 9:探索其他 Vision API 方法
本實驗室已帶您認識 Vision API 的標籤、臉部、地標/特徵偵測和物件定位方法,但還有三種方法尚未介紹。請參閱「images.annotate」方法說明文件,瞭解其他三種偵測類型:
-
標誌偵測:辨識圖片中的常見標誌及其位置。
-
安全搜尋偵測:判斷圖片是否含有露骨內容。這項功能適用於任何含有使用者原創內容的應用程式,可根據四項要素篩選圖片:成人、醫療、暴力和假冒內容。
-
文字偵測:執行 OCR 來擷取圖片中的文字,甚至能辨識語言。
恭喜!
您已瞭解如何使用 Vision API 分析圖片。在本實驗室中,您將不同圖片的 Cloud Storage URL 傳送至 API,並讓 API 傳回在圖片中找到的標籤、臉孔、地標/特徵和物件。如果是分析儲存在資料庫或記憶體中的圖片,您也可以將 base64 編碼字串傳送給 API。
後續步驟/瞭解詳情
Google Cloud 教育訓練與認證
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2025 年 10 月 14 日
實驗室上次測試日期:2025 年 10 月 14 日
Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。