不同坐标系下3D bbox通过中心点坐标和长宽高求8个角点问题

新版mmdetection3d将3D bbox绘制到图像 以前写过mmdetection3d中的可视化,但mmdetection3d更新后代码已经不适用了,正好我把我的工作全转移到新版mmdetection3d上来了,因此重新写了一下推理结果可视化。我们已经得到了整个数据集,那么我们就可以使用数据集中的任意一条数据进行推理,根据这个思路,我们也能很方便的推理完整个数据集。我用jupyter实现,首先需要确保jupyter的工作路径在mmdetection3d的工作路径下,不然会存在找不到mmdet3d的问题。下面是推理和绘制的完整代码,必要的注释已经给出。 阅读详情

这种问题可分解为三步:

1.根据长(l)宽(w)高(h)计算出一个和正向运动方向重合的3D bbox的8个角点坐标向量:

x_corners = [-l/2,-l/2,l/2,l/2,-l/2,-l/2,l/2,l/2]
y_corners = [w/2,-w/2,-w/2,w/2,w/2,-w/2,-w/2,w/2]
#z_corners = [0,0,0,0,h,h,h,h]   #for kitti3d dataset
z_corners = [-h/2,-h/2,-h/2,-h/2,h/2,h/2,h/2,h/2]  #for our lidar-coordination-based dataset

2.根据3D bbox的朝向角(rotation angle)构建旋转矩阵与8个角点的坐标相称以将8个点旋转到实际位置,不同3D坐标系下,无论是相机坐标系还是雷达坐标系还是其他3d坐标系下,旋转问题处理起来其实是相同的,关键是看绕哪个轴旋转以及朝向角的正/负方向,也就是说无论坐标系定义其 x,y,z实际指向哪里,我们都只需看绕哪个轴旋转以及旋转角度的值(已含正/负方向)即可定义出对应的旋转矩阵(旋转矩阵本质是由正交向量组成,通过与矩阵相乘来对图像做旋转或缩放这样的线性变换以及SVD之类原理的解释可参考有关书籍资料,这里不多说):

# Rotation around x-axis
def rotx(r):
    c = np.cos(r)
    s = np.sin(r)
    return np.array([[1,  0,  0],
                     [0,  c, -s],
                     [0,  s,  c]])

# Rotation around y-axis
def roty(r):
    c = np.cos(r)
    s = np.sin(r)
    return np.array([[c,  0,  s],
                     [0,  1,  0],
                  
Omni3D数据集准备:开放词汇3D检测的三维校准工程 开放词汇3D目标检测是让模型理解任意文本描述(如‘悬浮式书架’‘复古台灯’)所指三维实体的关键技术,其核心依赖于多源异构数据在几何、语义与模态三个维度的严格对齐。原理上,需统一坐标系、映射跨数据集类别体系、同步RGB/深度/点云/标注四模态时空关系,并将文本嵌入与3D几何实例精确绑定。该技术显著提升模型泛化能力,支撑AR交互、智能空间理解、端侧3D感知等场景。Omni3D数据集准备正是这一能力落地的前提——它不是格式转换,而是涵盖坐标校准、语义对齐、多模态验证与文本-几何绑定的系统性三维空间工程,直接决定开 阅读详情

相关推荐

Apollo 6.0 感知融合所学及可能可改进问题

Apollo 6.0 所学及可能可改进问题 不要在应当努力的年龄选择安逸! 欢迎批评指正,持续更新。 1. 所学记录 [错误码] SensorFrameMessage中的apollo::common::ErrorCode error_code_记录了错误码。(便于找错) [处理阶段记录] SensorFrameMessage中的ProcessStage process_stage_记录了数据帧的处理流程信息。 (更便于找到问题出现的阶段) [配置文件统一管理] 概率融合Probabilistic

lcc47251的博客 1022

KITTI数据集实战指南:从下载到3D物体检测的完整流程(附避坑技巧)

本文详细介绍了KITTI数据集在3D物体检测中的完整应用流程,包括数据下载、结构解析、预处理技巧和模型训练实战。针对开发者常见的下载速度慢、标注文件复杂等问题,提供了多种高效解决方案和避坑指南,帮助读者快速掌握这一自动驾驶领域权威数据集的使用方法。

weixin_29093169的博客 257

nuScenes 3D转2D Python源码:坐标系变换与相机投影完整实现

在自动驾驶感知与多模态模型训练中,传感器坐标系的统一与投影是数据预处理的基石。激光雷达提供的3D边界框如何精准映射到相机图像平面,往往取决于对坐标变换链路的理解——从点云坐标系到车体、全局、相机坐标系,再到像素坐标,每一步都涉及外参与内参的矩阵运算。掌握这一原理,不仅能高效生成2D检测标注,还能为视觉BEV、跨模态对齐等任务提供可靠数据支持。实际工程中,常会遇到投影偏移、多相机重复框、小目标丢失等问题,通过合理的变换矩阵构造与阈值过滤可有效解决。本文基于官方devkit与纯NumPy实现,提供了一套可直接运

weixin_33483304的博客 328

YOLO+深度估计实现单目3D目标检测:从2D框到3D框工程指南

3D目标检测是自动驾驶与机器人感知的关键技术,相比2D检测,它需要同时回答“目标在哪里”和“目标离我多远”两个问题。基于单目相机的方案凭借成本低、部署灵活,成为工业界的主流选择,其核心思路是在YOLO等2D检测框架上引入深度估计分支,并结合相机内参将像素坐标反投影为三维空间位置。本文围绕YOLO+深度估计的工程实现,系统讲解从2D框到3D框的完整链路:深度分支设计、相机标定与内参使用、BEV鸟瞰图可视化,以及工程落地中常见的深度尺度漂移、小目标抖动、外参写死等避坑要点。无论你是做毕设、准备升级现有2D检测系

weixin_34199405的博客 342

3D_BBOX_simple_test:for Dr. jie

3D_BBOX_simple_test 给杰医生 conda安装cudatoolkit = 9.0conda安装cudnn = 7.0conda安装tensorflow-gpu == 1.11.0 点安装-r requirements.txt 跟踪seq00的结果( ) 火车: 修改了train.py中的路径(使用KITTI原始标签) image_dir ='/ home / kid / workspace / 3D_detection / dataset / image_2 /' label_dir ='/ home / kid / workspace / 3D_detection / dataset / label_2 /' 更改batch_size = 40(第38行),历元= 100(第49行)以及其他用于本地数据集的参数。 测试: 修改了detection.py

MPC-CBF 控制原理详解

假设系统满足如下离散时间动力学模型xt1fxtutxt∈Xut∈Uxt1​fxt​ut​xt​∈Xut​∈Uxtx_txt​:状态变量,定义域为可行状态集X⊆RnX⊆Rnutu_tut​:控制输入,定义域为控制约束集U⊆RmU⊆Rm系统需满足安全约束,由如下控制障碍函数(CBF)hX→RhX→RCx∈X∣hx≥0C:=x∈X∣hx≥。

m0_54691290的博客 1184

深入浅出:CosineLRScheduler 调度器的原理与实战应用

本文深入解析了CosineLRScheduler调度器的核心原理与实战应用,详细介绍了余弦退火算法及其在深度学习模型训练中的优势。通过参数配置建议、PyTorch实现示例和常见问题解决方案,帮助开发者高效应用该调度器提升模型性能,特别适用于计算机视觉和自然语言处理任务。

sss66的博客 859

如何制作DOS启动盘 U盘制作DOS启动盘 HP-U盘启动DOS7 详细步骤教程 Intel网卡使用软件 bootutil lanconfig eeupdate Intel网卡修改MAC地址教程

制作DOS启动盘不是一项复杂的任务,只要按照以下简单的步骤进行操作,您就可以自己动手制作一个DOS启动盘。

lcy524514826的博客 896

安装破解IAR EWARM 8.2,提供注册机

IAR Embedded Workbench for ARM(IAR for ARM)是一款微处理器的集成开发环境软件,该集成开发环境中包含了IAR的C/C++编译器、 汇编工具、链接器、库管理器、文本编辑器、工程管理器和C-SPY调试器,支持ARM,AVR,MSP430等芯片。   一、安装 双击运行安装程序,点击Install IAR Embedded Workbench for ARM...

睿思派克 4万+

蚂蚁区块链第20课 可信存证司法链从入门到实施

1. 摘要 杭州互联网法院和司法区块链平台的技术建设方都是蚂蚁金服区块链。那么,如何借助蚂蚁的技术能力和服务能力,快速对接上司法链,便于后续打通存证/维权的闭环流程。本文介绍蚂蚁区块链可信存证的业务及特点,费用及接入方法等,具有实战指导意义。 2. 蚂蚁区块链可信存证的介绍 蚂蚁区块链可信存证具备全链路可信,司法权威节点见证,安全隐私保护,一站式接入能力,全国首家法律认可的区块链存证平台。 2...

辉哥的技术投资路 6088

Freeswitch 如何检测链路是否有回铃音

Freeswitch回铃音检测解决方案 问题描述:呼叫手机时,虽然信令正常(183/180),但部分手机无回铃音,导致坐席无法判断是否接通,用户体验差。 解决方案: 先播放本地音频作为回铃音 实时检测用户侧是否有声音输入 检测到声音后自动切换为用户侧音频 技术实现: 使用Freeswitch APP实现功能 创建结构体保存实例数据(包括铃声文件、会话句柄、VAD检测器等) 通过media bug机制实现音频流的替换 利用VAD(语音活动检测)技术监控用户侧声音 当检测到用户说话时自动终止本地铃声播放 该方案

2301_81507069的博客 51

机器学习笔记 - 基于深度学习(HomographyNet)的图像单应性估计

论文提出了一个深度卷积神经网络来估计一对图像之间的相对单应性。我们的前馈网络有10层,以两个堆叠的灰度图像作为输入,并产生一个8自由度的单应性,可用于映射从第一个图像到第二个图像的像素。我们为HomographyNet提出了两种卷积神经网络架构一个直接估计实值单应性参数的回归网络,以及一个在量化单应性上产生分布的分类网络。我们使用4点单应性参数化,将一个图像的四个角映射到第二个图像。我们的网络使用扭曲的MS-COCO图像以端到端的方式进行训练。论文的贡献如下。........................

学以致用 知行合一 3084

3D扩散模型的构建与优化:多模态融合在三维物体生成中的作用【附核心代码实例】

随着技术的发展,基于扩散模型的3D内容生成已经成为一个激动人心的领域。通过不断优化扩散模型的结构和算法,结合多模态信息、视角控制和高效网络架构,未来的3D生成技术将不仅能够生成逼真的物体,还能满足虚拟现实、游戏设计、电影制作等行业对高质量、实时生成的需求。

一键难忘的博客 2863

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: CUDA中实现多线程访问公共临界区的问题
下一篇: CUDA-PointPillars有时崩溃的原因
Arnold-FY-Chen
博客等级 码龄19年 925粉丝 204原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arnold-FY-Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值