Pubblico
Lo scopo di questo tutorial è aiutarti a sviluppare applicazioni utilizzando la funzionalità di rilevamento web dell'API Vision. Si presuppone che tu abbia familiarità con i costrutti e le tecniche di programmazione di base, ma anche se sei un programmatore principiante, dovresti essere in grado di seguire ed eseguire questo tutorial senza difficoltà, quindi utilizzare la documentazione di riferimento dell'API Vision per creare applicazioni di base.
Questo tutorial illustra un'applicazione dell'API Vision, mostrando come effettuare una chiamata all'API Vision per utilizzare la funzionalità di rilevamento web.
Prerequisiti
- Configura un progetto dell'API Vision nella Google Cloud console.
Configura l'ambiente per l'utilizzo delle Credenziali predefinite dell'applicazione.
Python
- Installa Python.
- Installa pip.
- Installa la libreria client di Google Cloud.
Panoramica
Questo tutorial ti guida attraverso un'applicazione di base dell'API Vision che utilizza una richiesta di Web detection. Una risposta di Web detection annota l'immagine inviata nella richiesta con:
- Etichette ottenute dal web
- URL dei siti con immagini corrispondenti
- URL delle immagini web che corrispondono parzialmente o completamente all'immagine nella richiesta
- URL delle immagini visivamente simili
Elenco del codice
Durante la lettura del codice, ti consigliamo di seguire il riferimento Python dell'API Vision.
Questa semplice applicazione esegue le seguenti attività:
- Importa le librerie necessarie per eseguire l'applicazione
- Accetta un percorso dell'immagine come argomento e lo passa alla
main()funzione - Utilizza il client API Google Cloud per eseguire il rilevamento web
- Esegue un loop sulla risposta e stampa i risultati
- Stampa l'elenco delle entità web con descrizione e punteggio
- Stampa un elenco di pagine corrispondenti
- Stampa un elenco di immagini corrispondenti parzialmente
- Stampa un elenco di immagini corrispondenti completamente
Un'occhiata più da vicino
Importazione delle librerie
Importiamo le librerie standard:
argparseper consentire all'applicazione di accettare i nomi dei file di input come argomentiioper la lettura dai file
Altri import:
- La classe
ImageAnnotatorClientall'interno della libreriagoogle.cloud.visionper l'accesso all'API Vision. - Il modulo
typesall'interno della libreriagoogle.cloud.visionper la creazione delle richieste.
Esecuzione dell'applicazione
Qui analizziamo semplicemente l'argomento passato che specifica l'URL dell'immagine web e lo passiamo alla funzione main().
Autenticazione nell'API
Prima di comunicare con il servizio API Vision, devi autenticare il servizio utilizzando le credenziali acquisite in precedenza. All'interno di un'
applicazione, il modo più semplice per ottenere le credenziali è utilizzare
le Credenziali predefinite dell'applicazione
(ADC). La libreria client ottiene automaticamente le credenziali. Per impostazione predefinita,
questa operazione viene eseguita ottenendo le credenziali dalla GOOGLE_APPLICATION_CREDENTIALS
variabile di ambiente, che deve essere impostata in modo da puntare al file della chiave
JSON dell'account di servizio (per ulteriori informazioni, consulta
Configurare un account di servizio
).
Creazione della richiesta
Ora che il nostro servizio API Vision è pronto, possiamo creare una richiesta al servizio.
Questo snippet di codice esegue le seguenti attività:
- Crea un'istanza
ImageAnnotatorClientcome client. - Crea un oggetto
Imageda un file locale o da un URI. - Passa l'oggetto
Imageal metodoweb_detectiondel client. - Restituisce le annotazioni.
Stampa della risposta
Una volta completata l'operazione, esaminiamo il WebDetection, e stampiamo le entità e gli URL contenuti nell'annotazione (nella sezione successiva vengono mostrati i primi due risultati di ogni tipo di annotazione).
Esecuzione dell'applicazione
Per eseguire l'applicazione, passiamo l'URL web (http://www.photos-public-domain.com/wp-content/uploads/2011/01/old-vw-bug-and-van.jpg) della seguente immagine dell'auto.
Di seguito è riportato il comando Python con l'URL web dell'immagine dell'auto passato, seguito dall'output della console. Tieni presente che dopo le entità elencate viene aggiunto un punteggio di pertinenza. Tieni presente che i punteggi non sono normalizzati o confrontabili tra diverse query di immagini.
python web_detect.py "http://www.photos-public-domain.com/wp-content/uploads/2011/01/old-vw-bug-and-van.jpg"
5 Pages with matching images retrieved Url : http://www.photos-public-domain.com/2011/01/07/old-volkswagen-bug-and-van/ Url : http://pix-hd.com/old+volkswagen+van+for+sale ... 2 Full Matches found: Url : http://www.photos-public-domain.com/wp-content/uploads/2011/01/old-vw-bug-and-van.jpg Url : http://www.wbwagen.com/media/old-volkswagen-bug-and-van-picture-free-photograph-photos-public_s_66f487042adad5a6.jpg 4 Partial Matches found: Url : http://www.photos-public-domain.com/wp-content/uploads/2011/01/old-vw-bug-and-van.jpg Url : http://www.wbwagen.com/media/old-vw-bug-and-vanjpg_s_ac343d7f041b5f8d.jpg ... 5 Web entities found: Score : 5.35028934479 Description: Volkswagen Beetle Score : 1.43998003006 Description: Volkswagen Score : 0.828279972076 Description: Volkswagen Type 2 Score : 0.75271999836 Description: Van Score : 0.690039992332 Description: Car
Complimenti! Hai eseguito il rilevamento web utilizzando l'API Vision.