相机姿态估计
总目标:计算相机运动
2D-2D:对极几何#
对极约束#
它的几何意义是三者共面。对极约束中包含了平移和旋转。
定义基础矩阵(Fundamental Matrix)和本质矩阵(Essential Matrix),
则对极约束:
本质矩阵E的求解#
E的性质:
- 对极约束是等式为零的约束,E乘以任意非零常数后,对极约束依然满足
- ,其奇异值是的形式。
- R和t共有六个自由度,则E也有6自由度。但由于尺度等价性(可以同时乘以常数),E实际上有5个自由度。
八点法#
- 为什么选择八个点,而不是5个点?
E的内在性质是一种非线性性质,在估计时会带来麻烦,因此,也可以只考虑它的尺度等价性。E是一个3✖3的矩阵,9个点,考虑尺度等价性后,需要8个点。 - 多于8对点的情况:
计算最小二乘解,将八点法中的左侧矩阵记为A:
Ae=0,八点法中A的大小为8✖9,若给定的匹配点多于8,构成超定方程,则不一定能求得e。因此可以最小化一个二次型来求解:
- 八点法:
- 选取8对匹配点,代入对极约束。则可求得E。
- 再利用SVD分解:
- 求得t,R的可能值:
- 表示沿z轴旋转90度得到旋转矩阵。同时E和-E等价,所以也可以对任意一个t取负号。因此,共存在4个解。但只有一个解使得P在两个相机中都具有正的深度。
- 我们根据线性方程求出的E可能不满足E的内在性质——奇异值可能不为的形式。因此,我们会刻意将矩阵调整为上面的样子。
单应矩阵H#
- 通过假设场景中的特征点都落在同一平面上:得到每对匹配点的线性关系。然后选取8对点进行求解H。同样,再将H分解得到R和t。
- 单应性的重要意义:
当特征点共面或者发生相机纯旋转时,基础矩阵的自由度下降,这就出现了退化(degenerate)。此时,基础矩阵多余出来的自由度将会主要由噪声决定。
为此,我们会同时估计基础矩阵F和单应矩阵H,选择重投影误差比较小的那个作为最终的运动估计。
三角测量#
目的是求出深度。
同乘:
变为求解
3D-2D:Pnp#
DLT#
每对匹配点满足
找出6对匹配点,列12个方程求解t(定义[R|t]为一个3✖4的矩阵,代表,以此类推),但旋转矩阵需要满足约束,可以由QR分解来求得。
P3P#
通过余弦定理,选择3对匹配点进行运算。
最小化重投影误差(Bundle Adjustment)#
Bundle Adjustment:把相机和三维点放在一起进行最小化的问题。
3D-3D:ICP(Iterative Cloest Point)#
ICP可以分为以下三个步骤求解:
- 计算两组点的质心位置,然后计算每个点的去质心坐标:
- 根据以下优化问题计算旋转矩阵:
- 根据第2步的R计算t:
SVD求解#
定义.
W是一个3✖3的矩阵,对W进行SVD分解:
当W满秩时,R为
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
2021-10-08 GAMES101 Transformation Cont.
2021-10-08 Games101 Tansformer