객체 보강을 구성할 때 저장된 객체를 분석할 머신러닝 모델을 선택합니다. 각 모델은 적합한 이미지 또는 PDF 문서를 평가하고 구조화된 메타데이터를 Cloud Storage 객체에 직접 연결합니다.
이 페이지에서는 지원되는 각 모델, 자격 요건, 출력 스키마를 설명하여 BigQuery 또는 API를 통해 보강 메타데이터를 파싱하고 쿼리하는 데 도움을 줍니다.
모델과 객체 보강 간의 관계
스캔할 버킷과 실행할 모델을 지정하는 기능 구성(FeatureConfig)을 만들어 모델을 활성화합니다. 비동기 처리 중에 Cloud Storage는 선택한 모델을 사용하여 적합한 객체를 평가하고 객체 보강이라는 구조화된 JSON 메타데이터를 생성합니다.
각 모델은 Cloud Storage가 contexts.custom 속성 아래에 Google 관리 객체 컨텍스트로 객체에 직접 연결하는 전용 JSON 페이로드를 생성합니다. google:annotation: 프리픽스가 붙은 고유한 컨텍스트 키는 각 페이로드를 식별합니다.
워크플로에 따라 이 메타데이터를 두 가지 방법으로 사용할 수 있습니다.
- 개별 객체 검사:
viewFullContext메서드(미리보기)와 같은 객체 API를 사용하여 특정 객체의 보강 정보를 가져옵니다. - 대규모 분석: BigQuery에서 Storage Insights 데이터 세트와 표준 SQL을 사용하여 버킷의 모든 객체에서 보강된 메타데이터를 쿼리합니다.
얼굴 인식
face-detector 모델을 사용하여 저장된 이미지에서 사람 얼굴을 감지합니다. 모델은 전체 머리와 개별 얼굴의 경계 다각형을 감지하고 눈, 코, 입과 같은 36개의 얼굴 특징을 찾습니다. 또한 롤, 팬, 틸트와 같은 머리 방향 각도를 계산하고 감정 표현 가능성을 평가합니다.
모델 세부정보
- 모델 이름:
face-detector - 컨텍스트 키:
google:annotation:face-detector-v1 - 적합한 객체: 지원되는
Content-Type가BMP,GIF,ICO,JPEG,PNG,TIFF또는WEBP인 20MiB 이하의 이미지 객체
출력 스키마
모델은 modelName, modelVersion, faceAnnotations 배열이 있는 faceAnnotationGroup가 포함된 JSON 객체를 출력합니다. 모델 실행이 실패하면 JSON 객체에 faceAnnotationGroup 대신 error 객체가 포함됩니다.
| 필드 | 유형 | 범위 | 설명 |
|---|---|---|---|
modelName |
string |
해당 사항 없음 | 이 보강을 생성한 머신러닝 모델의 이름입니다. |
modelVersion |
string |
해당 사항 없음 | 이 보강을 생성한 머신러닝 모델의 버전입니다. |
faceAnnotationGroup |
object |
해당 사항 없음 | 얼굴 인식 보강을 위한 최상위 컨테이너 객체입니다. 모델 실행이 성공한 경우 표시됩니다. |
faceAnnotationGroup.faceAnnotations[] |
array |
해당 사항 없음 | 이미지에서 인식된 얼굴 목록입니다. |
faceAnnotationGroup.faceAnnotations[].boundingPoly |
object |
해당 사항 없음 | 머리와 얼굴 전체를 둘러싸는 BoundingPoly이며 원본 이미지 크기로 조정됩니다. |
faceAnnotationGroup.faceAnnotations[].faceDetectionBoundingPoly |
object |
해당 사항 없음 | 얼굴 인식의 BoundingPoly입니다. boundingPoly보다 더 밀착되어 피부와 보이는 얼굴 특징만 둘러싸서 결합한 다각형입니다. |
faceAnnotationGroup.faceAnnotations[].landmarks[] |
array |
해당 사항 없음 | 특정 얼굴 특징을 나타내는 감지된 FaceLandmark 객체 목록입니다. |
faceAnnotationGroup.faceAnnotations[].rollAngle |
number |
-180~180 |
얼굴의 시계 방향 또는 시계 반대 방향 회전(도)입니다. |
faceAnnotationGroup.faceAnnotations[].panAngle |
number |
-180~180 |
얼굴이 왼쪽 또는 오른쪽을 향하는 수평 각도(도)입니다. |
faceAnnotationGroup.faceAnnotations[].tiltAngle |
number |
-180~180 |
얼굴이 위 또는 아래를 향하는 수직 피치 각도(도)입니다. |
faceAnnotationGroup.faceAnnotations[].detectionConfidence |
number |
0~1 (0% ~100%) |
전체 얼굴 인식의 신뢰도 점수입니다. |
faceAnnotationGroup.faceAnnotations[].landmarkingConfidence |
number |
0~1 (0~100%) |
얼굴 특징 위치 지정의 신뢰도 점수입니다. |
faceAnnotationGroup.faceAnnotations[].joyProbability |
number |
0~1 (0% ~100%) |
얼굴이 기쁨을 표현할 가능성입니다. |
faceAnnotationGroup.faceAnnotations[].sorrowProbability |
number |
0~1 (0~100%) |
얼굴이 슬픔을 표현할 가능성입니다. |
faceAnnotationGroup.faceAnnotations[].angerProbability |
number |
0~1 (0% ~100%) |
얼굴이 분노를 표현할 가능성입니다. |
faceAnnotationGroup.faceAnnotations[].surpriseProbability |
number |
0~1 (0~100%) |
얼굴이 놀라움을 표현할 가능성입니다. |
faceAnnotationGroup.faceAnnotations[].underExposedProbability |
number |
0~1 (0% ~100%) |
이미지의 얼굴이 노출 부족일 가능성입니다. |
faceAnnotationGroup.faceAnnotations[].blurredProbability |
number |
0~1 (0% ~100%) |
이미지의 얼굴이 흐리게 처리되었을 가능성입니다. |
faceAnnotationGroup.faceAnnotations[].headwearProbability |
number |
0~1 (0% ~100%) |
사람이 모자 등의 헤드웨어를 착용하고 있을 가능성입니다. |
error |
object |
해당 사항 없음 | code 및 message를 포함하는 google.rpc.Status 객체 모델 실행이 실패한 경우에만 채워집니다. |
BoundingPoly
BoundingPoly 객체는 감지된 이미지 기능을 둘러싸는 경계 다각형을 나타냅니다.
| 필드 | 유형 | 범위 | 설명 |
|---|---|---|---|
vertices[] |
array |
해당 사항 없음 | 절대 픽셀 Vertex 객체를 사용하는 경계 다각형 좌표입니다. |
normalizedVertices[] |
array |
해당 사항 없음 | 상대 NormalizedVertex 객체를 사용한 경계 다각형 좌표로, 0에서 1로 확장됩니다. |
Vertex
Vertex 객체는 원본 이미지 크기로 조정된 2D 좌표 지점을 나타냅니다.
| 필드 | 유형 | 범위 | 설명 |
|---|---|---|---|
x |
integer |
0 이상 |
왼쪽 가장자리에서 픽셀 단위의 가로 X 좌표입니다. |
y |
integer |
0 이상 |
상단 가장자리에서 픽셀 단위로 표시되는 세로 Y 좌표입니다. |
NormalizedVertex
NormalizedVertex 객체는 원본 이미지 크기에 대한 비율로 표현된 2D 좌표 지점을 나타냅니다.
| 필드 | 유형 | 범위 | 설명 |
|---|---|---|---|
x |
number |
0~1 |
이미지 너비를 기준으로 한 가로 X 좌표입니다. 여기서 0.0은 왼쪽 가장자리이고 1.0은 오른쪽 가장자리입니다. |
y |
number |
0~1 |
이미지 높이를 기준으로 한 세로 Y 좌표입니다. 여기서 0.0은 상단 가장자리이고 1.0은 하단 가장자리입니다. |
FaceLandmark
FaceLandmark 객체는 얼굴 내에서 감지된 특정 얼굴 특징을 나타냅니다.
| 필드 | 유형 | 범위 | 설명 |
|---|---|---|---|
type |
enum |
랜드마크 유형을 참고하세요. | 인식된 특정 얼굴 특징입니다. |
position |
object |
해당 사항 없음 | 랜드마크의 3D Position입니다. |
랜드마크 유형
모델은 36개의 특정 얼굴 특징을 인식합니다.
TYPE_UNSPECIFIEDLEFT_EYERIGHT_EYELEFT_OF_LEFT_EYEBROWRIGHT_OF_LEFT_EYEBROWLEFT_OF_RIGHT_EYEBROWRIGHT_OF_RIGHT_EYEBROWMIDPOINT_BETWEEN_EYESNOSE_TIPUPPER_LIPLOWER_LIPMOUTH_LEFTMOUTH_RIGHTMOUTH_CENTERNOSE_BOTTOM_RIGHTNOSE_BOTTOM_LEFTNOSE_BOTTOM_CENTERLEFT_EYE_TOP_BOUNDARYLEFT_EYE_RIGHT_CORNERLEFT_EYE_BOTTOM_BOUNDARYLEFT_EYE_LEFT_CORNERRIGHT_EYE_TOP_BOUNDARYRIGHT_EYE_RIGHT_CORNERRIGHT_EYE_BOTTOM_BOUNDARYRIGHT_EYE_LEFT_CORNERLEFT_EYEBROW_UPPER_MIDPOINTRIGHT_EYEBROW_UPPER_MIDPOINTLEFT_EAR_TRAGIONRIGHT_EAR_TRAGIONLEFT_EYE_PUPILRIGHT_EYE_PUPILFOREHEAD_GLABELLACHIN_GNATHIONCHIN_LEFT_GONIONCHIN_RIGHT_GONIONLEFT_CHEEK_CENTERRIGHT_CHEEK_CENTER
Position
Position 객체는 얼굴 특징의 3D 좌표를 나타냅니다.
| 필드 | 유형 | 범위 | 설명 |
|---|---|---|---|
x |
number |
해당 사항 없음 | 수평 X 좌표입니다. |
y |
number |
해당 사항 없음 | 세로 Y 좌표입니다. |
z |
number |
해당 사항 없음 | 얼굴 평면을 기준으로 한 깊이 좌표입니다. 값이 작을수록 카메라에 더 가깝습니다. |
샘플 출력
{
"modelName": "face-detector",
"modelVersion": "v1",
"faceAnnotationGroup": {
"faceAnnotations": [
{
"boundingPoly": {
"vertices": [
{ "x": 1079, "y": 148 },
{ "x": 2152, "y": 148 },
{ "x": 2152, "y": 1396 },
{ "x": 1079, "y": 1396 }
],
"normalizedVertices": [
{ "x": 0.35, "y": 0.12 },
{ "x": 0.70, "y": 0.12 },
{ "x": 0.70, "y": 0.95 },
{ "x": 0.35, "y": 0.95 }
]
},
"faceDetectionBoundingPoly": {
"vertices": [
{ "x": 1190, "y": 427 },
{ "x": 2037, "y": 427 },
{ "x": 2037, "y": 1285 },
{ "x": 1190, "y": 1285 }
]
},
"landmarks": [
{
"type": "LEFT_EYE",
"position": { "x": 1368.8, "y": 737.6, "z": 0.0016 }
},
{
"type": "RIGHT_EYE",
"position": { "x": 1659.2, "y": 755.1, "z": -116.4 }
}
],
"rollAngle": 1.959,
"panAngle": -21.954,
"tiltAngle": -2.267,
"detectionConfidence": 0.98,
"landmarkingConfidence": 0.61,
"joyProbability": 0.18,
"headwearProbability": 0.80
}
]
}
}
객체 감지
object-detector 모델을 사용하여 이미지에서 여러 개의 고유한 객체를 감지하고 추적합니다. 식별된 각 객체에 대해 모델은 항목 이름, 지식 그래프 항목 ID (knowledgeGraphId), 신뢰도 점수, 경계 좌표를 제공합니다.
모델 세부정보
- 모델 이름:
object-detector - 컨텍스트 키:
google:annotation:object-detector-v1 - 사용 가능한 객체: 지원되는
Content-Type이(가)BMP,GIF,ICO,JPEG,PNG,TIFF또는WEBP인 20MiB 이하의 이미지 객체
출력 스키마
모델은 modelName, modelVersion, objectAnnotations 배열이 있는 objectAnnotationGroup가 포함된 JSON 객체를 출력합니다. 모델 실행이 실패하면 JSON 객체에 objectAnnotationGroup 대신 error 객체가 포함됩니다.
| 필드 | 유형 | 범위 | 설명 |
|---|---|---|---|
modelName |
string |
해당 사항 없음 | 이 보강을 생성한 머신러닝 모델의 이름입니다. |
modelVersion |
string |
해당 사항 없음 | 이 보강을 생성한 머신러닝 모델의 버전입니다. |
objectAnnotationGroup |
object |
해당 사항 없음 | 객체 감지 보강을 위한 최상위 컨테이너 객체입니다. 모델 실행이 성공하면 표시됩니다. |
objectAnnotationGroup.objectAnnotations[] |
array |
해당 사항 없음 | 이미지에서 감지된 객체 목록입니다. |
objectAnnotationGroup.objectAnnotations[].knowledgeGraphId |
string |
해당 사항 없음 | 인식된 객체의 Google 지식 그래프 항목 ID입니다. |
objectAnnotationGroup.objectAnnotations[].name |
string |
해당 사항 없음 | 감지된 객체의 이름 또는 라벨입니다(예: "Person" 또는 "Chair"). |
objectAnnotationGroup.objectAnnotations[].score |
number |
0~1 (0~100%) |
객체 감지의 신뢰도 점수입니다. |
objectAnnotationGroup.objectAnnotations[].boundingPoly |
object |
해당 사항 없음 | 객체 주변의 BoundingPoly로, 픽셀 좌표 (vertices)와 정규화된 좌표 (normalizedVertices)를 포함합니다. |
error |
object |
해당 사항 없음 | code 및 message를 포함하는 google.rpc.Status 객체 모델 실행이 실패한 경우에만 채워집니다. |
샘플 출력
{
"modelName": "object-detector",
"modelVersion": "v1",
"objectAnnotationGroup": {
"objectAnnotations": [
{
"knowledgeGraphId": "/m/01g317",
"name": "Person",
"score": 0.89,
"boundingPoly": {
"normalizedVertices": [
{ "x": 0.1, "y": 0.15 },
{ "x": 0.2, "y": 0.15 },
{ "x": 0.2, "y": 0.3 },
{ "x": 0.1, "y": 0.3 }
]
}
}
]
}
}
일반 이미지 라벨 지정
label-detector 모델을 사용하여 이미지에 대한 설명 라벨, 키워드, 광범위한 시맨틱 카테고리를 생성합니다. 모델은 Landscape, Urban, Night와 같은 일반적인 항목, 풍경, 활동, 위치를 식별하여 시각적 애셋을 검색 가능하고 카탈로그화할 수 있도록 합니다.
모델 세부정보
- 모델 이름:
label-detector - 컨텍스트 키:
google:annotation:label-detector-v1 - 적합한 객체: 지원되는
Content-Type가BMP,GIF,ICO,JPEG,PNG,TIFF또는WEBP인 20MiB 이하의 이미지 객체
출력 스키마
모델은 modelName, modelVersion, labelAnnotations 배열이 있는 labelAnnotationGroup가 포함된 JSON 객체를 출력합니다. 모델 실행이 실패하면 JSON 객체에 labelAnnotationGroup 대신 error 객체가 포함됩니다.
| 필드 | 유형 | 범위 | 설명 |
|---|---|---|---|
modelName |
string |
해당 사항 없음 | 이 보강을 생성한 머신러닝 모델의 이름입니다. |
modelVersion |
string |
해당 사항 없음 | 이 보강을 생성한 머신러닝 모델의 버전입니다. |
labelAnnotationGroup |
object |
해당 사항 없음 | 이미지 라벨 보강을 위한 최상위 컨테이너 객체입니다. 모델 실행이 성공한 경우 표시됩니다. |
labelAnnotationGroup.labelAnnotations[] |
array |
해당 사항 없음 | 감지된 라벨 및 카테고리 목록입니다. |
labelAnnotationGroup.labelAnnotations[].knowledgeGraphId |
string |
해당 사항 없음 | 라벨의 Google 지식 그래프 항목 ID입니다. |
labelAnnotationGroup.labelAnnotations[].description |
string |
해당 사항 없음 | 감지된 항목의 텍스트 설명 또는 라벨 이름입니다. |
labelAnnotationGroup.labelAnnotations[].score |
number |
0~1 (0~100%) |
라벨의 신뢰도 점수입니다. |
labelAnnotationGroup.labelAnnotations[].topicality |
number |
0~1 (0~100%) |
이미지의 기본 주제에 대한 라벨의 관련성입니다. 점수가 높을수록 더 눈에 띕니다. |
error |
object |
해당 사항 없음 | code 및 message를 포함하는 google.rpc.Status 객체 모델 실행이 실패한 경우에만 채워집니다. |
샘플 출력
{
"modelName": "label-detector",
"modelVersion": "v1",
"labelAnnotationGroup": {
"labelAnnotations": [
{
"knowledgeGraphId": "/m/01d74z",
"description": "Night",
"score": 0.92,
"topicality": 0.19
}
]
}
}
유해성 콘텐츠 감지
content-safety 모델을 사용하여 업로드된 이미지에서 민감하거나, 선정적이거나, 부적절한 콘텐츠를 검사합니다. 모델은 Google 안전 정책에 따라 이미지를 평가합니다. 성인용, 폭력적, 기타 민감한 자료의 가능성을 평가하여 콘텐츠 검토 워크플로를 자동화하는 데 도움이 됩니다.
모델 세부정보
- 모델 이름:
content-safety - 컨텍스트 키:
google:annotation:content-safety-v1 - 적합한 객체: 지원되는
Content-Type가BMP,GIF,ICO,JPEG,PNG,TIFF또는WEBP인 20MiB 이하의 이미지 객체
출력 스키마
모델은 modelName, modelVersion, 가능성 등급이 있는 contentSafetyAnnotation 객체가 포함된 JSON 객체를 출력합니다. 모델 실행이 실패하면 JSON 객체에 contentSafetyAnnotation 대신 error 객체가 포함됩니다.
| 필드 | 유형 | 값 / 범위 | 설명 |
|---|---|---|---|
modelName |
string |
해당 사항 없음 | 이 보강을 생성한 머신러닝 모델의 이름입니다. |
modelVersion |
string |
해당 사항 없음 | 이 보강을 생성한 머신러닝 모델의 버전입니다. |
contentSafetyAnnotation |
object |
해당 사항 없음 | 콘텐츠 분석 결과의 최상위 컨테이너 객체입니다. 모델 실행이 성공한 경우 표시됩니다. |
contentSafetyAnnotation.adultContentLikelihood |
string |
VERY_UNLIKELY, UNLIKELY, POSSIBLE, LIKELY, VERY_LIKELY |
이미지에 성인용 콘텐츠가 있을 가능성을 나타냅니다. |
contentSafetyAnnotation.violentContentLikelihood |
string |
VERY_UNLIKELY, UNLIKELY, POSSIBLE, LIKELY, VERY_LIKELY |
이미지가 폭력을 묘사할 가능성입니다. |
error |
object |
해당 사항 없음 | code 및 message를 포함하는 google.rpc.Status 객체 모델 실행이 실패한 경우에만 채워집니다. |
샘플 출력
{
"modelName": "content-safety",
"modelVersion": "v1",
"contentSafetyAnnotation": {
"adultContentLikelihood": "VERY_UNLIKELY",
"violentContentLikelihood": "UNLIKELY"
}
}
PDF 분류
pdf-classification 모델을 사용하여 텍스트 및 시각적 구조에 따라 PDF 문서를 자동으로 분류합니다. 이 모델은 비즈니스, 업계, 주제에 대해 표준화된 계층적 카테고리를 할당합니다. 이러한 카테고리를 사용하면 대규모 문서 컬렉션을 정리하고, 생성형 AI 검색을 그라운딩하고, 문서를 다운스트림 워크플로로 라우팅할 수 있습니다.
모델 세부정보
- 모델 이름:
pdf-classification - 컨텍스트 키:
google:annotation:pdf-classification-v1 - 적합한 객체:
Content-Type가application/pdf인 20MiB 이하의 PDF 문서 객체
출력 스키마
모델은 modelName, modelVersion, 분류된 categories 배열이 있는 pdfClassificationCategoryList가 포함된 JSON 객체를 출력합니다. 모델 실행이 실패하면 JSON 객체에 pdfClassificationCategoryList 대신 error 객체가 포함됩니다.
| 필드 | 유형 | 범위 | 설명 |
|---|---|---|---|
modelName |
string |
해당 사항 없음 | 이 보강을 생성한 머신러닝 모델의 이름입니다. |
modelVersion |
string |
해당 사항 없음 | 이 보강을 생성한 머신러닝 모델의 버전입니다. |
pdfClassificationCategoryList |
object |
해당 사항 없음 | PDF 분류 결과의 최상위 컨테이너 객체입니다. 모델 실행이 성공한 경우 표시됩니다. |
pdfClassificationCategoryList.categories[] |
array |
해당 사항 없음 | 감지된 분류 카테고리 목록입니다. |
pdfClassificationCategoryList.categories[].label |
string |
PDF 분류 카테고리를 참고하세요. | 계층적 카테고리 경로입니다(예: "/Finance/Accounting & Auditing/Tax Preparation & Planning"). |
pdfClassificationCategoryList.categories[].score |
number |
0~1 (0% ~100%) |
할당된 카테고리의 신뢰도 점수입니다. |
error |
object |
해당 사항 없음 | code 및 message를 포함하는 google.rpc.Status 객체 모델 실행이 실패한 경우에만 채워집니다. |
지원되는 카테고리
pdf-classification 모델은 표준화된 계층적 콘텐츠 카테고리를 PDF 문서에 할당합니다.
카테고리는 슬래시 (/)로 카테고리 깊이를 구분하여 계층적으로 구성됩니다. 광범위한 최상위 카테고리로 시작하여 구체적인 하위 카테고리로 좁혀집니다.
- 최상위 업종:
/Finance,/Law & Government,/Computers & Electronics과 같은 광범위한 주제 도메인입니다. - 하위 카테고리: 카테고리 내의 특정 주제(예:
/Finance/Accounting & Auditing/Tax Preparation & Planning)입니다. /Other하위 카테고리: 상위 카테고리와 일치하지만 특정 하위 카테고리에 속하지 않는 콘텐츠의 카테고리입니다.
문서에서 여러 개의 서로 다른 주제를 다루는 경우 모델은 하나의 PDF 객체에 신뢰도가 높은 여러 카테고리를 할당할 수 있습니다.
최상위 카테고리
모델은 PDF 문서를 27개의 최상위 카테고리로 분류합니다.
/Adult/Arts & Entertainment/Autos & Vehicles/Beauty & Fitness/Books & Literature/Business & Industrial/Computers & Electronics/Finance/Food & Drink/Games/Health/Hobbies & Leisure/Home & Garden/Internet & Telecom/Jobs & Education/Law & Government/News/Online Communities/People & Society/Pets & Animals/Real Estate/Reference/Science/Sensitive Subjects/Shopping/Sports/Travel & Transportation
하위 카테고리는 이러한 최상위 카테고리 아래에 계층적 경로 /Top-Level-Vertical/Subcategory를 따르며, 선택적으로 더 깊은 수준을 가질 수 있습니다. 지원되는 모든 카테고리 경로의 전체 목록은 PDF 분류 카테고리를 참고하세요.
샘플 출력
{
"modelName": "pdf-classification",
"modelVersion": "v1",
"pdfClassificationCategoryList": {
"categories": [
{
"label": "/Finance/Accounting & Auditing/Tax Preparation & Planning",
"score": 0.85
},
{
"label": "/Business & Industrial/Printing & Publishing/Document & Printing Services",
"score": 0.25
}
]
}
}