BEV:针孔相机坐标转换

一 、背景

自动驾驶中经常涉及到不同坐标系之间的坐标转换,在BEV方案中用的比较多的是自车坐标到图像坐标的转换,系统整理了一下坐标转换过程流程。

二 、方法

旋转矩阵计算方法:

translation: 平移参数['x', 'y', 'z']

高阶畸变模型参数:

bash 复制代码
        distortion = torch.tensor(distortion)
        k1 = distortion[:, 0].unsqueeze(-1).to(x.device)
        k2 = distortion[:, 1].unsqueeze(-1).to(x.device)
        k3 = distortion[:, 2].unsqueeze(-1).to(x.device)
        p1 = distortion[:, 3].unsqueeze(-1).to(x.device)
        p2 = distortion[:, 4].unsqueeze(-1).to(x.device)
        k4 = distortion[:, 5].unsqueeze(-1).to(x.device)
        k5 = distortion[:, 6].unsqueeze(-1).to(x.device)
        k6 = distortion[:, 7].unsqueeze(-1).to(x.device)

高阶畸变模型加畸变公式:

bash 复制代码
        r2 = x**2 + y**2
        x_temp = x * (1 + k1 * r2 + k2 * r2**2 + k3 * r2**3) / (1 + k4 * r2 + k5 * r2**2 + k6 * r2**3) + 2 * p1 * x * y + p2 * (r2 + 2 * x**2)
        y_temp = y * (1 + k1 * r2 + k2 * r2**2 + k3 * r2**3) / (1 + k4 * r2 + k5 * r2**2 + k6 * r2**3) + p1 * (r2 + 2 * y**2) + 2 * p2 * x * y
相关推荐
yuanmenghao42 分钟前
自动驾驶中间件iceoryx - 同步与通知机制(二)
开发语言·单片机·中间件·自动驾驶·信息与通信
yuanmenghao3 小时前
自动驾驶中间件iceoryx - 同步与通知机制(一)
开发语言·网络·驱动开发·中间件·自动驾驶
yuanmenghao15 小时前
CAN系列 — (6) CAN FD 带宽、CPU、中断:工程上是如何一起算的?
网络·驱动开发·单片机·mcu·自动驾驶·信息与通信
小烤箱17 小时前
Autoware Universe 感知模块详解 | 第十二节 CUDA 编程基础——CUDA执行模型
自动驾驶·cuda·感知
Hi2024021719 小时前
如何通过选择正确的畸变模型解决相机标定难题
人工智能·数码相机·计算机视觉·自动驾驶
yuanmenghao1 天前
CAN系列 — (8) 为什么 Radar Object List 不适合“直接走 CAN 信号”
网络·数据结构·单片机·嵌入式硬件·自动驾驶·信息与通信
RockHopper20251 天前
驾驶认知的本质:人类模式 vs 端到端自动驾驶
人工智能·神经网络·机器学习·自动驾驶·具身认知
益莱储中国1 天前
2026 CES 聚焦 Physical AI:AI 硬件、具身智能、自动驾驶、芯片战争、机器人、显示技术等全面爆发
人工智能·机器人·自动驾驶
Hi202402171 天前
相机与激光雷达联合标定:如何选择高辨识度的参照物
数码相机·自动驾驶·雷达·相机标定·机器视觉
小烤箱2 天前
Autoware Universe 感知模块详解 | 第十一节:检测管线的通用工程模板与拆解思路导引
人工智能·机器人·自动驾驶·autoware·感知算法