LoginSignup
1
2

More than 5 years have passed since last update.

Python3でVison APIを使ってみる👀

Last updated at Posted at 2017-01-20

Vision APIをサクッと使ってみるコードです。API_KEYあたりは適当に取得してください

requestsを使います

pip install requests

リクエスト

import base64
import requests
API_KEY = "your api key here"
image_path = "/path/to/image"
image_content = base64.encodebytes(open(image_path, "rb").read()).decode("utf8")
data=json.dumps({
    "requests": [{
        "image":{
            "content": image_content
        },
        "features":[{
                "type": "TEXT_DETECTION",
                "maxResults":10 
            },{
                "type": "SAFE_SEARCH_DETECTION",
                "maxResults":10 
            },{
                "type": "LOGO_DETECTION",
                "maxResults":10 
            },{
                "type": "LABEL_DETECTION",
                "maxResults":10 
        }]
    }]
})
response = requests.post(
    url='https://vision.googleapis.com/v1/images:annotate?key='+API_KEY,
    data=data,
    headers={'Content-Type': 'application/json'}
)
print(response.text)

requestsの中に、Arrayでいれることができるので、複数の画像を同時にリクエストすることが可能です。featuresに関しても同様です。maxResultsは結果の最大数ですね

結果

自分のアイコンでやってみた結果がこちら。

{
  "responses": [
    {
      "labelAnnotations": [
        {
          "mid": "/m/0jg24",
          "description": "image",
          "score": 0.90161264
        },
        {
          "mid": "/m/0c9ph5",
          "description": "flower",
          "score": 0.7957691
        },
        {
          "mid": "/m/05qdh",
          "description": "painting",
          "score": 0.7040579
        },
        {
          "mid": "/m/0jjw",
          "description": "art",
          "score": 0.69042236
        },
        {
          "mid": "/m/067408",
          "description": "album cover",
          "score": 0.68407893
        },
        {
          "mid": "/m/0b0fq",
          "description": "photomontage",
          "score": 0.6226878
        },
        {
          "mid": "/m/015r61",
          "description": "modern art",
          "score": 0.5952117
        },
        {
          "mid": "/m/01bsxb",
          "description": "collage",
          "score": 0.5079488
        }
      ],
      "textAnnotations": [
        {
          "locale": "ko",
          "description": "T\u003e\n\n",
          "boundingPoly": {
            "vertices": [
              {
                "x": 108,
                "y": 73
              },
              {
                "x": 361,
                "y": 73
              },
              {
                "x": 361,
                "y": 277
              },
              {
                "x": 108,
                "y": 277
              }
            ]
          }
        },
        {
          "description": "T",
          "boundingPoly": {
            "vertices": [
              {
                "x": 362,
                "y": 73
              },
              {
                "x": 362,
                "y": 82
              },
              {
                "x": 353,
                "y": 82
              },
              {
                "x": 353,
                "y": 73
              }
            ]
          }
        },
        {
          "description": "\u003e",
          "boundingPoly": {
            "vertices": [
              {
                "x": 352,
                "y": 73
              },
              {
                "x": 352,
                "y": 82
              },
              {
                "x": 343,
                "y": 82
              },
              {
                "x": 343,
                "y": 73
              }
            ]
          }
        },
        {
          "description": "냐",
          "boundingPoly": {
            "vertices": [
              {
                "x": 118,
                "y": 269
              },
              {
                "x": 116,
                "y": 277
              },
              {
                "x": 109,
                "y": 274
              },
              {
                "x": 111,
                "y": 267
              }
            ]
          }
        }
      ],
      "safeSearchAnnotation": {
        "adult": "VERY_UNLIKELY",
        "spoof": "UNLIKELY",
        "medical": "VERY_UNLIKELY",
        "violence": "UNLIKELY"
      }
    }
  ]
}

LOGO_DETECTIONはなかったみたいなので、返ってきてませんね

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2