データセットを作成し、その中にイメージのインデックスを作成した後、顔検索機能を使用して、指定したイメージに最も類似する上位 N 個のイメージをデータセットから取得できます。この機能は、VIP の本人確認などのシナリオで役立ちます。
利用シーン
スマートセキュリティ監視
顔認識技術を使用して、工場、学校、ショッピングモール、レストランなどの混雑した場所を監視できます。この技術は、群衆を自動的にカウント、識別、追跡できます。また、潜在的なセキュリティリスクのある動作やエリアをマークし、アラートを送信することもできます。これにより、情報に基づいたセキュリティ管理が強化され、手動での監視コストが削減されます。
工場の安全生産
この機能は、生産安全監視のためのソフトウェアとハードウェアを組み合わせたソリューションを提供します。このソリューションは、工場エリアや作業場のカメラからのイメージを使用して侵入者を検出し、セキュリティリスクを低減します。
顔認識によるアクセスコントロール
顔認識をアクセスゲートに統合し、顔情報を迅速に登録して、安全で信頼性の高い顔データベースを作成できます。ユーザーは顔をスキャンするだけで通過できます。これにより、ID カードの忘れや不正アクセスなどの問題が解決され、さまざまな企業、商業、住宅環境でのアクセスコントロールが可能になります。
スマート顔認識勤怠
この機能は、モバイル、カメラベースのシームレス、およびオールインワンマシンの 3 つの勤怠ソリューションを提供します。これらのソリューションは、1 秒以内にユーザーの最も類似した顔を迅速に検索できます。これにより、正確なチェックインが保証され、代理打刻などの不正行為が防止され、企業のセキュリティ管理が強化されます。
前提条件
バインディングメソッド (CreateBinding - バインディングタスクの作成) またはアクティブインデックス作成メソッド (IndexFileMeta - オブジェクトメタデータのインデックス作成 または オブジェクトメタデータのバッチインデックス作成) を使用して、比較対象のイメージをデータセット (CreateDataset - データセットの作成) にインデックス作成済みであること。
データセットに同一人物のイメージが 2 枚以上含まれており、少なくとも 2 枚は、次の基準を満たす高解像度の顔イメージであること:
顔のサイズが 75 × 75 ピクセルより大きいこと。
頭部姿勢 (HeadPose) の 3 つのサブキーの絶対値がすべて 30 度未満であること。
顔品質 (FaceQuality) が 0.8 より大きいこと。
Simple Message Queue (旧称:MNS) キューを作成済みであること。詳細については、「キューユーザーガイド」をご参照ください。
説明このトピックでは、Simple Message Queue (旧称:MNS) の Python SDK を使用してタスク通知を取得する方法の例を示します。タスク情報の取得に関する詳細については、「非同期タスク処理」をご参照ください。
ステップ 1:ファイルのアップロード
OSS コンソールを使用して、比較したい写真をバインドされたバケットにアップロードします。

ステップ 2:データセットへの写真の追加
Intelligent Media Management コンソールを使用して、OSS からデータセットに写真を追加します。手順は次のとおりです:


または、オブジェクトメタデータのバッチインデックス作成 API を使用して、顔写真の情報を集中データストレージにバッチで書き込むこともできます。これは非同期プロセスです。メッセージの Notification パラメーターを設定して、タスク情報を取得できます。
ステップ 3:類似顔検索タスクの作成
CreateFacesSearchingTask - イメージ顔検索 操作を呼び出して、指定されたイメージ内の最大の顔に最も類似する上位 N 枚の写真を検索できます。次の例は、test-dataset データセット内で、OSS アドレス oss://test-bucket/test-object.jpg にあるイメージに類似するイメージを検索する方法を示しています。
リクエスト例
TopicName パラメーターは MNS トピック名を指定します。この例では、トピックは tf-test-mns-queue です。
MaxResults パラメーターは、返される類似イメージの数を指定します。このパラメーターはオプションです。デフォルト値は 5 です。値は 0 から 100 までの整数である必要があります。
{
"ProjectName": "test-project",
"DatasetName": "test-dataset",
"Sources": [{"URI": "oss://test-bucket/test-object.jpg"}],
"Notification": {"MNS": {"TopicName": "tf-test-mns-topic"}},
"MaxResult": 100
}応答例
{
"TaskId": "CreateFacesSearchingTask-dedf1bd9-7edc-4d16-97f2-bbb2a4fc****",
"RequestId": "BB9C38A3-BB7A-53B7-A168-6DBC1CF6****",
"EventId": "0DA-1TAZO4ClNnKbn4Ungls8SOk****"
}サンプルの応答は、類似顔検索タスクが作成されたことを示します。
サンプルコード
ステップ 4:類似顔検索結果の表示
顔検索タスクが作成された後、MNS サービスからタスク情報を取得できます。次の例は、Python SDK を使用してタスク情報を取得する方法を示しています。詳細については、「ステップ 4:メッセージの受信と削除」をご参照ください。
サンプルフォルダで、次のコマンドを実行します。
python recvdelmessage.py tf-test-mns-queueコンソールで返される JSON 形式の結果をフォーマットします。次のコードは、Message フィールドの内容のみを示しています。
{ "ProjectName": "test-project", "DatasetName": "test-dataset", "RequestId": "BB9C38A3-BB7A-53B7-A168-6DBC1CF6****", "StartTime": "2023-01-04T05:08:28.582Z", "EndTime": "2023-01-04T05:08:28.785Z", "UserData": "", "TaskType": "FacesSearching", "TaskId": "CreateFacesSearchingTask-dedf1bd9-7edc-4d16-97f2-bbb2a4fc****", "Status": "Succeeded", "Code": "", // Code フィールドが空の場合は、タスクが成功したことを示します。 "Message": "Success", "SimilarFaces": [ { "URI": "oss://test-bucket/test-object.jpg", "Boundary": { "Width": 109, "Height": 150, "Left": 69, "Top": 49 }, // 類似顔のリスト。 "SimilarFaces": [ { "URI": "oss://test-bucket/test-object-1.jpg", "FigureId": "4cacbb71-52fd-4d3f-9d14-0840fecee0bf", "Similarity": 0.73321015 }, { "URI": "oss://test-bucket/test-object-2.jpg", "FigureId": "7a4cd08d-bcd0-4bc4-93f4-1291075819cf", "Similarity": 0.77035695 }, { "URI": "oss://test-bucket/test-object-3.jpg", "FigureId": "da920124-410a-4493-9fd3-1a3b366dca86", "Similarity": 0.9836307 } ] } ] }説明メッセージの内容は、test-dataset データセット内で、次の 3 つのイメージにクエリイメージの顔と類似する顔が含まれていることを示しています:
イメージ 1:OSS URI は oss://test-bucket/test-object-1.jpg です。このイメージの顔とクエリイメージの顔との類似度スコアは 0.73321015 です。
イメージ 2:OSS URI は oss://test-bucket/test-object-2.jpg です。このイメージの顔とクエリイメージの顔との類似度スコアは 0.77035695 です。
イメージ 3:OSS URI は oss://test-bucket/test-object-3.jpg です。このイメージの顔とクエリイメージの顔との類似度スコアは 0.9836307 です。