クイック スタート: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. 次に、キーとサービス エンドポイント文字列用に、それぞれ COMPUTER_VISION_SUBSCRIPTION_KEYCOMPUTER_VISION_ENDPOINT という名前の環境変数を作成します。Then, create environment variables for the key and service endpoint string, named COMPUTER_VISION_SUBSCRIPTION_KEY and COMPUTER_VISION_ENDPOINT, respectively.
  • 次の 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. 必要に応じて、分析したい別の画像のパスとファイル名で 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

# Add your Computer Vision subscription key and endpoint to your environment variables.
if 'COMPUTER_VISION_SUBSCRIPTION_KEY' in os.environ:
    subscription_key = os.environ['COMPUTER_VISION_SUBSCRIPTION_KEY']
else:
    print("\nSet the COMPUTER_VISION_SUBSCRIPTION_KEY environment variable.\n**Restart your shell or IDE for changes to take effect.**")
    sys.exit()

if 'COMPUTER_VISION_ENDPOINT' in os.environ:
    endpoint = os.environ['COMPUTER_VISION_ENDPOINT']

analyze_url = endpoint + "vision/v2.1/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.