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帧对齐和叠加来模拟现在雷达的稠密点云。

相关文章:
nuScenes数据集使用的相机的外参和内参
因为需要用不同数据集测试对比效果,而一般的模型代码里实现的检测结果可视化都是使用open3d的Visualizer在点云上画的3d框,展示出来的可视化效果很差,可能是偷懒,没有实现将检测结果投影到各相机的图像上,所以检测效果…...
数据结构与算法:贪心算法与应用场景
目录 11.1 贪心算法的原理 11.2 经典贪心问题 11.3 贪心算法在图中的应用 11.4 贪心算法的优化与扩展 总结 数据结构与算法:贪心算法与应用场景 贪心算法是一种通过选择当前最佳解来构造整体最优解的算法策略。贪心算法在很多实际问题中都取得了良好的效果&am…...
音频编解码器音频文件格式
0 Preface/Foreword 1 音频编解码器 算法压缩越高,那么音频延迟越大,音频效果越好。 1.1 SBC SBC: sub-band coding,自带编码 A2DP强制规定使用的audio编解码器。 在音视频中,为了增加用户体验,规避视频和音频的不…...
FreeSWITCH JSON API
仅举几例: fs_cli -x json {"command" : "status", "data" : ""} fs_cli -x json {"command" : "sofia.status", "data" : ""} fs_cli -x json {"command" : "…...
学习docker第三弹------Docker镜像以及推送拉取镜像到阿里云公有仓库和私有仓库
docker目录 1 Docker镜像dockers镜像的进一步理解 2 Docker镜像commit操作实例案例内容是ubuntu安装vim 3 将本地镜像推送至阿里云4 将阿里云镜像下载到本地仓库5 后记 1 Docker镜像 镜像,是docker的三件套之一(镜像、容器、仓库)࿰…...
一文掌握Kubernates核心组件,构建智能容器管理集群
1.Kubernates简要概述 Kubernates(常称为K8s,因省略了“ubernate”中的8个字符)是Google开源的容器编排平台,专为简化和自动化应用服务的部署、扩展和管理而设计。它将应用与底层的服务器抽象开来,提供了自动化的机制…...
正则表达式快速入门
正则表达式是由一系列元字符(Meta-characters)组成的模式,用于定义搜索或替换文本的规则。元字符具有特殊含义,用于指定搜索模式的结构。以下是一些常用的正则表达式元字符及其功能: 字符匹配符 符号含义.匹配除 \r\…...
【小程序】-基础语法(二)
文章目录 知识回顾前言微信小程序开发一、模板语法2.1 数据绑定2.2 条件渲染2.3 列表渲染三、内置API3.1 网络请求3.2 界面交互3.3 本地存储3.4 API 特征3.5 相册/拍照3.6 小练习四、事件处理4.1 事件对象4.2 组件事件五、生命周期5.1 页面生命周期5.2 应用生命周期知识回顾 前…...
js 填充数组
let arr Array.from({ length: 10 }, (_, index) > index)console.log(arr) 人工智能学习网站 https://chat.xutongbao.top...
AI创作3款软件分享,助力内容创作者高效产出优质作品
为了增加创造力和作品质量,许多创作者开始利用人工智能辅助工具。这些工具不仅可以帮助我们迅速生成各种类型的内容,例如文章、绘画、视频广告等,还提供语法检查和优化建议等实用功能。本文将向大家推荐三款适用于Ai先行者、Tracup、Adoe Fir…...
A survey of loss functions for semantic segmentation——论文笔记
摘要 图像分割一直是一个活跃的研究领域,因为它有着广泛的应用范围,从自动疾病检测到自动驾驶汽车。过去五年中,各种论文提出了用于不同场景(如数据偏斜、稀疏分割等)的目标损失函数。在本文中,我们总结了…...
docker部署es与kibana Mac
1. 创建网络 神一样的链接,不用谢: 1.Docker命令链接:黑马整理的docker速成链接 2.jdk11链接:jdk11 3.神资源链接:别点,要脸 注意:es需要先安装jdk环境,推荐jdk11,否则…...
redis的渐进式哈希?说一下细节?------面试题分享
渐进式哈希(Progressive Hashing)是 Redis 中的一种优化机制,用于在执行 HGETALL 命令时逐步读取哈希表中的所有字段。这种机制避免了一次性加载大量数据到内存,从而减少了内存消耗和提高系统的响应速度。 渐进式哈希的背景 在 R…...
javaWeb项目-springboot+vue-车辆管理系统功能介绍
本项目源码(点击下方链接下载):java-springbootvue车辆管理系统源码(项目源码-说明文档)资源-CSDN文库 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端࿱…...
redis和memcached的区别
Redis和Memcached都是流行的内存缓存数据库,但它们有一些区别: 数据类型:Redis支持更多的数据类型,包括字符串、哈希、列表、集合和有序集合等,而Memcached只支持简单的键值对。 持久化:Redis支持数据的持…...
构建安全基石:网络安全等级保护定级指南
在数字化时代,网络安全已成为企业与个人不可忽视的重要课题。网络安全等级保护定级指南,作为国家指导网络安全保护的重要文件,为各类机构提供了精准的安全防护蓝图。本文旨在深度解析网络安全等级保护定级指南的精髓,助力建构全面…...
PyQt 入门教程(3)基础知识 | 3.1、使用QtDesigner创建.ui文件
文章目录 一、使用QtDesigner创建.ui文件1、创建.ui文件2、生成.py文件3、使用新生成的.py文件4、编辑新生成的.py文件 一、使用QtDesigner创建.ui文件 1、创建.ui文件 打开PyCharm,使用自定义外部工具QtDesigner创建mydialog.ui文件,如下: …...
解锁金融大门,你的基从备考秘籍全揭秘!
大家好!随着金融行业的快速发展,基金从业资格证已经成为越来越多金融从业者的必备证书。为了帮助大家更好地备考,今天我们就来聊聊基金从业资格证! 一、考试时间 2024年下半年基金从业资格考试时间为11月9日。准考证打印的时间是…...
详解Linux系统中的设备驱动程序.ko文件
目录 一、主要特点: 二、常见用法: 三、典型应用: 设备驱动程序、文件系统、网络协议、内核安全模块等都可能以 .ko 文件的形式存在。 .ko 文件是 Linux 内核模块的文件扩展名,表示 "kernel object"。这些文…...
MG协议转换器:高效连接,智控未来
在当今自动化和工业4.0浪潮中,设备间的无缝连接和数据高效传输成为提升生产效率、保障系统稳定运行的关键。我们凭借在工业自动化领域的深厚积累与创新精神,推出了MG系列一体式协议转换器,为不同协议总线之间的通讯架起了一座坚实的桥梁。 产…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...
基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究
摘要:在消费市场竞争日益激烈的当下,传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序,探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式,分析沉浸式体验的优势与价值…...
ThreadLocal 源码
ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...
