クイック スタート:Computer Vision の REST API と Python を使用してローカル画像を分析するQuickstart: Analyze a local image using the Computer Vision REST API and Python

このクイック スタートでは、Computer Vision の REST API を使用して、ローカルに格納されている画像を分析し、視覚的特徴を抽出します。In this quickstart, you analyze a locally stored image to extract visual features by using Computer Vision's REST API. 画像分析メソッドを使うと、画像の内容に基づいて視覚的特徴を抽出できます。With the Analyze Image method, you can extract visual features based on image content.

このクイック スタートは、MyBinder 上で Jupyter Notebook を使い、ステップ バイ ステップで実行することができます。You can run this quickstart in a step-by step fashion using a Jupyter notebook on MyBinder. Binder を起動するには、次のボタンを選択します。To launch Binder, select the following button:

BinderBinder

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.

前提条件Prerequisites

  • サンプルをローカルで実行するには、Python がインストールされている必要があります。You must have Python installed if you want to run the sample locally.
  • Computer Vision のサブスクリプション キーが必要です。You must have a subscription key for Computer Vision. 無料試用版のキーは「Cognitive Services を試す」から取得できます。You can get a free trial key from Try Cognitive Services. または、Cognitive Services アカウントの作成に関するページの手順に従って、Computer Vision をサブスクライブし、キーを取得します。Or, follow the instructions in Create a Cognitive Services account to subscribe to Computer Vision and get your key.
  • 次の Python パッケージがインストールされている必要があります。You must have the following Python packages installed. Python パッケージをインストールするには、pip を使用することができます。You can use pip to install Python packages.

サンプルの作成と実行Create and run the sample

このサンプルを作成して実行するには、次の手順を実行します。To create and run the sample, do the following steps:

  1. テキスト エディターに次のコードをコピーします。Copy the following code into a text editor.
  2. 必要に応じて、コードに次の変更を加えます。Make the following changes in code where needed:
    1. subscription_key 値を、サブスクリプション キーに置き換えます。Replace the value of subscription_key with your subscription key.
    2. 必要に応じて、サブスクリプション キーを取得した Azure リージョンの Computer Vision リソースのエンドポイント URL で vision_base_url 値を置き換えます。Replace the value of vision_base_url with the endpoint URL for the Computer Vision resource in the Azure region where you obtained your subscription keys, if necessary.
    3. 必要に応じて、分析したい別の画像のパスとファイル名で image_path 値を置き換えます。Optionally, replace the value of image_path with the path and file name of a different image that you want to analyze.
  3. .py 拡張子のファイルとして、コードを保存します。Save the code as a file with an .py extension. たとえば、「 analyze-local-image.py 」のように入力します。For example, analyze-local-image.py.
  4. コマンド プロンプト ウィンドウを開きます。Open a command prompt window.
  5. プロンプトで、python コマンドを使用してサンプルを実行します。At the prompt, use the python command to run the sample. たとえば、「 python analyze-local-image.py 」のように入力します。For example, python analyze-local-image.py.
import requests
# If you are using a Jupyter notebook, uncomment the following line.
# %matplotlib inline
import matplotlib.pyplot as plt
from PIL import Image
from io import BytesIO

# Replace <Subscription Key> with your valid subscription key.
subscription_key = "<Subscription Key>"
assert subscription_key

# You must use the same region in your REST call as you used to get your
# subscription keys. For example, if you got your subscription keys from
# westus, replace "westcentralus" in the URI below with "westus".
#
# Free trial subscription keys are generated in the "westcentralus" region.
# If you use a free trial subscription key, you shouldn't need to change
# this region.
vision_base_url = "https://westcentralus.api.cognitive.microsoft.com/vision/v2.0/"

analyze_url = vision_base_url + "analyze"

# Set image_path to the local path of an image that you want to analyze.
image_path = "C:/Documents/ImageToAnalyze.jpg"

# Read the image into a byte array
image_data = open(image_path, "rb").read()
headers = {'Ocp-Apim-Subscription-Key': subscription_key,
           'Content-Type': 'application/octet-stream'}
params = {'visualFeatures': 'Categories,Description,Color'}
response = requests.post(
    analyze_url, headers=headers, params=params, data=image_data)
response.raise_for_status()

# The 'analysis' object contains various fields that describe the image. The most
# relevant caption for the image is obtained from the 'description' property.
analysis = response.json()
print(analysis)
image_caption = analysis["description"]["captions"][0]["text"].capitalize()

# Display the image and overlay it with the caption.
image = Image.open(BytesIO(image_data))
plt.imshow(image)
plt.axis("off")
_ = plt.title(image_caption, size="x-large", y=-0.1)

結果の確認Examine the response

成功応答が JSON で返されます。A successful response is returned in JSON. サンプルの Web ページによって成功応答が解析され、次の例のようにコマンド プロンプト ウィンドウに表示されます。The sample webpage parses and displays a successful response in the command prompt window, similar to the following example:

{
  "categories": [
    {
      "name": "outdoor_",
      "score": 0.00390625,
      "detail": {
        "landmarks": []
      }
    },
    {
      "name": "outdoor_street",
      "score": 0.33984375,
      "detail": {
        "landmarks": []
      }
    }
  ],
  "description": {
    "tags": [
      "building",
      "outdoor",
      "street",
      "city",
      "people",
      "busy",
      "table",
      "walking",
      "traffic",
      "filled",
      "large",
      "many",
      "group",
      "night",
      "light",
      "crowded",
      "bunch",
      "standing",
      "man",
      "sign",
      "crowd",
      "umbrella",
      "riding",
      "tall",
      "woman",
      "bus"
    ],
    "captions": [
      {
        "text": "a group of people on a city street at night",
        "confidence": 0.9122243847383961
      }
    ]
  },
  "color": {
    "dominantColorForeground": "Brown",
    "dominantColorBackground": "Brown",
    "dominantColors": [
      "Brown"
    ],
    "accentColor": "B54316",
    "isBwImg": false
  },
  "requestId": "c11894eb-de3e-451b-9257-7c8b168073d1",
  "metadata": {
    "height": 600,
    "width": 450,
    "format": "Jpeg"
  }
}

次の手順Next steps

Computer Vision を使用して、光学文字認識 (OCR) を実行し、スマートにクロップされたサムネイルを作成するほか、イメージ内の視覚的な特徴 (顔など) を検出、カテゴライズ、タグ付け、および記述する Python アプリケーションについて説明します。Explore a Python application that uses Computer Vision to perform optical character recognition (OCR); create smart-cropped thumbnails; plus detect, categorize, tag, and describe visual features, including faces, in an image. Computer Vision API を簡単に試す場合は、Open API テスト コンソールをお試しください。To rapidly experiment with the Computer Vision API, try the Open API testing console.