我目前正在为一个项目寻找立体摄像机,而Kinect v2似乎是个不错的选择 . 但是,由于这对我来说是一项投资,我需要确保它符合我的要求,主要是不同传感器的良好同步 .
显然没有传感器的硬件同步,我得到了很多关于软件部分的版本:
-
一些人们抱怨两个传感器之间存在滞后的帖子,还有许多人要求采用同步传感器的方法 . 两者似乎都有奇怪的解决方法而且没有“官方”,从答案中可以看出共同的解决方案 .
-
有关MultiSourceFrame类的一些帖子,它是Kinect SDK 2.0的一部分 . 根据我的理解,这个类使您能够在给定时间检索所有传感器的帧(或更少,您可以选择要从中获取数据的传感器) . 因此,对于给定的时刻t,您应该能够获得不同传感器的输出并确保这些输出是同步的 .
所以我的问题是,这个 MultiSourceFrame
类正在做我的意思吗?如果是的话,为什么它从未被提出作为解决方案?看起来第一类的帖子是从2013年开始,所以在SDK 2.0发布之前 . 但是, MultiSourceFrame
类应该替换以前版本的SDK的AllFramesReady事件,并且 AllFramesReady
也不建议作为解决方案 .
不幸的是,文档没有提供有关它如何工作的大量信息,所以我在这里问,以防有人已经使用过它 . 如果我的问题看起来很愚蠢,我很抱歉,但在购买这样的相机之前我想确定一下 .
谢谢您的回答!如果需要,随时可以要求更多细节:)
1 回答
在libfreenect2 issue中有一个讨论,当使用
MultiSourceFrameReader
时,有人specifically mentioned在RGB和深度帧之间有6.25毫秒的延迟:在我自己的实验中,我得到了相同的结果 . 但这只是基于框架的时间戳 . 这些时间戳直接来自Kinect v2设备,因此不太可能,但仍有可能它们不是100%正确 .
因此,虽然深度和RGB帧之间存在延迟,但即使使用
MultiSourceFrameReader
,它也很可能足够小,因此您可以忽略它 .至于
MultiSourceFrame
/MultiSourceFrameReader
的用法,一旦你习惯了Kinect v2 SDK就很简单了:安装Kinect v2 SDK后,您可以在
CoordinateMapping Basic
示例中找到更多详细信息 .