DeleteAsync 方法在 Azure 人脸识别服务中不起作用

Posted

技术标签:

【中文标题】DeleteAsync 方法在 Azure 人脸识别服务中不起作用【英文标题】:DeleteAsync method doesn't work in Azure Face Recognition Service 【发布时间】:2021-04-02 19:41:41 【问题描述】:

我们使用 Azure 认知服务为我们的应用程序添加人脸识别功能。除了删除方法之外的一切都可以正常工作。根据文档,删除用户的 delete 方法和从系统中仅删除用户的面部数据的 deleteFace 方法。起初,删除过程成功进行。但是当被删除的人的照片作为输入提供给系统时,它会返回给定照片的候选者,其中包含他/她的老人 ID。但是,我们无法获取给定 ID 的姓名等人员数据。此外,此人不在人员列表中,因此系统返回未找到异常。当我们在识别过程中对给定的输入使用client.Face.IdentifyAsync方法时,系统返回被删除人的旧人id。

我们在 DeleteFaceAsync 和 DeleteAsync 等两种不同的方法中尝试了删除过程。在 DeleteFaceAsync 方法中,我们尝试将那个人的人脸数据一个一个地删除,然后是这个人本身。然后在 DeleteAsync 方法中,我们从人员列表中删除人员,假设它会自动删除附加到自身的人脸。但是上述方法都没有奏效。我们仍然面临同样的错误。那么,我们应该怎么做才能从系统中彻底删除一个人呢?

 IdentifyAsync method still returns candidate for deleted person id.

【问题讨论】:

【参考方案1】:

一旦你调用DeleteAsync函数移除一个人,这个人会立即从person group的person list中移除,但是如果你想调用identify函数,你应该先训练你的person group,如果有的话是对您的人员组的任何修改。

如果不这样做,您的组识别模型尚未更新,它仍然可以识别被删除的人。

official Face API reference中也提到过:

我这边测试过,训练完我的群,然后调用identify函数,我的群就无法识别被移除的人了。

【讨论】:

非常感谢您的回答。我做了建议的修改,效果很好!

以上是关于DeleteAsync 方法在 Azure 人脸识别服务中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

用Azure上Cognitive Service的Face API识别人脸

使用 Angular 7 使用 Azure Face Api 进行人脸识别

Python中人脸识别的预处理方法

opencv人脸识别用哪种方法比较好?Eigenfaces?Fisherfaces?LBP?

PersonID 计算(Azure 人脸 API)

在浏览器中使用tensorflow.js进行人脸识别的JavaScript API