大多数浏览器和
Developer App 均支持流媒体播放。
-
通过 ARKit 实现面部跟踪
ARKit 和 iPhone X 在 AR app 中实现了革命性的人脸跟踪能力。了解您的 app 如何高精度且实时地检测用户脸部的位置、脸部拓扑和他们的表情。学习如何运用实时自拍效果,以及如何使用面部表情来驱动 3D 角色。
资源
相关视频
WWDC17
-
下载
iOS 11 引入了 ARKit 一个全新的用来创作增强现实 App 的框架 在 iPhone 和 iPad 上都可以使用 ARKit 将 App 带到了屏幕以外的世界 通过将数字化的物体放置于你所处的环境中 使你能够以全新的方式 与现实世界互动 在 WWDC 我们介绍了 关于 ARKit 的三项主要功能 位置跟踪会检测你设备的摆放姿势 使你能够将你的 iPhone 或者 iPad 作为你进入环绕你的数字化世界的窗口 场景理解会检测水平面 例如桌面 以找到稳定的固定点 并对环境光的情况进行估算 我们还整合了一些渲染技术 例如 SpriteKit SceneKit 和 Metal 以及主流游戏引擎 例如 Unity 和 Unreal 现在 有了 iPhone X ARKit 开始转而关注你本身 通过前置摄像头来提供 Face Tracking 这一新功能实现了非常可靠的面部检测 以及六种自由度的位置追踪 面部表情也同样被实时追踪 一个定制出来的三角网格 和加权参数会被提供给你的 App 这些参数代表着被检测面部的超过 50 种特定的肌肉运动 对于 AR 我们提供 来自摄像头的前置彩色画面 同样也有前景深画面 ARKit 使用你的面部来作为一个光线探头 来估算光线环境 并生成球谐系数 你可以将其应用到你的渲染当中 正如我之前所提到的 所有这些都是 iPhone X 独占的 通过 Face Tracking 你可以做一些非常有意思的事情 首先是自拍特效 你可以将一个半透明结构 渲染到面部网格上 例如一个虚拟刺青 一个面部彩绘 一幅妆容 长出胡子来 或者可以用 珠宝首饰 面具 帽子和眼镜来覆盖网格 其次是面部采集 你可以采集 实时面部表情 并将其作为一个操纵装置来将面部表情 投射到虚拟人偶 或者游戏中的角色上 那么让我们来深入看一看细节部分 并了解一下如何上手 Face Tracking 你需要做的第一件事就是创建一个 ARSession ARSession 是用来处理所有 为 ARKit 所做的数据处理的对象 从配置设备 到运行不同的 AR 技术的所有任务 要运行一个会话 我们首先需要描述出 对于这个 App 我们想要怎样的追踪 要完成这个任务 你需要创建一个特定的用于 Face Tracking 的 ARConfiguration 并将其设置好 要开始这一处理过程 你只需要在会话中调用 run(_ configuration) 方法 并提供你想要运行的配置 在内部 ARKit 会配置一个 AVCaptureSession 和 CMMotionManager 以便开始接收图像 和传感器数据 在处理过后 结果会以 ARFrames 的形式输出 每一个 ARFrame 都是一张即时快照 提供出相机图片 追踪数据 和固定点 基本上是 所有需要用来渲染你的场景的东西 现在再让我们来更近一步来观察一下 用于 Face Tracking 的 ARConfiguration 我们添加了一个新的子类 名为 ARFaceTrackingConfiguration 这是一个简单的配置子类 来告知 ARSession 通过前置摄像头 启用 Face Tracking 有一些基本特性被用来检查 你设备上的 Face Tracking 的可用情况 并决定是否启用光线估算 之后 你一旦调用了 run 方法 你就会开始追踪并开始接收 ARFrames 一旦有面部被检测到 这一会话会生成一个 ARFaceAnchor 代表着主要面部的 是在镜头中最大 离得最近的那张脸 ARFaceAnchor 提供给你全局坐标中的面部姿态 通过其本身超类中的变形属性 它同样提供给你 当前面部表情的 3D 拓扑结构和参数 正如你所见 所有都被追踪到了 网格以及更新参数 都是实时的 每秒 60 次 现在 来关注一下拓扑结构 ARKit 会提供给你一个非常细化的面部 3D 网格 实时根据尺寸 形状定制 并与用户的面部表情相匹配 这一数据可以通过几种不同方式获得 首先是 ARFaceGeometry 类 它本质上是一个三角网格 一系列的顶点 三角指数 和结构坐标 你可以在你的渲染器中将其形象化 ARKit 同样也提供了一个非常便捷的方式来将 SceneKit 中的网格形象化通过 ARSCNFaceGeometry 类 定义了一个几何物体可以 被连接在任意 SceneKit 节点上 除了几何网格 我们也有一样叫做 Blend Shapes(融合外形)的技术 Blend Shapes 可以根据 当前面部表情提供一个高级模型 它们是一个命名系数的字典 代表着有特定特征的姿势 你的眼皮 眉毛 下巴 鼻子 等等 都与它们的自然位置有关 它们是从 0 到 1 的浮点值 都是实时更新的 所以你可以使用这些 Blend Shapes 系数 来将一个 2D 或者 3D 人物变为动态或操纵它 在某种程度上它直接反映出了用户的面部运动 为了让你们了解到哪些是可用的 这是一个 Blend Shapes 系数的列表 这其中每一个都是独立追踪并更新的 左右两边的眉毛 你眼睛的位置 你的下巴 你的笑容 等等
与渲染面部几何 或动画化 3D 角色相辅相成的东西 是真实光线照明 通过将你的脸作为一个光线探头 运行面部检测的 ARSession 可以提供给你定向光线估算 它代表着世界坐标中的 光线强度和方向 对于大部分 App 来说 这一光线矢量 及其强度都是完全足够的 但 ARKit 还提供 二级球谐系数 代表着场景中所检测到的光线的强度 所以对于有更高要求的 App 而言 你同样可以利用它 还有几个特性需要提一下 除了前置摄像头图像的色彩数据 ARKit 同样可以为你的 App 提供 前置景深图像 我在这里将它作为一个灰度图像展示 数据本身会作为 AVDepthData 对象提供 还有时间戳附在上面 但请注意这是在 15Hz 的频率下被采集的 比彩色图像的频率要低一些 ARKit 会在 60Hz 的频率下采集
最后 介绍一个可以被用于任何 ARKit 会话的特性 跟 Face Tracking 在一起会非常有意思 那就是音频采集 现在是默认禁用的 但如果启用了 那么当你的 ARSession 在运行的时候 它会通过麦克风来采集音频样本 并发送一系列的 CMSampleBuffers 到你的 App 中 所以如果你想要同时采集 用户的面部和他们的声音 这会是非常有用的 要了解更多关于 Face Tracking 信息 以及样本代码的链接 请查看我们的开发者网站 developer.apple.com/arkit 感谢你的观看
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。