消影点
由于透视的原因, 本不应相交的平行线会在图像中的无穷远处相交, 本来等距的点之间的距离也会变成单调递减, 所以会有消影点:
上图是直线中的消影形成,
X是世界直线,
C是摄像机位置,
x是图像直线, 可知世界直线和图像直线是不平行的。
本来
X1,X2,...,X是等距的,在
x图像直线不是这样的,消影点通过过摄像机中心的平行于世界直线的直线和图像直线求交点获取
所以消影点和世界直线的位置无感,只和与图像直线的夹角相关。
推广到3D空间:
设一直线方向为
d,那么消影点就是过摄像机中心且方向为
d的射线与图像平面的交点
v:
v=PX∞=k[I∣0](d0)=Kd
由消影点求摄像机旋转:
某摄像机拍了两张图,其中某景物在图一中的消影点是
v,在图二中的消影点是
v′,先得到消影方向
d :
di=∣∣K−1vi∣∣K−1vi
用归一化因子
∣∣K−1vi∣∣来保证单位矢量,通过下式求得
R:
di′=Rdi
由消影点确定直线夹角:
可以确定图像中两条直线间的夹角:
cosθ=∣∣d1∣∣ ∣∣d2∣∣d1⋅d2=v1Twv1
v2Twv2
v1Twv2
其中:
w=(KKT)−1
消影线
消影线是三维空间的平面的概念
π是景物平面,取一个过摄像机中心
C的平行于
π的平面,交图像平面与直线
l,
l就是消影线。
消影线和景物平面的位置无关,和景物平面的法向量
n有关
lhoriz=HP−Tl∞
l∞=[0 0 0 1]T
地面消影线应该也就是地平线吧
有了
lhoriz就能得出平面的法向量:
n=KTlhoriz
只要
l是一个过相机中心的平面上的一条直线,都可以用这个公式来求这个平面的法向量
然后就能计算出两个平面的夹角:
cosθ=∣∣n1∣∣ ∣∣n2∣∣n1⋅n2=l1Twl1
l2Twl2
l1Twl2
用消影点和消影线来确定标定K
现在有单张图片,且有三个消影点,只使用这些信息来求
K:
我们知道这三个平面都是相互正交的,我们可以得到
v1wv2=0。
w是取决于
K的gngy偶,
K有五个自由度,
v1wv2=0能提供一个约束;共有三个正交平面的投影点:
v1wv2=v1wv3=v2wv3=0,这样共提供了三个约束。
如果设定是
zero−skew并且是正方形的像素,那么又能提供两个约束,此时
w的方程变为:
w是一个
3×3矩阵,假设
s=K12=0,且
[wij=w=K−TK−1,那么
w12=w21=0,如果还满足
αx=K11=K22=αy,那么
w11=w22
index从1开始
有了
w之后,就能用Cholesky分解法求出K