Created
March 2, 2018 05:44
-
-
Save funwarioisii/bf27f53bf90851b07653ed63e591bd91 to your computer and use it in GitHub Desktop.
Google Cloud Visionをやる 適当にURLと一部結果だけを返すようにしている
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests as r | |
import json | |
from secret import key # 別ファイルで鍵を管理しています | |
class CloudVisionRequest(object): | |
def __init__(self): | |
self._requests = [] | |
self.result = None | |
self.urls = [] | |
def add_image(self, url: str): | |
"""追加したいURLを追加していく FIXME:引数をリストにしたほうが良かったかも""" | |
self.urls.append(url) | |
self._requests.append({ | |
"features": [ | |
{ | |
"type": "LABEL_DETECTION" | |
} | |
], | |
"image": { | |
"source": { | |
"imageUri": url} | |
} | |
}) | |
return self | |
def request(self): | |
"""Cloud Visionにお問い合せ""" | |
data = json.dumps({ | |
'requests': self._requests | |
}) | |
result = r.post(url="https://vision.googleapis.com/v1/images:annotate?key="+key, data=data) | |
self.result = result | |
return self | |
def parse(self): | |
"""結果が読みにくいのでめっちゃ取捨選択 入力したURLとラベルと,スコアを保存""" | |
large_list = [] | |
mid_list = [] | |
parsed = json.loads(self.result.text) | |
responses = parsed['responses'] | |
print(responses) | |
for response,url in zip(responses, self.urls): | |
print(response, url) | |
label_annotations = response['labelAnnotations'] | |
for label in label_annotations: | |
print(label['description'], label['score']) | |
mid_list.append({ | |
'url': url, | |
'description': label['description'], | |
'score': label['score'] | |
}) | |
large_list.append(mid_list) | |
return large_list | |
if __name__ == '__main__': | |
cvr = CloudVisionRequest() | |
cvr.add_image(url="") # 画像のURLまたはGoogle Storageの画像URIなど Firebase Storageはだめだった | |
print(cvr.request().parse()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment