「料见」vol27.回顾 | 知名视觉SLAM专家高翔:一起来聊聊视觉SLAM在自动驾驶和机器人领域的实际应用

news2024/11/17 21:38:37

高翔老师继畅销书《视觉SLAM十四讲》之后,又推出了新作《自动驾驶与机器人中的SLAM技术》。该书自出版以来备受瞩目,为读者提供了关于SLAM技术的全面而深入的理解。

第27期“料见”闭门分享会,我“门”非常开心邀请到知名视觉SLAM专家———高翔来与大家分享激光和视觉SLAM在自动驾驶和机器人方面的应用,以及对SLAM创业的看法,并与线上同学进行QA交流互动。

在活动的在开麦大讨论环节,大家针对SLAM的问题接连不断,我“门”也紧锣密鼓记录下来自高翔老师干货满满的问答文字精华版,稍加编辑整理,呈现给大家~

如果希望进一步了解视觉SLAM相关的工作,也欢迎添加将门小将(thexiaojiang)微信,加入SLAM交流社群,与更多相关领域小伙伴交流互动!

嘉宾介绍

图片

高翔

知名视觉SLAM专家

浙江湖州人,清华大学自动化系博士,慕尼黑工业大学博士后。长期从事计算机视觉、定位与地图构建算法研究工作,先后在百度、智行者、主线科技等公司担任自动驾驶方面资深算法工程师、算法总监等职务。个人主要著、译作有《视觉SLAM十四讲:从理论到实践》、《机器人学中的状态估计》、《自动驾驶与机器人中的SLAM技术》,并在ICRA、IROS、RA-Letters等国际知名期刊、会议上有多篇发表论文。

个人主页:

https://www.techbeat.net/grzytrkj?id=183

1. 自动驾驶和机器人领域中SLAM技术壁垒是什么?国内外发展情况及应用情况如何?

高翔:SLAM(即时定位与地图构建)技术在自动驾驶和机器人领域的壁垒主要在于实现稳定的算法需要大量实际应用案例和经验积累。在学术界,数据集相对较小,而工业界则面临更大的规模和更复杂的应用场景。实验室与工业界的技术差距不大,因为算法的稳定性和产品的实际效果密切相关。在工业界,产品的迭代时间和实际应用案例的数量对于算法的稳定性和性能起着关键作用。

在国内外发展情况方面,SLAM 技术在各个实验室的研究方向和方法上存在差异,但都关注于解决实际问题和提高产品质量。在应用情况上,SLAM 技术在扫地机、扫地车等产品上得到了实际应用,产品卖的最多的公司,其性能往往更加稳定。

2. 如何在实时应用中实现高效的 SLAM 和自动驾驶算法,以满足实时性要求,并在计算资源有限的嵌入式系统上运行?

高翔:实现高效的 SLAM 和自动驾驶算法在实时应用中,主要问题是计算资源的限制。目前,大部分定位算法在嵌入式系统上运行没有问题,如地平线和黑芝麻等国内公司,以及英伟达等国外公司提供的硬件。国内大部分公司会在英伟达的硬件上做一层封装,并加入自家的产品。从定位角度来看,这个问题不大。对于建图这块,主流做法还是在 PC 端或服务器端运行。如果你想实现更复杂的功能,例如语义、BEV或实时地图生成,那么整个项目的流程会有所不同,具体要看你要实现的功能有多复杂。

3. 如何有效地融合多种传感器数据,如激光雷达、摄像头、惯性测量单元(IMU)等,以提高定位和环境感知的准确性和鲁棒性?

高翔:要实现传感器融合,提高定位和环境感知的准确性和鲁棒性,首先需关注鲁棒性,以应对各种异常情况。在设计系统框架时,要考虑到异常情况的发生,如在汽车中配置多种传感器作为冗余备份。针对不同场景,需要明确具体的要求,例如停车场的柱子间距、宽度等。在实验室阶段,很难预见到现场的复杂性和丰富性,因此需要在实际场景中进行充分测试,解决各种角角落落的问题,并不断优化算法以适应不同情况。

在实际应用中,大部分时间是正常的,因此可以使用滤波器、因子图等方法进行数据处理。当出现异常情况时,需要有冗余机制来弥补。例如,在汽车中除了自己的 DR 之外,还会配备一个 VO video automatic或者一个雷达里程计作为冗余备份。

4. 目前以辐射场为代表的隐式场景表示相比于传统的稀疏点云、深度图具有高分辨率、360度直接建模的优势,这些隐式表示与SLAM框架结合,有哪些挑战?

高翔:以辐射场为代表的隐式场景表示,相较于传统的稀疏点云和深度图,确实具有高分辨率和 360 度直接建模的优势。然而,将其与 SLAM 框架结合面临一些挑战:这个方向相对较新,目前学界仍在热烈讨论,存在很多不确定性。工业界通常会更加保守,只有在学术界对某个问题达成共识后,工业界才会考虑应用。

当前大部分工业界使用的算法都是学界几年前就稳定下来的算法,而隐式表示与 SLAM 框架结合方面的研究还处于早期阶段。因此,在方法层面的创新性还有待提高。另外,隐式场景表示在网络结构方面还有很多不确定的地方。现在大家都在各自研究和开发,整体上处于一个相对早期的阶段。很多研究都是将已有的方法进行组合,而不是提出全新的方法。在每个模块层面,方法上的创新性可能会不太够。当然,这也意味着现在还有很多可以尝试和探索的方向。

5. 如何构建适用于SLAM和自动驾驶的大规模数据集,并定义评估标准和指标,以便比较和评估不同算法的性能?

高翔:构建适用于 SLAM 和自动驾驶的大规模数据集需要多方面的考虑。首先,各大公司可能会有自己的大规模数据集,但未必会公开。学校里的做法可能会有所不同,由于车辆数量有限,长时间采集的数据也相对有限。如果在公司里进行,可以采用类似学习的方法,利用大量的车辆和后台数据库建立起云服务器来收集和存储数据,用一套专门的系统进行维护和测试。

在这个过程中,建立和维护基建设施是关键,包括数据库、存储系统等。这方面,互联网企业具有优势,例如百度等公司在基建方面做得相当不错。对于自动驾驶领域,数据集的规模很重要,学界的数据集通常在几百个G,而工业界则需要更大规模的数据集,如几十T,上百T。

在测试和存储方面,需要考虑如何在多台机器上进行测试,以及如何收集和整理测试结果。这就需要一个非常稳定的系统。总之,构建大规模数据集并定义评估标准和指标是一个具有挑战性的过程,需要多方面的技术支持和投入。

6. 如何在不使用激光雷达的车型上继续使用之前积累的点云地图数据,提高效率并避免重新开发新的技术方向?

高翔:对于在自动驾驶领域中不使用激光雷达的车型如何继续使用之前积累的点云地图数据,有几种方案。一种是在车库等特定场景中,通过检测车道线和墙壁等特征,制作地图和定位。然而,这种方法非常依赖于检测结果的稳定性和准确性。另一种方案是使用视觉技术重建点云,但其泛化能力仍需验证。当前的传感器技术仍在发展中,如果使用双目构建点云,其实质与固态激光雷达相似,但点云精度无法像雷达那样固定,而是与测量距离相关。

对于使用视觉方法创建局部地图,并使用 Surf 特征匹配的思路,我认为可行性需要考虑视觉建图的稳定性和准确性。视觉建图需要建立在可靠的三维数据基础上,而双目视觉可能会受到纹理、颜色等因素的影响,导致空间位置的不确定性。这就需要我们考虑到视觉数据的一致性和稳定性,以及与雷达数据的匹配程度。

韩国有一个团队在做环视重建,然后进行点云建图,用于室内定位。但我目前只见过他们的 demo,并没有看到具体的产品应用。我认为,未来固态雷达可能会变得更便宜,室外的 TOF 设备也可能会得到普及,这将为自动驾驶提供更稳定的感知数据。

总的来说,视觉重建的点云地图其一致性和稳定性可能会随着场景和车辆的运动轨迹变化而有所不同。我们需要考虑的是,如何在不同场景和运动状态下,保证视觉数据的稳定性和一致性,以达到与雷达数据相匹配的精度。

7. 在后面 L2 量产自动驾驶轻地图甚至无地图的趋势下, SLAM 这块是可以继续扮演哪些角色?

高翔:关于轻地图或无地图,它并非完全取消地图,而是将离线建好的图转变为一个在车端实时在线构建的过程。在车端,更关注道路级别的建图,即车道和道路延伸情况。目前,主流做法虽能实现这一目标,但效果不确定性较强,可能无法满足所有情况。对于 L4 级别的自动驾驶,我持怀疑态度,认为其可能无法实现高精度的要求。

现在大家都在做 BEV,但再过几年可能就饱和了。要实现 L4 级别的自动驾驶,严重依赖于高清地图,这确实是个问题。我认为 BEV 可能做不到这种水平,如果要追求低接管率,通过 BEV 去做,我觉得做不出来类似的 L4 功能。这就需要考虑这是一个 L2 级别的功能,还是一个 L4 级别的功能。

对于泊车功能,如果车已经停到车位边上,驾驶员基本上就在车边上,这时可以不需要追求接管率。但如果车要停到车位里面,这就涉及到 L4 级别的功能,因为不可能让驾驶员失败后再回来停车。实现 L4 级别的自动驾驶,需要用 L4 的传统套路,如建停车场的高精地图、雷达地图、点云地图等。当然,理想情况下可以实时地边走边探,把里面的东西全部探出来,但现在还无法很可靠地实现这个功能。因此,我认为还是要用 L4 的套路来做,更着力于高清图的轻量化维护、快速生成和简单化生成维护。

8. 最近一些自动驾驶公司出现的新的大感知组织架构的优势,即感知和定位建图组织架构上放在同一个部门,您如何看待?

高翔:自动驾驶公司出现的新的大感知组织架构,将感知和定位建图组织架构放在同一个部门,这种做法具有一定的优势。整体上,L2 和 L4 现在还是分开来看会好一些,如果是 L2 的公司架构,这样放置是没有问题的。目前,很多公司都在提倡去高精地图或局部使用高精地图,让车辆能够根据道路标记或路面标记自行识别所在位置。将感知和定位放在一起,可以使整个系统更加综合。

然而,一个机器人或车辆的综合行为并不一定非得按照现有的L4架构来做。很多做L4的公司,车道保持等功能并不完善,整个系统过于依赖高精地图和高精定位。在隧道或山区等高精定位无法完全保证的情况下,车辆应该如何应对?这需要更高层面的综合性人员来设计车辆的行为。

同时,在实际应用中,系统的可用性和精度指标之间存在矛盾。如果精度指标无法满足要求,车辆就只能停下来。因此,在设计公司架构时,需要考虑如何解决这个矛盾。这需要一个更高层面的综合性人员来设计车辆的行为,以适应不同场景。将感知和定位放在同一个部门,有助于解决这个问题,提高自动驾驶系统的性能和稳定性。

9. 关于人形机器人的传感机配置,是选择双目式,结合兼容感知和定位的需求,还是选择激光雷达或深度传感器以保证在极端情况下可以工作?在创业做仿人机器人时,如何做出这个决策?

高翔:关于人形机器人的传感机配置,需要先明确机器人的具体功能和业务目标,然后根据这些目标来选择相应的传感器。例如,如果机器人专门用于抓取物品,那么它的传感器配置就会比较明确。而如果要做通用型的人形机器人,那么传感器的选择就会更加复杂,需要考虑多种可能性。

在设计过程中,产品经理的角色非常重要,他们需要理解技术,不能仅凭想象提出功能需求,因为这些需求可能无法实现。人形机器人的设计需要考虑具体的业务问题和功能目标,然后反推出需要的传感器配置。

10. 如何看待波士顿动力公司的运作方式和技术难度?

高翔:其对行业产生了一定影响,但并未找到很好的商业模式。他们的技术发展路径依赖于早年的高成本投入,导致现在面临商业化困境。例如,在自动驾驶领域,像波士顿动力公司,甚至谷歌、百度,他们的做法是以完全不计成本的购置当时最好的设备去实现其各种功能,使得自动驾驶效果较好,但高昂的成本使得消费者难以接受。

对于机器人行业,未来的发展趋势将会更加复杂。电机会变得更加多,关节会变得更加复杂,信息将变得更加通用。在自动行走方面,希望机器人能够实现自动抓取和在复杂路面行走等功能。如果继续从事清扫、物流或送餐等业务,现在的形态已经比较成熟,将来可能会降低传感器成本,提高市场规模。

若要实现具有自主行走和抓取能力的机器人,需要具备很高的技术含量。大方向没错,但谁的步子跨得更大,谁的步子跨得更小,将影响实现的速度和确定性。

11. 关于机器人行业的现状和未来发展,您有什么看法?

高翔:从现在的情况来看,机器人行业正在快速发展,规模相对较大。与前两年相比,技术含量有所提高,硬科技的发展使得整个行业变得更大,这是一个好的趋势。然而,与自动驾驶相比,机器人行业更注重成本和实际产品的产出。

目前,大部分人还在研究和开发机器人技术,但还处于试点阶段,与当初预想的无人出租车等形态相比,还有很大差别。机器人行业更加实际,需要考虑解决什么问题,以什么样的成本解决这个问题,以及如何将产品卖出去等因素。

机器人代替人是一个非常硬的道理,如果成本能做得很低,确实能代替人做一些事情。机器人行业整体上是值得看好的,因为它是一个实际的东西。


  关于TechBeat人工智能社区

TechBeat(www.techbeat.net)隶属于将门创投,是一个荟聚全球华人AI精英的成长社区。

我们希望为AI人才打造更专业的服务和体验,加速并陪伴其学习成长。

期待这里可以成为你学习AI前沿知识的高地,分享自己最新工作的沃土,在AI进阶之路上的升级打怪的根据地!

更多详细介绍>>TechBeat,一个荟聚全球华人AI精英的学习成长社区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/936108.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

集合类的线程安全问题

集合类 原来的集合类,大部分都不是线程安全的 Vector, Stack, HashTable, 是线程安全的(不建议用), 其他的集合类不是线程安全的. 加了锁,不一定就是线程安全的,不加锁也不一定是线程不安全的,需要具体问题具体分析 虽然get,set方法都加了synchronized,但是如果不能正确使用,也…

RabbitMQ从原理到实战—基于Golang【万字详解】

文章目录 前言一、MQ是什么?优势劣势 二、MQ的用途1、应用解耦2、异步加速3、削峰填谷4、消息分发 三、RabbitMQ是什么1、AMQP 协议2、RabbitMQ 包含的要素3、RabbitMQ 基础架构 四、实战1、Simple模式(即最简单的收发模式)2、Work Queues 模型3、Publish/Subscribe…

ESP8266固件烧录

文章目录 硬件电路烧录工具完整固件资料+烧录工具硬件电路 烧写模式: GPIO0:0 此时通过REST复位引脚复位,8266进入烧写模式。 烧写通过串口烧写,波特率设置115200 运行模式: GPIO0:1 此时通过REST复位引脚复位,8266进入烧写模式。 烧录工具 烧写工具下载链接:https:…

Python功能制作之简单的绘画板

可能需要安装的库 pip install pillow pip install tk制作 我们使用Python的Tkinter库创建的一个简单绘画软件。 首先创建了一个简单的绘画应用,可以选择颜色、切换画笔和橡皮擦模式、清空画布以及绘制自由曲线。 里面的主要结构和功能是: 导入必要的…

计算机组成原理(主存储器的基本组成、 运算器的基本组成、 控制器的基本组成、完成一条指令的三个阶段)

主存储器的基本组成: 这个是读数据操作图: 读入数据与菜鸟驿站的取货流程差不多: 写入数据的过程与读入数据类似: 1、cpu 指明想要写入到那个位置(写到MAR中) 2、想要写入的数据会放到MDR中 3、c…

ctfshow-web-红包题第七弹

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 首先上来访问就是phpinfo。常规思路先扫一下目录。 发现一个.git文件403,这种情况通常都是存在文件夹,但是不能直接访问文件夹导致的。那么我们可以使用git_extract工具进行获取内容。…

WSL2连接不了外网怎么办?

某天忽然WLAN变成地球图标,上不了Internet,搞了半天网络适配器,仍然不行。回忆之前做过的操作,曾经运行过ZoogVPN,试着启动并连接,然后退出,WLAN神奇地恢复了连接,可以上Internet了。…

leetcode题解 滑动窗口总结

一、解题思路 滑动窗口使用思路(寻找最长) ——核心:左右双指针(left,right)在起始点,right向右逐位滑动循环 ——每次滑动过程中 如果:窗口内满足条件,right向右扩大…

Yolo系列-yolov3

YOLO-V3 这张图讲道理真的过分了!!!我不是针对谁,在座的各位都是 终于到V3了,最大的改进就是网络结构,使其更适合小目标检测特征做的更细致,融入多持续特征图信息来预测不同规格物体 先验框更丰…

【springboot】Spring Cache缓存:

文章目录 一、导入Maven依赖&#xff1a;二、实现思路&#xff1a;三、代码开发&#xff1a; 一、导入Maven依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId><…

基于单片机的智能数字电子秤proteus仿真设计

一、系统方案 1、当电子称开机时&#xff0c;单片机会进入一系列初始化&#xff0c;进入1602显示模式设定&#xff0c;如开关显示、光标有无设置、光标闪烁设置&#xff0c;定时器初始化&#xff0c;进入定时器模式&#xff0c;如初始值赋值。之后液晶会显示Welcome To Use Ele…

开源项目的版本管理:Git的最佳实践

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

【C语言】操作符大全(保姆级介绍)

&#x1f6a9;纸上得来终觉浅&#xff0c; 绝知此事要躬行。 &#x1f31f;主页&#xff1a;June-Frost &#x1f680;专栏&#xff1a;C语言 &#x1f525;该篇将详细介绍各种操作符的功能。 目录&#xff1a; &#x1f4d8; 前言① 算术操作符②移位操作符③位操作符④赋值操…

Linux服务——nginx的配置及模块

目录 一、nignx配置 1、nginx的配置文件 2、使用server语句块构建虚拟主机 3、alias别名 4、location语句 二、nginx模块 access模块 验证模块 自定义错误页面 日志存放位置 检测文件是否存在 长连接设置 ngx_http_autoindex_module 模块 三、nginx的高级配置 1、…

深入理解Reactor模型的原理与应用

1、什么是Reactor模型 Reactor意思是“反应堆”&#xff0c;是一种事件驱动机制。 和普通函数调用的不同之处在于&#xff1a;应用程序不是主动的调用某个 API 完成处理&#xff0c;而是恰恰相反&#xff0c;Reactor逆置了事件处理流程&#xff0c;应用程序需要提供相应的接口并…

Illustrator打开visio导出的emf为什么会报错

问题描述 将使用Visio绘制的.emf文件直接拖入Adobe Illustrator有时候会弹出如下报错窗口——“无法完成操作&#xff0c;因为出现未知错误。” 原因分析 经过多次测试&#xff0c;发现这个跟Visio中元素的数量有关&#xff0c;当数量>24或>27&#xff08;差不多就这…

Git向远程仓库与推送以及拉取远程仓库

理解分布式版本控制系统 1.中央服务器 我们⽬前所说的所有内容&#xff08;⼯作区&#xff0c;暂存区&#xff0c;版本库等等&#xff09;&#xff0c;都是在本地也就是在你的笔记本或者计算机上。⽽我们的 Git 其实是分布式版本控制系统&#xff01;什么意思呢? 那我们多人…

如何评价国产CEC-IDE开发工具

前两天&#xff0c;看到了一则信息&#xff1a;新出的“自主研发”的 CEC-IDE&#xff0c;于是在好奇心的驱使下打开了官网。 主页&#xff1a;https://cecide.digitalgd.com.cn/monorepo/app-front/home 文档&#xff1a;https://cecide.digitalgd.com.cn/monorepo/app-fron…

深入探讨C存储类和存储期——Storage Duration

&#x1f517; 《C语言趣味教程》&#x1f448; 猛戳订阅&#xff01;&#xff01;&#xff01; ​—— 热门专栏《维生素C语言》的重制版 —— &#x1f4ad; 写在前面&#xff1a;这是一套 C 语言趣味教学专栏&#xff0c;目前正在火热连载中&#xff0c;欢迎猛戳订阅&#…