对极几何

  对极几何是研究两幅图像之间存在的几何。它和场景结构无关,只依赖于摄像机的内外参数。研究这种几何可以用在图像匹配、三维重建方面。(因为参考多处来源,本文各个章节之间没有统一约定符号)

  • 基线:连接两个摄像机光心$O(O^{‘})$的直线
  • 对极点:基线与像平面的交点
  • 对极平面:过基线的平面
  • 对极线:对极平面与图像平面的交线
  • 基本矩阵F:对应点对之间的约束$m^{‘T}Fm=0$

极线约束

  对于一个单一的摄像机观测3D点$w$的情况。$w$必定位于一条穿过光心和摄像机平面中$x_{1}$的光线上。然而,从单独的一个摄像机,我们无法获知该点与光线间的距离。

  现在我们考虑观测同一个3D点的第二个摄像机。从第一个摄像机可得知,该点必定位于3D空间中的一条特定光线上。进而第二幅图像中该点的投影位置$x_{2}$必定位于第二幅图像中这条光线投影上的某个位置。三维空间中的光线在二维空间中的投影就是所谓的极线

  这种几何关系告诉我们一些重要信息:对于第一幅图像中的任意点,其在第二幅图像中的对应点被限制在一条线上。这就是所谓的极线约束。而这条受约束的特定极线依赖于摄像机的内在参数和外在参数(也就是两个摄像机间的相对平移和旋转)。

  极线约束有两个重要的实际意义。

  1)在已知摄像机的内在参数和外在参数的情况下,能够相对容易地找到对应点:对于第一幅图像中的某个点,只需要沿着第二幅图像中的极线执行一维搜索,就可以得到该点在第二幅图像中极线上对应点的位置。

  2)对应点的约束是摄像机内在参数和外在参数的函数;在已知摄像机内在参数的情况下,可利用对应点的观测模式来确定摄像机的外在参数,因而确定两台摄像机间的几何关系。

极点

  现在考虑第一幅图像中的点。每一个点都与三维空间中的一条光线相关联,每一条光线都在第二幅图像中投影而形成极线。由于所有的光线都汇聚于第一个摄像机的光心,所以极线必须汇聚于第二幅图像平面上的一个点。这是第一个摄像机的光心在第二个摄像机中的图像,称为极点

  类似地,图像2中的点引出图像1中的极线,而这些极线汇聚于图像1中的极点。该极点就是摄像机2的光心在摄像机1中的图像。

  极点并不一定位于观测图像内:极线也可能汇聚于可视范围之外的某一点。当两个摄像机都位于同一方向(即没有相对旋转)且垂直于光轴时,极线是相互平行的,因此由极线汇聚的极点就位于无穷远处。当两个摄像机位于同一方向且平行于光轴时,极点就位于图像的中心且极线呈放射状。这些例子说明极线的模式能够提供摄像机间的相对位置和方向等信息。

本质矩阵(Essential Matrix)

  对于世界坐标系中的点$M_{i}$,在摄像机1和摄像机2中的成像分别为$m_{i}$和$m‘_{i}$。

$x_{i}m_{i}=K[R,t]M_{i}$

$x‘_{i}m‘_{i}=K‘[R‘,t‘]M_{i}$  

  如果将世界坐标系取在第一个摄像机坐标系上,则:

$x_{i}m_{i}=K[I,0]M_{i}$ -> $x_{i}m_{i}=KM_{i}$

$x‘_{i}m‘_{i}=K‘[R,t]M_{i}$ -> $x‘_{i}m‘_{i}=K‘(RM_{i}+t)$

  现在取:

$p=K^{-1}m_{i}$,$p‘=K‘^{-1}m‘_{i}$

  代入上式,得:

$p‘=Rp+t$

  两边同时左乘$t?$。?相当于两侧同时与$t$做外积:

$t?p‘=t?Rp$

  然后,两侧同时左乘$p‘^{T}$:

$p‘^{T}t?p‘=p‘^{T}t?Rp$

  观察等式左侧,$t?p‘$是一个与$t$和$p‘$都垂直的向量。把它再和$x‘$做内积时,将得到0。因此,我们就得到一个简洁的式子:

$p‘^{T}t?Rp=0$

  重新代入$m,m‘$,有:

$m‘^{T}K‘^{-T}t?RK^{-1}m=0$

  这两个式子都称为对极约束,它以形式简洁著名。它的几何意义是O,O‘,M三者共面。对极约束中同时包含了平移和旋转。我们把中间部分记作两个矩阵:基础矩阵(Fundamental Matrix)$F$和本质矩阵(Essential Matrix)$E$,于是可以进一步简化对极约束:

$E=t?R,F=K‘^{-T}EK_{-1},p‘^{T}Ep=m‘^{T}Fm=0$

  对极约束简洁地给出了两个匹配点的空间位置关系。

原文地址:https://www.cnblogs.com/majiale/p/9306039.html

时间: 2024-10-10 08:02:36

对极几何的相关文章

(三)对极几何

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

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{\bol

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

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

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

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

SURF算子(1)

SURF算子,参考这篇文章的解释http://www.ipol.im/pub/art/2015/69/ SURF 是   Speeded Up Robust Features 加速鲁棒特征的含义. The source code and the online demo are accessible at the IPOL web page of this article1. Theproposed implementation of the SURF algorithm is written i

基于OpenCV的立体相机标定StereoCalibration与目标三维坐标定位

说明:以下涉及到的一些公式以及图片来自于Learning OpenCV. 做了快2个月的立体相机标定,遇到了一些问题,也有了一些体会,在这里记下来. 1.在做立体相机标定的时候,标定板的规范与否直接影响到最后标定的结果,进而会影响目标3D坐标重建. 这里说的规范指的是,打印的棋盘格(或者圆点)需要保证每个square都是严格大小一致的,即打印出来后每个棋盘格大小应一样:打印出来的棋盘格要尽量平整的附在某一平面或者玻璃板上,然后才能用来拍摄标定图像:测量squareSize的时候,要尽可能的精确,

照相机定标

作者 群号 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

Monocular slam 的理论基础(1)

前言 ??LSD-SLAM和ORB-SLAM的出现,使得单目slam最近成为了研究热点.单目SLAM一般处理流程包括track和map两部分.所谓的track是用来估计相机的位姿.而map部分就是计算pixel的深度,如果相机的位姿有了,就可以通过三角法(triangulation)确定pixel的深度,把这些计算好深度的pixel放到map里就重建出了三维环境. 主要内容 ??在单目SLAM的学习过程中,需要较多的视觉几何的基础知识.这些基础知识中,有很多会令初学者晕头转向.比如,如何从本征矩

SLAM入门之视觉里程计(4):基础矩阵的估计

在上篇文章中,介绍了三位场景中的同一个三维点在不同视角下的像点存在着一种约束关系:对极约束,基础矩阵是这种约束关系的代数表示,并且这种约束关系独立与场景的结构,只依赖与相机的内参和外参(相对位姿).这样可以通过通过匹配的像点对计算出两幅图像的基础矩阵,然后分解基础矩阵得到相机的相对位姿. 通过匹配点对估算基础矩阵 基础矩阵表示的是图像中的像点\(p_1\)到另一幅图像对极线\(l_2\)的映射,有如下公式: \[ l_2 = Fp_1 \] 而和像点\(P_1\)匹配的另一个像点\(p_2\)必