公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起每交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。

前言

前段时间刚分享的AVP-SLAM文章中有一个知识点叫做IPM(逆透视变换)

AVP-SLAM:自动泊车系统中的语义SLAM

RoadMap:面向自动驾驶的轻型语义地图视觉定位方法

LaneLoc:基于高精地图的车道线定位

基于道路标线的城市环境单目定位

这个概念理解起来就是将图像转换成俯视图或者称为鸟瞰图(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目标检测:MV3D-Net

三维点云分割综述(上)

3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)

win下使用QT添加VTK插件实现点云可视化GUI

JSNet:3D点云的联合实例和语义分割

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

SLAM综述之Lidar SLAM

基于鱼眼相机的SLAM方法介绍

如果你对本文感兴趣,请后台发送“知识星球”获取二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作方式:微信“920177957”(需要按要求备注) 联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

基于自适应逆透视变换的车道线SLAM相关推荐

  1. matlab与逆透视变换,基于逆透视变换的车道线检测方法与流程

    本发明属计算机视觉.图形处理技术领域,具体涉及一种通过照度不变及逆透视变换进行车道线快速鲁棒检测的方法. 背景技术: 车道线检测作为自动驾驶技术的第一个环节,能够有效感知车辆周围世界,并获取可行驶区域 ...

  2. 【车道线检测】基于matlab Hough变换图片车道线检测 【含Matlab源码 276期】

    ⛄一.Hough变换图片车道线检测简介 1 引言 随着人们生活水平的提高, 科技的不断进步, 智能驾驶技术逐渐受到了研究者们的广泛研究和关注.先进驾驶辅助系统 (Advanced Driver Ass ...

  3. 基于深度强化学习的车道线检测和定位(Deep reinforcement learning based lane detection and localization) 论文解读+代码复现

    之前读过这篇论文,导师说要复现,这里记录一下.废话不多说,再重读一下论文. 注:非一字一句翻译.个人理解,一定偏颇. 基于深度强化学习的车道检测和定位 官方源码下载:https://github.co ...

  4. LaneLoc:基于高精地图的车道线定位

    文章:LaneLoc: Lane Marking based Localization using Highly Accurate Maps 作者:Markus Schreiber, Carsten ...

  5. 【车道线检测】一种基于神经网络+结构约束的车道线检测方法

    标题:Ultra Fast Structure-aware Deep Lane Detection(ECCV 2020) 代码地址:在公众号「3D视觉工坊」,后台回复「车道线检测」,即可直接下载 亮点 ...

  6. PaddleX助力无人驾驶:基于YOLOv3的车辆检测和车道线分割实战

    [飞桨开发者说]梁瑛平,北京理工大学徐特立学院本科二年级,人工智能开发爱好者. 项目简介 无人驾驶汽车利用传感器技术.信号处理技术.通讯技术和计算机技术等,通过集成视觉.激光雷达.超声传感器.微波雷达 ...

  7. 基于边缘检测和模型拟合检测车道线

    实验任务与要求: 给一张道路照片,检测并拟合出白色车道线. 问题分析 本实验采用计算机视觉中边缘检测和模型拟合等技术,检测并拟合出白色的车道线. 通过分析本实验需要处理的图像,可以发现图片来源与真实场 ...

  8. 基于改进逆透视变换的智能车测距技术_车路协同技术的演进与嬗变

    笔者在上一篇文章<车路协同到底要协同什么?>中提到,车路协同技术是在逐步发展的,只是在很多年以前,没有这个提法而已.本篇文章,将对我国车路协同技术的发展做进一步的阐述.一. 车路协同1.0 ...

  9. 基于改进逆透视变换的智能车测距技术_禾赛科技:助力2020智能网联汽车C-V2X大规模测试活动_E理财云掌号...

    近日,由中国智能网联汽车产业创新联盟.IMT-2020(5G)推进组C-V2X工作组等共同承办的2020智能网联汽车C-V2X"新四跨"暨大规模先导应用示范活动在上海成功举办.作为 ...

最新文章

  1. 客户端命令(docker)
  2. 团队任务3:软件设计与开发准备
  3. C++笔记——有关内存对齐
  4. 影子卫士和影子系统哪个好用_影子系统是什么?会损害电脑硬盘吗?
  5. 日志打印出来的对象都是XXX@39ddf169这样的,怎么办?
  6. 在matlab下实现TDOA定位算法性能仿真
  7. form表单提交大量input,php接收不全
  8. 服务器修改文件后撮,xp系统的dns服务器修改办法.doc
  9. 【语音识别】基于matlab GUI语音识别信号灯图像模拟控制(带面板)【含Matlab源码 757期】
  10. JAVA版村庄哨塔种子_我的世界:top16种子,出生5村庄、地狱堡垒、2哨塔和一堆遗迹...
  11. sqlplus登录指定服务器,sqlplus 指定数据库
  12. http测试工具:httpbin
  13. 创建FTP站点访问超链接
  14. java 计算正态分布_统计基本概念 期望 方差 均方差 正态分布 Java统计计算
  15. 点集拓扑学的历史介绍
  16. 微信第三方平台开发,component_verify_ticket的接收
  17. Python实验报告 实验15 - 体育竞技分析
  18. 运行内存那么大怎么清理
  19. 我的开源: UnInstaller for Windows(VBScript)
  20. 手机 app GDPR 合规的9个关键步骤

热门文章

  1. 2022-2028年中国灭火装置行业市场前瞻与投资战略规划分析报告
  2. 机器学习入门(15)— 全连接层与卷积层的区别、卷积神经网络结构、卷积运算、填充、卷积步幅、三维数据卷积、多维卷积核运算以及批处理
  3. Windows 终端神器 MobaXterm,免费版可以在公司环境下使用
  4. CSAPP(4):存储器层次结构
  5. shell--数组的定义/访问/赋值/遍历
  6. 全浏览器兼容的DIV拖动效果
  7. 编译器错误信息: CS0016
  8. 接口有个电池标志_USB接口上的小标签有啥用?从“+”号到闪电的奥秘
  9. OpenCV+python:读取图片
  10. eclipse 收缩 选择行_一文解决Java初学者的选择难题