2017-06-26 36 views
0

让我们坐我有点云数据,我不知道传感器的位置(它不是[0,0,0])。有没有一种很好的方法来估算原始传感器的位置?点云传感器位置估计

例如,从下面的点云,
点云数据:

Point cloud data

发现的观点,使点云看起来像这样(像深度图)因此,有没有(或最少)可以观察到孔。

点云看上去就像观点这张照片,我想找到:

Point cloud looks like this picture from viewpoint that I want to find.

+0

如果你正在寻找一个自动化过程,那么我认为这是不可能的(或者至少很容易实现)。但是,如果您有两个点云(而不是二维深度图像),则可以尝试使用基于点的胶合(在meshlab中)对齐它们。如果正确对齐,旋转矩阵将为您提供传感器位置的原点,即深度图点云。 –

+0

感谢您的回答。我想知道是否有自动化的方式.. – diskhkme

回答

0

典型的点云的重建是通过摄取不同角度的对象和调整他们一起做。在点云中,这个过程被称为注册。因此,在kinect传感器中没有静态位置,因为在每个帧中,全局坐标空间中的传感器位置不是静态的。

因此,我假设您并未询问经过重建过程的点云,因此是从静态传感器位置产生的点云。如果该点云没有经历任何变换(旋转,过渡)并且使用原始深度数据生成,则点云总是在深度相机坐标空间中生成,其中原点是Kinect传感器的位置。

在你的问题中,它表示传感器位置不是[0,0,0],这意味着在捕获深度图像后,它已经被转换到新的坐标空间(我假设新坐标空间的原点是给定点云的中心)。所以如果不知道这个变换矩阵,你不能得到原始的摄像机位置(相对于新坐标)。

当你说“传感器的位置”时,你最需要指定你所指的坐标空间。 的位置总是相对于特定的坐标空间

您可以在@Atif Anwer中找到相机的位置但是在一个条件下,两个点云中的任意一个没有经过变换,因此它在原始坐标空间中。然后,您可以找到第二个点云相对于第一个点云的变换,并将该变换矩阵应用到[0,0,0]以找到第二个点云相对于初始深度相机坐标空间的相机位置。

+0

感谢您的回答。因此,据我了解您的答案,无法自动找到传感器的位置(在全局坐标中,在注册后),根据我的假设,在没有任何点云传感器位置的信息的情况下(任何单个扫描结果)。 – diskhkme