Cloud Vision API adalah REST API yang menggunakan operasi POST HTTP untuk menjalankan analisis data pada gambar yang Anda kirim dalam permintaan. API ini menggunakan JSON untuk permintaan dan respons.
Ringkasan
- Permintaan adalah permintaan POST ke
https://vision.googleapis.com/v1/images:annotate
. - Anda harus mengautentikasi permintaan Anda.
- Isi permintaan akan terlihat seperti ini. Responsnya terlihat seperti ini, tetapi kolomnya akan bervariasi tergantung jenis anotasi yang Anda lakukan.
- Berikut cara mengirim permintaan dengan cURL.
- Ada juga library klien.
- Mencari demo singkat? Cukup tarik lalu lepas!
Endpoint
Vision API terdiri dari satu endpoint
(https://vision.googleapis.com/v1/images
) yang mendukung satu metode permintaan
HTTP (annotate
):
POST https://vision.googleapis.com/v1/images:annotate
Autentikasi
Permintaan POST harus melakukan autentikasi dengan meneruskan kunci API atau token OAuth. Untuk mengetahui detailnya, lihat halaman Autentikasi.
Format permintaan JSON
Isi permintaan POST Anda berisi objek JSON, yang berisi satu daftar
requests
atau beberapa jenis objek
AnnotateImageRequest
:
{
"requests":[
{
"image":{
"content":"/9j/7QBEUGhvdG9...image contents...eYxxxzj/Coa6Bax//Z"
},
"features":[
{
"type":"LABEL_DETECTION",
"maxResults":1
}
]
}
]
}
Setiap permintaan:
- Harus berisi daftar
requests
.
Dalam daftar requests
:
image
menentukan file gambar. Gambar dapat dikirim sebagai string berenkode base64, lokasi file Cloud Storage, atau sebagai URL yang dapat diakses publik. Lihat Menyediakan gambar untuk mengetahui detailnya.features
mencantumkan jenis anotasi yang akan dijalankan pada gambar. Anda dapat menentukan satu atau beberapa jenis, sertamaxResults
yang akan ditampilkan untuk setiap jenis.imageContext
(tidak ditampilkan dalam contoh di atas) menentukan petunjuk ke layanan untuk membantu anotasi: kotak pembatas, bahasa, dan petunjuk pangkas petunjuk crop.
Menyediakan gambar
Anda dapat memberikan gambar dalam permintaan dengan salah satu dari tiga cara berikut:
Sebagai string gambar dikodekan base64. Jika gambar disimpan secara lokal, Anda dapat mengonversinya ke string dan meneruskannya sebagai nilai
image.content
:{ "requests":[ { "image":{ "content":"/9j/7QBEUGhvdG9zaG9...image contents...fXNWzvDEeYxxxzj/Coa6Bax//Z" }, "features":[ { "type":"FACE_DETECTION", "maxResults":10 } ] } ] }
Lihat dikodekan Base64 untuk petunjuk tentang encoding di berbagai platform.
Sebagai URI Cloud Storage. Teruskan URI penuh sebagai nilai
image.source.imageUri
:{ "requests":[ { "image":{ "source":{ "imageUri": "gs://bucket_name/path_to_image_object" } }, "features":[ { "type":"LABEL_DETECTION", "maxResults":1 } ] } ] }
File di Cloud Storage harus dapat diakses oleh metode autentikasi yang Anda gunakan. Jika Anda menggunakan kunci API, file harus dapat diakses oleh publik. Jika Anda menggunakan akun layanan, file tersebut harus dapat diakses oleh pengguna yang membuat akun layanan.
Sebagai URL HTTP atau HTTPS yang dapat diakses secara publik. Teruskan URL sebagai nilai
image.source.imageUri
:{ "requests":[ { "image":{ "source":{ "imageUri": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png" } }, "features":[ { "type":"LOGO_DETECTION", "maxResults":1 } ] } ] }
Saat mengambil gambar dari URL HTTP/HTTPS, Google tidak dapat menjamin bahwa permintaan akan diselesaikan. Permintaan Anda mungkin gagal jika host yang ditentukan menolak permintaan tersebut (misalnya karena throttling permintaan atau pencegahan DoS), atau jika Google men-throttle permintaan ke situs untuk mencegah penyalahgunaan. Sebagai praktik terbaik, jangan bergantung pada gambar yang dihosting secara eksternal untuk aplikasi produksi.
Format respons JSON
Permintaan annotate
menerima jenis respons JSON AnnotateImageResponse
.
Meskipun permintaan untuk setiap jenis fitur serupa, respons untuk
setiap jenis fitur bisa sangat berbeda. Konsultasikan
Referensi Vision API
untuk mengetahui informasi selengkapnya.
Kode di bawah menunjukkan contoh respons deteksi label untuk foto yang ditunjukkan di bawah ini:
{ "responses": [ { "labelAnnotations": [ { "mid": "/m/0bt9lr", "description": "dog", "score": 0.97346616 }, { "mid": "/m/09686", "description": "vertebrate", "score": 0.85700572 }, { "mid": "/m/01pm38", "description": "clumber spaniel", "score": 0.84881884 }, { "mid": "/m/04rky", "description": "mammal", "score": 0.847575 }, { "mid": "/m/02wbgd", "description": "english cocker spaniel", "score": 0.75829375 } ] } ] }
Library klien
Google menyediakan library klien dalam sejumlah bahasa pemrograman untuk menyederhanakan proses pembuatan dan permintaan pengiriman, serta mengurai respons.
Lihat Library klien untuk petunjuk penginstalan dan penggunaan.