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:
- Memeriksa objek individual: Ambil pengayaan untuk objek tertentu
dengan menggunakan API objek, seperti
viewFullContextmetode (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 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_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 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-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 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-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 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-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 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-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 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
- Baca tentang pengayaan objek.
- Mengonfigurasi pengayaan objek.
- Mengelola pengayaan objek.
- Menganalisis pengayaan objek di BigQuery.
- Tinjau resource JSON API
featureConfigs. - Memecahkan masalah pengayaan objek.