【多视图几何】TUM 课程 第3章 透视投影

来源:互联网 发布:网络信息安全书籍 编辑:程序博客网 时间:2024/05/19 01:29

课程的 YouTube 地址为:https://www.youtube.com/playlist?list=PLTBdjV_4f-EJn6udZ34tht9EVIW7lbeo4。视频评论区可以找到课程所使用课件与练习题的下载地址。

第3章介绍了透视投影、相机内参、畸变矫正、原像与余像的概念。

1. 数学表示

1.1 从相似三角形开始

用一张图表示相机成像的光学过程(小孔成像)。

透视投影相似三角形

图中 FlFr 是焦点,焦点即垂直通过透镜的光线的汇集点。

图中蓝色标明的三角形与红色标明的三角形相似:

Yy=Zf

同理在像平面另一个方向 X 轴上也有三角形相似:

Xx=Zf

式子中存在负号是因为成的像是倒像,与原像是中心对称的关系。这样计算很不方便,于是将成像平面从焦点 Fr 的后侧移动到焦点的前侧,并且翻转,于是有:

{x=fXZy=fYZ

翻转之后的成像如下所示:

透视投影翻转成像

总结一下,透视投影是将三维点坐标投影到平面形成二维点坐标:

π:32;Xx=π(X)=fXZfYZ

以上是使用薄透镜时的透视原理,使用厚透镜时光线在透镜内部存在不可忽略不计的折射,需要进行变形纠正。

1.2 矩阵表示

将投影过程在齐次坐标下用矩阵表示:

Zx=Zxy1=f000f0001000XYZ1=KfΠ0X

这里引入了两个新的矩阵 Kf,Π0

Kff000f0001;Π0100010001000

Π0 被称作标准投影矩阵(Standard Projection Matrix),作用是将齐次坐标转化为非齐次坐标。

假设物体离相机很远,其景深 Z 为常数 λ。景深一定是正数,因为相机成像的物体在焦点(上图中的 Fl)之前,所以有 λ>0。我们得到投影过程的简洁形式:

λx=KfΠ0X

其中 x 是相机投影平面坐标(单位m),X 是三维点在相机坐标系中的坐标。

1.3 从世界坐标系到相机投影平面

上式中的 X 是相机坐标系坐标,将相机的位姿加入考虑范围,求世界坐标系坐标到相机投影平面坐标系的坐标。

由上一章的内容可知,相机当前坐标系坐标与世界坐标系坐标之间的转换关系如下:

X=gX0=[R0T1]X0

所以从世界坐标系坐标到相机投影平面坐标系坐标的转换关系为

λx=KfΠ0gX0

还可以做进一步的简化,如果将相机投影平面坐标系的单位长度设置为焦距 f,那么 Kf 为单位阵,公式可化简为

λx=Π0gX0

2. 相机内参

上面的公式推导是世界坐标系坐标转化为相机投影平面坐标系坐标,相机投影平面坐标系坐标的单位是 m,但使用相机拍摄的影像时我们读取的是像素坐标,所以还需要进一步的坐标转换。进一步的坐标转换如下:

λxy1=sx00sθsy0oxoy1f000f0001100010001000XYZ1

这里引入了新的矩阵 Ks

Kssx00sθsy0oxoy1

矩阵 Ks 中各个参数的解释如下:

  1. ox,oy 相机相主点在相机投影平面坐标系下的像素坐标,单位为 pixel;
  2. sx(sy)x(y) 方向上单位长度包含的像素个数,单位为 pixel / m;
  3. sθ 在像素形状为矩形时值为0,像素形状为平行四边形时值不为0,一般像素形状都为矩形,该值为0。

定义相机内参矩阵为

KKsKf=fsx00fsθfsy0oxoy1

K 代入上面的公式

λx=KΠ0X=KΠ0gX0ΠX0

这里定义了一个新的矩阵 ΠKΠ0g=[KRKT] ,称作一般投影矩阵(General Projection Matrix),可将世界坐标转化为像素坐标。

3. 球面投影

小孔相机的透视模型是将影像投影在平面上,同样的影像也可以投影在球面上。

将影像投影到单位球面

0 0
原创粉丝点击