基于自适应逆透视变换的车道线SLAM
公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起每交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。
前言
前端时间刚分享的AVP-SLAM文章中有一个知识点叫做IPM(逆透视变换)
这个概念理解起来就是将图像转换成俯视图或者称为鸟瞰图(BEV),鸟瞰图对于检测车道线的来说似乎很重要,基于这种俯视图上的车道线的检测衍生的车道线保持等辅助驾驶功能也屡见不鲜,这里我们就针对IPM的概念找到了一篇文章《Adaptive Inverse Perspective Mapping for Lane Map Generation with SLAM》,这是一种基于SLAM的方案用来更新车道线鸟瞰图。这部分的内容也就是AVP-SLAM论文中的一个模块,但原文中是已知相机的外参后,直接转换成固定size的俯视图,如果要实现一个单目相机的原始图像转化为俯视图,应该如何处理呢?本文就会详细的介绍如何得到单目的俯视图。
摘要
本文提出了一种自适应逆透视变换(IPM)算法,从前视摄像机图像中获得精确的鸟瞰图。这些图像由于车辆的运动会存在一定的形变,即使是很小的运动也会对鸟瞰图也会产生很大的影响。本文提出了一种自适应的IPM模型,利用运动信息将原始的图像信息精准地转换为鸟瞰图,利用了单目的视觉SLAM的方法得到的运动信息,实验结果表明,该方法即使在行驶过程中有较大的运动也可以提供稳定的鸟瞰图。
ADAS系统的一个重要特征是对道路和车道的感知,其目的是感知车辆周围的环境,本文研究了一种IPM技术,它通常用于基于视觉的道路和车道感知,IPM利用相机的内参以及相机与地面的关系,生成了消除透视效果的鸟瞰图像,IPM的结果可以为后处理的算法提供更有效的信息,比如车道的感知,地图的绘制,以及定位和模式识别。
在此之前就已经有很对应用研究了IPM,比如距离检测,使用全景相机生成大面积的鸟瞰图,为泊车系统提供的鸟瞰图以及车道级别的地图的生成,传统的IPM变换相机与地面之间存在一定的刚体变换,然而当一个相机跟随移动平台发生剧烈的运动时,这种假设就会被打破,鸟瞰图也会发生一定的形变。本文提出了一种扩展的IPM模型,他可以精确的计算在相机运动下的鸟瞰图,并且使用了单目里程计法用来计算相机的运动。
自适应IPM模型
在解释自适应的IPM模型之前,首先需要了解使用相机的物理参数来描述IPM的基本模型[1](这篇文章虽然有点古老,但是从数学层面上阐述了IPM的数学模型)下图展示了相机坐标系,图像坐标系,以及世界坐标系之间的关系,其中(u,v)是像素单位,(r,c)和(X,Y,Z)是米制单位。
使用IPM的目的是将像素点(u,v)映射到世界坐标系下的(X,Y,Z),首先定义一个单位向量X'来表示相机的视角的方向(这里用“' ”来表示这是一个矢量)那么与X'正交的就是单位向量Y",该向量是与地面和相机的视角的方向都是正交的关系,IPM就是寻找到世界坐标系下的(X',Y',Z')与图像坐标系(u',v')之间的关系,以便将图像的像素映射到世界坐标系下。这里一定要注意根据单位的不同的,图像上的两种坐标系设置为(u',v')和(r',c').像素空间中的图像点(u',v')与米制单位空间中的(r',c')是相同点。他们之间的关系定义如下:
这里说明一下K是像素与米单位之间的关系(Px/m),其实就是每米占多少个pixel.图像的宽度m,以及图像的高度n。相机的光学中心P在世界坐标系中的位置为(0,0,h)。光学中心的轴用O'表示,是与像平面是正交的(这里可以想象一下,肯定是正交的关系)。
我们近一步的通过下面的侧视图和俯视图的描述参数中,假设物体的高度为0,那么很容易的计算出世界坐标系中的投影图像,使用侧视图理解,X'方向上的点X可以写成像素点v,相机的倾斜角(theta0)和垂直角(theta)的函数。
倾斜角表示平行于地面的直线与光轴之间的角度(O')垂直角是从P到每个像素的线与O'之间的角度,利用上图中的几何学关系,我们可以推导出倾斜角和垂直角,这两个已知量是可以作为函数的参数,寻找两者之间的关系是我们发现从垂直的焦距fr开始,从中我们可以得到theta(V)。
通过几何学之间的关系我们可以得到如下的关系式:
其中r_top是是指在(r',c’)坐标系下最高的图像点,
alpha_r是垂直方向上FOV的一半,
r_top在我们假设像素的坐标系中的v=1的时候是可以被推导出来的
并且fr 是可以根据上两个式子推导出来的
则θ(v) 可以表示为
最终我们根据上式子表示出 X(v)
请注意,世界坐标系中的X与图像平面的u无关。下一步,我们用俯视图求出Y,如图3所示:
这个关系可以用X和Y之间的比例表达式来推导:
其中fc是水平焦距,可从:
与侧视图几何图形类似,C_right是(r',c')坐标中最右侧点的C值,a_c是水平视野的半角。当u值为n时,可获得C_right
因此,fc和Y(u,v)可以定义为(12)、(13)。如果图像的宽度和高度相同(m=n),则fc与fr相同
Y(u,v)在世界坐标中的位置取决于(u,v),因为Y(u,v)包括X(v)。但该模型仅考虑从固定摄像机获取图像的情况。当从运动车辆获取图像时,由于车辆的运动,尤其是其俯仰方向,很难将图像转换为准确的鸟瞰图像。为了解决该问题,在该模型中还添加了相机俯仰方向(theta_p)上的角度,如下图所示。
图4.自适应IPM模型的侧视图,相机的俯仰角(ep)添加到基本IPM模型中
最后,通过将theta_p添加到原始theta_o,可以导出自适应IPM建模方程(14)
X(v,theat_p)取决于相机的俯仰角(theta_p),Y(u,v,theta_p)也取决于它,这意味着鸟瞰图像根据俯仰角进行适当补偿。
实验
自适应IPM模型的性能已经在韩国高级科学技术研究所(KAIST)校园采集的真实图像序列上进行了测试,设置了一个安装在车辆上的前向摄像头。测试图像的分辨率为1280 x 960,拍摄速度为15 fps,使用单目视觉里程计算法[6][7]获得车辆运动。图5显示了通过该方法获得的特征点。
图5.视觉里程计得出的特征点,摄像机的运动(x、y、z、滚动、俯仰、偏航)可以使用该算法进行计算
图6和图7显示了当安装了摄像头的车辆遇到减速时,现有IPM模型和自适应IPM模型的结果之间的比较。在图6中,俯仰角从图6(a)到图6(c)改变约4.1度。图6(c)显示了现有IPM模型的结果。该模型的鸟瞰图图像因车辆运动而发生图像变化而失真。另一方面,自适应IPM(图6(d))模型的结果显示,尽管车辆运动,但鸟瞰图像未失真。
图6.具有减速的数据集的实验结果。图像(a)和(e)之间的俯仰角相差约4.1度。(c) 和(d)是(a)和(b)之后的7帧。
在图7中,俯仰角从图7(a)到图7(c)改变约2.1度。大约2.1度的角度变化是一个相当小的运动,但它会使鸟瞰图图像严重失真,如图7(c)所示。图7(d)显示了使用自适应IPM模型的未失真鸟瞰图图像。
图7.具有减速的数据集2的实验结果。图像(a)和(c)之间的俯仰角相差约2.1度。(c) 和(d)是(a)和(b)之后的5帧。
结论
我们提出了一个自适应IPM模型,考虑运动模型,特别是俯仰角,这是最重要的车辆安装相机,我们的模型已在车辆通过减速带时俯仰角发生显著变化的情况下得到验证,并检查了与此类运动对鸟瞰图像的影响有关的补偿结果,采用自适应IPM模型的结果可以提供给其他算法,例如涉及车道检测和障碍感知的算法,以获得更精确的性能,该模型只考虑了俯仰运动,因此由于滚动运动,鸟瞰图像中存在少量失真,因此,可以通过添加滚动参数来改进我们的模型,以获得针对摄像机运动的更鲁棒的IPM模型。
[1] Hanspeter A Mallot, Heinrich H Bulthoff, JJ Little, and ¨Stefan Bohrer. Inverse perspective mapping simplifies optical flow computation and obstacle detection. Biological cybernetics, 64(3):177–185, 1991.
资源
三维点云论文及相关应用分享
【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法
3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)
PCL中outofcore模块---基于核外八叉树的大规模点云的显示
更多文章可查看:点云学习历史文章大汇总
SLAM及AR相关分享
如果你对本文感兴趣,请后台发送“知识星球”获取二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!
以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除
扫描二维码
关注我们
让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。