物件追蹤功能可追蹤在輸入影片中偵測到的物件。如要提出物件追蹤要求,請呼叫 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:專案的數值 ID Google Cloud
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:專案的數值 ID Google Cloud
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:專案的數值 ID Google Cloud
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:專案的數值 ID Google Cloud
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 參考說明文件。