自动驾驶:如何使用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

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

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

其中pcds数据可以用PCL点云库读取,如果想提取出来点云坐标(x,y,z),可以直接用PCL把二进制存储坐标的pcd数据转换成txt就可以了。 (这里我后来发现pcd数据也可以直接用matlab fopen打开,然后读其中的坐标,可能是因为它这个是ASCII保存,如果是以二进制的形式就读不出来吧)

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

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

 

目前遇到的一些问题:

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

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

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

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

 

2020/1/14:

如果做配准的话就不用在意init_poses和valid_range了。只需要关系gt_poses,其中包含了每帧的真值;

问了作者,数据的帧间间隔100是这个意思,比如你选取了第一帧,然后在选取第三帧吧打个比方,你确定下两帧之间的距离是不是大于5了,没有的话就采用这两帧点云数据为x和y。之后帧间间隔是100,也就是你再选第101帧和103帧当做x和y。以此类推。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值