Processing math: 100%

EPnP算法概述


论文原文:https://infoscience.epfl.ch/record/160138/files/top.pdf。

1. 参数化

已知空间中n个3D参考点{pi}i[1,...,n]及其对应的图像点{mi}i[1,...,n]。假设空间中有4个控制点{ci}i[1,2,3,4]。于是每一个3D点都可以表示为控制点的凸组合,即
pi=j=1αij,with4j=1=αi,j=1
αi,j称为质心坐标,其数值与参考系的平移和旋转无关)

为了区分,用上角标wc代表世界坐标系和相机坐标系,如pcipwi

控制点的选取:理论上控制点可以任意4个不共面的点。实践操作表明,其中一个点选为3D参考点的质心,另外三个点沿着点集的主方向选择,即要求这3个点与质心的连线分别与3个主方向平行。

2. 解空间

投影方程
wi[uivi1]=[fu0cu0fvcv001]4j=1αij[xcjycjzcj]

方程(2)的最后一行说明wi=4j=1αijzcj,将其代入前两行,可得到线性方程组
4j=1αijfuxcj+αij(ucui)zcj=04j=1αijfvycj+αij(vcvi)zcj=0
注意到(3)(4)中消去了wi项。

n个点的方程组合在一起,可以得到一个具有如下形式的线性方程
Mx=0
其中x=[cc1,cc2,cc3,cc4],是一个12维的未知变量,由4个控制点的坐标组成;M是1个2n×12维的矩阵。显然,方程(5)的解空间对应MM的零空间。

3. 定解

{vi}M的右奇异向量,那么x=Ni=1βivi。在理想透视投影模型下,MM的零空间的维数严格等于1。若考虑仿射投影模型,维数等于4。由于大焦距的透视相机可以被一个仿射模型近似,因此$N$的取值具有不确定性,可能为1或者为4。而且由于实际中存在噪声,通常找不到严格为0的奇异值,但是可能会非常小。

基于上述原因,对N{1,2,3,4}的所有情况求解,保留误差者作为最终解。误差定义如下
e=idist(K[R|t][Pwi1],ui)
其中dist(˜m,n)表示由齐次向量表示的点m和点n之间的距离。

以下分别对N=1,2,3,4几种情况讨论

  1.  N=1:此时x=βv,利用保距离约束计算β。令v[i]cciv中对应的子向量。例如,v[1]表示v中的前3个元素。保距离约束为
    βv[i]βv[j]=cwicwj
    其封闭解为
    β={i,j}[1;4]v[i]v[j]cwicwj{i,j}[1;4]v[i]v[j]2
  2. N=2:此时x=β1v1+β2v2。距离约束为
    (β1v[i]1+β2v[i]2)(β1v[j]1+β2v[j]2)=cwicwj
    等式(9)可以整理成Aβ21+Bβ1β2+Cβ22=D的形式。利用这一形式,令b=[β21,β1β2,β22],可将方程(9)转化为线性形式
    Lb=q
    求解得b之后,可进一步求解β1β2。这一方法称之为为线性化方法。需要注意的是,解出的β1β2需要令所有的pciz分量为正数。
  3. N=3:按照N=2的方式如法炮制。区别在于,维数从4维上升到6维。
  4. N=4:有4个未知数需要求解。理论上,由6个距离约束已经足够解出4个未知数。但是如果继续使用线性化方法,会将未知数个数提升到10个。这种情况下,先解出根据齐次线性方程,即
    L˜b=0
    解出$\mathbf{b}$所在的空间。注意到如下事实
    βabβcd=βaβbβcβd=βaβbβcβd
    其中{a,b,c,d}{a,b,c,d}的任意置换。利用式(12)的约束并再次使用线性化方法可解出b

未经允许不得转载:Charlie小站 » EPnP算法概述

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册