顔認識のデータ構造
この記事では、Face サービスで顔認識操作に使用されるデータ構造について説明します。 これらのデータ構造は、顔と人物に関するデータを保持します。
注意事項
Microsoft の責任ある AI の原則をサポートするために、Face サービスの利用は、適格性と使用基準に基づいて制限されています。 Face サービスは、Microsoft が管理する顧客とパートナーのみが利用できます。 顔認識受付フォームを使用して利用申請を行ってください。 詳細については、「Face の制限付きアクセス」ページを参照してください。
Identify で使用されるデータ構造
Face Identify API では、コンテナー データ構造を使用して、Person オブジェクトの形式で顔認識データ 保持します。 これには、最も古いものから最新のものまで、3 種類のコンテナーが挙げられます。 常に最新のものを使用することをお勧めします。
PersonGroup
PersonGroup は、最小のコンテナー データ構造です。
- PersonGroup を作成するときには認識モデルを指定する必要があります。 その PersonGroup に顔が追加されるときに、そのモデルを使用して処理されます。 このモデルでは、detect API からの Face ID とモデル バージョンを一致させる必要があります。
- Train API を呼び出して、新しい顔データを Identify API の結果に反映させる必要があります。 これには、顔の追加/削除、人物の追加/削除が含まれます。
- 無料レベルのサブスクリプションでは、最大 1,000 人を保持できます。 S0 有料のサブスクリプションでは、最大 10,000 人を保持できます。
PersonGroupPerson は、識別されるユーザーを表します。 最大 248 個の顔を保持できます。
大規模人物グループ
LargePersonGroup は、最大 100 万個のエンティティ (S0 レベルのサブスクリプションの場合) をサポートするために導入された最新のデータ構造です。 これは、大規模なデータをサポートするように最適化されています。 PersonGroup の機能の大部分を共有しています。認識モデルは作成時に指定する必要があり、使用する前に Train API を呼び出す必要があります。
人物ディレクトリ
PersonDirectory は、この種の最新のデータ構造です。 これは、より大きなスケールとより高い精度をサポートしています。 各 Azure Face リソースには、既定の 1 つの PersonDirectory データ構造があります。 これは、PersonDirectoryPerson オブジェクトのフラットなリストです。最大 7,500 万個を保持できます。
PersonDirectoryPerson は、識別されるユーザーを表します。 PersonGroupPerson モデルから更新され、異なる認識モデルの顔を同じ人物に追加できます。 ただし、Identify 操作では、同じ認識モデルで取得した顔のみを照合できます。
DynamicPersonGroup は、PersonGroupPerson を動的に参照できる軽量のデータ構造です。 トレーニング操作は必要ありません。データが更新されるとすぐに、Identify API で使用する準備が整います。
また、Identify 操作にインプレース人物 ID リストを使用することもできます。 これにより、識別するグループを絞り込んで指定できます。 これを手動で行うことで、大規模なグループの識別パフォーマンスを向上させることができます。
上記のデータ構造は一緒に使用できます。 次に例を示します。
- アクセス制御システムでは、PersonDirectory で会社のすべての従業員を表しておいて、より小さい DynamicPersonGroup で建物の 1 つのフロアにアクセスできる従業員のみを表すことができます。
- フライト搭乗システムでは、PersonDirectory で航空会社のすべての顧客を表し、DynamicPersonGroup で特定のフライトの乗客のみを表すことができます。 インプレース人物 ID リストは、直前に変更を行った乗客を表します。
詳細については、PersonDirectory のハウツー ガイドを参照してください。
Find Similar で使用されるデータ構造
Identify API とは異なり、Find Similar API は、 Person の登録を設定するのが困難なアプリケーション (ビデオ分析やフォト アルバム分析からキャプチャされた顔画像など) で使用するように設計されています。
FaceList
FaceList は、永続化された顔のフラットなリストを表します。 最大 1,000 個の顔を保持できます。
LargeFaceList
LargeFaceList は、最大 1,000,000 個の顔を保持できる新しいバージョンです。
次のステップ
顔のデータ構造を理解したら、Identify 操作でそれらを使用するスクリプトを記述してください。