本项目是一个关于3D计算机视觉基础核心知识的教育网站,它旨在为学习和研究该领域的同学提供一份清晰、系统的参考指南,内容涵盖从相机成像的基本原理到完整的三维重建流程。
项目网址:https://pkujzx.github.io/3D_Vision/
本站的核心理念是系统性地梳理3D视觉领域的知识脉络,将抽象的射影几何理论与直观的成像过程紧密联系起来。通过从基本概念出发,层层递进,探索如何让计算机“理解”二维图像背后的三维世界,最终带领学习者掌握从图像到三维模型的完整技术栈。
网站内容围绕四大核心主题展开,每个主题都通过多个章节进行尽可能深入浅出的讲解:
探索相机如何将三维世界映射为二维图像。理解其内在的物理参数与在空间中的位置姿态,并学习如何从图像中反解这些参数。
- 第一部分:相机模型
- 理想化的针孔相机模型与核心投影公式
- 真实相机中的透镜、焦点与畸变
- 第二部分:内参矩阵
- 使用齐次坐标将投影过程线性化
- 相机内参矩阵K的推导与物理意义
- 扭曲(Skew)参数的引入
- 第三部分:外参矩阵
- 世界坐标系与相机坐标系的转换
- 旋转矩阵R与平移向量T
- 构建完整的端到端投影矩阵 M = K[R|T]
- 第四部分:相机标定
- 相机标定的核心思想与标定物的作用
- 将非线性投影问题转化为线性方程组
- 通过奇异值分解(SVD)求解投影矩阵并分解出内外参数
探索如何仅从单张二维图像中恢复三维世界的度量信息,例如平行关系、角度和物体高度。
- 第一部分:2D变换
- 变换的层次结构:等距变换 ⊂ 相似变换 ⊂ 仿射变换 ⊂ 射影变换
- 射影变换下的不变量:交比 (Cross Ratio)
- 第二部分:无穷远
- 无穷远点与无穷远线的齐次表示
- 变换对无穷远元素的影响:区分仿射与射影的关键
- 第三部分:从图像测量世界
- 灭点(Vanishing Point)与地平线(Horizon Line)的形成
- 绝对二次曲线的图像(IAC)与3D角度测量
- 第四部分:相机标定实战
- 利用场景中的正交关系为相机内参提供约束
- 通过简化相机模型(零倾斜、方形像素)求解内参矩阵K
探讨双视图几何的核心约束。理解两幅图像、一个三维点及其投影之间的内在几何关系,为立体匹配和三维重建奠定基石。
- 第一部分:对极几何基础
- 核心几何元素:基线、对极平面、对极点与对极线
- 最重要的结论:对极约束 (Epipolar Constraint)
- 第二部分:对极约束的代数
- 引入相机内外参与坐标系
- 本质矩阵 (Essential Matrix) E 的推导与性质
- 第三部分:基础矩阵
- 从本质矩阵E推导基础矩阵F
- F与E的对比:直接作用于像素坐标
- 第四部分:八点法
- 从图像匹配点求解基础矩阵F的经典算法
- 通过SVD求解并强制执行秩为2的约束
- 归一化的八点法:解决数值稳定性问题
介绍如何从多张存在重叠区域的图像中,同时恢复出场景的三维结构(Structure)和相机的运动轨迹(Motion)。
- 第一部分:三角测量
- 三维重建基础:从多个视图恢复单个点的三维坐标
- 线性与非线性三角测量方法
- 第二部分:仿射SfM
- 运动恢复结构 (Structure from Motion, SfM) 的核心问题
- 基于仿射相机模型的因子分解法 (Factorization Method)
- 第三部分:透视SfM
- 基于通用透视相机模型的代数方法
- 从基础矩阵F恢复相机矩阵
- 从本质矩阵E分解R和t,以及四重模糊性问题
- 第四部分:光束法平差
- SfM的黄金标准:全局非线性优化
- 最小化总重投影误差 (Total Reprojection Error)
- 完整的三维重建流程总结
-
前端:
HTML5,CSS3,JavaScript -
数学公式渲染:
MathJax库,用于清晰、标准地展示 LaTeX 公式。 -
核心功能: 通过原生
JavaScript的fetch API实现内容的异步加载,用户在切换章节时无需刷新整个页面,提供了流畅的单页应用(SPA)体验。