Model dan skema yang didukung

Saat mengonfigurasi pengayaan objek, Anda memilih model machine learning yang akan menganalisis objek yang disimpan. Setiap model mengevaluasi gambar atau dokumen PDF yang memenuhi syarat dan melampirkan metadata terstruktur langsung ke objek Cloud Storage Anda.

Halaman ini menjelaskan setiap model yang didukung, persyaratan kelayakannya, dan skema outputnya untuk membantu Anda mengurai dan membuat kueri metadata pengayaan di BigQuery atau melalui API.

Hubungan antara model dan pengayaan objek

Anda mengaktifkan model dengan membuat konfigurasi fitur (FeatureConfig) yang menentukan bucket yang akan dipindai dan model yang akan dijalankan. Selama pemrosesan asinkron, Cloud Storage mengevaluasi objek yang memenuhi syarat menggunakan model pilihan Anda dan menghasilkan metadata JSON terstruktur yang disebut pengayaan objek.

Setiap model menghasilkan payload JSON khusus yang dilampirkan Cloud Storage langsung ke objek sebagai konteks objek yang dikelola Google di properti contexts.custom. Kunci konteks unik yang diawali dengan google:annotation: mengidentifikasi setiap payload.

Bergantung pada alur kerja, Anda dapat menggunakan metadata ini dengan dua cara:

Deteksi wajah

Gunakan model face-detector untuk mendeteksi wajah manusia dalam gambar yang disimpan. Model ini mendeteksi poligon pembatas untuk seluruh kepala dan masing-masing wajah, serta menemukan 36 penanda wajah, seperti mata, hidung, dan mulut. API ini juga menghitung sudut orientasi kepala, seperti roll, pan, dan tilt, serta menilai kemungkinan ekspresi emosional.

Detail model

  • Nama model: face-detector
  • Kunci konteks: google:annotation:face-detector-v1
  • Objek yang memenuhi syarat: Objek gambar berukuran 20 MiB atau lebih kecil dengan Content-Type yang didukung, yaitu BMP, GIF, ICO, JPEG, PNG, TIFF, atau WEBP.

Skema output

Output model menampilkan objek JSON yang berisi modelName, modelVersion, dan faceAnnotationGroup dengan array faceAnnotations. Jika eksekusi model gagal, objek JSON berisi objek error, bukan faceAnnotationGroup.

Kolom Jenis Rentang Deskripsi
modelName string T/A Nama model machine learning yang menghasilkan pengayaan ini.
modelVersion string T/A Versi model machine learning yang menghasilkan pengayaan ini.
faceAnnotationGroup object T/A Objek container tingkat teratas untuk pengayaan deteksi wajah. Ada saat eksekusi model berhasil.
faceAnnotationGroup.faceAnnotations[] array T/A Daftar wajah yang terdeteksi dalam gambar.
faceAnnotationGroup.faceAnnotations[].boundingPoly object T/A BoundingPoly yang mengelilingi seluruh kepala dan wajah, yang disesuaikan dengan dimensi gambar asli.
faceAnnotationGroup.faceAnnotations[].faceDetectionBoundingPoly object T/A BoundingPoly untuk deteksi wajah. Lebih rapat daripada boundingPoly, hanya mencakup kulit dan fitur wajah yang terlihat.
faceAnnotationGroup.faceAnnotations[].landmarks[] array T/A Daftar objek FaceLandmark yang terdeteksi dan mewakili fitur wajah tertentu.
faceAnnotationGroup.faceAnnotations[].rollAngle number -180 ke 180 Rotasi wajah searah atau berlawanan arah jarum jam, dalam derajat.
faceAnnotationGroup.faceAnnotations[].panAngle number -180 ke 180 Sudut horizontal wajah yang mengarah ke kiri atau kanan, dalam derajat.
faceAnnotationGroup.faceAnnotations[].tiltAngle number -180 ke 180 Sudut kemiringan vertikal wajah yang mengarah ke atas atau ke bawah, dalam derajat.
faceAnnotationGroup.faceAnnotations[].detectionConfidence number 0 hingga 1 (0% hingga 100%) Skor keyakinan untuk deteksi wajah secara keseluruhan.
faceAnnotationGroup.faceAnnotations[].landmarkingConfidence number 0 hingga 1 (0% hingga 100%) Skor keyakinan untuk penempatan penanda wajah.
faceAnnotationGroup.faceAnnotations[].joyProbability number 0 hingga 1 (0% hingga 100%) Kemungkinan wajah mengekspresikan kegembiraan.
faceAnnotationGroup.faceAnnotations[].sorrowProbability number 0 hingga 1 (0% hingga 100%) Kemungkinan wajah tersebut menunjukkan kesedihan.
faceAnnotationGroup.faceAnnotations[].angerProbability number 0 hingga 1 (0% hingga 100%) Kemungkinan wajah mengekspresikan kemarahan.
faceAnnotationGroup.faceAnnotations[].surpriseProbability number 0 hingga 1 (0% hingga 100%) Kemungkinan wajah menunjukkan ekspresi terkejut.
faceAnnotationGroup.faceAnnotations[].underExposedProbability number 0 hingga 1 (0% hingga 100%) Kemungkinan wajah dalam gambar kurang terekspos.
faceAnnotationGroup.faceAnnotations[].blurredProbability number 0 hingga 1 (0% hingga 100%) Kemungkinan wajah dalam gambar diburamkan.
faceAnnotationGroup.faceAnnotations[].headwearProbability number 0 hingga 1 (0% hingga 100%) Kemungkinan orang tersebut mengenakan aksesori kepala, seperti topi atau peci.
error object T/A Objek google.rpc.Status yang berisi code dan message. Hanya diisi jika eksekusi model gagal.

BoundingPoly

Objek BoundingPoly mewakili poligon pembatas yang mencakup fitur gambar yang terdeteksi.

Kolom Jenis Rentang Deskripsi
vertices[] array T/A Koordinat poligon pembatas menggunakan objek Vertex piksel absolut.
normalizedVertices[] array T/A Koordinat poligon pembatas menggunakan objek NormalizedVertex relatif, yang diskalakan dari 0 hingga 1.

Vertex

Objek Vertex mewakili titik koordinat 2D yang diskalakan ke dimensi gambar asli.

Kolom Jenis Rentang Deskripsi
x integer 0 atau lebih tinggi Koordinat X horizontal, dalam piksel dari tepi kiri.
y integer 0 atau lebih besar Koordinat Y vertikal, dalam piksel dari tepi atas.

NormalizedVertex

Objek NormalizedVertex mewakili titik koordinat 2D yang dinyatakan sebagai rasio relatif terhadap dimensi gambar asli.

Kolom Jenis Rentang Deskripsi
x number 0 ke 1 Koordinat X horizontal relatif terhadap lebar gambar, dengan 0.0 adalah tepi kiri dan 1.0 adalah tepi kanan.
y number 0 ke 1 Koordinat Y vertikal relatif terhadap tinggi gambar, dengan 0.0 adalah tepi atas dan 1.0 adalah tepi bawah.

FaceLandmark

Objek FaceLandmark mewakili penanda wajah tertentu yang terdeteksi dalam wajah.

Kolom Jenis Rentang Deskripsi
type enum Lihat Jenis penanda Penanda wajah tertentu yang terdeteksi.
position object T/A Position 3D tempat terkenal.

Jenis penanda

Model ini mengenali 36 penanda wajah tertentu:

  • 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

Posisi

Objek Position merepresentasikan koordinat 3D penanda wajah.

Kolom Jenis Rentang Deskripsi
x number T/A Koordinat X horizontal.
y number T/A Koordinat Y vertikal.
z number T/A Koordinat kedalaman relatif terhadap bidang wajah, dengan nilai yang lebih kecil lebih dekat ke kamera.

Contoh output

{
  "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
      }
    ]
  }
}

Deteksi objek

Gunakan model object-detector untuk mendeteksi dan melacak beberapa objek yang berbeda dalam gambar. Untuk setiap objek yang diidentifikasi, model memberikan nama entity, ID entity Pustaka Pengetahuan (knowledgeGraphId), skor keyakinan, dan koordinat pembatas.

Detail model

  • Nama model: object-detector
  • Kunci konteks: google:annotation:object-detector-v1
  • Objek yang memenuhi syarat: Objek gambar berukuran 20 MiB atau lebih kecil dengan Content-Type yang didukung, yaitu BMP, GIF, ICO, JPEG, PNG, TIFF, atau WEBP.

Skema output

Model ini menghasilkan objek JSON yang berisi modelName, modelVersion, dan objectAnnotationGroup dengan array objectAnnotations. Jika eksekusi model gagal, objek JSON berisi objek error, bukan objectAnnotationGroup.

Kolom Jenis Rentang Deskripsi
modelName string T/A Nama model machine learning yang menghasilkan pengayaan ini.
modelVersion string T/A Versi model machine learning yang menghasilkan pengayaan ini.
objectAnnotationGroup object T/A Objek penampung tingkat teratas untuk pengayaan deteksi objek. Hadir saat eksekusi model berhasil.
objectAnnotationGroup.objectAnnotations[] array T/A Daftar objek yang terdeteksi dalam gambar.
objectAnnotationGroup.objectAnnotations[].knowledgeGraphId string T/A ID entitas Pustaka Pengetahuan Google untuk objek yang terdeteksi.
objectAnnotationGroup.objectAnnotations[].name string T/A Nama atau label objek yang terdeteksi, seperti "Person" atau "Chair".
objectAnnotationGroup.objectAnnotations[].score number 0 hingga 1 (0% hingga 100%) Skor keyakinan untuk deteksi objek.
objectAnnotationGroup.objectAnnotations[].boundingPoly object T/A BoundingPoly di sekitar objek, yang berisi koordinat piksel (vertices) dan koordinat yang dinormalisasi (normalizedVertices).
error object T/A Objek google.rpc.Status yang berisi code dan message. Hanya diisi saat eksekusi model gagal.

Contoh output

{
  "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 }
          ]
        }
      }
    ]
  }
}

Pelabelan gambar umum

Gunakan model label-detector untuk membuat label deskriptif, kata kunci, dan kategori semantik yang luas untuk gambar. Model ini mengidentifikasi entitas umum, pemandangan, aktivitas, dan lokasi, seperti Landscape, Urban, atau Night, sehingga aset visual Anda dapat ditelusuri dan dikatalogkan.

Detail model

  • Nama model: label-detector
  • Kunci konteks: google:annotation:label-detector-v1
  • Objek yang memenuhi syarat: Objek gambar berukuran 20 MiB atau lebih kecil dengan Content-Type yang didukung, yaitu BMP, GIF, ICO, JPEG, PNG, TIFF, atau WEBP.

Skema output

Output model menghasilkan objek JSON yang berisi modelName, modelVersion, dan labelAnnotationGroup dengan array labelAnnotations. Jika eksekusi model gagal, objek JSON berisi objek error, bukan labelAnnotationGroup.

Kolom Jenis Rentang Deskripsi
modelName string T/A Nama model machine learning yang menghasilkan pengayaan ini.
modelVersion string T/A Versi model machine learning yang menghasilkan pengayaan ini.
labelAnnotationGroup object T/A Objek container level teratas untuk pengayaan label gambar. Hadir saat eksekusi model berhasil.
labelAnnotationGroup.labelAnnotations[] array T/A Daftar label dan kategori yang terdeteksi.
labelAnnotationGroup.labelAnnotations[].knowledgeGraphId string T/A ID entitas Pustaka Pengetahuan Google untuk label.
labelAnnotationGroup.labelAnnotations[].description string T/A Deskripsi tekstual atau nama label untuk entity yang terdeteksi.
labelAnnotationGroup.labelAnnotations[].score number 0 hingga 1 (0% hingga 100%) Skor keyakinan untuk label.
labelAnnotationGroup.labelAnnotations[].topicality number 0 hingga 1 (0% hingga 100%) Relevansi label dengan subjek utama gambar, dengan skor yang lebih tinggi menunjukkan keunggulan yang lebih besar.
error object T/A Objek google.rpc.Status yang berisi code dan message. Hanya diisi saat eksekusi model gagal.

Contoh output

{
  "modelName": "label-detector",
  "modelVersion": "v1",
  "labelAnnotationGroup": {
    "labelAnnotations": [
      {
        "knowledgeGraphId": "/m/01d74z",
        "description": "Night",
        "score": 0.92,
        "topicality": 0.19
      }
    ]
  }
}

Deteksi konten vulgar

Gunakan model content-safety untuk menyaring gambar yang diupload guna mendeteksi konten sensitif, vulgar, atau tidak pantas. Model mengevaluasi gambar berdasarkan kebijakan keamanan Google. API ini menilai kemungkinan adanya materi dewasa, kekerasan, dan materi sensitif lainnya untuk membantu Anda mengotomatiskan alur kerja moderasi konten.

Detail model

  • Nama model: content-safety
  • Kunci konteks: google:annotation:content-safety-v1
  • Objek yang memenuhi syarat: Objek gambar berukuran 20 MiB atau lebih kecil dengan Content-Type yang didukung, yaitu BMP, GIF, ICO, JPEG, PNG, TIFF, atau WEBP.

Skema output

Output model menghasilkan objek JSON yang berisi modelName, modelVersion, dan objek contentSafetyAnnotation dengan rating kemungkinan. Jika eksekusi model gagal, objek JSON berisi objek error, bukan contentSafetyAnnotation.

Kolom Jenis Nilai / Rentang Deskripsi
modelName string T/A Nama model machine learning yang menghasilkan pengayaan ini.
modelVersion string T/A Versi model machine learning yang menghasilkan pengayaan ini.
contentSafetyAnnotation object T/A Objek penampung tingkat teratas untuk hasil analisis konten. Ada saat eksekusi model berhasil.
contentSafetyAnnotation.adultContentLikelihood string VERY_UNLIKELY, UNLIKELY, POSSIBLE, LIKELY, VERY_LIKELY Kemungkinan gambar berisi konten khusus dewasa.
contentSafetyAnnotation.violentContentLikelihood string VERY_UNLIKELY, UNLIKELY, POSSIBLE, LIKELY, VERY_LIKELY Kemungkinan gambar menggambarkan kekerasan.
error object T/A Objek google.rpc.Status yang berisi code dan message. Hanya diisi saat eksekusi model gagal.

Contoh output

{
  "modelName": "content-safety",
  "modelVersion": "v1",
  "contentSafetyAnnotation": {
    "adultContentLikelihood": "VERY_UNLIKELY",
    "violentContentLikelihood": "UNLIKELY"
  }
}

Klasifikasi PDF

Gunakan model pdf-classification untuk mengategorikan dokumen PDF secara otomatis berdasarkan struktur tekstual dan visualnya. Model ini menetapkan kategori hierarkis standar untuk bisnis, industri, dan topik. Kategori ini membantu Anda mengatur koleksi dokumen besar, mendasari pengambilan AI generatif, dan merutekan dokumen ke alur kerja downstream.

Detail model

  • Nama model: pdf-classification
  • Kunci konteks: google:annotation:pdf-classification-v1
  • Objek yang memenuhi syarat: Objek dokumen PDF berukuran 20 MiB atau lebih kecil dengan Content-Type application/pdf.

Skema output

Output model menghasilkan objek JSON yang berisi modelName, modelVersion, dan pdfClassificationCategoryList dengan array categories yang diklasifikasikan. Jika eksekusi model gagal, objek JSON berisi objek error, bukan pdfClassificationCategoryList.

Kolom Jenis Rentang Deskripsi
modelName string T/A Nama model machine learning yang menghasilkan pengayaan ini.
modelVersion string T/A Versi model machine learning yang menghasilkan pengayaan ini.
pdfClassificationCategoryList object T/A Objek container tingkat atas untuk hasil klasifikasi PDF. Ada saat eksekusi model berhasil.
pdfClassificationCategoryList.categories[] array T/A Daftar kategori klasifikasi yang terdeteksi.
pdfClassificationCategoryList.categories[].label string Lihat kategori klasifikasi PDF Jalur kategori hierarkis, seperti "/Finance/Accounting & Auditing/Tax Preparation & Planning".
pdfClassificationCategoryList.categories[].score number 0 hingga 1 (0% hingga 100%) Skor keyakinan untuk kategori yang ditetapkan.
error object T/A Objek google.rpc.Status yang berisi code dan message. Hanya diisi saat eksekusi model gagal.

Kategori yang didukung

Model pdf-classification menetapkan kategori konten hierarkis standar ke dokumen PDF.

Kategori disusun secara hierarkis dengan garis miring (/) yang memisahkan kedalaman kategori. Kategori ini dimulai dengan kategori vertikal tingkat atas yang luas dan dipersempit ke subkategori tertentu:

  • Top-level verticals: Domain subjek yang luas, seperti /Finance, /Law & Government, atau /Computers & Electronics.
  • Subkategori: Subjek tertentu dalam bidang, seperti /Finance/Accounting & Auditing/Tax Preparation & Planning.
  • Subkategori /Other: Kategori untuk konten yang sesuai dengan kategori induk, tetapi tidak sesuai dengan subkategori anak tertentu.

Jika dokumen membahas beberapa topik yang berbeda, model dapat menetapkan beberapa kategori dengan keyakinan tinggi ke satu objek PDF.

Kategori tingkat atas

Model ini mengklasifikasikan dokumen PDF ke dalam 27 kategori tingkat teratas:

  • /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

Subkategori mengikuti jalur hierarkis /Top-Level-Vertical/Subcategory, dengan tingkat yang lebih dalam opsional, di bawah kategori tingkat atas ini. Untuk daftar lengkap semua jalur kategori yang didukung, lihat Kategori klasifikasi PDF.

Contoh output

{
  "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
      }
    ]
  }
}

Langkah berikutnya