如何使用apollo数据进行点云配准?

数据集下载来自Apollo数据开放平台:http://data.apollo.auto/?locale=zh-cn&lang=en

参考论文:2019 ICCV ——DeepICP: An End-to-End Deep Neural Network for 3D Point Cloud Registration

如何使用apollo数据进行点云配准?

下载的是样例数据,大概52GB左右。解压之后包含三个文件夹:

如何使用apollo数据进行点云配准?

分别是地图数据,测试数据,训练数据。每个文件夹中包含点云pcds数据和poses位姿数据。

其中pcds数据可以用PCL点云库读取,如果想提取出来点云坐标(x,y,z),可以直接用PCL把二进制存储坐标的pcd数据转换成txt就可以了。 

poses位姿数据包含是一个九维向量:

第一维是帧号,因为每一秒钟可以扫描几十帧到上百帧,时间戳记录了当前点云数据的时间,后面三维为x,y,z,只有的4维是一个四元数,可以根据四元数转换成旋转矩阵,然后求得每相邻,比如说100帧之间的一个变换。R旋转矩阵和t平移矩阵。

如何使用apollo数据进行点云配准?

 

目前遇到的一些问题:

因为我本人也在做点云配准的研究,使用Apollo数据测试过Deep ICP中提到的文章,差距比较大,在想是不是没有理解他的用法?我现在用的是MapData中的第一帧和第一百帧数据,测试了一下CPD和自己的算法,误差都比较大。

并且我观察到,MapData和TestData、TrainData文件夹中的不同,gt_poses是真值,那init_poses作用是什么?valid_range的作用是什么呢?init_poses和gt_poses是要一起使用吗?

地图数据集中包含pcd格式的点云数据为36304帧,训练数据集中包含pcd格式的点云数据为7538帧,测试数据集中包含pcd格式的点云数据为6443帧。

如何使用apollo数据进行点云配准?

如果大家有知道的可以评论指教一下,或者说讨论一下,谢谢~