对极几何、对极点、二次曲线学习心得(持续更新)

对极几何基础

这里主要讲与对极几何相关的,极线、对极点、二次曲线的极线和极点等问题。

本质矩阵对极几何

x2TE21x1=0 \rm {\bm x}_{2}^{T}{\bm E}_{21}{\bm x}_1 = {\bm 0}
其中,E21=t212R21{\bm E}_{21} = {{\bm t}_{2}^{12}}^{\land}{\bm R}_{21} 是本质矩阵,x2{\bm x}_{2} 是图2中的一个图像点对应的方向向量,x1{\bm x}_1是图1中的一个图像点对应的方向向量,这两个图像点是匹配点,指向同一个三维目标点X\bm X

本质矩阵的性质

极线

这里假设x1{\bm x}_{1}x2{\bm x}_{2}表示图像点对应的落在归一化平面上的方向向量,即x1=[x1,y1,1]T{\bm x}_{1}=[x_1, y_1, 1]^{\rm T}x2=[x2,y2,1]T{\bm x}_{2}=[x_2, y_2, 1]^{\rm T}。取x2TE21=[l11,l12,l13]{\bm x}_{2}^{\rm T}{\bm E}_{21}=[l_{11}, l_{12}, l_{13}],那么这里有
l11x1+l12y1+l13=0 l_{11}x_1 + l_{12}y_1 + l_{13} = 0
这是一条在图1归一化平面上面的二维直线,称为极线。对于图2上的极线来说同理。

对极点

这里取向量t212{{\bm t}_{2}^{12}}与图2的归一化平面交点为e2{\bm e}_2,则e2TE21=e2Tt212R21=[e2×t212]TR21=0 {\bm e}_2^{\rm T}{\bm E}_{21}={\bm e}_2^{\rm T}{{\bm t}_{2}^{12}}^{\land}{\bm R}_{21} =[{\bm e}_2 \times {\bm t}_{2}^{12}]^{\rm T} {\bm R}_{21}=\bm 0
因此不论图1上哪个点与之点乘都得到零。e2{\bm e}_2被称为图2上的对极点,同理e1{\bm e}_1是图1上的对极点。

对极点的性质

图2上任一点的极线都会经过图1上的对极点,同理图1上任一点的极线都会经过图2上的对极点。
一个三维点相对于图1的深度越大,在图2上对应的极线上,对应的位置越偏离对极点。对极几何、对极点、二次曲线学习心得(持续更新)

纯平移运动

纯平移运动中,两张图的对极点相对于各自的相机坐标系的坐标是相同的。
对极几何、对极点、二次曲线学习心得(持续更新)

二次曲线

二次曲线在中学学习时被称为圆锥曲线,实际上,中学里学过的圆、椭圆、双曲线、抛物线都属于二次曲线,但二次曲线不都是圆锥曲线。本部分引用了知乎答案。
【解析几何】什么是极线,好吃吗? - Dylaaan的文章 - 知乎
https://zhuanlan.zhihu.com/p/33873965
以下所有内容均为二维二次曲线的内容,三维二次曲线对各个方阵、向量扩展z轴即可。

二次曲线的矩阵表达

一般来说,平面上的二维二次曲线都可以表达成
[xy1][ABCBDECEF][xy1]=0 \left[ \begin{array}{ccc} x & y & 1 \end{array} \right] \left[ \begin{array}{ccc} A & B & C \\ B & D & E \\ C & E & F \end{array} \right] \left[ \begin{array}{c} x \\ y \\ 1 \end{array} \right] = \bm 0
例如,圆的表达式为
[xy1][10a01babr2a2b2][xy1]=0 \left[ \begin{array}{ccc} x & y & 1 \end{array} \right] \left[ \begin{array}{ccc} 1 & 0 & -a \\ 0 & 1 & -b \\ -a & -b & r^2-a^2-b^2 \end{array} \right] \left[ \begin{array}{c} x \\ y \\ 1 \end{array} \right] = \bm 0

二次曲线的极点和极线

对于任意一个点P{\bm P},做两条直线AB{\bm A}{\bm B},CD{\bm C}{\bm D},均与二次曲线有两个交点,分别是A,B,C,D{\bm A},{\bm B},{\bm C},{\bm D}。取AC{\bm A}{\bm C}BD{\bm B}{\bm D}的交点为R{\bm R}AD{\bm A}{\bm D}BC{\bm B}{\bm C}的交点为Q{\bm Q},定义QR{\bm Q}{\bm R}为极点P{\bm P}的极线。
对极几何、对极点、二次曲线学习心得(持续更新)

二次曲线的极点和极线的矩阵表达

对于一个二维点 P=[x0y01]T{\bm P}=\left[ \begin{array}{ccc} x_0 & y_0 & 1\end{array} \right] ^{\rm T} (此处坐标为齐次坐标)和一个二次曲线,直线
[x0y01][ABCBDECEF][xy1]=0 \left[ \begin{array}{ccc} x_0 & y_0 & 1 \end{array} \right] \left[ \begin{array}{ccc} A & B & C \\ B & D & E \\ C & E & F \end{array} \right] \left[ \begin{array}{c} x \\ y \\ 1 \end{array} \right] = \bm 0
被称为二次曲线在极点P{\bm P}处的极线。

二次曲线极线和极点性质举例

椭圆

当极点在椭圆上,极线为椭圆在极点处的切线;
当极点在椭圆外,极线与椭圆的两个交点与极点之间的两条连线分别为椭圆在两个交点处的切线;
当极点在椭圆内,过极点做一条直线与椭圆相交于两点,这两点处椭圆的切线的交点一定在极线上。

对极几何中的二次曲线

对于一个基本矩阵E{\bm E},我们将其分解为一个对称矩阵Es{\bm E_s}和一个反对称矩阵Ea{\bm E_a}E=Es+Ea{\bm E} = {\bm E_s} + {\bm E_a},有
Es=E+ET2,Ea=EET2 {\bm E_s}=\frac{{\bm E} + {\bm E}^{\rm T}}{2}, {\bm E_a}=\frac{{\bm E} - {\bm E}^{\rm T}}{2}
反对称矩阵等价于一个三维向量的叉乘矩阵,所以我们取Ea=xa{\bm E_a}={\bm x_a}^{\land},且对于任意三维向量x{\bm x}都有xTEax=0{\bm x}^{\rm T}{\bm E_a}{\bm x}=\bm 0
此时,二次曲线E21s{\bm E_{21s}}在极点x21a{\bm x_{21a}}处的极线为对极点e1{\bm e_1}e2{\bm e_2}的连线。

基础矩阵转化为二次曲线矩阵的作用

首先定义同视点。同视点是在两帧图像中,具有相同坐标的点。对于同视点,有
xTE21x=xTE21sx+xTE21ax=xTE21sx=0 {\bm x}^{\rm T}{\bm E_{21}}{\bm x} = {\bm x}^{\rm T}{\bm E_{21s}}{\bm x} + {\bm x}^{\rm T}{\bm E_{21a}}{\bm x} \\ = {\bm x}^{\rm T}{\bm E_{21s}}{\bm x} =\bm 0
因此,这些同视点构成一个二次曲线。

相关性质

当我们要求二次曲线E21s{\bm E_{21s}}在极点x\bm x处的极线时,可以将对极点e1{\bm e_1}x\bm x相连得到二次曲线和该直线的另一个交点xc\bm x_c,将xc\bm x_c与对极点e2{\bm e_2}相连即为极点x\bm x的极线。