文章目录
📌 适合对象:计算机视觉初学者、图像处理入门者
⏱️ 预计阅读时间:50-60分钟
🎯 学习目标:理解如何用两个相机测量距离,掌握立体视觉、三角测量、极线约束和基础矩阵的基本概念
📚 学习路线图
本文内容一览(快速理解)
- 立体视觉(Stereo Vision):使用两个相机从不同视角观察场景,通过视差计算距离
- 视差(Disparity):同一3D点在两个图像中的位置差异,距离越近视差越大
- 三角测量(Triangulation):根据两个相机看到的对应点,计算3D点的位置
- 对应点搜索(Correspondence Search):在两张图像中找到同一个3D点的投影
- 极线约束(Epipolar Constraint):对应点必须位于极线上,大大缩小搜索范围
- 极线校正(Epipolar Rectification):将图像变换,使极线变为水平线,简化匹配
- 基础矩阵(Fundamental Matrix):描述两个视图之间的几何关系
- 8点算法(8-point Algorithm):用8对对应点估计基础矩阵
一、立体视觉基础(Stereo Vision):如何用两个相机测量距离
这一章要建立的基础:理解为什么需要两个相机才能测量距离,以及立体视觉的基本原理
核心问题:如何用相机测量物体的距离?为什么单张图像无法确定距离?
[!NOTE]
📝 关键点总结:单张图像只能告诉我们3D点位于从相机中心出发的某条射线上,但无法确定具体位置。使用两个相机从不同视角观察,通过三角测量可以确定3D点的位置。
1.1 为什么需要两个相机(Why Two Cameras):单张图像的局限性
概念的本质:
想象你在看一张照片,照片中有一个物体。你能看出这个物体有多大吗?能看出它离你有多远吗?很难!因为从一张照片中,我们只能知道物体在某个方向上,但不知道具体距离。就像你闭上一只眼睛看东西,很难判断距离一样。
图解说明:
💡 说明:从单张图像中,我们只能知道3D点位于从相机中心出发的某条射线上,但无法确定它在这条射线上的具体位置。使用两个相机从不同视角观察,两条射线的交点就是3D点的位置。
类比理解:
想象你在用一只眼睛看远处的物体,很难判断距离。但如果你用两只眼睛(就像我们人类一样),通过比较左右眼看到的图像差异(视差),就能判断距离。立体视觉就是用两个相机模拟双眼视觉。
实际例子:
单张图像的局限性:
- 只能知道3D点位于从相机中心出发的某条射线上
- 无法确定具体距离
- 就像闭上一只眼睛看东西,难以判断距离
立体视觉的优势:
- 使用两个相机从不同视角观察
- 通过三角测量确定3D点的位置
- 就像用两只眼睛看东西,可以判断距离
1.2 立体视觉的基本原理(Basic Principle of Stereo Vision):从两个视角恢复3D结构
概念的本质:
立体视觉就像用两只眼睛看东西。我们从两个不同的位置观察同一个场景,然后找到两张图像中对应的点(同一个3D点在两张图像中的投影),通过计算这些对应点的位置差异(视差),就能计算出3D点的位置。
图解说明:
💡 说明:立体视觉需要知道两个相机的相对位置(平移T)和方向(旋转R)。如果这些参数已知,就是立体视觉(Stereo Vision);如果未知,需要从图像中估计,就是运动恢复结构(Structure from Motion)。
类比理解:
想象你在用两个相机拍摄同一个场景,就像用两只眼睛看东西。你的大脑会自动找到左右眼看到的对应点,然后根据这些点的位置差异判断距离。立体视觉系统也是这样工作的。
实际例子:
立体视觉的应用:
1. 机器人导航:判断障碍物的距离
2. 3D重建:从两张图像恢复场景的3D结构
3. 自动驾驶:判断车辆与障碍物的距离
4. 虚拟现实:创建3D场景
人类视觉的类比:
- 双眼视差(Binocular Disparity):左右眼看到的图像差异
- 大脑自动处理视差,判断距离
- 立体视觉系统模拟这个过程
1.3 简化的立体视觉情况(Simplified Stereo Case):理想情况下的距离计算
概念的本质:
在理想情况下,假设两个相机完全相同,并且沿着x轴对齐(水平排列)。在这种情况下,计算距离变得非常简单:距离越近的物体,在两张图像中的位置差异(视差)越大。
图解说明:
💡 说明:在简化的立体视觉情况下,距离Z = bf/d,其中b是基线(两个相机之间的距离),f是焦距,d是视差(同一3D点在左右图像中的位置差异)。距离越近,视差越大;距离越远,视差越小。
类比理解:
想象你站在一条直线上,用两只眼睛看远处的物体。物体越近,左右眼看到的差异越大;物体越远,差异越小。这就是视差与距离的关系。
实际例子:
简化情况的假设:
- 两个相机完全相同
- 相机沿x轴水平对齐
- 图像平面平行
视差与距离的关系:
- 距离Z = 基线b × 焦距f / 视差d
- 近处物体:视差大(在图像中位置差异大)
- 远处物体:视差小(在图像中位置差异小)
实际应用:
- 虽然理想情况很少见,但理解这个关系很重要
- 实际应用中需要考虑相机标定和校正
1.4 视差图(Disparity Map):每个像素的视差值
概念的本质:
视差图是一张图像,其中每个像素的值表示该像素对应的3D点的视差。视差图告诉我们场景中每个点的深度信息:视差大的地方对应近处物体,视差小的地方对应远处物体。
图解说明:
💡 说明:视差图是立体视觉的核心输出。通过视差图,我们可以计算每个像素对应的3D点的深度,从而重建整个场景的3D结构。
类比理解:
想象你在看一幅画,画中有些物体看起来近,有些看起来远。视差图就像给这幅画标注了每个位置的"远近程度":数值大的地方近,数值小的地方远。
实际例子:
视差图的特点:
- 每个像素值表示该位置的视差
- 视差大的区域:近处物体(如前景)
- 视差小的区域:远处物体(如背景)
- 可以转换为深度图
应用:
- 3D重建:从视差图重建3D场景
- 物体检测:识别不同深度的物体
- 背景分割:分离前景和背景
- 虚拟现实:创建深度感知
1.5 一般情况的立体视觉(General Stereo Case):需要相机标定
概念的本质:
在实际应用中,两个相机很少完全对齐。我们需要知道两个相机的相对位置(外参:旋转R和平移T)和每个相机的内部参数(内参:焦距、主点、畸变等)。这些参数通过相机标定获得。
图解说明:
💡 说明:在实际应用中,我们需要通过相机标定获得相机的内参和外参。内参描述相机的内部特性(焦距、主点、畸变),外参描述两个相机之间的相对位置和方向。
类比理解:
想象你要用两个相机测量距离,但这两个相机的位置和方向是未知的。就像你要用两只眼睛看东西,但不知道两只眼睛的相对位置。相机标定就是"测量"这些参数的过程。
实际例子:
相机标定的必要性:
- 实际相机很少完全对齐
- 需要知道相机的内参和外参
- 内参:焦距f、主点(cx, cy)、径向畸变
- 外参:旋转R、平移T(两个相机的相对位置)
标定方法:
- 使用标定板(如棋盘格)
- 拍摄多张不同角度的图像
- 计算相机的内参和外参
应用:
- 立体相机系统必须经过标定
- 标定精度影响3D重建的精度
二、三角测量(Triangulation):从对应点恢复3D位置
这一章要建立的基础:理解如何从两个相机看到的对应点,计算3D点的位置
核心问题:已知两个相机的位置和两张图像中的对应点,如何计算3D点的位置?
[!NOTE]
📝 关键点总结:三角测量是根据两个相机看到的对应点,通过求解两条射线的交点来确定3D点的位置。由于噪声和数值误差,两条射线可能不相交,需要找到最佳估计。
2.1 三角测量的基本思想(Basic Idea of Triangulation):两条射线的交点
概念的本质:
三角测量就像用两条线确定一个点。从两个相机中心出发,分别指向对应点的两条射线,理论上应该相交于3D点。但由于噪声和误差,这两条射线可能不相交,我们需要找到最佳估计。
图解说明:
💡 说明:三角测量是立体视觉的核心步骤。给定两个相机的位置和两张图像中的对应点,我们需要计算3D点的位置。理想情况下,两条射线应该相交,但由于噪声,需要找到最佳估计。
类比理解:
想象你在用两个手电筒照射同一个物体。理论上,两条光线应该相交于物体上。但如果手电筒的位置有误差,或者光线有散射,两条光线可能不完全相交。三角测量就是找到两条光线"最接近"的交点。
实际例子:
三角测量的输入:
- 左相机看到的点p1(图像坐标)
- 右相机看到的点p2(图像坐标)
- 两个相机的内参和外参
三角测量的输出:
- 3D点P的世界坐标(X, Y, Z)
挑战:
- 噪声导致两条射线不相交
- 需要找到最佳估计
- 有多种方法:几何方法、线性方法、非线性方法
2.2 几何方法(Geometric Approach):找到最短连接线段的中点
概念的本质:
由于两条射线可能不相交,几何方法找到连接两条射线的最短线段,然后取这条线段的中点作为3D点的估计。这种方法直观,但计算可能较复杂。
图解说明:
💡 说明:几何方法找到连接两条射线的最短线段,这条线段垂直于两条射线。线段的中点就是3D点的估计。这种方法几何意义清晰,但计算相对复杂。
类比理解:
想象两条不相交的直线,你想找到它们之间最短的距离。几何方法就是找到连接这两条直线的最短线段,然后取中点作为"交点"的估计。
实际例子:
几何方法的特点:
- 直观:找到最短连接线段
- 几何意义清晰
- 计算相对复杂
适用场景:
- 需要直观理解时
- 作为其他方法的参考
2.3 线性方法(Linear Approach):求解线性方程组
概念的本质:
线性方法将三角测量问题转化为求解线性方程组。通过将3D点投影到两个图像平面,建立方程组,然后求解。这种方法计算简单,但可能不是最优解。
图解说明:
💡 说明:线性方法通过建立投影方程,将问题转化为求解线性方程组。这种方法计算简单快速,但可能不是最优解,因为忽略了投影的非线性特性。
类比理解:
想象你要解一个方程,但方程太复杂。线性方法就是把方程简化,变成线性方程,然后求解。虽然可能不够精确,但计算简单。
实际例子:
线性方法的优点:
- 计算简单快速
- 易于实现
- 可以作为初始估计
线性方法的缺点:
- 可能不是最优解
- 忽略了投影的非线性特性
应用:
- 快速估计3D点位置
- 作为非线性方法的初始值
2.4 非线性方法(Non-linear Approach):最小化重投影误差
概念的本质:
非线性方法通过最小化重投影误差来找到最优的3D点。重投影误差是观测点与重投影点之间的距离。这种方法最准确,但需要迭代优化。
图解说明:
💡 说明:非线性方法最小化重投影误差(Sum of Squared Reprojection Error, SSRE)。重投影误差是观测点与将3D点重投影到图像平面得到的点之间的距离。这种方法最准确,通常用线性方法初始化,然后用Gauss-Newton或Levenberg-Marquardt算法优化。
类比理解:
想象你在调整一个参数,让预测结果尽可能接近实际观测。非线性方法就是不断调整3D点的位置,让重投影的点尽可能接近观测到的点。
实际例子:
非线性方法的特点:
- 最准确:最小化重投影误差
- 需要迭代优化
- 通常用线性方法初始化
优化算法:
- Gauss-Newton算法
- Levenberg-Marquardt算法
应用:
- 需要高精度时
- 作为最终优化步骤
2.5 基线的影响(Baseline Sensitivity):基线大小的权衡
概念的本质:
基线(两个相机之间的距离)的大小对三角测量的精度有重要影响。基线太小,深度误差大;基线太大,物体可能只在一个相机中可见,而且搜索对应点变得困难。
图解说明:
💡 说明:基线的大小需要在精度和可见性之间权衡。基线太小,视差小,深度误差大;基线太大,物体可能只在一个相机中可见,而且搜索对应点变得困难。需要根据应用场景选择合适的基线。
类比理解:
想象你用两只眼睛看东西。如果两只眼睛靠得太近(基线小),很难判断距离;如果离得太远(基线大),可能一只眼睛看不到物体。需要合适的距离。
实际例子:
基线太小的影响:
- 视差小,深度误差大
- 难以准确测量距离
- 就像两只眼睛靠得太近
基线太大的影响:
- 物体可能只在一个相机中可见
- 搜索对应点变得困难
- 对于近处物体尤其明显
最佳基线:
- 根据应用场景选择
- 平衡精度和可见性
- 通常为场景深度的10-20%
三、对应点搜索与极线约束(Correspondence Search & Epipolar Constraint):高效寻找匹配点
这一章要建立的基础:理解如何在两张图像中找到对应点,以及极线约束如何缩小搜索范围
核心问题:如何在两张图像中找到同一个3D点的投影?如何缩小搜索范围?
[!NOTE]
📝 关键点总结:对应点搜索是立体视觉的关键步骤。极线约束告诉我们:对应点必须位于极线上,这大大缩小了搜索范围,从2D搜索降低到1D搜索。
3.1 对应点搜索的问题(The Correspondence Problem):在图像中寻找匹配点
概念的本质:
对应点搜索就是在两张图像中找到同一个3D点的投影。这是一个困难的问题,因为需要在整张图像中搜索,计算量很大。我们需要找到高效的搜索方法。
图解说明:
💡 说明:对应点搜索是立体视觉的核心问题。对于左图像中的每个点,需要在右图像中找到对应的点。常用的相似度度量包括归一化互相关(NCC)、平方差和(SSD)、绝对差和(SAD)等。
类比理解:
想象你在玩"找不同"游戏,但反过来:给你左图中的一个小区域,在右图中找到相同或相似的区域。这就是对应点搜索。
实际例子:
对应点搜索的挑战:
- 搜索空间大:整张图像
- 计算量大:对每个点都要搜索
- 可能有多个相似区域
- 需要高效的搜索方法
相似度度量:
- NCC(归一化互相关):对亮度和对比度不敏感
- SSD(平方差和):计算快,但对亮度敏感
- SAD(绝对差和):计算快,鲁棒性一般
应用:
- 立体视觉的核心步骤
- 决定3D重建的精度
3.2 极线约束(Epipolar Constraint):对应点必须位于极线上
概念的本质:
极线约束是立体视觉中最重要的几何约束。它告诉我们:左图像中的点pL对应的右图像中的点pR,必须位于一条特殊的直线(极线)上。这大大缩小了搜索范围,从2D搜索降低到1D搜索。
图解说明:
💡 说明:极线约束基于几何关系:左图像中的点pL、左相机中心CL和右相机中心CR构成一个平面(极平面)。这个平面与右图像平面的交线就是极线。对应点pR必须位于这条极线上。
类比理解:
想象你在用两只眼睛看一个物体。如果你闭上一只眼睛,用另一只眼睛看物体,物体在另一只眼睛的视网膜上的位置是确定的(在一条线上)。极线约束就是这个原理。
实际例子:
极线约束的关键概念:
- 极平面(Epipolar Plane):由pL、CL、CR构成的平面
- 极线(Epipolar Line):极平面与图像平面的交线
- 极点(Epipole):一个相机中心在另一个相机图像中的投影
极线约束的优势:
- 将2D搜索降低到1D搜索
- 大大减少计算量
- 提高匹配精度
应用:
- 所有立体视觉系统都利用极线约束
- 是高效对应点搜索的基础
3.3 极点的性质(Properties of Epipoles):所有极线通过极点
概念的本质:
极点是极线约束中的特殊点。左相机中心在右图像中的投影是右极点,右相机中心在左图像中的投影是左极点。所有极线都通过对应的极点。
图解说明:
💡 说明:极点是相机中心在另一个相机图像中的投影。所有极线都通过对应的极点。如果两个相机平行,极点在无穷远处;如果两个相机不平行,极点在图像内或图像外。
类比理解:
想象所有从你左眼出发的视线,在右眼视网膜上的投影都通过一个特殊点(右极点)。这个点就是左眼在右眼视网膜上的投影。
实际例子:
极点的性质:
- 左极点eL:右相机中心在左图像中的投影
- 右极点eR:左相机中心在右图像中的投影
- 所有极线都通过对应的极点
极点的位置:
- 平行相机:极点在无穷远处
- 非平行相机:极点在图像内或图像外
应用:
- 理解极线约束的几何结构
- 用于极线校正
四、极线校正(Epipolar Rectification):简化对应点搜索
这一章要建立的基础:理解如何将图像变换,使极线变为水平线,简化匹配过程
核心问题:如何简化对应点搜索?如何使极线变为水平线?
[!NOTE]
📝 关键点总结:极线校正是将图像对变换,使极线变为水平且对齐的直线。这样,对应点搜索只需要在同一行(扫描线)上进行,大大简化了匹配过程。
4.1 极线校正的目的(Purpose of Epipolar Rectification):使极线水平对齐
概念的本质:
极线校正的目的是将图像对变换,使极线变为水平且对齐的直线。这样,对应点搜索只需要在同一行(扫描线)上进行,大大简化了匹配过程,也便于硬件实现。
图解说明:
💡 说明:极线校正通过旋转、调整焦距、校正镜头畸变和平移等变换,将图像对变换为新的"校正"图像,使极线平行且对齐到基线。这样,对应点搜索只需要在同一行上进行。
类比理解:
想象你在看两幅画,但画是倾斜的,很难比较。极线校正就像把两幅画旋转,使它们对齐,这样比较起来就容易多了。
实际例子:
极线校正的优势:
- 极线变为水平线
- 对应点在同一行
- 搜索从2D降低到1D
- 便于硬件实现(扫描线处理)
校正的步骤:
1. 旋转:使图像对齐
2. 调整焦距:使焦距相同
3. 校正镜头畸变
4. 平移:使极线对齐
应用:
- 几乎所有立体视觉系统都使用极线校正
- 简化对应点搜索
- 提高匹配效率
4.2 极线校正的过程(Process of Epipolar Rectification):旋转、调整焦距、校正畸变、平移
概念的本质:
极线校正包括多个步骤:旋转图像使对齐,调整焦距使相同,校正镜头畸变,最后平移使极线对齐。每一步都是为了实现极线水平对齐的目标。
图解说明:
💡 说明:极线校正是一个多步骤的过程。首先旋转图像使对齐,然后调整焦距使两个相机的焦距相同,接着校正镜头畸变,最后平移使极线对齐到基线。每一步都需要精确计算。
类比理解:
想象你在调整两台相机,使它们完美对齐。首先旋转相机使方向一致,然后调整焦距使视野相同,接着校正镜头畸变,最后微调位置使极线对齐。
实际例子:
极线校正的步骤:
1. 旋转(Rotation):
- 使两个图像对齐
- 使极线平行
2. 调整焦距(Focal Lengths):
- 使两个相机的焦距相同
- 保证图像尺度一致
3. 校正镜头畸变(Lens Distortion):
- 去除径向畸变
- 使图像更准确
4. 平移(Translation):
- 使极线对齐到基线
- 完成校正
结果:
- 极线变为水平线
- 对应点在同一行
- 搜索简化
五、基础矩阵与本质矩阵(Fundamental & Essential Matrix):描述两视图的几何关系
这一章要建立的基础:理解如何用矩阵描述两个视图之间的几何关系
核心问题:如何用数学方式描述两个视图之间的几何关系?如何估计这些关系?
[!NOTE]
📝 关键点总结:基础矩阵和本质矩阵是描述两个视图之间几何关系的核心工具。基础矩阵用于未标定相机,本质矩阵用于已标定相机。它们都编码了极线约束。
5.1 基础矩阵(Fundamental Matrix):未标定情况下的几何关系
概念的本质:
基础矩阵是一个3×3的特殊矩阵,描述了两个视图之间的几何关系。它将左图像中的点映射到右图像中的极线。基础矩阵编码了极线约束:如果p1和p2是对应点,那么p2^T F p1 = 0。
图解说明:
💡 说明:基础矩阵F是一个3×3矩阵,秩为2(rank 2)。它将左图像中的点映射到右图像中的极线:l2 = F p1。极线约束可以表示为:p2^T F p1 = 0,其中p1和p2是对应点。
类比理解:
想象基础矩阵是一个"翻译器",它知道左图像中的点对应右图像中的哪条线。就像地图上的经纬线,基础矩阵告诉我们对应点在哪条"线"上。
实际例子:
基础矩阵的性质:
- 3×3矩阵,秩为2
- 有7个自由度(不是9个)
- 将点映射到极线:l2 = F p1
- 编码极线约束:p2^T F p1 = 0
基础矩阵的组成:
- F = K2^(-T) E K1^(-1)
- 其中K1、K2是相机内参矩阵
- E是本质矩阵
应用:
- 未标定相机的立体视觉
- 从对应点估计几何关系
- 极线约束的数学表达
5.2 本质矩阵(Essential Matrix):已标定情况下的几何关系
概念的本质:
本质矩阵是基础矩阵在已标定相机情况下的简化形式。它只依赖于两个相机之间的相对旋转和平移,不依赖于相机的内参。本质矩阵描述了归一化图像坐标之间的关系。
图解说明:
💡 说明:本质矩阵E = [t]× R,其中[t]×是平移向量t的反对称矩阵,R是旋转矩阵。本质矩阵只依赖于两个相机之间的相对旋转和平移,不依赖于相机的内参。它描述了归一化图像坐标之间的关系。
类比理解:
想象本质矩阵是"纯粹的"几何关系,不受相机内部参数的影响。就像描述两个观察者之间的相对位置,而不考虑他们用什么"眼睛"看。
实际例子:
本质矩阵的性质:
- 3×3矩阵,秩为2
- 只依赖旋转R和平移T
- E = [t]× R
- 描述归一化坐标之间的关系
本质矩阵与基础矩阵的关系:
- F = K2^(-T) E K1^(-1)
- 如果相机已标定,可以用本质矩阵
- 如果未标定,需要用基础矩阵
应用:
- 已标定相机的立体视觉
- 从对应点估计相机运动
- 结构恢复(Structure from Motion)
5.3 8点算法(8-point Algorithm):估计基础矩阵
概念的本质:
8点算法是用8对对应点估计基础矩阵的线性方法。每对对应点给出一个线性方程,8对点可以求解基础矩阵。虽然基础矩阵有7个自由度,但8点算法更稳定。
图解说明:
💡 说明:8点算法利用极线约束 p 2 T F p 1 = 0 p2^T F p1 = 0 p2TFp1=0,每对对应点给出一个线性方程。8对点可以建立8个方程,求解基础矩阵的9个元素(然后强制秩为2)。虽然基础矩阵有7个自由度,但8点算法更稳定。
类比理解:
想象你要确定一条直线的方程,需要两个点。8点算法就像用8个点来确定一个"关系"(基础矩阵),虽然理论上7个点就够了,但8个点更稳定。
实际例子:
8点算法的步骤:
1. 收集8对对应点
2. 建立线性方程组:每对点给出一个方程
3. 求解基础矩阵F(最小特征值对应的特征向量)
4. 强制秩为2:使用SVD分解,将最小奇异值设为0
8点算法的优点:
- 线性方法,计算简单
- 易于实现
- 速度快
8点算法的缺点:
- 对噪声敏感
- 需要归一化提高稳定性
改进:
- 归一化8点算法:先归一化坐标,提高稳定性
- RANSAC:处理外点(错误匹配)
5.4 归一化8点算法(Normalized 8-point Algorithm):(统一坐标尺寸)提高稳定性
概念的本质:
归一化8点算法是对8点算法的改进。它先对图像坐标进行归一化(平移和缩放),然后再应用8点算法,最后将结果变换回去。这样可以大大提高算法的稳定性和精度。
图解说明:
💡 说明:归一化8点算法先对图像坐标进行归一化:平移使质心在原点,缩放使平均距离为√2。然后应用8点算法,最后将结果变换回去。归一化可以消除坐标尺度的影响,提高算法的稳定性。
类比理解:
想象你在测量距离,但单位不一致(有些用米,有些用厘米)。归一化就像统一单位,使测量更准确。归一化8点算法就是这样,先统一坐标尺度,再计算。
实际例子:
归一化的目的:
- 消除坐标尺度的影响
- 提高数值稳定性
- 减少计算误差
归一化的步骤:
1. 平移:使质心在原点
2. 缩放:使平均距离为√2
3. 应用8点算法
4. 反归一化:将结果变换回去
归一化8点算法的优势:
- 比标准8点算法更稳定
- 精度更高
- 实际应用中常用
应用:
- 几乎所有基础矩阵估计都使用归一化
- 是标准8点算法的改进版本
📝 本章总结
核心要点回顾:
-
立体视觉:
- 使用两个相机从不同视角观察场景
- 通过视差计算距离
- 需要相机标定(内参和外参)
-
三角测量:
- 从对应点恢复3D位置
- 有几何、线性、非线性等方法
- 基线大小影响精度
-
对应点搜索:
- 在两张图像中找到匹配点
- 极线约束大大缩小搜索范围
- 从2D搜索降低到1D搜索
-
极线校正:
- 使极线变为水平线
- 简化对应点搜索
- 便于硬件实现
-
基础矩阵和本质矩阵:
- 描述两个视图之间的几何关系
- 基础矩阵用于未标定相机
- 本质矩阵用于已标定相机
-
8点算法:
- 用8对对应点估计基础矩阵
- 归一化8点算法更稳定
- 是估计几何关系的标准方法
知识地图:
关键决策点:
- 选择基线大小:平衡精度和可见性
- 选择三角测量方法:根据精度要求选择线性或非线性方法
- 使用极线校正:几乎所有立体视觉系统都使用
- 选择基础矩阵估计方法:归一化8点算法是标准方法
- 处理外点:使用RANSAC等鲁棒方法
📚 延伸阅读
推荐资源
-
Szeliski’s Book: Computer Vision: Algorithms and Applications, Chapter 7
- 详细的立体视觉和双视图几何理论
-
在线资源:
- 立体视觉交互式演示
- 极线约束可视化工具
-
实践项目:
- 实现基本的立体视觉系统
- 尝试不同的对应点搜索方法
- 实现8点算法估计基础矩阵
本文基于PPT内容整理,适合初学者理解双视图几何的基本概念和应用。如需深入了解数学原理和公式推导,请参考相关研究资料。
1792

被折叠的 条评论
为什么被折叠?



