Machine Vision Technology:Lecture11 Camera Model

Machine Vision Technology:Lecture11 Camera Model

计算机视觉(本科) 北京邮电大学 鲁鹏


针孔模型 & 透镜

  • 1.将物体放在胶片前面,物体的每个点都会打在胶片上。

在这里插入图片描述

  • 2.添加屏障,减少模糊。这样物体的每个点对应胶片中的对应点。

在这里插入图片描述


针孔摄像机:
在这里插入图片描述

  • f f f = 焦距。
  • o o o = 光圈 = 针孔 = 摄像机中心。

在这里插入图片描述

下面我们需要将摄像机坐标系上的点转换为像平面坐标系上的点:

i i i j j j k k k 轴表示 x x x y y y z z z

i i i 轴向里看去:

在这里插入图片描述

同理从 j j j 轴向下看去也有类似公式,这样便有:
P = [ x y z ] → P ′ = [ x ′ y ′ ] P = \begin{bmatrix} x \\ y \\ z \\ \end{bmatrix} \rightarrow P' = \begin{bmatrix} x' \\ y' \\ \end{bmatrix} P= xyz P=[xy]
其中:
{ x ′ = f x z y ′ = f y z \left\{ \begin{aligned} x' & = f \frac{x}{z}\\ y' & = f \frac{y}{z}\\ \end{aligned} \right. xy=fzx=fzy


下面我们讨论光圈尺寸对成像影响:

在这里插入图片描述

随着光圈的缩小,成像效果:越来越清晰、越来越暗

在这里插入图片描述

如何应对到达胶片的光线变少?这便有了下面的透镜。


  • 透镜将多条光线聚焦到胶片上,增加了照片的亮度

在这里插入图片描述

  • 透镜将光线聚焦到胶片上:
    • 所有平行于光轴的光线都会会聚到焦点,焦点到透镜中心的距离称为焦距。
    • 穿过中心的光线的方向不发生改变。

在这里插入图片描述

近轴折射模型:

在这里插入图片描述

由折射定律: f = R 2 ( n − 1 ) f = \frac{R}{2(n-1)} f=2(n1)R 。其中 R R R 为透镜球面半径, n n n 为透镜折射系数。

由上面的针孔模型可知:
{ x ′ = z ′ x z y ′ = z ′ y z \left\{ \begin{aligned} x' & = z' \frac{x}{z}\\ y' & = z' \frac{y}{z}\\ \end{aligned} \right. xy=zzx=zzy
其中 z ′ = f + z o z' = f + z_o z=f+zo


透镜问题:失焦

在这里插入图片描述

透镜将光线聚焦到胶片上,物体“聚焦”有特定距离,这便有了景深现象。

在这里插入图片描述


透镜问题: 径向畸变 透镜工艺问题。

  • 径向畸变:图像像素点以畸变中心为中心点,沿着径向产生的位置偏差,从而导致图像中所成的像发生形变

在这里插入图片描述

例子:

在这里插入图片描述

产生原因:光线在远离透镜中心的地方比靠近中心的地方更加弯曲

摄像机几何

从像平面到像素平面:

在这里插入图片描述

  • 1.偏置。

我们从针孔/透镜模型中得到了摄像机坐标系转换到像平面坐标系的公式,但真实的像素坐标系的坐标原点在左下角,因此还需要加个偏移,将像平面坐标转换为像素坐标。

在这里插入图片描述

  • 2.单位变换。

像坐标中的x和y是长度单位(米m)还需要转化为像素单位(pixel)。

乘以转换系数 k k k l l l ,其单位为 p i x e l / m pixel/m pixel/m

在这里插入图片描述

这便有了从 P P P P ′ P' P 的转换公式。
P = ( x , y , z ) → P ′ = ( α x z + c x , β y z + c y ) P=(x,y,z) \rightarrow P'=(\alpha \frac{x}{z} + c_x,\beta\frac{y}{z} + c_y) P=(x,y,z)P=(αzx+cx,βzy+cy)
P P P P ′ P' P 的变换不是线性的。我们使用下面的方法进行线性转换。


欧式空间与齐次坐标:

在欧式空间(笛卡尔空间)中,使用坐标描述2D/3D几何非常合适,例如2维欧式空间中的点表示为(x , y),3维空间中点表示为(x , y , z)。但是这种方法不适用于透视空间,当一个点位于无穷远处时,该点的欧氏空间坐标中会出现 ∞ \infty ,这显然不合适,而使用齐次坐标能够很好的解决此问题。

齐次坐标就是在欧氏空间表示的基础上增加一个额外的变量w来表示原本的坐标 ( X , Y ) (X,Y) (X,Y),并同时需要令 x = X × w x = X \times w x=X×w y = Y × w y = Y \times w y=Y×w ,最终得到齐次坐标 ( x , y , w ) (x, y, w) (x,y,w) w w w 为非0变量,只有点在无穷远处时才等于0。

当点在二维空间的无穷远处时,它的笛卡尔坐标系为 ( ∞ , ∞ ) (\infty,\infty) (,) ,但是在齐次坐标系中令 w = 0 w = 0 w=0 就能表示它在无穷处了,而不必使用 ∞ \infty 来表示。因此将点 ( X , Y ) (X,Y) (X,Y) 移动到无穷远时,可以直接使用齐次坐标 ( X , Y , 0 ) (X,Y,0) (X,Y,0) 来表示。

笛卡尔坐标与齐次坐标是一对多的关系,齐次坐标族 ( a X , a Y , a ) (aX,aY,a) (aX,aY,a) ( b X , b Y , b ) (bX,bY,b) (bX,bY,b) 等都表示笛卡尔坐标 ( X , Y ) (X,Y) (X,Y)

普通坐标(Ordinary Coordinate)和齐次坐标(Homogeneous Coordinate)之间进行转换:

  • 从普通坐标转换成齐次坐标时
    • 如果 ( x , y , z ) (x,y,z) (x,y,z) 是个点,则变为 ( x , y , z , 1 ) (x,y,z,1) (x,y,z,1);
    • 如果 ( x , y , z ) (x,y,z) (x,y,z) 是个向量,则变为 ( x , y , z , 0 ) (x,y,z,0) (x,y,z,0)
  • 从齐次坐标转换成普通坐标时
    • 如果是 ( x , y , z , 1 ) (x,y,z,1) (x,y,z,1) ,则知道它是个点,变成 ( x , y , z ) (x,y,z) (x,y,z) ;
    • 如果是 ( x , y , z , w ) (x,y,z,w) (x,y,z,w) ,则变为 ( x w , y w , z w ) (\frac{x}{w}, \frac{y}{w},\frac{z}{w}) (wx,wy,wz);
    • 如果是 ( x , y , z , 0 ) (x,y,z,0) (x,y,z,0) ,则知道它是个向量,仍然变成 ( x , y , z ) (x,y,z) (x,y,z)

在这里插入图片描述

  • 齐次坐标中的投影变换:

将欧式坐标 P ′ = ( α x z + c x , β y z + c y ) P'=(\alpha \frac{x}{z} + c_x,\beta\frac{y}{z} + c_y) P=(αzx+cx,βzy+cy) 转换为齐次坐标 P h ′ P'_h Ph

P h ′ = [ α x + c x z β y + c y z z ] = [ α 0 c x 0 0 β c y 0 0 0 1 0 ] [ x y z 1 ] = M P P'_h = \begin{bmatrix} \alpha x + c_x z \\ \beta y + c_y z \\ z \end{bmatrix} = \begin{bmatrix} \alpha & 0 & c_x & 0 \\ 0 & \beta & c_y & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} = MP Ph= αx+cxzβy+cyzz = α000β0cxcy1000 xyz1 =MP

其中 P h = [ x y z 1 ] P_h = \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} Ph= xyz1 ,也就是 P P P 的齐次坐标。

  • 摄像机偏斜。带畸变的 M M M 矩阵:

M = [ α − α c o t θ c x 0 0 β s i n θ c y 0 0 0 1 0 ] M = \begin{bmatrix} \alpha & -\alpha cot \theta & c_x & 0 \\ 0 & \frac{\beta}{sin\theta} & c_y & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} M= α00αcosinθβ0cxcy1000

在这里插入图片描述


摄像机坐标下的摄像机模型:
P ′ = [ α − α c o t θ c x 0 0 β s i n θ c y 0 0 0 1 0 ] [ x y z 1 ] = M P = K [ I 0 ] P' = \begin{bmatrix} \alpha & -\alpha cot \theta & c_x & 0 \\ 0 & \frac{\beta}{sin\theta} & c_y & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} = MP = K \begin{bmatrix} I & 0 \end{bmatrix} P= α00αcosinθβ0cxcy1000 xyz1 =MP=K[I0]
其中 M M M投影矩阵
K = [ α − α c o t θ c x 0 β s i n θ c y 0 0 1 ] K = \begin{bmatrix} \alpha & -\alpha cot \theta & c_x\\ 0 & \frac{\beta}{sin\theta} & c_y\\ 0 & 0 & 1 \end{bmatrix} K= α00αcosinθβ0cxcy1
K K K摄像机内参数矩阵。内参数决定了摄像机坐标系下空间点到图像点的映射。

K K K 有5个自由度: α \alpha α β \beta β θ \theta θ c x c_x cx c y c_y cy


规范化投影变换:

上面得到的 P ′ = [ x y z ] P' = \begin{bmatrix} x \\ y \\ z \end{bmatrix} P= xyz 是齐次坐标( P ′ P' P 是三行一列),需要转换为欧式坐标为 [ x z y z ] \begin{bmatrix} \frac{x}{z} \\ \frac{y}{z} \end{bmatrix} [zxzy]


引入世界坐标系:

  • 摄像机坐标系描述三维物体的空间信息是否方便?
  • 如何将物体从世界坐标系转到摄像机坐标系?

在这里插入图片描述

引入 R R R T T T 矩阵,可以将世界坐标系 P w P_w Pw 转换为摄像机坐标系 P P P
P = [ R T 0 1 ] P w = [ R T 0 1 ] [ x w y w z w 1 ] P = \begin{bmatrix} R & T \\ 0 & 1 \end{bmatrix} P_w = \begin{bmatrix} R & T \\ 0 & 1 \end{bmatrix} \begin{bmatrix} x_w \\ y_w \\ z_w \\ 1 \end{bmatrix} P=[R0T1]Pw=[R0T1] xwywzw1

有了摄像机坐标系 P P P,便通过上面推导转换为像素坐标系:
P ′ = K [ I 0 ] P = K [ I 0 ] [ R T 0 1 ] P w = K [ R T ] P w P' = K \begin{bmatrix} I & 0 \end{bmatrix} P = K \begin{bmatrix} I & 0 \end{bmatrix} \begin{bmatrix} R & T \\ 0 & 1 \end{bmatrix} P_w = K \begin{bmatrix} R & T \end{bmatrix} P_w P=K[I0]P=K[I0][R0T1]Pw=K[RT]Pw
其中 [ R T ] \begin{bmatrix} R & T \end{bmatrix} [RT] 被称为外参数矩阵, K K K 为内参数矩阵。
M = K [ R T ] M = K \begin{bmatrix} R & T \end{bmatrix} M=K[RT]
M M M 为投影矩阵。

注意维度:
P 3 × 1 ′ = M P w = K 3 × 3 [ R T ] 3 × 4 P w 4 × 1 P'_{3\times1} = MP_w = K_{3\times3} \begin{bmatrix} R & T \end{bmatrix}_{3\times4} {P_w}_{4\times1} P3×1=MPw=K3×3[RT]3×4Pw4×1
M = [ m 1 m 2 m 3 ] M = \begin{bmatrix} m_1 \\ m_2 \\ m_3 \end{bmatrix} M= m1m2m3 ,其中 m i m_i mi 为一行4列。
P ′ = M P w = [ m 1 P w m 2 P w m 3 P w ] P' = MP_w = \begin{bmatrix} m_1P_w \\ m_2P_w \\ m_3P_w \end{bmatrix} P=MPw= m1Pwm2Pwm3Pw
转换为欧式空间(像素坐标): ( m 1 P w m 3 P w , m 2 P w m 3 P w ) (\frac{m_1P_w}{m_3P_w},\frac{m_2P_w}{m_3P_w}) (m3Pwm1Pw,m3Pwm2Pw)

这便是完整的摄像机模型(透视投影摄像机).

其他摄像机模型

当相对场景深度小于其与相机的距离时:弱透视投影摄像机:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述


各种摄像机模型的应用场合:

  • 正交投影
    • 更多应用在建筑设计(AUTOCAD)或者工业设计行业
  • 弱透视投影在数学方面更简单
    • 当物体较小且较远时准确,常用于图像识别任务
  • 透视投影对于3D到2D映射的建模更为准确
    • 用于运动恢复结构或SLAM
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

shlyyy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值