Lorsque j'exécutais le didacticiel de l'API de détection d'objets de GCP [^ 1], une erreur s'est produite, j'ai donc écrit une solution. La méthode d'authentification API est omise. Le langage utilisé est Python.
Lorsque j'exécute le code suivant dans le didacticiel, j'obtiens une AttributeError. (Le code ci-dessous est copié du tutoriel)
def localize_objects(path):
from google.cloud import vision
client = vision.ImageAnnotatorClient()
with open(path, 'rb') as image_file:
content = image_file.read()
image = vision.types.Image(content=content)
objects = client.object_localization(
image=image).localized_object_annotations
print('Number of objects found: {}'.format(len(objects)))
for object_ in objects:
print('\n{} (confidence: {})'.format(object_.name, object_.score))
print('Normalized bounding polygon vertices: ')
for vertex in object_.bounding_poly.normalized_vertices:
print(' - ({}, {})'.format(vertex.x, vertex.y))
Les détails de l'erreur sont les suivants. Cela se produit sur la 7ème ligne. Il semble que les types ont été supprimés de google.cloud.vision, donc une erreur se produit.
AttributeError: module 'google.cloud.vision' has no attribute 'types'
OK si vous utilisez l'image directement à partir de la vision
image = vision.types.Image(content=content) #Erreur
image = vision.Image(content=content) #Solution
L'image entière est la suivante, seule la 7ème ligne a été modifiée
"""Localize objects in the local image.
Args:
path: The path to the local file.
"""
from google.cloud import vision
client = vision.ImageAnnotatorClient()
with open(uri, 'rb') as image_file:
content = image_file.read()
image = vision.Image(content=content)
objects = client.object_localization(
image=image).localized_object_annotations
print('Number of objects found: {}'.format(len(objects)))
for object_ in objects:
print('\n{} (confidence: {})'.format(object_.name, object_.score))
print('Normalized bounding polygon vertices: ')
for vertex in object_.bounding_poly.normalized_vertices:
print(' - ({}, {})'.format(vertex.x, vertex.y))
Le tutoriel officiel a quelques bugs, n'est-ce pas? Cela n'a pas d'importance, mais l'image GCP est un peu difficile à utiliser car elle chevauche l'image d'oreiller.
Recommended Posts