RADIATE: A Radar Dataset for Automotive Perception in Bad Weather
提供了恶劣天气的数据集,以及相应的开发工具。
结论
提出了一个新的带有标签的大场景数据集,介绍了传感器启动,标定,加标签处理。没有对运动物体的识别。
包含了各种天气 sun, night, rain, fog and snow,以及8类物体,激光雷达为32线
引言
本论文的主要工作:
1、 RADIATE是第一个公开的毫米波雷达数据集
2、包含了多个天气的条件
3、证明了 RADIATE可以用来恶劣天气下鲁棒的检测工作,(相机和激光雷达都失败了)
RADIATE数据集
RADIATE是用ros系统收集的数据集,每一个数据都有相应的时间戳,文件格式如下:激光雷达的CSV包含坐标,强度,环数。
为了方便上述数据的使用,提供了SDK以进行数据标定,可视化,预处理。
传感器标定
多传感器融合必须先进行多传感器标定。
Matlab的相机标定工具箱可以标定立体相机内参和畸变系数,可以生成经过校正的图像来计算深度。
数据集包含7个不同的场景:
公园(晴天),城市(晴天/阴),公路(阴/夜),郊区(雨/雾/雪)
郊区(雨/雾/雪):包含了34分钟在雪中的数据,其中3分钟是带有标签的,降雪会影响三个传感器效果。
评估检测算法在各个天气下的训练效果。
Faster R-CNN 进行测试。
SDK使用
http://pro.hw.ac.uk/radiate/doc/sdk/
安装
数据集提供了软件开发工具包(SDK)。它是用Python 3.7开发和测试的,应该可以与Python > 3.7一起工作。SDK可以用于传感器校准、数据可视化和预处理。可以使用SDK简单地检索下面的示例和信息。
创建一个虚拟环境 conda create -n RADIATE_SDK python=3.7
$ git clone https://github.com/marcelsheeny/radiate_sdk.git
$ cd radiate_sdk
$ pip install -r requirements.txt
运行demo.py来可视化数据集。
下载数据集–https://www.dropbox.com/sh/f8amohzfxigq8ed/AADMrrNK9jmkfJ02yDsgNg9Za?dl=0
如何使用
文件的config/configYaml '控制使用哪些传感器并配置参数。
**camera_(左\右)raw:**这是从ZED相机捕获的原始(左\文本反斜杠右)图像,分辨率为672 x 376。对于这个键,我们不提供注释,因为校正是基于校正后的版本。我们提供给用户的情况下,他们想要应用自己的校正/校准方法。
**camera(left\right)rect:**这是从校准参数中校正的(left\textbackslash right)图像。由于我们校准了与校正版本相关的其他传感器,所以我们提供了一个近似的2D注释。我们使用与地面的距离和物体的平均高度来估计二维边界框。我们假设测量总是在平坦的道路上进行。由于感知方式的不同,很难保证边界框投影总是准确发生。由于雷达的分辨率很低(17厘米),在相机中的注释可能不是很精确。
**radar_polar:**它访问分辨率为400 x 576(方位角x距离)的原始极格式的雷达图像。方位角轴的索引0表示角度“0o”,399表示角度“360o”。距离轴,指标0表示0米,指标575表示100米。该原始格式由传感器制造商在应用快速傅里叶变换(FFT)后提供。制造商将原始信息转换为分贝(dB),然后将其量化为0到255之间的值。因此,我们没有分贝或瓦的原始信息。像素值表示传感器接收到的功率。这个值主要来自于物体的材质和形状。
**radar_cartesian:**它给出笛卡尔坐标下的雷达图像。我们在SDK中提供了一种方法,通过将每个点投影到(x,y)平面上,将极性图像转换为笛卡尔图像。在投影每个点之后,我们使用双线性插值来填充没有值的洞。这将提供1152 x 1152图像分辨率的图像。
**radar_cartesian_pc:**该选项给出点云格式的雷达笛卡尔cfar作为“np”。数组’,形状为(N,3),其中N为点的数量,列为(x,y,i),其中x和y为米的值,i为传感器接收到的强度功率。
**lidar_pc:**它以(x,y,z,i,r)的格式给出原始点云激光雷达信息,其中x,y,z是相对于雷达传感器的以米为单位的坐标,’ i ‘是传感器接收到的功率强度。’ i ‘被量化为0到255之间的值,其中它主要代表对象材质。’ r '表示点来自传感器的哪个环。
**lidar_bev_image:**它提供一个与radar_笛卡尔相同大小的图像,并以鸟瞰图的形式表示。这种类型的图像是为研究人员创建的,他们想要使用网格格式的激光雷达,同时也使用网格格式的雷达。
**proj_lidar(左\右)😗*这给出了在相机坐标帧中的投影激光雷达点。它可以用来改进立体重建,也可以用来融合来自摄像机和激光雷达的信息。
demo.py文件包含一个只显示标注的小代码。
为了获得标注值,变量输出是一个带有传感器及其对应标注的字典。
例子
output[‘sensors’][‘radar_cartesian’] 包含一个np.array与雷达图像。
output[‘annotations’][‘radar_cartesian’] 包含的边界框列表 id, class_name and bbox
bbox : position 用x,y,宽度,高度来表示 bbox : rotation 是逆时针方向的角度。举例如下:
‘id’: 1
‘class_name’: ‘bus’
‘bbox’:{‘position’: [603.5340471042896, 149.7590074419735, 26.620884098218767, 73.56976270380676], ‘rotation’: 177.69489304897752}
SDK Documentation
可以在这个在线SDK文档(https://marcelsheeny.github.io/radiate_sdk/radiate.html)中查阅radiate类定义及其方法。
后面的是用毫米波雷达训练和目标检测的文档。
SDK-readme.md
上述已在论文提到
velo_lidar:我们提供可读的.txt文件,其中每一行代表x,y,z,强度,环。(x,y,z)表示激光雷达帧中的3D点云。强度[0-255]为传感器捕获的反射率。环[0-31]表示来自检测点来自的32个通道中的每一个。