如何使用通过iPhone true-depth
相机捕获的深度数据来区分真实的3D人脸和该人的照片?要求是将其用于身份验证。
[我做了什么:创建了一个示例应用程序,以获取相机前面的连续内容AVDepthData
。
答案
目前,AVFoundation API没有Bool实例属性,可让您确定它是真实的面孔还是照片,但是您可以使用Apple Vision框架来识别和分类CVPixelBuffer中包含的人脸或矩形照片。但是请记住,您需要ZDepth到RGB转换才能使用Apple Vision(计算机视觉不适用于Depth数据)。
mlmodel
,其中包含ZDepth面部图像的许多变体以及矩形平面。您可以使用Apple CreateML应用程序来生成轻便有效的mlmodel
文件。
有用的链接
使用Vision检测和分类图像的样本代码,您可以找到here和here。您也可以阅读this帖子,以了解如何将AVDepthData转换为常规RGB模式。
在这种特殊情况下,我不建议将ARKit框架用于人脸识别操作,因为由于其“硬核”跟踪系统,它带来了额外的大量CPU计算。