论文原文: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,with4∑j=1=αi,j=1
(αi,j称为质心坐标,其数值与参考系的平移和旋转无关)
为了区分,用上角标w和c代表世界坐标系和相机坐标系,如pci,pwi。
控制点的选取:理论上控制点可以任意4个不共面的点。实践操作表明,其中一个点选为3D参考点的质心,另外三个点沿着点集的主方向选择,即要求这3个点与质心的连线分别与3个主方向平行。
2. 解空间
投影方程
wi[uivi1]=[fu0cu0fvcv001]4∑j=1αij[xcjycjzcj]
方程(2)的最后一行说明wi=∑4j=1αijzcj,将其代入前两行,可得到线性方程组
4∑j=1αijfuxcj+αij(uc−ui)zcj=04∑j=1αijfvycj+αij(vc−vi)zcj=0
注意到(3)和(4)中消去了wi项。
将n个点的方程组合在一起,可以得到一个具有如下形式的线性方程
Mx=0
其中x=[cc⊤1,cc⊤2,cc⊤3,cc⊤4],是一个12维的未知变量,由4个控制点的坐标组成;M是1个2n×12维的矩阵。显然,方程(5)的解空间对应M⊤M的零空间。
3. 定解
设{vi}为M的右奇异向量,那么x=∑Ni=1βivi。在理想透视投影模型下,M⊤M的零空间的维数严格等于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几种情况讨论
- N=1:此时x=βv,利用保距离约束计算β。令v[i]为cci在v中对应的子向量。例如,v[1]表示v中的前3个元素。保距离约束为
‖βv[i]−βv[j]‖=‖cwi−cwj‖
其封闭解为
β=∑{i,j}∈[1;4]‖v[i]−v[j]‖⋅‖cwi−cwj‖∑{i,j}∈[1;4]‖v[i]−v[j]‖2 - N=2:此时x=β1v1+β2v2。距离约束为
‖(β1v[i]1+β2v[i]2)−(β1v[j]1+β2v[j]2)‖=‖cwi−cwj‖
等式(9)可以整理成Aβ21+Bβ1β2+Cβ22=D的形式。利用这一形式,令b=[β21,β1β2,β22]⊤,可将方程(9)转化为线性形式
Lb=q
求解得b之后,可进一步求解β1和β2。这一方法称之为为线性化方法。需要注意的是,解出的β1和β2需要令所有的pci的z分量为正数。 - N=3:按照N=2的方式如法炮制。区别在于,维数从4维上升到6维。
- 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。
评论前必须登录!
登陆 注册