View-of-Delft数据集文件学习
View-of-Delft(以下简称VoD)数据集简介与Dev-kit的github页面:GitHub - tudelft-iv/view-of-delft-dataset
Dataset Preparation | The View of Delft dataset
1.数据采集传感器设置
如下图所示为数据采集车辆及其传感器设置(包含坐标系定义)。
可见传感器包含一个4D雷达,一个64线激光雷达和一个分辨率为的彩色立体相机。需要注意的是三者的坐标系定义。
2.组织形式和文件介绍
VoD数据集的组织形式和KITTI数据集相同,如下所示:
View-of-Delft-Dataset (root)
┣━━ lidar (kitti dataset where velodyne contains the LiDAR point clouds)
┃ ┣━━ ImageSets (1)
┃ ┣━━ training
┃ ┃ ┗━━ calib (1) & velodyne (1) & pose (1) & image_2 (1) & label_2 (1)
┃ ┗━━ testing
┃ ┗━━ calib (1) & velodyne (1) & pose (1) & image_2 (1)
┃
┣━━ radar (kitti dataset where velodyne contains the radar point clouds)
┃ ┣━━ ImageSets (1)
┃ ┣━━ training
┃ ┃ ┗━━ calib (2) & velodyne (2) & pose (1) & image_2 (1) & label_2 (1)
┃ ┗━━ testing
┃ ┗━━ calib (2) & velodyne (2) & pose (1) & image_2 (1)
┃
┣━━ radar_3frames (kitti dataset where velodyne contains the accumulated radar point clouds of 3 scans)
┃ ┣━━ ImageSets (1)
┃ ┣━━ training
┃ ┃ ┗━━ calib (2) & velodyne (3) & pose (1) & image_2 (1) & label_2 (1)
┃ ┗━━ testing
┃ ┗━━ calib (2) & velodyne (3) & pose (1) & image_2 (1)
┃
┗━━ radar_5frames (kitti dataset where velodyne contains the radar point clouds of 5 scans)
┣━━ ImageSets (1)
┣━━ training
┃ ┗━━ calib (2) & velodyne (4) & pose (1) & image_2 (1) & label_2 (1)
┗━━ testing
┗━━ calib (2) & velodyne (4) & pose (1) & image_2 (1)
其中相同名称的文件,若其后附有相同的编号,表示两者内容相同。
ImageSets:其中train.txt内包含用于训练的帧的编号,val.txt、trainval.txt、test.txt类似;
calib: 存储了每一帧(包含训练、验证或测试帧)的校准信息,包含相机内参、相对激光雷达或雷达的坐标变换矩阵(外参)等信息。
velodyne:存储了每一帧的激光雷达或雷达点云数据(bin格式);
image_2:存储了每一帧的图像(jpg格式);
label_2:存储了每一帧的标注信息(包含边界框参数、类别等)。
需要重点介绍的是velodyne点云数据格式、calib信息和label_2信息:
2.1 点云数据
激光雷达点云数据共含4个维度,依次为坐标和反射强度
。
雷达点云数据共含7个维度,依次为坐标、 RCS值
、相对径向速度
、补偿后的相对径向速度(绝对径向速度)
以及相对时间ID
(例如,radar_3frames文件夹中的点云来自相邻的3帧,其中来自当前帧的点的时间ID为0,来自前一帧的点的时间ID为-1,以此类推)。
2.2 校准(calib)信息
以激光雷达文件夹下的calib信息00000.txt为例:
P0: 1495.468642 0.0 961.272442 0.0 0.0 1495.468642 624.89592 0.0 0.0 0.0 1.0 0.0
P1: 1495.468642 0.0 961.272442 0.0 0.0 1495.468642 624.89592 0.0 0.0 0.0 1.0 0.0
P2: 1495.468642 0.0 961.272442 0.0 0.0 1495.468642 624.89592 0.0 0.0 0.0 1.0 0.0
P3: 1495.468642 0.0 961.272442 0.0 0.0 1495.468642 624.89592 0.0 0.0 0.0 1.0 0.0
R0_rect: 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0
Tr_velo_to_cam: -0.007980200000000000 -0.999854100000000000 0.015104900000000000 0.151000000000000000 0.118497000000000000 -0.015944500000000000 -0.992826400000000000 -0.461000000000000000 0.992922400000000000 -0.006133100000000000 0.118606900000000000 -0.915000000000000000
Tr_imu_to_velo:
其中,前4行有12个数,可以组成相机的内参矩阵()P0~P3(由于只有1个相机,故P0~P3完全相同,可只考虑其中一个如P2);第5行的9个数可以组成0号相机的修正矩阵(
)R0_rect;第6行的12个数可组成激光雷达坐标系到相机坐标系的变换矩阵(
)Tr_velo_to_cam。注意第7行为空,可能是为了和KITTI数据集的格式匹配。
将上述矩阵扩维至
(即将上述矩阵放置于4阶单位阵的左上角)。则可以通过下列方式使用这些矩阵来进行坐标系转换:
设
为某点在激光雷达/雷达坐标系中的坐标,则其在相机坐标系中的坐标
可以按照
计算,其中
,
;其在图像坐标系中的坐标
可以按照
计算,其中
,其中
为深度。
对于雷达文件夹下的calib信息00000.txt:
P0: 1495.468642 0.0 961.272442 0.0 0.0 1495.468642 624.89592 0.0 0.0 0.0 1.0 0.0
P1: 1495.468642 0.0 961.272442 0.0 0.0 1495.468642 624.89592 0.0 0.0 0.0 1.0 0.0
P2: 1495.468642 0.0 961.272442 0.0 0.0 1495.468642 624.89592 0.0 0.0 0.0 1.0 0.0
P3: 1495.468642 0.0 961.272442 0.0 0.0 1495.468642 624.89592 0.0 0.0 0.0 1.0 0.0
R0_rect: 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0
Tr_velo_to_cam: -0.013857 -0.9997468 0.01772762 0.05283124 0.10934269 -0.01913807 -0.99381983 0.98100483 0.99390751 -0.01183297 0.1095802 1.44445002
Tr_imu_to_velo:
可以看到,与激光雷达同一帧(编号)的calib信息相比,上面的文件仅第6行(Tr_velo_to_cam)有所不同,在这里对应的是雷达坐标系到相机坐标系的变换矩阵。
2.3 标注(label_2)信息
以00000.txt为例:
bicycle 0 1 -0.5150583918601345 1692.8589 873.00977 1935.0 1064.7266 0.9959256326426174 0.4582897348611458 1.737482152677817 5.230204792744421 2.477337074657124 8.676091008791296 0.027439126666472635 1
Car 0 0 1.5969678879628475 1359.3518 791.88385 1506.7257 968.71594 1.9658151675250493 2.009540517674054 4.257372605697204 7.423425672011678 4.838405038872109 23.385299613662408 -4.378838552585744 1
motor 0 0 -2.4142505347858005 88.35352 823.8978 464.32352 1073.3318 1.4704096973162277 1.1856527220632311 2.3723464213832814 -5.100367912654446 3.0821597861596888 11.195305589263592 -2.8417358744591588 1
Pedestrian 1 1 -1.6660393553754074 1548.5125 804.1335 1623.0793 982.50916 1.8422458172896514 0.712902028244753 0.5298325090028302 6.891531865294575 3.8656267092244225 16.523690043276844 -1.2709047988027686 1
Pedestrian 1 1 0.10923688061570824 384.32187 809.8085 470.49887 1014.3773 1.7113494534438007 0.6927278561464366 0.6700939150565816 -4.869471653036317 3.453343853662825 13.67393509650957 -0.232873768267166 1
Pedestrian 0 0 -1.7369841834426152 441.1206 806.78595 509.6245 983.0217 1.7313492749151453 0.6006713495861179 0.6221442714556515 -5.189488000680589 3.723224301471528 15.962183176995822 -2.051316852635901 1
Pedestrian 1 1 -0.8081777226409069 43.90973 840.74774 124.20658 963.51794 1.5412211529367874 0.6060047872488128 0.7569538339732375 -12.164861304877576 4.599773078955673 20.752229568039407 -1.3383849316442624 1
ride_other 0 2 2.836959762705909 1349.3645 844.5118 1405.9341 905.7561 1.1442937265889208 0.9213328783178462 0.9260649787315438 8.853846975969235 5.8885278183729906 31.829908119470943 -3.1749227280590704 1
truck 1 0 -1.3595927657319646 626.16113 581.6047 1312.4491 1215.0 3.083587526826805 2.6886104777286772 7.90147259012395 0.8362113864028187 2.9011883815517554 10.471172336004262 -1.2799034509939837 1
bicycle 0 1 -2.172004192965079 1717.6375 853.8164 1935.0 1146.5216 0.8744498006924738 0.5472547914257222 1.6346471237668838 4.05597549845168 2.0111565023332525 6.595811517157581 -1.620677576243707 1
Pedestrian 1 1 0.32144062779943916 270.60336 797.81323 376.92422 1023.54193 1.8294479159771333 0.7217715421067585 0.662114961829581 -5.5701001001316355 3.388678461833007 13.09856796340132 -0.08063749051784308 1
Pedestrian 0 0 0.7375522059644327 71.37786 830.52124 153.21786 981.89264 1.5928943449092015 0.6289930517586932 0.5275438250442627 -9.696689737074104 3.993278471608547 17.092711783163384 0.22152418469137491 1
其中每一行有16项。根据官方介绍文档,前15项的意义分别如下:
项数 | 名称 | 描述 | 备注 |
---|---|---|---|
1 | 类别(class) |
物体类别名称,如“Car”、“Pedestrian”、“Cyclist”等。 |
共有13类被标注的物体:Car, Pedestrian, Cyclist(包含自行车和骑手), rider(自行车、摩托车上的人), bicycle(未使用的), bicycle_rack, human_depiction(如雕像), moped_scooter, motor, truck, ride_other, vehicle_other, ride_uncertain。 有的帧的标注出现且仅出现一个“DontCare”类别的边界框,应该是对应该帧检测范围内无物体的情况。 注:一般来说,由于部分类别样本很少、部分类别相似度较高,可以仅考虑前三个类别。 |
2 | 截断(truncated) | 该项无效,不能使用。 | 该项的存在是为了与KITTI数据集格式保持一致 |
3 | 遮挡(occluded) |
用整数(0,1,2)表示的遮挡状态,0=完全可见,1=部分遮挡,2=严重遮挡 |
上述DontCare类物体的遮挡程度会标注3 |
4 | 观测角(alpha) |
物体的观测角(弧度),范围为 [ |
经过对标注文件的验证,得到观测角的计算公式为: 几何意义和推导可参考3D目标检测基础知识中“偏航角、观测角、目标方位角的关系”一节。 |
5~8 | 2D边界框(bbox) |
图像中物体的2D边界框,包含左、上、右、下像素坐标 |
该项由3D边界框自动生成:将边界框的八个角点投影到图像上,其外接矩形在图像范围内的部分即为2D边界框 |
9~11 | 尺寸(dimensions) |
3D物体尺寸:高 |
即激光雷达坐标系下的z_size, y_size, x_size或图像坐标系下的y_size, z_size, x_size |
12~14 | 位置(location) |
3D物体在相机坐标系中的 |
对应的是边界框底部中心的坐标 |
15 | 旋转角(rotation) |
绕激光雷达坐标系 |
当物体朝向与激光雷达坐标系 |
最后一项固定为1,可以理解为分类分数。
需要注意的是,KITTI devkit假设相机坐标系的
轴和激光雷达的
轴是平行的,只是有不同的正方向。然而,在VoD数据采集车辆的传感器设置中,摄像机存在微小倾斜,因此VoD数据集将物体围绕激光雷达
轴的旋转角作为标注信息(可能会给数据处理带来一定的麻烦)。
激光雷达坐标系和雷达坐标系也不是完全对齐的。
View-of-Delft数据集文件学习相关推荐
- 三维点云学习(6)7-3D Object Detection-KITTI object detection evaluation(2)-kitt 数据集文件分卷解压方式
三维点云学习(6)7-3D Object Detection-KITTI object detection evaluation(2)-kitt 数据集文件分卷解压(踩坑) ps:花了两天时间,疯狂下 ...
- C#内存映射文件学习总结
C#内存映射文件学习 http://www.cnblogs.com/flyant/p/4443187.html 内存映射文件是由一个文件到进程地址空间的映射. C#提供了允许应用程序把文件映射到一个进 ...
- 体验AI乐趣:基于AI Gallery的二分类猫狗图片分类小数据集自动学习
摘要:直接使用AI Gallery里面现有的数据集进行自动学习训练,很简单和方便,节约时间,不用自己去训练了,AI Gallery 里面有很多类似的有趣数据集,也非常好玩,大家一起试试吧. 本文分享自 ...
- Dataset之MNIST:自定义函数mnist.load_mnist根据网址下载mnist数据集(四个ubyte.gz格式数据集文件)
Dataset之MNIST:自定义函数mnist.load_mnist根据网址下载mnist数据集(四个ubyte.gz格式数据集文件) 目录 下载结果 运行代码 下载结果 运行代码 mnist.py ...
- DL之RBM:(sklearn自带数据集为1797个样本*64个特征+5倍数据集)深度学习之BRBM模型学习+LR进行分类实现手写数字图识别
DL之RBM:(sklearn自带数据集为1797个样本*64个特征+5倍数据集)深度学习之BRBM模型学习+LR进行分类实现手写数字图识别 目录 输出结果 实现代码 输出结果 实现代码 from _ ...
- 无需在数据集上学习和预训练,这种图像修复新方法效果惊人 | 论文
林鳞 编译自 Github 量子位 出品 | 公众号 QbitAI Reddit上又炸了,原因是一个无需在数据集上学习和预训练就可以超分辨率.修补和去噪的方法:Deep image prior. 帖子 ...
- 基于自动图像分割算法和扩展数据集深度学习的经济作物病害识别
基于自动图像分割算法和扩展数据集深度学习的经济作物病害识别 1.作物病害识别出现的问题 实际应用中作物图像的复杂背景信息和训练数据不足会导致深度学习的错误识别. 2.研究内容 提出了一种基于自动图像分 ...
- STM32启动文件学习总结
STM32启动文件学习总结 1.概 ...
- 2021-10-02PE文件学习
欢迎大家一起来Hacking水友攻防实验室学习,渗透测试,代码审计,免杀逆向,实战分享,靶场靶机,求关注 PE文件学习 推荐工具:lord PE.stud PE <PE权威指南>,了解格式 ...
最新文章
- 注意!你的 Navicat 可能被投毒了...
- 头文件setjmp.h
- GitLab安装文档
- 4-uboot编译流程
- NOR和NAND Flash存储器的区别
- MYSQL增量备份和全量备份脚本
- UEditor 如何进行二次开发
- 2017.2.14-15自测(那些普及神题)
- android 日历 时间选择,Android--DatePicker和TimePicker(日历选择器与时间选择器)
- Spring中定时任务Quartz集群配置学习
- maven如果正常配置不成功,就按照我的就可以配置成功了
- leetcode(85)最大矩形
- 迅雷极速版禁止自动升级的方法
- 南航计算机专业哪个校区,今天被南航拟录取了,写点干货留给后来人(学校选择+初试+复试)...
- Chrome主页被恶意篡改
- excel批量删除单元格中的部分内容
- 【双轨】加权分红+三级分销+见点奖+级差源码系统 演示网站介绍
- LEARNING TO REPRESENT PROGRAMS WITH HETEROGENEOUS GRAPHS 学会用异构图表示程序(从AST中构建异构图)
- python while无限循环语句_Python While 循环语句
- 小黄鸡 java_用java实现Simsimi小黄鸡接口