物件追蹤功能可追蹤在輸入影片中偵測到的物件。如要提出物件追蹤要求,請呼叫 annotate 方法,並在 features 欄位中指定 OBJECT_TRACKING。
對於在影片或影片片段中偵測到的實體和空間位置,物件追蹤要求會為影片加上這些實體和空間位置的適當標籤。舉例來說,如果影片中的車輛通過交通號誌,系統可能會產生「汽車」、「卡車」、「單車」、「輪胎」、「車燈」、「車窗」等標籤。每個標籤可以包含一系列定界框,每個定界框的相關聯時間片段均含有時間偏移量,指示從影片起始的持續性偏移。註解還包含了其他實體資訊,包括您可以在 Google Knowledge Graph Search API 中用來尋找實體更多資訊的實體 ID。
物件追蹤與標籤偵測
物件追蹤與標籤偵測不同。標籤偵測提供的標籤不含定界框,而物件追蹤會提供指定影片中個別物件的標籤,以及每個物件執行個體在每個時間步的定界框。
相同物件類型的多個執行個體會指派給 ObjectTrackingAnnotation 訊息的不同執行個體,而特定物件軌跡的所有出現次數都會保留在 ObjectTrackingAnnotation 的專屬執行個體中。舉例來說,如果影片中出現紅色和藍色車輛,且持續 5 秒,追蹤要求應會傳回兩個 ObjectTrackingAnnotation 執行個體。第一個執行個體會包含其中一輛車的位置資訊 (例如紅車),第二個執行個體則會包含另一輛車的位置資訊。
要求對 Cloud Storage 中的影片進行物件追蹤
下列範例示範如何對位於 Cloud Storage 中的檔案執行物件追蹤。
REST
傳送處理要求
以下說明如何將 POST 要求傳送至 annotate 方法。範例中使用的存取憑證,屬於使用 Google Cloud CLI 建立的專案服務帳戶。如需安裝 Google Cloud CLI、使用服務帳戶建立專案,以及取得存取權杖的操作說明,請參閱「Video Intelligence 快速入門導覽課程」。
使用任何要求資料之前,請先替換以下項目:
- INPUT_URI:STORAGE_URI
例如:
"inputUri": "gs://cloud-videointelligence-demo/assistant.mp4",
- PROJECT_NUMBER: Google Cloud 專案的數字 ID
HTTP 方法和網址:
POST https://videointelligence.googleapis.com/v1/videos:annotate
JSON 要求主體:
{
"inputUri": "STORAGE_URI",
"features": ["OBJECT_TRACKING"]
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID"
}
如果要求成功,Video Intelligence API 會傳回作業的 name。上例顯示這類回應的範例,其中 PROJECT_NUMBER 是專案編號,OPERATION_ID 則是為要求建立的長時間執行作業 ID。
取得結果
如要取得要求結果,請使用從 videos:annotate 呼叫傳回的作業名稱,傳送 GET,如下列範例所示。
使用任何要求資料之前,請先替換以下項目:
- OPERATION_NAME:Video Intelligence API 傳回的作業名稱。作業名稱的格式為
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID - PROJECT_NUMBER: Google Cloud 專案的數字 ID
HTTP 方法和網址:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
下載註解結果
將註解從來源複製到目標值區:(請參閱「複製檔案和物件」)
gcloud storage cp gcs_uri gs://my-bucket
注意:如果輸出 GCS URI 是由使用者提供,註解就會儲存在該 GCS URI 中。
Go
Java
Node.js
如要向 Video Intelligence 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
其他語言
C#:請按照用戶端程式庫頁面上的 C# 設定操作說明完成相關步驟,然後參閱「.NET 適用的 Video Intelligence 參考文件」。
PHP:請按照用戶端程式庫頁面上的 PHP 設定操作說明完成相關步驟,然後參閱「PHP 適用的 Video Intelligence 參考文件」。
Ruby:請按照用戶端程式庫頁面上的 Ruby 設定操作說明完成相關步驟,然後參閱「Ruby 適用的 Video Intelligence 參考文件」。
要求對本機檔案中的影片進行物件追蹤
下列範例示範如何對本機儲存的檔案進行物件追蹤。
REST
傳送處理要求
如要對本機影片檔案執行註解,請對影片檔案的內容執行 base64 編碼。
在要求的 inputContent 欄位中加入 Base64 編碼的內容。
如要瞭解如何對影片檔案內容進行 base64 編碼,請參閱「Base64 編碼」。
以下說明如何將 POST 要求傳送至 videos:annotate 方法。其中使用的存取憑證,屬於透過 Google Cloud CLI 建立的專案服務帳戶。如需安裝 Google Cloud CLI、使用服務帳戶建立專案,以及取得存取權杖的操作說明,請參閱 Video Intelligence 快速入門導覽課程。
使用任何要求資料之前,請先替換以下項目:
- inputContent:BASE64_ENCODED_CONTENT
例如:"UklGRg41AwBBVkkgTElTVAwBAABoZHJsYXZpaDgAAAA1ggAAxPMBAAAAAAAQCAA..."
- PROJECT_NUMBER: Google Cloud 專案的數字 ID
HTTP 方法和網址:
POST https://videointelligence.googleapis.com/v1/videos:annotate
JSON 要求主體:
{
"inputContent": "BASE64_ENCODED_CONTENT",
"features": ["OBJECT_TRACKING"]
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
如果要求成功,Video Intelligence API 會傳回作業的 name。以下是這類回應的範例,其中 PROJECT_NUMBER 是專案編號,OPERATION_ID 則是為要求建立的長時間執行作業 ID。
取得結果
如要取得要求結果,您必須使用從 videos:annotate 呼叫傳回的作業名稱,傳送 GET,如下列範例所示。
使用任何要求資料之前,請先替換以下項目:
- OPERATION_NAME:Video Intelligence API 傳回的作業名稱。作業名稱的格式為
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID - PROJECT_NUMBER: Google Cloud 專案的數字 ID
HTTP 方法和網址:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
Go
Java
Node.js
如要向 Video Intelligence 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
其他語言
C#:請按照用戶端程式庫頁面上的 C# 設定操作說明完成相關步驟,然後參閱「.NET 適用的 Video Intelligence 參考文件」。
PHP:請按照用戶端程式庫頁面上的 PHP 設定操作說明完成相關步驟,然後參閱「PHP 適用的 Video Intelligence 參考文件」。
Ruby:請按照用戶端程式庫頁面上的 Ruby 設定操作說明完成相關步驟,然後參閱「Ruby 適用的 Video Intelligence 參考文件」。