이 페이지에서는 Vertex AI Vision의 앱 플랫폼에서 사용할 앱을 만들고 입력 스트림, 분석용 모델, 스토리지용 웨어하우스와 같은 구성요소를 결합하는 방법을 보여줍니다.
앱을 빌드하려면 데이터 소스, 실행하려는 분석, 결과를 저장하는 방법을 고려해야 합니다. 엔드 투 엔드 앱은 사용 사례에 따라 다양한 형태를 가질 수 있습니다. 따라서 앱을 빌드하는 방법은 목표에 따라 달라집니다.
시작하기 전에 책임감 있는 AI 관점에서 사용 사례와 목표를 평가하고 문제가 발생할 경우 모델과 애플리케이션이 최종 사용자에게 미칠 수 있는 영향을 고려하세요. 공정성을 위해 사용 사례를 평가하는 첫 번째 단계에 대해 자세히 알아보세요. 또한 Vertex AI Vision 사용이 Google Cloud의 서비스 약관 또는 오프라인 버전과 통합된 URL 약관(예: Google Cloud의 서비스이용 정책)을 준수하는지 확인합니다.
애플리케이션을 만들 때 AI 비전 기술은 불공정한 편견을 강화하거나 도입하고 기본적인 인권에 영향을 미칠 수 있다는 점에 유의하세요. 애플리케이션을 개발할 때는 회사의 가치에 기반한 윤리적 성찰과 고위험 사용 사례를 포함한 특정 사용 사례에 대한 법적 실사를 수행해야 합니다. 모든 기술과 마찬가지로 기술을 구현하는 지역에서 AI/ML 기술 사용과 관련하여 적용되는 모든 법률 및 규정을 고려해야 합니다. 특정 지역에서 고위험으로 간주되는 사용 사례를 구현하는 데 필요한 실사를 수행하는 책임은 고객에게 있습니다.
새 애플리케이션 만들기
앱에 스트림이나 모델과 같은 구성요소를 추가하려면 먼저 앱 자체를 만들어야 합니다. 모든 앱은 배포되기 위해 다음을 포함해야 합니다.
- 스트림 입력 노드 (데이터 소스)
- 모델 또는 창고와 같은 다른 구성요소 노드가 하나 이상 있습니다.
새 맞춤 애플리케이션 만들기
콘솔
Google Cloud 콘솔에서 앱을 만듭니다.
Vertex AI Vision 대시보드의 애플리케이션 탭을 엽니다.
만들기 버튼을 클릭합니다.
앱 이름을 입력하고 지역을 선택합니다. 지원되는 리전
만들기를 클릭합니다.
템플릿으로 애플리케이션 만들기
콘솔
Google Cloud 콘솔에서 앱을 만듭니다.
Vertex AI Vision 대시보드의 애플리케이션 탭을 엽니다.
만들기 버튼을 클릭합니다.
앱 이름을 입력하고 지역을 선택합니다. 지원되는 리전
만들기를 클릭합니다.
애플리케이션 빌더 페이지에서 애플리케이션 템플릿 노드를 클릭합니다.
측면 설정 패널에서 모델 선택 버튼을 클릭합니다.
드롭다운 메뉴에서 모델을 선택합니다.
스트림 입력 추가
애플리케이션에는 동영상 스트림 노드가 있어야 합니다. Streams 노드를 추가하지 않으면 애플리케이션을 배포할 수 없습니다.
애플리케이션이 배포되지 않은 경우 스트림 입력 업데이트가 애플리케이션에 자동으로 적용됩니다. 앱이 이미 배포된 경우 변경사항을 적용하려면 앱을 배포 해제하고 업데이트해야 합니다. 자세한 내용은 앱 업데이트 섹션을 참고하세요.
콘솔
Google Cloud 콘솔에서 앱에 스트림을 추가합니다.
Vertex AI Vision 대시보드의 애플리케이션 탭을 엽니다.
앱의 앱 보기를 클릭합니다.
구성요소의 측면 목록에서 커넥터 목록에서 동영상 스트림을 선택합니다. 스트림 노드가 앱 그래프에 추가되고 측면 동영상 스트림 메뉴가 열립니다.
동영상 스트림 추가를 선택합니다.
기존 스트림에서 선택을 선택하는 경우 기존 스트림을 선택하고 스트림 추가를 선택합니다.
새 스트림 등록을 선택하는 경우 새 스트림의 이름을 추가하고 스트림 추가를 선택합니다.
REST
앱에 스트림을 추가하려면 projects.locations.applications.addStreamInput 메서드를 사용하여 POST 요청을 전송합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT: Google Cloud 프로젝트 ID 또는 프로젝트 번호입니다.
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 다음과 같습니다.
us-central1
,europe-west4
사용 가능한 리전을 참고하세요. - APPLICATION_ID: 대상 애플리케이션의 ID입니다.
- STREAM_ID: 대상 스트림의 ID입니다.
HTTP 메서드 및 URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput
JSON 요청 본문:
{ "applicationStreamInputs": [ { "streamWithAnnotation": { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" } }, { "streamWithAnnotation": { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" } } ] }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"
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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content
성공 상태 코드(2xx)와 빈 응답을 받게 됩니다.
노드 주석이 있는 스트림 입력 추가
애플리케이션 입력 스트림을 만들 때 Vertex AI Vision API를 사용하여 스트림에 주석을 추가할 수 있습니다. Google Cloud 콘솔에서 노드에 주석을 추가할 수도 있습니다.
콘솔
다음 샘플은 사용 가능한 주석(STREAM_ANNOTATION_TYPE_ACTIVE_ZONE
및 STREAM_ANNOTATION_TYPE_CROSSING_LINE
)을 점유자 수 모델에 추가합니다.
Vertex AI Vision 대시보드의 애플리케이션 탭을 엽니다.
목록에서 애플리케이션 이름 옆에 있는 앱 보기를 선택합니다.
애플리케이션 빌더 페이지에서 주석을 추가할 스트림 입력이 있는 모델을 선택합니다.
측면 모델 설정 패널에서 '고급 설정' 섹션을 펼칩니다. 섹션을 펼친 후 활성 영역/선 만들기 버튼을 클릭합니다.
스트림 갤러리 뷰에서 입력 스트림을 선택하여 활성 영역 또는 선을 그립니다.
편집기 뷰에서 다중 지점 선 추가 또는 단순 다각형 추가를 선택하여 주석을 추가합니다. 측면 패널을 사용하여 영역 또는 선 이름을 바꾸거나, 기존 영역/선을 삭제하거나, 선 방향을 전환합니다.
REST 및 명령줄
다음 코드는 스트림 주석을 추가합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT: Google Cloud 프로젝트 ID 또는 프로젝트 번호입니다.
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 다음과 같습니다.
us-central1
,europe-west4
사용 가능한 리전을 참고하세요. - APPLICATION_ID: 대상 애플리케이션의 ID입니다.
- STREAM_ID: 대상 스트림의 ID입니다.
- NODE_NAME: 앱 그래프의 대상 노드 이름입니다. 예를 들면
builtin-occupancy-count
입니다. - ANNOTATION_ID: 타겟 주석의 ID입니다.
- ANNOTATION_DISPLAYNAME: 사용자가 지정한 대상 주석의 표시 이름입니다.
- ANNOTATION_TYPE: 사용 가능한 열거형 값 중 하나입니다. 이 유형은
annotation_payload
객체(activeZone
또는crossingLine
)와 일치해야 합니다. 사용 가능한 값은 다음과 같습니다.STREAM_ANNOTATION_TYPE_UNSPECIFIED
STREAM_ANNOTATION_TYPE_ACTIVE_ZONE
STREAM_ANNOTATION_TYPE_CROSSING_LINE
normalizedVertices
: 각 꼭짓점은 x, y 좌표 값으로 지정됩니다. 좌표는 원본 이미지를 기준으로 정규화된 부동 소수점 값 [0,1] 입니다. 0.0은 X_MIN 또는 Y_MIN이고 1.0은 X_MAX 또는 Y_MAX입니다.
HTTP 메서드 및 URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput
JSON 요청 본문:
{ "applicationStreamInputs": [ { "streamWithAnnotation": { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID", "nodeAnnotations": [ { "node": "NODE_NAME", "annotations": [ { "id": "ANNOTATION_ID", "displayName": "ANNOTATION_DISPLAYNAME", "sourceStream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID", "type": ANNOTATION_TYPE, "activeZone": { "normalizedVertices": { "x": 0.07434944, "y": 0.18061674 }, "normalizedVertices": { "x": 0.64684016, "y": 0.16079295 }, "normalizedVertices": { "x": 0.6047088, "y": 0.92070484 }, "normalizedVertices": { "x": 0.1251549, "y": 0.76651984 } } } ] } ] } } ] }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"
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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content
성공 상태 코드(2xx)와 빈 응답을 받게 됩니다.
스트림 입력 삭제
REST
앱에서 스트림을 삭제하려면 projects.locations.applications.removeStreamInput 메서드를 사용하여 POST 요청을 전송합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT: Google Cloud 프로젝트 ID 또는 프로젝트 번호입니다.
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 다음과 같습니다.
us-central1
,europe-west4
사용 가능한 리전을 참고하세요. - APPLICATION_ID: 대상 애플리케이션의 ID입니다.
- STREAM_ID: 대상 스트림의 ID입니다.
HTTP 메서드 및 URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput
JSON 요청 본문:
{ "targetStreamInputs": [ { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" }, { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" } ] }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput"
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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput" | Select-Object -Expand Content
성공 상태 코드(2xx)와 빈 응답을 받게 됩니다.
사전 학습된 Vertex AI Vision 모델 추가
앱을 만든 후 모델을 추가하고 스트림, 다른 모델 또는 미디어 창고에 연결할 수 있습니다.
모델에는 선행 학습된 모델과 사용자 학습 모델의 두 가지 유형이 있습니다. 마찬가지로 사용자 학습 모델도 AutoML 또는 커스텀 학습이라는 두 가지 유형이 있습니다.
- 사전 학습된 모델은 특정 목표를 실행하고 일반화된 데이터로 학습되며 바로 사용할 수 있습니다.
- 사용자 학습 AutoML 또는 맞춤 학습 모델을 사용하려면 샘플 데이터를 식별하고 제공한 다음 고유한 사용 사례에 더 적합한 모델을 학습시켜야 합니다. 이러한 모델은 AutoML 학습 모델과 커스텀 학습 모델이라는 두 가지 학습 옵션을 제공하는 제품인 Vertex AI를 사용하여 학습합니다. 자세한 내용은 학습 방법 선택을 참고하세요.
다음 안내에 따라 선행 학습된 Vertex AI Vision 모델을 앱 그래프에 추가합니다.
콘솔
Vertex AI Vision 대시보드의 애플리케이션 탭을 엽니다.
목록에서 애플리케이션 이름 옆에 있는 앱 보기를 선택합니다.
애플리케이션 빌더 페이지의 AI 모델 목록에서 추가할 모델을 선택합니다. 각 모델에는 개별 구성 설정이 있습니다.
이 모델을 입력 소스 노드에 연결하려면 소스 노드를 선택하고
출력 추가를 선택합니다.사용 가능한 노드 목록에서 새로 만든 AI 모델 노드를 선택합니다.
사용자가 학습한 Vertex AI 모델 추가
앱을 만든 후 모델을 추가하고 스트림, 다른 모델 또는 미디어 창고에 연결할 수 있습니다.
모델에는 선행 학습된 모델과 사용자 학습 모델의 두 가지 유형이 있습니다. 마찬가지로 사용자 학습 모델도 AutoML 또는 커스텀 학습이라는 두 가지 유형이 있습니다.
- 사전 학습된 모델은 특정 목표를 실행하고 일반화된 데이터로 학습되며 바로 사용할 수 있습니다.
- 사용자 학습 AutoML 또는 맞춤 학습 모델을 사용하려면 샘플 데이터를 식별하고 제공한 다음 고유한 사용 사례에 더 적합한 모델을 학습시켜야 합니다. 이러한 모델은 AutoML 학습 모델과 커스텀 학습 모델이라는 두 가지 학습 옵션을 제공하는 제품인 Vertex AI를 사용하여 학습합니다. 자세한 내용은 학습 방법 선택을 참고하세요.
Vertex AI AutoML 객체 감지 스트리밍 모델 추가
학습한 Vertex AI AutoML 객체 감지 스트리밍 모델을 앱 그래프에 추가하려면 다음 안내를 따르세요.
Vertex AI AutoML 모델을 학습시키려면 먼저 객체 감지 데이터를 준비하고 데이터 세트를 만들어야 합니다.
Vertex AI Vision에서 사용할 모델 학습
Vertex AI에서 대표적인 데이터 모음으로 데이터 세트를 만든 후 Vertex AI Vision에서 사용할 모델을 학습할 수 있습니다.
콘솔
Google Cloud 콘솔의 Vertex AI 대시보드에서 데이터 세트 페이지로 이동합니다.
모델을 학습시키는 데 사용할 데이터 세트의 이름을 클릭하여 세부정보 페이지를 엽니다.
데이터 유형이 주석 세트를 사용하는 경우 이 모델에 사용할 주석 세트를 선택합니다.
새 모델 학습을 클릭합니다.
새 모델 학습 페이지에서 AutoML 이미지 객체 감지 모델에 대해 다음 단계를 완료합니다.
모델 학습 방법 섹션에서
AutoML을 선택합니다.모델을 사용할 위치 선택 섹션에서
Vertex AI 비전을 선택합니다.계속을 클릭합니다.
모델 세부정보, 학습 옵션, 컴퓨팅 및 가격 책정 섹션의 값을 입력합니다. 자세한 내용은 AutoML 모델 학습 (Google Cloud 콘솔)을 참고하세요.
학습 시작을 클릭합니다.
데이터의 규모 및 복잡성과 학습 예산(지정한 경우)에 따라 모델 학습에 많은 시간이 소요될 수 있습니다. 탭을 닫았다가 나중에 다시 돌아와도 됩니다. 모델 학습이 완료되면 이메일이 전송됩니다.
앱에 학습된 모델 추가
모델 학습이 완료되면 Vertex AI Vision 앱에 모델을 추가할 수 있습니다.
콘솔
Vertex AI Vision 대시보드의 애플리케이션 탭을 엽니다.
목록에서 애플리케이션 이름 옆에 있는 앱 보기를 선택합니다.
애플리케이션 빌더 페이지의 측면 구성요소 목록에서 Add Vertex AI Model(Vertex AI 모델 추가)을 선택합니다. 이 옵션을 선택하면 측면 메뉴가 열립니다.
Vertex AI 모델 추가 메뉴에서
Vertex AI에서 학습된 모델 가져오기 옵션을 선택한 상태로 기존 Vertex AI AutoML 모델 목록에서 모델을 선택합니다.가져올 모델을 선택한 후 모델 추가를 선택합니다.
모델 추가 버튼을 클릭하면 그래프 빌더 페이지 측면에 대기 중인 모델이 표시됩니다. 몇 초 후 모델을 사용할 수 있습니다.
Vertex AI 커스텀 모델 추가
Vertex AI 커스텀 학습 모델을 Vertex AI Vision으로 가져와 데이터 분석에 사용할 수도 있습니다. 이러한 맞춤 학습 모델은 다음 속성을 갖습니다.
- 모델 입력은 여러 애플리케이션 인스턴스 (스트림)에서 가져온 이미지이며 순서가 잘못될 수 있으므로 모델은 스테이트리스여야 합니다. 상태ful 스트리밍 처리가 필요한 경우 자체 컨테이너 내에 상태를 유지해야 할 수 있습니다.
- 모델의 입력 크기는 1.5MB로 제한됩니다. 따라서 Vertex AI Vision은 원본 RGB 이미지를 JPG와 같은 손실이 있는 형식으로 압축해야 합니다.
다음 안내에 따라 학습한 기존 Vertex AI 맞춤 학습 동영상 모델을 앱 그래프에 추가합니다.
커스텀 컨테이너로 Vertex AI 커스텀 학습 모델을 만드는 방법에 관한 자세한 내용은 예측에 커스텀 컨테이너 사용을 참고하세요.
인스턴스 YAML 파일 지정
Vertex AI 맞춤 학습 모델을 추가할 때는 Cloud Storage에 저장된 인스턴스 YAML 파일 (instances.yaml
)을 지정해야 합니다. 이 파일은 모델 컨테이너에 예상되는 입력을 지정합니다.
Vertex AI는 다음 형식으로 예측 요청을 전송합니다.
{
"instances": [
<value>|<simple/nested list>|<object>,
...
]
}
여기서 instances.yaml
는 페이로드의 스키마를 정의합니다. 자세한 내용은 커스텀 학습 모델에서 온라인 예측 가져오기를 참고하세요.
Vertex AI Vision은 정확히 하나의 이름이 지정된 예측 입력이 있는 커스텀 학습 모델만 지원합니다. 이 입력 유형은 인코딩된 JPEG 문자열이어야 합니다. 예측 입력의 스키마는 인스턴스 스키마 YAML 파일로 지정해야 합니다. 이 스키마 YAML 파일은 OpenAPI 스키마 객체 형식이어야 합니다.
예를 들어 다음 스키마는 image_bytes
를 호출하는 필드에 이미지가 인코딩된 요청을 수신합니다.
properties:
image_bytes:
type: string
맞춤 모델은 다음 형식으로 예측 입력을 수신합니다.
{
"instances": [
{
"image_bytes" : {
"b64": "BASE64_ENCODED_IMAGE_BYTES"
}
}
]
}
모델을 Vertex AI Vision으로 가져오기 전에 모델이 이 입력으로 올바르게 작동하는지 확인합니다.
예측 YAML 파일 지정
Vertex AI 맞춤 학습 모델을 추가할 때 Cloud Storage에 저장된 예측 YAML 파일 (predictions.yaml
)을 지정할 수 있습니다. 이 파일은 모델 컨테이너의 출력을 지정합니다.
이 파일은 선택사항이지만 Vertex AI Vision에 모델의 출력 구조를 알리는 것이 좋습니다. 예를 들어 다음 classification_1.0.0.yaml
파일은 이미지 분류 모델의 모델 출력 정보를 설명합니다.
title: Classification
type: object
description: >
The predicted AnnotationSpecs.
properties:
ids:
type: array
description: >
The resource IDs of the AnnotationSpecs that had been identified.
items:
type: integer
format: int64
enum: [0] # As values of this enum all AnnotationSpec IDs the Model
# was trained on will be populated.
displayNames:
type: array
description: >
The display names of the AnnotationSpecs that had been identified,
order matches the IDs.
items:
type: string
enum: [""] # As values of this enum all AnnotationSpec display_names
# the Model was trained on will be populated.
confidences:
type: array
description: >
The Model's confidences in correctness of the predicted IDs, higher
value means higher confidence. Order matches the Ids.
items:
type: number
format: float
minimum: 0.0
maximum: 1.0
커스텀 학습 모델 추가
다음 샘플을 사용하여 Vertex AI 커스텀 학습 모델을 앱에 추가합니다.
콘솔
Vertex AI Vision 대시보드의 애플리케이션 탭을 엽니다.
목록에서 애플리케이션 이름 옆에 있는 앱 보기를 선택합니다.
애플리케이션 빌더 페이지의 측면 구성요소 목록에서 Add Vertex AI Model(Vertex AI 모델 추가)을 선택합니다. 이 옵션을 선택하면 측면 메뉴가 열립니다.
Vertex AI 모델 추가 메뉴에서
Vertex AI에서 학습된 모델 가져오기 옵션을 선택한 상태로 기존 Vertex AI AutoML 모델 목록에서 모델을 선택합니다.모델의 이름을 입력합니다.
예측 및 설명 요청에 사용되는 단일 인스턴스의 형식을 정의하는 Cloud Storage의 인스턴스 YAML 파일을 지정합니다.
선택사항: 단일 예측 또는 설명의 형식을 정의하는 예측 스키마 YAML 파일을 Cloud Storage에 지정합니다.
모델 이름, 인스턴스, 예측 정보를 입력한 후 모델 추가를 선택합니다.
모델 추가 버튼을 클릭하면 그래프 빌더 페이지 측면에 대기 중인 모델이 표시됩니다. 몇 초 후 모델을 사용할 수 있습니다.
선택사항입니다. 애플리케이션 메타데이터 첨부
이미지 바이트에 더해 attach_application_metadata
를 설정하여 Vertex AI Vision 앱 플랫폼에 커스텀 컨테이너로 전송할 애플리케이션의 메타데이터를 포함하도록 요청할 수 있습니다.
메타데이터의 스키마는 다음과 같습니다.
'appPlatformMetadata': {
'application': STRING;
'instanceId': STRING;
'node': STRING;
'processor': STRING;
}
선택사항입니다. 동적 구성 Pub/Sub 주제 추가
Vertex 맞춤 연산자가 동영상 프레임을 꼭지점 맞춤 컨테이너로 전송하는 프레임 속도를 동적으로 제어하려면 Pub/Sub 주제를 만들면 됩니다. 노드 설정의 Dynamic Configuration
섹션에 추가합니다.
Pub/Sub 주제가 구성된 경우 초기 프레임 속도는 0입니다. 동영상 처리 중에 다음 형식의 Pub/Sub 메시지를 Pub/Sub 주제에 실시간으로 전송하여 프레임 속도를 변경할 수 있습니다.
{
"stream_id": "input-stream-id",
"fps": 5,
}
stream_id
필드는 애플리케이션의 입력 스트림 ID와 일치해야 합니다.
서비스 계정 및 권한
커스텀 컨테이너의 기본 서비스 사용자 인증 정보가 Vertex AI Vision 앱 플랫폼의 Google 소유 서비스 계정으로 구성되었습니다.
컨테이너에서 다른 Google Cloud서비스에 액세스하려면 다음에 적절한 권한을 부여합니다.
service-<var>PROJECT_NUMBER</var>@gcp-sa-visionai.iam.gserviceaccount.com
선택사항입니다. Cloud Run 함수 및 Pub/Sub로 이벤트 알림 모델링
Vertex AI Vision에서 모델은 카메라와 같은 기기에서 미디어 데이터를 수신하고, 데이터에 AI 예측을 실행하고, 주석을 지속적으로 생성합니다. 추가 분석 작업을 위해 처리된 데이터를 미디어 창고나 BigQuery와 같은 데이터 대상 ('데이터 싱크')으로 전송하는 경우가 많습니다. 하지만 일부 주석을 다르게 처리해야 하거나 주석 요구사항이 시간에 민감한 경우도 있습니다. Cloud Run 함수 및 Pub/Sub와 통합하면 이러한 요구사항을 해결할 수 있습니다.
지원되는 모델
다음 모델은 Cloud Run 함수 이벤트 생성 및 Pub/Sub 이벤트 알림 통합을 제공합니다.
- 인원/차량 수 분석 모델
- Vertex AI 커스텀 학습 모델
모델 출력을 처리하도록 Cloud Run 함수 구성
이벤트 기반 알림을 트리거하려면 먼저 Cloud Run 함수를 설정하여 모델 출력을 처리하고 이벤트를 생성해야 합니다.
Cloud Run 함수는 모델에 연결하고 출력을 후처리 작업으로 리슨합니다. Cloud Run 함수는 AppPlatformCloudFunctionResponse
를 반환해야 합니다. 이벤트(appplatformeventbody
)는 다음 단계에서 구성하는 Pub/Sub 주제로 전송됩니다.
샘플 Cloud Run 함수를 보려면 Cloud Functions 및 Pub/Sub로 모델 이벤트 알림 사용 설정을 참고하세요.
다음 안내에 따라 모델 출력 스트림을 Cloud Run 함수로 전송합니다.
콘솔
Vertex AI Vision 대시보드의 애플리케이션 탭을 엽니다.
목록에서 애플리케이션 이름 옆에 있는
앱 보기를 선택합니다.지원되는 모델을 클릭하여 모델 세부정보 측면 패널을 엽니다.
이벤트 알림 섹션의 후처리 목록에서 기존 Cloud Run 함수를 선택하거나 새 함수를 만듭니다.
Pub/Sub로 모델 이벤트 알림 사용 설정
모델 출력을 처리하고 이벤트를 생성하도록 Cloud Run 함수를 설정한 후 Pub/Sub로 이벤트 알림을 설정할 수 있습니다. 주제의 메시지를 읽으려면 Pub/Sub 구독을 선택하고 만들어야 합니다.
콘솔
Vertex AI Vision 대시보드의 애플리케이션 탭을 엽니다.
목록에서 애플리케이션 이름 옆에 있는
앱 보기를 선택합니다.지원되는 모델을 클릭하여 모델 세부정보 측면 패널을 엽니다.
Event notification(이벤트 알림) 섹션에서 Set up event notification(이벤트 알림 설정)을 선택합니다.
열리는 이벤트 알림을 위한 Pub/Sub 설정 옵션 창에서 기존 Pub/Sub 주제를 선택하거나 새 주제를 만듭니다.
빈도 필드에서 동일한 유형의 이벤트에 대한 알림을 보낼 수 있는 빈도 값(초)의 정수 값을 설정합니다.
설정을 클릭합니다.
모델 출력을 다운스트림 노드에 연결
모델 노드를 만든 후 출력을 다른 노드에 연결할 수 있습니다.
콘솔
Vertex AI Vision 대시보드의 애플리케이션 탭을 엽니다.
목록에서 애플리케이션 이름 옆에 있는 앱 보기를 선택합니다.
애플리케이션 그래프 빌더에서 데이터를 출력하는 모델 노드 (예: Occupancy Count 모델 노드)를 클릭합니다.
측면 설정 패널에서 출력 추가 버튼을 클릭합니다.
새 출력 추가를 선택하고 추가할 새 출력 노드를 선택하거나 출력을 전송할 기존 사용 가능한 노드를 선택합니다.
출력을 데이터 대상에 연결
데이터 처리 스트림을 만들고 처리 노드를 앱에 추가한 후에는 처리된 데이터를 전송할 위치를 선택해야 합니다. 이 데이터 대상은 스트림 데이터를 생성하지 않고 스트림 데이터를 수용하는 앱 그래프의 엔드포인트입니다. 선택하는 대상은 앱 출력 데이터를 사용하는 방식에 따라 다릅니다.

앱 출력 데이터를 다음 데이터 대상으로 연결할 수 있습니다.
Vision 웨어하우스: 확인하고 쿼리할 수 있는 원본 또는 분석된 동영상 데이터를 저장합니다.
앱 출력 데이터를 Vision 웨어하우스로 전송하는 방법에 관한 자세한 내용은 웨어하우스에 데이터 연결 및 저장을 참고하세요.
BigQuery: BigQuery에 데이터를 저장하여 오프라인 분석 기능을 사용합니다.
앱 출력 데이터를 BigQuery로 전송하는 방법에 관한 자세한 내용은 BigQuery에 데이터 연결 및 저장을 참고하세요.
라이브 스트림 데이터: 실시간 분석을 더 세부적으로 제어하려면 앱에서 실시간 출력을 수신하면 됩니다.
앱 출력 데이터를 직접 스트리밍하는 방법에 관한 자세한 내용은 라이브 스트림 출력 사용 설정을 참고하세요.
앱 업데이트
배포되지 않은 앱
앱을 수정합니다 (예: 구성요소 노드 추가 또는 삭제). Vertex AI Vision에서 변경사항을 자동으로 저장합니다.
다음 단계
- 애플리케이션 배포에서 데이터를 수집하고 분석하도록 앱을 배포하는 방법을 알아보세요.
- 스트림 만들기 및 관리에서 앱의 입력 스트림에서 데이터 처리를 시작하는 방법에 관한 안내를 읽습니다.
- 애플리케이션 관리에서 앱을 나열하고 배포된 앱의 인스턴스를 보는 방법을 알아보세요.
- 스트림 데이터 읽기에서 처리 스트림 또는 분석된 모델 출력 데이터에서 앱 입력 데이터를 읽는 방법을 알아보세요.