简介
激光雷达技术、以及立体视觉通常用于3D定位和场景理解研究中,那么单个摄像头是否也可以用于3D定位和场景理解中吗?所以我们首先必须了解相机如何将3D场景转换为2D图像的基本知识,当我们认为相机坐标系中的物体场景是相机原点位置(0,0,0)以及在相机的坐标系的X、Y、Z轴时,摄像机将3D物体场景转换成由下面的图描述的方式的2D图像。
通过上图,我们可以了解到,相机坐标系中的x、y、z位置和相机的焦距(fx、fy),可以使用所描述的公式计算图像中相应的u、v像素,这些公式类似三角形公式的缩放,其中焦距是每台摄像机的固有常数参数,可以通过摄像机的校准来确定,但是,我们知道:已知图像中的u、v像素和焦距,很难恢复相机坐标系中的x、y、z位置,因为主要是z,物体对象相对于相机原点的深度方向未知,这就是基于二维图像的目标场景在三维重建中面临的挑战问题。
摄像机投影矩阵
上图中所示的关系由相机投影矩阵公式或相机矩阵P更全面定义,摄像机矩阵P的解释和推导如下所示:
在三维世界中选择一个参考点,将其标记为原点,并定义世界坐标系轴,将世界坐标系旋转并平移到相机坐标系下。在世界坐标系中定义的三维点现在将位于相机坐标系中。
这里的b[x,y,z,1]有助于用[R | t]进行点积,以获得3D空间中该点的相机坐标,R表示旋转矩阵,t表示平移矩阵,该矩阵首先将点旋转到相机坐标系方向,然后将其平移到相机坐标系,[R | t]也称为相机的外参矩阵,它在指定的世界坐标系中旋转并将对象转换为相机坐标系。
相机坐标系中定义的一个点可以用K(摄像机矩阵)投影到图像平面上,K是一个内参矩阵,它采用fx和fy,将相机坐标系的x和y值缩放为图像平面的u和v值,此外,K还涉及sx和sy,它们将图像的原点从图像的中心转换到左上角的图像坐标系下。
完整的相机矩阵P,它获取世界坐标点,并使用下图中的完整公式将其投影到图像平面,这种摄像机矩阵变换是一种投影变换,也可以用齐次坐标来描述,如下:
因为K是一个3x3矩阵,R | t是一个3x4矩阵,P是一个3x4矩阵,由于P不是一个方阵,它的逆矩阵是不可用的,因此这再次显示了用相机图像的u、v像素反算x、y、z世界坐标的困难。
单应矩阵
当忽略世界坐标系中的z方向时,有一种称为单应性的技术可以从图像像素恢复3D位置,换言之,我们只考虑3D世界中的平面,如果忽略世界坐标中的z方向,4x3摄像机矩阵P可以简化为3x3单应矩阵H。方形矩阵可以有其逆矩阵H-1,它可以将图像的u,v像素映射到世界坐标系中的x,y,0坐标,如下所示:
事实上,图像到图像的映射也是可以的,因为在z=0的世界坐标平面可以理解为一个图像,在游泳比赛的电视转播中,当国旗图像转换到游泳池泳道上时,通常会使用这种技术。
逆透视变换
距离在透视视图中会发生扭曲,因为离相机较近的固定距离看起来较大,而离相机较远的固定距离看起来较小,然而,正交视图中的距离不会扭曲,并且无论它位于何处都是一致的。因此,我们可以使用一种称为逆透视变换技术,将图像从透视视图校正为自上而下的正交视图,以测量距离(https://arxiv.org/pdf/1905.02231.pdf),前提是我们知道了相机的内在矩阵和外参矩阵。
给定一个以一定角度倾斜的摄像机拍摄的图像,首先获取摄像机坐标,然后围绕摄像机坐标x轴旋转相机的坐标轴,使其面向垂直于地面的方向,然后将旋转后的摄像机坐标重新投影到图像平面上。
来源:https://www.cantorsparadise.com/a-single-camera-3d-functions-fdec7ffa9a83