当前位置: 首页 > news >正文

从像素到世界:自动驾驶视觉感知的坐标变换体系

接着上一篇 如何让自动驾驶汽车“看清”世界?坐标映射与数据融合详解的概述,这一篇详细讲解自动驾驶多目视觉系统设计原理,并给出应用示例。

摘要

在自动驾驶系统中,准确的环境感知是实现路径规划与决策控制的基础。本文系统性地解析图像坐标系、像素坐标系、相机坐标系与世界坐标系的映射关系,深入推导双目相机的视差-深度计算模型,并给出完整的Python代码实现。通过融合理论推导与工程实践,揭示自动驾驶汽车如何通过视觉感知"看清"三维世界。

关键词:自动驾驶、坐标系转换、双目视觉、三维重建、立体匹配


一、自动驾驶中的核心坐标系系统

1.1 五层坐标系定义

  1. 世界坐标系(World Coordinate)
    描述物体在真实三维空间中的绝对位置 ( X w , Y w , Z w ) (X_w, Y_w, Z_w) (Xw,Yw,Zw),是自动驾驶系统的全局参考系。

  2. 相机坐标系(Camera Coordinate)
    以相机光心为原点, Z c Z_c Zc 轴指向成像方向的右手系 ( X c , Y c , Z c ) (X_c, Y_c, Z_c) (Xc,Yc,Zc),表征物体相对于相机的空间位置。

  3. 图像坐标系(Image Coordinate)
    成像平面上的连续物理坐标 ( x , y ) (x, y) (x,y),原点位于光轴与成像平面交点,单位为毫米。

  4. 像素坐标系(Pixel Coordinate)
    图像离散化后的像素位置 ( u , v ) (u, v) (u,v),原点位于图像左上角,单位为像素。

  5. 车辆坐标系(Vehicle Coordinate)
    是自动驾驶系统中一个至关重要的参考系,为车辆自身以及周围物体的位置和运动状态提供了一个统一的描述框架。车辆坐标系通常被定义为一个右手坐标系,其原点位于车辆的某个特定点,如车辆的中心点或某个传感器的位置。具体的定义如下:

    • X轴:通常指向车辆的前进方向,即车辆的长度方向。在大多数情况下,X轴的正方向是从车辆的后部指向车辆的前部。
    • Y轴:通常指向车辆的左侧,即车辆的宽度方向。Y轴的正方向是从车辆的右侧指向车辆的左侧。
    • Z轴:垂直于车辆的平面,即车辆的高度方向。Z轴的正方向通常是指向天空的方向,即车辆的上方。

车辆坐标系作为车身本体坐标系,其与世界坐标系的动态转换通过组合导航系统(GNSS+IMU)实现,转换精度直接影响传感器融合效果。

坐标系类型 原点定义 坐标轴方向 物理意义
世界坐标系 预设大地基准点 X-东向,Y-北向,Z-垂直 全局定位与地图融合基础
相机坐标系 相机光学中心 Z-光轴方向,X/Y-成像平面 物体相对相机的空间关系
图像坐标系 光轴与成像平面交点 x-水平方向,y-垂直方向 连续物理成像位置
像素坐标系 图像左上角 u-列方向,v-行方向 数字图像离散采样位置
车辆坐标系 车辆质心或后轴中心 X-前进方向,Y-左侧,Z-垂直向上 多传感器数据统一基准

1.2 坐标系转换的意义

通过多坐标系映射,可将二维图像像素还原为三维世界坐标,建立环境物体的空间拓扑关系。这是实现障碍物测距、车道线定位等功能的数学基础。以车道线检测为例,首先在像素坐标系定位车道特征点,经逆透视变换得到车辆坐标系下的局部坐标,最终通过坐标转换矩阵映射到全局地图坐标系。

1.3 动态转换实践

车辆坐标系作为动态中介坐标系,其转换关系可表示为:
[ X v Y v Z v 1 ] = [ cos ⁡ θ − sin ⁡ θ 0 Δ x sin ⁡ θ cos ⁡ θ 0 Δ y 0 0 1 Δ z 0 0 0 1 ] ⏟ T w 2 v ⋅ [ X w Y w Z w 1 ] \begin{bmatrix} X_v \\ Y_v \\ Z_v \\ 1 \end{bmatrix} = \underbrace{ \begin{bmatrix} \cos\theta & -\sin\theta & 0 & \Delta x \\ \sin\theta & \cos\theta & 0 & \Delta y \\ 0 & 0 & 1 & \Delta z \\ 0 & 0 & 0 & 1 \end{bmatrix} }_{T_{w2v}} \cdot \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} XvYvZv1 =Tw2v cosθsinθ00sinθcosθ000010ΔxΔyΔ

相关文章:

  • MyBatis-Plus 自动填充:优雅实现创建/更新时间自动更新!
  • AI比人脑更强,因为被植入思维模型【16】反脆弱
  • 【vue的some和filter】
  • 3-22 vector的使用详解---STL C++
  • 免费下载 | 2025年AI产业全景报告.pdf
  • 手机怎么换网络IP有什么用?操作指南与场景应用‌
  • 常考计算机操作系统面试习题(四)
  • 区块链在医疗数据共享中的应用:解锁安全与透明的新维度
  • 【C++进阶】函数:深度解析 C++ 函数的 12 大进化特性
  • Java 大视界 -- Java 大数据在智能体育赛事直播数据分析与观众互动优化中的应用(142)
  • Rust vs. Go: 在使用最快框架时的性能测试[译]
  • 基于随机森林回归预测葡萄酒质量
  • Colab——大规模数据集解压问题:Unzip解压不完整/时间过长/强制掉线
  • 树莓派5的供电与启动
  • 测试基础入门
  • Selenium Web UI自动化测试:从入门到实战
  • 操作系统之进程控制
  • Linux | 安装 Samba将ubuntu 的存储空间指定为windows 上的一个磁盘
  • sin、cos、tan、arcsin、arccos、arctan图像
  • Redis的单线程模型与多线程优化
  • 秦洪看盘|缩量回踩,积蓄叩关能量
  • 俄外交部:俄乌伊斯坦布尔谈判改在当地时间15日下午举行
  • 美叙领导人25年来首次会面探索关系正常化,特朗普下令解除对叙经济制裁
  • 中国乒协坚决抵制恶意造谣,刘国梁21日将前往多哈参加国际乒联会议
  • 美国调整对华加征关税
  • 奥迪车加油时频繁“跳枪”维修两年未解决,4S店拒退换:可延长质保