Skip to content

Image.detect_faces raises KeyError when the image doesn't contain any faces #2749

@talzion12

Description

@talzion12

Expected behavior: An empty list is returned from detect_faces.

Ubuntu 16.04
Python 3.5.2
google-cloud version: 0.21.0

Code example

import google.cloud.vision.client
import base64

test_image_base64 = '''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'''

test_image_bytes = base64.b64decode(test_image_base64)

client = google.cloud.vision.Client()

image = client.image(
    content=test_image_bytes,
)

faces = image.detect_faces()
print(faces)

Stack trace

Traceback (most recent call last):
File "test.py", line 42, in
faces = image.detect_faces()
File "/home/tal/virtualenv/lib/python3.5/site-packages/google/cloud/vision/image.py", line 138, in detect_faces
return self._detect_annotation(features)
File "/home/tal/virtualenv/lib/python3.5/site-packages/google/cloud/vision/image.py", line 125, in _detect_annotation
_entity_from_response_type(feature.feature_type, results))
File "/home/tal/virtualenv/lib/python3.5/site-packages/google/cloud/vision/image.py", line 226, in _entity_from_response_type
Face.from_api_repr(face) for face in results[feature_key])
KeyError: 'faceAnnotations'

Metadata

Metadata

Assignees

Labels

api: visionIssues related to the Cloud Vision API.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions