上篇文章分享了关于Oculii 4D雷达的两篇报告。数据集是一个非常重要的研究工具,对于4D雷达领域来说,处于一个研究前沿的位置,鲜有公开的数据集,目前能找到的数据集有:
这些文章中的数据集有不少博主也写过,但往往都是对于作者原文的翻译,实际的获取和使用基本没有涉猎,本文将更加深入和具体地说明这几个数据集,并给出获取的方法、使用方法及注意事项等。
目录
1. Astyx数据集: 时间2019
2. VoD数据集 2022
3. RADIal 数据集
4.TJ4DRadSet (2022) 目前并未开源
总结:
1. Astyx数据集: 时间2019
原文:Automotive Radar Dataset for Deep Learning Based 3D Object Detection
文中写到其获取方式为:www.astyx.net (我打开后并未发现该数据集入口)
目前的获取方式:https://github.com/under-the-radar/radar_dataset_astyx
数据集比较小,直接获取即可。
接下来简单介绍一下这个数据集:
作者建立这个数据集的目的在于为研究界提供高分辨率的雷达数据,促进和促进利用雷达传感器数据的算法研究。因为鲜有关注到雷达的数据集,在那个时候唯一含有雷达数据的自动驾驶数据集是nuScense数据集,但是其中的雷达数据是2D的而且很稀疏(约100),本数据集中的点云可以达到约1000点,采集该数据集使用了的设备是:
雷达在目前看来性能一般,测距范围100m,视场角110*10;激光雷达使用的是威力登16线而相机则采用的是8bit的120W像素的灰点相机。
标定采用的是经典棋盘格和角反的方式,内参的标定都是离线进行的。外参的标定都是两两的标定的。
对于GT box的标注:激光雷达反映真实物理坐标精度在其中是最高的,相机很重要,这里作者将其视作对于激光的一个fine-tune;对于雷达来说,激光雷达的角分辨率以及探测距离限制,远距离的目标可能不会出现在传感器的“共视区”(这点和kitti中的don't care比较类似)这里只要雷达和相机能共视到就会进行标注。如下图:
同时,也会对invisible进行标注,这意味着那些实物没有任何激光雷达或相机测量,但在雷达数据中清晰可见(例如,通过在其他汽车下面传播的多路径反射),并且可以通过时间参考联系起来——在数据记录期间之前或之后变得可见。(意思是对于确实存在,但相机和激光雷达无法捕捉而雷达通过一些方法能发现的物体也做了标注)。
作者从自动预标记的数据N帧中提取网络对其决策最不确定的数据,通过手动微调来纠正这些数据,从而在下一轮训练和预标记回合中最大限度地提高网络的信息增益。(自动标注+人工)
本数据集一共提供了7个类别:Bus, Car, Cyclist, Motorcyclist, Person, Trailer, Truck
标注的目标属性有:
标注的储存格式为txt。
目标的 激光雷达和雷达的点数分布:(不同帧对应多个目标以及大小)
数据分布:
可以看出还是非常的不均衡,右图可以看出三辆车的帧是最多的。场景也较为简单。
汽车car的朝向分布:
下图可以看出lidar对于AB两车已经不可看见了,根据图像和雷达点云,根据朝向进行区分。
评估(并未提及用何种网络):随机分割数据集到训练和测试数据使用4:1的比率,训练两个网络(雷达相机和激光雷达相机)22k次迭代,mini-batch为16和评估结果的分类、定位和定位精度通过使用IoU阈值为0.5。
评估结果:
对于car,radar+camera的结果甚至要好过Lidar+Camera的结果。
通过查看数据集可以发现该数据集非常小,只有546个带注释的短片段帧,每个剪辑包含少于10帧。
整体的结构是:
其中相机数据格式为jpg,lidar数据格式为txt,包含六个维度的信息(xyz、反射性、来自那个激光头以及时间戳),雷达的数据同样也通过txt给出,包含五个维度的信息(xyz,速度,以及mag(应该是强度))此外就是标定信息由json形式给出每一帧的变换。GT标注同样也使用的是json格式,内容实例:
{
"frame_flag": "",
"frame_index": 0,
"header": "Astyx Version_01_00",
"objects": [
{
"center3d": [
15.28,
4.24,
-0.46
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
3.66,
1.8,
1.45
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.7020386802113796,
-0.03287019905010674,
0.005682565197980395,
0.711357118439284
],
"score": -1.0
},
{
"center3d": [
57.75593697820277,
-8.95030337350099,
1.7819997024076009
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
4.34,
1.81,
1.5098232605535091
],
"label_certainty": 0,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 0,
"orientation_quat": [
0.7194398517786975,
-0.03301020608906757,
0.0048577576720212606,
0.6937528581252859
],
"score": -1.0
},
{
"center3d": [
11.73,
4.59,
-0.64
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
4.15,
1.8,
1.45
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.7058035625491359,
-0.03289943574160317,
0.005508833819764444,
0.7076217993891781
],
"score": -1.0
},
{
"center3d": [
9.145197640200534,
5.274276650959328,
-0.7580683445170724
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
3.77,
1.8,
1.45
],
"label_certainty": 1,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.7199364568101033,
-0.03300232389003559,
0.004846831272768512,
0.6932379483266801
],
"score": -1.0
},
{
"center3d": [
6.479817221419508,
5.247589043270934,
-0.9141820375574657
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
4.48395807023072,
1.8,
1.45
],
"label_certainty": 1,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.6898415239772513,
-0.004692602780714069,
-0.033023180724797714,
-0.72319162108718
],
"score": -1.0
},
{
"center3d": [
9.994624230481369,
-6.017542527527623,
-0.1464149366341636
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
3.77,
1.8,
1.3121440590076265
],
"label_certainty": 1,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.7130302072899429,
-0.03295292607233075,
0.005173472708666147,
0.7003393915348938
],
"score": -1.0
},
{
"center3d": [
13.167237991660787,
-6.162813630332312,
-0.04708915908300637
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
3.9561293466010117,
1.8,
1.3121440590076265
],
"label_certainty": 1,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.6950121632719635,
-0.004933161718357779,
-0.03298636965611393,
-0.7182239596646692
],
"score": -1.0
},
{
"center3d": [
18.42,
-6.81,
0.14
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
3.96,
1.8,
1.31
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.7151992798301935,
-0.03296572963883116,
0.005076129151335868,
0.6981242609396919
],
"score": -1.0
},
{
"center3d": [
20.97984695193026,
-6.536436330155294,
0.23764169100863264
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
3.96,
1.8,
1.37
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.7151992798301935,
-0.032965729638831244,
0.005076129151335691,
0.6981242609396919
],
"score": -1.0
},
{
"center3d": [
25.99999984503129,
-6.413659054009911,
0.3289432028830479
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
3.96,
1.8,
1.37
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
-0.7068649813345358,
0.03289508407018742,
-0.005475805274628736,
-0.7065619768736047
],
"score": -1.0
},
{
"center3d": [
28.57,
-6.72,
0.47
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
3.96,
1.8,
1.41
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
-0.7071073056108934,
0.005505677989137722,
0.03288670936708505,
0.7063196232645582
],
"score": -1.0
},
{
"center3d": [
17.9417990603285,
4.047919592487037,
-0.4298381193087091
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
3.66,
1.8,
1.4034827588118874
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.7061942370819255,
-0.005447702826512753,
-0.03290636115848807,
-0.7072320647718813
],
"score": -1.0
},
{
"center3d": [
20.45,
4.51,
-0.31
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
4.18,
2.0,
1.5
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.7072691145493584,
-0.032907514186323296,
0.005445972583162032,
0.706157090523962
],
"score": -1.0
},
{
"center3d": [
24.182930691745177,
3.957377988250483,
-0.21057144426054156
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
3.9935178142256045,
1.8765534659735825,
1.3706025545077207
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.7072691145493584,
-0.032907514186323296,
0.005445972583162032,
0.706157090523962
],
"score": -1.0
},
{
"center3d": [
26.56403718760992,
3.4141810443770053,
-0.07728835626150013
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
3.99,
1.88,
1.37
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.7072691145493584,
-0.032907514186323296,
0.005445972583162032,
0.706157090523962
],
"score": -1.0
},
{
"center3d": [
28.9087287526382,
2.7749496885068696,
0.061472400426277635
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
3.99,
1.88,
1.37
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.7072691145493584,
-0.032907514186323296,
0.005445972583162032,
0.706157090523962
],
"score": -1.0
},
{
"center3d": [
31.80376110462618,
2.413184128432301,
0.20248894322203623
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
4.025175213620685,
1.9424920472975067,
1.37
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
0.7072691145493584,
-0.032907514186323296,
0.005445972583162032,
0.706157090523962
],
"score": -1.0
},
{
"center3d": [
69.01,
0.68,
1.73
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
4.39,
1.83,
1.62
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
-0.7174576529992662,
0.03299615793779559,
-0.0049519706657062896,
-0.695802592479113
],
"score": -1.0
},
{
"center3d": [
42.98202899707613,
-7.929520596676596,
0.993298589588324
],
"classname": "Car",
"created_by": "g.kuschk",
"dimension3d": [
3.7507295994605845,
1.8,
1.4635864010778035
],
"label_certainty": 2,
"measured_by": {
"Camera": 1,
"Lidar": 1,
"Radar": 1
},
"object_id": -1,
"occlusion": 1,
"orientation_quat": [
-0.7071073056108926,
0.005505677989137767,
0.032886709367085126,
0.706319623264559
],
"score": -1.0
}
]
}
使用的时候可以通过:https://github.com/wzan0001/Astyx-radar-dataset-convert-to-kitti-format
将该数据集转换为kitti格式使用,该方法实现了对于radar的转换。
补充:值得注意的是本作者利用该数据集使用AVOD网络将相机和雷达融合的文章为:
Deep learning based 3D object detection for automotive radar and camera.
2. VoD数据集 2022
原文:Multi-Class Road User Detection With 3+1D Radar in the View-of-Delft Dataset
目前的获取方式:https://docs.google.com/forms/d/e/1FAIpQLSdKvkuKbzmJTn8raJBAWgekAJCpaQLS_ED63sUS89Ezo61RCQ/viewform
填写表单申请,需要是学生邮箱,科研用途。符合要求作者会将数据集链接发送到你的邮件中下载即可。可以说是目前能拿到的做的比较好的数据集了,介绍在官网,非常的详尽:The View of Delft dataset | Documentation and development kit
阐述了下一代雷达(4D)会在自动驾驶领域领域有较为重大的意义,在消融研究中,作业也探讨了多级道路用户检测中额外的高度信息(elevation),以及多普勒、雷达截面、时间积累的好处。还对于激光雷达和雷达的点云形式做了对比。
该数据集包含8693帧同步和标定的64线激光雷达、双目相机和3+1D雷达在复杂的城市交通中获取的数据。它由123106个移动和静态物体的三维边界框注释组成,包括26587个行人,10800个自行车手和26949个汽车标签。结果表明,对64线激光雷达数据的目标探测仍然优于3+1D雷达数据,但添加高程信息和连续雷达扫描的集成有助于缩小这一差距。
对于多普勒信息的应用,当把多普勒通道加入PointNet++中有一定的提升。
多普勒维度可以有利于三维对象检测在两个方面:
1)分类,因为类可能有不同的速度模式;
2)在方向估计,作为一个对象的一般速度(移动方向)与其方向高度相关。
数据集对比:
本文三个贡献:
1. 作者同样使用PointPillars作为baseline测试了雷达Doppler维度、RCS以及俯仰角维度的加入对结果的影响;
2. 对比了激光雷达与雷达在目标检测上的性能,结果表明激光雷达仍然要好一些,但是可以预见的是未来radar检测还是很有潜力的,并且对于速度维度的检测雷达是独一份的;
3. 提出VoD数据集。
接下来是对数据集的说明:
主要包含了威力登的64线激光雷达、IDS的双目相机(230W像素),以及采埃孚(ZF)的4D雷达,配合IMU、GPS以及RTK服务以及轮速器。
提供的是与Kitti一样的同步后以帧形式的:由激光雷达点云、校正的mono图像、雷达点云和变换信息。选择激光雷达时间戳作为lead(主要的),选取原则是最近邻的时间戳,最大容差为50毫秒(误差不算小)。这些帧的时间顺序为10Hz(同步后),它们被组织成平均长度为∼40秒的片段。激光雷达是做过运动补偿的,系统的定义也是参考Kitti,包括坐标系的定义以及文件的组织。除了这个同步版本的数据集,还提供“原始”(raw)异步记录数据,包括所有13 Hz的雷达扫描,以及从左右相机获得的30 Hz的校正相机图像。这可以有利于研究人员寻找更丰富的时间数据,用于检测、跟踪、预测或其他任务。
标注规则:在激光雷达传感器50米内,部分或全部在相机视场内(水平视场:±32°,垂直视场:±22°)都用6个自由度(6自由度)3D边界框标注。一共有13个类别,对于每个对象还提供了两种类型的遮挡(“空间”和“照明”)和一个活动属性(“停止”、“移动”、“停车”、“推”、“坐”)的遮挡级别。
(9+4个类别)
标注是由 https://understand.ai, a subsidiary of DSpace.完成的。
使用PointPillars作为Baseline,对于点的encoding,取p = [x, y, z, vrel, RCS], 其中速度是经过补偿的绝对速度。时间合并点云,以激光雷达为标准,合并(merge)到最后一帧。也提出了常规的数据增强可能并不适用,例如RCS和速度维度与空间位置实际上有一定的关系而不能随意的去增强。
对于该数据集性能的测试,作者只选取了三个类别:car、pedestrian、cyclist。将数据集以59%/15%/26%的比例分割为训练、验证和测试集,这样来自同一剪辑的帧将只在一个片段中出现(根据不同片段合理划分)。
评估指标采用了和kitti一样的两个AP以及AOS(一个评估分类一个评估角度),car大目标IoU采用的是50%,而行人和骑行者则采用0.25的IoU。结果来源于 1)整个注释区域(相机视野50米)和2)更安全相关区域称为“驾驶走廊”,定义为一个矩形的地面前[−4m<x<+4m,z<25m]相机坐标。
可以看出当维度全的时候一般都获得了最好的效果,并且当积累5个scan结果要好一些,作者只做了3和5类似的还可以多做几组。baseline是激光雷达的PP,可以看出激光雷达效果更好一点。随着距离整体的AP还是下降的。
对于cyclist来说,所有的有RCS属性的效果都是最好的,车轮和踏板的圆周运动,再加上靠近中心的高反射性金属框架,产生了一个清晰和独特的反射模式,雷达可以更可靠地探测到。
错误检测的例子: (a)合并小对象(两个行人作为一个骑自行车,(b)大的对象分成小的(一个骑自行车是两个行人),(c)强烈的反射和杂乱附近(金属极和高限制)和(d)遥远的物体反射太少(遥远的行人)。
数据集:
3. RADIal 数据集
原文:Raw High-Definition Radar for Multi-Task Learning
数据集获取方式:GitHub - valeoai/RADIal
下载方式为Google Drive:(提醒:数据集较大包含持续时间为1到4分钟的91个片段,共2小时。)https://drive.google.com/drive/folders/1vCis5mvO5qg7QlM69MqJ3Ni-gFunm5uz?usp=sharing
该数据集时法雷奥公司做的(他们还做过WoodScape数据集)。
提出了一个模型FFT-RadNet,以及两个小时长度的原始数据集(raw,camera、laser、HD radar)RADIal for “Radar, LiDAR et al。
可以看出该数据集的特色是保留了原始的数据,不同的处理方法后的结果都有。.RADIal是唯一提供高清雷达的数据集,结合相机,激光雷达和测程,同时提出检测和自由空间分割任务的数据集。
数据集中分类:
设备信息:
4.TJ4DRadSet (2022) 目前并未开源
原文:TJ4DRadSet: A 4D Radar Dataset for Autonomous Driving
与本文强相关的文章为(建议一块阅读):3D Object Detection for Multi-frame 4D Automotive Millimeter-wave Radar Point Cloud
获取链接(目前尚未公开):GitHub - TJRadarLab/TJ4DRadSet: TJ4DRadSet: A 4D Radar Dataset for Autonomous Driving
文章的工作主要是使用了Oculii的4D雷达,制作了一个数据集,通过其他文章可以看出该课题组依照这个数据集发表了几篇延伸性的文章。
TJ4DRadSet共包含40K帧的同步数据,其中7757帧,44个序列具有高质量注释的3D边界框和跟踪id。三维标注系统采用联合多传感器标注和多轮手动检查标注。
平台如下:激光雷达(通过参数对比及图片可以确定为Velodyne-32C激光雷达)、4D雷达(Oculii Eagle)以及一个计算平台,有使用惯导并且配有RTK。
然后使用PointPillars作为Baseline测试了一下,结果:
补充:RadarScenes 2021
原文:RadarScenes: A Real-World Radar Point CloudData Set for Automotive Application
获取链接:RadarScenes - RadarScenes
正如其名称,由多个场景构成。它由11个对象类别、5个大型主要类别和总共7000多道路参与者组成,100公里的不同街道场景上被手动标记组成。粗略的为:汽车、大型车辆、两轮车、行人组和行人五个类别。不同的场景列结合了诸如天气条件、交通密度或道路类别(高速公路、郊区、市中心)等因素,并且列的序列数据表明是否有时间相干序列可用。
传感器配置:4个77GHz的雷达:
标注了11个类别car, large vehicle, truck, bus, train, bicycle, motorized two-wheeler, pedestrian, pedestrian group, animal, and other
数据集的分布:
总结:
总的来说数据集还是比较缺乏的,特别是高质量的数据集,上述四个数据集从不同角度做出了其贡献,在使用数据集的同时分析数据集采集的科学性、以及底层原理的科学性也尤为重要。后续如果有相应更新也会更新到文章中。