从 VNFaceObservation 对人脸进行分类

Classify faces from VNFaceObservation

我正在使用 Vision 框架检测多张图片上的人脸和物体,效果非常好。

但是我有一个在文档中找不到的问题。 iOS 上的照片应用程序对人脸进行分类,您可以单击人脸并显示所有包含此人脸的图像。

如何像照片应用程序一样对人脸进行分类?是否有任何唯一标识符或类似标识符来执行此操作?

谢谢!

您可能想查看此存储库 https://github.com/KimDarren/FaceCropper

我对此进行了测试并且效果很好,您甚至可以根据需要进行自定义。

我认为它们不是唯一识别从视觉框架返回给您的面孔的方法。我检查了 UUID 属性 a VNFaceObservation 并且它每次都是不同的标识符。

您可能需要制作自己的 CoreML 模型或 wait/find 一个好的第 3 方模型。

我希望有人能证明我是错的,因为我也想知道。

为了唯一识别人脸,首先需要检测人脸,然后运行通过CoreML模型(或其他图像分类模型类型,如Tensorflow模型)对其进行分类图像并告诉您您捕获的面孔与训练到您的模型中的其中一张面孔相匹配的可能性。

Apple Photos 使用机器学习(如他们今年的 iPhone 展示主题演讲中所述)来训练设备识别照片中的面孔。培训将在设备本地进行,但是,Apple 不提供任何 public API 来让我们这样做。

您可以将照片数据(使用 Paras 上面提到的工具裁剪的面部)发送到您的服务器并让它训练模型(使用 CoreML 的训练器或 AWS 或您自己的服务器上的 Nvidia DIGITS 之类的东西),将其转换到 CoreML,编译模型,然后将其下载到您的设备并旁加载模型。这与您将要达到 "magic" Photos 使用的面部识别一样接近,因为设备目前只能读取 compiled 模型。