Azure Computer Vision 使い方

Azure Computer Vision 使い方: 画像分析を始めるための実践ガイド

Azure Computer Vision API は、画像からテキスト情報や視覚的特徴を抽出するための強力なツールです。このAPIを使うことで、開発者は簡単に画像認識をアプリケーションに組み込むことができます。本記事では、「Azure Computer Vision 使い方」をキーワードに、API の基本的な使い方、実践的な実装例、そしてよくある質問への回答を提供します。初心者の方でも簡単に使い始められるよう、ステップバイステップで解説していきます。


Azure Computer Vision API のセットアップ

1. Azure アカウントの作成

まず最初に、Azure アカウントを作成する必要があります。Azure では無料アカウントも提供しており、新規登録をすることで無料クレジットをもらい、さまざまなサービスを試すことができます。

  • Azure Portal にアクセスしてサインイン後、無料アカウント を選択して登録します。

2. Computer Vision リソースの作成

次に、Azure ポータルで Computer Vision のリソースを作成します。

  1. Azure ポータルにログイン後、検索バーに「Computer Vision」と入力し、Computer Vision サービスを選択します。
  2. 「リソース作成」をクリックし、リソースグループ、リージョン、名前を設定します。
  3. 価格レベルとして、無料枠(F0)を選択することができます。

これで、API を使用するための準備が整いました。

3. API キーとエンドポイントの取得

作成したリソースのページに移動し、「キーとエンドポイント」セクションから API キーエンドポイント を取得します。この情報を使って、API 呼び出しを行います。


Python を使った Azure Computer Vision API の実装例

以下は、Python を使用して画像からテキストを抽出する実装例です。このコードは、Azure の OCR(光学式文字認識) 機能を使用して、画像内のテキストを取得します。

python
import os
import time
from azure.cognitiveservices.vision.computervision import ComputerVisionClient
from msrest.authentication import CognitiveServicesCredentials
from azure.cognitiveservices.vision.computervision.models import OperationStatusCodes

# 環境変数から API キーとエンドポイントを取得
key = os.environ["COMPUTER_VISION_API_KEY"]
endpoint = os.environ["COMPUTER_VISION_ENDPOINT"]

# 画像パス
image_path = "path/to/your/image.jpg"

# Computer Vision クライアントの初期化
computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(key))

# 画像からテキストを読み取る
with open(image_path, "rb") as image_stream:
    read_response = computervision_client.read_in_stream(image_stream, raw=True)

# 操作 ID を取得
operation_location = read_response.headers["Operation-Location"]
operation_id = operation_location.split("/")[-1]

# 結果を取得
while True:
    read_result = computervision_client.get_read_result(operation_id)
    if read_result.status not in ['notStarted', 'running']:
        break
    time.sleep(1)

# 結果を出力
if read_result.status == OperationStatusCodes.succeeded:
    for text_result in read_result.analyze_result.read_results:
        for line in text_result.lines:
            print(line.text)​

実行手順:

  1. API キーとエンドポイント を環境変数に設定します。
  2. 画像のパスを指定して、read_in_stream メソッドで画像からテキストを抽出します。
  3. 結果が得られるまでポーリングして、最終的なテキストを表示します。

Azure Computer Vision の様々な機能の使い方

1. OCR (光学式文字認識)

OCR 機能は、上記のコード例に示されたように read API を使用します。read_in_stream メソッドで画像を読み込み、get_read_result メソッドで結果を取得します。これにより、印刷されたテキストや手書き文字を認識することができます。

2. 画像分析 (Image Analysis)

画像分析を行う場合、analyze_image API を使用します。画像に含まれるオブジェクト、タグ、シーン、説明など、視覚的特徴を抽出できます。以下はその基本的な使用例です。

python
from azure.cognitiveservices.vision.computervision.models import VisualFeatureTypes

# 画像ファイルを指定して解析を実行
with open(image_path, "rb") as image_stream:
    analysis = computervision_client.analyze_image_in_stream(image_stream, visual_features=[VisualFeatureTypes.categories, VisualFeatureTypes.tags])

# 結果を表示
for category in analysis.categories:
    print(f"Category: {category.name}, confidence: {category.score}")
for tag in analysis.tags:
    print(f"Tag: {tag.name}, confidence: {tag.confidence}")​

3. その他の機能

  • 空間分析 (Spatial Analysis): 顧客行動や監視システムに利用できます。
  • 顔認識 (Face Recognition): 顔の検出と属性情報(年齢、性別、感情など)の推定が可能です。
  • カスタムビジョン (Custom Vision): 独自の画像認識モデルをトレーニングして使用できます。

詳細については、公式ドキュメントを参照してください。


よくある質問 (FAQ)

Q1: どのような画像フォーマットに対応していますか?

A: JPEG、PNG、GIF、BMP など、一般的な画像フォーマットに対応しています。

Q2: 日本語の認識精度はどうですか?

A: 高い精度で日本語を認識できます。ただし、手書き文字や複雑な背景の画像では精度が低下することがあります。

Q3: 料金はどのくらいかかりますか?

A: Azure Computer Vision API は 従量課金制 です。使用量や利用する機能に応じて料金が発生します。また、無料枠(F0)もあり、小規模なプロジェクトやお試し利用に適しています。


まとめ

Azure Computer Vision API は、画像分析を簡単に始めるための強力なツールです。本記事で紹介した基本的な使い方と実装例を参考に、ぜひ自分のプロジェクトに活用してみてください。Azure の公式ドキュメントを参照しながら、さらに高度な機能や設定方法について学ぶことができます。

関連情報

さらに詳しい情報やドキュメントについては、以下のリンクを参考にしてください。

Q&A

Q1: Azure Computer Vision を使用するために必要な費用はありますか?
A1: Azure Computer Vision は従量課金制であり、使用量に応じて料金が発生します。詳細は Azure の公式サイトを確認してください。
Q2: どのような画像形式がサポートされていますか?
A2: Azure Computer Vision は JPG、PNG、GIF、BMP などの一般的な画像形式をサポートしています。
Q3: API の呼び出し制限はありますか?
A3: はい、使用するサービスプランに応じて API の呼び出し制限があります。詳細は公式ドキュメントで確認できます。

その他の参考記事:computer vision api