Corso
È passato un bel po’ di tempo da quando Google ha rilasciato un’API dedicata chiamata Vision API per svolgere compiti legati alla computer vision. La computer vision è un campo che riguarda il modo in cui un computer elabora un’immagine. Per noi umani è piuttosto facile ricavare informazioni utili da un’immagine, ma come fa un computer?
Per esempio, fornisci al tuo computer un’immagine di un cane e, tramite un certo software, il computer ti dice che l’immagine fornita è quella di un cane. Qui entra in gioco la computer vision. La computer vision è un intero mondo di studio a sé, e la Vision API offre numerose utilità per eseguire attività legate alla computer vision con assoluta facilità. La parte migliore è che sviluppatori senza alcuna esperienza precedente in computer vision possono usare la Vision API consultando la sua documentazione.
Questo tutorial vuole introdurti alla Vision API e a come chiamarla dal codice Python.
Nota: Se pensi di voler sapere di più sulle API in generale (dal punto di vista di Python e del Machine Learning) prima di iniziare questo tutorial, ecco alcune ottime risorse:
Che cos’è la Vision API di Google? Un’introduzione più dettagliata
Google ha racchiuso i suoi modelli di Machine Learning in un’API per consentire agli sviluppatori di usare la sua tecnologia Vision. La Vision API può classificare rapidamente le immagini in migliaia di categorie e assegnare etichette sensate. Può persino rilevare oggetti, volti e porzioni di testo all’interno di un’immagine.
A un livello molto alto, la Vision API di Google ti permette di fare due cose:
- Usare direttamente l’API dal tuo codice per eseguire potenti analisi di immagini, anche su larga scala.
- Creare modelli personalizzati usando l’API per avere maggiore flessibilità nel tuo caso d’uso specifico.
Quest’API è particolarmente utile perché, con il passare del tempo, la richiesta di professionisti “Full-Stack” sta aumentando rapidamente. Immagina ora uno scenario in cui a uno sviluppatore web Full-Stack (cioè competente sia nelle tecnologie front-end che back-end per lo sviluppo web) venga chiesto di creare un sito che acquisisce immagini e ne rileva la tipologia. Questo richiederebbe certamente una buona dose di conoscenze in Computer Vision (se non le ha già), perché il developer dovrà istruire il codice back-end in modo che possa identificare correttamente un’immagine. Supponiamo anche che la scadenza non sia molto lontana.
In una situazione del genere, se gli sviluppatori iniziassero ad apprendere la Computer Vision da zero per poi implementare i compiti richiesti, è probabile che manchino la scadenza. Invece, se usano modelli di computer vision pre-addestrati e apprendono i concetti man mano che procedono nello sviluppo, sarebbe più pratico. È proprio in questi casi che la Vision API torna utile. L’API fornisce molti modelli pre-addestrati all’avanguardia per soddisfare numerosi casi d’uso reali.
Il termine “Full-Stack” si sta associando anche a ruoli come Machine Learning Engineer, Data Scientist, ecc. Un professionista Full-Stack del Machine Learning/Data Scientist dovrebbe progettare e sviluppare, o almeno conoscere, i processi aziendali end-to-end. Questo include “Rendere i modelli pronti per la produzione” come uno dei passaggi più cruciali, in cui la persona/il team incapsula il modello sviluppato in un’API o in un set di API e lo distribuisce in produzione. Il termine produzione varia in base ai casi d’uso, ma l’idea/il framework generale dei processi resta lo stesso. La Vision API ti permette di addestrare in modo efficiente modelli di visione personalizzati con AutoML Vision BETA.
Ottimo! A questo punto dovresti avere una buona panoramica della Vision API. Un piccolo esperimento che puoi fare sulla homepage di Vision è analizzare le tue immagini preferite e ricavare informazioni utili con l’aiuto di Vision. Ecco i passaggi:
- Vai alla homepage di Vision.
- C’è una sezione chiamata “Try the API”. Ti permette di trascinare/caricare un’immagine nella sua interfaccia.

- Una volta fornita un’immagine, ti restituisce una serie di informazioni relative all’immagine:
Come puoi vedere, Vision ha rilevato in pochissimo tempo molti elementi dell’immagine fornita. Esplora pure anche le altre schede per imparare ancora di più sull’immagine.
Immagina di dover eseguire questo compito su un set di miliardi di immagini. Usare un’API come questa sarebbe senza dubbio fruttuoso a tal fine. Ora, vediamo le funzionalità offerte dalla Vision API e alcuni esempi di casi d’uso reali a cui ha già dato risposta.
Quali sono le funzionalità della Vision API - Alcuni casi d’uso specifici
La Vision API è nota per l’accuratezza dei suoi risultati. La documentazione della Vision API offre un’ottima raccolta di tutorial che fornisce una visione molto dettagliata dell’API. Ma a un primo sguardo, tutto questo può sembrare travolgente. Per semplificare, conoscerai alcuni casi d’uso che la Vision API ha già coperto.
- Optical Character Recognition (OCR): È un classico esempio di Computer Vision che riguarda principalmente l’estrazione di testo da un’immagine. La Vision API include molte soluzioni all’avanguardia per farlo.
- Rilevamento delle proprietà di un’immagine: È il compito che hai svolto nella sezione precedente. Con la Vision API puoi recuperare attributi generali di un’immagine, come il colore dominante.
- Rilevamento di etichette: Questo compito annota un’immagine con un’etichetta (o “tag”) in base al contenuto dell’immagine. Per esempio, una foto di un cane può produrre un’etichetta “dog”, “animal” o un’altra annotazione simile. È uno step fondamentale nell’ambito del recupero di informazioni basato sul contenuto.
- Rilevamento dei volti: Dato uno scatto o un set di immagini, il compito è rilevare i volti presenti. Ha diverse applicazioni su larga scala come i sistemi di sorveglianza.
Questi sono alcuni ottimi casi d’uso in cui la Vision API funziona in modo impeccabile e puoi integrare uno qualsiasi dei precedenti nelle tue applicazioni in pochissimo tempo. Se vuoi conoscere altri casi d’uso come questi, dai un’occhiata a questi tutorial.
La Vision API supporta un’ampia gamma di linguaggi come Go, C#, Java, PHP, Node.js, Python, Ruby. Nelle prossime sezioni vedrai come usare la Vision API in Python.
Libreria client della Vision API per Python
Il primo passo per usare la variante Python della Vision API è installarla. Il modo migliore è tramite pip.
!pip install google-cloud-vision
Una volta completata l’installazione, il passo successivo è verificarne l’esito.
from google.cloud import vision
Se la riga di codice sopra viene eseguita con successo, sei pronto a procedere. Google fornisce una serie di fantastici tutorial su come usare la Vision API in Python.
Ora costruirai una semplice applicazione in Python in grado di rilevare alcuni attributi generali di un’immagine, come il colore dominante.
Un caso di studio con la Vision API in Python
La tua applicazione prenderà in input il percorso di un’immagine e mostrerà gli attributi generali dell’immagine corrispondente. Questo è utile quando le immagini si trovano sul computer su cui verrà eseguita l’applicazione. Ma se avessi bisogno di leggere un’immagine da internet? La Vision API supporta anche la lettura di immagini da internet.
In questo caso di studio imparerai a gestire il primo scenario. Ma è solo una questione di una riga di codice per adattare la variante via internet.
Come sempre, inizierai importando vision dal modulo google.cloud.
from google.cloud import vision
Il passo successivo è chiamare ImageAnnotatorClient(), che contiene le utilità per estrarre le proprietà dell’immagine.
client = vision.ImageAnnotatorClient()
È molto probabile che tu riscontri un errore se la variabile d’ambiente GOOGLE_APPLICATION_CREDENTIALS non è impostata. Questo perché queste librerie usano le Application Default Credentials (ADC) per trovare le credenziali della tua applicazione. Quando il tuo codice usa librerie come questa, la strategia verifica le tue credenziali.
Segui questo link per imparare a generare GOOGLE_APPLICATION_CREDENTIALS. L’obiettivo è generare un file client_secrets.json che userai per l’autenticazione.
Una volta ottenuto client_secrets.json, eseguirai il seguente codice per impostare la variabile d’ambiente GOOGLE_APPLICATION_CREDENTIALS.
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="client_secrets.json"
Ora l’esecuzione del codice qui sotto non dovrebbe restituire alcun errore.
client = vision.ImageAnnotatorClient()
Ora scriverai il codice per leggere un’immagine tramite un dato percorso.

Immagine per gentile concessione
import io
path = 'Image.jpeg'
with io.open(path, 'rb') as image_file:
content = image_file.read()
Hai caricato correttamente un’immagine nel tuo workspace. Ora istanzierai un oggetto di tipo vision.types.Image e passerai content=content come argomento.
image = vision.types.Image(content=content)
Ti mancano solo gli ultimi passaggi della tua applicazione di rilevamento delle proprietà dell’immagine. In questi passaggi:
- Chiama
client.image_propertiescon argomento(image=image). - Conserva la risposta di
image_properties()in una variabileresponseed estrai le proprietà dell’immagine chiamando l’attributoimage_properties_annotationdiresponse. - Mostra diverse proprietà dell’immagine in modo formattato.
response = client.image_properties(image=image)
props = response.image_properties_annotation
print('Properties of the image:')
for color in props.dominant_colors.colors:
print('Fraction: {}'.format(color.pixel_fraction))
print('\tr: {}'.format(color.color.red))
print('\tg: {}'.format(color.color.green))
print('\tb: {}'.format(color.color.blue))
Potresti incorrere di nuovo in errori se non hai abilitato la Vision API per la tua applicazione. Abilitare l’API è estremamente semplice e il trace dell’errore fornisce le istruzioni per abilitarla rapidamente.
Dopo aver abilitato l’API, dovrai abilitare anche la fatturazione per usare la Vision API. Le utilità per il rilevamento delle proprietà dell’immagine costano solo 0,60 $. Dopo averlo fatto, il codice viene eseguito correttamente e produce l’output.

Complimenti!
Hai visto quanto sia facile usare la Vision API e il tipo di utilità che offre, per di più a un costo davvero contenuto. Oggi molte aziende e organizzazioni stanno traendo vantaggio da questa API, sia per scopi di business che di ricerca. In questo tutorial hai appena scalfito la superficie della Vision API, ma dovrebbe essere un buon punto di partenza per usare API di Machine Learning nelle tue applicazioni.
Assicurati di dare un’occhiata all’intera suite di API di Machine Learning che Google offre, nota come CloudML.
Con l’aiuto di queste API, facilmente richiamabili, puoi costruire diverse applicazioni interessanti. I link alla Vision API e a CloudML offrono una straordinaria raccolta di tutorial per poterci giocare facilmente. Buon divertimento!
Se ti interessa saperne di più sull’elaborazione delle immagini, segui il corso di DataCamp Reti neurali convoluzionali per l’elaborazione delle immagini.

