nuScenes数据集使用的相机的外参和内参

因为需要用不同数据集测试对比效果,而一般的模型代码里实现的检测结果可视化都是使用open3d的Visualizer在点云上画的3d框,展示出来的可视化效果很差,可能是偷懒,没有实现将检测结果投影到各相机的图像上,所以检测效果可视化对核对效果根本没多大用处,除非自己把检测结果和点云写如rosbag包并且基于ros写程序画出box并发布然后去rviz里看效果展示,对于基于nuScenes数据集的检测结果在图像上做可视化其实比较简单,因为它使用的相机是普通无畸变平面相机,直接将模型检测输出的3dbox(一般是基于激光雷达点云坐标系的)的8个顶点的坐标组成的矩阵左乘以6个相机的外参和内参转换到像素坐标系下,得到8个顶点的像素坐标,然后在相机图像上用OpenCV画出各个顶点和按一定顺序画出顶点之间的连线,就完成了在图像上画出3d box可视化效果。记录一下整理出来的nuScenes数据集所用的6个相机的内外参数据矩阵,需要时可以直接拷贝使用:

{
"CAM_FRONT" : {

  "extrinsic" : 
 [[ 0.99988014,  0.01223258, -0.00949188, -0.00230111],
  [-0.0101382,   0.05390463, -0.9984946,  -0.35509583], 
  [-0.0117025,   0.99847114,  0.05402219, -0.42520362],
  [ 0,          0,          0,          1        ]],

  "intrinsic": 
  [[1.25281310e+03, 0.00000000e+00, 8.26588115e+02, 0.00000000e+00],
   [0.00000000e+00, 1.25281310e+03, 4.69984663e+02, 0.00000000e+00],
   [0.00000000e+00, 0.00000000e+00, 1.00000000e+00, 0.00000000e+00],
   [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00]],

  "distortion": []

},
 

"CAM_FRONT_RIGHT" : {
  "extrinsic" : 
  [[ 0.5372737,  -0.8417395,  -0.05302503,  0.02984875],
   [-0.00136775,  0.06200032, -0.9980752,  -0.33156687], 
   [ 0.84340686,  0.53631204,  0.03215985, -0.6103719 ], 
   [ 0,          0,          0,          1        ]],
	  
  "intrinsic" : 
  [[1.25674851e+03, 0.00000000e+00, 8.17788757e+02, 0.00000000e+00],
   [0.00000000e+00, 1.25674851e+03, 4.51954178e+02, 0.00000000e+00], 
   [0.00000000e+00, 0.00000000e+00, 1.00000000e+00, 0.00000000e+00], 
   [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00]],

  "distortion": []
},

         
"CAM_FRONT_LEFT" : {
  "extrinsic" : 
 [[ 0.5672582,   0.8228128,   0.034602,    0.10790747],
  [-0.01433343,  0.05187402, -0.9985508,  -0.35026494],
  [-0.8234153,   0.5659401,   0.04121969, -0.52967703],
  [ 0,          0,          0,          1        ]],
        
  "intrinsic" : 
 [[1.25786253e+03, 0.00000000e+00, 8.27241063e+02, 0.00000000e+00],
  [0.00000000e+00, 1.25786253e+03, 4.50915498e+02, 0.00000000e+00],
  [0.00000000e+00, 0.00000000e+00, 1.00000000e+00, 0.00000000e+00],
  [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00]],

  "distortion": []
},


"CAM_BACK" : {
  "extrinsic" : 
 [[-0.99992836,  0.00799071,  0.00891444,  0.00137395],
  [-0.00859485,  0.03917429, -0.99919546, -0.2810333 ],
  [-0.0083335,  -0.99920046, -0.0391028,  -1.0164535 ],
  [ 0,          0,          0,          1        ]],
         
  "intrinsic" : 
 [[796.89106345,   0,         857.77743269,   0        ],
  [  0,         796.89106345, 476.88489884,   0        ],
  [  0,           0,           1,           0        ],
  [  0,           0,           0,           1        ]],

  "distortion": []
},


"CAM_BACK_LEFT" : {
  "extrinsic" : 
[[-0.31910315,  0.9468608,   0.04034692, -0.2123741 ],
 [-0.01589121,  0.03722081, -0.99918073, -0.28666893],
 [-0.9475868,  -0.31948286,  0.00316949, -0.43252733],
 [ 0,          0,          0,          1        ]],
         
  "intrinsic" : 
[[1.25498606e+03, 0.00000000e+00, 8.29576933e+02, 0.00000000e+00],
 [0.00000000e+00, 1.25498606e+03, 4.67168056e+02, 0.00000000e+00],
 [0.00000000e+00, 0.00000000e+00, 1.00000000e+00, 0.00000000e+00],
 [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00]],

 "distortion": []
},
         

"CAM_BACK_RIGHT" : {
  "extrinsic" : 
[[-0.3820134,  -0.92305064, -0.04520244,  0.08872822],
 [ 0.01385406,  0.04318667, -0.998971,   -0.29866916],
 [ 0.92405295, -0.38224655, -0.00370989, -0.46464512],
 [ 0,          0,          0,          1        ]],

  "intrinsic" : 
[[1.24996293e+03, 0.00000000e+00, 8.25376805e+02, 0.00000000e+00],
 [0.00000000e+00, 1.24996293e+03, 4.62548164e+02, 0.00000000e+00],
 [0.00000000e+00, 0.00000000e+00, 1.00000000e+00, 0.00000000e+00],
 [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00]],
 "distortion": []
}
}
 

把nuScense的3d标注在图像上做可视化发现nuScenes的标注也做得不好 好些目标漏标了!只是目前没有更好的公开数据集出现,没银子自己采集和标注数据集的尤其是做学校研究发论文的就只能继续在nuScenes这样的数据集上干活了,尽管现在的车载激光雷达已经比nuScenes数据集采用的32线雷达好了几代了,还是不得不死磕nuScenes 32线雷达的稀疏点云用sweep帧对齐和叠加来模拟现在雷达的稠密点云。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

删除链表的倒数第 N 个结点 | LeetCode-19 | 双指针 | 递归 | 栈 | 四种方法

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 这道题还可以用递归法,你想到了吗?毛毛张介绍四种方法 LeetCode链接:19. 删除链表的倒数第 N 个结点 1.题目描述 给你一个链表&a…

【机器学习(十三)】机器学习回归案例之股票价格预测分析—Sentosa_DSML社区版

文章目录 一、背景描述二、Python代码和Sentosa_DSML社区版算法实现对比(一) 数据读入(二) 特征工程(三) 样本分区(四) 模型训练和评估(五) 模型可视化 三、总结 一、背景描述 股票价格是一种不稳定的时间序列,受多种因素的影响。影响股市的外部因素很多,主要有经济因素、政治因…

C++11新特性(4)

目录 1.包装器 2.线程库 2.1thread类的简单介绍 2.2线程函数参数 2.3原子性操作库(atomic) 2.4lock_guard与unique_lock 2.5mutex的种类 1. std::mutex 2. std::recursive_mutex 3. std::timed_mutex 4. std::recursive_timed_mutex 2.6lock_guard 2.7unique_lock 3.支持两个线…

鼠标市场洞察:数据分析揭示消费趋势!

鼠标整体数据分析 一. 概述 本报告基于从淘宝商品搜索接口和淘宝精确月销量接口中提取的数据,分析了前百个品牌在销售额上的占比情况。分析涵盖了销售额和占比的数据,为决策提供了依据。(以上两个接口有需求的可以找我要链接)(数…

概率 随机变量以及分布

一、基础定义及分类 1、随机变量 随机变量是一个从样本空间(所有可能结果的集合)到实数集的函数。(随机变量的值可以是离散的,也可以是连续的。 ) 事件可以定义为随机变量取特定值的集合。 2、离散型随机变量 随机变…

Unity开发Hololens项目

Unity打包Hololens设备 目录Visual Studio2019 / Visual Studio2022 远端部署设置Visual Studio2019 / Visual Studio2022 USB部署设置Hololens设备如何查找自身IPHololens设备门户Unity工程内的打包设置 目录 记录下自己做MR相关:Unity和HoloLens设备的历程。 Vi…

软件企业选择第三方软件检测机构有哪些好处?

在软件开发的当今时代,确保软件的质量和性能是每个企业面临的挑战,因此软件检测公正必不可少。随着市场的需求,越来越多企业会选择将该项工作交由第三方软件检测机构进行。第三方软件检测机构指独立于软件开发方和需求方的第三方机构&#xf…

5、JavaScript(二)

17.对象 1、对象:⽤来存储多个数据的 是由多个键值对/key value对组成的 ⽤来描述⼀个事物的 相当于多个变量的集合 2、格式 :{key:value,key:value} 键/值对 属性名:属性值 3、对象的属性值是不限制数据类型的,甚至还可以是对…

CEEMDAN +组合预测模型(BiLSTM-Attention + ARIMA)

往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较 全是干货 | 数据集、学习资料、建模资源分享! EMD、EEMD、FEEMD、CEEMD、CEEMDAN的区别、原理和Python实现(一)EMD-CSDN博客 EMD、EEM…

JavaWeb合集05-SpringBoot基础知识

五、SpringBoot基础知识 0、实用方法 0.1 动态获取某个文件路径 //getResource( name:" emp.txt") 更具名称获取资源链接;getFile() 获取文件对象 String filePaththis.getClass().getClassLoader().getResource( name:" emp.txt").getFile(…

数仓建设:如何设计数据治理考评规则?

目录 0 为什么要数据治理? 2 什么是数据治理? ​​​​​​​3 如何数据治理如何落地? ​​​​​​​4 数据考评的指标 5 考核指标列表 6 数仓团队应如何建设? 6.1 ​​​​​​​考评指标分析 6.2 ​​​健康分计算规则…

[Linux#67][IP] 报头详解 | 网络划分 | CIDR无类别 | DHCP动态分配 | NAT转发 | 路由器

目录 一. IP协议头格式 学习任何协议前的两个关键问题 IP 报头与有效载荷分离 分离方法 为什么需要16位总长度 如何交付 二. 网络通信 1.IP地址的划分理念 2. 子网管理 3.网络划分 CIDR(无类别域间路由) 目的IP & 当前路由器的子网掩码 …

ubuntu服务器监控程序崩溃自动重启

环境:监控程序运行情况分为两种情况,一种带界面,一种控制台程序,带界面程序采用脚本监控方式,不带界面采用Supervisor工具监控。 1. 自动重启带界面程序: #!/bin/sh while true; do processExistps aux | …

一些简单的编程题(Java与C语言)

引言: 这篇文章呢,小编将会举一些简单的编程题用来帮助大家理解一下Java代码,并且与C语言做个对比,不过这篇文章所出现的题目小编不会向随缘解题系列里面那样详细的讲解每一到题,本篇文章的主要目的是帮助小编和读者们…

【YOLOv11改进[CONV]】使用SAconv模块魔改YOLOv11 + 含全部代码和详细修改方式

本文将进行在YOLOv11中使用SAconv魔改v11,文中含全部代码、详细修改方式。助您轻松理解改进的方法。 改进前和改进后的参数对比如下: 目录 一 SAconv 二 使用SAconv魔改v11

构建 effet.js 人脸识别交互系统的实战之路

构建 effet.js 人脸识别交互系统的实战之路 文章目录 构建 effet.js 人脸识别交互系统的实战之路前言一、什么是effet.js二、为什么需要使用effet.js四、effet.js能做什么五、使用步骤1.引入库2.main.js中注册全局2.使用3.效果图 六、其他模式讲解人脸打卡人脸添加睡眠检测 在h…

[产品管理-46]:产品组合管理中的项目平衡与管道平衡的区别

目录 一、项目平衡 1.1 概述 1.2 项目的类型 1、根据创新程度和开发方式分类 2、根据产品开发和市场周期分类 3、根据风险程度分类 4、根据市场特征分类 5、根据产品生命周期分类 1.3 产品类型的其他分类 1、按物理形态分类 2、按功能或用途分类 3、按技术或创新程…

OpenCV高级图形用户界面(12)用于更改指定窗口的大小函数resizeWindow()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::resizeWindow() 函数用于更改指定窗口的大小。这使得你可以根据需要调整窗口的宽度和高度。 注释 指定的窗口大小是指图像区域的大小。工具栏…

必学的20个Excel表格操作python脚本!

示例数据 (bank_data.xlsx) 首先,我们创建一个示例的Excel文件bank_data.xlsx,并填充一些示例数据。 import pandas as pd # 创建示例数据 data { 客户ID: [1, 2, 3, 4, 5], 姓名: [张三, 李四, 王五, 赵六, 孙七], 联系方式: [13800000000, 13900000…

get请求(豆瓣电影第一页爬取)

目录 (一)需要的python库 import urllib.request import urllib.parse (二)找到url和headers url headers (三)创建一个请求对象和返回一个响应对象 创建一个请求对象 返回一个响应对象 &#xff08…