ARKit:再现项目点功能

Posted

技术标签:

【中文标题】ARKit:再现项目点功能【英文标题】:ARKit: Reproducing the Project Point function 【发布时间】:2018-11-30 02:58:09 【问题描述】:

我正在尝试重现 ARCamera 的项目点功能,但由于某种原因,这些值没有正确匹配。我正在使用 ARCamera 的投影矩阵和视图矩阵并应用基本的 CG 透视变换数学 (PV) * p,但 NDC 值与 ARCamera 的项目点函数给出的像素值不匹配。有任何想法吗?我是不是忘记了什么?

更多细节:

基本上,我试图通过单击按钮获取 ARFrame,然后尝试复制 https://developer.apple.com/documentation/arkit/arcamera/2923538-projectpoint 的功能。我正在尝试使用https://developer.apple.com/documentation/arkit/arcamera/2887458-projectionmatrix 和https://developer.apple.com/documentation/arkit/arcamera/2921672-viewmatrix 执行此操作,确保所有输入都与这两个部分匹配。 CG大小用于将坐标从NDC空间转换到图像空间。

编辑:找到解决方案,检查下面的 cmets。

【问题讨论】:

您的问题没有足够的细节可以说。但要研究的一件事可能是相机图像的纵横比与视图的纵横比之间的差异。 我添加了一些关于我正在使用的文档的更多细节。检查纵横比是个好主意,但如果 ARCamera 的内部 projectionMatrix 与 projectPoint 函数中使用的不同,我会感到惊讶。 您在这方面取得了进展吗? ARCamera 的内部 projectionMatrix 是否与 projectPoint 函数中使用的不同? 查看此链接。我在应用商店中将这个库用于我的益智应用“Nosie”。你可以从玩它中学到很多东西。 github.com/ebay/HeadGazeLib tbh 我进入了计算机,所以他们可以为我做数学!我的建议:通过电缆将手机连接到 Mac。构建最简单的测试示例并在调试器下运行,并在您不能 100% 确定的任何地方设置断点。更改代码,重新运行并了解更改的内容和原因。 【参考方案1】:

问题原来是projection_matrix 有时无法正确找到设备方向。正确的做法是使用projectionMatrix(for:viewportSize:zNear:zFar:)。

【讨论】:

以上是关于ARKit:再现项目点功能的主要内容,如果未能解决你的问题,请参考以下文章

ARKit 图像检测 - 许多图像

实战 | Unity下ARKit与OpenCV的结晶

ARKit ARSCNView.snapshot() 内存泄漏

ARFoundation系列讲解-38 AR家具案例五

ARKit学习之SCNGeometrySource加顶点法线纹理及索引时贴图不正确

ARFoundation系列讲解-57 第三视角技术一