KITTI数据集
目的
使用雷达点云提供的深度信息
如何实现
将雷达的三维点云投影到相机的二维图像上
kitti数据集简介
kitti的数据采集平台,配置有四个摄像机和一个激光雷达,四个摄像机中有两个灰度摄像机,两个彩色摄像机。
从图中可看出,关于相机坐标系(camera)的方向与雷达坐标系(velodyne)的方向规定:
camera: x = right, y = down, z = forward
velodyne: x = forward, y = left, z = up
那么velodyne所采集到的点云数据中,各点的x轴坐标,即为所需的深度信息。
更多详细的简介网络上都能搜索到,这里只列举了与当前目的相关的必要信息。
kitti数据集的raw_data
raw_data对于每个序列都提供了同步且校准后的数据、标定数据。
同步且校准后的数据:
./imageXX 包含有各个摄像机采集到的图像序列
./velodyne_points 包含有雷达扫描到的数据,点云形式,每个点以 (x,y,z,i) 格式存储,i为反射值
(雷达采集数据时,是绕着竖直轴旋转扫描,只有当雷达旋转到与相机的朝向一致时会触发相机采集图像。不过在这里无需关注这一点,直接使用给出的同步且校准后的数据即可,它已将雷达数据与相机数据对齐,也就是可以认为同一文件名对应的图像数据与雷达点云数据属于同一个场景。)
标定数据:
./cam_to_cam 包含有各个摄像机的标定参数
./velo_to_cam 包含有雷达到摄像机的变换参数
对于raw_data,kitti还提供了样例工具,方便读取各种数据文件并输出,参见官网raw_data下载页的development kit
利用kitti提供的devkit以及相应数据集的calib文件
解读calib文件夹
cam_to_cam,包含各相机的标定参数
- S_xx: 1x2 矫正前xx号相机的图片尺寸
- K_xx: 3x3 矫正前xx号相机的标定参数
- D_xx: 1x5 矫正前xx号相机的畸变系数
- R_xx: 3x3 外参,xx号相机的旋转矩阵
- T_xx: 3x1 外参,xx号相机的平移矩阵
- S_rect_xx: 1x2 矫正后XX号相机的图片尺寸
- R_rect_xx: 3x3 旋转矩阵,用于矫正xx号相机,使得图像平面共面(原话是make image planes co-planar)。
- P_rect_0x: 3x4 投影矩阵,用于从矫正后的0号相机坐标系 投影到 X号相机的图像平面。
这里只用到最后两个矩阵R_rect和P_rect
velo_to_cam,从雷达坐标系到0号相机坐标系的转换
- R: 3x3 旋转矩阵
- T: 3x1 平移矩阵
- delta_f 和delta_c 已被弃用
由此可以得出从雷达坐标系变换到xx号相机的图像坐标系的公式:
设X为雷达坐标系中的齐次坐标 X = [x y z 1]',对应于xx号相机的图像坐标系的齐次坐标Y = [u v 1]',则:
其中
(R|T) : 雷达坐标系 -> 0号相机坐标系
R_rect_00: 0号相机坐标系 -> 矫正后的0号相机坐标系
P_rect_0x: 矫正后的0号相机坐标系 -> x号相机的图像平面
更详细完整的解读参见devkit中的readme.txt
解读devkit
官网提供的样例代码中 run_demoVelodyne.m 实现了将雷达点云投影到相机图像
代码流程
- 从所给路径中读取标定文件,获取具体矩阵数值
- 根据上述公式,计算投影矩阵 P_velo_to_img,即 Y = P_velo_to_img * X
- 从所给路径中读取相机图片,并加载雷达的点云数据。由于只做展示用,为了加快运行速度,对于雷达点云,每隔5个点只保留1个点
- 移除那些距离雷达5米之内(雷达的x方向)的点 (猜测这些点落在相机和雷达之间,故不会出现在图像平面上)
- 作投影计算,得到投影到二维图像上的点
6.在图像上画出投影后的点,按照深度(雷达点的x方向值)确定颜色,彩色则是暖色越近,冷色越远;灰度则是深色越近,浅色越远。
若需要从深度图获取深度值,应按照画投影点时深度值到颜色(灰度)值的转换。
来源:https://www.cnblogs.com/notesbyY/p/10478645.html
KITTI数据集的更多相关文章
- KITTI数据集格式说明
由于上一篇博客所提到的论文中的训练数据是KITTI的数据集,因此如果我想要用自己的数据集进行训练的话,就需要先弄清楚KITTI数据集的格式,在以下的网址找到了说明: 首先,数据描述中是这样的: 在以下 ...
- 激光相机数据融合(3)--KITTI数据集
KITTI数据集提供了双目图像,激光数据,和imu/gps位置信息,其中还包括了大量的算法.下载地址为:http://www.cvlibs.net/datasets/kitti/raw_data.ph ...
- KITTI数据集的使用——雷达与相机的数据融合
目录 目的 如何实现 kitti数据集简介 kitti数据集的raw_data 利用kitti提供的devkit以及相应数据集的calib文件 解读calib文件夹 解读devkit 目的 使用雷达点 ...
- kitti数据集标定文件解析
1.kitti数据采集平台 KITTI数据集的数据采集平台装配有2个灰度摄像机,2个彩色摄像机,一个Velodyne64线3D激光雷达,4个光学镜头,以及1个GPS导航系统.图示为传感器的配置平面图, ...
- kitti 数据集解析
1.KITTI数据集采集平台: KITTI数据采集平台包括2个灰度摄像机,2个彩色摄像机,一个Velodyne 3D激光雷达,4个光学镜头,以及1个GPS导航系统.坐标系转换原理参见click.KIT ...
- KITTI数据集上MaskRCNN检测效果示例
KITTI数据集上MaskRCNN检测效果示例 在Semantic Instance Segmentation Evaluation中,MaskRCNN性能效果排名第一. Test Image 0 I ...
- stixel-world跑在kitti数据集
kitti数据集中每一帧的Calibration不同,每一帧都存储了4个相机的Calibration http://ww.cvlibs.net/publications/Geiger2013IJRR. ...
- 下载Kitti 数据集(dataset) data_road.zip
官网下载http://www.cvlibs.net/download.php?file=data_road.zip,耗时近3小时,虽然只有几百兆. 但是,我坚持下来了. 保存到了百度网盘,以供国内用户 ...
- yolo-开源数据集coco kitti voc
1.kitti数据集(参考博客:https://blog.csdn.net/jesse_mx/article/details/65634482 https://blog.csdn.net/baoli ...
随机推荐
- loj 2719 「NOI2018」冒泡排序 - 组合数学
题目传送门 传送门 题目大意 (相信大家都知道) 显然要考虑一个排列$p$合法的充要条件. 考虑这样一个构造$p$的过程.设排列$p^{-1}_{i}$满足$p_{p^{-1}_i} = i$. 初始 ...
- Ensight——Fluent重叠网格解决方案【翻译】
原文链接:https://support.ceisoftware.com/hc/en-us/articles/360000664191-Overset-Grid-Solutions-from-Flue ...
- Oracle--RMAN Recover 缺失的归档操作
一,环境简介 Oracle RMAN 备份的恢复分2个步骤:RESTRE 和 RECOVER.在这里回复的时候是依赖者归档文件的,当周一完成数据全备,保留归档的情况下,后期数据有问题,恢复的时候发现少 ...
- 团队作业第五次—项目冲刺-Day4
Day4 part1-SCRUM: 项目相关 作业相关 具体描述 所属班级 2019秋福大软件工程实践Z班 作业要求 团队作业第五次-项目冲刺 作业正文 hunter--冲刺集合 团队名称 hunte ...
- python脚本生成exe程序
去年十一月换了新公司后,一直没闲着,马不停蹄地接不同的需求,一个版本一个版本的迭代,也没时间研究python了.十一休假归来,某日,老婆问金融量化需要学python吗?并分享了一个公众号文章,内容是吹 ...
- Visual Studio 2019(VS2019)下载极慢的问题
今天给新电脑安装 vs2019,下载速度只有 TMD 10kb/s,实在忍无可忍,在经过了一系列的百度之后,找到解决方法. 具体方法很简单: 用站长工具查询了一下 download.visualstu ...
- 释放mac磁盘空间
转发自:https://www.jianshu.com/p/722093bc3dea Mac清理磁盘空间主要讲述在Mac上工作清理磁盘空间的小技巧,本节主要讲述作为一名使用Mac开发的iOS工程师,需 ...
- ng使用bootstrap
1.在项目中使用命令 npm i bootstrap -s来创建bootstrap 2.创建完成之后在 angular.json中引入进去 "styles": [ ...
- dotnet中文字符工具类
支持繁体简体互换. using System; using System.Collections.Generic; using System.IO; using System.Linq; using ...
- WPF DispatcherTimer一些个人看法 (原发布 csdn 2017-04-25 19:12:22)
wpf中的DispatcherTimer基本用法,本文不在叙述.主要写一些不同的,来提醒自己不要再犯同样错误. 前几天写代码时发现.当在非UI线程创建DispatcherTimer实例时,程序无法进入 ...