我正在使用Vision
框架来检测多个图像上的人脸和对象,并且效果非常好。
但是我有一个在文档中找不到的问题。iOS 上的照片应用程序对人脸进行分类,您可以单击人脸并显示该人脸的所有图像。
如何对照片应用程序等人脸进行分类?是否有任何唯一标识符或类似的标识符来执行此操作?
谢谢!
我正在使用Vision
框架来检测多个图像上的人脸和对象,并且效果非常好。
但是我有一个在文档中找不到的问题。iOS 上的照片应用程序对人脸进行分类,您可以单击人脸并显示该人脸的所有图像。
如何对照片应用程序等人脸进行分类?是否有任何唯一标识符或类似的标识符来执行此操作?
谢谢!
为了唯一识别人脸,首先需要检测人脸,然后通过 CoreML 模型(或其他图像分类模型类型,例如 Tensorflow 模型)运行它,以便对图像进行分类并告诉你人脸的可能性您捕获的与训练到模型中的其中一张脸相匹配。
Apple Photos 使用机器学习(正如他们在今年 iPhone 发布的主题演讲中提到的那样)来训练设备识别照片中的面孔。培训将在设备上本地执行,但是,Apple 尚未提供任何公共 API 来允许我们执行此操作。
您可以将照片数据(使用上面提到的 Paras 工具的面部裁剪)发送到您的服务器并让它训练模型(使用 CoreML 的训练器或 AWS 或您自己的服务器上的 Nvidia DIGITS 之类的东西),将其转换为 CoreML,编译然后将模型下载到您的设备并旁加载模型。目前,这与照片使用的“神奇”人脸识别非常接近,因为该设备只能读取已编译的模型。
我不认为它们是一种唯一识别从视觉框架返回给您的面孔的方法。我检查了UUID
属性 a VNFaceObservation
,它每次都是不同的标识符。
您可能必须制作自己的 CoreML 模型,或者只是等待/找到一个好的第 3 方模型。
我希望有人证明我错了,因为我也想知道。
你可能想看看这个 repo https://github.com/KimDarren/FaceCropper
我对此进行了测试并且效果很好,您甚至可以根据需要进行自定义。