建立倉儲資產註解

倉儲 (corpus) 中的媒體物件 (asset 資源) 包含中繼資料和 annotation 資源。這些 annotation 資源代表 asset 中內容的鍵值對應。

建立倉儲資產註解

您必須完成下列步驟,才能為資產建立註解:

  • 在倉庫中建立 asset 資源
  • 建立具有相同鍵的 dataSchema,指出 annotation 值的資料類型

annotation 可以選擇性地與時間分割區建立關聯。 舉例來說,如果 annotation 適用於整個 asset,您可以省略與其相關聯的任何時間分區。同樣地,如果annotation只適用於影片的特定部分asset,您可以在建立 annotation 時提供 asset 的時間範圍。

建立沒有時間分割的註解

如果註解適用於整部影片 asset 你就不必提供時間分區。使用下列範例,為整個 asset 建立使用者提供的 annotation (未指定影片時間範圍)。

REST

使用任何要求資料之前,請先替換以下項目:

  • REGIONALIZED_ENDPOINT:端點可能包含與 LOCATION_ID 相符的前置字串,例如 europe-west4-。進一步瞭解 地區化端點
  • PROJECT_NUMBER:您的 Google Cloud專案編號
  • LOCATION_ID:您使用 Vertex AI Vision 的區域。例如:us-central1europe-west4。請參閱可用區域
  • CORPUS_ID:目標語料庫的 ID。
  • ASSET_ID:目標資產的 ID。
  • ANNOTATION_ID:(選用) 使用者提供的註解 ID 值。在這項要求中,值會以以下形式加入要求網址:
    • https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets/ASSET_ID/annotations?annotation_id=ANNOTATION_ID

HTTP 方法和網址:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations

JSON 要求主體:

{
  "user_specified_annotation":{
    "key": "camera-location",
    "value": {
      "str_value": "Sunnyvale"
    }
  }
}

如要傳送要求,請選擇以下其中一個選項:

curl

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations"

PowerShell

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations" | Select-Object -Expand Content

您應該會收到如下的 JSON 回應:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID",
  "userSpecifiedAnnotation": {
    "key": "camera-location",
    "value": {
      "strValue": "Sunnyvale"
    }
  }
}

建立具有時間分割的註解

如果註解只適用於影片的某個部分 asset,你可以提供目標影片部分的時段範圍。使用下列範例,透過時間分割建立影片特定時間範圍的使用者提供 annotation asset

REST

使用任何要求資料之前,請先替換以下項目:

  • REGIONALIZED_ENDPOINT:端點可能包含與 LOCATION_ID 相符的前置字串,例如 europe-west4-。進一步瞭解 地區化端點
  • PROJECT_NUMBER:您的 Google Cloud專案編號
  • LOCATION_ID:您使用 Vertex AI Vision 的區域。例如:us-central1europe-west4。請參閱可用區域
  • CORPUS_ID:目標語料庫的 ID。
  • ASSET_ID:目標資產的 ID。
  • ANNOTATION_ID:(選用) 使用者提供的註解 ID 值。在這項要求中,值會以以下形式加入要求網址:
    • https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets/ASSET_ID/annotations?annotation_id=ANNOTATION_ID

HTTP 方法和網址:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations

JSON 要求主體:

{
  "user_specified_annotation": {
    "key": "object-detected",
    "value": {
      "str_value": "cat"
    },
    "partition": {
      "temporal_partition": {
        "start_time": {
          "seconds": "1630464728"
        },
        "end_time": {
          "seconds": "1630464729"
        }
      }
    }
  }
}

如要傳送要求,請選擇以下其中一個選項:

curl

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations"

PowerShell

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations" | Select-Object -Expand Content

您應該會收到如下的 JSON 回應:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID",
  "userSpecifiedAnnotation": {
    "key": "object-detected",
    "value": {
      "strValue": "cat"
    },
    "partition": {
      "temporalPartition": {
        "startTime": "2022-09-14T20:33:09Z",
        "endTime": "2022-09-14T20:33:39Z"
      }
    }
  }
}

更新註解 (無時間分區)

REST

使用任何要求資料之前,請先替換以下項目:

  • REGIONALIZED_ENDPOINT:端點可能包含與 LOCATION_ID 相符的前置字串,例如 europe-west4-。進一步瞭解 地區化端點
  • PROJECT_NUMBER:您的 Google Cloud專案編號
  • LOCATION_ID:您使用 Vertex AI Vision 的區域。例如:us-central1europe-west4。請參閱可用區域
  • CORPUS_ID:目標語料庫的 ID。
  • ASSET_ID:目標資產的 ID。
  • ANNOTATION_ID:目標註解的 ID。

HTTP 方法和網址:

PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID

JSON 要求主體:

{
 "user_specified_annotation":{
    "key": "camera-location",
    "value": {
      "str_value": "UPDATED_FIELD_VALUE"
    }
  }
}

如要傳送要求,請選擇以下其中一個選項:

curl

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID"

PowerShell

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID" | Select-Object -Expand Content

您應該會收到如下的 JSON 回應:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID",
  "userSpecifiedAnnotation": {
    "key": "camera-location",
    "value": {
      "strValue": "UPDATED_FIELD_VALUE"
    }
  }
}