用ParaView实现谷歌项目探戈数据的交互式可视化厨房用具Vimeo公司.

 

介绍

Kitware一直在与谷歌探戈项目团队帮助他们创建软件仪表盘C现金并使用跟踪算法性能MIDAS公司谷歌将该项目描述为“试图创造一种不同于其他任何移动设备的移动设备,一种共享我们空间感和运动感的移动设备。它以与我们相同的方式理解和感知世界。”

作为Kitware工作的一部分,我们很幸运地收到了两个用于测试的Project Tango开发工具包。这些开发套件本质上是手机,提供先进的三维感知功能,用于生成环境的彩色点云。收到设备后,在办公室里四处走动,查看设备上的深度图和点云,并进行了大量自拍,我们很高兴能在我们最喜欢的科学可视化工具中查看数据ParaView视图.  

这篇文章描述了如何从Project Tango开发工具包中获取数据,并使用ParaView将其可视化,而无需编写一行代码。如果您有幸获得演示设备,您将学习如何在ParaView中下载和查看数据。对于其他人,我们提供了示例数据的链接,您可以下载并试用。

我们计划发布一系列后续帖子,涵盖使用ParaView对Tango数据进行更高级的交互和分析,VTK公司过滤器,以及点云库(PCL)过滤器。敬请期待。

使用Tango扩展安装ParaView

为了方便处理Tango数据,我们在标准的ParaView安装程序中添加了一些额外的功能。这些包括ParaView PCL插件和一些额外的Tango特定过滤器。您可以使用以下链接下载预先构建的二进制文件。安装应用程序后,您应该能够启动ParaView。

Mac上的注意事项:您可以通过将ParaView拖动到“应用程序”文件夹链接,将其安装到“应用程序”文件夹中。您也可以通过CTRL-单击并选择“打开”直接运行ParaView。

也可以将这些额外的好东西与已安装的ParaView版本一起使用,或者从源代码构建所有内容。现在我们假设您使用的是预先构建的二进制文件。

捕获数据

使用Tango Mapper收集数据

您可以使用手机上预装的Tango Mapper应用程序从Project Tango开发工具包收集3D数据。我们在Tango Mapper屏幕左上角的Report Failure模式菜单选项中运行应用程序。选择[Superframes 4MP],然后四处走动并将相机指向有趣的场景。完成后,选择后退箭头。这将把数据保存在设备上的/data/data/com.motorola.atap.tangomapper中。

将数据从手机传输到计算机

您需要一个可从Android SDK运行的adb可执行文件。一旦你有了它,你就可以通过USB 3.0连接器将开发套件连接到你的电脑上。然后,您应该能够使用adb pull复制您感兴趣的数据目录。您还可以使用adb shell为cd和ls等Unix命令查找数据。

下面是获取目录中数据集的示例adb拉2014年3月28日_114300:

$adb pull/data/data/com.motola.atap.tangomapper/files/2014Mar28_114300

拉入:正在生成文件列表…

拉入:/data/data/com.motorola.atap.tangomapper/files/2014Mar28_114300/superframes/m0008948.pgm->/超帧/m0008948.pgm

拉入:/data/data/com.motorola.atap.tangomapper/files/2014Mar28_114300/superframes/m0008947.pgm->/超帧/m0008947.pgm

….

此时,您应该已经掌握了收集的所有数据,您应该准备好使用ParaView查看!

下载示例数据

如果您无法使用设备,可以在此处下载测试数据:

解压缩后,会有一个名为探戈_20140401(或 2014Apr10_133430_skateboard(如果使用较小的数据集)。此文件夹包含我们使用上述过程收集的原始数据。

使用ParaView可视化探戈数据

要在ParaView中查看Tango数据,请启动ParaView,创建源过滤器并设置其参数,应用过滤器加载数据,最后制作视图动画。

创建探戈源过滤器

来源菜单,选择探戈源。这将创建一个源过滤器,用于读取Tango数据。GUI左下方列出了过滤器的参数。设置号码簿数据目录的参数(例如,/Volumes/Macintosh HD/Users/davisb/Downloads/tango_20140401)。如果使用文件打开对话框,则应选择数据目录中的任何文件(例如,/Volumes/Macintosh HD/Users/davisb/Downloads/tango_2014041/states.txt)。您现在可以忽略其他参数;默认设置很好。

加载数据

现在单击应用按钮加载数据。一两秒钟后,您将看到点云数据的第一帧。您可以使用鼠标与场景交互(例如,单击并拖动将旋转场景,CTRL-单击并拖动–或右键单击并拖动-将缩放)。

设置视图动画

现在启动动画以查看所有记录的点云帧。查看菜单,打开动画视图。现在您可以使用动画工具栏在GUI顶部播放帧。这个结束时间的字段动画视图显示了可用帧的总数。目前,只有具有高分辨率RGB图像的帧可用。

探戈源选项的详细介绍

探戈源过滤器包含几个您可能需要调查的选项。

  • 号码簿–源数据位置。如果使用“…”文件浏览器按钮,则需要选择文件而不是目录;选择源数据目录中的任何文件,例如states.txt文件。
  • 应用姿势–如果为true,则将重建的姿势信息应用于点云。如果为false,云将显示在深度摄影机的坐标系中。
  • 静态–加载数据时忽略时间信息。
  • 上采样深度–默认情况下,高分辨率图像被降采样到深度缓冲区的分辨率。使用此选项,深度缓冲区将进行上采样。使用上采样深度缓冲区时,动画播放的性能较慢。
  • 跨步–非零值通过从每个Stride点中选择一个来对输入数据进行降采样。将“步幅”设置为1将加载所有数据。
  • 时间偏移量–当动画视图在给定时间请求数据时,请提供该时间的数据加上此偏移量,以便同时对来自多个源的不同视图进行动画处理。

可视化摄影机的路径

除了从深度摄影机导入点云之外,ParaView的探戈插件还提供了一种可视化摄影机随时间变化的运动的方法。首先,创建一个探戈路径通过选择源探戈之路来自来源菜单。此源将生成完整的传感器路径作为一条线。您将在管道浏览器中看到新的源过滤器。选择新过滤器,设置号码簿到数据目录(与探戈来源),然后单击应用。要按时间为传感器路径着色,请使用着色 下拉菜单。

还可以使用探戈相机注释过滤器。首先,单击探戈来源中的筛选器管道浏览器确保选中;这将确保新过滤器与探戈来源作为其输入。接下来,选择探戈相机注释过滤器来自过滤器->字母顺序菜单。新过滤器将出现在管道浏览器作为探戈来源过滤器。此筛选器的默认设置很好,因此单击应用。现在您应该看到当前相机位置表示为框架.如果您开始动画传感器帧将随点云数据及时更新。

 

对使用ParaView实现谷歌项目探戈数据交互式可视化的4点评论

  1. 嗨,

    我认为这个帖子很棒。我成功地读取了你的数据集,并用Paraview对其进行了操作。

    然而,我面临一个问题,即如何使用Tango设备以特定格式导出点云。目前Tango SDK建议使用文件流从内存读取数据,但如何将其保存到文件中供Paraview分析?

    谢谢

  2. 你好,弗兰克,

    此过程不使用Tango SDK作为数据UI,而是使用“探戈映射器”应用程序的保存结果。为了实现这一点,您可以运行此处描述的“探戈映射器”应用程序,并使用adb访问生成的文件以传输到桌面。

    你也可以在这里联系我们http://www.kitware.com/company/contact_kitware.php

  3. 这真的是一个很棒的教程,但是,我相信这些源代码/过滤器随着Tango平板电脑的发布而被弃用了。我已经尽了最大努力遵循本教程,从平板电脑输出数据,但由于平板电脑不依赖于超帧,Tango源/路径无法编译。请为新的平板电脑开发人员发布后续信息!我非常有兴趣学习如何使用探戈姿势和点云数据绘制空间地图。谢谢!

留下回复