Waymo数据集解析
环境安装:
- 首先只能linux系统可以解析 perception 数据集(3dod)的内容
- conda create -n waymo python=3.7
- source activate waymo
- pip install waymo-open-dataset-tf-2-4-0 --user -i https://pypi.tuna.tsinghua.edu.cn/simple
- pip install tensorflow==1.14.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
然后就行了,但是会警告
waymo-open-dataset-tf-2-4-0 1.4.1 requires tensorflow==2.4.0, but you have tensorflow 1.14.0 which is incompatible.
随后下载这个git仓库里的代码, 放到指定位置就能运行那个test.py。贴两个参考
参考1
参考2官方文档
tfrecord数据分析
一个tfrecord文件表示一个连续的序列,里面网上说有199帧(我解压了一个是198帧为什么?) 下面支队单个帧进行解析
函数: def parse_range_image_and_camera_projection(frame)
- range_image_top_pose # [64, 2650, 6], 因为是64线雷达,1线一圈2650个点
- camera_projections # [64, 2650, 6]
- range_images # [64, 2650, 4]
- range_images[laser_name][return_index]
waymo将雷达数据进行了划分,分为正前FRONT、正后REAR、左侧SIDE_LEFT、右侧SIDE_RIGHT、车顶TOP,所以可以将五个点云数组全部写入组成一个完成的帧点云。前面的laser_name表示激光雷达位置,return_index 为什么会有1和2 ?且range view 不同(前3个是return_index=0,后三个是=1)。
这里介绍一下点云数据的分布:
激光雷达位置:
激光点的数量:
最终的点云由五个不同位置的点组合而成:points_all = np.concatenate(points, axis=0),总点的个数为 155050 .
visualize the frame photo,主要分为正前FRONT、左前FRONT_LEFT、右前FRONT_RIGHT、左侧SIDE_LEFT、右侧SIDE_RIGHT,图片的分辨率是 1920 x 886,如下图所示:
针对每一帧都会有个时间戳可以查看 frame.timestamp_micros
给出以上描述的传感器分布: