gpt4 book ai didi

swift - 是否可以从 ARFrame 访问多个摄像头?

转载 作者:行者123 更新时间:2023-12-03 09:24:26 30 4
gpt4 key购买 nike

我有一个 ARSession使用 ARWorldTrackingConfiguration作为其配置的一部分。我还通过以下方式启用了面部跟踪:

configuration.userFaceTrackingEnabled = true
func session(_ session: ARSession, didUpdate frame: ARFrame)委托(delegate)方法,我可以成功得到 frame.capturedImage来自面向世界的相机,但似乎没有办法从面向世界的相机访问框架。
我在这个假设中正确吗?
如果是这样,当同时使用面部和世界跟踪时,是否有其他方法可以访问两个摄像头的帧?

最佳答案

关于两个同时的 ARConfigurations
通常,一个 ARSession 一次只能运行一个 ARConfiguration。但有一个异常(exception):我们可以使用 Face World 中的跟踪配置跟踪配置。但是,ARWorldTrackingConfiguration在这种情况下是“主要”(因此 Face 跟踪是“补充”配置)。
两个摄像头(后置和前置)每秒产生 60 个 ARFrame,包含 RGB、深度、 anchors ,轴,特征点等。而且每个相机都有自己的ARFrames,可以用来定义内在和外在 ARCamera 参数 (如 3x3 相机矩阵或 4x4 变换矩阵)。

@NSCopying var currentFrame: ARFrame? { get }
但是,在 ARKit 5.0 中,如果您使用已激活的实例属性 userFaceTrackingEnabled 运行世界跟踪配置,您只能访问来自后置摄像头的 ARFrame——目前无法访问来自前置摄像头的同步 ARFrame。
let config = ARWorldTrackingConfiguration()

if ARWorldTrackingConfiguration.supportsUserFaceTracking {
config.userFaceTrackingEnabled = true
}
sceneView.session.run(config, options: [])

let currentFrame = sceneView.session.currentFrame
let rearCameraTransform = currentFrame?.camera.transform
let rearCameraAnchors = currentFrame?.anchors

print(rearCameraTransform?.columns.3 as Any)
print(rearCameraAnchors as Any)
但是,当然,您可以控制所有 ARFaceAnchors在世界跟踪环境中。
enter image description here
提示:
在 ARKit 5.0 中,您可以使用 ARFaceTrackingConfiguration 在以下设备上配置:


原深感传感器
iOS版
中央处理器
深度数据


如是
iOS11 ....... iOS15
A11、A12、A13、A14、A15
真的

如果不
iOS13 ....... iOS15
A12、A13、A14、A15
错误的


因此,作为开发者,您需要检查当前设备是否支持人脸跟踪配置:
import ARKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

if !ARFaceTrackingConfiguration.isSupported {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
window?.rootViewController = storyboard.instantiateViewController(withIdentifier: "unsupportedDeviceMessage")
}
return true
}
}

关于swift - 是否可以从 ARFrame 访问多个摄像头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62784357/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com