J'essaie d'implémenter la fonctionnalité detect_logos sur ma machine locale dans Python 2.7.API Google Cloud Vision: Détecter les logos TypeError
J'ai une fonction qui était à l'origine le fichier label.py de Google qui est donné en here.
J'ai finalement édité la fonction principale et elle appelle detect_logos() après cracher quelques étiquettes. Je cours maintenant dans l'erreur suivante dans le detect_logos (chemin) fonction à la ligne "logos = image.detect_logos()".
TypeError: construct_settings() a obtenu un argument mot-clé inattendu 'metrics_headers de
Cette erreur provient apparemment du fichier immage_annotator_client.py dans le api de vision. J'ai dû louper quelque chose.
def detectLabelsLogos(photo_file):
#configurable options: FREE TO CHANGE
resizedFileName = 'clone.jpeg' #name of resized files (are deleted at the end)
labelCount = 5 #max number of labels
#nonconfigurable options: DO NOT TOUCH
resized = False
filename = photo_file
service = googleapiclient.discovery.build('vision', 'v1')
#initial size check
imgSizeInBytes = os.stat(photo_file).st_size
if imgSizeInBytes >= MAX_IMAGE_SIZE_IN_BYTES:
print "\n[Image too large...resizing...]"
resized = True
filename = resizedFileName
with Image.open(photo_file) as image:
newimg = resizeimage.resize_thumbnail(image, [1600, 800])
newimg.save(filename, image.format)
newimg.close()
imgSizeInBytes = os.stat(filename).st_size
#ensure file is not empty
if imgSizeInBytes > 0:
# [START construct_request]
with open(filename, 'rb') as image:
image_content = base64.b64encode(image.read())
service_request = service.images().annotate(body={
'requests': [{
'image': {
'content': image_content.decode('UTF-8')
},
'features': [{
'type': 'LABEL_DETECTION',
'maxResults': labelCount
}]
}]
})
# [END construct_request]
# [START parse_response]
response = service_request.execute()
detect_logos(filename);
for i in range(0, labelCount):
if i >= len(response['responses'][0]['labelAnnotations']):
print "\n[Exhausted Responses]"
break
label = response['responses'][0]['labelAnnotations'][i]['description']
print('\nFound label: %s' % (label))
# [END parse_response]
image.close()
#delete resized file
if resized:
os.remove(filename)
else:
print "[Invalid File Input: Empty File]"
print "\n"
def detect_logos(path):
"""Detects logos in the file."""
vision_client = vision.Client()
print vision_client
with io.open(path, 'rb') as image_file:
content = image_file.read()
image = vision_client.image(content=content)
logos = image.detect_logos()
print('\nLogos:')
for logo in logos:
print(logo.description)
J'ai fais "set GOOGLE_APPLICATION_CREDENTIALS =/bla/bla/serviceaccountkey.json"