시각적 캡셔닝을 사용하면 이미지와 관련된 설명을 생성할 수 있습니다. 이 정보를 다양한 용도로 사용할 수 있습니다.
- 저장 및 검색을 위해 이미지에 대한 보다 자세한 메타데이터를 가져옵니다.
- 접근성 사용 사례를 지원하도록 자동 캡셔닝을 생성합니다.
- 제품 및 시각적 애셋에 대한 빠른 설명을 확인합니다.
이미지 소스: Unsplash의 산토시 쿠마르(자르기)
자막(짧은 형식): 흰색 물방울 무늬가 있는 파란색 셔츠가 고리에 걸려 있음
지원 언어
시각적 캡셔닝은 다음 언어로 제공됩니다.
- 영어(
en
) - 프랑스어(
fr
) - 독일어(
de
) - 이탈리아어(
it
) - 스페인어(
es
)
성능 및 제한사항
모델을 사용할 때 다음 한도가 적용됩니다.
한도 | 값 |
---|---|
프로젝트별 분당 최대 API 요청 수(짧은 형식) | 500 |
응답으로 반환되는 최대 토큰 수(짧은 형식) | 토큰 64개 |
요청에 허용되는 최대 토큰 수(VQA 짧은 형식만) | 토큰 80개 |
이 모델을 사용할 때 다음 서비스 지연 시간 추정치가 적용됩니다. 이러한 값은 설명을 위한 것이며 서비스가 보장되지 않습니다.
지연 시간 | 값 |
---|---|
API 요청(짧은 형식) | 1.5초 |
위치
위치는 데이터가 영구 저장되는 위치를 제어하기 위해 요청에서 지정할 수 있는 리전입니다. 사용 가능한 리전 목록은 Vertex AI의 생성형 AI 위치를 참조하세요.
책임감 있는 AI 안전 필터링
이미지 캡션 및 시각적 질의 응답(VQA) 기능 모델은 사용자가 구성할 수 있는 안전 필터를 지원하지 않습니다. 그러나 전반적인 Imagen 안전 필터링은 다음 데이터에 적용됩니다.
- 사용자 입력
- 모델 출력
따라서 Imagen에서 이러한 안전 필터를 적용하면 출력이 샘플 출력과 다를 수 있습니다. 다음 예시를 고려하세요.
필터링된 입력
입력이 필터링된 경우 응답은 다음과 비슷합니다.
{
"error": {
"code": 400,
"message": "Media reasoning failed with the following error: The response is blocked, as it may violate our policies. If you believe this is an error, please send feedback to your account team. Error Code: 63429089, 72817394",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.DebugInfo",
"detail": "[ORIGINAL ERROR] generic::invalid_argument: Media reasoning failed with the following error: The response is blocked, as it may violate our policies. If you believe this is an error, please send feedback to your account team. Error Code: 63429089, 72817394 [google.rpc.error_details_ext] { message: \"Media reasoning failed with the following error: The response is blocked, as it may violate our policies. If you believe this is an error, please send feedback to your account team. Error Code: 63429089, 72817394\" }"
}
]
}
}
필터링된 출력
반환된 응답 수가 지정한 샘플 수보다 적으면 누락된 응답이 책임감 있는 AI에 의해 필터링된 것입니다. 예를 들어 다음은 "sampleCount": 2
가 포함된 요청에 대한 응답이지만 응답 중 하나가 필터링됩니다.
{
"predictions": [
"cappuccino"
]
}
모든 출력이 필터링되면 응답은 다음과 유사한 빈 객체입니다.
{}
짧은 형식의 이미지 자막 가져오기
다음 샘플을 사용하여 이미지에 짧은 형식의 자막을 생성합니다.
REST
imagetext
모델 요청에 대한 자세한 내용은 imagetext
모델 API 참조를 확인하세요.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- LOCATION: 프로젝트의 리전입니다. 예를 들면
us-central1
,europe-west2
,asia-northeast3
입니다. 사용 가능한 리전 목록은 Vertex AI의 생성형 AI 위치를 참조하세요. - B64_IMAGE: 자막을 가져올 이미지입니다. 이미지는 base64 인코딩 바이트 문자열로 지정되어야 합니다. 크기 제한: 10MB.
- RESPONSE_COUNT: 생성할 이미지 자막의 수입니다. 허용되는 정수 값: 1~3.
- LANGUAGE_CODE: 지원되는 언어 코드 중 하나입니다. 지원되는 언어는 다음과 같습니다.
- 영어(
en
) - 프랑스어(
fr
) - 독일어(
de
) - 이탈리아어(
it
) - 스페인어(
es
)
- 영어(
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagetext:predict
JSON 요청 본문:
{ "instances": [ { "image": { "bytesBase64Encoded": "B64_IMAGE" } } ], "parameters": { "sampleCount": RESPONSE_COUNT, "language": "LANGUAGE_CODE" } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagetext:predict"
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagetext:predict" | Select-Object -Expand Content
"sampleCount": 2
가 포함된 요청의 샘플 응답입니다. 응답은 예측 문자열 2개를 반환합니다.
영어(en
):
{ "predictions": [ "a yellow mug with a sheep on it sits next to a slice of cake", "a cup of coffee with a heart shaped latte art next to a slice of cake" ], "deployedModelId": "DEPLOYED_MODEL_ID", "model": "projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID", "modelDisplayName": "MODEL_DISPLAYNAME", "modelVersionId": "1" }
스페인어(es
):
{ "predictions": [ "una taza de café junto a un plato de pastel de chocolate", "una taza de café con una forma de corazón en la espuma" ] }
Python
이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 Vertex AI Python API 참고 문서를 참조하세요.
Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
이 샘플에서는 load_from_file
메서드를 사용하여 로컬 파일을 기본 Image
로 참조해 자막을 가져옵니다. 기본 이미지를 지정한 후 ImageTextModel
에서 get_captions
메서드를 사용하고 출력을 인쇄합니다.
Node.js
이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 Vertex AI Node.js API 참고 문서를 참조하세요.
Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
이 샘플에서는PredictionServiceClient
에서 predict
메서드를 호출합니다.
서비스는 제공된 이미지의 자막을 반환합니다.
이미지 캡셔닝 매개변수 사용
이미지 자막을 가져오면 사용 사례에 따라 여러 매개변수를 설정할 수 있습니다.
알림당 결과 수
결과 수 매개변수를 사용하여 전송하는 요청마다 반환되는 자막 양을 제한합니다. 자세한 내용은 imagetext
(이미지 캡셔닝) 모델 API 참조를 확인하세요.
시드 번호
생성된 설명을 확정하도록 요청에 추가하는 숫자입니다.
요청에 시드 번호를 추가하면 매번 같은 예측(설명)을 가져올 수 있습니다. 그러나 이미지 자막은 반드시 동일한 순서로 반환되지 않습니다. 자세한 내용은 imagetext
(이미지 캡셔닝) 모델 API 참조를 확인하세요.
다음 단계
Imagen 및 Vertex AI의 기타 생성형 AI 제품 관련 문서 읽기:
- Vertex AI에서 Imagen 3 시작을 위한 개발자 가이드
- 크리에이터를 위해 제작된 새로운 생성형 미디어 모델 및 도구
- Gemini의 새로운 기능: Imagen 3의 커스텀 젬 및 향상된 이미지 생성
- Google DeepMind: Imagen 3 - 최고 품질의 텍스트 이미지 변환 모델