博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对极几何(Epipolar Geometry)
阅读量:5107 次
发布时间:2019-06-13

本文共 1272 字,大约阅读时间需要 4 分钟。

基本概念

 

对极几何(Epipolar Geometry)是Structure from Motion问题中,在两个相机位置产生的两幅图像的之间存在的一种特殊几何关系,是sfm问题中2D-2D求解两帧间相机姿态的基本模型。

 

基本模型

其中c0、c1为两个相机中心,p为空间中一点,p在c0、c1对应像平面上的投影分别为x0、x1。c0、c1连线与像平面的交点e0、e1称为极点(Epipoles)l0、l1称为极线(Epipolar Lines),c0、c1、p三点组成的平面称为极平面(Epipolar Plane)

 

对极约束(Epipolar Constraint)

 

对极几何中最重要的一条公式是对极约束(Epipolar Constraint),下面让我们来推导出这个约束条件。

根据针孔相机模型,相机成像平面一点的像素坐标p和该点在世界坐标系下的3D坐标P有$p=KP$的关系,如果用齐次坐标表示则有:

$$dp=KP$$

其中d是空间点深度(为了将p的齐次项变为1),K是相机内参数矩阵,p和P都是齐次坐标。

于是如果以第一个相机的坐标系为参照,对于两个相机则有:$$d_0p_0=KP,d_1p_1=K(RP+t)$$

其中R为旋转矩阵(Rotation),t为平移向量(Translation)。令$x = K^{-1}p$,去掉内参K归一化成:

$$d_0x_0=P, d_1x_1=RP+t$$

由这两式得:$$d_1x_1 = R(d_0x_0)+t$$

两边同时叉乘t消去加号后面单独的t项:$$t \times d_1x_1 = t \times Rd_0x_0+t \times t$$

进而:

$$t \times x_1 = t \times Rx_0$$

再在两遍同时坐乘一个x1:

$$x_1^T (t \times x_1) =x_1^T t \times Rx_0$$

由于等号左边x1乘上了一个和自身垂直的向量,所以等于0,故:

$$x_1^T t \times Rx_0=0$$

该等式称为对极约束(Epipolar Constraint)。

对极约束的几何意义:x1、t、Rx0三者混合积为0,表示这三个向量共面,即上图中三角形的三边共面。

令$E =t \times R$,得到对极约束的新形式:

$$x_1^TEx_0=0$$

E称为本质矩阵(Esential Matrix),由外参数R和t决定。

本质矩阵的几何意义:$x_1^Tl_1=0$,即x1在直线 $l_1=Ex_0$上,表示E将x0投影到另一帧图像中的直线l1上。

 

使用方法

 

有了对极几何的模型,2D-2D的相机姿态可以通过如下过程求解:

①通过多组对应点(Correspondence)进行帧间匹配,求出本质矩阵E。

②通过对E进行分解求出外参数R和t,即相机姿态。

具体过程参见另一篇博文—— 中2D-2D情形。

 

转载于:https://www.cnblogs.com/clarenceliang/p/6704970.html

你可能感兴趣的文章
Linux时间子系统之(六):POSIX timer
查看>>
Linux内存管理 (20)最新更新和展望
查看>>
js实现图片自适应
查看>>
不要重复你自己(复用代码)
查看>>
再读三命通会(7)
查看>>
【操作系统】【进程】进程各状态关系图
查看>>
leetcode 347. Top K Frequent Elements
查看>>
Python list 增加/插入元素的说明
查看>>
代码如何实现多线程
查看>>
C# - Abstract Classes
查看>>
白话经典算法系列之六 高速排序 高速搞定
查看>>
python学习笔记2:字符串
查看>>
动态规划——最长上升子序列LIS及模板
查看>>
pv、uv、ip
查看>>
重磅:Spring Boot 2.0 正式发布!
查看>>
MVC+ZTree大数据异步树加载
查看>>
WPF3.5 使用BINDINGGROUP进行实体类和集合验证
查看>>
蓝桥杯 马虎的算式(全排列)
查看>>
DOS 下net start oracleserviceorcl 发生系统错误 5。 拒绝访问。
查看>>
自动加载函数__autoload和spl_autoload_register
查看>>