Cara menggunakan Google Vision API

Baru-baru ini, saya membahas bagaimana komputer dapat melihat, mendengar, merasakan, mencium, dan mengecap. Salah satu cara kode Anda dapat "melihat" adalah dengan Google Vision API. Google Vision API menghubungkan kode Anda dengan kemampuan pengenalan gambar Google. Anda dapat menganggap Penelusuran Gambar Google sebagai semacam antarmuka API / REST untuk images.google.com, tetapi ini lebih dari sekadar menampilkan gambar serupa.

Google Vision dapat mendeteksi apakah Anda kucing atau manusia, serta bagian wajah Anda. Ini mencoba mendeteksi apakah Anda berpose atau melakukan sesuatu yang tidak akan baik-baik saja untuk Penelusuran Aman Google — atau tidak. Ia bahkan mencoba mendeteksi apakah Anda bahagia atau sedih.

Menyiapkan Google Vision API

Untuk menggunakan Google Vision API, Anda harus mendaftar ke Akun Google Compute Engine. GCE gratis untuk dicoba, tetapi Anda memerlukan kartu kredit untuk mendaftar. Dari sana Anda memilih proyek (tetapi Proyek Pertama Saya dipilih jika Anda baru saja mendaftar). Kemudian dapatkan kunci API untuk diri Anda sendiri dari menu kiri.

Di sini, saya menggunakan kunci API sederhana yang dapat saya gunakan dengan alat baris perintah Curl (jika Anda mau, Anda dapat menggunakan alat lain yang dapat memanggil REST API):

Simpan kunci yang dihasilkannya ke file teks atau buffer di suatu tempat (saya menyebutnya YOUR_KEYuntuk saat ini) dan aktifkan API pada proyek Anda (buka URL ini dan klik Aktifkan API):

Pilih proyek Anda dari layar berikutnya:

Sekarang Anda siap berangkat! Tempelkan teks ini dalam file bernama google_vision.json:

{"request": [{"image": {"source": {"imageUri": "//upload.wikimedia.org/wikipedia/commons/9/9b/Gustav_chocolate.jpg"}}, "features": [ {"type": "TYPE_UNSPECIFIED", "maxResults": 50}, {"type": "LANDMARK_DETECTION", "maxResults": 50}, {"type": "FACE_DETECTION", "maxResults": 50}, {" ketik ":" LOGO_DETECTION "," maxResults ": 50}, {" type ":" LABEL_DETECTION "," maxResults ": 50}, {" type ":" TEXT_DETECTION ","maxResults": 50}, {"type": "SAFE_SEARCH_DETECTION", "maxResults": 50}, {"type": "IMAGE_PROPERTIES", "maxResults": 50}, {"type": "CROP_HINTS", "maxResults ": 50}, {" type ":" WEB_DETECTION "," maxResults ": 50}]}]}{"type": "WEB_DETECTION", "maxResults": 50}]}]}{"type": "WEB_DETECTION", "maxResults": 50}]}]}

Permintaan JSON ini memberi tahu Google Vision API gambar mana yang akan diurai dan fitur pendeteksian mana yang harus diaktifkan. Saya hanya melakukan sebagian besar hingga 50 hasil.

Sekarang gunakan Curl:

curl -v -s -H "Content-Type: application / json" //vision.googleapis.com/v1/images:annotate?key=YOUR_KEY --data-binary @ google_vision.json> hasil 

Melihat tanggapan Google Vision API

* Tersambung ke vision.googleapis.com (74.125.196.95) port 443 (# 0) * Sambungan TLS 1.2 menggunakan TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 * Sertifikat server: * .googleapis.com * Sertifikat server: Otoritas Internet Google G3 * Sertifikat server: GlobalSign> POST / v1 / images: annotate? key = YOUR_KEY HTTP / 1.1> Host: vision.googleapis.com> User-Agent: curl / 7.43.0> Terima: * / *> Jenis Konten: application / json> Panjang Konten: 2252 > Harapkan: 100-lanjutkan> * Selesai menunggu 100-lanjutkan} [2252 byte data] * Kami telah sepenuhnya diunggah dan baik-baik saja <HTTP / 1.1 200 OK <Content-Type: application / json; charset = UTF-8 <Vary: X-Origin <Vary: Referer <Tanggal: Sel, 24 Apr 2018 18:26:10 GMT <Server: ESF <Cache-Control: private <X-XSS-Protection: 1; mode = blok <X-Frame-Options: SAMEORIGIN <X-Content-Type-Options: nosniff <Alt-Svc: hq = ": 443"; ma = 2592000; quic = 51303433; quic = 51303432; quic = 51303431; quic = 51303339; quic = 51303335, quic = ": 443"; ma = 2592000; v = "43,42,41,39,35" <Accept-Ranges: none <Vary: Origin, Accept-Encoding <Transfer-Encoding: chunked <{[905 bytes data] * Sambungan # 0 ke host vision.googleapis. com dibiarkan utuh

Anda akan melihat sesuatu seperti ini:

Jika Anda melihat hasilnya, Anda akan melihat ini:

{"tanggapan": [{"labelAnnotations": [{"mid": "/ m / 01yrx", "description": "cat", "score": 0.99524164, "topicality": 0.99524164}, {"mid": "/ m / 035qhg", "description": "fauna", "score": 0.93651986, "topicality": 0.93651986}, {"mid": "/ m / 04rky", "description": "mamalia", "skor ": 0.92701304," topikalitas ": 0.92701304}, {" mid ":" / m / 07k6w8 "," description ":" kucing berukuran kecil hingga sedang "," skor ": 0,92587274," topikalitas ": 0.92587274}, {" pertengahan ":" / m / 0307l ","description ":" kucing seperti mamalia "," skor ": 0.9215815," topikalitas ": 0.9215815}, {" mid ":" / m / 09686 "," description ":" vertebrata "," score ": 0.90370363," topikalitas ": 0.90370363}, {" mid ":" / m / 01l7qd "," description ":" whiskers "," score ": 0.86890864," topicality ": 0.86890864…description ":" whiskers "," score ": 0.86890864," topikalitas ": 0.86890864…description ":" whiskers "," score ": 0.86890864," topikalitas ": 0.86890864…

Google tahu Anda memberinya gambar kucing. Ia bahkan menemukan kumisnya!

Sekarang, saya akan mencoba mamalia yang lebih besar. Ganti URL dalam permintaan dengan gambar profil Twitter saya dan jalankan lagi. Itu memiliki foto saya dicium oleh gajah dalam perjalanan saya tahun 2014 ke Thailand.

Hasilnya akan mencakup lokasi fitur wajah saya.

… "Landmark": [{"type": "LEFT_EYE", "position": {"x": 114.420876, "y": 252.82072, "z": -0.00017215312}}, {"type": "RIGHT_EYE", "position": {"x": 193.82027, "y": 259.787, "z": -4.495486}}, {"type": "LEFT_OF_LEFT_EYEBROW", "position": {"x": 95.38249, "y": 234.60289, "z": 11.487803}},…

Google tidak begitu hebat dalam menilai emosi seperti fitur wajah:

"rollAngle": 5.7688847, "panAngle": -3.3820703, "joyLikelihood": "UNLIKELY", "sorrowLikelihood": "VERY_UNLIKELY", "angryLikelihood": "UNLIKELY", "surpriseLikelihood": "VERY_UNLIKELY": "VERY_UNLIKELY" SANGAT_UNLIKELY "," blurredLikelihood ":" VERY_UNLIKELY "," headwearLikelihood ":" VERY_UNLIKELY "

Saya pasti kaget, karena saya tidak menyangka ciuman itu (saya hanya bertujuan untuk selfie dengan gajah). Gambar tersebut mungkin menunjukkan sedikit kegembiraan yang dikombinasikan dengan "yuck" karena ciuman moncong gajah itu berantakan dan sedikit berlendir.

Google Vision juga memperhatikan beberapa hal lain tentang gambar dan saya:

{"mid": "/ m / 0jyfg", "description": "glasses", "score": 0.7390568, "topicality": 0.7390568}, {"mid": "/ m / 08g_yr", "description": " temple "," score ": 0.7100323," topicality ": 0.7100323}, {" mid ":" / m / 05mqq3 "," description ":" moncong "," score ": 0.65698373," topicality ": 0.65698373}, { "mid": "/ m / 07j7r", "description": "tree", "score": 0.6460454, "topicality": 0.6460454}, {"mid": "/ m / 019nj4", "description": "smile "," score ": 0.60378826," topicality ": 0.60378826}, {" mid ":" / m / 01j3sz "," description ":" laughter ","skor": 0,51390797, "topikalitas": 0,51390797}]…

Google mengenali moncong gajah! Ia juga memperhatikan bahwa saya tersenyum dan saya tertawa. Perhatikan bahwa skor yang lebih rendah menunjukkan kepercayaan diri yang lebih rendah, tetapi ada baiknya Google Vision API memperhatikan.

… "SafeSearchAnnotation": {"adult": "VERY_UNLIKELY", "spoof": "MUNGKIN", "medis": "SANGAT_UNLIKELY", "kekerasan": "UNLIKELY", "racy": "UNLIKELY"}…

Google tidak percaya bahwa ini lebih dari sekedar ciuman platonis dan menyadari bahwa saya tidak disakiti oleh gajah.

Selain itu, Anda akan menemukan hal-hal seperti gambar yang cocok dan gambar serupa dalam tanggapannya. Anda juga akan menemukan asosiasi topik. Misalnya, saya tweet sekali tentang artikel "Xennial", dan sekarang saya terkait dengannya!

Bagaimana kegunaan Google Vision API?

Apakah Anda bekerja di bidang keamanan atau ritel, mampu mencari tahu apa itu sesuatu dari sebuah gambar dapat sangat membantu. Baik Anda mencoba mencari tahu ras kucing apa yang Anda miliki atau siapa pelanggan ini, atau apakah menurut Google seorang kolumnis berpengaruh dalam suatu topik, Google Vision API dapat membantu. Perhatikan bahwa persyaratan Google hanya mengizinkan API ini digunakan dalam aplikasi komputasi pribadi. Masih apakah Anda menyukai data dalam aplikasi pencarian atau memeriksa apakah konten yang dikirim pengguna itu cabul atau tidak, Google Vision mungkin yang Anda butuhkan.

Saat saya menggunakan versi API yang menggunakan URI publik, Anda juga dapat memposting lokasi file biner mentah atau Google Cloud Storage menggunakan permutasi yang berbeda.

Catatan penulis: Terima kasih kepada kolega saya di Lucidworks, Roy Kiesler , yang penelitiannya berkontribusi pada artikel ini.