Relative Orientation 与fundamental essential matrix

   由于《Hartley, Zisserman ...》书太厚,啃不动。所以最近回头看youtube上的德国鬼子视频, 补习机器视觉最基础的知识。所以本次博文,没有算法,没有代码,纯粹的定义和识记。 老外视频课程地址:https://www.youtube.com/playlist?list=PLgnQpQtFTOGRsi5vzy9PiQpNWHjq-bKN1

  本次总结涵盖视频:

Photogrammetry II - 02a - Relative Orientation (2015/16)

Photogrammetry II - 02b - Relative Orientation (2015/16)

Photogrammetry II - 03a - Epipolar Geometry and Essential Matrix (2015/16)

Photogrammetry II - 03b - Epipolar Geometry and Essential Matrix (2015/16)

讲师为:Cyrill Stachniss



我们看下二维图片与三维图片之间的联系。

Relative Orientation 与fundamental essential matrix

相机在不同位置观察同一个物点:

  • 如果知道相机拍摄位置信息,即可求物点的3D坐标
  • 如果不知道相机拍摄的位置信息,若知道场景中若干control point信息,则可以反求相机拍摄位置信息(比如棋盘标定)

 

   那么现在有个问题:

  如果不知道场景中点的信息(即没有controlpoints),只知道图像A中的特征点与图像B中哪些特征点对应,我们如何求相机的拍摄位置?

  先不回答这个问题,可以带着疑问看下面的基础知识:

  1. 各个相机之间的姿态camera pose的参数化表达
  2. 极性约束及数学表达
  3. 基础矩阵fundmental matrix数学定义
  4. 极几何及数学性质
  5. 本质矩阵定义及参数模型

1.      各个相机之间的姿态camera pose的参数化表达

  对于标定的相机,需要用12个参数描述两个相机之间的pose关系:

2*(X,Y,Z),位移

2*(Rx,Ry,Rz),旋转

   对于未标定的相机,需要用22个参数描述两个相机之间的pose关系:

2*(fx,fy,cx,cy,sheer),相机内参

2*(X,Y,Z),位移

2*(Rx,Ry,Rz),旋转

 

注:

  每个相机的pose理论上可以独立表达,没必要成对。上面这么干是因为后面视频课程里不知道世界绝对坐标,只能搞相对的坐标,故必须成对;

  DLT算法可以求单个相机的pose,前提是知道场景中control point的信息,所以此处并不适用;


2.      极性约束及数学表达

  下图中O’,O’’分别为两个相机的中心,X是物点。如果两个相机画面的特征点对应场景同一物点,那么O’X、O’’X、O’O’’三个向量理应共面

Relative Orientation 与fundamental essential matrix

数学上表达为:

                                       [O’X,O’’X, O’O’’] = 0

注:Triple product,[A,B,C]=(A×B).C,表示三个向量构成的立方体体积,三个向量共面则立方体体积为0。

    给定两个相机的图像,如下图所示,我们重建的对象只是一个相似变换(only up to a similarity transformation),把这种模型称为photogrammetricmodel。把photogrammetric model 的方向称为绝对方向。

Relative Orientation 与fundamental essential matrix

对于标定的相机:

Mapping the calibrated camera is angle-perserving,即两个画面是相似的,非全等,图A中直线的夹角,在图B中的夹角任然是这个值

两个相机保持了relatvietransformation,如果没有额外的信息,我们无法获取全局偏移和旋转信息,只能知道12-7=5个参数,我们将丢失7个参数:第一个相机的R、T和scale(两个相机之间的距离)

  我们可以以第一个相机为参照,计算第二个相机的旋转,还有基线baseline的方向(无法计算基线的长度)。

 

注:

(1)若构建场景3D模型,我们需要知道什么信息?

 如果两个标定相机的基线已知,可求3D模型,但是我们并不知道3D模型在世界坐标系中的坐标;

 或者,如果我们知道场景中至少3个control point的信息,即可求绝对方向

 

(2)若要求scale,我们需要知道什么信息?

  已知物体的大小;

  或者,已知两个相机相距的位置

 

 对于未标定的相机:

  Object can be reconstructed up to a straightline preserving mapping but not angle preserving. (图A与图B中原来直线的平行关系不再保留,即直线夹角的值不再相等),图A中是直线,图B中也是直线。

  由于投影变换参数P=KR[I|-Xc]共15个参数未知,给定两个图像的匹配点,只可求22-15=7个参数来描述相对朝向。

  另外,需要至少5个controlpoint,才可以求绝对朝向。

 

下图为相对朝向与绝对朝向的关系图

Relative Orientation 与fundamental essential matrix

下表对上述标定和未标定相机的简单总结:

 

每张图参数

每对图参数

给定匹配点,可求参数

计算绝对方向所需最少控制点数

标定

6

12

5(Essential matrix)

3

未标定

11

22

7(Fundmental matrix)

5


3.      基础矩阵fundmental matrix数学定义

咱再次看下图,

Relative Orientation 与fundamental essential matrix

O’X与O’’X的方向可以从图像坐标x’与x’’获取:

   x’=P’X

   x’’=P’’X

其中,

   P’=K’R’[I|-Xc’]

   P’’=K’’R’’[I|-Xc’’]

那么,O’X与O’’X的归一化方向可以表达为:

Relative Orientation 与fundamental essential matrix

上式中x’与x’’是图像坐标像素,世界坐标X同归一化方向xn’的关系:

Relative Orientation 与fundamental essential matrix

Relative Orientation 与fundamental essential matrix

矩阵Sb为skew-symmetric matrix。现在我们把刚才的归一化方向代入上式得:

Relative Orientation 与fundamental essential matrix

       基础矩阵fundamentalmatrix中包含了两个未标定相机画面之间的相对朝向信息,F中有7个参数,5 for pose,2 for fake intrinics 

注:

已知相机投影矩阵P,如何计算F?

将矩阵P分成两块左边3*3作为A’,右边3*1作为a’,即:

Relative Orientation 与fundamental essential matrix

扯下图像坐标到世界坐标的过程:

图像坐标-->内参-->相机坐标-->外参-->世界坐标

x_img=K*x_camera=K*[R|T]*x_world



4.      极几何及数学性质

假设投影矩阵P和基础矩阵F已知:

Relative Orientation 与fundamental essential matrix

Relative Orientation 与fundamental essential matrix

Relative Orientation 与fundamental essential matrix

Relative Orientation 与fundamental essential matrix

The epipoles are the left and righteigenvectors of the fundamental matrix


Relative Orientation 与fundamental essential matrix



5.      本质矩阵定义及参数模型

假设没有失真和图像错误,标定的相机可以简化朝向问题,基于标定矩阵K,我们可以获取图像中的点与物点连线的方向(标定相机可知光线方向)。

Relative Orientation 与fundamental essential matrix

公式左边x是direction in camera frame(图像上一点与光心的连线方向(维度3*1),但是不包含camera pose,并不是世界坐标里的光线方向),公式右边x是图像坐标(维度3*1),内参K维度3*3。再看基础矩阵,

Relative Orientation 与fundamental essential matrix

注意,

E有5个*度(参数),决定了相机之间的相对朝向。(12-7=5,丢失了第一个相机的RT和两个相机之间的scale)

仔细观察上式,它对于球面坐标的全景图,可以不需要知道内参,即可求E,因为球心至球面任意一点本身即为光线方向,只需通过球面坐标求出其camera frame下的3d  point即可。(比如:x=cosacosb,y=cosasinb,z=sina)

本质矩阵是齐次的,奇异的(行列式值为0,矩阵的秩小于3)


====================================================================================================================

关于光线方向再扩展扯下:

小孔成像的光线是经由世界坐标,相机坐标,投影平面坐标,传感器平面坐标,即下图所示:

Relative Orientation 与fundamental essential matrix

假设XP是世界坐标中物点坐标,向量XO=[x0,y0,z0]表示世界坐标原点移动值相机坐标原点的偏移量,那么下式就表示从世界坐标转换到相机坐标,因此刚才的光线并不包含camera pose,相机姿态是针对世界坐标而言的

Relative Orientation 与fundamental essential matrix

世界坐标系里的光线应该是:

Relative Orientation 与fundamental essential matrix

相机坐标系也是三维的,它是通过世界坐标系旋转平移而来

相机的外部参数,描述camera pose

相机的内部参数,描述将相机前方物点投影到最终的成像平面


============================================================================================================================

如何用参数表达E的5个参数,即如何赋予参数物理意义?

Relative Orientation 与fundamental essential matrix

请忽略中间和右边这两种模型,左边的模型是最常用的。该模型定义第一个相机的R=I,b为归一化方向向量,现在有6个参数外加1个约束,因此E的*度是5

Relative Orientation 与fundamental essential matrix

以上为Youtube课程总结,讲了半天大家一定很不爽,都是些定义概念,根本没讲什么算法,也没有代码演示。

现在如果要回答最开始的问题,如何从给定匹配点获取相机姿态,下篇博文将会讲如何求F和E的算法,然后再讲如何从E和F中提取R和T




上一篇:如何选择阿里云服务器相关配置


下一篇:阿里云怎么购买云速成美站: 虚拟主机+建站模板