如何实现垂直平面检测(即针对墙壁)?
let configuration = ARWorldTrackingSessionConfiguration() configuration.planeDetection = .horizontal //TODO
w8ntj3qf1#
**编辑:**从ARKit 1.5(iOS 11.3)开始支持。只需使用.vertical。我保留了以前的帖子以供历史参考。
.vertical
垂直平面检测还不是ARKit中存在的一个功能。.horizontal表明该功能可能正在开发中,并且可能会在未来添加。如果它只是一个布尔值,这将表明它是最终的。
.horizontal
我在WWDC 17上与一位苹果工程师的谈话证实了这种怀疑。
你可能会说,创建一个实现这将是困难的,因为有无限多的方向为一个垂直的平面,而不是一个水平的,但作为rodamn说,这可能不是这样的。来自rodamn的评论:* 在最简单的情况下,平面被定义为三个共面点。一旦沿着表面检测到足够多的共面特征,您就有了一个表面候选(垂直、水平或任意Angular )。只是水平方向的法线将沿着上/下轴,而垂直的法线将平行于地平面。挑战在于,未装饰的干墙往往产生很少的视觉特征,而普通的墙壁可能经常无法被检测到。我强烈怀疑这就是为什么.vertical功能尚未发布的原因。*然而,* 有一个相反的论点 *。更多信息请参见rickster**的评论。
23c0lvtd2#
iOS 11.3支持:static var vertical: ARWorldTrackingConfiguration.PlaneDetection任务检测与重力平行的曲面(无论其他方向如何)。https://developer.apple.com/documentation/arkit/arworldtrackingconfiguration.planedetectionhttps://developer.apple.com/documentation/arkit/arworldtrackingconfiguration.planedetection/2867271-vertical
static var vertical: ARWorldTrackingConfiguration.PlaneDetection
afdcj2ne3#
苹果已经发布了iOS 11.3,将为AR提供各种更新,包括ARKit 1.5。在此更新中,ARKit包括ARKit识别并将虚拟对象放置在墙壁和门等垂直表面上的能力。ARWorldTrackingConfiguration现在支持垂直
let configuration = ARWorldTrackingConfiguration() configuration.planeDetection = [.horizontal, .vertical] sceneView.session.run(configuration)
icomxhvb4#
在ARKit 1.0中,只有.horizontalenum用于检测table或地板等水平表面。在ARKit 1.5及更高版本中,PlaneDetectionstruct的.horizontal和.vertical类型属性符合OptionSet协议。要在ARKit 2.0到ARKit 6.0中实现垂直平面检测,请使用以下代码:
PlaneDetection
OptionSet
configuration.planeDetection = .vertical
或者,可以使用两种类型的检测平面的值:
private func configureSceneView(_ sceneView: ARSCNView) { let config = ARWorldTrackingConfiguration() config.planeDetection = [.horizontal, .vertical] //BOTH TYPES config.sceneReconstruction = .meshWithClassification config.isLightEstimationEnabled = true sceneView.session.run(config) }
你也可以添加一个类的扩展来处理委托调用:
extension ARSceneManager: ARSCNViewDelegate { func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) { guard let planeAnchor = anchor as? ARPlaneAnchor else { return } print("Found plane: \(planeAnchor)") } }
iszxjhcz5#
由于iPhone X配备了前置深度摄像头,我怀疑下一个版本会有一个后置摄像头,也许.vertical功能会被委派到那时。
jobtbby36#
我用Unity做的,但我需要做我的数学。我使用Random Sample Consensus从ARkit返回的点云中检测垂直平面。这就像有一个循环,随机选择3个点来创建一个平面,并计算与之匹配的点,看看哪个尝试是最好的。它工作正常。但是因为当墙是纯色的时候,ARkit不能返回很多点。所以它在很多情况下不起作用。
3ks5zfa07#
据说苹果正在为新iPhone开发额外的AR功能,即相机的额外传感器。当这些设备功能已知时,也许这将是一个功能。这里有一些猜测。http://uk.businessinsider.com/apple-iphone-8-rumors-3d-laser-camera-augmented-reality-2017-7和另一个来源https://www.fastcompany.com/40440342/apple-is-working-hard-on-an-iphone-8-rear-facing-3d-laser-for-ar-and-autofocus-source
7条答案
按热度按时间w8ntj3qf1#
**编辑:**从ARKit 1.5(iOS 11.3)开始支持。只需使用
.vertical
。我保留了以前的帖子以供历史参考。TL;DR
垂直平面检测还不是ARKit中存在的一个功能。
.horizontal
表明该功能可能正在开发中,并且可能会在未来添加。如果它只是一个布尔值,这将表明它是最终的。确认
我在WWDC 17上与一位苹果工程师的谈话证实了这种怀疑。
说明
你可能会说,创建一个实现这将是困难的,因为有无限多的方向为一个垂直的平面,而不是一个水平的,但作为rodamn说,这可能不是这样的。
来自rodamn的评论:* 在最简单的情况下,平面被定义为三个共面点。一旦沿着表面检测到足够多的共面特征,您就有了一个表面候选(垂直、水平或任意Angular )。只是水平方向的法线将沿着上/下轴,而垂直的法线将平行于地平面。挑战在于,未装饰的干墙往往产生很少的视觉特征,而普通的墙壁可能经常无法被检测到。我强烈怀疑这就是为什么
.vertical
功能尚未发布的原因。*然而,* 有一个相反的论点 *。更多信息请参见rickster**的评论。
23c0lvtd2#
iOS 11.3支持:
static var vertical: ARWorldTrackingConfiguration.PlaneDetection
任务检测与重力平行的曲面(无论其他方向如何)。
https://developer.apple.com/documentation/arkit/arworldtrackingconfiguration.planedetectionhttps://developer.apple.com/documentation/arkit/arworldtrackingconfiguration.planedetection/2867271-vertical
afdcj2ne3#
苹果已经发布了iOS 11.3,将为AR提供各种更新,包括ARKit 1.5。在此更新中,ARKit包括ARKit识别并将虚拟对象放置在墙壁和门等垂直表面上的能力。
ARWorldTrackingConfiguration现在支持垂直
icomxhvb4#
在ARKit 1.0中,只有
.horizontal
enum用于检测table或地板等水平表面。在ARKit 1.5及更高版本中,PlaneDetection
struct的.horizontal
和.vertical
类型属性符合OptionSet
协议。要在ARKit 2.0到ARKit 6.0中实现垂直平面检测,请使用以下代码:
或者,可以使用两种类型的检测平面的值:
你也可以添加一个类的扩展来处理委托调用:
iszxjhcz5#
由于iPhone X配备了前置深度摄像头,我怀疑下一个版本会有一个后置摄像头,也许
.vertical
功能会被委派到那时。jobtbby36#
我用Unity做的,但我需要做我的数学。
我使用Random Sample Consensus从ARkit返回的点云中检测垂直平面。这就像有一个循环,随机选择3个点来创建一个平面,并计算与之匹配的点,看看哪个尝试是最好的。
它工作正常。但是因为当墙是纯色的时候,ARkit不能返回很多点。所以它在很多情况下不起作用。
3ks5zfa07#
据说苹果正在为新iPhone开发额外的AR功能,即相机的额外传感器。当这些设备功能已知时,也许这将是一个功能。这里有一些猜测。http://uk.businessinsider.com/apple-iphone-8-rumors-3d-laser-camera-augmented-reality-2017-7和另一个来源https://www.fastcompany.com/40440342/apple-is-working-hard-on-an-iphone-8-rear-facing-3d-laser-for-ar-and-autofocus-source