コレクション内での顔の検索 - Amazon Rekognition

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

コレクション内での顔の検索

Amazon Rekognition では、検出した顔に関する情報をコレクションというサーバー側のコンテナに保存できます。コレクションに保存された顔の情報を使用して、イメージ、保存済みビデオ、およびストリーミングビデオ内の既知の顔を検索できます。Amazon Rekognition は IndexFaces オペレーションをサポートしています。このオペレーションを使用して、イメージ内の顔を検出し、検出した顔の特徴に関する情報をコレクション内に保持できます。サービスによって情報がサーバーに保持されるため、これは ストレージベースの API オペレーションの例です。

顔の情報を保存するには、まず、アカウントの AWS リージョンのいずれかで顔コレクションを作成する (CreateCollection) 必要があります。この顔コレクションは、IndexFaces オペレーションを呼び出すときに指定します。顔コレクションを作成して、すべての顔の特徴情報を保存すると、コレクション内で一致する顔を検索できます。イメージ内の顔を検索するには、SearchFacesByImage を呼び出します。保存したビデオ内の顔を検索するには、StartFaceSearch を呼び出します。ストリーミングビデオ内の顔を検索するには、CreateStreamProcessor を呼び出します。

注記

サービスでは、実際のイメージのバイトを保持しません。代わりに、基になる検出アルゴリズムで、最初に入力イメージ内の顔を検出して、顔ごとに顔の特徴を特徴ベクトルに抽出し、次にその特徴ベクトルをコレクションに保存します。Amazon Rekognition では、これらの特徴ベクトルを使用して顔のマッチングを行います。

コレクションは、さまざまなシナリオで使用できます。たとえば、顔コレクションを作成し、スキャンしたバッジイメージを IndexFaces オペレーションで保存できます。社員が建物内に入ると、その顔のイメージがキャプチャされ、SearchFacesByImage オペレーションに送信されます。十分に高い類似スコア (99% など) で顔が一致すると、この社員を認証できます。

コレクションの管理

顔コレクションは Amazon Rekognition のプライマリリソースであり、顔コレクションを作成するたびに一意の Amazon リソースネーム (ARN) が割り当てられます。各顔コレクションは、アカウントの特定の AWS リージョンで作成します。コレクションを作成すると、最新バージョンの顔検出モデルに関連付けられます。詳細については、「モデルのバージョニング」を参照してください。

コレクションに対しては、以下の管理オペレーションを実行できます。

コレクション内の顔の管理

顔コレクションを作成したら、それに顔を保存できます。Amazon Rekognition では、以下のオペレーションを使用してコレクション内の顔を管理できます。

  • IndexFaces オペレーションでは、入力イメージ (JPEG または PNG) 内の顔を検出し、これを指定された顔コレクションに追加します。イメージで検出された顔ごとに一意の顔 ID が返されます。顔を保存したら、顔コレクション内で一致する顔を検索できます。詳細については、「コレクションへの顔の追加」を参照してください。

  • ListFaces オペレーションは、コレクション内の顔を一覧表示します。詳細については、「コレクションへの顔の追加」を参照してください。

  • DeleteFaces オペレーションは、コレクションから顔を削除します。詳細については、「コレクションからの顔の削除」を参照してください。

IndexFaces を使用するためのガイダンス

一般的なシナリオで IndexFaces を使用するためのガイダンスを以下に示します。

重要または公共安全のアプリケーション

  • 各画像に 1 つの顔のみを含む画像で IndexFaces を呼び出し、返された顔 ID を画像の被写体の識別子と関連付けます。

  • インデックス作成の前に DetectFaces を使用して、画像内の顔が 1 つのみであることを確認できます。複数の顔が検出された場合は、確認後、顔が 1 つだけの状態で画像を再送信してください。これにより、誤って複数の顔にインデックスを作成し、それらを同じ人物に関連付けることを防ぎます。

写真共有とソーシャルメディアアプリケーション

  • 家族のアルバムのようなユースケースでは、複数の顔を含む画像に制限なく、IndexFaces を呼び出す必要があります。このような場合は、すべての写真の各人物を識別し、その情報を使用して写真に写っている人物ごとに写真をまとめる必要があります。

一般的な使用

  • 照合の質を向上させるために、特に異なる顔の属性 (顔のポーズ、顔面の毛など) を持つ同一人物の複数の異なる画像にインデックスを付けます。

  • その後の顔照合能力を向上させるために、失敗した照合が正しい顔識別子で索引付けされることができるようにレビュープロセスを含めます。

  • 画像品質の詳細については、「顔比較用の入力イメージに関する推奨事項」を参照してください。

コレクション内の顔の検索

顔コレクションを作成して顔を保存したら、顔コレクション内で一致する顔を検索できます。Amazon Rekognition では、コレクション内で以下に一致する顔を検索できます。

CompareFaces オペレーションと顔検索オペレーションは、以下のように異なります。

  • CompareFaces オペレーションでは、ソースイメージ内の顔とターゲットイメージ内の顔を比較します。この比較の範囲は、ターゲットイメージで検出された顔に制限されます。詳細については、「イメージ間の顔の比較」を参照してください。

  • SearchFacesSearchFacesByImage では、顔 (FaceId または入力イメージのいずれかで識別) と特定の顔コレクション内のすべての顔を比較します。したがって、この検索の範囲はずっと広くなります。また、顔コレクション内に保存した顔の特徴情報は保持されるため、一致する顔を何回でも検索できます。

類似度しきい値を使用した顔のマッチング

類似度しきい値が入力パラメータとして提供されるため、すべての検索オペレーション (CompareFacesSearchFaces、および SearchFacesByImage) の結果を制御できます。

SearchFacesSearchFacesByImage の類似度しきい値の入力属性 FaceMatchThreshold は、マッチングされる顔の類似度に基づいて返される結果の数を制御します(この属性は CompareFaces では SimilarityThreshold です)。 Similarity レスポンス属性値がしきい値より小さいレスポンスは返されません。このしきい値は、ユースケースに合わせて調整することが重要です。この値により、一致結果に含まれる誤認識の数が変わるためです。これにより、検索結果のリコールが制御されます。しきい値が低いほど、リコールが高くなります。

すべての機械学習システムは確率的です。適切な類似度しきい値の設定には、ユースケースに応じて、お客様の判断が必要です。たとえば、外見が類似した家族を識別する写真アプリケーションを構築する場合は、より低いしきい値 (80% など) を選択できます。一方、多くの法律執行のユースケースでは、偶発的な誤認識を減らすため、99% 以上の高いしきい値を使用することをお勧めします。

FaceMatchThreshold に加えて、偶発的な誤認識を減らすための手段として Similarity レスポンス属性を使用できます。たとえば、低いしきい値 (80% など) を使用して、より多くの結果が返されるようにできます。その後、レスポンス属性 Similarity (類似度) を使用してそれらの結果を絞り込んで、アプリケーションで正しいレスポンスが得られるようにフィルタ処理できます。ここでも、高い類似度 (99% 以上など) を指定すると、誤認識のリスクが軽減されます。