KITTI 数据集简介

article/2025/10/23 13:02:00

数据集简介

KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上自动驾驶场景下常用的数据集之一。KITTI数据集的数据采集平台装配有2个灰度摄像机,2个彩色摄像机,一个Velodyne 64线3D激光雷达,4个光学镜头,以及1个GPS导航系统。
官网 国内下载地址1 国内下载地址2
在这里插入图片描述
在这里插入图片描述
为了生成双目立体图像,相同类型的摄像头相距54cm安装。由于彩色摄像机的分辨率和对比度不够好,所以还使用了两个立体灰度摄像机,它和彩色摄像机相距6cm安装。为了方便传感器数据标定,规定坐标系方向如下[2] :
• Camera: x = right, y = down, z = forward
• Velodyne: x = forward, y = left, z = up
• GPS/IMU: x = forward, y = left, z = up

Dataset详解

文件组织形式

在这里插入图片描述

  1. calib:相机标定参数,可根据参数将2D、3D数据坐标进行转换
  2. image2: 左侧彩色相机图像数据
  3. veloyne:雷达点云数据
  4. label2:对应文件标签

calib标定校准文件解析

在这里插入图片描述

  1. 内参矩阵: P0-P3分别表示4个相机(左边灰度相机、右边灰度相机、左边彩色相机和右边彩色相机)的内参矩阵,或投影矩阵, 大小为 3x4。相机内参矩阵是为了计算点云空间位置坐标在相机坐标系下的坐标,即把点云坐标投影到相机坐标系。将相机的内参矩阵乘以点云在世界坐标系中的坐标即可得到点云在相机坐标系中的坐标。
  2. 校准矩阵: R0_rect 为0号相机的修正矩阵,大小为3x3,目的是为了使4个相机成像达到共面的效果,保证4个相机光心在同一个xoy平面上。在进行外参矩阵变化之后,需要于R0_rect相乘得到相机坐标系下的坐标。
  3. 外参矩阵:根据上述介绍,我们知道存在三种坐标系世界坐标系、相机坐标系、激光雷达坐标系。世界坐标系反映了物体的真实位置坐标,也是作为相机坐标系和激光雷达坐标系之间相互变换的过渡坐标系。点云位置坐标投影到相机坐标系前,需要转换到世界坐标系下,对应的矩阵为外参矩阵。外参矩阵为Tr_velo_to_cam ,大小为3x4,包含了旋转矩阵 R 和 平移向量 T。将相机的外参矩阵乘以点云坐标即可得到点云在世界坐标系中的坐标。
  4. 综上所述,点云坐标在相机坐标系中的坐标等于
    相机坐标 = 内参矩阵 * 外参矩阵 * R0校准矩阵 * 点云坐标
    例如要将Velodyne激光雷达坐标系中的点x投影到左侧的彩色图像中y,使用公式:
    y = P2 * R0_rect *Tr_velo_to_cam * x
  5. 激光雷达坐标转换图像像素坐标代码
    def velodyne2img(calib_dir, img_id, velo_box):""":param calib_dir: calib文件的地址:param img_id: 要转化的图像id:param velo_box: (n,8,4),要转化的velodyne frame下的坐标,n个3D框,每个框的8个顶点,每个点的坐标(x,y,z,1):return: (n,4),转化到 image frame 后的 2D框 的 x1y1x2y2"""# 读取转换矩阵calib_txt=os.path.join(calib_dir, img_id) + '.txt'calib_lines = [line.rstrip('\n') for line in open(calib_txt, 'r')]for calib_line in calib_lines:if 'P2' in calib_line:P2=calib_line.split(' ')[1:]P2=np.array(P2, dtype='float').reshape(3,4)elif 'R0_rect' in calib_line:R0_rect=np.zeros((4,4))R0=calib_line.split(' ')[1:]R0 = np.array(R0, dtype='float').reshape(3, 3)R0_rect[:3,:3]=R0R0_rect[-1,-1]=1elif 'velo_to_cam' in calib_line:velo_to_cam = np.zeros((4, 4))velo2cam=calib_line.split(' ')[1:]velo2cam = np.array(velo2cam, dtype='float').reshape(3, 4)velo_to_cam[:3,:]=velo2camvelo_to_cam[-1,-1]=1tran_mat=P2.dot(R0_rect).dot(velo_to_cam)  # 3x4velo_box=velo_box.reshape(-1,4).Timg_box = np.dot(tran_mat, velo_box).Timg_box=img_box.reshape(-1,8,3)img_box[:,:,0]=img_box[:,:,0]/img_box[:,:,2]img_box[:, :, 1] = img_box[:, :, 1] / img_box[:, :, 2]img_box=img_box[:,:,:2]   # (n,8,2)x1y1=np.min(img_box,axis=1)x2y2 = np.max(img_box, axis=1)result =np.hstack((x1y1,x2y2))   #(n,4)return result
    
  6. 各个转换
    设 y为 激光雷达坐标写下的点 (x,y,z,r)
    • Tr_velo_to_cam * y : 把激光雷达坐标系下的点y投影到相机坐标系

    • R0_rect * Tr_velo_to_cam * y: 将激光雷达坐标系下的点投影到编号为2的相机坐标系,结果为(x,y,z,1),直接取前三个为投影结果,当计算出z<0的时候表明该点在相机的后面 。标注文件中的中心坐标即是相机2下的坐标系。

    • P2 * R0_rect * Tr_velo_to_cam * y:将激光雷达坐标系下的点投影到编号为2的相机采集的图像中,结果形式为(u,v,w)。 Ps:u,w需要除以w后取整才是最终的像素。

标注文件解析

标注文件中16个属性,即16列。但我们只能够看到前15列数据,因为第16列是针对测试场景下目标的置信度得分,也可以认为训练场景中得分全部为1但是没有专门标注出来。

  1. 目标类比别(type),共有8种类别,分别是Car、Van、Truck、Pedestrian、Person_sitting、Cyclist、Tram、Misc或’DontCare。DontCare表示某些区域是有目标的,但是由于一些原因没有做标注,比如距离激光雷达过远。但实际算法可能会检测到该目标,但没有标注,这样会被当作false positive (FP)。这是不合理的。用DontCare标注后,评估时将会自动忽略这个区域的预测结果,相当于没有检测到目标,这样就不会增加FP的数量了。此外,在 2D 与 3D Detection Benchmark 中只针对 Car、Pedestrain、Cyclist 这三类。
  2. 截断程度(truncated),表示处于边缘目标的截断程度,取值范围为0~1,0表示没有截断,取值越大表示截断程度越大。处于边缘的目标可能只有部分出现在视野当中,这种情况被称为截断。
  3. 遮挡程度(occlude),取值为(0,1,2,3)。0表示完全可见,1表示小部分遮挡,2表示大部分遮挡,3表示未知(遮挡过大)。
  4. 观测角度(alpha),取值范围为(-pi, pi)。是在相机坐标系下,以相机原点为中心,相机原点到物体中心的连线为半径,将物体绕相机y轴旋转至相机z轴,此时物体方向与相机x轴的夹角。这相当于将物体中心旋转到正前方后,计算其与车身方向的夹角。
  5. 第5-8列:二维检测框(bbox),目标二维矩形框坐标,分别对应left、top、right、bottom,即左上(xy)和右下的坐标(xy)。
  6. 第9-11列:三维物体的尺寸(dimensions),分别对应高度、宽度、长度,以米为单位。
  7. 第12-14列:中心坐标(location),三维物体底部中心在相机坐标系下的位置坐标(x,y,z),单位为米。
  8. 第15列:旋转角(rotation_y),取值范围为(-pi, pi)。表示车体朝向,绕相机坐标系y轴的弧度值,即物体前进方向与相机坐标系x轴的夹角。rolation_y与alpha的关系为alpha=rotation_y - theta,theta为物体中心与车体前进方向上的夹角。alpha的效果是从正前方看目标行驶方向与车身方向的夹角,如果物体不在正前方,那么旋转物体或者坐标系使得能从正前方看到目标,旋转的角度为theta。
  9. 第16列:置信度分数(score),仅在测试评估的时候才需要用到。置信度越高,表示目标越存在的概率越大。

http://chatgpt.dhexx.cn/article/1LWSo4Mf.shtml

相关文章

KITTI数据集简析

文章目录 KITTI数据集数据集结构数据集内容data_object_calib 样本标定数据data_object_label_2 3D点云标注文件 KITTI数据集 数据集结构 KITTI数据集网盘 提取码&#xff1a;0bjl KITTI ├── devkit_object | ├── cpp | ├── mapping | ├── matlab | └─…

KITTI数据集(概念版)

一、参考资料 KITTI 官网 kitti数据集各个榜单介绍 自动驾驶KITTI数据集详解 KITTI数据集简介与使用 kitti数据集各个榜单介绍 KITTI数据集介绍 KITTI数据集简介&#xff08;一&#xff09; — 激光雷达数据 【KITTI】KITTI数据集简介&#xff08;二&#xff09; — 标注数据l…

KITTI数据集

KITTI数据集分为2012和2015 KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办&#xff0c;是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。KITTI包含市区、乡村和高速公路等场景采集的真实图像数据&#xff0c;每张图像中最多达15辆车和30个行…

Vins-fusion gps融合 KITTY数据集测试

下载kitti数据集 下载kitti数据集和真值poses的00.txt以及sequences文件00序列的times.txt&#xff0c;&#xff08;全网找了好久&#xff0c;最后不得已翻墙从官网down下来的&#xff09; 代码修改&#xff0c;保存输出数据 先指定输出路径:打开vins-fusion/config/kitti_r…

详解KITTI数据集

详解KITTI数据集 一、KITTI数据集发布方 2011年&#xff0c;Andreas Geiger&#xff08;KIT&#xff09;、Philip Lenz&#xff08;KIT&#xff09;、Raquel Urtasun&#xff08;TTIC&#xff09;三位年轻人发现&#xff0c;阻碍视觉感知系统在自动驾驶领域应用的主要原因之一…

KITTI数据集简介与使用

1.KITTI数据集概述 KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办&#xff0c;是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。该数据集用于评测立体图像(stereo)&#xff0c;光流(optical flow)&#xff0c;视觉测距(visual odometry)&…

计算机视觉数据集介绍:KITTI数据集

KITTI数据集简介 KITTI数据集是由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办&#xff0c;利用组装的设备齐全的采集车辆对实际交通场景进行数据采集获得的公开数据集。该数据集包含丰富多样的传感器数据&#xff08;有双目相机、64线激光雷达、GPS/IMU组合导航定位系…

盘阿里云ECS内挖矿程序

1.二话不说先上图&#xff0c;cpu一路飙升在100% 2.进入服务器top命令查看占用cpu的异常进程 3.找到目标PID kill -9 10478 干掉这个进程&#xff0c;没几秒这个Macron的进程又死灰复燃 4.定位Macron目录 ls -l /proc/$PID/exe 定位到发现目标文件为/tmp/Macron&#xff0c;…

记录_第一次解决挖矿程序入侵问题

记录第一次处理&#xff0c;服务器也被挖矿程序入侵&#xff0c;原本是不想处理的&#xff0c;但是阿里云一直给我警告&#xff0c;然后再不处理服务器给我停了&#xff0c;这导致我立马打开电脑进行处理&#xff0c;怎么处理的我也不会啊&#xff0c;就一直百度&#xff0c;还…

centos8 处理挖矿程序攻击

ll /usr/bin/top* top命令被修改&#xff0c;并且隐藏了两个进程 chattr命令不可用&#xff0c;先删除e2fsprogs再重新安装。 yum remove e2fsprogs #rpm -qa|grep e2fsprogs yum -y install e2fsprogs #yum install e2fsprogs-1.45.6-2.el8.x86_64 解锁TOP文件并恢复 c…

案例分享—服务器被植入挖矿程序排查

主机的操作系统是CentOS7&#xff0c;应用架构是JavaMySQLRedis。客户描述问题是有一个从下午2点到凌晨的秒杀活动。秒杀系统开始的时候是可以正常运行的&#xff0c;但是到了晚上7点就突然无法使用了&#xff0c;前台提交秒杀请求后&#xff0c;后端无响应&#xff0c;最终超时…

解决阿里云服务器提示挖矿程序风险

最近阿里云天天提示我挖矿&#xff0c;可是我是良民啊&#xff0c;还要封我号&#xff0c;把我吓够呛啊。 后台通过CPU 被挖矿&#xff0c;Redis 竟是内鬼&#xff01;_CSDN云计算-CSDN博客 这篇文章有所启发&#xff0c;大家可以看下 目前没提示&#xff0c;后期再提示再更新…

记录解决阿里云ES服务器提示挖矿程序

前言 突然收到阿里云的短信提醒&#xff0c;说服务器出现了恶意挖矿程序&#xff0c;还好这台上都是测试服务器&#xff0c;之前也做了数据备份&#xff0c;可以放心去整&#xff0c;不过还是得小心严重操作前记得备份下 处理过程 1、检查服务器负载与CPU利用率&#xff0c…

服务器提示有挖矿程序,是怎么回事

在提示我有挖矿程序后&#xff0c;我去阿里云的安全中心&#xff0c;看到有三个病毒进程警告&#xff0c;但是都结束进程失败&#xff0c;然后我询问售后工程师&#xff0c;售后工程师给我的回复时格式化云盘。因为没有找到更好的解决方式&#xff0c;就选择了重新安装系统和格…

【解决阿里云服务器提示挖矿程序风险2022】

解决阿里云服务器提示挖矿程序风险2022-10 搜索删除含system-private相关的所有文件 如图&#xff1a;system-private....2.清除定时任务 3.修改文件可执行权限 4.清除路由表中隐患IP 5.在不使用云服务器的情况下可以关闭ssh端口 参考资料&#xff1a; 解决阿里云服务器提示挖…

[linux] 挖矿程序的停止与清除

问题描述 实验室的linux服务器有一位用户的密码比较弱&#xff0c;被试出来了&#xff0c;然后攻击者在我们的服务器上运行了挖矿程序 gpustat查询后发现&#xff1a;四张显卡都被占满&#xff0c;GPU显存占用不大&#xff0c;但使用率为100% 此时如果直接kill那个占用显卡的…

Ubuntu服务器清除挖矿程序

言简意赅&#xff0c;直入主题 早晨ssh登录服务器的时候发现出现情况 screen创建的会话本来还在跑代码的&#xff0c;重新进入一看被terminal了 一脸懵逼地输入nvidia-smi 我了个擦&#xff01;两张显卡占用一样&#xff0c;而且每秒都是100%&#xff0c;并且都只有一个程序在…

liunx挖矿程序排查思路

最近收到一个阿里云安全告警&#xff0c;在这里写一下自己的排查思路&#xff0c;与大家交流一下: 安全告警邮件 查看异常情况 输入top&#xff0c;输入shift P会按照cpu的使用率大小从大到小进行排序&#xff0c;发现有异常进程7140与7129 [rootwww-site-ec-6 ]# ps -ef…

阿里云服务器中了挖矿程序应该如何清除

阿里云服务器中了挖矿程序如何处理?云安全中心安全告警短信提醒云服务器中了挖矿程序怎么处理?护云盾来详细说下阿里云服务器挖矿程序的解决方法,一种是使用云安全中心自动处理,另一种方式是自行手动清除。 阿里云服务器挖矿程序解决方法 如果你的阿里云服务器中了挖矿程…

阿里云服务器被挖矿程序侵入问题

一、起因 公司需要自行管理代码&#xff0c;所以搞了个阿里云服务器装Gitlab&#xff0c;装的时候版本是13.9.4&#xff08;在Gitlab挖矿漏洞的版本内&#xff09;。一直正常使用&#xff0c;然后半夜突然收到阿里云告警短信&#xff0c;说服务器可能存在挖矿程序&#xff0c;部…