在理想情况下,\(P=l\times {l}'\)。但是由于噪声的存在,两条直线通常不相交,因此就存在新的问题:已知\(p\)和\({p}'\),\(K\)和\({K}'\)以及\(R\)和\(T\),如何求解\(P\)的三维坐标?(可通过线性解法和非线性解法求解)
寻找\({{P}^{*}}\),使得\(d(p,M{{P}^{*}})+d({p}',{M}'{{P}^{*}})\)最小化。具体可使用牛顿法或列文伯格-马夸尔特法(L-M方法)。
极几何描述了同一场景或者物体的两个视点图像间的几何关系。
定义:
性质:
两个图像平面平行
基线平行于图像平面,极点\(e\)和\({e}'\)位于无穷远处
极线平行于图像坐标系的\(u\)轴
两幅图上极点的位置相同,极点称作展开焦点。
通过极几何约束,可以将搜索范围缩小到对应的极线上。
本质矩阵对规范化摄像机拍摄的两个视点图像间的极几何关系进行代数描述。
回顾:规范化摄像机满足\(K=\left[ \begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\\end{matrix} \right]\)。
定义:\(a\times b=\left[ \begin{matrix} 0 & -{{a}_{z}} & {{a}_{y}} \\ {{a}_{z}} & 0 & -{{a}_{x}} \\ -{{a}_{y}} & {{a}_{x}} & 0 \\\end{matrix} \right]\left[ \begin{matrix} {{b}_{x}} \\ {{b}_{y}} \\ {{b}_{z}} \\\end{matrix} \right]=[{{a}_{\times }}]b\)
注意:
设两个相机均为规范相机,因此:图像点的齐次坐标=空间点的欧式坐标。
因此空间点\(p\)在\({{O}_{1}}\)坐标系下的非齐次坐标为\({{[u,v,1]}^{T}}\),空间点\({p}'\)在\({{O}_{2}}\)坐标系下的非齐次坐标为\({{[{u}',{v}',1]}^{T}}\)。
\({p}'\)在\({{O}_{1}}\)的坐标:\({{R}^{T}}{p}'-{{R}^{T}}T\)
\({{O}_{2}}\)在\({{O}_{1}}\)的坐标:\(-{{R}^{T}}T\)
由此可以推出上图红色向量(垂直于极平面)\({{R}^{T}}T\times ({{R}^{T}}{p}'-{{R}^{T}}T)\)
该向量垂直于\({{O}_{1}}p\),因此\({{[{{R}^{T}}T\times ({{R}^{T}}{p}'-{{R}^{T}}T)]}^{T}}p=0\),化简可得:\[{{{p}'}^{T}}[T\times R]p={{{p}'}^{T}}[{{T}_{\times }}]Rp=0\]
定义本质矩阵\(E=T\times R=[{{T}_{\times }}]R\),即可得到:\[{{{p}'}^{T}}Ep=0\]
结论:
基础矩阵对一般的透视摄像机拍摄的两个视点的图像间的极几何关系进行代数描述。
思路:变换到规范化摄像机
由于\(p=K\left[ \begin{matrix} I & 0 \\\end{matrix} \right]P\),因此\({{K}^{-1}}p={{K}^{-1}}K\left[ \begin{matrix} I & 0 \\\end{matrix} \right]P=\left[ \begin{matrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\\end{matrix} \right]P\)
故可令\({{p}_{c}}={{K}^{-1}}p\),\({{p}_{c}}^{\prime }={{{K}'}^{-1}}{p}'\)
因此:\[{{p}_{c}}^{\prime }E{{p}_{c}}={{p}_{c}}^{\prime }[{{T}_{\times }}]R{{p}_{c}}={{{p}'}^{T}}{{{K}'}^{-T}}[{{T}_{\times }}]R{{K}^{-1}}p=0\]
定义基础矩阵\(F={{{K}'}^{-T}}[{{T}_{\times }}]R{{K}^{-1}}\),即可得到:\[{{{p}'}^{T}}Fp=0\]
结论:
\(F\)有7个自由度,理论上7个点即可求解\(F\),但是计算方法比较复杂。故使用八点算法来估计\(F\)。
根据\({{{p}'}^{T}}Fp=0\),可以得到:\(\left[ \begin{matrix} {{u}'} & {{v}'} & 1 \\\end{matrix} \right]\left[ \begin{matrix} {{F}_{11}} & {{F}_{12}} & {{F}_{13}} \\ {{F}_{21}} & {{F}_{22}} & {{F}_{23}} \\ {{F}_{31}} & {{F}_{32}} & {{F}_{33}} \\\end{matrix} \right]\left[ \begin{matrix} u \\ v \\ 1 \\\end{matrix} \right]=0\),即:\[\left[ \begin{matrix} u{u}' & v{u}' & {{u}'} & u{v}' & v{v}' & {{v}'} & u & v & 1 \\\end{matrix} \right]\left[ \begin{matrix} {{F}_{11}} \\ {{F}_{12}} \\ {{F}_{13}} \\ {{F}_{21}} \\ {{F}_{22}} \\ {{F}_{23}} \\ {{F}_{31}} \\ {{F}_{32}} \\ {{F}_{33}} \\\end{matrix} \right]=0\]
选取八组对应点:\[\left[ \begin{matrix} {{u}_{1}}{{{{u}'}}_{1}} & {{v}_{1}}{{{{u}'}}_{1}} & {{{{u}'}}_{1}} & {{u}_{1}}{{{{v}'}}_{1}} & {{v}_{1}}{{{{v}'}}_{1}} & {{{{v}'}}_{1}} & {{u}_{1}} & {{v}_{1}} & 1 \\ {{u}_{2}}{{{{u}'}}_{2}} & {{v}_{2}}{{{{u}'}}_{2}} & {{{{u}'}}_{2}} & {{u}_{2}}{{{{v}'}}_{2}} & {{v}_{2}}{{{{v}'}}_{2}} & {{{{v}'}}_{2}} & {{u}_{2}} & {{v}_{2}} & 1 \\ {{u}_{3}}{{{{u}'}}_{3}} & {{v}_{3}}{{{{u}'}}_{3}} & {{{{u}'}}_{3}} & {{u}_{3}}{{{{v}'}}_{3}} & {{v}_{3}}{{{{v}'}}_{3}} & {{{{v}'}}_{3}} & {{u}_{3}} & {{v}_{3}} & 1 \\ {{u}_{4}}{{{{u}'}}_{4}} & {{v}_{4}}{{{{u}'}}_{4}} & {{{{u}'}}_{4}} & {{u}_{4}}{{{{v}'}}_{4}} & {{v}_{4}}{{{{v}'}}_{4}} & {{{{v}'}}_{4}} & {{u}_{4}} & {{v}_{4}} & 1 \\ {{u}_{5}}{{{{u}'}}_{5}} & {{v}_{5}}{{{{u}'}}_{5}} & {{{{u}'}}_{5}} & {{u}_{5}}{{{{v}'}}_{5}} & {{v}_{5}}{{{{v}'}}_{5}} & {{{{v}'}}_{5}} & {{u}_{5}} & {{v}_{5}} & 1 \\ {{u}_{6}}{{{{u}'}}_{6}} & {{v}_{6}}{{{{u}'}}_{6}} & {{{{u}'}}_{6}} & {{u}_{6}}{{{{v}'}}_{6}} & {{v}_{6}}{{{{v}'}}_{6}} & {{{{v}'}}_{6}} & {{u}_{6}} & {{v}_{6}} & 1 \\ {{u}_{7}}{{{{u}'}}_{7}} & {{v}_{7}}{{{{u}'}}_{7}} & {{{{u}'}}_{7}} & {{u}_{7}}{{{{v}'}}_{7}} & {{v}_{7}}{{{{v}'}}_{7}} & {{{{v}'}}_{7}} & {{u}_{7}} & {{v}_{7}} & 1 \\ {{u}_{8}}{{{{u}'}}_{8}} & {{v}_{8}}{{{{u}'}}_{8}} & {{{{u}'}}_{8}} & {{u}_{8}}{{{{v}'}}_{8}} & {{v}_{8}}{{{{v}'}}_{8}} & {{{{v}'}}_{8}} & {{u}_{8}} & {{v}_{8}} & 1 \\\end{matrix} \right]\left[ \begin{matrix} {{F}_{11}} \\ {{F}_{12}} \\ {{F}_{13}} \\ {{F}_{21}} \\ {{F}_{22}} \\ {{F}_{23}} \\ {{F}_{31}} \\ {{F}_{32}} \\ {{F}_{33}} \\\end{matrix} \right]=0\]
方程记为\(\mathbf{Wf}\text{=}0\),该方程秩为8,存在唯一非零解。
实际操作中可能多于8组数据,需要用最优化的方法来求出\(\hat{F}\)。这个\(\hat{F}\)是满秩的,而我们所要求的\(F\)秩为2,故仍需要使用最优化方法求出\(F\)。
\[SVD(\hat{F})=U\left[ \begin{matrix} {{s}_{1}} & 0 & 0 \\ 0 & {{s}_{2}} & 0 \\ 0 & 0 & {{s}_{3}} \\\end{matrix} \right]{{V}^{T}}\Rightarrow F=U\left[ \begin{matrix} {{s}_{1}} & 0 & 0 \\ 0 & {{s}_{2}} & 0 \\ 0 & 0 & {{s}_{3}} \\\end{matrix} \right]{{V}^{T}}\]
由于\(\mathbf{W}\)矩阵中各个元素的数值差异过大,SVD分解有数值计算问题,因此引入归一化八点法。
对每幅图像施加变换T(平移与缩放),让其满足如下条件:
具体步骤如下: