Audiencia
El objetivo de este tutorial es ayudarte a desarrollar aplicaciones con la función de detección web de la API Vision. Se presupone que conoces las técnicas y las estructuras de programación básicas, pero, aunque seas un programador principiante, deberías poder seguir este tutorial y ejecutarlo sin dificultad. Después, podrás usar la documentación de referencia de la API Vision para crear aplicaciones básicas.
En este tutorial se explica paso a paso una aplicación de la API Vision y se muestra cómo hacer una llamada a la API Vision para usar su función de detección web.
Requisitos previos
- Configura un proyecto de la API Vision en la Google Cloud consola.
Configura tu entorno para usar credenciales predeterminadas de la aplicación.
Python
- Instala Python.
- Instala pip.
- Instala la biblioteca de cliente de Google Cloud.
Información general
En este tutorial se explica cómo crear una aplicación básica de la API Vision que usa una Web detection
solicitud. Una Web detection
respuesta anota la imagen
enviada en la solicitud con lo siguiente:
- etiquetas obtenidas de la Web
- URLs de sitios que tienen imágenes coincidentes
- URLs de imágenes web que coinciden parcial o totalmente con la imagen de la solicitud
- URLs de imágenes visualmente similares
Listado de código
Mientras lees el código, te recomendamos que consultes la referencia de Python de la API Vision.
Esta sencilla aplicación realiza las siguientes tareas:
- Importa las bibliotecas necesarias para ejecutar la aplicación
- Toma una ruta de imagen como argumento y la pasa a la función
main()
. - Usa el cliente de la API de Google Cloud para realizar la detección web.
- Itera sobre la respuesta e imprime los resultados
- Imprime una lista de entidades web con su descripción y puntuación.
- Imprime una lista de páginas coincidentes.
- Imprime una lista de imágenes que coinciden parcialmente.
- Imprime una lista de imágenes que coinciden completamente.
Una mirada en profundidad
Importar bibliotecas
Importamos bibliotecas estándar:
argparse
para permitir que la aplicación acepte nombres de archivo de entrada como argumentosio
para leer de archivos
Otras importaciones:
- La clase
ImageAnnotatorClient
de la bibliotecagoogle.cloud.vision
para acceder a la API Vision. - El módulo
types
de la bibliotecagoogle.cloud.vision
para crear solicitudes.
Ejecutar la aplicación
Aquí, simplemente analizamos el argumento que se ha transferido y que especifica la URL de la imagen web, y lo transferimos a la función main()
.
Autenticar a la API
Antes de comunicarte con el servicio de la API Vision, debes autenticar tu servicio con las credenciales que hayas obtenido previamente. En una aplicación, la forma más sencilla de obtener credenciales es usar las credenciales predeterminadas de la aplicación (ADC). La biblioteca de cliente obtiene las credenciales automáticamente. De forma predeterminada, esto se hace obteniendo las credenciales de la variable de entorno GOOGLE_APPLICATION_CREDENTIALS
, que debe configurarse para que apunte al archivo JSON de la clave de tu cuenta de servicio (consulta Configurar una cuenta de servicio para obtener más información).
Generar la petición
Ahora que nuestro servicio de la API Vision está listo, podemos crear una solicitud para el servicio.
Este fragmento de código realiza las siguientes tareas:
- Crea una instancia de
ImageAnnotatorClient
como cliente. - Crea un objeto
Image
a partir de un archivo local o un URI. - Transfiere el objeto
Image
al métodoweb_detection
del cliente. - Devuelve las anotaciones.
Imprimir la respuesta
Una vez que se haya completado la operación, analizaremos el objeto WebDetection e imprimiremos las entidades y las URLs que contiene la anotación (en la siguiente sección se muestran los dos primeros resultados de cada tipo de anotación).
Ejecutar la aplicación
Para ejecutar la aplicación, introducimos la URL web (http://www.photos-public-domain.com/wp-content/uploads/2011/01/old-vw-bug-and-van.jpg) de la siguiente imagen de un coche.

A continuación, se muestra el comando de Python con la URL web de la imagen del coche, seguido del resultado de la consola. Ten en cuenta que se añade una puntuación de relevancia después de las entidades de la lista. Ten en cuenta que las puntuaciones no se normalizan ni se pueden comparar entre diferentes consultas de imágenes.
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
¡Enhorabuena! Has realizado una detección de sitios web con la API Vision.