尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【Stereo】Camera vs. World Coordinates: Understanding Frames in Monocular and Stereo Vision

【Stereo】Camera vs. World Coordinates: Understanding Frames in Monocular and Stereo Vision
📅 发布时间:2026/7/8 13:13:37

文章目录

  • 相机坐标系、世界坐标系与光轴:单双目的本质区别到底在哪
  • 一、先厘清坐标系之间的关系
  • 二、双目 vs 单目:坐标系上的差异
    • 双目:天然知道两相机的相对位置
    • 单目:只有一个相机坐标系
  • 三、为什么双目能恢复真实尺度,单目不能?
    • 双目:有基线,就有几何约束
    • 单目:一个像素对应一整条射线
    • 双目:视差给出唯一解
    • 小结对比
  • 四、光轴(Optical Axis)到底在哪?
    • 如何确定自己的光轴?三种方法
  • 五、辨析:“图片中心是光轴”和“中心点高度不等于相机高度”矛盾吗?
    • 情况一:真正水平安装 → 高度不变
    • 情况二:有俯角(最常见)→ 越远越低
    • 另一个更隐蔽的坑:不要混淆两个 Y
  • 六、总结与下一步

相机坐标系、世界坐标系与光轴:单双目的本质区别到底在哪

学双目深度估计的人,几乎都会在“坐标系”这一关卡住:单目和双目的世界坐标有什么区别?为什么双目能测真实距离而单目不能?相机的光轴到底在哪、图片中心是不是光轴?这篇文章把这些串成一条线。

先纠正一个最常见的误解:

双目没有自己的“世界坐标”,单目也没有。世界坐标系与单/双目没有直接关系,它是由标定(外参)人为定义的。单双目真正的区别,在于能否恢复具有真实尺度的三维点。


一、先厘清坐标系之间的关系

工程里最常用的思维方式是把坐标分成四层,从三维世界一路投影到像素:

外参 R、t

内参 K

世界坐标 World

左相机坐标 Camera

图像坐标 Image

像素坐标 Pixel

而世界坐标与左右相机的关系是:

外参 R、t

外参 R、t

世界坐标系 World

左相机坐标系
Camera L

右相机坐标系
Camera R

世界坐标只有一个,左右相机各有自己的相机坐标系。世界坐标点P w P_wPw​与相机坐标点P c P_cPc​通过外参相互变换:

P w = R P c + t P_w = R\,P_c + tPw​=RPc​+t


二、双目 vs 单目:坐标系上的差异

双目:天然知道两相机的相对位置

俯视图 左相机 右相机 ●----------------------● Baseline = B

约定左相机坐标系为参考。这里采用 OpenCV/针孔相机成像模型的惯例:X 向右、Y 向下(与图像行坐标v vv同向)、Z 向前(朝向场景)——正是这个约定,让后文的反投影公式Y = ( v − c y ) Z / f y Y=(v-c_y)Z/f_yY=(v−cy​)Z/fy​直接成立。

Camera ●────────→ X(向右) │ \ │ \ ↓ ↘ Z(向前,朝向场景) Y(向下)

右相机坐标系只是相对左相机平移了一个基线B BB,即X 右 = X 左 − B X_{右} = X_{左} - BX右​=X左​−B(符号取决于基线方向约定,此处右相机相对左相机沿 +X 平移B BB),其余轴相同。所以双目天然知道两个相机之间的位置关系——这正是它能三角测量的前提。

单目:只有一个相机坐标系

单目只有一个 Camera 坐标系,没有第二个相机作参照,因此不知道真实尺度(scale)。


三、为什么双目能恢复真实尺度,单目不能?

双目:有基线,就有几何约束

因为知道 Baseline(比如 60 mm),利用Z = f B d Z = \dfrac{fB}{d}Z=dfB​就能直接算出真实长度的Z ZZ(比如 2.35 m),而不是一个比例。

单目:一个像素对应一整条射线

单目从像素( u , v ) (u,v)(u,v)无法唯一恢复( X , Y , Z ) (X,Y,Z)(X,Y,Z)。一个像素( 500 , 300 ) (500,300)(500,300)对应的其实是从光心出发的一条射线,目标可能在 1 m、2 m、5 m、20 m……都说得通:

Camera / / / Pixel → 一条射线,无唯一解

所以单目存在尺度歧义(scale ambiguity),只能靠学习或额外信息去“猜”深度。

双目:视差给出唯一解

左图( u L , v ) (u_L, v)(uL​,v)、右图( u R , v ) (u_R, v)(uR​,v)得到视差d = u L − u R d = u_L - u_Rd=uL​−uR​,于是能唯一恢复( X , Y , Z ) (X,Y,Z)(X,Y,Z):

Pixel
左图(uL,v)、右图(uR,v)

Disparity 视差 d

3D Point (X,Y,Z)
唯一解

一个最形象的类比:单目像闭上一只眼,你知道前面有个箱子,但猜不准 2 m 还是 5 m;双目像睁着两只眼,大脑自动三角测量,恢复真实距离。

小结对比

世界坐标系相机坐标系恢复三维能力
单目由外参定义,可任选原点只有一个有尺度歧义,只能估计
双目同左(无本质区别)左、右两个,通常以左为参考靠基线+视差恢复真实尺度

四、光轴(Optical Axis)到底在哪?

理解了坐标系,再看光轴就简单了。对针孔相机:

图像 +-------------------+ | | | ● cx,cy | ← 主点(Principal Point) | | +-------------------+ │ │ 光轴 ▼ 相机前方

光轴 = 从相机光心(Optical Center)穿过图像主点( c x , c y ) (c_x, c_y)(cx​,cy​)向前延伸的直线。

严格来说,是主点( c x , c y ) (c_x, c_y)(cx​,cy​)对应的射线,而不是几何中心( W / 2 , H / 2 ) (W/2, H/2)(W/2,H/2)——很多相机c x ≈ W / 2 c_x ≈ W/2cx​≈W/2、c y ≈ H / 2 c_y ≈ H/2cy​≈H/2,但标定后往往有几像素偏差(例如理论中心 320,240,实际标定c x = 317.8 c_x=317.8cx​=317.8、c y = 236.5 c_y=236.5cy​=236.5)。近距离影响很小,但反投影到几十米时误差会被放大。

如何确定自己的光轴?三种方法

  1. 理论方法(推荐):根据标定得到的相机内参( f x , f y , c x , c y ) (f_x,f_y,c_x,c_y)(fx​,fy​,cx​,cy​),将主点( c x , c y ) (c_x,c_y)(cx​,cy​))反投影到三维,得到方向( 0 , 0 , 1 ) (0,0,1)(0,0,1)。这条经过相机光心的射线就是光轴。

  2. 工程验证方法:让一张平整的 A4 纸逐渐调整姿态,直到其充满画面且左右边缘宽度一致,此时纸面基本垂直于光轴,可用于验证光轴方向。

  3. PnP 方法:使用棋盘格或 ChArUco 标定板,通过 PnP 求解相机位姿,从而获得光轴在世界坐标系中的方向。这适合需要把光轴表示到世界坐标系中的场景。

可以用反投影公式验证:

X = ( u − c x ) Z f x , Y = ( v − c y ) Z f y X = \frac{(u - c_x)Z}{f_x}, \qquad Y = \frac{(v - c_y)Z}{f_y}X=fx​(u−cx​)Z​,Y=fy​(v−cy​)Z​

当u = c x , v = c y u = c_x, v = c_yu=cx​,v=cy​时,必然X = 0 , Y = 0 X = 0, Y = 0X=0,Y=0——说明这条射线就是光轴。


五、辨析:“图片中心是光轴”和“中心点高度不等于相机高度”矛盾吗?

很多人做实验会发现一个“怪现象”:明明图片中心是光轴,为什么反投影出来的中心点,其世界坐标高度和相机的世界坐标高度对不上?

两句话并不矛盾:

  • 图片中心(主点)对应的射线,确实是光轴;
  • 但光轴上各点的世界坐标高度,只有在相机真正水平安装时才都相等。

情况一:真正水平安装 → 高度不变

侧视图 光轴 Camera ●──────────────► ------------------------- 地面

相机高 1.0 m,则光轴上 1 m 前、2 m 前、5 m 前的点高度都是 1.0 m,世界高度不变。

情况二:有俯角(最常见)→ 越远越低

哪怕只有 Pitch = −5°:

侧视图 Camera \ \ \ ► 光轴 ---------------- 地面

相机高 1.0 m,则前方 1 m 处约 0.91 m、2 m 处约 0.83 m、3 m 处约 0.74 m——图片中心对应点的世界高度当然越来越低。扫地机器人常有 20°~45° 俯角,汽车约 3°,无人机约 15°,所以世界高度必然变化。这不是 bug。

另一个更隐蔽的坑:不要混淆两个 Y

相机坐标系的 Y(OpenCV 里向下)和世界坐标系的“高度”通常不是同一个轴:

  • ROS:Z 是高度;
  • 很多机器人:Y 是高度;
  • OpenCV 相机系:Y 向下。

所以千万不要直接拿“相机坐标 Y”去比较“世界坐标高度”,它们往往不是一个轴。要比较,必须先经外参P w = R P c + t P_w = R P_c + tPw​=RPc​+t变换到同一坐标系。


六、总结与下一步

  • 世界坐标不是双目/单目自带的,而是由外参人为定义;单双目在世界坐标系上没有本质区别。
  • 单双目真正的区别是恢复三维的能力:双目靠基线+视差恢复真实尺度,单目有尺度歧义。
  • 光轴 = 光心穿过主点( c x , c y ) (c_x,c_y)(cx​,cy​)的射线;用主点而非几何中心,可用反投影验证。
  • 光轴水平 ⇒ 高度不变只在相机真正水平时成立;有俯角时中心点世界高度随距离变化,属正常现象。
  • 注意区分相机坐标 Y 与世界坐标高度,二者常不是一个轴。

真正打通任督二脉的一步,是完整走一遍像素坐标 → 相机坐标 → 世界坐标的链路(内参、外参、深度反投影、坐标变换)。走通之后,下一篇《Depth ≠ Distance:如何正确评估双目深度算法》里关于 Depth、Distance、Point Cloud、Ground Truth 的所有疑惑,都会自然串起来。


相关新闻

  • 工业级负载控制方案:TPD2015FN与PIC18LF45K42应用指南
  • WebSocket 行情断线重连:数据空窗、K线回补和状态校准
  • 豆顶顶GEO全域运营方案:依托豆包AI实现全国企业跨区域主流AI获客

最新新闻

  • 云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 41-50
  • 多 Agent 通信协议选型:gRPC、消息队列还是共享存储
  • PIC18F87J50开发板直流电机驱动与PID控制实战
  • 多模态AI应用开发实战:从零搭建图像描述与问答系统
  • AI代理技能系统mattpocock/skills:工程化AI编程助手实践指南
  • [实战] 2026年制造业图纸数字化:图片PDF转DXF的精度控制与质量管理流程

日新闻

  • PROPKA 3深度解析:蛋白质pKa预测的实战指南与算法原理
  • 微信小程序 globalData 监听:基于 Object.defineProperty 的 3 种实现方案对比
  • MySQL 8.0 数据清洗实战:3类异常值识别与 UPDATE/DELETE 批量处理

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号