08_ARKit1.5之面部增强入门

什么是面部增强

  面部增强是近年来比较流行的AR应用形式,主要应用方式是通过AR的面部追踪技术实现对人脸检测,根据特征结构识别出人脸后,将业务模型加载到用户面部的指定位置。
  ARKit的面部追踪功能于2017年上线,主要基于iPhone手机的前置TrueDepth深度摄像头。检测相机画面中的人脸,然后覆盖匹配的虚拟内容并实时动态匹配人脸表情动画。

面部追踪[Face Tracking]技术原理

  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。


实时表情追踪原理: 凝视跟踪 FaceAnchor的成员变量: leftEyeTransform 左眼 rightEyeTransform 右眼 lookAtPoint 两个凝视方向的交叉点 ARKit 可以在 6 自由度跟踪左眼和右眼。 ![凝视追踪](https://halo-1252030657.cos.ap-chengdu.myqcloud.com/blog/image_1589457934434.png)
实时表情追踪原理: 舌头跟踪 舌头追踪以新的混合形状出现,当用户伸出舌头时,这个混合形状,假设值则为1,反之则为0。 ![舌头跟踪](https://halo-1252030657.cos.ap-chengdu.myqcloud.com/blog/image_1589458034687.png)

ARKit Face Tracking 注意事项

  1. 运行环境
      运行面部追踪项目,要求带有前置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中不可用。

  2. 版本问题
      如果没有找到想要的AR Foundation 版本,打开预览版本。
    AR Foundation预览版本

  3. 模型位置
      基于位置偏移的AR展示可能会出现不同人群体验效果不同,比如儿童的眼睛离中心点的距离小于成人,如果以儿童为参照调调整眼镜类AR试穿物品,成人使用的时候位置就会有偏差,反过来也是一样。

体验 AR Foundation 示例

  1. 下载示例
    https://github.com/Unity-Technologies/arfoundation-samples

  2. 打开示例项目
    image.png

注:首先我使用了导入项目的形式,但是反复报错,各种错误,于是采用了直接打开AR Foundation的项目,经测试,成功。

  1. 运行效果
    FacePose

FaceMesh

ARKitFaceBlendShapes

EyeLasers

EyePoses

以上图片均进行处理,只为显示面部增强和表情追踪效果。

ARFoundation ARKit核心API

库(类)说明
ARSession管理生命周期,如决定开始、暂停和结束
ARInputManager管理输入相关信息
ARSession Origin原点,用于实现Transform转换
ARCamera自带相机
    
ARFaceManager  
FacePrefab模型的预制件
Maxinum Face Count最多同时追踪人脸数量

注:本ARKit系列博客是根据 【子羽老师】发布在腾讯课堂的ARKit视觉风暴课程学习整理总结:https://ke.qq.com/course/575145

# AR  ARKit 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×