文章主要介绍自动驾驶技术中几种常用的坐标系统,以及他们之间如何完成关联和转换,最终构建出统一的环境模型。这里重点理解自车到相机刚体转换(外参),相机到图像转换(内参),图像到像素有单位转换。3d向2d转换会有相应的畸变,平移等。
重点:自车坐标系相机机体坐标系需要被重写的是:平面坐标系像素坐标系 难点:要考虑图像畸变,去畸变和加畸变都是在像平面上去补偿
视觉系统一共有四个坐标系:像素平面坐标系(u,v)、图像坐标系(x,y)、相机坐标系()和世界坐标系()。每种坐标系之间均存在联系,那么如何通过图像像素坐标定位到世界坐标系的坐标,需要通过相机标定来解决,其中关键的算法部分在于坐标系转换,而变换则需要通过齐次坐标的表示方式来完成。
摄像头的作用是把三维世界中的形状、颜色信息,压缩到一张二维图像上。基于摄像头的感知算法则是从二维图像中提取并还原三维世界中的元素和信息,如车道线,车辆、行人等,并计算他们与自己的相对位置。感知算法和相机相关的坐标系有图像坐标系(像素坐标系)、摄像机坐标系、需要被重写的是:平面坐标系
3.1.1 图像坐标系(or 像素坐标系)
电脑上存储的照片或图像,一般以左上角为原点,向右为x正方向,向下为y正方向,单位以“像素”最为常用。图像坐标系为二维坐标系,标记为(Xv, Yv)。
需要进行改写的内容是:3.1.2 摄像机坐标系
因为图像坐标系的x轴向右,y轴向下,所以摄像机坐标系以镜头主光轴中心为原点。一般来说,x轴向右为正方向,y轴向下为正方向,z轴向前为正方向。这样,x和y方向与图像坐标系的方向一致,z方向表示景深。摄像机坐标系可以表示为(Xc,Yc)
需要进行改写的内容是:3.1.3 需要被重写的是:平面坐标系(或成像坐标系)
为了能够定量描述三维空间到二维图像的映射关系,图形学里引入了需要被重写的是:平面坐标系。它是摄像机坐标系的一个平移,中心仍在摄像机主光轴上,距离光轴中心的距离等于摄像机的焦距 我们知道摄像机会在光轴中心后方的底片上成一个缩小的倒像,是真正的像平面(Xf, Yf)。但是为了分析和计算方便,我们会在光轴中心前方设立一个虚拟像平面。虚拟像平面上的成像为正像,大小与真实倒像相同
需要被重写的是:平面坐标系
根据具体情况而定,可以表示任何物体,这是由于相机引入的。单位为米
世界坐标系 ,相机坐标系 ,成像坐标系 及像素坐标系
Lidar (Light Detection and Ranging) 是一种远程感测技术,使用激光光束测量与物体的距离。360度旋转发射射线,根据不同目标反射率不同反射而形成电云。在自动驾驶和机器人领域,Lidar常被用作一个主要的传感器来获取周围环境的3D信息。在多数情况下,Lidar坐标系为右手坐标系,但具体定义可能会因Lidar制造商而异。
X轴: 通常指向Lidar前方。当激光束直接向前发射时,与该方向的距离测量会在X轴上产生一个正值。Y轴: 通常指向Lidar的左侧。当激光束直接向左侧发射时,与该方向的距离测量会在Y轴上产生一个正值。Z轴: 通常指向Lidar的上方,与X和Y轴垂直。高度测量通常沿Z轴进行,正值代表物体高于Lidar设备,而负值代表低于Lidar设备。
一般环境中选择一个参考坐标系来描述传感器和物体的位置,该坐标系称为世界坐标系;自车坐标系一般指的是以车体后轴中心为原点(因为后轴中心不会随着车摆动而发生相对变化),左前上或右前上的空间坐标系,左(右)一般为横向,前一般为纵向,上指地面以上空间,坐标系随着车运动而运动。所有的下游需要感知输出的目标都要在自车坐标系下面,BEV视角目标也是指的在这个坐标系下
一般三维空间坐标系用三个正交轴X,Y,Z表示物体的位置,用绕这三个正交轴的旋转角度(roll 滚动角, pitch 俯仰角, yaw 偏航角)表示物体的姿态。时间坐标系只有一个维度。为了表述方便,我们一般将空间坐标和时间坐标分开讨论。
内参用来确定摄像机从三维空间到二维图像的投影关系。主要包含三个参数,相机主点,相机焦距,畸变系数。内参一般由商家给定,也可以进行摄像机标定。在自动驾驶应用中,摄像机的内参为常数,使用中不会发生变化,但需要在使用前做好标定工作。摄像机的拍摄过程,可以抽象成是从三维摄像机坐标系映射到二维需要被重写的是:平面坐标系,再映射到图像坐标系的过程。
一般情况下,摄像机的内参可以用一个矩阵来表示:
这个矩阵通常被称为内参矩阵或相机矩阵。
通过二维图像推断物体在三维摄像机坐标系中的位置,例如获得距离深度信息。从二维图像中获取三维距离信息,如果需要获得物体在世界坐标系中的位置,则还需要知道摄像机在世界坐标系中的位姿。这一位姿表示被称为摄像机的外部参数,简称外参,用来决定摄像机坐标与世界坐标系之间相对位置关系。自动驾驶应用中,得到这一位置关系还需要一系列的标定和定位工作。相机相对其它坐标系,旋转+平移矩阵,其中旋转外参与上述欧拉角【yaw,patch,roll】,旋转顺序一般为(z-y-x), 单位度;平移外参,相机到目标坐标系中的平移距离,单位米
关系与转换: - 由于车辆在世界中是移动的,所以自车坐标系和世界坐标系之间的关系是时间变化的。- 为了在这两个坐标系之间进行转换,通常需要一个转换矩阵或变换(通常由旋转和平移组成)。这个转换可以通过各种传感器(例如GPS、IMU、激光雷达)和算法(例如SLAM)获得。- 转换可以表示为一个4x4的齐次坐标矩阵,允许我们从一个坐标系转换到另一个坐标系。
在大多数情况下,自车坐标系与世界坐标系是相同的,本文也是这样理解的
物体之间的坐标系变换都可以表示坐标系的旋转变换加上平移变换,则世界坐标系到相机坐标系的转换关系也是如此。绕着不同的轴旋转不同的角度得到不同的旋转矩阵。绕Z轴旋转θ示意图:
最后可以简单总结为旋转矩阵:
平移: 平移相机坐标点()平移距离为()到世界坐标点
从相机坐标系到图像坐标系,属于透视投影关系,从3D转换到2D。也可以看成是针孔模型的改变模型。满足三角形相似定理。
在这种情况下,与之前的坐标系变换不同,此时没有旋转变换,但是坐标原点的位置和大小不一致,因此需要设计伸缩变换和平移变换
通过最终的转换关系来看,一个三维坐标点可以在图像中找到对应的像素点。然而,反过来,通过图像中的一个点找到其在三维空间中对应的点就成了一个问题,因为我们并不知道等式左边的值
红框内即为外参,R和T分别为旋转和平移量。内参为是相机固有的属性,实际上就是焦距f,像元尺寸dx,dy。很明显,表示的是点离光轴的距离
梳理了自动驾驶的各种坐标系,展现自动驾驶各坐标系间的关系,最终得到像素坐标系与世界坐标系的转换关系。
原文链接:https://mp.weixin.qq.com/s/tTRCjZBRZcnb59nX3FRR8w
以上是你是否真正掌握了坐标系转换?自动驾驶离不开的多传感器问题的详细内容。更多信息请关注PHP中文网其他相关文章!