我有一组由激光雷达拍摄的视频。我的数据是原始数据,这意味着每个视频文件都包含范围和强度(灰度)数据。现在,我想从范围数据创建3D点云。根据我读到的内容,我所拥有的激光雷达数据看起来与Kinect数据(深度+强度)非常相似。但是,虽然有代码和方程可以让你将Kinect深度转换为3D点云,但我还没有找到任何这样的激光雷达数据方程。我希望有人可以帮助我使用方程式或示例代码(最好是在Matlab中)来完成从激光雷达范围数据到3D点云的转换。
编辑:我所拥有的视频包含室内和室外的人类目标。不幸的是,我无法分享任何数据。用于视频录制的激光雷达相机是TigerCub 3D闪光灯。我没有任何访问摄像头,只有数据。此外,我检查了相机的手册,但找不到任何有用的信息。就像Kinect一样,我认为范围(深度)数据和3D点云之间必然存在关系,而我所需要的就是帮助我生成3D点云的方程式。
答案 0 :(得分:1)
这对于有同样问题的其他人可能有用。基本上,3D闪光激光雷达相机操作(甚至看起来)非常像2D数码相机。 3D闪光激光雷达相机的焦平面阵列具有行和列的像素,但它还捕获第三维数据,该数据是对象的深度或范围,其中后者称为范围数据。这意味着3D闪光激光雷达相机会生成强度和范围数据。
3D闪光激光雷达和2D数码相机之间的相似性让我们将相同的针孔相机类比应用于2D数码相机,3D闪光激光雷达相机。因此,激光雷达范围数据的3D点云可以通过以下等式计算:
x(pointCloud)= x(image)*range/f
y(pointCloud)= y(image)*range/f
z(pointcloud)= range
您只需要乘以常数即可获得所需单位的数据(取决于f的单位,即相机的焦距)。 x,y(图像)和范围是每个点的x,y和范围(从范围数据中提取),x,y和z(pointCloud)是点云中的对应坐标。有关直通说明,请参阅this paper。