多视图几何(13)_仿射对极几何

仿射对极几何

仿射摄像机非常有用并且是许多实际情形的很好的近似,其最大优点在于:由于它的线性特征,许多最优算法可以用线性代数实现,而针对摄影摄像机的解法或者涉及到高阶多项式或者仅能用数值最小化才能实现

仿射对极几何

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 对极线:考虑第一幅视图中的两点 x 1 , x 2 \pmb x_1,\pmb x_2 x1,x2,这些点反投影为 3 D 3D 3D空间中的平行射线,因为所有投影射线是平行的,在第二幅视图中的对极线是反投影的射线的图像。这两条射线在第二幅视图中的图像也是平行的,因为一个仿射摄像机把平行场景直线映射到平行图像直线。因此,所有对极线平行,对极平面也是如此
  • 对极点:因为对极线相交于对极点,并且所有对极线是平行的,所以对极点在无穷远处

仿射基本矩阵

  • F A F_A FA是秩为 2 2 2且自由度为 4 4 4的其次矩阵,它的形式为
    F A = [ 0 0 a 0 0 b c d e ] F_A= \begin{bmatrix} 0 & 0 & a \\ 0 & 0& b \\ c &d & e \end{bmatrix} FA= 00c00dabe

  • 点对应:如果 x , x ′ x,x^\prime x,x是仿射摄像机下的对应图像点,那么 x ′ T F A x = 0 \pmb x^{\prime T}F_A \pmb x = 0 xTFAx=0,对于有限点
    a x ′ + b y ′ + c x + d y + e = 0 ax^\prime +b y^\prime +cx+dy+e=0 ax+by+cx+dy+e=0

  • 对极线

    • I ′ = F A x = ( a , b , c x + d y + e ) T \pmb I^\prime = F_A\pmb x = (a,b,cx+dy+e)^T I=FAx=(a,b,cx+dy+e)T是对应于 x \pmb x x的对极线
    • I = F A x ′ = ( c , d , a x + b y + e ) T \pmb I=F_A \pmb x^\prime = (c,d,ax+by+e)^T I=FAx=(c,d,ax+by+e)T是对应于 x ′ \pmb x^\prime x的对极线
  • 对极点

    • F A e = 0 F_A\pmb e = 0 FAe=0 e = ( − d , c , 0 ) T \pmb e=(-d,c,0)^T e=(d,c,0)T
    • F A T e ′ = 0 F_A^T \pmb e^\prime =0 FATe=0 e ′ = ( − b , a , 0 ) T \pmb e^\prime =(-b,a,0)^T e=(b,a,0)T
  • 由摄像机矩阵 P A , P A ′ P_A,P_A^\prime PA,PA计算

    • 一般摄像机

      F A = [ e ′ ] × P A ′ P A + F_A=[e^\prime]_\times P_A^\prime P_A^+ FA=[e]×PAPA+,其中 e ′ \pmb e^\prime e是$e\prime=P_A\prime C $所确定的对极点

    • 规范摄像机
      P A = [ 1 0 0 0 0 1 0 0 0 0 0 1 ]  ,  P A ′ = [ M 2 × 3 t 0 0 0 1 ] a = m 23 , b = − m 13 , c = m 13 m 21 − m 11 m 23 d = m 13 m 22 − m 12 m 23 , e = m 13 t 2 − m 23 t 1 P_A = \begin{bmatrix} 1 & 0 & 0& 0 \\ 0 & 1 & 0 & 0\\ 0 & 0& 0& 1 \end{bmatrix} \text{ , } P_A^\prime = \begin{bmatrix} &M_{2 \times 3} & & \pmb t \\ 0 & 0& 0 & 1 \end{bmatrix} \\ a=m_{23},b=-m_{13},c=m_{13}m_{21}-m_{11}m_{23} \\ d=m_{13}m_{22}-m_{12}m_{23},e=m_{13}t_2 - m_{23}t_1 PA= 100010000001  , PA=[0M2×300t1]a=m23,b=m13,c=m13m21m11m23d=m13m22m12m23,e=m13t2m23t1

由图像点对应估计 F A F_A FA

由匹配点 x ↔ x ′ \pmb x \leftrightarrow \pmb x^\prime xx的方程 x ′ T F A x = 0 \pmb x^{\prime T}F_A \pmb x = 0 xTFAx=0定义,给定足够多的点就可以计算出 F A F_A FA

线性算法

A f = 0 A\pmb f = 0 Af=0可以算出。由点对应计算两视图关系等价于在 I R 4 IR^4 IR4中由点 x , y , x ′ , y ′ x,y,x^\prime ,y^\prime x,y,x,y拟合一个曲面,对于方程为 x ′ T F A x = 0 x^{\prime T}F_Ax=0 xTFAx=0的情形,该关系关于坐标是线性的,因此由仿射基本矩阵定义的族 V F A \mathcal V_{F_A} VFA是一个超平面。

由此得到两个简化

  • F A F_A FA的最优估计可以形式化为平面拟合问题
  • S a m p s o n Sampson Sampson误差等于几何误差,而对一般基本矩阵的情形,它只是一个一阶近似,Sampson近似的切平面等于该曲面

黄金标准算法

在仿射变换下,最小化几何距离 min ⁡ ∑ i d ( x i , x ^ i ) 2 + d ( x i ′ , x ^ i ′ ) 2 \min \sum_i d(x_i,\hat x_i)^2+d(x_i^\prime,\hat x_i^\prime)^2 minid(xi,x^i)2+d(xi,x^i)2等价于求一个超平面问题,即用一张超平面拟合 I R 4 IR^4 IR4中的一组点 X i = ( x i ′ , y i ′ , x i , y i ) T \pmb X_i=(x_i^\prime,y_i^\prime,x_i,y_i)^T Xi=(xi,yi,xi,yi)T,估计点 X i ^ = ( x ^ i ′ , y ^ i ′ , x ^ i , y ^ i ) \hat {\pmb X_i} = (\hat x_i^\prime,\hat y_i^\prime,\hat x_i,\hat y_i) Xi^=(x^i,y^i,x^i,y^i)满足方程 x ^ i ′ F A x ^ i = 0 \hat x_i^\prime F_A \hat x_i=0 x^iFAx^i=0,等价于 ( X ^ i , 1 ) f = 0 (\hat {\pmb X}_i,1)\pmb f=0 (X^i,1)f=0,其中 f = ( a , b , c , d , e ) T \pmb f=(a,b,c,d,e)^T f=(a,b,c,d,e)T表示超平面,最小化问题就变成了求平面 f f f最小化测量点和估计点之间距离的平方,即
C = ∑ i d ⊥ ( X i , f ) 2 = 1 a 2 + b 2 + c 2 + d 2 ∑ i ( a x i ′ + b y i ′ + c x i + d y i + e ) 2 \mathcal C = \sum_i d_\perp(\pmb X_i,\pmb f)^2 = \frac{1}{a^2+b^2+c^2+d^2} \sum_i(ax_i^\prime+by_i^\prime+cx_i+dy_i+e)^2 C=id(Xi,f)2=a2+b2+c2+d21i(axi+byi+cxi+dyi+e)2
把超平面的法向量记为 N = ( a , b , c , d ) T N=(a,b,c,d)^T N=(a,b,c,d)T,则
C = 1 ∥ N ∥ 2 ∑ i ( N T X i + e ) 2 \mathcal C = \frac 1 {\parallel N \parallel ^2} \sum_i(N^TX_i+e)^2 C=N21i(NTXi+e)2
等价于经典的平面正交回归问题,算法步骤如下

  1. 关于参数 e e e最小化 C \mathcal C C,求得 ∂ C ∂ e = 0 \cfrac{\partial \mathcal C}{\partial e}=0 eC=0,得到此时 e e e的值代入 C \mathcal C C
    C = 1 ∥ N ∥ 2 ∑ i ( N T Δ X i ) 2 , Δ X i = X i − X ‾ \mathcal C = \frac{1}{\parallel N \parallel ^2}\sum_i(N^T\Delta X_i)^2,\Delta X_i = X_i-\overline X C=N21i(NTΔXi)2,ΔXi=XiX
  2. 最小化这个关于 N N N的简化的代价函数,令 A A A表示行向量为 Δ X i T \Delta X_i^T ΔXiT的矩阵,有
    = ∥ A N ∥ 2 / ∥ N ∥ 2 \mathcal = \parallel AN \parallel ^2 / \parallel N \parallel^2 =∥AN2/N2
目标

给定 n ≥ 4 n \geq 4 n4组图像点对应 { x i ↔ x i ′ } \{\pmb x_i \leftrightarrow \pmb x_i^\prime\} {xixi},确定仿射基本矩阵的最大似然估计 F A F_A FA

算法

把对应表示为 X i = ( x i ′ , y i ′ , x i , y i ) T \pmb X_i=(x_i^\prime,y_i^\prime,x_i,y_i)^T Xi=(xi,yi,xi,yi)T

  1. 计算形心 X ‾ = 1 n ∑ i X i \overline X= \frac 1n\sum_iX_i X=n1iXi,并中心化各向量 Δ X i = X i − X ‾ i \Delta X_i = X_i -\overline X_i ΔXi=XiXi
  2. 计算行向量为 Δ X i T \Delta X_i^T ΔXiT n × 4 n \times 4 n×4矩阵 A A A
  3. N = ( a , b , c , d ) T N=(a,b,c,d)^T N=(a,b,c,d)T A A A的对应最小奇异值的奇异向量,而 e = − N T X ‾ e=-N^T\overline X e=NTX

最小配置

目标

给定 4 4 4组图像点对应 { x i ↔ x i ′ } \{\pmb x_i \leftrightarrow \pmb x_i^\prime\} {xixi},确定仿射基本矩阵

算法

3 3 3 3 D 3D 3D X i X_i Xi定义一张平面 π \pi π

  1. 计算仿射变换矩阵 H A H_A HA,使得 x i ′ = H A x i , i = 1 , 2 , 3 x_i^\prime =H_Ax_i,i=1,2,3 xi=HAxi,i=1,2,3
  2. 根据 I ′ = ( H A x 4 ) × x 4 ′ I^\prime = (H_Ax_4) \times x_4^\prime I=(HAx4)×x4确定第二幅视图中的对极线,由此得对极点 e ′ = ( − l 2 ′ , l 1 ′ , 0 ) T e^\prime=(-l^\prime_2,l_1^\prime,0)^T e=(l2,l1,0)T
  3. 任意点 x x x在第二幅视图中的对极线是 e ′ × ( H A x ) = F A x e^\prime \times (H_A x) = F_A x e×(HAx)=FAx,因此 F A = [ ( − l 2 ′ , l 1 ′ , 0 ) T ] × H A F_A=[(-l_2^\prime,l_1^\prime,0)^T]_\times H_A FA=[(l2,l1,0)T]×HA

其中第 4 4 4个点与另外三个点不能共面

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三角测量

X ^ = X − d ⊥ N ∥ N ∥ \hat X = X- d_\perp \frac{N}{\parallel N \parallel } X^=XdNN

仿射重构

假设有 n ≥ 4 n \geq 4 n4组图像点对应,并假设没有噪声,那么可以计算 3 D 3D 3D点和摄像机的重构。在摄影摄像机的情形下重构是射影的,对于仿射情形,重构是仿射的【存疑】

Necker反转和浅浮雕多义性

  • Necker反转:在平行投影下,一个物体旋转 ρ \rho ρ和镜像旋转 − ρ -\rho ρ产生同样的图像。因此结构只能恢复到与前置平面相差一个反射。这种多义性在透视情况下不存在,因为点在这两种解释下有不同的深度,不会投影到同一点
  • 浅浮雕多义性:深度参数 Δ Z \Delta Z ΔZ和旋转参数 sin ⁡ ρ \sin \rho sinρ混淆在一起,并不能被分别确定——只能计算它们的乘积。因此一个浅的物体经历了一个大的转动和一个深度物体经历了一个小的转动产生同样的图像

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

计算运动

对两个弱透视摄像机给出 F A F_A FA计算摄像机运动的表达式
P = [ α x α y 1 ] [ 1 0 0 0 0 1 0 0 0 0 0 1 ]  ,  P ′ = [ α x ′ α y ′ 1 ] [ r 1 T t 1 r 2 T t 2 0 T 1 ] P= \begin{bmatrix} \alpha_x & & \\ & \alpha_y & \\ &&1 \end{bmatrix} \begin{bmatrix} 1&0&0&0 \\ 0&1&0&0 \\ 0 &0&0&1 \end{bmatrix} \text{ , } P^\prime = \begin{bmatrix} \alpha_x^\prime & & \\ & \alpha_y^\prime & \\ &&1 \end{bmatrix} \begin{bmatrix} \pmb r^{1T} & t_1 \\ \pmb r^{2T} & t_2 \\ \pmb 0^T & 1 \\ \end{bmatrix} P= αxαy1 100010000001  , P= αxαy1 r1Tr2T0Tt1t21
其中 r 1 , r 2 r^1,r^2 r1,r2是视图之间的旋转 R R R的第一行和第二行。假设两个摄像机的高宽比 α x / α y \alpha_x/\alpha_y αx/αy已知,但其相对尺度位置 s = α x / α x ′ s=\alpha_x/\alpha_x^\prime s=αx/αx未知。由两幅弱视图不能完全计算出旋转 R R R,因为存在浅浮雕多义性,但其余的运动参数可以由 F A F_A FA计算得到。

为此,采用另一种旋转表示,可以将浅浮雕多义性的参数 ρ \rho ρ分离出来。将旋转分解为
R = R ρ R θ R= R_\rho R_\theta R=RρRθ
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

首先,在图像平面上有一个角度为 θ \theta θ的轮式旋转 R θ R_\theta Rθ,接着是绕轴 Φ \Phi Φ,角度为 ρ \rho ρ的旋转 R ρ R_\rho Rρ Φ \Phi Φ的方向平行于图像平面并且与正 X X X轴的夹角为 ϕ \phi ϕ,即一个转出图像平面的纯旋转
tan ⁡ ϕ = b a , tan ⁡ ( ϕ − θ ) = d c , s 2 = c 2 + d 2 a 2 + b 2 \tan \phi = \frac ba ,\tan(\phi-\theta) = \frac dc,s^2 = \frac{c^2+d^2}{a^2+b^2} tanϕ=ab,tan(ϕθ)=cd,s2=a2+b2c2+d2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愤怒的卤蛋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值