视觉SLAM十四讲学习笔记(五)相机模型

一、针孔相机模型

针孔相机模型可用下图表示

视觉SLAM十四讲学习笔记(五)相机模型

其中涉及到相机坐标系、图像坐标系、物理呈像坐标系。经过三角形相似等推导(针孔相机成像平面和三维空间点放在同一侧),可得

视觉SLAM十四讲学习笔记(五)相机模型

视觉SLAM十四讲学习笔记(五)相机模型

其中视觉SLAM十四讲学习笔记(五)相机模型视觉SLAM十四讲学习笔记(五)相机模型,视觉SLAM十四讲学习笔记(五)相机模型视觉SLAM十四讲学习笔记(五)相机模型表示每米有多少像素,单位pixel/m,f为焦距。视觉SLAM十四讲学习笔记(五)相机模型视觉SLAM十四讲学习笔记(五)相机模型表示定义像素坐标系时,原点的像素平移距离。

从上述公式中,在有Z坐标的情况下,也可得到从像素平面到相机坐标系的转换。

一般将点转换为归一化相机坐标系比较方便。

视觉SLAM十四讲学习笔记(五)相机模型

二、镜头畸变

畸变主要分为两种。

1、由镜头自身的形状引起的畸变:径向畸变

主要分为桶形畸变和枕形畸变

视觉SLAM十四讲学习笔记(五)相机模型

2、由镜头和成像平面不可能完全平行造成的畸变:切向畸变

视觉SLAM十四讲学习笔记(五)相机模型

径向畸变矫正:

视觉SLAM十四讲学习笔记(五)相机模型

其中视觉SLAM十四讲学习笔记(五)相机模型是未矫正的点的坐标,视觉SLAM十四讲学习笔记(五)相机模型是矫正之后的点的坐标,他们都定义于归一化坐标平面视觉SLAM十四讲学习笔记(五)相机模型表示点与坐标系原点之间的距离。对于一般镜头,只使用视觉SLAM十四讲学习笔记(五)相机模型视觉SLAM十四讲学习笔记(五)相机模型两个参数就好,对于畸变较大的镜头,应该加入视觉SLAM十四讲学习笔记(五)相机模型.

切向畸变矫正

视觉SLAM十四讲学习笔记(五)相机模型

于是,对于一点转换到像素平面的过程可表示为

  1. 将三维点投影到归一化图像平面,设它的归一化坐标为[x,y]
  2. 对归一化平面上的点进行径向畸变和切向畸变矫正视觉SLAM十四讲学习笔记(五)相机模型
  3. 将矫正后的点通过内参矩阵投影到像素平面,得到改点的正确位置
  4. 视觉SLAM十四讲学习笔记(五)相机模型

在实际使用过程中可灵活选取参数的使用个数。

三、双目相机和深度相机

最简单的双目相机模型可用下图表示

视觉SLAM十四讲学习笔记(五)相机模型

通过三角形相似关系有

视觉SLAM十四讲学习笔记(五)相机模型

视觉SLAM十四讲学习笔记(五)相机模型

其中d称为视差(disparity),最小为1个像素,因此双目测量距离有最大值fb。

深度相机常见有结构光法飞行时间法两种。各有不同的优劣点。

关于双目相机和深度相机更加详细的介绍,可以看下面三篇很详细的博客。

深度相机原理揭秘--双目立体视觉:https://blog.****.net/electech6/article/details/78526800

深度相机原理揭秘--结构光:https://blog.****.net/electech6/article/details/78707839

深度相机原理揭秘--飞行时间:https://blog.****.net/electech6/article/details/78349107

关于各种类型相机优劣对比,可见:https://blog.****.net/qq_37764129/article/details/81011221

四、实践

1、图像的存储方式以及openCV读取图像的方式,比较简单。

2、PCL点云库:根据每张图像对应的pose,将点云显示出来,比较简单易懂。

3、手写图像的去畸变:注意图像坐标的赋值。

4、双目视差:视差图转换为深度图。