AzureフェイスAPIで顔検出してみた。動かすまでに苦戦したポイントと学び
どーも、冨安です。
今回は、Microsoft Azureの「フェイスAPI」を使って顔検出を行ってみた体験をまとめます。このAPIは、顔認識や感情分析といった高度な機能を提供するため、画像処理に興味がある方には非常に魅力的なツールです。
サンプルコードを使って簡単に動かせるかと思いきや、実際に動作するまでにいくつかの壁がありました。この記事では、フェイスAPIの概要から、動作させるまでの苦労、そして新しいAPIを試すときに大事なことについてお伝えします。
Microsoft Azure(以下Azure)は、Microsoftが提供するクラウドプラットフォームです。
AzureにはAI関連のサービスがあり、フェイスAPIはその一部です。Azure Servicesを使うことで、AIに必要な画像認識や音声認識、自然言語処理の機能をアプリケーションに組み込むことができます。
2. フェイスAPIとは何か?
AzureのフェイスAPIは、画像や動画に含まれる人間の顔を検出し、属性情報(年齢、性別、感情など)を分析するためのサービスです。用途としては、防犯カメラの映像解析、マーケティングでの顧客分析など、幅広く応用されています。
APIの利用手順は以下のような流れです。
AzureポータルでフェイスAPIを有効化する。
APIキーを取得し、エンドポイントURLを確認する。
サンプルコードを使ってリクエストを送信する。
最初は公式ドキュメントにあるサンプルコードをそのまま使えば簡単に動くと思っていましたが、そんなに甘くありませんでした。
3. 苦戦したこと
最初にぶつかった壁は、サンプルコードをコピペしただけでは動かなかったことです。下記のようにfaceAPIを使うために、サンプルコードが用意されています。
import os
import time
import uuid
from azure.core.credentials import AzureKeyCredential
from azure.ai.vision.face import FaceAdministrationClient, FaceClient
from azure.ai.vision.face.models import FaceAttributeTypeRecognition04, FaceDetectionModel, FaceRecognitionModel, QualityForRecognition
# This key will serve all examples in this document.
KEY = os.environ["FACE_APIKEY"]
# This endpoint will be used in all examples in this quickstart.
ENDPOINT = os.environ["FACE_ENDPOINT"]
# Used in the Large Person Group Operations and Delete Large Person Group examples.
# LARGE_PERSON_GROUP_ID should be all lowercase and alphanumeric. For example, 'mygroupname' (dashes are OK).
LARGE_PERSON_GROUP_ID = str(uuid.uuid4()) # assign a random ID (or name it anything)
# Create an authenticated FaceClient.
with FaceAdministrationClient(endpoint=ENDPOINT, credential=AzureKeyCredential(KEY)) as face_admin_client, \
FaceClient(endpoint=ENDPOINT, credential=AzureKeyCredential(KEY)) as face_client:
'''
Create the LargePersonGroup
'''
# Create empty Large Person Group. Large Person Group ID must be lower case, alphanumeric, and/or with '-', '_'.
print("Person group:", LARGE_PERSON_GROUP_ID)
face_admin_client.large_person_group.create(
large_person_group_id=LARGE_PERSON_GROUP_ID,
name=LARGE_PERSON_GROUP_ID,
recognition_model=FaceRecognitionModel.RECOGNITION04,
)
以下つづく。。。
ずらずらーっと書か入れていて、読みきれないのでとりあえずコピペすると失敗。
1、顔を検出
2、さらに検出した顔が誰か特定する
みたいな段階に分かれたコードがあり、2つ目はマイクロソフトの認証が必要でできませんでした。
なので検出するだけのコードに修正すると、動かすことができました。
開発環境はgooglecolab。
横にAIアシスタントがついていて、エラー修正にかなり役立ちました。おかげでフリー素材で顔検出することができた!
4. 新しいAPIを試すときに大事なこと
今回の経験を通して、新しいAPIを試すときに大事だと感じたのは、まずはサンプルコードを使って動作させてみること。
さらに、エラーが出た場合は、そのエラーコードやメッセージを参考にしながら少しずつ修正していくことが大切です。
ドキュメントの理解も大事だけど読むのが大変なので、エラーを出しながら1つ1つ修正していくのがいいと思いました。
新しいツールやAPIを扱うときは基本一発でうまくいかないですが、試しながら慣れていきたいです。
まとめ
AzureのフェイスAPIは、顔検出や感情分析などを簡単に実現できる強力なツール。
こうした便利なツールをいかすために、新しいAPIを試すわけですがだいたいエラーが発生して一筋縄ではいかない。
その中でもまずはサンプルコードを動かし、公式ドキュメントを理解しながら使うことの大切さを実感しました。