面部增强是近年来比较流行的AR应用形式,主要应用方式是通过AR的面部追踪技术实现对人脸检测,根据特征结构识别出人脸后,将业务模型加载到用户面部的指定位置。
ARKit的面部追踪功能于2017年上线,主要基于iPhone手机的前置TrueDepth深度摄像头。检测相机画面中的人脸,然后覆盖匹配的虚拟内容并实时动态匹配人脸表情动画。
ARKit以每秒60帧的速度,基于关键特征点和欧拉角估计每一帧中人脸的位置和方向,由此提供人脸拟合三角网络[Face Mesh Geometry],构成ARFaceGeometry对象,ARFaceGeometry包含渲染这个面部网络所需的所有信息,并且通过顶点、三角形、检测坐标来进行表示。
通过ARFaceGeometry,可以得到面部追踪锚点[FaceAnchor],其中包含了执行面部追踪所需的所有信息。
为了逼真的渲染这样的面部几何模型,ARKit 以脸部作为 Light Probe,使用当前场景的光照进行调整光强、光照方向和色温,这足以满足绝大部分的AR应用的需求。
如果开发者追求更逼真的效果,也可以通过 ARKit 提供的二次球谐系数[Spherical harmonics cofficients]收集当前场景对光照条件进一步对面部增强AR应用进行优化。
ARKit提供了实时表情追踪,基于实时表情追踪,可以让我们添加的AR虚拟内容跟随我们的面部表情进行变化。
实时表情追踪原理: 混合形状[Blend Shapes]
表情其实是由混合形状[Blend Shapes]构成的,ARKit可以识别出50多种不同的混合形状。
假定一个0和1之间的值,1意味着完全激活,0则说明没有激活,例如当我们张开嘴时,下颚打开系数值将接近1,如果合上嘴,值接近0。
运行环境
运行面部追踪项目,要求带有前置TrueDepth摄像头的iOS设备:iPhone X,iPhone XS,iPhone XS Max 或 iPhone XR,iPad Pro (11英寸) 或 iPad Pro(12.9英寸,第三代),iOS 11.0 或更高版本。
开发工具 Xcode 10.0 或更高版本,ARKit在iOS Simulator中不可用。
版本问题
如果没有找到想要的AR Foundation 版本,打开预览版本。
模型位置
基于位置偏移的AR展示可能会出现不同人群体验效果不同,比如儿童的眼睛离中心点的距离小于成人,如果以儿童为参照调调整眼镜类AR试穿物品,成人使用的时候位置就会有偏差,反过来也是一样。
注:首先我使用了导入项目的形式,但是反复报错,各种错误,于是采用了直接打开AR Foundation的项目,经测试,成功。
以上图片均进行处理,只为显示面部增强和表情追踪效果。
库(类) | 说明 |
---|---|
ARSession | 管理生命周期,如决定开始、暂停和结束 |
ARInputManager | 管理输入相关信息 |
ARSession Origin | 原点,用于实现Transform转换 |
ARCamera | 自带相机 |
ARFaceManager | |
FacePrefab | 模型的预制件 |
Maxinum Face Count | 最多同时追踪人脸数量 |
注:本ARKit系列博客是根据 【子羽老师】发布在腾讯课堂的ARKit视觉风暴课程学习整理总结:https://ke.qq.com/course/575145
本文由 代码君 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://www.loseboy.cn/archives/08arkit15之面部增强入门
最后更新:2020-06-13 19:47:36
Update your browser to view this website correctly. Update my browser now