PersistedFaceIds 是 Microsoft Cognitive Services Face API 中的一个重要概念,它代表了已持久化存储的人脸标识符。当您使用 Face API 检测人脸并将其添加到 Person 对象或 LargePersonGroup 中时,系统会为每个人脸分配一个唯一的 PersistedFaceId。
PersistedFaceIds 主要用于以下场景:
// 假设已经初始化了FaceServiceClient faceClient
// 1. 创建PersonGroup
string personGroupId = "mygroup";
await faceClient.PersonGroup.CreateAsync(personGroupId, "My Group");
// 2. 创建Person
Person person = await faceClient.PersonGroupPerson.CreateAsync(personGroupId, "John Doe");
// 3. 检测人脸并添加到Person
string imageUrl = "https://example.com/john.jpg";
IList<DetectedFace> detectedFaces = await faceClient.Face.DetectWithUrlAsync(imageUrl);
string faceId = detectedFaces[0].FaceId;
// 4. 添加人脸并获取PersistedFaceId
PersistedFace persistedFace = await faceClient.PersonGroupPerson.AddFaceFromUrlAsync(
personGroupId, person.PersonId, imageUrl, faceId.ToString());
// 现在persistedFace.PersistedFaceId就是持久化的人脸ID
Console.WriteLine($"PersistedFaceId: {persistedFace.PersistedFaceId}");
// 5. 训练PersonGroup
await faceClient.PersonGroup.TrainAsync(personGroupId);
// 6. 识别时使用PersistedFaceIds进行分组
IList<DetectedFace> testFaces = await faceClient.Face.DetectWithUrlAsync("https://example.com/test.jpg");
var faceIds = testFaces.Select(face => face.FaceId).ToList();
IList<IdentifyResult> results = await faceClient.Face.IdentifyAsync(faceIds, personGroupId);
foreach (var result in results)
{
if (result.Candidates.Count > 0)
{
Console.WriteLine($"识别到PersonId: {result.Candidates[0].PersonId}");
// 可以进一步获取Person信息
Person identifiedPerson = await faceClient.PersonGroupPerson.GetAsync(personGroupId, result.Candidates[0].PersonId);
Console.WriteLine($"姓名: {identifiedPerson.Name}");
}
}
原因:
解决方案:
原因:
解决方案:
原因:
解决方案:
通过合理使用 PersistedFaceIds,您可以有效地在 Face API 中实现人脸分组和识别功能。
没有搜到相关的文章