数据集介绍
-
CRUW是一个基于雷达频域图像的自动驾驶数据集:
- 目前是唯一一个开源的、多场景的、大型雷达频域图像检测数据集
- 论文:Rethinking of Radar’s Role: A Camera-Radar Dataset and Systematic Annotator via Coordinate Alignment
- 数据集:https://www.cruwdataset.org/
- 优点:
- 丰富的物体语义信息,带有目标中心点周围的形状信息
- 基于雷达数据标注,使用CFAR结合Mask RCNN的分割与检测结果标注目标,并且在vertical和xy平面建立雷达检测与图像检测的对齐关系损失,使自动标注的精度较高;
- 丰富的场景:拥有多个训练样例和四个场景的数据采集,样本量大;
- 缺点:
- 场景目标单一:parking lot等场景下目标运动单一且目标较少,如上图2所示;
- 标注物体较少:受制于检测模型性能,使用模型自动进行目标自动标注,导致很多场景下目标召回率较低,在一些密集的路口中,标注仅涉及到极小部分目标;
数据集格式与内容
其中,数据以sequence为最小组合,其中sequences意为序列,每个序列带有一个编号,序列下有多张图片及其对应的npy二进制文件(.npy文件是numpy专用的二进制文件,这里为频域图格式),annotations含有sequence对应的雷达图像中每个目标点的极坐标下的坐标(r,θ)和对应的种类(human,cylist等),另外calib中含有sequence对应的坐标转换矩阵(雷达坐标系与像素坐标系)。
数据集官方接口工具
- 作者提供了接口工具CRUW-devkit,类似于nuScenes的nuscenes-devkit,能够方便开发者进一步封装成dataloader,还有评价功能;
数据路径配置与参数设置
from cruw import CRUW
data_root ='path/to/cruw'
dataset = CRUW(data_root=data_root, sensor_config_name='sensor_config_rod2021')
print(dataset)
如上图所示,sensor_cfg包含传感器的各类信息:
- 对相机来说:包括像素,采样率,父路径、扩展名;
- 对雷达来说:包括ramap(radar map)的大小,采样率,天线数等信息;
目标种类与目标投影
如上图所示,ra2idx和idx2ra能够分辨将极坐标系和笛卡尔坐标系相互转化。
展示效果
- 取出数据
import os
import numpy as np
import matplotlib.pyplot as plt
from cruw.visualization.examples import show_dataset_rod2021
def get_paths(seq_name, frame_id):
# 某一帧图像
image_path = os.path.join(data_root, 'sequences', 'train', seq_name,
dataset.sensor_cfg.camera_cfg['image_folder'],
'%010d.jpg' % frame_id)
# 对应的帧的雷达npy文件
chirp_path = os.path.join(data_root, 'sequences', 'train', seq_name,
dataset.sensor_cfg.radar_cfg['chirp_folder'],
'%06d_0000.npy' % frame_id)
anno_path = os.path.join(data_root, 'annotations', 'train', seq_name + '.txt')
# 返回图像、对应的雷达npy文件及标注文件
return image_path, chirp_path, anno_path
- 可视化样例
# 序列id
seq_name = '2019_04_09_BMS1000'
# 帧id
frame_id = 400
# 得到数据
image_path, chirp_path, anno_path = get_paths(seq_name, frame_id)
# 这里因为windows的路径格式为"\\",兼容作者的ubuntu环境,要对源路径转换
image_path = image_path.replace('\\', '/')
# 展示
show_dataset_rod2021(image_path, chirp_path, anno_path, dataset)
其他样例
评价接口
from cruw.eval import evaluate_rod2021
# 这里提交评价,工具会自动评估模型性能
# submit_dir = '<SUBMISSION_DIR>'
# truth_dir = '<ANNOTATION_DIR>'
# evaluate_rod2021(submit_dir, truth_dir, dataset)