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 mengkueri 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 yang Anda pilih
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:
- Memeriksa objek satu per satu: Ambil pengayaan untuk objek tertentu
menggunakan API objek, seperti metode
viewFullContext(Pratinjau). - Menganalisis dalam skala besar: Buat kueri metadata yang diperkaya di semua objek dalam bucket menggunakan set data Insight Penyimpanan dan SQL standar di BigQuery.
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-Typeyang didukung, yaituBMP,GIF,ICO,JPEG,PNG,TIFF, atauWEBP.
Skema output
Output model menghasilkan objek JSON yang berisi modelName, modelVersion, dan faceAnnotationGroup dengan array faceAnnotations. Jika eksekusi model gagal, objek JSON akan 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 mencakup seluruh kepala dan wajah, diskalakan ke 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 yang 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 mengekspresikan 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 mengekspresikan keterkejutan. |
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 saat 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, 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 tinggi |
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 yang relatif terhadap lebar gambar, dengan 0.0 adalah tepi kiri dan 1.0 adalah tepi kanan. |
y |
number |
0 ke 1 |
Koordinat Y vertikal yang 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 tempat terkenal
Model ini mengenali 36 penanda wajah tertentu:
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
Posisi
Objek Position mewakili 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-Typeyang didukung, yaituBMP,GIF,ICO,JPEG,PNG,TIFF, atauWEBP.
Skema output
Model ini menghasilkan objek JSON yang berisi modelName, modelVersion, dan
objectAnnotationGroup dengan array objectAnnotations. Jika eksekusi model gagal, objek JSON akan 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 container level teratas untuk pengayaan deteksi objek. Ada 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-Typeyang didukung, yaituBMP,GIF,ICO,JPEG,PNG,TIFF, atauWEBP.
Skema output
Output model menghasilkan objek JSON yang berisi modelName, modelVersion, dan labelAnnotationGroup dengan array labelAnnotations. Jika eksekusi model gagal, objek JSON akan 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. Ada 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 ini mengevaluasi gambar berdasarkan kebijakan keamanan Google. Fitur ini menilai kemungkinan adanya materi khusus 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-Typeyang didukung, yaituBMP,GIF,ICO,JPEG,PNG,TIFF, atauWEBP.
Skema output
Output model menghasilkan objek JSON yang berisi modelName, modelVersion, dan objek contentSafetyAnnotation dengan rating kemungkinan. Jika eksekusi model gagal, objek JSON akan 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 container tingkat atas 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 yang besar, melakukan grounding pada pengambilan AI generatif,
dan mengarahkan 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-Typeapplication/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 akan 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 kategori, seperti
/Finance/Accounting & Auditing/Tax Preparation & Planning. - Subkategori
/Other: Kategori untuk konten yang sesuai dengan kategori induk, tetapi tidak cocok dengan subkategori turunan 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 teratas ini. Untuk mengetahui 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
- Baca tentang pengayaan objek.
- Mengonfigurasi pengayaan objek.
- Mengelola pengayaan objek.
- Menganalisis pengayaan objek di BigQuery.
- Tinjau resource JSON API
featureConfigs. - Memecahkan masalah pengayaan objek.