はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

生成AI時代だからこそのAzure AI Services活用術(その4)~Azure AI Visionを試してみよう~

はじめに

前回は、 Microsoft Foundry (旧名称 : Azure AI Foundry) を使った Azure AI Speech について紹介しました。
Whisper など生成AIでの音声認識も精度があがってきましたが、ハルシネーションなどを考えると「音声が聞こえない」「(知らない言語なので)音声を聞いても判別できない」場合などは、まだまだ、音声特化AIである「Azure AI Speech」の方が便利であると考えます。
だからこそ、Microsoft Foundry の中でも独立したモデルとサービスエンドポイントとして Speech があるのかもしれません。

今回は、Microsoft Foundry の個別エンドポイントの2つ目である「Azure AI Vision」について紹介したいと思います。

Azure AI Vision とは

Azure AI Vision も Microsoft Foundry で独立したモデルとサービスエンドポイントをもった AI です。

2026年3月時点で、Azure AI Vision ができることとしては次のようなものがあります。

  1. 画像からテキストを抽出する
  2. 写真の検索
  3. 画像のキャプション付け
  4. 画像内のオブジェクトを選別
  5. 画像のタグ付け
  6. 画像内の顔を検出

このできることリストを見ると「画像をAIに理解させて何かをしたい」ときに必要が一通り揃っていることが分かりますね。

移行が必要な機能と残る機能

AI を理解するうえで重要なことは、斜め読みでもよいので公式ドキュメントを一読することです。
公式ドキュメントには、どのような機能があるか、また、更新情報などの重要な情報が詰まっているからです。
Azure AI Vision の公式ドキュメントをみてみましょう。
learn.microsoft.com

すると、注意事項としていくつかの機能は移行が必要だと記載がありました。

機能 目的 移行先
Image Analysis 4.0 画像分析 ChatGPTの画像分析
Image Analysis 4.0 OCR Azure Document intelligence
Azure Face Service 顔検出 移行不要:Azure Face Service

登場当時に「Face API」と呼ばれていた「Azure Face Service」は残るようですが、それ以外は、2028 年 9 月 25 日までに別サービスに移行が必要とのことです。

Azure Face Service とは

learn.microsoft.com
Azure Face Serviceは、画像内の人の顔を検出、認識、分析する AI アルゴリズムを提供します。 顔認識ソフトウェアは、本人識別、タッチレス アクセス制御、プライバシーのための自動顔ぼかしなど、さまざまなシナリオで重要となります。
Azure Face Serviceには大きく3つの機能があります。

  1. 顔検出:画像の中から顔を検出する機能
  2. 顔認識:画像の中の顔が「だれ」かを識別する機能
  3. 顔認証:Windows Hello のように本人認証を行う機能

Face リソースを作成

Face を使うためには、Face という種類のリソースを作成する必要があります。
Cognitive Services の汎用リソースや Computer Vision リソースでも動作させることができません。
Face のリソースは https://portal.azure.com/#create/Microsoft.CognitiveServicesFace で作成できます。
今回は、リソースの内容としては次のように指定します。

作成が完了すると、Azure Portal のリソース一覧に次の行が追加されます。

顔検出

顔検証と顔認識は登録が必要ですが、顔検出操作は登録なしで使用できます。
nuget から Azure.AI.Vison.Face を取得して SDK 経由で利用することも出来ますが、REST APIも用意されています。
使い方をよく理解するため、そして、 SDK に対応していない環境から使うための情報を得たいので、 REST API での使い方を調べてみましょう。
learn.microsoft.com

プレイグラウンドで REST API を試す

Foundry のリソースでは Azure Face Service が使えないことと関連があるかもしれませんが、残念ながら Microsoft Foundry に Azure Face Service のプレイグラウンドは実装されていません。
しかし、Face の公式ドキュメントにはプレイグラウンドが用意されています。

[使ってみる] をクリックすればプレイグラウンドが右側に表示されます。
https://learn.microsoft.com/ja-jp/rest/api/face/face-detection-operations/detect?view=rest-face-v1.2&tabs=HTTP#code-try-0

パラメタを指定

1つ重要なポイントとしては「returnFaceId=false」を URL パラメタとして指定することです。
指定の仕方は「パラメーター」の一覧で、「returnFaceId=false」を入力してから「+」をクリックします。

この追加をしておかないと、内部的に顔認識や顔認証が動作するため、申請が必要な機能制限に該当してしまうからです。
顔の位置などを取得する顔検出のみであれば、このパラメタを指定することで申請を回避できます。

ヘッダーを指定

「Ocp-Apim-Subscription-Key」ヘッダーを追加して、Face リソースに割り当てられたキー (1でも2でもOK) の値を指定します。


本文を指定

今回は、Face SDKのサンプルコードで指定している画像URLを指定するので、本文の指定は次のようになります。

{
"url": "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection2.jpg"
}

実行結果

[ファイル名を指定して実行] をクリックすればプレイグランド内で REST API を呼びだして次のような結果が表示されます。

これは画像の中で検出した顔の位置となります。この範囲で四角を描画すればよいということです。

顔認識

顔認識には様々な用途があります。その用途は大きく3つに分類でき、それぞれにエンドポイントが用意されています。
なお、顔認識を行うためには事前申請が必要となります。

findsimilars

findsimilars エンドポイントのドキュメントとプレイグラウンドの一覧は次のようになります。
「POST https://{faceリソース名}.cognitiveservices.azure.com//face/v12/findsimilars」

*機能 *用途
Find Similar クエリ顔の faceId を指定して、faceId 配列から類似した顔を検索します。 faceId 配列には、Detect によって作成された顔が含まれています。
Find Similar From Face List 顔リストから類似した顔を検索するクエリ顔の faceId を指定します。 'faceListId' は、顔リストの作成によって作成されます。
Find Similar From Large Face List クエリ顔の faceId を指定して、大きな顔リストから類似した顔を検索します。 "largeFaceListId" は、大きな顔リストを作成することによって作成されます。
group

group エンドポイントのドキュメントとプレイグラウンドの一覧は次のようになります。
「POST https://{faceリソース名}.cognitiveservices.azure.com//face/v12/group」

*機能 *用途
Group 顔の類似性に基づいて候補の顔をグループに分割します。
identify

identify エンドポイントのドキュメントとプレイグラウンドの一覧は次のようになります。
「POST https://{faceリソース名}.cognitiveservices.azure.com//face/v12/identify」

*機能 *用途
Identify From Dynamic Person Group 動的人物グループから特定のクエリユーザーの顔の最も近い一致を見つけるための 1 対多の識別。
Identify From Large Person Group 大規模人物グループから特定のクエリユーザーの顔の最も近い一致を見つけるための 1 対多の ID。
Identify From Person Directory person ディレクトリ personIds 配列から特定のクエリ担当者の顔の最も近い一致を見つけるための 1 対多の ID。
Identify From Person Group ユーザー グループから特定のクエリユーザーの顔の最も近い一致を見つけるための 1 対多の ID。

顔認証

顔認証にも様々な用途があり、その用途ごとにドキュメントとプレイグラウンドが用意されています。
どの用途もエンドポイントとしては「POST https://{faceリソース名}.cognitiveservices.azure.com//face/v12/verify」という形式で、URLパラメタの指定により用途ごとの動作が提供されます。
なお、顔認証を行うためには事前申請が必要となります。

*機能 *用途
Verify Face To Face 2 つの顔が同じ人物に属しているかどうかを確認します。
Verify From Large Person Group 顔が大規模人物グループの人物に属しているかどうかを確認します。
Verify From Person Directory 顔が Person Directory の人物に属しているかどうかを確認します。
Verify From Person Group 顔が人物グループの人物に属しているかどうかを確認します。

移行をする前に「画像分析」についてのまとめ

Image Analysis 4.0 Service を使うことで、画像からさまざまな視覚的特徴を抽出できます。 たとえば、成人向けコンテンツが画像に含まれているかどうかを判断したり、特定のブランドや物体、人の顔を検出したりすることができます。
残念ながらプレイグラウンドは用意されていませんが、公式ドキュメントには REST API での使い方も掲載されています。
learn.microsoft.com
2028 年 9 月 25 日に廃止されるので、それまでにGPTなどの生成AIへの移行が推奨されています。

移行をする前に「OCR」についてのまとめ

OCRは、テキスト認識またはテキスト抽出とも呼ばれます。 通常、テキストは単語、テキスト行、段落またはテキスト ブロックとして抽出され、スキャンされた画像からテキストにアクセスできます。 この機能により、手動でのデータ入力の必要性が排除または大幅に削減されます。
すでにOCRの機能は画像OCRについては「画像分析」側に集約され、また、「画像分析」自体も2028 年 9 月 25 日に廃止が決まっています。
learn.microsoft.com
請求書などのドキュメントからのテキスト抽出には、 Azure Document Intelligence の利用が推奨されています。
learn.microsoft.com

おわりに

今回は「Azure AI Speech」に続いて「Azure AI Vision」を紹介しました。
生成AIが得意なところは生成AIに移行が予定されています。
継続する Azure Face Service についても生成AIでも実現できるかもしれませんが、特化AIである「Azure AI Vision - Azure Face Service」を使うことで、顔認識や顔認証のようなセンシティブな情報(機微情報)に対して、より確実な回答が得られるようにしていることを感じてもらえたらうれしいです。