【问题标题】:Postprocess Depth Image to get Skeleton using the Kinect sdk / other tools?使用 Kinect sdk / 其他工具对深度图像进行后处理以获取骨架?
【发布时间】:2015-08-10 12:49:16
【问题描述】:

简短的问题:我想知道是否可以利用 kinect SDK / Nite 来获取深度图像 IN、骨架 OUT 软件。

长问题:我正在尝试将从 v2 Kinect 捕获的深度、rgb、骨架数据流转储到 rosbags 中。但是,据我所知,在 Linux 上使用 ros、kinect v2 捕获骨架流是不可能的。因此,我想知道是否可以转储包含 rgb、深度流的 rosbag,然后对这些进行后处理以获得骨架流。

我可以使用 Microsoft kinect v2 SDK 在 Windows 上捕获所有三个流,但随后将它们转储到 rosbags 以及所有元数据(camera_info、同步信息等)会很痛苦(如果我错了,请纠正我)。

【问题讨论】:

    标签: kinect kinect-sdk ros


    【解决方案1】:

    很久以前我曾与 NITE 合作过(我只使用过 Kinect v1),所以也许其他人可以提供更新的答案,但据我记得,这应该很容易实现。

    只要所有相关数据都是通过 ROS 主题发布的,用 rosbag 记录下来然后回放就很容易了。每个可以处理来自传感器的实时数据的节点也可以对来自包文件的记录数据执行相同的工作。

    您可能遇到的一个问题是,如果您记录 kinect 数据,包文件很快就会变得非常大(几 GB)。如果您以后想在 RAM 很少的机器上编辑文件,这可能会出现问题。但是,如果您只想播放文件或者如果您有足够的 RAM,那么这应该不是问题。

    【讨论】:

    • 这里真正的问题不是是否可以播放录制的流,而是是否有办法让骨架超出录制的深度。您的意思是可以利用 NITE 来实现这一目标吗?
    • 我刚刚注意到一件事我可能理解错了。我假设 NITE 已经通过 ROS 主题接收了深度图像。是这样吗?如果没有,那么深度流的录制和回放可能就没那么容易了。
    • 无论如何,应该可以将 NITE 提供的骨架打包到自定义的 ROS 消息中并发布。然后你可以使用rosbag直接记录骨骼和深度图像。
    【解决方案2】:

    确实可以对任何深度图像流执行 NiTE2 骨架跟踪。

    参考: https://github.com/VIML/VirtualDeviceForOpenNI2/wiki/How-to-usehttps://github.com/VIML/VirtualDeviceForOpenNI2/wiki/About-PrimeSense-NiTE

    通过此扩展,您可以添加一个虚拟设备,该设备允许操纵深度流的每个像素。然后,此设备可用于创建 userTracker 对象。只要提供正确的设备名称就可以进行骨架跟踪

    \OpenNI2\VirtualDevice\Kinect

    但考虑使用限制:

    NiTE 只允许与“授权硬件”一起使用

    【讨论】:

    • 请添加更多详细信息,而不是发布参考链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多