0

Ich versuche mit Vision API (ein Bild zu analysieren) von Microsoft Cognitive Services zu spielen. Ich frage mich, wie ich ein lokales Bild über API-Aufrufe von Rest an Vision API senden und die Ergebnisse mit Python anfordern kann. Kann mir bitte jemand helfen?So senden Sie ein lokales Bild anstelle von URL an Microsoft Cognitive Vision API (analysieren Sie ein Bild) mit Python?

Die Testing opting von Microsoft auf ihrer Website verwendet nur URL, versuchte ich, meinen lokalen Pfad in URL zu konvertieren und geben Sie es als Eingabe, aber das funktioniert nicht.

Antwort

0

Sie können den vollständigen Code sehen hier: https://github.com/miparnisari/Cognitive-Vision-Python/blob/master/Jupyter%20Notebook/Computer%20Vision%20API%20Example.ipynb

Aber der Kern von ihm:

import requests # pip3 install requests 

region = "YOUR-API-REGION" #For example, "westus" 
api_key = "YOUR-API-KEY" 
path_to_file = "C:/Users/mparnisari/Desktop/test.jpg" 

# Read file 
with open(path_to_file, 'rb') as f: 
    data = f.read() 

# Set request headers 
headers = dict() 
headers['Ocp-Apim-Subscription-Key'] = api_key 
headers['Content-Type'] = 'application/octet-stream' 

# Set request querystring parameters 
params = {'visualFeatures': 'Color,Categories,Tags,Description,ImageType,Faces,Adult'} 

# Make request and process response 
response = requests.request('post', "https://{}.api.cognitive.microsoft.com/vision/v1.0/analyze".format(region), data=data, headers=headers, params=params) 

if response.status_code == 200 or response.status_code == 201: 

    if 'content-length' in response.headers and int(response.headers['content-length']) == 0: 
     result = None 
    elif 'content-type' in response.headers and isinstance(response.headers['content-type'], str): 
     if 'application/json' in response.headers['content-type'].lower(): 
      result = response.json() if response.content else None 
     elif 'image' in response.headers['content-type'].lower(): 
      result = response.content 

     print(result) 
else: 

    print("Error code: %d" % response.status_code) 
    print("Message: %s" % response.json()) 

Dieses etwas wie folgt gedruckt werden:

{ 
    'categories': [{ 
     'name': 'others_', 
     'score': 0.0078125 
    }, { 
     'name': 'outdoor_', 
     'score': 0.0078125 
    }, { 
     'name': 'people_', 
     'score': 0.4140625 
    }], 
    'adult': { 
     'isAdultContent': False, 
     'isRacyContent': False, 
     'adultScore': 0.022686801850795746, 
     'racyScore': 0.016844550147652626 
    }, 
    'tags': [{ 
     'name': 'outdoor', 
     'confidence': 0.9997920393943787 
    }, { 
     'name': 'sky', 
     'confidence': 0.9985970854759216 
    }, { 
     'name': 'person', 
     'confidence': 0.997259259223938 
    }, { 
     'name': 'woman', 
     'confidence': 0.944902777671814 
    }, { 
     'name': 'posing', 
     'confidence': 0.8417303562164307 
    }, { 
     'name': 'day', 
     'confidence': 0.2061375379562378 
    }], 
    'description': { 
     'tags': ['outdoor', 'person', 'woman', 'snow', 'posing', 'standing', 'skiing', 'holding', 'lady', 'photo', 'smiling', 'top', 'wearing', 'girl', 'mountain', 'sitting', 'young', 'people', 'sun', 'slope', 'hill', 'man', 'covered', 'umbrella', 'red', 'white'], 
     'captions': [{ 
      'text': 'a woman posing for a picture', 
      'confidence': 0.9654204679303702 
     }] 
    }, 
    'metadata': { 
     'width': 3264, 
     'height': 1836, 
     'format': 'Jpeg' 
    }, 
    'faces': [{ 
     'age': 26, 
     'gender': 'Female', 
     'faceRectangle': { 
      'left': 597, 
      'top': 2151, 
      'width': 780, 
      'height': 780 
     } 
    }], 
    'color': { 
     'dominantColorForeground': 'White', 
     'dominantColorBackground': 'White', 
     'dominantColors': ['White', 'Grey'], 
     'accentColor': '486E83', 
     'isBWImg': False 
    }, 
    'imageType': { 
     'clipArtType': 0, 
     'lineDrawingType': 0 
    } 
} 
+0

Ihr Code zeigt die folgende errorr: https://drive.google.com/file/d/1XduBdaIGQz5WXGlf2saJxYwmpMmJwdAd/view?usp=sharing –

+0

Oh. Ich versuchte es mit Python 3, nicht 2.7 –

+0

Ich versuchte [dies] (https://github.com/Microsoft/Cognitive-Vision-Python/blob/master/Jupyter%20Notebook/Handwriting%20OCR%20API%20Example.ipynb) mit Python 2.7 und es funktioniert gut. –

Verwandte Themen