本期作者

王方浩,Apollo开发者社区布道师,武汉大学电子信息专业,先后在华为和阿里从事固件、驱动、操作系统和后台相关的开发工作,目前主要从事L4级别自动驾驶的开发,喜欢研究技术,分析源码和解答问题,目前活跃于Apollo自动驾驶开源社区,平时喜欢做一些户外运动,对自动驾驶的前景担心的同时又充满激情,“莫愁前路无知己,天下谁人不识君”,希望更多的人一起!

 

ENJOY THE FOLLOWING 

本文将主要从以下几个方面来介绍:

  • adataset工具介绍

  • 命令行参数介绍

  • 转换record文件

  • 转换较正文件

  • 转换PCD文件

  • 数据集介绍

  • nuScenes坐标系

  • KITTI坐标系

  • Apollo坐标系

  • nuScenes转record

  • KITTI转record


在自动驾驶感知模型验证过程中,引入新模型往往先在数据集上查看效果,方便和其它模型做对比,如果模型验证的效果非常好,再在真实的数据上验证。

 

验证效率

由于真实环境的数据和数据集之间存在差异,并且传感器的安装位置也不一样,因此在数据集上验证好之后,需要重新拿真实环境的数据训练模型,然后在自动驾驶系统中进行验证。这样带来2个问题。


1.采集数据,标注数据,重新训练模型带来的验证成本。

2.当验证效果不理想的时候,没有直接的参照对比。


因此,为了提供更加轻量级的验证过程,把数据集转换为record包,这样既可以保证训练和验证的数据一致性,也可以和标准数据集互相参照。
当然采集数据,标注数据的成本可能是一次性的,如果已经有标注的数据了,带来的可能只是训练成本。

 

adataset工具介绍

Apollo 8.0提供了adataset工具,可以转换nuScenes, KITTI数据集为Apollo record文件,同时还会生成数据集的车辆的内外参文件,这样就可以直接用数据集来验证自动驾驶感知效果。


通过以下命令来安装adataset

pip3 install adataset

 

命令行参数介绍

adataset支持以下4个命令行参数

 

转换record文件

通过以下命令转换record文件,例如转换nuScenes数据集为record文件,输出路径默认为当前路径,转换类型也默认为record。

adataset -d=n -i=dataset_path

 

转换校正文件

可以通过以下命令生成传感器校正文件,例如转换nuScenes数据集的传感器校正文件。

adataset -d=n -i=dataset_path -t=cal

 

转换PCD文件

由于数据集的pcd文件都不能直接通过pcl_viewer,这里也提供了命令转换为标准可以查看的pcd文件。

adataset -d=n -i=dataset_lidar_pcd_file -t=pcd

 

数据集介绍

数据集转换过程中需要注意坐标系,因为不同数据集传感器的坐标系不一样,需要根据当前车辆进行适配。

nuScenes坐标系

 

KITTI坐标系

 

Apollo坐标系

 

nuScenes 转 record

由于nuScenes全量数据集比较大,因此我们这里以nuScenes Mini为例。

下载之后的目录结构如下

nuScenes-Mini -maps -samples -sweeps -v1.0-mini

接下来我们可以通过以下命令来生成record包

// record

adataset -d=n -i=path/to/nuScenes-Mini

// calibration

adataset -d=n -i=path/to/nuScenes-Mini -t=cal

// pcd

adataset -d=n -i=path/to/nuScenes-Mini/samples/LIDAR_TOP/n015-2018-11-21-19-38-26+0800__LIDAR_TOP__1542801007446751.pcd.bin -t=pcd

 

KITTI 转 record

KITTI的Raw data才包含所有的原始数据,例如定位的数据等,Raw data根据场景进行划分,可以在KITTI官网进行下载。


需要注意下载同步后的数据synced+rectified data,并且校正文件calibration也是单独下载的。
下载完成之后数据集的目录结构如下

2011_09_26_drive_0015_sync

-image_00

-image_01

-image_02

-image_03

-oxts

-velodyne_points

可以通过以下命令来生成record文件

// recordadataset -d=k -i=path/to/2011_09_26_drive_0015_sync// pcdadataset -d=k -i=path/to/2011_09_26/2011_09_26_drive_0015_sync/velodyne_points/data/0000000113.bin -t=pcd

校正文件下载之后的目录结构如下:

2011_09_26 -calib_cam_to_cam.txt -calib_imu_to_velo.txt -calib_velo_to_cam.txt
可以通过以下命令来生成校正文件

adataset -d=k -i=path/to/2011_09_26 -t=cal


以上内容就是本次方浩老师关于数据集转record的分享,更多关于感知模块技术的文章分享,请继续关注Apollo开发者社区!

Logo

为开发者提供自动驾驶技术分享交流、实践成长、工具资源等,帮助开发者快速掌握自动驾驶技术。

更多推荐