一文详解高精地图构建与SLAM感知优化建图策略-程序员宅基地

技术标签: 算法  定位  编程语言  传感器  大数据  

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者 | Aimee

高精度地图对自动驾驶系统功能研发的影响已经越来越明显,整体上来讲主要包含但不仅限于提升车端感知性能、拓展自动驾驶新功能、动态建图等相关应用。具体体现在如下几个重要方面:

应用总述

提升车端感知性能

拓展新功能

动态建图与应用

详述

• 补充车道线识别结果,通过重投影补齐车道线

• 提升TSR(交通标志识别)识别功能,涵盖多种特殊类别

• 获取复杂驾驶场景信息(收费站、路口等复杂路况的先验感知)

• 提供车道与交通要素(红绿灯、标志牌、路面箭头)的对应关系

• 自动切换车道

• 对行驶较慢车辆的自动超越

• 智能设定巡航车速

• 匝道的自动驶入和驶离

• 高精地图元素更新

• 冷启动从0-1建立全路网高精地图

• 自建局部“记忆地图”,支持记忆泊车、园区记忆式自动驾驶

• 事件型动态信息采集与上报(施工、拥堵、事故等)

如上所述提升车端感知能力是通过先验感知的高精度定位引入地图信息补充获取车道线、交通标志等交通要素从而提供超距感知:不受距离、遮挡的限制。同时,通过提供车道与交通要素(交通标志、交通灯、路面箭头)的对应关系,获取复杂路况先验信息。

地图作为智能驾驶唯一的超距传感器,突破空间、时间的限制,可以说地图是通过定位实现的智能驾驶的“知识图谱”。高精度定位本质上是“知识图谱读取”,高精度建图可以实现“知识记忆”实时更新。通过高精度匹配定位引入地图从而获取环境信息,为车辆提供超传感器距离的感知能力,拓展多种复杂功能场景ODD,是ADAS系统向高级别智能驾驶演变的核心。总体来说,通过高精度匹配定位引入地图获取环境信息,可以拓展多种复杂功能场景自动驾驶设计运行使用范围。 

高精地图众包采集方案

动态高精地图的本质是实时交通数据信息的时空载体,众包数据是高频更新的核心。众包更新能够将地图更新的时间压缩到分钟级,高精地图实时构建与动态信息观测采集,构建起未来智能网联汽车数据生态系统。

高精地图模型分为四个图层,每个图层更新的频率不同,可以支持不同功能应用场景。图商采取分级采集的方案,满足高精地图不同图层的更新需求,主要包含如下几种采集方案:

专业采集:通过高精地图底图,每月更新一次,其精度为10cm;

行业众包采集:其地图更新、施工、交通管制信息等按照每小时更新,精度50cm左右;

社会众包采集:包含基于底图坐标的准实时更新、车流量、人流量、天气等。按照每分钟/每秒更新一次,精度米级;

如上图中,地图基础建图中有多种方法。其中,GPS 导航适合于室外空旷驾驶道路中的移动车辆,在封闭场景(如隧道、山路等)中 GPS 的信号较弱,无法用于移动机器人的定位导航。惯性导航主要是依赖惯性测量单元和轮式编码器来构建一个惯性里程计,增量式地确定移动车辆的位置。惯性里程计一定程度上能够满足机器人自主定位的需求,且不需要额外的对环境进行改造,但由于惯性传感器和轮式编码器都存在漂移的问题,且漂移误差会随着时间累积,一段时间后车辆就无法准确确定自己的位置。为了能够实现车辆在未知的道路环境中准确的定位,SLAM 问题就这样被提了出来。

近年来,利用传感器感知信息作为建图的基础已经越来越得到行业内的重视和关注,其中SLAM 技术作为一种即时定位与地图构建方法,作为移动车辆实现自主定位与导航的核心,它要求自车在一个未知的环境中在不知道自己位置的先验信息的情况下,增量式地构建具有全局一致性的地图,同时确定自身在这个地图中的位置。这一过程是通过车身传感器来获取周围环境的信息,依靠这些信息一边确定自车的位置,一边构建环境的地图。目前 SLAM算法常用的传感器有激光雷达和相机,分别对应了激光 SLAM 算法和视觉 SLAM算法。

详细的SLAM建图构建算法概述

SLAM 是一个庞大的理论体系,涉及传感器处理、贝叶斯滤波、非线性优化、地图的表示、图形处理等各方面的相关理论。早期 SLAM 的基本理论是以扩展卡尔曼滤波(Extended Kalman Filter,EKF)为代表的滤波方法为主。

如下图所示表示了一种典型的 SLAM 系统建图方法,系统主要由前端(front-end)和后端(back-end)两个部分组成,前端根据传感器观测到的环境信息估计车辆的位姿,然后将车辆的位姿信息传递给后端进行优化估计,得到具有全局一致性的地图,最后得到整体的 SLAM 估计。SLAM 的前端算法包括了特征提取和数据关联两部分。特征不但可以用来确定机器人的位置,而且可以用来进行闭环检测,从而构建具有全局一致性的环境地图。因此特征提取是 SLAM 研究中非常重要的一个环节。

目前在 SLAM 的研究中,前端主要是以滤波的方法获得车辆位姿的更新信息,后端则大多是基于优化的方法对机器人全局的位姿和地标信息进行优化。

基于视觉感知的SLAM基础建图构建

在SLAM算法构建中,前视摄像头/激光雷达化身“智能采集终端”,众包生产“动态高精地图数据”,动态高精地图的本质是实时交通数据的时空载体,众包数据是高频更新的核心。主要通过如下几个步骤进行实时建图:

1)实时构建高精度地图:即基于视觉或激光点云数据建图,并与云端融合冷启动从0-1构建全路网高精地图提升高精地图“广度”。

2)更新高精地图元素:通过要素关联与变化检测发现地图元素的变化并实时更新,以确保高精地图的“鲜度”;

3)自建 “ 记忆地图 ”:通过自建局部记忆地图支持记忆泊车、园区记忆式自动驾驶“记忆地图”提升驾驶体验;

4)上报事件型动态信息:通过事件型动态信息采集与上报(施工、拥堵、事故等)构建高精地图“动态信息层”。

如上图表示了一种典型的视觉SLAM技术方案框图,其中整个智能驾驶摄像头(包含前视、侧视、环视以及后视摄像头等)形成SLAM的输入数据端,使用单目相机的 SLAM 称为单目视觉 SLAM,单目相机使用一个摄像头进行移动机器人的定位,由于单目摄像头只能获取周围环境的二维信息,无法给出物体的深度信息,因此会带来尺度不确定的问题。使用双目相机的 SLAM 称为双目视觉 SLAM,也称为立体视觉 SLAM,它可以通过比较两个摄像头图像的差异判断物体的远近,获得物体的深度信息。通过中央处理器对输入图像进行感知、分割、检测、跟踪等操作,输出给导航网络端进行语义建图及匹配定位,同时通过目标识别形成相应的ADAS系统目标属性。最后分两方面进行输出:其一是通过太网连接高精地图盒子,其接收到相应的局部地图建图结果后,更新地图底图。其二是通过输出给MCU(微处理器单元)进行融合定位及车辆控制。这里需要注意的是MCU通过CAN网络也接收了诸如GNSS、IMU等相关信息,并输入给AI芯片进行建图优化和确认。

同时,先进的SLAM方案通过云端多源 V2X 感知部署,打造安全出行解决方案。一方面,通过创新模式与路方合作,利用既有道路信息基础能力,有效整合路侧信息,通过个体级车辆的交通场景感知算法,实施云端 V2X 信息处理,通过导航地图优势,为实时建图提供统一入口。另一方面,由于车路协同系统中将产生大量数据采集和处理,为进一步挖掘相关数据价值,提升智慧出行效率。基于大数据和人工智能能力,可以对相关数据进行人工智能模型训练,从而进一步提高建图能力,优化建图精度。如下图是一种典型的将云端数据纳入到建图过程中的例子。

基于激光雷达的SLAM基础建图构建

除了如上所述的视觉SLAM建图以外,还包括了激光雷达数据建图。激光雷达虽然比相机要贵很多,但因其测量精度高,测量性能稳定,目前在工业中应用更加广泛。激光雷达不能直接给出车辆的位置变化,但它能提供周围物体的距离信息,可以用于车辆的实时定位、避障等场合。

早期的激光雷达主要是利用三角测距的原理进行测距,后来发展出基于飞行时间法(Time  Of  Flight,TOF)测距原理的激光雷达。TOF 测距原理比较简单,通过记录激光从发射出去到被接收所经历的时间可以计算出激光所走过的距离,从而得到激光雷达周围环境的距离信息。

针对激光雷达和相机,目前都已经有很多非常知名的开源算法的实现。在激光 SLAM 领域目前的很多开源算法都是使用 2D 激光雷达实现 SLAM。如谷歌公司在 2016 年开源的Cartographer SLAM 算法是一个跨平台的激光 SLAM 方案,能够同时实现 2D 激光和 3D 激光的实时 SLAM。在视觉 SLAM 领域也出现了许多优秀的开源方案。如Davison 等人在 2007 年提出的单目视觉 SLAM 系统 MonoSLAM 是第一个实时的单目 SLAM,它以扩展卡尔曼滤波为基础,把相机的当前状态和所有路标的信息作为状态量来更新均值和协方差信息。SLAM 的理论在国外发展的比较早,理论比较成熟,国内在这方面起步比较晚,大部分研究都集中在 SLAM 的工程应用上,重点解决工程应用中的一些实际问题。SLAM 的前端算法包括了特征提取和数据关联两部分。特征不但可以用来确定机器人的位置,而且可以用来进行闭环检测,从而构建具有全局一致性的环境地图。因此特征提取是 SLAM 研究中非常重要的一个环节。

激光雷达扫描后会获得一组由环境中的物体反射回来的点云,对于激光雷达的扫描点云,常用的特征有点、线段、平面等。点特征是日常环境中常见的一种特征,通常会从环境中提取角点、交叉点或墙的端点等一些特殊的点作为特征点。线段特征是室内移动机器人定位、导航时广泛使用的一种特征,它在结构化环境中容易获取,特征之间也容易建立约束,对激光雷达的数据关联和闭环检测来说都是一种非常好的特征。面特征主要应用于室外环境中 3D 激光雷达扫描匹配,如无人车行驶在城市环境中可以利用 3D 激光雷达提取到大量的曲面和平面特征来定位。由于线段特征具有容易识别、鲁棒性好等优点,在 2D 激光 SLAM 中应用比较广泛。下面将对激光雷达点云建图中一种基本的线段拟合防范进行简单说明。

如上图表示激光雷达扫描得到的点云离散数据,针对线段特征提取的主流方法主要是采用分割-合并方法(Spilt-and-Merge,SM),且许多线段特征的提取方法都是分割-合并方法的变形。分割-合并的基本过程就是对点云进行聚类,聚类过程中分别设定一定的阈值进行分割-合并-分割-合并依次循环的过程,从而实现线段的有效提取。

在分割阶段,首先从给定的点集中拟合出一条直线。然后找出点集中到拟合直线距离最远的点,计算该点到拟合直线的距离作为拟合误差,如果拟合误差大于设定的距离阈值,则从点集中按照某种规则找出一个点,将直线从该点处进行分割。不断重复这个过程直到拟合误差小于设定的距离阈值则不再分割。在合并阶段,如果相邻的两条线段的拟合误差小于距离阈值,就将这两条相邻线段合并成一条线段。

总结

激光 SLAM 发展至今已经有比较丰富的理论研究成果,激光测距的原理比较简单,测量精度高,测量距离比较远,稳定性、可靠性也都比较高,但其成本较大,目前激光雷达有向低成本发展的趋势。但在实际的应用中仍然存在定位精度不够、地图构建不准确等问题,给机器人执行相关任务带来了一定的障碍。与激光雷达相比,相机的成本要低很多,且能提供更多的信息,也更能满足人们对机器人的想象。但目前相机仍存在着测量范围小、测量噪声大、易受日光干扰等问题。视觉定位与建图带来的驾驶功能提升使得视觉定位在单车视觉感知局限得以解决

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近3000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Yong_Qi2015/article/details/114683924

智能推荐

BP-1-3 Introduction of C++_in c++, a legal identifier may contain these kinds-程序员宅基地

文章浏览阅读115次。Chapter 01 Introduction of Programming3. Introduction of C++A C++ program must have a function named main defined in only one source document.3.1 Lexer in C++symbol setlettersnumbersspecial characterswordIdentifier is composed of letter_in c++, a legal identifier may contain these kinds of characters:

Http重定向https MPM模块 HTTPd常见配置 sendfile 20190227-程序员宅基地

文章浏览阅读3.4k次。Web访问响应模型(Web I/O)单进程I/O模型:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应多进程I/O模型:并行启动多个进程,每个进程响应一个连接请求复用I/O结构:启动一个进程,同时响应N个连接请求实现方法:多线程模型和事件驱动多线程模型:一个进程生成N个线程,每线程响应一个连接请求事件驱动:一个进程处理N个请求复用的多进程I/O模型:启动M个进程,每个进程响应N个连..._httpd启动需要什么pam模块

vue解决 vue-style-loader ,css-loader错误_!!vue-style-loader!css-loader-程序员宅基地

文章浏览阅读4.2k次。最近在学习vue框架,使用webpack打包vue项目,在执行npm run start的时候 出现如下错误:This dependency was not found:* !!vue-style-loader!css-loader?{"minimize":false,"sourceMap":false}!../../node_modules/vue-loader/lib/style-co..._!!vue-style-loader!css-loader

工业相机的接口选择及比较_相机接口中,传输距离最远的是-程序员宅基地

文章浏览阅读2k次。​在了解工业相机接口之前,让我们大概先了解一下什么是工业相机,一般对工业相机的定义大概是机器视觉系统中的一个关键组件,其最本质的功能就是将光信号转变成有序的电信号。选择合适的相机也是机器视觉系统设计中的重要环节,相机的选择不仅直接决定所采集到的图像分辨率、图像质量等,同时也与整个系统的运行模式直接相关。因为没有一个标准的命名,所以工业相机还被称作工业摄像头、工业摄像机、工业照相机等等。从其芯类型中..._相机接口中,传输距离最远的是

关于在ubuntu常用的一些代码_ubuntu的二级文件系统登录界面代码-程序员宅基地

文章浏览阅读483次。注:最近自己搞了一台谷歌云服务器,自己要试着搭建内网穿透,用到了一些ubuntu的操作语言,先记录下,以后再补充1.切换到最高权限用户 sudo su2.切换目录 - cd #切换到根目录 - cd /root #切换到根目录下的root文件夹 - cd .. #返回到当前目录的上级目录3.查看当前目录下的所有文件 - ls -a #查看所有文件 - ls -a..._ubuntu的二级文件系统登录界面代码

文件修改的基本步骤_改文件-程序员宅基地

文章浏览阅读588次,点赞4次,收藏4次。文件修改的基本步骤Python_改文件

随便推点

Asp.net Mvc 使用EF6 code first 方式连接MySQL总结-程序员宅基地

文章浏览阅读121次。最近由于服务器变更为Linux系统.MsSql for Linux什么时候出来到生产环境使用还是要很长时间的.于是考虑使用Mysql数据库,ORM使用EF.于是先踩下坑顺便记录一下,有需要的tx可以参考下.当你考虑使用EF连接Mysql的时候肯定是已经在网上搜了一堆教程.网上教程基本都是使用控制台做演示.跟着一步步来姿势没错的话可能会正常运行,但项目中使用分层后,把数据层剥离出去,再使用..._mvc6使用ef code

android中popupwindow弹出后,屏幕背景变成半透明_andorid popupwindow弹出后背景-程序员宅基地

文章浏览阅读1k次。android中popupwindow弹出后,屏幕背景变成半透明这个效果很普通。实现的方法也很多。我使用的可能是最简单的一种,就是设置一下getWindows的透明度。不多说上代码/** * 设置添加屏幕的背景透明度 * @param bgAlpha */ public void backgroundAlpha(float bgAlpha) { WindowManager._andorid popupwindow弹出后背景

Backup And Recovery User's Guide-为完全数据库恢复做准备-确定数据库的DBID-程序员宅基地

文章浏览阅读72次。确定数据库的DBID 当需要恢复服务器参数文件或控制文件时,必须知道DBID。应该将DBID和其它数据库基本信息记录在一起。 如果没有数据库的DBID的记录,则可以在不打开数据库的情况下在下面的..._在应用备份恢复时,必须知道目标数据库的dbid

solr <一>用 Java客户端 建索引+分页查询_java 利用solr搜索引擎客户端如何创建索引-程序员宅基地

文章浏览阅读1.8k次。在 solr 3.5 配置及应用(一) 讲过一了 solr 3.5的详细配置,本节我们讲利用solr 的客户端调用solr的应用了!一、利用SolrJ操作solr API 使用SolrJ操作Solr会比利用httpClient来操作Solr要简单。SolrJ是封装了httpClient方法,来操作solr的API的。SolrJ底层还是通过使用httpClient中的方法来完_java 利用solr搜索引擎客户端如何创建索引

sent2vec-程序员宅基地

文章浏览阅读1k次。环境配置EmbedRank在标准数据集上实现了比基于图形的最先进系统更高的F分数,适用于实时处理大量Web数据。利用EmbedRank,我们还为新短语引入了基于嵌入的最大边际相关性(MMR),从而显式地增加了所选关键词的覆盖率和多样性。一项包括200多张选票的用户研究表明,虽然减少短语的语义重叠不会导致F分的增加,但我们的高度多样性选择是人类更喜欢的。保证了关键词的两个最具挑战性的性质:由候选短语与整个文档的嵌入距离获得的信息性;由候选短语之间的距离表示的多样性。文章目录环境配置相关信息装置本_sent2vec

Pycharm使用技巧(转载)-程序员宅基地

文章浏览阅读305次。Pycharm使用技巧(转载)转载自:http://www.cnblogs.com/cloudtj/articles/5980666.htmlpycharm使用技巧https://python.freelycode.com/contribution/detail/29https://python.freelycode.com/contribution/detail..._pycharm映射的web路径是指什么