2D-2D:对极几何

对极约束

\[
\boldsymbol{x}_{2}^{T} \boldsymbol{F} \boldsymbol{x}_{1}=\boldsymbol{0} \quad \hat{\boldsymbol{x}}_{2}^{T} \boldsymbol{E} \hat{\boldsymbol{x}}_{1}=\mathbf{0}
\]

其中

\[
\boldsymbol{E}=\boldsymbol{K}_{2}^{-T} \boldsymbol{F K}_{1} \quad \hat{\boldsymbol{x}}_{1}=\boldsymbol{K}_{1}^{-1} \boldsymbol{x}_{1} \quad \hat{\boldsymbol{x}}_{2}=\boldsymbol{K}_{2}^{-1} \boldsymbol{x}_{2}
\]


公式推导

\[
\boldsymbol{P}_{1}=\boldsymbol{K}_{1}[\boldsymbol{I}, \quad \mathbf{0}] \quad \boldsymbol{P}_{2}=\boldsymbol{K}_{2} \left[ \begin{array}{ll}{\boldsymbol{R},} & {\boldsymbol{t}}\end{array}\right]
\]

\[
d_{1} x_{1}=K_{1} X \quad \Rightarrow \quad d_{1} K_{1}^{-1} x_{1}=X=d_{1} \hat{x}_{1}
\]

\[
d_{2} \boldsymbol{x}_{2}=\boldsymbol{K}_{2}(\boldsymbol{R} \boldsymbol{X}+\boldsymbol{t}) \Rightarrow \quad d_{2} \boldsymbol{K}_{2}^{-1} \boldsymbol{x}_{2}=\boldsymbol{R} \boldsymbol{X}+\boldsymbol{t}=d_{1} \boldsymbol{R} \hat{x}_{1}+\boldsymbol{t}
\]

\[
\quad d_{2}[t]_{\times} \hat{x}_{2}=d_{1}[t]_{\times} R \hat{x}_{1}+[t]_{\times} t
\]

\[
\quad d_{2} \hat{x}_{2}^{T}[t]_{\times} \hat{x}_{2}=d_{1} \hat{x}_{2}^{T}[t]_{\times} R \hat{x}_{1}=0
\]

\[
\hat{\boldsymbol{x}}_{2}^{T}[\boldsymbol{t}]_{ \times} \boldsymbol{R} \hat{x}_{1}=\hat{\boldsymbol{x}}_{2}^{T} \boldsymbol{E} \hat{x}_{1}=0
\]

\[
\boldsymbol{E}=[\boldsymbol{t}]_{ \times} \boldsymbol{R}
\]

\[
\boldsymbol{x}_{2}^{T} \boldsymbol{K}_{2}^{-T}[\boldsymbol{t}]_{\times} \boldsymbol{R} \boldsymbol{K}_{1}^{-1} \boldsymbol{x}_{1}=\boldsymbol{x}_{2}^{T} \boldsymbol{F} \boldsymbol{x}_{1}=0
\]

\[
\boldsymbol{F}=\boldsymbol{K}_{2}^{-T} \boldsymbol{E} \boldsymbol{K}_{1}^{-1}
\]


基础矩阵性质

  • 3x3的矩阵,秩为2
  • 具有7个自由度
  • 奇异值为\(\left[ \begin{array}{lll}{\sigma_{1},} & {\sigma_{2},} & {0}\end{array}\right]^{T}\)
  • 极线约束\(l_{1}=\boldsymbol{x}_{2}^{T} \boldsymbol{F}, \quad l_{2}=\boldsymbol{F} \boldsymbol{x}_{1}, \quad \boldsymbol{x}_{2}^{T} \boldsymbol{F} \boldsymbol{x}_{1}=0\)

基础矩阵求解方法

直接线性变换法 (8点法+最小二乘法)

对于一对匹配点
\[
\boldsymbol{x}_{1}=\left[ \begin{array}{ll}{u_{1},} & {v_{1},} & {1}\end{array}\right]^{\mathrm{T}}, \quad \boldsymbol{x}_{2}=\left[ \begin{array}{ll}{u_{2},} & {v_{2},} & {1}\end{array}\right]^{\mathrm{T}}
\]
根据对极约束
\[
\boldsymbol{x}_{2}^{T} \boldsymbol{F} \boldsymbol{x}_{1}=\boldsymbol{0}
\]

\[
\left( \begin{array}{lll}{u_{1}} & {v_{1}} & {1}\end{array}\right) \left[ \begin{array}{ccc}{F_{11}} & {F_{12}} & {F_{13}} \\ {F_{21}} & {F_{22}} & {F_{23}} \\ {F_{31}} & {F_{32}} & {F_{33}}\end{array}\right] \left( \begin{array}{c}{u_{2}} \\ {v_{2}} \\ {1}\end{array}\right)=0
\]

\[
\boldsymbol{f}=\left[ \begin{array}{lll}{F_{11},} & {F_{12},} & {F_{13}}, \quad \end{array}\right.F_{21}, \quad F_{22}, \quad F_{23}, \quad F_{31}, \quad F_{32}, \quad F_{33} ]^{T}
\]
有约束
\[
\left[ \begin{array}{llllll}{u_{1} u_{1},} & {u_{1} v_{2},} & {u_{1},} & {v_{2} u_{1},} & {v_{1} v_{2},} & {v_{1},} & {u_{2},} & {v_{2},} & {1}\end{array}\right] f=0
\]
当有n对匹配点时
\[
A=\left( \begin{array}{ccccccccc}
{\begin{array}{l}
{u_{1}^{(1)} u_{1}^{(1)}, \quad u_{1}^{(1)} v_{2}^{(1)}, \quad u_{1}^{(1)}, \quad v_{1}^{(1)} u_{2}^{(1)}, \quad v_{1}^{(1)} v_{2}^{(1)}, \quad v_{1}^{(1)}, \quad u_{2}^{(1)}, \quad v_{2}^{(1)}, \quad 1}
\\ {u_{1}^{(2)} u_{1}^{(2)}, \quad u_{1}^{(2)} v_{2}^{(2)}, \quad u_{1}^{(2)}, \quad v_{1}^{(2)} u_{2}^{(2)}, \quad v_{1}^{(2)} v_{2}^{(2)}, \quad v_{1}^{(2)}, \quad u_{2}^{(2)}, \quad v_{2}^{(2)}, \quad 1}
\\ \quad \vdots \quad\quad \quad \vdots \quad\quad \quad \vdots\quad \quad\quad \vdots \quad \quad\quad \vdots \quad\quad \vdots\quad \quad \vdots\quad\quad \quad \vdots\quad\quad \vdots
\\u_{1}^{(n)} u_{1}^{(n)}, \quad u_{1}^{(n)} v_{2}^{(n)}, \quad u_{1}^{(n)}, \quad v_{1}^{(n)} u_{2}^{(n)}, \quad v_{1}^{(n)} v_{2}^{(n)}, \quad v_{1}^{(n)}, \quad u_{2}^{(n)}, \quad v_{2}^{(n)}, \quad 1
\end{array}}
\end{array}\right).
\]

\[
A f=0
\]

  • 要保证有唯一解至少需要8对匹配点
  • n = 8时,若A非奇异,则有唯一解,称为8点法
  • n >= 8时,可用最小二乘法求解( $ A^TA $ 的最小特征值对应的特征向量即为最优解)

奇异值约束

直接线性变化法无法保证基础矩阵的奇异值约束—有两个非0奇异值
根据奇异值约束对矩阵进行重构
\[
\min \|\boldsymbol{F}-\hat{\boldsymbol{F}}\|, \quad \text { wrt. } \operatorname{svd}(\boldsymbol{F})=\left[ \begin{array}{lll}{\sigma_{1},} & {\sigma_{2},} & {0}\end{array}\right]
\]
对得到的基础矩阵进行奇异值分解
\[
\hat{\boldsymbol{F}}=\boldsymbol{U S V}^{T} \quad \text { with } S=\operatorname{diag}\left(\sigma_{1}, \sigma_{2}, \sigma_{3}\right)
\]
利用奇异值约束对基础矩阵进行重构
\[
\boldsymbol{F}=\boldsymbol{U} \operatorname{diag}\left(\sigma_{1}, \quad \sigma_{2}, \quad 0\right) \boldsymbol{V}^{T}
\]


RANSAC-估计基础矩阵

算法流程
  1. 随机采样8对匹配点
  2. 8点法求解基础矩阵
  3. 奇异值约束获取基础矩阵
  4. 计算误差,并统计内点个数
  5. 重复上述过程,选择内点数最多的结果
  6. 对所有内点执行2,3,重新计算
内点判断标准-Sampson Distance

\[
\begin{array}{c}{d\left(\boldsymbol{x}_{1}, \boldsymbol{x}_{2}\right)=\frac{\left(\boldsymbol{x}_{2}^{T} \boldsymbol{F} \boldsymbol{x}_{1}\right)^{2}}{\left(\boldsymbol{F} x_{1}\right)_{x}^{2}+\left(\boldsymbol{F} x_{1}\right)_{x}^{2}+\left(\boldsymbol{x}_{2}^{T} \boldsymbol{F}\right)_{x}^{2}+\left(\boldsymbol{x}_{2}^{T} \boldsymbol{F}\right)_{y}^{2}}} \\ {d\left(\boldsymbol{x}_{1}, \boldsymbol{x}_{2}\right)<\tau}\end{array}
\]


RANSAC-采样次数的计算

N - 样本点个数
K - 求解模型需要最少的点的个数
p - 表示内点的概率
\[
K 个点都是内点概率 p^{K}
\]

\[
K个至少有一个外点(采样失败)的概率1-p^{K}
\]

\[
M次采样全部失败的概率\left(1-p^{K}\right)^{M}
\]

\[
M次采样至少有1次成功的概率 \quad z=1-\left(1-p^{K}\right)^{M}
\]

\[
采样次数 \quad M=\frac{\log (1-z)}{\log \left(1-p^{K}\right)}
\]

\[
计算p=0.9, \quad K=8 , 时,想要采样
成功率达到 z \geq 0.99, 所需要的采样
次数 M
\]


本征矩阵E性质

  1. 3x3的矩阵,秩为2
  2. 具有5个自由度
  3. 奇异值为\(\left[ \begin{array}{lll}{\sigma,} & {\sigma,} & {0}\end{array}\right]^{T}\)

求解本征矩阵

\[
先求解基础矩阵F
\]

\[
\widehat{\boldsymbol{E}}=\boldsymbol{K}_{2}^{T} \boldsymbol{F} \boldsymbol{K}_{1}
\]

\[
\widehat{\boldsymbol{E}}=\boldsymbol{U} \operatorname{diag}\left(\sigma_{1}, \quad \sigma_{2}, \quad 0\right) \boldsymbol{V}^{T}
\]

\[
\boldsymbol{E}=\boldsymbol{U} \operatorname{diag}\left(\frac{\sigma_{1}+\sigma_{2}}{2}, \quad \frac{\sigma_{1}+\sigma_{2}}{2}, \quad 0\right) \boldsymbol{V}^{T}
\]


相机姿态的恢复

求解Rt

\[
\boldsymbol{E}=\boldsymbol{U} \Sigma \boldsymbol{V}^{T}, \boldsymbol{\Sigma}=\operatorname{diag}(\sigma, \quad \sigma, \quad 0)
\]

\[
t_{1}=U( :, 2) \quad R_{1}=U R_{Z}\left(\frac{\pi}{2}\right) V^{T}
\]

\[
\boldsymbol{t}_{2}=-\boldsymbol{U}( :, \boldsymbol{2}) \quad \boldsymbol{R}_{2}=\boldsymbol{U} \boldsymbol{R}_{\mathrm{Z}}^{T}\left(\frac{\pi}{2}\right) \boldsymbol{V}^{T}
\]

\[
\boldsymbol{R}_{z}\left(\frac{\pi}{2}\right)=\left( \begin{array}{ccc}{0,} & {-1,} & {0} \\ {1,} & {0,} & {0} \\ {0,} & {0,} & {1}\end{array}\right), \boldsymbol{R}_{z}^{T}\left(\frac{\pi}{2}\right)=\left( \begin{array}{ccc}{0,} & {1,} & {0} \\ {-1,} & {0,} & {0} \\ {0,} & {0,} & {1}\end{array}\right)
\]

\[
共有4种情况 \left(\boldsymbol{R}_{1}, \boldsymbol{t}_{1}\right),\left(\boldsymbol{R}_{1}, \boldsymbol{t}_{2}\right),\left(\boldsymbol{R}_{2}, \boldsymbol{t}_{1}\right),\left(\boldsymbol{R}_{2}, \boldsymbol{t}_{2}\right)
\]

选择正确的Rt

相机的世界坐标
\[
\boldsymbol{O}_{1}=-\boldsymbol{R}^{T} \boldsymbol{t}=0, \quad \boldsymbol{O}_{2}=-\boldsymbol{R}^{T} \boldsymbol{t}
\]
相机的世界坐标中的朝向
\[
d_{1}=\left[ \begin{array}{lll}{0,} & {0} & {1}\end{array}\right]^{T}
\]

\[
\boldsymbol{d}_{2}=\left[ \begin{array}{cccc}{\boldsymbol{r}_{1}^{T}} & {\boldsymbol{r}_{2}^{T}} & {\boldsymbol{r}_{3}^{T}} & {-\boldsymbol{R}^{T} \boldsymbol{t}}\end{array}\right]\left[ \begin{array}{l}{0} \\ {0} \\ {1} \\ {0}\end{array}\right]=r_{3}^{T}
\]

\[
\boldsymbol{R}=\left[ \begin{array}{c}{\boldsymbol{r}_{1}} \\ {\boldsymbol{r}_{2}} \\ {\boldsymbol{r}_{3}}\end{array}\right] \quad \boldsymbol{R}^{T}=\left[ \begin{array}{ccc}{\boldsymbol{r}_{1}^{T}} & {\boldsymbol{r}_{2}^{T}} & {\boldsymbol{r}_{3}^{T}}\end{array}\right]
\]

利用相机姿态和匹配点进行三角量测得到三维点P

P需满足同时位于两个相机的前方:

方法1:
\[
\begin{array}{l}{\left(\boldsymbol{P}-\boldsymbol{O}_{1}\right)^{T} \boldsymbol{d}_{1}>0} \\ {\left(\boldsymbol{P}-\boldsymbol{O}_{2}\right)^{T} \boldsymbol{d}_{1}>0}\end{array}
\]
方法2:
\[
\left[ \begin{array}{l}{x_{c}} \\ {y_{c}} \\ {z_{c}}\end{array}\right]=\boldsymbol{R P}+\boldsymbol{t}, \quad Z_{c}>0 对两个相机成立
\]


单应矩阵H

假设条件

  1. 空间中特征点位于一平面上
  2. 纯旋转

原文地址:https://www.cnblogs.com/narjaja/p/10768179.html

时间: 2024-10-17 09:34:21

2D-2D:对极几何的相关文章

对极几何

对极几何是研究两幅图像之间存在的几何.它和场景结构无关,只依赖于摄像机的内外参数.研究这种几何可以用在图像匹配.三维重建方面.(因为参考多处来源,本文各个章节之间没有统一约定符号) 基线:连接两个摄像机光心$O(O^{'})$的直线 对极点:基线与像平面的交点 对极平面:过基线的平面 对极线:对极平面与图像平面的交线 基本矩阵F:对应点对之间的约束$m^{'T}Fm=0$ 极线约束 对于一个单一的摄像机观测3D点$w$的情况.$w$必定位于一条穿过光心和摄像机平面中$x_{1}$的光线上.然而,

(三)对极几何

对极约束理解: 1. 对于有重叠纹理的两帧图像,通过特征点匹配可以找到一些匹配对,这是对极几何约束的基础; 2. 匹配对是由同一空间点在不同像素平面投影得到的不同像素坐标,以参考帧为基础,假设空间点为 $P_{w}$,参考帧投影像素为 $p_{r}$, 当前帧投影像素为 $p_{c}$.由于空间点 $P_{w}$ 深度值不确定,因此其可能在参考帧光心 $O_{r}$ 和投影像素 $p_{r}$ 射线上的任意一个位置.而射线上的 $P_{w}$ 与当前帧的光心 $O_{c}$ 的连线在当前帧像素平

SLAM入门之视觉里程计(3):两视图对极约束 基础矩阵

在上篇相机模型中介绍了图像的成像过程,场景中的三维点通过"小孔"映射到二维的图像平面,可以使用下面公式描述: \[ x = MX \]其中,\(c\)是图像中的像点,\(M\)是一个\(3\times4\)的相机矩阵,\(X\)是场景中的三维点. 通过小孔相机模型,可知假如从像点\(x\)向相机的中心\(C\)反投影一条射线\(\overrightarrow{xC}\),则该射线必定经过对应像点的三维空间点\(X\),但显然仅仅通过一个像点无法确定\(X\)的具体位置,因为在射线\(\

计蒜之道2015程序设计大赛初赛第二场——人人都有极客精神

计蒜之道2015程序设计大赛初赛第二场——人人都有极客精神 (一)体面 人人公司是一家极为鼓励极客精神的公司,当有重要的项目需要上线但又时间太紧,甚至需要当天上线的时候,往往会挂起海盗旗开启电子日期显示,让大家可以在对时间有更明确的感知的情况下,同心协力搞定重要的项目.海盗旗下方的电子屏显示的日期形式为 YYYYMMDD (年份占 4 位.月份占 2 位.天数占 2 位). 日期电子屏幕上每个数字对应的显示如下图: 从上图可以得知每个数字对应的笔画数,比如 2 的笔画数是 5,8 的笔画数是 7

人人都有极客精神

http://www.jisuanke.com/minicourse/59/438 人人公司是一家极为鼓励极客精神的公司,当有重要的项目需要上线但又时间太紧,甚至需要当天上线的时候,往往会挂起海盗旗开启电子日期显示,让大家可以在对时间有更明确的感知的情况下,同心协力搞定重要的项目.海盗旗下方的电子屏显示的日期形式为 YYYYMMDD (年份占 4 位.月份占 2 位.天数占 2 位). 日期电子屏幕上每个数字对应的显示如下图: 从上图可以得知每个数字对应的笔画数,比如 2 的笔画数是 5,8 的

多视图几何(基础矩阵和照相机矩阵原理)

一,基础矩阵原理介绍 如果已知基础矩阵F,以及一个3D点在一个像面上的像素坐标p,则可以求得在另一个像面上的像素坐标p',这个是基础矩阵的作用,可以表征两个相机的相对位置及相机内参数. 则根据三线共面,有: K和K'分别为两个相机的内参矩阵,则: 其中的F即为基础矩阵,描述了空间中的点在两个像平面中的坐标对应关系.基础矩阵是对极几何的代数表达方式,描述了图像中任意对应点 x↔x’ 之间的约束关系.F 为 3x3 矩阵,秩为2,对任意匹配点对 x↔x’ 均满足: 二,基础矩阵的两大作用是简化匹配去

stitching detail输出的dot图含义

如果利用opencv里面提供的stitching detail的话. 输入参数: stitching_detail --save_graph a.dot 1.png 2.png 其中a.dot 文件中的内容如下: graph matches_graph{ "1.png" -- "2.png"[label="Nm=26, Ni=19, C=1.20253"]; } // 什么是 dot:    https://zh.wikipedia.org/wi

照相机定标

作者 群号 C语言交流中心 240137450  微信 15013593099 照相机定标 [编辑] ProjectPoints2 投影三维点到图像平面 void cvProjectPoints2( const CvMat* object_points, const CvMat* rotation_vector, const CvMat* translation_vector, const CvMat* intrinsic_matrix, const CvMat* distortion_coef

[OpenCV-Python] OpenCV 中摄像机标定和 3D 重构 部分 VII

部分 VII摄像机标定和 3D 重构 42 摄像机标定 目标 ? 学习摄像机畸变以及摄像机的内部参数和外部参数 ? 学习找到这些参数,对畸变图像进行修复 42.1 基础 今天的低价单孔摄像机(照相机)会给图像带来很多畸变.畸变主要有两种:径向畸变和切想畸变.如下图所示,用红色直线将棋盘的两个边标注出来,但是你会发现棋盘的边界并不和红线重合.所有我们认为应该是直线的也都凸出来了.你可以通过访问Distortion (optics)获得更多相关细节. 这种畸变可以通过下面的方程组进行纠正: 于此相似