데이터 처리가 배포된 앱의 연결된 Vision 웨어하우스 (corpus
)에는 하나 이상의 미디어 객체 assets
가 있습니다. dataSchema
및 사용자가 제공한 annotation
리소스를 사용하여 이러한 미디어 객체 assets
에 관한 자세한 정보를 제공할 수 있습니다.
데이터 스키마 키가 있는 annotation
리소스를 만들려면 먼저 데이터 스키마 리소스를 만들어야 합니다. Vertex AI Vision API에 미디어 주석을 해석하는 방법을 알리는 데이터 스키마 (dataSchema
리소스)를 만든 후에는 창고에서 미디어의 annotation
리소스를 만들 수 있습니다.
데이터 스키마 만들기 (API)
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사(예:europe-west4-
)가 포함될 수 있습니다. 지역화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: 프로젝트 번호입니다. Google Cloud
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 다음과 같습니다.
us-central1
,europe-west4
사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 자료의 ID입니다.
- DATASCHEMA_KEY: 이 키는 사용자가 지정한 주석의 키와 일치해야 하며
corpus
내에서 고유해야 합니다. 예를 들면data-key
입니다. - ANNOTATION_DATA_TYPE: 주석의 데이터 유형입니다. 사용 가능한 값은 다음과 같습니다.
DATA_TYPE_UNSPECIFIED
INTEGER
FLOAT
STRING
DATETIME
GEO_COORDINATE
PROTO_ANY
BOOLEAN
자세한 내용은 API 참조 문서를 참고하세요.
- ANNOTATION_GRANULARITY: 이
dataSchema
아래의 주석 세분성입니다. 사용 가능한 값은 다음과 같습니다.GRANULARITY_UNSPECIFIED
- 지정되지 않은 세부사항입니다.GRANULARITY_ASSET_LEVEL
- 저작물 수준 세부사항 (주석에 미디어 저작물의 시간적 파티션 정보가 포함되어서는 안 됨)GRANULARITY_PARTITION_LEVEL
- 파티션 수준 세부사항 (주석에는 미디어 저작물의 시간적 파티션 정보가 포함되어야 함)
- SEARCH_STRATEGY: 사용 가능한 열거형 값 중 하나입니다. 주석 키에 적용할 검색 전략의 유형입니다. 사용 가능한 값은 다음과 같습니다.
NO_SEARCH
EXACT_SEARCH
SMART_SEARCH
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas
JSON 요청 본문:
{ "key": "DATASCHEMA_KEY", "schema_details": { "type": "ANNOTATION_DATA_TYPE", "granularity": "ANNOTATION_GRANULARITY", "search_strategy": { "search_strategy_type": "SEARCH_STRATEGY" } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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/dataSchemas"
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/dataSchemas" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "data-key", "schemaDetails": { "type": "BOOLEAN", "granularity": "GRANULARITY_ASSET_LEVEL", "searchStrategy": { "search_strategy_type": "EXACT_SEARCH" } } }
데이터 스키마 업데이트 (API)
REST 및 명령줄
다음 코드는 projects.locations.corpora.dataSchemas.patch
메서드를 사용하여 dataSchema
를 업데이트합니다.
이 샘플은 요청 URL에 ?updateMask=schemaDetails.type,schemaDetails.granularity
를 사용하고 데이터 스키마를 업데이트하기 위해 요청 본문에 새 schemaDetails.type
및 schemaDetails.granularity
값을 포함합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사(예:europe-west4-
)가 포함될 수 있습니다. 지역화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: 프로젝트 번호입니다. Google Cloud
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 다음과 같습니다.
us-central1
,europe-west4
사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 자료의 ID입니다.
- DATASCHEMA_ID: 대상 데이터 스키마의 ID입니다.
?updateMask=fieldToUpdate
:updateMask
를 적용할 수 있는 사용 가능한 필드 중 하나입니다. 요청 본문에서 해당하는 새 필드 값을 지정합니다. 이 새 값은 기존 필드 값을 대체합니다. 사용 가능한 필드:- 키:
?updateMask=key
- 스키마 유형:
?updateMask=schemaDetails.type
- 스키마 세부사항:
?updateMask=schemaDetails.granularity
- 스키마 검색 전략 유형:
?updateMask=schemaDetails.searchStrategy.searchStrategyType
- 모든 입력란을 업데이트합니다.
?updateMask=*
- 키:
HTTP 메서드 및 URL:
PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity
JSON 요청 본문:
{ "key": "original-data-key", "schemaDetails": { "type":"INTEGER", "granularity":"GRANULARITY_PARTITION_LEVEL" "searchStrategy": { "searchStrategyType": "NO_SEARCH" } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity"
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/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "original-data-key", "schemaDetails": { "type": "INTEGER", "granularity": "GRANULARITY_PARTITION_LEVEL", "searchStrategy": { "searchStrategyType": "NO_SEARCH" } } }
맞춤 구조체 데이터 스키마 추가
맞춤 구조체를 사용하면 사용자가 더 복잡한 컨테이너를 정의하여 값을 보유하고 검색 기능을 제공할 수 있습니다. 이 기능을 사용하려면 데이터 스키마를 정의해야 합니다. 예를 들면 다음과 같습니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사(예:europe-west4-
)가 포함될 수 있습니다. 지역화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: 프로젝트 번호입니다. Google Cloud
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 다음과 같습니다.
us-central1
,europe-west4
사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 자료의 ID입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas
JSON 요청 본문:
{ "key": "person", "schema_details" : { "type":"CUSTOMIZED_STRUCT", "granularity":"GRANULARITY_ASSET_LEVEL", "customized_struct_config": { "field_schemas": { "name": { "type":"STRING", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } }, "age": { "type":"FLOAT", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } } } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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/dataSchemas"
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/dataSchemas" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "person", "schemaDetails" : { "type":"CUSTOMIZED_STRUCT", "granularity":"GRANULARITY_ASSET_LEVEL", "customized_struct_config": { "field_schemas": { "name": { "type":"STRING", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } }, "age": { "type":"FLOAT", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } } } } }
그런 다음 주석을 삽입할 수 있습니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- 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입니다.
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": "person", "value": { "customized_struct_value":{ "elements" : { "name": { "str_value":"John" }, "age": { "float_value":10.5 } } } } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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": "person", "value": { "customized_struct_value":{ "elements" : { "name": { "str_value":"John" }, "age": { "float_value":10.5 } } } } } }
주석이 색인 생성되면 다음과 같이 검색 요청을 실행할 수 있습니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사(예:europe-west4-
)가 포함될 수 있습니다. 지역화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: 프로젝트 번호입니다. Google Cloud
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 다음과 같습니다.
us-central1
,europe-west4
사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 자료의 ID입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
JSON 요청 본문:
{ "page_size": 10, "criteria": { "field": "person.name", "text_array": { "txt_values": "John" }, }, }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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:searchAssets"
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:searchAssets" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
창고 스키마 세부정보 수정 (콘솔)
스키마 필드는 애플리케이션을 통해 모델에서 생성됩니다. 맞춤 입력란을 추가할 수도 있습니다.
얼굴 표 필드를 수정한 후 이를 사용하여 창고를 검색할 수 있습니다.
콘솔
Vertex AI Vision 대시보드의 창고 탭을 엽니다.
원하는 창고를 찾아 이름을 선택합니다. 창고 세부정보 페이지가 표시됩니다.
검색에 사용 설정할 필드를 선택합니다.