问题标签 [arkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 从 ARKit 获取 RGB“CVPixelBuffer”
我正在尝试CVPixelBuffer
从 Apple 的 ARKit 中获得 RGB 色彩空间。在func session(_ session: ARSession, didUpdate frame: ARFrame)
方法中,ARSessionDelegate
我得到了一个ARFrame
. 在Displaying an AR Experience with Metal页面上,我发现这个像素缓冲区位于 YCbCr (YUV) 颜色空间中。
我需要将其转换为 RGB 颜色空间(我实际上需要CVPixelBuffer
而不是UIImage
)。我在 iOS 上找到了一些关于颜色转换的东西,但我无法在 Swift 3 中使用它。
ios - FigVirtualFramebufferServer:不支持的操作
我正在尝试 ARKit 并收到带有以下错误消息的黑屏。WWDC 2017 示例PlacingObjects
在同一设备上运行没有问题。
什么不见了?
swift - 如何在 ARKit 中检测垂直平面?
如何实现垂直平面检测(即墙壁)?
ios - Apple AR Kit(Augmented Reality Kit)给出了失败的断言错误消息
尝试使用最新的 Apple AR 套件。当执行演示程序或尝试使用 AR 模板创建基本项目并在设备上运行它时,它会给出以下错误消息 778:断言失败“MTLTextureDescriptor has invalid pixelFormat (520)”。Xcode 版本 -9.0 Beta 版本 OS 11. 使用的设备是 IPAD Air 对此的任何帮助都将有助于进一步探索 ARKit
注意:苹果论坛参考链接中讨论了类似问题:https ://forums.developer.apple.com/thread/79050
swift - 3D 模型不会出现在 AR 中
我正在使用 PlacingObjects ARKit 示例,我正在尝试向其中添加我自己的对象。我的目标是更换蜡烛。当我在手机上启动应用程序并尝试生成对象时,我单击它并没有任何反应。所有其他对象工作正常。这是我的对象的 swift 文件。
缩略图仍然是蜡烛,因为如果我打开菜单它会崩溃,可能是因为它试图打开一个不存在的缩略图。我一直在查看所有文件以尝试找出原因,但我找不到任何东西。
swift - 具有多个用户的 ARKit
如果有的话,将 Apple 的新 ARKit 用于多个用户/设备的最佳方式是什么?
似乎每个设备都有自己的场景理解。到目前为止,我最好的猜测是使用原始特征点位置并尝试在设备之间匹配它们以将不同的观点粘合在一起,因为 ARKit 不提供任何绝对参考参考。
===Edit1,我尝试过的东西===
1) 特征点
我已经玩过暴露的原始特征点,现在我确信在他们目前的状态下,他们是一个死胡同:
- 它们不是原始特征点,它们只暴露位置,但没有通常在跟踪特征点中发现的属性
- 它们的实例化不会从一帧延续到另一帧,位置也不完全相同
- 当相机输入几乎没有变化时,报告的特征点经常会发生很大的变化,要么出现要么消失。
所以总的来说,我认为尝试以某种有意义的方式使用它们是不合理的,不能在一个设备内进行任何类型的好点匹配,更不用说几个了。另一种方法是实现我自己的特征点检测和匹配,但这更像是取代 ARKit 而不是利用它。
2) 二维码
正如@Rickster 建议的那样,我还尝试识别一个易于识别的对象,例如 QR 码,并从该固定点获取相对参考变化(参见这个问题)这有点困难,暗示我使用一些 openCV 来估计相机姿势。但更重要的是非常有限
swift - 如何使用 ARKit Swift 将对象附加到相机位置?
我有移动的物体,我希望它们能够与我的播放器发生碰撞。我有能力通过获取我当时的当前位置/方向来从我身上发射物体,但我不明白如何将一个物体附加到我身上,它会一直跟随我的定位。
ios - 在没有 iPhone6s 或更新版本的情况下测试 ARKit
我在决定下载 Xcode9 之前。我想玩新的框架——ARKit。我知道要使用 ARKit 运行应用程序,我需要一台配备 A9 芯片或更新版本的设备。不幸的是,我有一个旧的。我的问题是那些已经下载了新 Xcode 的人。在我的情况下有可能运行 ARKit 应用程序吗?任何模拟器或其他东西?有什么想法或者我必须购买新设备吗?
augmented-reality - iOS 恢复相机投影
我正在尝试估计与空间中的 QR 码相关的设备位置。我正在使用 iOS11 中引入的 ARKit 和 Vision 框架,但这个问题的答案可能并不取决于它们。
使用 Vision 框架,我能够获得在相机框架中限定二维码的矩形。我想将此矩形与从标准位置转换 QR 码所需的设备平移和旋转相匹配。
例如,如果我观察框架:
而如果我距离 QR 码 1m,以它为中心,并假设 QR 码的边长为 10cm,我会看到:
这两个框架之间的设备转换是什么?我知道可能不可能得到准确的结果,因为观察到的 QR 码可能有点非平面,我们正试图估计一个不完美的东西的仿射变换。
我想这sceneView.pointOfView?.camera?.projectionTransform
比后者更有帮助,sceneView.pointOfView?.camera?.projectionTransform?.camera.projectionMatrix
因为后者已经考虑了从我对这个问题不感兴趣的 ARKit 推断出的转换。
我将如何填写
====编辑====
在尝试了很多事情之后,我最终使用 openCV 投影和透视求解器进行了相机姿态估计,solvePnP
这给了我一个旋转和平移,应该代表二维码参考中的相机姿态。然而,当使用这些值并放置与逆变换相对应的对象时,QR 码应该在相机空间中,我得到不准确的移位值,并且我无法让旋转工作:
这是输出:
其中 A、B、C、D 是 QR 码角,按它们传递给程序的顺序排列。
当手机旋转时,预测的原点保持在原位,但它已经从它应该在的位置移动了。令人惊讶的是,如果我改变观察值,我能够纠正这个:
现在预测的原点稳健地保持在原位。但是我不明白移位值来自哪里。
最后,我尝试获得相对于 QR 码参考固定的方向:
当我直视 QR 码时,方向很好,但随后它发生了一些似乎与手机旋转有关的变化:
我的悬而未决的问题是:
- 如何解决旋转问题?
- 位置偏移值来自哪里?
- 旋转、平移、QRCornerCoordinatesInQRRef、观察、内在函数验证了哪些简单的关系?是 O ~ K^-1 * (R_3x2 | T) Q 吗?因为如果是这样的话,那就少了几个数量级。
如果这有帮助,这里有一些数值:
==== 编辑2 ====
我注意到当手机与二维码保持水平平行时,旋转效果很好(即旋转矩阵为 [[a, 0, b], [0, 1, 0], [c, 0, d]] ),无论实际二维码方向是什么:
其他旋转不起作用。