Cómo usar la API Vision de Google Cloud – Part 1

La API Vision de Google Cloud tiene múltiples funcionalidades. En este artículo veremos cómo acceder a ellos. Antes de usar la API, debe abrir una cuenta de desarrollador de Google, crear una instancia de máquina virtual y configurar una API. Para eso, consulte este artículo. 
Necesitamos descargar los siguientes paquetes: 
 

pip install google.cloud.vision

Los diversos servicios realizados por Google Vision API son:
 

Detección facial:

Puede detectar varios rostros en una imagen y expresar el estado emocional de los rostros.
Guarde el archivo ‘credentials.json’ en la misma carpeta que el archivo .py con el código de Python. Necesitamos guardar la ruta de ‘credentials.json’ (C:\Users\…) como ‘GOOGLE_APPLICATION_CREDENTIALS’, lo cual se hizo en la línea 7 del siguiente código.
 

Python3

import os
import io
from google.cloud import vision
from matplotlib import pyplot as plt
from matplotlib import patches as pch
 
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] =
      os.path.join(os.curdir, 'credentials.json')
 
client = vision.ImageAnnotatorClient()
 
f = 'image_filename.jpg'
with io.open(f, 'rb') as image:
    content = image.read()
     
image = vision.types.Image(content = content)
response = client.face_detection(image = image)
faces = response.face_annotations
 
possibility = ('UNKNOWN', 'VERY_UNLIKELY', 'UNLIKELY',
                  'POSSIBLE', 'LIKELY', 'VERY_LIKELY')
 
a = plt.imread(f)
fig, ax = plt.subplots(1)
ax.imshow(a)
 
for face in faces:
    print('Possibility of anger: {}'.format(possibility[face.anger_likelihood]))
    print('Possibility of joy: {}'.format(possibility[face.joy_likelihood]))
    print('Possibility of surprise: {}'.format(possibility[face.surprise_likelihood]))
    print('Possibility of sorrow: {}'.format(possibility[face.sorrow_likelihood]))
 
    vertices = ([(vertex.x, vertex.y)
                 for vertex in face.bounding_poly.vertices])
 
    print('Vertices covering face: {}\n\n'.format(vertices))
 
    rect = pch.Rectangle(vertices[0], (vertices[1][0] - vertices[0][0]),
                        (vertices[2][1] - vertices[0][1]), linewidth = 1,
                                       edgecolor ='r', facecolor ='none')
    ax.add_patch(rect)
     
print('Confidence in Detection: {}%'.format(
            face.detection_confidence * 100))
 
plt.show()

El código anterior detecta varios rostros en una imagen y determina las expresiones emocionales exhibidas por los rostros y si alguno de los rostros lleva un casco. También devuelve los vértices que forman un rectángulo alrededor de las caras individuales. 
Por último, imprime el porcentaje de seguridad con el que se extrajeron las conclusiones.
Por ejemplo, cuando se proporciona la siguiente imagen como entrada: 
 

Producción: 
 

Possibility of anger: VERY_UNLIKELY
Possibility of joy: VERY_LIKELY
Possibility of surprise: VERY_UNLIKELY
Possibility of sorrow: VERY_UNLIKELY
Vertices covering face: [(115, 84), (308, 84), (308, 309), (115, 309)]

Confidence in Detection: 99.93739128112793%

Detección de logotipo:

Detecta logotipos de productos populares presentes en una imagen. 
 

Python3

import os
import io
from google.cloud import vision
from matplotlib import pyplot as plt
 
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] =
     os.path.join(os.curdir, 'credentials.json')
 
client = vision.ImageAnnotatorClient()
 
f = 'image_filename.jpg'
with io.open(f, 'rb') as image:
    content = image.read()
     
image = vision.types.Image(content = content)
response = client.logo_detection(image = image)
logos = response.logo_annotations
 
a = plt.imread(f)
plt.imshow(a)
 
for logo in logos:
    print(logo.description)

El código anterior detecta los logotipos de varias empresas en una imagen e imprime el nombre de las empresas. Por ejemplo, cuando se da la siguiente imagen: 
 

Producción: 
 

hp

Detección de etiquetas:

Detecta amplios conjuntos de categorías en una imagen, que van desde animales, árboles hasta vehículos, edificios, etc.
 

Python3

import os
import io
from google.cloud import vision
from matplotlib import pyplot as plt
 
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] =
    os.path.join(os.curdir, 'credentials.json')
 
client = vision.ImageAnnotatorClient()
 
f = 'image_filename.jpg'
with io.open(f, 'rb') as image:
    content = image.read()
     
image = vision.types.Image(content = content)
response = client.label_detection(image = image)
labels = response.label_annotations
 
a = plt.imread(f)
plt.imshow(a)
 
for label in labels:
    print(label.description)

Todas las etiquetas o etiquetas posibles se adjuntan a una imagen. Por ejemplo, cuando se da la siguiente imagen como entrada: 
 

Producción: 
 

Street
Neighbourhood
Café
Coffeehouse
Sitting
Leisure
Tourism
Restaurant
Street performance
City

Detección de puntos de referencia:

Detecta puntos de referencia famosos (en su mayoría hechos por el hombre) dentro de una imagen.
 

Python3

import os
import io
from google.cloud import vision
from matplotlib import pyplot as plt
 
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] =
    os.path.join(os.curdir, 'credentials.json')
 
client = vision.ImageAnnotatorClient()
 
f = 'image_filename.jpg'
with io.open(f, 'rb') as image:
    content = image.read()
     
image = vision.types.Image(content = content)
response = client.landmark_detection(image = image)
landmarks = response.landmark_annotations
 
a = plt.imread(f)
plt.imshow(a)
 
for landmark in landmarks:
    print(landmark.description)
    for location in landmark.locations:
        print('Latitude: {}, Longitude: {}'.format(
              location.lat_lng.latitude, location.lat_lng.longitude))

El código anterior reconoce cualquier punto de referencia famoso y también devuelve la ubicación de ese punto de referencia utilizando latitudes y longitudes. Por ejemplo, cuando ingresamos la siguiente imagen: 
 

Producción: 
 

Victoria Memorial
Latitude: 22.545121, Longitude: 88.342781

Para obtener más información, visite la documentación de la API de Google Vision aquí .
 

Publicación traducida automáticamente

Artículo escrito por ArijitGayen y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *