问题标签 [google-project-tango]

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.

0 投票
2 回答
1219 浏览

google-project-tango - Project Tango 平板电脑深度数据改进的未来展望

我对使用 Project Tango 平板电脑使用任意点特征进行 3D 重建很感兴趣。在当前的 SDK 版本中,我们似乎可以访问以下数据。

  • 1280 x 720 RGB 图像。
  • 具有 0-~10,000 个点的点云,具体取决于环境。在大多数环境中,这似乎平均在 3,000 到 6,000 之间。

我真正想要的是能够识别图像中关键点的 3D 点。因此,将深度投影到图像平面是有意义的。我已经这样做了,我得到了这样的东西:

在此处输入图像描述

这个过程的问题是深度点与 RGB 像素相比是稀疏的。所以我更进一步,在深度点之间进行了插值。首先,我进行了 Delaunay 三角剖分,一旦我得到一个好的三角剖分,我就在每个面的 3 个点之间进行插值,得到了一个不错的、相当均匀的深度图像。以下是插值深度有效的区域,强加在 RGB 图像上。

在此处输入图像描述

现在,给定相机模型,可以在深度图像上的任何点将深度投影回笛卡尔坐标(因为深度图像的制作使得每个像素对应于原始 RGB 图像上的一个点,并且我们有相机参数RGB 相机)。但是,如果您查看三角剖分图像并将其与原始 RGB 图像进行比较,您会发现深度对图像中所有不感兴趣的点都有效:大部分是空白的、无特征的平面。这不仅适用于这组图像。这是我看到的传感器的趋势。例如,如果一个人站在传感器前面,则他们的轮廓中几乎没有深度点。

由于传感器的这一特性,如果我对图像进行视觉特征提取,大多数具有角落或有趣纹理的区域都落在没有相关深度信息的区域中。举个例子:我从 Xtion 传感器的 RGB 图像中检测到 1000 个 SIFT 关键点,其中 960 个具有有效的深度值。如果我对这个系统做同样的事情,我会得到大约 80 个具有有效深度的关键点。目前,这种性能水平对于我的目的来说是不可接受的。

我可以猜测其根本原因:似乎某种平面提取算法正在用于获取深度点,而 Primesense/DepthSense 传感器正在使用更复杂的东西。

所以无论如何,我的主要问题是:通过改进的 RGB-IR 图像处理算法,我们能否期望在以后的时间点对深度数据有任何改进?或者这是电流传感器的固有限制?

0 投票
2 回答
655 浏览

google-project-tango - 统一更改视频覆盖分辨率

我正在使用 Unity VideoOverlayListener 从探戈平板相机中检索视频叠加层。但是 fps 太低了,我猜这是因为视频的分辨率太高(1280 x 720)。有没有办法降低分辨率?

0 投票
1 回答
349 浏览

android - ART 上的调试速度非常慢,不能切换到 Dalvik

我不确定 Tango 是否可以与 Dalvik 一起使用,从 ART 切换回 Dalvik 似乎是解决调试性能问题的最常见建议——在调试模式下运行点云测试基本上没有意义,它对于任何实际工作都运行得太慢- 我错过了什么 - 我看不到 GOOG 是如何用我遇到的东西调试任何演示应用程序的 :-(

0 投票
1 回答
162 浏览

google-project-tango - 重启java点云demo经常无法重新获取pose数据

(哇,所以只是选择了很多无关紧要的问题 - 处于边缘的喜悦:-)

我发现,当我尝试从 Android Studio 多次运行此应用程序时,通常会导致后续调用导致恢复,而不是冷启动(真正的冷,如再次需要相机权限),应用程序无法再获取姿势数据 - 它确实获得了姿态和位置数据,但它永远不会获得任何点云,因为 setTangoListeners 中的 onPoseAvailable 回调永远不会被再次调用 - 通常我必须重新启动设备,有时谷歌应用程序会使一切变得更好,而其他时候我必须重新启动.

我很确定这是因为在暂停和恢复逻辑中连接和断开探戈的正确操作并不完全正确 - 但是,即使由于代码更改而完全重新构建和安装应用程序,这种恼人的行为仍然存在(恼人的) - 有人有这方面的经验吗?

0 投票
2 回答
1121 浏览

google-project-tango - Google - Project Tango - 点云提取 - 骨骼跟踪

有没有人幸运地将点云数据提取到 Tango 文件系统中?还寻找任何通过点云数据进行骨骼跟踪的幸运者。

欢迎任何提示或建议!

0 投票
1 回答
3257 浏览

google-project-tango - 将 Tango 设备连接到 Windows 7

我无法让我的 Windows 7 x64 计算机识别我的 Tango 设备。我安装了带有 USB 驱动程序的 Android Studio,并手动加载了 Google USB 驱动程序。

设备加载为“USB 控制器 - 未知设备”,但出现错误。当我尝试更新驱动程序并从文件中选择驱动程序时,指向 Google USB 驱动程序时,我收到一条错误消息:“...不包含适用于您设备的兼容驱动程序。...确保它可以正常工作使用 Windows x64..."

我能够让我的 Nexus 7 平板电脑连接到这个驱动程序。

我尝试过打开和关闭 USB 调试,并尝试将 USB 连接来回更改为 MTP 和 PTP,结果相同。

当我关闭 USB 调试时,设备有时会加载为“Android ADB 设备”并出现错误。当我尝试更新驱动程序时,我收到与上述相同的错误消息。

0 投票
2 回答
164 浏览

google-project-tango - 我们可以在 Tango 中使用 Dalvik

所以我遇到了可怕的“不幸的是……已经停止工作”的问题,即艺术加载了 2 个类并且调试器立即停止运行 -看到这个

所以,在极度绝望中,我从 ART 切换到了 Dalvik,如果平板电脑因切换而变坏,我有点害怕与 ADB 进行长时间的会谈。似乎工作。Tango 工作,尽管有一套全新的头部刮刀(关于获得 XyzIj,闪光灯正在运行,表面绑定工作,地狱我可以看到相机在显示相机视图的表面闪烁 - 如果我一次又一次地尝试,我获取探戈点数据:-)

我可以假设所有探戈问题都是我自己做的并继续使用 Dalvik,还是我必须切换回 ART 并尝试通过 logcat 进行所有调试?

0 投票
1 回答
342 浏览

google-project-tango - 系统升级后 Tango 映射器死机

今天我不小心升级了我正在研究的 Yellowstone,并且在系统升级后,TangoMapper 不再工作了。该应用程序可以启动,您仍然可以选择“启用记录”和“启用深度”等数据采集规格,但是当您单击 Live Sensor Data -> [VGA+Depth] 时,只会出现红色窗口用来显示摄像头记录的地方,右侧根本没有显示深度测量。我想知道以前有人遇到过这种情况吗?我将不胜感激任何帮助或建议。

0 投票
0 回答
2344 浏览

android - “iwlist scan”返回“接口不支持扫描”

我使用了一个 Git 项目,它iwlist在 Android 上构建和几个其他无线程序。当我尝试iwlist scan在黄石公园跑步时,它会返回

也就是说,基本上所有的界面都不支持扫描。

当我iwconfig在设备上执行时,它返回

我尝试使用netcfgfor wlan0,但输出显示它确实已启动,并且为设备分配了 IP 地址。奇怪的是,如果我在 Peanut 上运行同样的程序,确实有输出,并且可以成功捕获 WIFI 信号。有解决此类问题的方法吗?

0 投票
1 回答
1167 浏览

google-project-tango - 有没有办法在Java中访问探戈点云相机图像像素

所以我知道setSurface,并且将它用作覆盖或其他东西没有问题 - 它在表面控件上。也就是说,我对获取像素数据感到困惑

1)我已经尝试了所有我能想到的(控件、根等)来使用绘图缓存功能来获取相机表面的位。是的,没有。缓存的位图总是清零。

2)我已经成功地使用了 SurfaceView 和 GLSurfaceView 作为 setSurface 标记。我不能使用任何其他类,例如 TextureView。

3) 我调查了 C API,我看到相机暴露了 connectOnFrameAvailable,这将使我能够访问像素

我的猜测是内部探戈逻辑只是使用 java 中的表面来访问底层位传输通道 - 在 C API 中它需要一个纹理 ID,这让我怀疑在一天结束时,相机数据是很快就运到了 GPU,我敢打赌 CUDA lib 在它上面运行——考虑到事情的状态,我看不到如何在没有 root 设备的情况下获取 Java 端的位——只是因为我有纹理或在屏幕上渲染原始位的简单表面视图并不意味着我可以得到它们。

我不想将图像数据从 GPU 中剥离出来。为此,我需要将忙碌的动画从手表切换到日历。

在深入研究 C API 之前,有什么方法可以在 Java 中获取相机位?我真的希望能够将它们与特定的姿势相关联,但现在我什至无法弄清楚如何获得它们。我真的很想知道 3D 点的位置和颜色。我只需要相机内在函数、点云和生成点云的 2d 图像。但是,如果我无法获得像素,我将无能为力,而且图像与(姿势和点云)之间的关系越可疑,任何努力都会变得越粗略。

如果我确实潜入了 C,connectOnFrameAvailable 会给我我需要的东西吗?它与点云生成的同步程度如何?哦,我做对了吗?彩色相机用于深度,鱼眼用于姿势?

我可以混合使用 Java 和 C,即在 Java 中创建一个 Tango 实例,然后只使用 C 来解决图像问题吗?还是我将不得不重新实现 C 中的所有内容并停止使用 tango java jar ?