新学期第一天开始写的这篇文章,看看我啥时候能把他发出去。假期当然是啥也没干了,之前还信誓旦旦说回家一定能学习,学个毛线。开始学习啦,去年年末把环境配置好了之后,实验发现他不准,用的D435i摄像头是红外的,在水里误差太大,所以最终目地的话就是要给他整准,这脑子一天天啥也不记得,真想去测一个记忆力,看看是不是有问题...首先的话学习一下基础的摄像头的成像原理~
双目立体视觉深度相机的深度测量过程,如下:
1、标定:首先需要对双目相机进行标定,得到两个相机的内外参数、单应矩阵。
2)校正:根据标定结果对原始图像校正,校正后的两张图像位于同一平面且互相平行。
3)找像素点:对校正后的两张图像进行像素点匹配。
4)深度:根据匹配结果计算每个像素的深度,从而获得深度图。
目录
一、理想双目相机成像模型
二、相机成像原理
2.1世界坐标系和相机坐标系之间的转换(刚体变换:物体不会发生形变,只需要进行旋转和平移)
2.2相机坐标系(Oc)与图像坐标系(Ox-y)之间的转换(透视投影:从3D转换到2D)
2.3图像坐标系(Ox-y)与像素坐标系(Ou-v)(仿射变换)
三、总结一下下
一、理想双目相机成像模型
c1、c2是左右两个双目相机(位置对齐)。相机焦距f,相机之间距离为b,右上角为目标位置P(x,y),目标的水平坐标为x,相机离目标垂直距离(所求目标距离相机的深度)为z。
如果要计算深度z,必须要知道:
(1)相机焦距f,左右相机之间距离b。这些参数可以通过先验信息或者相机标定得到。
(2)视差d。需要知道左相机的每个像素点(xl, yl)和右相机中对应点(xr, yr)的对应关系。这是双目视觉的核心问题。
二、相机成像原理
想标定得先成像,所以先来搞清楚相机是如何成像滴
相机成像系统中,共包含四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。
世界坐标系:描述目标物体在真实世界的位置而引入的三维世界坐标系。
相机坐标系:以相机为中心,从相机角度描述物体位置,作为像素坐标系—世界坐标系的桥梁。
图像坐标系:描述真实物体在相机焦距处成像的坐标系,用来连接相机坐标系与像素坐标系。
像素坐标系:描述物体在照片上数字图像的位置而引入的一种数字坐标系。
从一个坐标系到另一个坐标系,物体之间的坐标系变换都可以表示坐标系的旋转变换加上平移变换。
为啥向上面那样写呢:以绕Z轴旋转为例
如下图,绕Z转,Z不变,我们把三维转为二维,根据几何关系就可以得到,其他两个也一样。
原理知道了以后,我们看这四个坐标系如何变换,由现实中的物体最后在图像中成像
世界坐标系相机坐标系图像坐标系像素坐标系
2.1世界坐标系和相机坐标系之间的转换(刚体变换:物体不会发生形变,只需要进行旋转和平移)
如下图,R表示旋转矩阵,T表示偏移变量
2.2相机坐标系(Oc)与图像坐标系(Ox-y)之间的转换(透视投影:从3D转换到2D)
说白了就是用,,来表示x,y,下图为理想的图像坐标系,实际会产生畸变,需要矫正。
2.3图像坐标系(Ox-y)与像素坐标系(Ou-v)(仿射变换)
像素坐标系和图像坐标系都在成像平面上,但是原点所在位置不同,单位不同。图像坐标系的原点为相机光轴与成像平面的交点(上图点o),通常情况下是成像平面的中点,图像坐标系的单位是mm,而像素坐标系的原点在图像左上角(本文第三张图上有画),单位是pixel。
2.3.1两坐标轴都为直角坐标系(uv垂直)
图像上的每点坐标 (u,v) 分别表示每一帧采集的图像在系统中的存储的数组的列数与行数,坐标 (u,v) 所对应的值就是该点的灰度信息。设点o在图像像素坐标系中记为 (u0,v0) ,每个像素沿 x 轴的实际物理尺寸大小是 dx,沿 y 轴的实际物理尺寸大小是dy ,单位值mm,即1pixel=dx mm。则能得到两个坐标系间的关系式 。
2.3.2两坐标轴有一个轴平行,一个轴不平行
三、总结一下下
三个穿起来就变成了:
其中,Xw,Yw,Zw为在世界坐标系下一点的物理坐标,u,v为该点对应的在像素坐标系下的像素坐标,Zc为尺度因子。最右边等式的第一个是相机的内参,内参矩阵取决于相机的内部参数。其中, f为像距,dx,dy分别表示X,Y方向上的一个像素在相机感光板上的物理长度(即一个像素在感光板上是多少毫米),u0,v0分别表示相机感光板中心在像素坐标系下的坐标,表示感光板的横边和纵边之间的角度(90度表示无误差)。第二是相机的外参,外参矩阵取决于相机坐标系和世界坐标系的相对位置,R表示旋转矩阵,T表示平移矢量。
下一篇我们就看一下啥叫标定。