Membuat permintaan Vision API

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

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, serta maxResults 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.