窥探PTAM之基础知识准备

来源:互联网 发布:深圳善达网络怎么样 编辑:程序博客网 时间:2024/06/06 00:42

2.线性针孔摄像机模型与标定

2.1照相机模型

照相机模型是照相机标定的基础和核心,只有确定了成像的模型,才能进一步的确定出照相机的内外参数。成像模型是三维空间中的物体到像平面的投影。理想的投影成像模型是在光学中心的投影,因此也被称为是针孔模型或者是线性摄相机模型。针孔模型假设物体的表面反射光均会经过一个小孔,然后投影到像平面上,这符合光的直线传播原理。针孔模型是由光心、光轴以及成像平面组成的。由于针孔比较小,成像的透光量不足,所以需长时间曝光,并且得到的图像并不十分清晰。实际的摄像系统通常是由透镜或透镜组成。这两个模型有着相同的成像关系,像点是图像平面和光心连线的交点。因此,可以用针孔模型作为照相机成像的模型。
针孔摄像机模型
如图所示,在计算机图形学和渲染引擎中,照相机模型主要由3个矩阵组成:模型矩阵,视图矩阵和投影矩阵。在计算机视觉中,还需要应用相机内参,把图像经过映射变换到图像平面。需要注意PTAM中跟踪线程和Mapping线程使用的线性照相机模型的投影矩阵是正交投影的方式。也就是点投影到图像坐标系的位置和摄像机坐标系下投影到z=1平面的位置是一样的。而得到结果后,把结果渲染到屏幕上时则使用透视投影的方式,这样的投影结果复合人眼观测时近大远小的效果。

为了映射地图上的点到图像上,首先我们把这些点从世界坐标系变换到以摄像机中心为中心点的摄像机坐标系,此时的摄像机的世界坐标位置由运动先验模型估计而来。通过左乘一个4x4矩阵完成这个变化。

pjC=Ecwpjw

矩阵ECW包含一个旋转和一个平移分量,它是一个SE3 类型变量。
摄像头畸变与标定
摄像头由于光学透镜的特性使得成像存在着径向畸变,可由三个参数k1,k2,k3确定。由于装配方面的误差,传感器与光学镜头之间并非完全平行,因此成像存在切向畸变,可由两个参数p1,p2确定。单个摄像头的定标主要是计算出摄像头的内参。焦距f和成像原点cx,cy、五个畸变参数。一般只需要计算出k1,k2,p1,p2,对于鱼眼镜头等径向畸变特别大的才需要计算k3。以及外参。为了投影当前点到图像,我们使用一个已矫正的摄像机模型:
(uivi)=CamProj(ECWpiW)

采用针孔摄像机的投影方法,它可以描述摄像机的镜头畸变。假设camera参数是已知的:fufv代表焦距,u0v0代表光心,w表示曲变系数(在我们的简单模型中先设为1)。
可以得出CamProj函数表达式:
(uv)=CamProjxcyczc1=(u0v0)+[fu00fv]xczcyczc

摄像机姿态的变化可以等价于给视图矩阵左乘一个运动矩阵M:
ECW=MECW=exp(μ)ECW

M和Ecw一样,是有6个自由度的4x4矩阵,可以最小参数化表示,通过exp函数转换为一个六维向量保存。通常前3个为位移,后三个代表绕x,y,z轴旋转的量化。在后续应用中,要完成跟踪,一个基本条件就是对式(2)的姿态的变化ECW求微分。对矩阵求导等于对矩阵中的元素分别求导,以u为例:
u=CamProj(xyz1)求微分得

Δu=λzcΔx+xcΔzz2λ=fu

同理计算Δvc,整理可得

[ΔuΔv]=F{1zc[ΔxΔy]Δzz2c[xy]}

F为焦距矩阵[fu0 0fv]ΔxΔyΔz分别为运动微分motion的x,y,z部分,下标c表示该点用摄像机坐标系表示时的位置。

2.2准备跟踪

下一章将解析跟踪线程的流程。但实际工作中,构建线程是同时工作的。在跟踪之前已经完成了构建地图的初始化工作。此时我们至少有以下数据进行跟踪:

  • 每个点的世界坐标系位置(mm)。
  • 第一次观测到该点的帧的ID索引。称这个关键帧为该点的源帧。
  • 该点在帧图像中的位置(像素),记为rootPos(u,v)。
  • rootPos的右边像素(u+1,v)和下一像素(u,v+1)在平面P中的投影。平面P在下一节定义。
  • 每一关键帧的视图矩阵。
  • 每一关键帧观测到的点的索引集合。
  • 每个关键帧的灰度图像金字塔,每个四层。

实际上,保存这些数据就想当于保存地图,下次启动时可以直接加载地图免去初始化工作,直接开始跟踪。我们可以保存除这些数据外更多的中间变量免去加载地图后的部分计算。

0 0