资讯详情

SLAM基础:相机与图像

点击上方“”,选择加""或“

重磅干货,第一时间送达ab6e858222000bff8544f238520f6c08.png

来自 | 知乎

链接丨https://zhuanlan.zhihu.com/p/33583981

本文仅进行学术交流。如有侵权行为,请联系后台删除。

相机照片是将三维世界中的一个三维点映射到相应的二维图像平面上的过程。这个过程可以用几何模型来描述。在各种模型中,最简单和最常用的是针孔相机模型,也被称为针孔模型。该模型相对简单,由于相机镜头上的镜头,在成像过程中会发生畸变。因此,有必要建模另一个畸变。

初中物理中会有一个小孔成像实验,可以看作是针孔相机模型的基础。

来自高博的《视觉》slam十四讲》

如上图所示,相机坐标系为O-x-y-z,想象一站在相机后面,O 为相机光心,z轴向相机前方,x 轴向右而y 轴向下。现实世界中的一个点P,经过小孔O 投影后,落在物理成像平面O'-x'-y' (又称平面坐标系),称为像点P'。

假设P在相机坐标系下的坐标是[X, Y, Z]T,P' 为[X', Y', Z']T,焦距为f。根据相似的三角形:

其中,负号表示倒立。

习惯上,将成像平面对称到相机前面,然后整理上面的公式:

至此,我们描述了一点P 它的图像之间的空间关系。在数码相机中,我们最终得到的是由像素组成的数字图像,需要在成像平面上采样和量化。这里不介绍两者。

在物理成像平面上定义一个像素坐标系o'-u-v。想象一个人站在相机后面的原点o' 位于图像的左上角,u轴向右和x 轴平行,v 轴向下和y 轴平行。假设P' 像素坐标是[u, v]T。像素坐标系和物理成像平面O'-x'-y' 缩放和平移之间的差异。因此,假设像素坐标在u轴上缩放 倍,在v 轴上缩放 倍。同事之间的平移量是[cx, cy]T。那么,P' 物理成像平面下的坐标与像素坐标的关系如下:

将式(2) 代入并把合并成,把合并成(这也是x 轴上的焦距和y 可得:

上面的公式是相机坐标系下的三维坐标,从相应的像素坐标到转换关系。f 单位为米,像素/米是单位。

可以用齐次坐标将上市写成矩阵形式:

上式中,K它被称为相机矩阵或内部参数矩阵,因为它包含相机参数。一般来说,习惯于使用Z 把它放在左边,计算结果,除以它的第三个值来获得像素坐标。通常认为相机矩阵是固定的,出厂后由制造商给出。如果没有,您可以校准相机以获得相机的内部参考。

到目前为止,我们还没有涉及到相机的位置T,因为我们一直在相机坐标系下。相机的位置描述了相机在世界坐标系下的位置和姿势,也给出了从世界坐标系到相机坐标系的变化关系。例如,对于一组照片,如果第一张照片对应的相机坐标系是世界坐标系,则相应的相机位置为旋转矩阵,平移向量为0。其他照片对应的相机位置是从世界坐标系到相机坐标系的变换关系。

因为相机在运动,所以点P 相机坐标应记为其世界坐标Pw,将相机当前位置转换为相机坐标系的结果。

上式采用齐次坐标,并包从齐次坐标到非齐次坐标的变换。R,t或着T表示相机的外部参数,它会随着相机的运动而改变,也就是说SLAM 待估计的目标表示机器人的轨迹。最后,上面的T为Tcw,从世界坐标系到相机坐标系的变坐标系Twc。

注意齐次坐标乘上一个非零常数后,表示同一点,因此上市左侧可以使用Z 去掉。

正如我们前面提到的,这个公式包括从齐次坐标到非齐次坐标的转换。因为右边TPw这是一个4D向量。将其除以最后一维,并取前三维,以获得相机坐标系下的三维坐标。对于这个三维向量,可以通过齐次坐标将其最后一维集成,获得P 在相机归一化平面上的投影:

此时,Pc可视为二维齐次坐标,称为归一化坐标。它可以被视为位于相机前面z = 1 平面称为归一化平面。Pc 相机内参后得到像素坐标,可以使用像素坐标[u, v]T 被视为量化测量归一化平面上的点的结果。

来自高博的《视觉》slam十四讲》

本节介绍了相机模型与各坐标系的转换关系。它涉及世界坐标系、相机坐标系、一体化坐标系,如平面坐标系和像素坐标系。注意两者之间的差异和转换关系。

畸变

为了获得良好的成像效果,通常在相机前添加各种镜头。这将对光线的传播产生新的影响:

  • 透镜本身对光传播的影响;

  • 由于机械组装中的误差,透镜和称像平面不完全平行。

第一个原因是径向畸变。因为在实际加工过程中,透镜通常是中心对称的,这使得这种畸变通常是径向对称的。主要分为桶形畸变和枕形畸变两类。

来自高博的《视觉》slam十四讲》

可以看出,桶形畸变是由于图像的放大率随着光轴之间距离的增加而减小的;枕形畸变则相反。它们是径向畸变,因此通过图像中心和光轴的直线可以保持形状不变。

第二个原因引入的畸变称为切向畸变,没有对称性。

前面说过,假设某一点P的归一化是指[x, y]T。也可以用极坐标来表示,写作. 径向畸变可视为坐标点沿长度方向的变化,也就是其距离原点的长度发生了变化;切向畸变可以看成是坐标点沿着切线方向发生了变化,也就是水平夹角变化了。

对于径向畸变,可以用多项函数来描述畸变前后的坐标变化:

在上述类型中,对于小畸变图像中心区域,畸变矫正主要是k1 作用;对于畸变较大的边缘区域,主要是k2 工作。适当的校正系数可根据所用镜头使用。

另外两个参数可用于切向畸变p1, p2 纠正:

结合以上两个公式,相机坐标系中的一点P [X, Y, Z],可以描述为:

  1. 将三维空间点投影到归一化图像平面。将其归一化坐标设置为[x, y]T;

  2. 畸变矫正:

  3. 通过相机的内部参数,使用纠正点的像素坐标:

针孔相机模型描述了单个相机的成像过程。但只有一张照片不足以确定相应空间点的具体位置。考虑相机光心O 和像点p,两者之间的连接是物方空间的射线,这种射线上的所有点都可能投射到这个像点上。只有在确定P的深度时,才能确定其空间位置。

确定深度的方法有很多。人眼是一种典型的双眼相机模型:通过左右眼景物的差异(称为视差)来判断物体与我们之间的距离。使用双眼相机收集左右相机的图像,计算图像之间的时差,以估计每个像素的深度。

双目相机一般由左右相机组成,可视为针孔相机。左右相机之间的距离称为基线(一般严格平行,距离固定)。

考虑一个空间点P,它在左右相机上的像点分别是Pl, Pr。理想情况下,这两个图像的位置差异只出现在x 轴上(因为左右相机严格平行,只有x 轴上有差异)。记住左右像点x 轴上的像素坐标分别为uL, uR。类似的三角形如下图所示:

来自高博的《视觉》slam十四讲》

设是左右像点的横坐标差,即视差。根据上市情况:

可见视差与距离成反比。时差越大,距离越近。此外,基线d 确定双目相机能确定的最大深度值。基线越长,测量距离越远。

RGB-D 相机模型

RGB-D 相机可以主动测量每个像素的深度。RGB-D 相机按原理可分为两类:

  1. 红外结构光测量像素深度,如Knect 1;

  2. 通过飞行时间 (time-of-flight) 来测量像素深度,如Kinect 2.

测量了深度后,RGB-D 相机通常按照(生产时就确定好的)相机摆放位置,自动完成深度图和彩色图之间的配对工作,输出一一对应的彩色图和深度图。如此,我们就可以在两张影像上的同一个像素位置读取到色彩信息和深度信息,计算像素的三维坐标。

图像

在计算机中,图像是一个二维数组/ 矩阵。以最简单的灰度图为例,每个像素位置(x, y) 对应一个灰度值I。则一个宽为w 高为h 的图像可以表示为:

由于存储空间和数值精度的限制,我们无法表达出所有色彩。常用0 - 255 的整数(即一个字节)来表达图像的灰度强度。则一张宽640 高480 像素分辨率的灰度图就表示为:

unsigned char image[480][640]

注意到高度为图像的行数而宽度则为列数。而计算机中第一个下标为数组的行,第二个下标为数组的列。表示为:

盗图一张,来自高博的《视觉slam十四讲》

注意到这里y 轴是行而x 轴是列。所以如果我们想访问像素坐标为 (x, y) 的像素,则应写为:

unsigned char pixel = image[y][x]

请读者注意这里x 和y 的顺序。这是很多程序错误的原因。

彩色图像由于在一个位置上同时有RGB 分别对应的像素强度,所以引入了通道 (channel) 的概念。对于每一个像素,用三个通道分别保留其R、G、B 上的像素值。和灰度图一样,每个通道一般也是一个字节(8位),彩色图的一个像素需要24 位存储空间。

对于RGB-D 相机产生的深度图,距离单位一般为毫米,8 位存储空间只能表示0.255 米,显然是不够的。一般采用16位整数来记录深度图的信息。16位整数能表示0 - 65535 之间的数值,最大值大概为65米。从这里我们也可以看出,RGB-D 相机不能表示大范围的距离信息。

在「」公众号后台回复:即可下载全网第一份OpenCV扩展模块教程中文版,涵盖等二十多章内容。

在「」公众号后台回复:即可下载包括等31个视觉实战项目,助力快速学校计算机视觉。

在「」公众号后台回复:即可下载含有个基于实现20个,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。在群内发送广告,否则会请出群,谢谢理解~

标签: 自动化口罩机传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台