400 ответов от Azure Computer Vision API - PullRequest
1 голос
/ 01 октября 2019

У меня проблема с ресурсом Computer Vision в Azure. Этот код основан на примере документации, и он уже работает. (https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/quickstarts/python-disk)

Внезапно я начал получать ошибку 400:

reports.exceptions.HTTPError: 400 Ошибка клиента: Неправильный запрос URL: https://nameofmyresource.cognitiveservices.azure.com/vision/v2.0/analyze?visualFeatures=Objects%2CTags

Мой код:

for img_path in img_path_list:
    image_data = open(img_path, "rb").read()
    print(image_data)
    headers = {'Ocp-Apim-Subscription-Key': subscription_key,
               'Content-Type': 'application/octet-stream'}
    params = {'visualFeatures': 'Objects,Tags'}
    response = requests.post(
        analyze_url, headers=headers, params=params, data=image_data)
    response.raise_for_status()
    analysis = response.json()

Я напечатал image_data (кажется, все в порядке) и создал новый ресурс - ничего. Есть мысли?

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Что-то было плохо с конкретной фотографией - следующая фотография была в порядке

0 голосов
/ 01 октября 2019

Кажется, что URL, который вы генерируете, неверен. Можете ли вы попробовать следующий код,

apikey = "e720e03190c41148ec555889daf2f64"
assert apikey
api_url = "https://southeastasia.api.cognitive.microsoft.com/vision/v2.0/"
analyse_api = api_url + "analyze"
image_data = img
headers = {"Ocp-Apim-Subscription-Key": apikey,
'Content-Type': 'application/octet-stream'}
params = {'visualFeatures':'Categories,Description,Color,Objects,Faces'}
response = requests.post(
    analyse_api, headers=headers, params=params, data=image_data)
response.raise_for_status()
analysis = response.json()
#image_caption = analysis["description"]["captions"][0]["text"].capitalize()
people = 0
for i in analysis['objects']:
    if i['object'] == 'person':
        people += 1
describepeople = []
for i in analysis['faces']:
    describepeople.append(i['gender'] + ' ' + str(i['age']))
tags = analysis['description']['tags']
return[people, describepeople, tags]
...