计算机视觉 |
您所在的位置:网站首页 › 矩阵基本概念是什么 › 计算机视觉 |
前言一、对级几何1.1 基本概念1.2 极点与像平面关系
二、基础矩阵2.1 本质矩阵E的推导2.2 基础矩阵F的推导2.3 基础矩阵F的性质2.4 基础矩阵F的求解2.4.1 八点算法2.4.2 归一化八点算法
三、实验内容3.1 实验目的与要求3.2 代码实现3.3 实验结果3.4 实验分析
四、小结
前言
在之前的文章中,介绍过相机矩阵,这是针对单个相机的,可我们知道单个相机图片并不能告诉我们物体的深度信息,这时至少需要两个相机,这样在两视图间内在的射影几何关系就是对极几何,而基础矩阵就是对极几何的代数表示。本文主要介绍对极几何和基础矩阵。 一、对级几何首先,从应用的角度分析,对极几何的出现是为了解决什么问题? 立体视觉几何中有以下问题: 1.已知一幅图像中一点,如何寻找另一幅图像中这个点的对应点(根据是否知道相机的相对位置,此问题求解方式不同) 2.已知两幅图像中两点是对应关系,如何求解两相机的相对位置和姿态 3.已知多幅图像中同一3D点的对应点,如何求解该3D点的3D坐标 对极几何/基础矩阵的出现可以解决问题2。 1.1 基本概念立体成像的基本几何就是对极几何。下图是最经典的对极几何示意图。 在对极几何中,e1和e2被称作极点,PO1O2平面为极面,p1e1为极线,同理p2e2也为极线。这是对极几何中重要的三个概念。 1.2 极点与像平面关系在下面的实验中,会分析极点与像平面在三种不同情况下的结果,所以这里先对这三种情况做个介绍。 先来看极点的性质—— 极点的性质: 基线与像平面相交点光心在另一幅图像中的投影三种情况—— 情况一:极点位于像平面 情况二:基线平行像平面 情况三:相机前后方位关系 有了对极几何的相关概念,我们就可以将讲基础矩阵了。在前言中也提到过,基础矩阵就是对极几何的代数表示。下面对它进行介绍。 对基础矩阵的作用理解: 如果已知基础矩阵F,以及一个3D点在一个像面上的像素坐标p,则可以求得在另一个像面上的像素坐标p’。这个是基础矩阵的作用,可以表征两个相机的相对位置及相机内参数。 2.1 本质矩阵E的推导
则有: p ′ = R p + T p'=Rp+T p′=Rp+T如果我们将其左叉乘一个T,即 T × p ′ = T × R p + T × T = T × R p T\times p'=T\times Rp+T\times T=T\times Rp T×p′=T×Rp+T×T=T×Rp其中 T × p ′ T\times p' T×p′ 表示对极平面的法线,若再左点乘一个p’得到 p ′ ( T × p ′ ) = p ′ ( T × R p ) p'(T\times p')=p'(T\times Rp) p′(T×p′)=p′(T×Rp)由于p’与法线 T × p ′ T\times p' T×p′是垂直的,所以有 0 = p ′ ( T × R p ) 0=p'(T\times Rp) 0=p′(T×Rp)我们知道两向量的叉乘可以转换为一向量的反对称矩阵与另一向量的点乘,于是定义矩阵S为 S = [ 0 − T z T y T z 0 − T x − T y T x 0 ] S=\begin{bmatrix} 0 &-T_{z} &T_{y} \\ T_{z}& 0 & -T_{x}\\ -T_{y}& T_{x} & 0 \end{bmatrix} S=⎣⎡0Tz−Ty−Tz0TxTy−Tx0⎦⎤S表示T的反对称矩阵。叉积秩为2。 将上式带入叉积公式中,得到: p ′ ( T × R p ) = p ′ S R p = 0 p'(T\times Rp)=p'SRp=0 p′(T×Rp)=p′SRp=0我们让 E=SR ,那么 p ′ T E p = 0 — — ( 1 ) 式 p'^{T}Ep=0_{——(1)式} p′TEp=0——(1)式这个E就是本质矩阵. 本质矩阵的作用:本质矩阵描述了空间中的点在两个坐标系中的坐标对应关系。 对本质矩阵E的求解过程作个小结:以上内容中,p, p’分别为P点的像点在两个坐标系下分别得到的坐标(非二维像素坐标)。Rp为极面上一矢量,T为极面上一矢量,则两矢量一叉乘为极面的法向量, 这个法向量与极面上一矢量p’一定是垂直的,所以上式一定成立。(这里采用转置是因为p’会表示为列向量的形式,此处需要为行向量) 2.2 基础矩阵F的推导得到本质矩阵后,基础矩阵也就容易推导了 设K和K’ 分别为两个相机的内参矩阵,根据约束关系可知:
x
=
K
p
即
p
=
K
−
1
x
x=Kp即p=K^{-1}x
x=Kp即p=K−1x
x
′
=
K
′
p
′
即
p
′
=
K
′
−
1
x
′
x'=K'p'即p'=K'^{-1}x'
x′=K′p′即p′=K′−1x′代入(1)式得到:
(
K
′
−
1
x
′
)
T
E
(
K
−
1
x
)
=
0
(K'^{-1}x')^{T}E(K^{-1}x)=0
(K′−1x′)TE(K−1x)=0 基础矩阵的性质: 简单说来,3x3的矩阵,理论上9个自由度,但是需要符合以下两个约束: a)如果F为基础矩阵,那么kF也为基础矩阵 b)秩为2 所以减去两个自由度,F有7个自由度。 对第二条约束进行讨论(为什么秩为2?): 我们知道,矩阵的秩有这么一个性质,矩阵相乘的秩不大于各矩阵的秩,那么,可以知道F其实是以下这些矩阵相乘的结果 K ′ − T S R K − 1 K'^{-T}SRK^{-1} K′−TSRK−1其中,S的具体形式在2.1中有表述 S = [ 0 − T z T y T z 0 − T x − T y T x 0 ] S=\begin{bmatrix} 0 &-T_{z} &T_{y} \\ T_{z}& 0 & -T_{x}\\ -T_{y}& T_{x} & 0 \end{bmatrix} S=⎣⎡0Tz−Ty−Tz0TxTy−Tx0⎦⎤可以知道,第三列A2可以用第一列A0和第二列A1线性表示 A 2 = − T y ∗ A 1 / T z − T x ∗ A 0 / T z A2=-T_{y}*A1/T_{z}-T_{x}*A0/T_{z} A2=−Ty∗A1/Tz−Tx∗A0/Tz所以S秩为2,那么F秩为2也得证了。 2.4 基础矩阵F的求解一般采用七点算法或八点算法对F进行求解,得知F后就可以对任意像面1上点找像面2上对应点了。下面介绍8点算法。 2.4.1 八点算法由于基础矩阵F定义为:
x
T
F
x
′
=
0
x^{T}Fx'=0
xTFx′=0其中
x
↔
x
′
x\leftrightarrow x'
x↔x′是两幅图像的任意一对匹配点。由于每一组点的匹配提供了计算F系数的一个线性方程,当给定至少7个点(3×3的齐次矩阵减去一个尺度,以及一个秩为2的约束),方程就可以计算出未知的F。我们记点的坐标为
x
=
(
x
,
y
,
1
)
,
x
′
=
(
x
′
,
y
′
,
1
)
x=(x,y,1),x'=(x',y',1)
x=(x,y,1),x′=(x′,y′,1),则对应的方程为 所以8点算法由下面两个步骤组成: 1.求线性解 由系数矩阵A最小奇异值对应的奇异矢量f 求的F。 2.奇异性约束 是最小化Frobenius范数||F−F’||的F’代替F。 2.4.2 归一化八点算法上面8点算法估算基础矩阵F的优缺点如下: 优点: 线性求解,容易实现,运行速度快缺点:对噪声敏感8点算法是计算基本矩阵的最简单的方法,但它存在问题,如:如果矩阵各列的数据尺度差异太大, 最小二乘得到的结果精度一般很低。为了提高解的稳定性和精度,往往会对输入点集的坐标先进行归一化处理。对于归一化八点算法的总结如下: 给定 n ≥ 8 n≥8 n≥8 组对应点{ x i ↔ x i ′ x_{i}\leftrightarrow x_{i}' xi↔xi′},确定基本矩阵F使得 x i ′ T F x i = 0 x_{i}'^{T}Fx_{i}=0 xi′TFxi=0 算法: 1.归一化:根据 x i ^ = T x i , x i ′ ^ = T ′ x i ′ \widehat{x_{i}}=Tx_{i},\widehat{x_{i}'}=T'x_{i}' xi =Txi,xi′ =T′xi′变换图像坐标。其中T和T’是有平移和缩放组成的归一化变换。 2.求解对应匹配的基本矩阵 F ′ ^ \widehat{F'} F′ ①求线性解:用由对应点集{ x i ^ ↔ x i ′ ^ \widehat{x_{i}}\leftrightarrow \widehat{x_{i}'} xi ↔xi′ }确定的系数矩阵 A ^ \widehat{A} A 的最小奇异值的奇异矢量确定 F ^ \widehat{F} F ②奇异性约束:用SVD对 F ^ \widehat{F} F 进行分解,令其最小奇异值为0,得到 F ′ ^ \widehat{F'} F′ ,使得 d e t F ′ ^ = 0 det\widehat{F'}=0 detF′ =0 ③解除归一化:令 F = T ′ T F ^ ′ T F=T'^{T}\widehat{F}'T F=T′TF ′T。矩阵F就是数据 x i ↔ x i ′ x_{i}\leftrightarrow x_{i}' xi↔xi′对应的基本矩阵。 归一化8点算法将图像坐标范围限定在 ~[-1,1]x[- 1,1],实验表明可以得到更可靠的结果。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |