Azure / azure-sdk-for-python

This repository is for active development of the Azure SDK for Python. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/python/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-python.
MIT License
4.55k stars 2.77k forks source link

Computer Vision - Text Recognition - OcrResult object DeserializationError / unicode #2769

Closed jtlz2 closed 6 years ago

jtlz2 commented 6 years ago

I have modified the example image_analysis_in_stream at https://github.com/Azure-Samples/cognitive-services-python-sdk-samples/blob/master/samples/vision/computer_vision_samples.py to rather carry out OCR, i.e.

with open(os.path.join(IMAGES_FOLDER, "image.jpg"), "rb") as image_stream:
        image_response = client.recognize_printed_text_in_stream(image_stream,language='en')

This gives the following Traceback:

File "/anaconda2/lib/python2.7/site-packages/azure/cognitiveservices/vision/computervision/computer_vision_api.py", line 962, in recognize_printed_text_in_stream deserialized = self._deserialize('OcrResult', response) File "/anaconda2/lib/python2.7/site-packages/msrest/serialization.py", line 1179, in call return self._deserialize(target_obj, data) File "/anaconda2/lib/python2.7/site-packages/msrest/serialization.py", line 1245, in _deserialize value = self.deserialize_data(raw_value, attr_desc['type']) File "/anaconda2/lib/python2.7/site-packages/msrest/serialization.py", line 1433, in deserialize_data return self._deserialize(obj_type, data) File "/anaconda2/lib/python2.7/site-packages/msrest/serialization.py", line 1249, in _deserialize raise_with_traceback(DeserializationError, msg, err) File "/anaconda2/lib/python2.7/site-packages/msrest/exceptions.py", line 57, in raise_with_traceback raise error msrest.exceptions.DeserializationError: Unable to deserialize to object: type, AttributeError: 'unicode' object has no attribute 'get

Line 962 requires a response code of 200, so can I assume image_stream is valid?

How do I then deserialize OcrResult to JSON?

Is this an API version mismatch..?

Thanks for any speedy help.

(This is cross-posting of https://github.com/Azure/msrest-for-python/issues/107)

lmazuel commented 6 years ago

The service team did an update in the dev branch I didn't release yet: https://github.com/Azure/azure-sdk-for-python/pull/2614

That updates OCRResult. I successfully tested this solves this issue and will release that branch as 0.2.0 today. I also updated the samples here: https://github.com/Azure-Samples/cognitive-services-python-sdk-samples/blob/master/samples/vision/computer_vision_samples.py

I will push the update once the package is on PyPI.

lmazuel commented 6 years ago

Released https://pypi.org/project/azure-cognitiveservices-vision-computervision/0.2.0/