3D目标检测数据集 KITTI(标签格式解析、点云转图像、点云转BEV)

本文介绍在3D目标检测中,理解和使用KITTI 数据集,包括KITTI 的基本情况、下载数据集、标签格式解析、点云转图像、点云转BEV。

目录

 1、KITTI数据集中3D框可视化的效果

2、先看个视频,了解KITTI 的基本情况

3、来到KITTI官网,下载数据集

4、标签格式

5、标定参数解析

6、点云3D结果-->图像3D结果(坐标系转换)

6、图像3D结果-->点云3D结果(坐标系转换)

8、点云3D结果-->图像BEV鸟瞰图结果(坐标系转换)


 1、KITTI数据集中3D框可视化的效果

2、先看个视频,了解KITTI 的基本情况

KITTI 数据集介绍


3、来到KITTI官网,下载数据集

The KITTI Vision Benchmark Suite (cvlibs.net)

下载数据需要注册账号的,获取取百度网盘下载;文件的格式如下所示

图片格式:xxx.jpg

点云格式:xxx.bin(点云是以bin二进制的方式存储的)

标定参数:xxx.txt(一个文件中包括各个相机的内参、畸变校正矩阵、激光雷达坐标转到相机坐标的矩阵IMU坐标转激光雷达坐标的矩阵)

标签格式:xxx.txt(包含类别、截断情况、遮挡情况、观测角度、2D框左上角坐标、2D框右下角坐标、3D物体的尺寸-高宽长、3D物体的中心坐标-xyz、置信度)

4、标签格式

这时可以看看这个视频:

Nuscenes、KITTI等多个BEV开源数据集介绍

5、标定参数解析

然后看一下标定参数;P0-P3:是各个相机的内参矩阵;

R0_rect: 是左相机的畸变矫正矩阵;

Tr_velo_to_cam:是激光雷达坐标系 转到 相机坐标系矩阵;

Tr_imu_to_velo: 是IMU坐标转到激光雷达坐标的矩阵

6、点云3D结果-->图像3D结果(坐标系转换)

当有了点云3D结果,如何投影到图像中呢?本质上是一个坐标系转换的问题,流程思路如下:

  1. 已知点云坐标(x,y,z),当前是处于激光雷达坐标系
  2. 激光雷达坐标系 转到 相机坐标系,需要用到标定参数中的Tr_velo_to_cam矩阵,此时得到相机坐标(x1,y1,z1)
  3. 相机坐标系进行畸变矫正,需要用到标定参数中的R0_rect矩阵,此时得到相机坐标(x2,y2,z2)
  4. 相机坐标系转为图像坐标系,需要用到标定参数中的P0矩阵,即相机内存矩阵,此时得到图像坐标(u,v)

6、图像3D结果-->点云3D结果(坐标系转换)

当有了图像3D结果,如何投影到点云中呢?本质上是一个坐标系转换的问题,和上面的是逆过程,流程思路如下:

  1. 已知图像坐标(u,v),当前是处于图像坐标系
  2. 图像坐标系 转 相机坐标系,需要用到标定参数中的P0逆矩阵,即相机内存矩阵,得到相机坐标(x,y,z)
  3. 相机坐标系进行畸变矫正,需要用到标定参数中的R0_rect逆矩阵,得到相机坐标(x1,y1,z1)
  4. 矫正后相机坐标系 转 激光雷达坐标系,需要用到标定参数中的Tr_velo_to_cam逆矩阵,此时得到激光雷达坐标(x2,y2,z2)

8、点云3D结果-->图像BEV鸟瞰图结果(坐标系转换)

思路流程:

  1. 读取点云数据,点云得存储格式是n*4,n是指当前文件点云的数量,4分别表示(x,y,z,intensity),即点云的空间三维坐标、反射强度
  2. 我们只需读取前两行即可,得到坐标点(x,y)
  3. 然后将坐标点(x,y),画散点图

BEV鸟瞰图效果如下:

后面还会介绍Nuscenes、Waymo等3D数据集。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/103842.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构:线性表之-单向链表(无头)

目录 什么是单向链表 顺序表和链表的区别和联系 顺序表: 链表: 链表表示(单项)和实现 1.1 链表的概念及结构 1.2单链表(无头)的实现 所用文件 将有以下功能: 链表定义 创建新链表元素 尾插 头插 尾删 头删 查找-给一个节点的…

【多线程】Thread 类 详解

Thread 类 详解 一. 创建线程1. 继承 Thread 类2. 实现 Runnable 接口3. 其他变形4. 多线程的优势-增加运行速度 二. Thread 类1. 构造方法2. 常见属性3. 启动线程-start()4. 中断线程-interrupt()5. 线程等待-join()6. 线程休眠-sleep()7. 获取当前线程引用 三. 线程的状态1. …

C# OpenCvSharp 通道分离

效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using OpenCvSharp.Extensions;namespac…

Shell命令管理进程

Shell命令管理进程 列出进程 ps命令 top命令 管理后台进程 启动后台进程 查看后台进程 jobs和ps的区别 停止进程 Linux除了是一种多用户操作系统之外,还是一种多任务系统。多任务意味着可以同时运行多个程序。Linux 提供了相关的工具来列出运行中的进程,监视…

TSINGSEE青犀视频AI分析/边缘计算/AI算法·安全帽检测功能——多场景高效运用

安全帽检测算法主要是对人员安全和事故预防的需要。在许多工业领域和施工现场,佩戴安全帽是一种重要的安全措施,可以减少头部受伤的风险。然而,由于工地人员数量众多且繁忙,人工监控难以有效覆盖所有区域,因此旭帆科技…

LeetCode 23 合并 K 个升序链表

LeetCode 23 合并 K 个升序链表 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/merge-k-sorted-lists/description/ 博主Github:https://github.com/GDUT-Rp/LeetCode 题目: 给你一个链表数组…

算法通关村第12关【青铜】| 字符串转换问题

1.转换成小写字母 思路:ASCll码中,a-z:97-122 A-Z:65-90 小写转大写-32,大写转小写32 class Solution {public String toLowerCase(String s) {int len s.length();StringBuilder str new StringBuilder();for(int…

it监控系统可以电脑吗?有什么效果

IT业务监控已经成为公司不可或缺的一部分,以确保业务的正常运行,提高企业的竞争能力。本文将详细介绍IT业务监控的必要性、实施方法以及如何选择合适的监控工具。 IT业务监控的必要性 确保业务稳定运行  IT业务监控可以实时检测公司的工作流程&#x…

蚂蚁发布金融大模型:两大应用产品支小宝2.0、支小助将在完成备案后

9月8日,在上海举办的外滩大会上,蚂蚁集团正式发布金融大模型。据了解,蚂蚁金融大 模型基于蚂蚁自研基础大模型,针对金融产业深度定制,底层算力集群达到万卡规模。该大 模型聚焦真实的金融场景需求,在“认知…

【已更新代码图表】2023数学建模国赛E题python代码--黄河水沙监测数据分析

E 题 黄河水沙监测数据分析 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变 化和人民生活的影响,以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾 等方面都具有重要的理论指导意义。 附件 1 给出了位于小浪底水…

国产SSD的0e可靠性问题如何解决?

最近有粉丝在后台私信询问过程NAND的0e问题,觉得有必要跟大家聊聊小编的一些看法和SSD选购相关的注意事项。 说实话,小编看到0e这个词还一时间还有点恍惚了,0e是啥,我还搜索了一下,发现还挺多的。主要是长江存储和三星的词条。 点开才发现,原来0e是Media Error啊,恕我孤…

3D点云测量:计算三个平面的交点

文章目录 0. 测试效果1. 基本内容文章目录:3D视觉测量目录0. 测试效果 1. 基本内容 计算三个平面的交点需要找到满足所有三个平面方程的点。三个平面通常由它们的法向量和通过它们的点(或参数形式的方程)来定义。以下是计算三个平面的交点的一般步骤: 假设有三个平面,分别…