Skip to content

Instantly share code, notes, and snippets.

@funwarioisii
Created March 2, 2018 05:44
Show Gist options
  • Save funwarioisii/bf27f53bf90851b07653ed63e591bd91 to your computer and use it in GitHub Desktop.
Save funwarioisii/bf27f53bf90851b07653ed63e591bd91 to your computer and use it in GitHub Desktop.
Google Cloud Visionをやる 適当にURLと一部結果だけを返すようにしている
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