前言
IPM(Inverse Perspective Mapping,逆透视变换)图的历史可以追溯到计算机视觉和图像处理领域的发展。逆透视变换是一种用于消除图像中透视效应的技术,使得原本由于透视产生的形变得以纠正,进而更准确地描述和理解图像中的场景。比如在行车中的车道线检测,泊车中的常见障碍物检测,自动驾驶感知最开始的方案基本都离不开IPM图。
早期,自动驾驶系统主要依赖于传统的2D感知算法,这些算法通常从单张图像(或者IPM图)中检测或分割目标。然而,随着自动驾驶技术的发展,对车辆周围环境感知的需求越来越高(比如IPM图拼接处的检测准确度较差),需要更全面地理解车辆周围的目标和障碍物。
因此,研究者们开始探索如何将来自不同摄像头和传感器的数据融合到一个统一的视图中,BEV(Bird’s Eye View,鸟瞰图)的概念就是在这样的背景下提出的。通过将来自多个摄像头的数据投影到一个共享的BEV空间中,可以创建一个从上方俯视的二维图像,其中包含了车辆周围环境中的所有目标和障碍物。随着特斯拉将BEV技术量产发布后,国内的自动驾驶公司感知模块也在逐步切换到BEV方案。
一、 IPM图
(1)定义
IPM是一种在自动驾驶中常用的图像处理方法,主要用于将从车辆摄像头捕获的图像中的车道线或其他特征,从透视视角(即摄像头视角)转换到鸟瞰视角(即从上空垂直俯视的视角)。
(2)原理
逆透视映射的基本原理是将摄像头捕获的图像中的像素点映射回地面上的实际位置。由于摄像头捕获的图像是真实世界的3D坐标到2D平面坐标的投影,因此IPM图通过将2D图像反变换到3D世界坐标,然后在世界坐标系下进行物体检测和分析。这一过程中,单应矩阵(单应矩阵是一个3x3的矩阵,它描述了两个平面之间的投影映射关系)起到了关键作用,它可以通过已知相机内参和地面上的点坐标来计算图片中对应像素点的位置。(IPM公式推导可参考其它文章:Apply IPM in Lane Detection from BEV)
(3)作用
由于摄像头捕获的图像是透视的,即远处的物体看起来更小,而近处的物体看起来更大。这种透视效果在自动驾驶中可能会导致一些问题,例如难以准确判断物体的实际大小和位置。IPM的作用就是消除这种透视效果,将图像转换为鸟瞰视角,使得物体的大小和位置在图像中更加接近真实情况。
(4)应用
动态逆投影变换(Dynamic IPM)是一种特殊的IPM技术,它主要用于处理动态场景中的车道线检测。当车辆行驶在弯道或坡道上时,车道线在图像中可能会呈现出一定的倾斜或弯曲。动态IPM可以根据车辆的行驶状态(如速度、加速度、转向角等)实时调整变换参数,以更准确地还原车道线的真实形状和位置。另外还有障碍物的检测(车辆、行人等)以及交通标志的检测(包括限速标志、交通信号灯等)。
(5)技术特点
IPM图技术具有一些显著的特点。首先,它依赖于平坦地面假设,即假设道路是平坦的且与世界坐标系平行。这一假设在大多数道路场景下是合理的,但在某些特殊情况下(如斜坡或弯道)可能会引入误差。其次,IPM图技术需要准确估计相机的内参和外参,以确保映射的准确性。此外,由于IPM图将2D图像反变换到3D世界坐标,因此它需要处理大量的计算和数据,对计算资源的要求较高。
二、 IPM转换过程公式推导
(1)世界坐标系和相机坐标系之间的转换
从世界坐标系到相机坐标系的转换关系可由下式表示
(2)相机坐标系和图像坐标系之间的转换
从上面的图可以看到f和Z成正比(相似三角形),也就是我们经常听说的在摄影时,长焦距镜头拍摄远景,短焦距镜头拍摄近景。
(3)图像坐标系和像素坐标系之间的转换
确定他们的关系之前,我们可以假设每一个像素在u轴和v轴方向上的物理尺寸为dx和dy,即我们所说的像素比。
(4)最终得到坐标系转化公式
通过上面四个坐标系的转换可以得到一个点从世界坐标系如何转到像素坐标系,如下图所示,这里有我们熟悉的内参和外参矩阵。
相机的内参和外参可以通过张正友标定获取。
- 通过最终的转换关系来看,一个三维中的坐标点,的确可以在图像中找到一个对应的像素点。
- 但是反过来,通过图像中的一个点找到它在三维中对应的点就很成一个问题,因为我们并不知道等式左边的Zc值。