창고 (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-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- ASSET_ID: 타겟 애셋의 ID입니다.
- ANNOTATION_ID: (선택사항) 주석 ID에 대해 사용자가 제공한 값입니다. 이 요청에서 값은 다음과 같은 형식으로 요청 URL에 추가됩니다.
- https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets/ASSET_ID/annotations?annotation_id=ANNOTATION_ID
HTTP 메서드 및 URL:
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
타겟 동영상 부분의 시간 범위를 제공할 수 있습니다. 다음 샘플을 사용하여 시간 파티션을 사용하여 동영상 asset
의 특정 기간에 대해 사용자가 제공한 annotation
를 만듭니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- ASSET_ID: 타겟 애셋의 ID입니다.
- ANNOTATION_ID: (선택사항) 주석 ID에 대해 사용자가 제공한 값입니다. 이 요청에서 값은 다음과 같은 형식으로 요청 URL에 추가됩니다.
- https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets/ASSET_ID/annotations?annotation_id=ANNOTATION_ID
HTTP 메서드 및 URL:
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-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- ASSET_ID: 타겟 애셋의 ID입니다.
- ANNOTATION_ID: 타겟 주석의 ID입니다.
HTTP 메서드 및 URL:
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" } } }