2016-11-21 4 views
1

私は小さなプロジェクトにMicrosoft Face APIを使用していますが、ローカルシステムの.jpgファイル内に顔を検出しようとしていました(たとえば、ディレクトリ:\ Image \ abc.jpgPythonでMicrosoft Face APIにローカルパスを追加する

例のコードは、documentationに示されているように、オンラインソースからのURLでうまく動作しますが、ローカルパスアドレスでは機能しないようです。私は次のことを試みました:

dict = "{ 'url' : 'file:///D:/Image/abc.jpg'}" 

しかし、それは動作していないようです。 Java(FileEntityを使用)のためのメソッドがあるようです。私はPythonのためのメソッドがあるのだろうかと思います。私はコーディングに新しいです。私は本当に誰かがこれで私を助けることを願っています。私はPython3を使用しています。

+0

APIにローカルファイル名を送信しても動作しない場合は、実際のファイルデータを送信する必要があります。このドキュメントでは、「application-json」のリクエストのContent-Typeヘッダを変更する必要があるとします。 "アプリケーション/オクテットストリーム"に変換し、要求本体にファイルのバイナリデータを送信します。 [このMSDNページ]の例があります(https://social.msdn.microsoft.com/Forums/en-US/e5d72a95-3a44-48bb-b5c9-b261e811d4d9/using-face-api-with-python-and- local-image-files?forum = mlapi)。コードはそれほど素晴らしいものではありませんが、一般的な考え方を与えるはずです。 –

答えて

2

マイクロソフトでは、URLからアクセスできるイメージがインターネットに公開されていないため、ローカルファイルシステムからファイルを読み取ることができません。したがって、MicrosoftフェイスAPIにファイルを送信してアクセスする必要があります。

import requests 

headers = {'Content-Type': 'application/octet-stream', 
      'Ocp-Apim-Subscription-Key': <token>} 
url = 'https://api.projectoxford.ai/face/v1.0/detect' 

# Gets the binary file data so we can send it to MCS 
data = open('file:///D:/Image/abc.jpg', 'rb') 
requests.post(url, headers=headers, data=data) 
関連する問題