计算机视觉中的多视图几何 -- 有限射影摄像机模型

有限摄像机模型

摄像机是将三维世界中的点映射到二维世界的一种传感器,在齐次坐标坐标下,它可以表示为矩阵形式:秩为3的3x4矩阵。
本篇先从最简单的针孔摄像机模型开始,逐步将该模型一般化,得到带有一定约束的摄像机矩阵(左边3x3的子矩阵非奇异)-- 有限摄像机模型。
在下一篇则是将这个非奇异约束去除,得到更一般的摄像机矩阵 – 一般射影摄像机模型。


三个基本坐标系

摄像机模型可以理解为在三个基本坐标系之间的变换,所以先介绍三个基本坐标系。

  • 世界坐标系
    物体在真实世界中的坐标,可以自己选择位置。

  • 相机坐标系
    以相机光心为原点的坐标系。

  • 图像坐标系
    图像平面所在的坐标系。


基本针孔模型

考虑空间点到平面的投影,投影中心位于原点,图像平面为 Z = f Z=f Z=f,即中心投影模型,如下图所示:
img
那么根据相似三角形可以很快算出,点 ( X , Y , Z ) T (X,Y,Z)^T (X,Y,Z)T被投影到 ( f X / Z , f X / Y ) T (fX/Z,fX/Y)^T (fX/Z,fX/Y)T
在这个投影模型下,投影中心称为光心,光心到图像平面的垂线称为主轴,交图像平面于主点,过相机中心且平行于图像平面的称为摄像机的主平面。其他的更复杂的模型延续这几个基本概念的定义。
上述投影在数学上用齐次坐标坐标表示如下:
[ f X f Y Z ] = d i a g ( f , f , 1 ) [ I ∣ 0 ] [ X Y Z 1 ] \left[ \begin{matrix} fX \\ fY \\ Z \end{matrix} \right]= diag(f,f,1)\left[ I|0 \right] \left[ \begin{matrix} X \\ Y\\ Z \\ 1 \end{matrix} \right] fXfYZ=diag(f,f,1)[I0]XYZ1
现在,我们将投影过程写为: x = P X x=PX x=PX,其中P为3x4的摄像机矩阵,则以上中心投影模型的摄像机矩阵为: P = d i a g ( f , f , 1 ) [ I ∣ 0 ] P = diag(f,f,1)\left[I|0 \right] P=diag(f,f,1)[I0]


加入主点偏置

事实上,主点可能不在图像平面的原点,而是在 ( p x , p y ) (p_x,p_y) (px,py)处,此时投影如下:
( X , Y , Z ) T → ( f X / Z + p x , f X / Y + p y ) T (X,Y,Z)^T \to (fX/Z+p_x,fX/Y+p_y)^T (X,Y,Z)T(fX/Z+px,fX/Y+py)T
若记
K = [ f 0 p x 0 f p y 0 0 1 ] K= \left[ \begin{matrix} f & 0 & p_x \\ 0 & f & p_y\\ 0 & 0 & 1 \end{matrix} \right] K=f000f0pxpy1
img
则此时的摄像机矩阵可以写为:
x = K [ I ∣ 0 ] X x = K \left[ I|0 \right] X x=K[I0]X
矩阵K称为摄像机标定矩阵,此时默认摄像机坐标系与世界坐标系重合。


加入摄像机的旋转和平移

因为在上述简化模型中,投影的过程是将摄像机坐标系下的点投影到图像坐标系的过程,而当点是由世界坐标系坐标表示时,就需要先将其转化到摄像机坐标系下,这个过程是坐标系之间的变换,由旋转和平移矩阵连接。
img

X c a m = [ R − R C ^ 0 T 1 ] [ X Y Z 1 ] X_{cam} = \left[ \begin{matrix} R & -R \hat{C} \\ 0^T & 1 \end{matrix} \right] \left[ \begin{matrix} X \\ Y \\ Z \\ 1 \end{matrix} \right] Xcam=[R0TRC^1]XYZ1
其中 C ^ \hat{C} C^是相机中心在世界坐标系下的坐标,R是一个表示世界坐标系中,摄像机坐标系方向的旋转矩阵。
与投影模型结合后,一种简洁的形式写作: x = K R [ I ∣ C ^ ] X x = KR\left[I| \hat{C} \right]X x=KR[IC^]X,这是针孔模型下的一般映射,K称为内参矩阵,有三个自由度:焦距与主点坐标(x,y),而R, C ^ \hat{C} C^是与摄像机位置相关的参数,称为摄像机外参。
方便起见,通常不显式写出摄像机中心的位置,而是用平移矩阵代替,是世界坐标的点到相机坐标系下的点: X c a m = R X + t X_{cam} = R X + t Xcam=RX+t,此时摄像机矩阵写为: P = K [ R ∣ t ] P = K\left[ R | t \right] P=K[Rt]


推广到CCD摄像机

CCD相机与上述模型的区别在于其像素单元可能不是正方形的,也就是说,它在x方向和y方向的焦距是不同的,我们考虑其内参矩阵:
K = [ f x s p x 0 f y p y 0 0 1 ] K = \left[ \begin{matrix} f_x & s & p_x \\ 0 & f_y & p_y \\ 0 & 0 & 1 \end{matrix} \right] K=fx00sfy0pxpy1
其中,s是扭曲参数,大多数情况下取0,有时有特殊作用。
至此,我们得到了本篇讨论的摄像机矩阵的最终形态: P = K [ R ∣ t ] P = K\left[ R | t \right] P=K[Rt]
注意到,此时对于P的唯一约束是其左边3x3的矩阵是非奇异的,有限射影摄像机的摄像机矩阵的集合等于左边3x3的子矩阵为非奇异的3x4齐次矩阵构成的集合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值