双目视觉实战---三维重建基础与极几何

目录

一,简介

[二. 双视图与三角化](#二. 双视图与三角化)

[1. 三角化模型](#1. 三角化模型)

[2. 多视图几何的关键问题](#2. 多视图几何的关键问题)

3、极几何

三、本质矩阵

四、基础矩阵

[3. 基础矩阵的作用及小结](#3. 基础矩阵的作用及小结)

五、基础矩阵估计


一,简介

三维重建是指通过一系列的图像或传感器数据,推导出物体或场景的三维模型的过程。而极几何(Epipolar Geometry)是三维重建中的一个重要概念和技术。

  1. 基础概念:

    • 图像平面:表示我们观察到的二维图像,由像素组成。
    • 世界坐标系:表示真实世界中的三维坐标系统。
    • 相机:捕捉图像的装置,可以将真实世界中的三维点映射到图像平面上。
  2. 极几何:

    • 极线:相机原理中的重要概念,表示在一个相机视野内,某个三维点在另一个相机视野上的投影位置可能出现的范围。
    • 极线约束:两幅图像中的对应点之间存在着特定的几何关系,即对于一幅图像上的一个点,其在另一幅图像上的对应点必然在相应的极线上。
    • 极线几何:通过利用这些几何关系,可以使用相机标定参数和匹配的特征点,计算出一些基本矩阵或基础矩阵,来描述两个相机视野之间的关系。
  3. 三维重建基础:

    • 特征点匹配:通过在两个图像中找到对应的特征点,建立二者之间的对应关系。
    • 基础矩阵估计:使用特征点的对应关系,计算出描述两个相机视野之间几何关系的基础矩阵。
    • 三角剖分:利用基础矩阵和已知的相机参数,通过三角化方法计算出特征点的三维位置。
    • 点云生成:将所有三角剖分生成的三维点组成一个点云模型。

由于从单幅视图恢复场景三维结构比较困难,并且,单视图2D到3D的映射具有多义性,如下图所示,从单视图中很难辨别塔是模型还是实物;

二. 双视图与三角化

1. 三角化模型

在理想情况下,。但是由于噪声的存在,两条直线通常不相交,因此就存在新的问题:已知和,和以及和,如何求解的三维坐标?(可通过线性解法和非线性解法求解)

寻找p使得最小化。具体可使用牛顿法或列文伯格-马夸尔特法(L-M方法)

2. 多视图几何的关键问题
  1. **摄像机几何:**从一张或多张图像中求解摄像机的内、外参数(第二章解决)
  2. **场景几何:**通过二张或多幅图寻找3D场景坐标(以上解决)
  3. **对应关系:**已知一个图像中的p点,如何在另外一个图像中找到p′点(以下解决)

3、极几何

极几何描述了同一场景或者物体的两个视点图像间的几何关系;

极几何约束

极几何可以将对应点搜索范围缩小到对应的极线上;

(1)极几何特例------平行视图

(2)极几何特例------前向平移(无旋转)

三、本质矩阵

本质矩阵的概念

本质矩阵对规范化摄像机拍摄的两个视点图像间的极几何关系进行代数描述。

本质矩阵表示了两个相机之间的投影关系,可以用来推算出相机的相对姿态和场景的深度信息。它具有以下特点:

  1. 数学定义:本质矩阵E是一个3x3的矩阵,其满足以下条件:

    • 对于任意一个三维点P,在相机1中的投影点x1和在相机2中的投影点x2之间满足 x2^T * E * x1 = 0。
    • E的秩为2。
  2. 构建方式:

    • 特征点对应:通过在两个图像中找到匹配的特征点对,获得一组二维点对(x1, x2)。
    • 基础矩阵计算:通过这些特征点对应关系,使用8点法或最小二乘法等方法计算得到基础矩阵F。
    • 相机参数:利用已知的相机内参矩阵K1和K2,可以通过 F = K2^(-T) E K1^(-1) 计算得到本质矩阵E。
  3. 本质矩阵的应用:

    • 相对姿态估计:通过分解本质矩阵E,可以恢复出两个相机之间的相对位置和旋转矩阵。
    • 三角剖分:结合已知的相机参数和本质矩阵,可以利用三角剖分等方法计算出特征点的三维坐标。
    • 点云生成:通过三维重建算法,将多个特征点的三维坐标估计出来,形成点云模型。

四、基础矩阵

基础矩阵(Fundamental Matrix)是用于描述两个摄像机之间的几何关系的核心矩阵。利用基础矩阵我们可以将一副图像中的像素点对应到另一幅图像上,从而在立体视觉、目标跟踪等任务中发挥着重要的作用。以下是基础矩阵的相关内容:

  1. 基础概念:

    • 图像平面:表示我们观察到的二维图像,由像素组成;
    • 世界坐标系:表示真实世界中的三维坐标系统;
    • 相机:捕捉图像的装置,可以将真实世界中的三维点映射到图像平面上。
  2. 极线几何:

    • 极线:相机原理中的重要概念,表示相机视野内某个三维点在另一个相机视野上的投影位置可能出现的范围;
    • 极线约束:两幅图像中的对应点之间存在着特定的几何关系,即对于一幅图像上的一个点,其在另一幅图像上的对应点必然在相应的极线上;
    • 极线几何:通过利用这些几何关系,可以通过相机标定参数和匹配的特征点,计算出一些基本矩阵或基础矩阵,来描述两个相机视野之间的关系。
  3. 基础矩阵的定义:

    • 基础矩阵F是一个3x3的矩阵,其满足以下条件:
      • 对于任意一对图像中的特征点(x1, x2)来说,都存在F使得 x'^T F x = 0 成立,其中的x'与x分别表示对应点在另外一个视角下的投影结果;
      • F的秩为2。
  4. 构建方式:

    • 特征点对应:通过在两幅图像中找到匹配的特征点对,获得一组二维点对(x1, x2);
    • 基础矩阵计算:通过这些特征点对应关系,使用8点法或最小二乘法等方法计算得到基础矩阵F。
  5. 基础矩阵的应用:

    • 对极约束:利用基础矩阵可在不知道摄像机的内外参时获得图像中某一点的深度信息。
    • 立体视觉:通过基础矩阵,可以确定两个相机之间投影位置的关系,进而实现图像的配准。
    • 运动估计:利用基础矩阵,可以在视频序列中精确地估算出相机的运动轨迹。
3. 基础矩阵的作用及小结
  • 作用:已知F,无需场景信息以及摄像机内、外参数,即可建立左右图像对应关系
  • F刻画了两幅图像的极几何关系,即相同场景在不同视图中的对应关系
  • F应包含摄像机内参数信息
  • 基础矩阵可应用于三维重构和多视图匹配

五、基础矩阵估计

基础矩阵的估计步骤:

  1. 特征点提取:从两幅图像中提取特征点,例如使用角点检测算法(如Harris角点、FAST角点等)或特征描述算法(如SIFT、SURF、ORB等)。

  2. 特征点匹配:对每个特征点在第一幅图像中找到与之最匹配的特征点,并建立特征点对应关系。

  3. 基础矩阵计算:使用特征点对应关系,通过8点法或最小二乘法等方法计算基础矩阵。具体步骤如下: a. 选择足够的特征点对(通常大于8对); b. 构建一个线性方程组,其中每个方程代表一个特征点对应关系,形如 x'^T F x = 0; c. 对方程组进行求解,可以使用最小二乘法或奇异值分解(SVD)等方法求解基础矩阵的参数。

  4. 基础矩阵验证:通过采用RANSAC等方法排除错误的匹配点,进一步验证基础矩阵的准确性。

需要注意的是,基础矩阵的估计过程中可能存在噪声和误匹配的问题,因此对于特征点的选择和匹配算法的优化都是需要考虑的因素。此外,有时候可能需要先进行相机标定,获取相机的内外参数,以提高基础矩阵的估计精度。

相关推荐
文心快码BaiduComate12 分钟前
百度云与光本位签署战略合作:用AI Agent 重构芯片研发流程
前端·人工智能·架构
风象南1 小时前
Claude Code这个隐藏技能,让我告别PPT焦虑
人工智能·后端
Mintopia2 小时前
OpenClaw 对软件行业产生的影响
人工智能
陈广亮2 小时前
构建具有长期记忆的 AI Agent:从设计模式到生产实践
人工智能
会写代码的柯基犬2 小时前
DeepSeek vs Kimi vs Qwen —— AI 生成俄罗斯方块代码效果横评
人工智能·llm
Mintopia3 小时前
OpenClaw 是什么?为什么节后热度如此之高?
人工智能
爱可生开源社区3 小时前
DBA 的未来?八位行业先锋的年度圆桌讨论
人工智能·dba
叁两6 小时前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
前端付豪6 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain