【问题标题】:Setting ARCamera exposure time in ARKit在 ARKit 中设置 ARCamera 曝光时间
【发布时间】:2020-04-23 19:38:54
【问题描述】:

我正在努力开发一个使用 ARKit 的应用程序。为了使应用程序实现其主要目的,即跟踪面部,良好的照明条件是必不可少的。在 AVFoundation 中,有一个设置自定义曝光时间的功能。但是我没有找到在 ARKit 中设置它的方法。我刚刚找到了get对象frame.camera.exposureDuration。那么如何使用 ARKit 设置曝光时间呢?我必须在哪里调用该函数?

func session(_ session: ARSession, didUpdate frame: ARFrame) {
    // frame.camera.exposureDuration = ...
}

【问题讨论】:

    标签: ios swift xcode augmented-reality arkit


    【解决方案1】:

    唉,但您无法在 ARKit 3.5 和 ARKit 3.0 中更改相机的曝光参数。有两个实例属性exposureDurationexposureOffset,但它们只能获取,不能设置。

    var exposureDuration: TimeInterval { get }
    
    var exposureOffset: Float { get }
    

    但是,如果您使用 ARKit 3.5 和配备 LiDAR 扫描仪的设备,您将不再依赖环境中的照明条件。这是因为 Apple LiDAR 扫描仪即使在完全黑暗中也可以跟踪表面。

    尽管如此,您可以实施 AVFoundationMetal 方法来更改 ARKit 相机的曝光参数,但这对开发人员来说是一个真正的挑战。

    【讨论】:

    • 感谢您的回答。你为我节省了很多时间。一旦我读到帧速率对 AVFoundation 中的曝光时间有影响?我可以在 ARKit 中利用这一点吗?
    • 在 ARKit 中所有的相机设置现在都被锁定了,你甚至不能正式降低帧率(它是 60 fps)。您只能“制作非官方丢帧”来降低帧速率,但我确信它不会影响相机的曝光。
    • 您能否更准确地解释一下如何使用 Metal 和 AVFoundation 方法来更改 ARKit 的洞穴曝光时间?
    猜你喜欢
    • 2017-12-20
    • 2015-12-27
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 2018-04-03
    相关资源
    最近更新 更多