我有一个ARSession
,它使用ARWorldTrackingConfiguration
作为其配置的一部分。我还通过以下方式启用了面部跟踪:
configuration.userFaceTrackingEnabled = true
在func session(_ session: ARSession, didUpdate frame: ARFrame)
代理方法中,我可以成功地从面向世界的摄像机中获取frame.capturedImage
,但似乎没有办法从面向脸部的摄像机中访问帧。
我的这个假设正确吗?
如果是这样,当同时使用面部和世界跟踪时,是否有其他方法可以访问两个摄像机的帧?
1条答案
按热度按时间fykwrbwg1#
关于两个同步AR配置
一般来说,一个ARSession一次只能运行一个ARConfiguration。但是有一个例外:我们可以在
World
跟踪配置中使用Face
跟踪配置。但是,ARWorldTrackingConfiguration
在这种情况下是“主”配置(因此Face
跟踪是“补充”配置)。两台摄像机(前后)每秒产生60个ARFrame,包含RGB、深度、
anchors
、轴、特征点等。每台摄像机都有自己的ARFrame,可用于定义***内部和外部ARCamera参数***(如3x 3摄像机矩阵或4x 4变换矩阵)。然而,在ARKit 5.0中,如果您正在使用激活的示例属性
userFaceTrackingEnabled
运行World tracking config,您只能访问来自后置摄像头的ARFrames-目前无法访问来自前置摄像头的同步ARFrames。但是,当然,你可以在World跟踪环境中控制所有的
ARFaceAnchors
。提示:
在ARKit 5.0中,您可以在以下设备上使用**
ARFaceTrackingConfiguration
**config:| 真深度传感器|iOS版本|中央处理器|深度数据|
| - -|- -|- -|- -|
| 如果是|第11代操作系统.......第15代操作系统|A11、A12、A13、A14、A15|真的|
| 如果否|第13代操作系统.......第15代操作系统|A12、A13、A14和A15|假的|
因此,作为开发人员,您需要检查当前设备是否支持面部跟踪配置: