지원되는 모델 및 스키마

객체 보강을 구성할 때 저장된 객체를 분석할 머신러닝 모델을 선택합니다. 각 모델은 적합한 이미지 또는 PDF 문서를 평가하고 구조화된 메타데이터를 Cloud Storage 객체에 직접 연결합니다.

이 페이지에서는 지원되는 각 모델, 자격 요건, 출력 스키마를 설명하여 BigQuery 또는 API를 통해 보강 메타데이터를 파싱하고 쿼리하는 데 도움을 줍니다.

모델과 객체 보강 간의 관계

스캔할 버킷과 실행할 모델을 지정하는 기능 구성(FeatureConfig)을 만들어 모델을 활성화합니다. 비동기 처리 중에 Cloud Storage는 선택한 모델을 사용하여 적합한 객체를 평가하고 객체 보강이라는 구조화된 JSON 메타데이터를 생성합니다.

각 모델은 Cloud Storage가 contexts.custom 속성 아래에 Google 관리 객체 컨텍스트로 객체에 직접 연결하는 전용 JSON 페이로드를 생성합니다. google:annotation: 프리픽스가 붙은 고유한 컨텍스트 키는 각 페이로드를 식별합니다.

워크플로에 따라 이 메타데이터를 두 가지 방법으로 사용할 수 있습니다.

얼굴 인식

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_UNSPECIFIED
  • LEFT_EYE
  • RIGHT_EYE
  • LEFT_OF_LEFT_EYEBROW
  • RIGHT_OF_LEFT_EYEBROW
  • LEFT_OF_RIGHT_EYEBROW
  • RIGHT_OF_RIGHT_EYEBROW
  • MIDPOINT_BETWEEN_EYES
  • NOSE_TIP
  • UPPER_LIP
  • LOWER_LIP
  • MOUTH_LEFT
  • MOUTH_RIGHT
  • MOUTH_CENTER
  • NOSE_BOTTOM_RIGHT
  • NOSE_BOTTOM_LEFT
  • NOSE_BOTTOM_CENTER
  • LEFT_EYE_TOP_BOUNDARY
  • LEFT_EYE_RIGHT_CORNER
  • LEFT_EYE_BOTTOM_BOUNDARY
  • LEFT_EYE_LEFT_CORNER
  • RIGHT_EYE_TOP_BOUNDARY
  • RIGHT_EYE_RIGHT_CORNER
  • RIGHT_EYE_BOTTOM_BOUNDARY
  • RIGHT_EYE_LEFT_CORNER
  • LEFT_EYEBROW_UPPER_MIDPOINT
  • RIGHT_EYEBROW_UPPER_MIDPOINT
  • LEFT_EAR_TRAGION
  • RIGHT_EAR_TRAGION
  • LEFT_EYE_PUPIL
  • RIGHT_EYE_PUPIL
  • FOREHEAD_GLABELLA
  • CHIN_GNATHION
  • CHIN_LEFT_GONION
  • CHIN_RIGHT_GONION
  • LEFT_CHEEK_CENTER
  • RIGHT_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
      }
    ]
  }
}

다음 단계