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

【机器视觉-基础知识】三角测量(Triangulation)

文章目录

  • 三角测量(Triangulation)原理解析
    • 一、基本定义
    • 二、几何直观
    • 三、基本数学模型
      • 1. 齐次坐标投影方程
    • 四、线性三角化(Linear Triangulation)
    • 五、几何解释:射线交点
    • 六、改进方法:最优三角化(Optimal Triangulation)
    • 七、数值稳定性与注意事项
    • 八、在 SfM / MVS 中的作用
    • 九、核心公式回顾
    • 十、总结一句话

三角测量(Triangulation)原理解析

一、基本定义

三角测量(Triangulation) 是通过两台(或多台)相机的投影信息,计算空间点三维坐标的一种方法。

已知:

  • 两个相机的投影矩阵 P1,P2P_1, P_2P1,P2
  • 同一空间点在两幅图像中的对应点 p1,p2p_1, p_2p1,p2

目标是:
求出三维点 X=[X,Y,Z,1]TX = [X, Y, Z, 1]^{\mathsf{T}}X=[X,Y,Z,1]T 的坐标。


二、几何直观

在这里插入图片描述

从几何上看:

  • 空间点 XXX 经过两个相机投影到图像上,形成 p1p_1p1p2p_2p2
  • 由相机中心 O1O_1O1O2O_2O2 及点 XXX 构成一个三角形
  • 因此称为 “三角测量(Triangulation)”

三角测量的本质:
通过两条视线(射线)的交点来恢复空间点的三维位置。


三、基本数学模型

1. 齐次坐标投影方程

空间点 XXX 与图像点 ppp 的关系为:

p∼PXp \sim P X pPX

其中:

  • P=K[R∣t]P = K [R | t]P=K[Rt] 为相机投影矩阵
  • p=[x,y,1]Tp = [x, y, 1]^{\mathsf{T}}p=[x,y,1]T 为图像点的齐次坐标
  • ∼\sim” 表示相差一个比例因子sss(同线性)

sp=PXs p = P X sp=PX
比例因子 sss 实际上就是该三维点在相机坐标系下的深度 ZcZ_cZc

对于两台相机:

{p1∼P1Xp2∼P2X\begin{cases} p_1 \sim P_1 X \\ p_2 \sim P_2 X \end{cases} {p1P1Xp2P2X


四、线性三角化(Linear Triangulation)

对于每个相机的齐次形式投影方程:

si[uivi1]=Pi[XYZ1]s_i \begin{bmatrix} u_i \\ v_i \\ 1 \end{bmatrix} = P_i \begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix} siuivi1=PiXYZ1

其中,sis_isi 是尺度因子(深度)。

则对于每一个相机 iii 的投影方程:
每个方程有 3 个分量:

siui=pi1TX,sivi=pi2TX,si=pi3TXs_i u_i = p_{i1}^{\mathsf{T}} \mathbf{X}, \quad s_i v_i = p_{i2}^{\mathsf{T}} \mathbf{X}, \quad s_i = p_{i3}^{\mathsf{T}} \mathbf{X} siui=pi1TX,sivi=pi2TX,si=pi3TX

其中,pi1,,pi2,,pi3p_{i1},, p_{i2},, p_{i3}pi1,,pi2,,pi3 分别是 PiP_iPi 的第 1、2、3 行向量。

通过消去 sis_isi

ui,(pi3TX)=pi1TXu_i ,(p_{i3}^{\mathsf{T}} \mathbf{X}) = p_{i1}^{\mathsf{T}} \mathbf{X} ui,(pi3TX)=pi1TX

vi,(pi3TX)=pi2TXv_i ,(p_{i3}^{\mathsf{T}} \mathbf{X}) = p_{i2}^{\mathsf{T}} \mathbf{X} vi,(pi3TX)=pi2TX

将两式改写为线性方程形式:

(ui,pi3T−pi1T)X=0(u_i, p_{i3}^{\mathsf{T}} - p_{i1}^{\mathsf{T}}) \mathbf{X} = 0 (ui,pi3Tpi1T)X=0

(vi,pi3T−pi2T)X=0(v_i, p_{i3}^{\mathsf{T}} - p_{i2}^{\mathsf{T}}) \mathbf{X} = 0 (vi,pi3Tpi2T)X=0

组合两个相机的两视图的方程,可得总共 4 个线性方程:

AX=0A \mathbf{X} = 0 AX=0

其中:

A=[u1p13T−p11Tv1p13T−p12Tu2p23T−p21Tv2p23T−p22T](矩阵尺寸 4×4)A = \begin{bmatrix} u_1 p_{13}^{\mathsf{T}} - p_{11}^{\mathsf{T}} \\ v_1 p_{13}^{\mathsf{T}} - p_{12}^{\mathsf{T}} \\ u_2 p_{23}^{\mathsf{T}} - p_{21}^{\mathsf{T}} \\ v_2 p_{23}^{\mathsf{T}} - p_{22}^{\mathsf{T}} \end{bmatrix} \quad \text{(矩阵尺寸 } 4 \times 4) A=u1p13Tp11Tv1p13Tp12Tu2p23Tp21Tv2p23Tp22T(矩阵尺寸 4×4)

解法:通过最小二乘求解 AX=0A X = 0AX=0,即:

X=arg⁡min⁡∣X∣=1∣AX∣X = \arg\min_{|X|=1} |A X| X=argX=1minAX

该问题可通过 奇异值分解(SVD) 得到:

A=UΣVT⇒X=V(:,4)A = U \Sigma V^{\mathsf{T}} \quad \Rightarrow \quad X = V_{(:,4)} A=UΣVTX=V(:,4)

VVV 的最后一列,对应最小奇异值。

通过线性三角化(Linear Triangulation),我们最终求得三维空间点的齐次坐标 X=[X1,X2,X3,X4]TX = [X_1, X_2, X_3, X_4]^{\mathsf{T}}X=[X1,X2,X3,X4]T

最后将齐次坐标归一化成:

Xcart=1X4[X1,X2,X3]T=[X,Y,Z]X_{\text{cart}} = \frac{1}{X_4} [X_1, X_2, X_3]^{\mathsf{T}} = [X,Y,Z] Xcart=X41[X1,X2,X3]T=[X,Y,Z]
非齐次坐标 [X,Y,Z,1]T[X,Y,Z,1]^{\mathsf{T}}[X,Y,Z,1]T


五、几何解释:射线交点

从物理几何意义上,三角测量等价于两条射线的交点:

{r1=O1+λ1d1r2=O2+λ2d2\begin{cases} r_1 = O_1 + \lambda_1 \mathbf{d}_1 \\ r_2 = O_2 + \lambda_2 \mathbf{d}_2 \end{cases} {r1=O1+λ1d1r2=O2+λ2d2

其中:

  • OiO_iOi 为相机中心
  • di\mathbf{d}_idi 为方向向量(由像素反投影得到)

理论上,两射线应在空间交于一点。
实际由于噪声存在,它们一般不会精确相交,因此取 最近点中点 作为估计点:

X=r1(λ1∗)+r2(λ2∗)2X = \frac{r_1(\lambda_1^*) + r_2(\lambda_2^*)}{2} X=2r1(λ1)+r2(λ2)

  • r₁(λ₁*):在射线 r₁ 上的某个点。
  • r₂(λ₂*):在射线 r₂ 上的某个点。这两个点之间的欧氏距离 ||r₁(λ₁*) - r₂(λ₂*)|| 是所有可能点对中最小的。
  • 参数 λ₁* 和 λ₂* 就是使这个距离最小化的最优参数。

六、改进方法:最优三角化(Optimal Triangulation)

线性方法简单但对噪声敏感。
可通过最小化 重投影误差(Reprojection Error)获得最优结果:

min⁡X∑i=12∣pi−π(PiX)∣2\min_{X} \sum_{i=1}^2 |p_i - \pi(P_i X)|^2 Xmini=12piπ(PiX)2

其中 π(⋅)\pi(\cdot)π() 表示从齐次坐标到像素坐标的投影操作。

该问题为非线性优化,可通过 高斯–牛顿法(Gauss–Newton)Levenberg–Marquardt 优化求解。


七、数值稳定性与注意事项

  1. 归一化(Normalization)
    在进行线性三角化前应对图像点坐标进行归一化,以减少数值误差。

  2. 视差角(Baseline)
    当两相机的基线很短或视差很小,三角测量精度会显著下降。

  3. 非线性优化后精化
    通常先用线性三角化求初值,再以最小重投影误差方式进行迭代精化。


八、在 SfM / MVS 中的作用

应用场景作用
SfM(Structure from Motion)根据估计的相机姿态恢复三维点云
MVS(Multi-View Stereo)利用多视图一致性进行密集三维重建
双目匹配(Stereo Matching)根据左右相机匹配点计算深度(ZZZ

九、核心公式回顾

名称公式含义
投影方程p∼PXp \sim P XpPX空间点到图像点的投影关系
线性方程AX=0A X = 0AX=0由两幅图像观测建立的约束
SVD 解法X=V(:,4)X = V_{(:,4)}X=V(:,4)最小二乘意义下的三维点解
最优估计$\min_X \sum_ip_i - \pi(P_i X)

十、总结一句话

三角测量 = 由多视图投影恢复三维点坐标的过程。

它是从二维观测到三维几何的关键步骤,
与极线约束互为几何对应:

极线约束描述“两个点应在同一平面上”,
三角测量计算“该平面与两条视线的交点”。

http://www.dtcms.com/a/487663.html

相关文章:

  • 三轴云台之构图优化技术篇
  • 酒店官方网站的功能建设温州外贸网站建设公司
  • [记录]whisper-diarization自动语音识别与说话人分离
  • 正规网站优化推广如何提升网站搜索排名
  • day11_web应用构建
  • 网站开发项目流程图基于推荐算法的网站开发
  • LeetCode 3350. 检测相邻递增子数组 II
  • 【底层机制】【Android】深入理解UI体系与绘制机制
  • 注册一个软件需要多少钱牡丹江网站seo
  • 高校英文网站建设贵阳网站推广有几家
  • 建设一个网络交友的网站的论文网站系统有哪些
  • Echarts【图表生成】
  • #深入解析Golang命令行框架Cobra:构建强大的CLI应用
  • 智能体开发基础
  • 亚当学院网站视频建设教程wordpress flash插件下载
  • 矩阵奇异值分解算法(SVD)的导数 / 灵敏度分析
  • 如何查看一个网站是不是用h5做的怎样做企业营销网站
  • Valentina Studio:一款跨平台的数据库管理工具
  • Jmeter接口测试与压力测试
  • 网站建设公司营业执照经营范围网推是干嘛的
  • 合规化短剧分销系统开发:用户数据保护、佣金税务合规与内容版权风险规避
  • 手机网站封装用户体验做问卷网站好
  • 算法性能的核心度量:时间复杂度与空间复杂度深度解析
  • 【shell】每日shell练习(系统用户安全审计/系统日志错误分析)
  • 【Kylin V10】SSLERRORSYSCALL 的修复方法
  • 注册一个网站域名一年需要多少钱夏县网站建设
  • 外贸企业网站建设一条龙大数据营销方案
  • 【vLLM】源码解读:vllm 模型加载到推理全流程
  • Keil MDK系列:(四)SCT文件编写教程
  • 如何熟悉网站项目的逻辑做班级网站的实训报告