写点什么

自动驾驶在挑战中进化的感知能力

2021 年 1 月 08 日

自动驾驶在挑战中进化的感知能力

滴滴感知大量使用机器学习和深度学习来解决问题,但要解决L4自动驾驶的感知问题,并非只是引入最先进的深度学习模型即可解决。本文归纳出感知能力逐步进化的三个阶段。并分析了以下几大难题给感知带来的挑战:深度学习模型本身存在的缺陷、多传感器需要进行扬长避短的融合、低延迟要求和有限算力间的矛盾、难以准确表征和处理不确定性。最终,对感知的未来发展提出展望。


1. 感知准确是无人车算法的基础


感知在自动驾驶中是一个比较直观的模块,即根据传感器(如激光雷达、相机、毫米波雷达)信息对周围的物体进行理解和抽象,输出所有交通参与者的位置、速度、大小等属性,下游模块(预测、规划)根据这些抽象信息进行运算和决策;感知如果遗漏了物体,对自车来说是“视而不见”的状态,会造成严重的安全风险。因此,感知信息的准确度是无人车算法的重要基础。


2. 进化的感知发展路径


自动驾驶的最低要求是能识别到面前的物体,不撞上它。这个要求通过激光雷达就可以实现,因为它可以准确地估计物体的 3D 位置,并刻画其轮廓。但真实世界并非都是静态障碍物,比如在跟车的场景下,前车的速度是我们考量是否需要减速或刹车的重要因素。同时,面对一个在向自车靠近的行人,和一个静止的行人,自车对他的反应是截然不同的。


第一阶段:基于规则的点云分割算法和物体追踪


在第一阶段,除了需要识别静态障碍物,我们也需要识别常见交通参与者(车、行人、自行车)的类别、朝向和速度,以帮助自车做出决策。在深度学习出现之前,其实通过基于规则的点云分割 / 分类算法¹,再加上物体追踪,就可以做出一个基础的版本。在这一阶段,针对处理不好的问题需要专家设计规则和专门的算法进行处理,然而,许多情景我们难以设计规则处理。


对于并行走的行人很难设计人工规则把两者分开²


第二阶段:大规模数据标记和深度学习


深度学习的出现和发展大幅度提高了感知的效果。面对规则难以处理的感知任务,我们可以运用大规模数据标记及训练深度学习模型。我们不再依赖专家针对问题设计算法,而是从大量数据中萃取出经验和知识。在这一阶段,感知算法的设计更加数据驱动。感知通过收集更多的数据,设计更好的模型进行迭代。但深度学习准确率也有上限,且泛化性(在非典型样本上的表现)、可解释性都存在问题。因此在自动驾驶这个场景中,深度学习并不是感知唯一的组件。


第三阶段:可扩展性和自学习性的长尾数据处理系统


第三阶段,需要做更细粒度的识别,以及解决更多长尾问题,如各种奇怪的大车、地上的塑料袋、行人更细粒度的意图(如是否在打电话)等。这一阶段要求系统有更强的可扩展性、自学习性。长尾问题绝对量占比小,但并不容易解决。其难度可以用九九定律³来刻画:剩余 10% 的问题,还需要额外 90% 的时间才能解决。理想情况下,长尾问题应该有自动的流程进入到模型框架中自动进行学习,而不是简单地靠堆人力来改善这些问题,甚至人过多会使进展变慢⁴。现在学术界在研究的 multi-task learning⁵, AutoML⁶等技术对这一阶段的感知发展有极大的启发。但因为数据的价值边际效用递减,及下文会提到的深度学习的限制,目前业界也还在探索状态,没有特别成熟的思路能达到仅靠数据流就能使系统不断进化的状态。



长尾问题:识别到椎桶在卡车上,无需刹车


3. 实现完全无人驾驶对感知存在多重挑战


1. 深度学习模型存在缺陷


深度学习模型虽然效果显著,但最先进的模型的效果也无法达到无人车感知的要求,且深度学习算法缺乏泛化性和可解释性。许多研究已经证明了深度学习远不如人类智能通用,如通过加人类无感知的噪声,就可以误导模型对结果的分类;对于罕见的数据(如一个穿着很奇怪衣服的人),深度学习也容易犯错误。简单来说,深度学习模型只是以一种生硬的方式在“记忆”训练数据⁷。而且其记忆能力有限,在模型学习达到饱和后,学习新的样本可能造成已有能力产生退化⁸。如何结合深度学习模型和基于规则的白盒算法,同时保障感知的召回率和效果,是感知系统面临的一大挑战。综合考量以上缺陷,我们不能仅依赖深度学习模型。



通过添加人眼无法辨别的噪声,深度学习模型就可以被误导⁹



感知自建的数据标注系统


2. 多传感器需要进行扬长避短的融合


传感器是感知能力的上限,不同的传感器有不同的优缺点。激光雷达能对物体轮廓进行较准确的刻画,同时能准确地得到物体的 3D 位置信息,但缺乏相机所能得到的丰富色彩信息,同时对雨雪天气较敏感;相机对 3D 位置的估计稍差;而毫米波雷达精度一般,但感知距离远,且能直接得到物体纵向的速度。下图更全面地反映了这些优缺点。感知系统需要针对不同的任务,扬长避短地使用多种传感器信息。同时,多传感器的融合也对标定的精度、可扩展性提出了较高要求。



不同传感器的优劣势对比¹⁰


3. 低延迟要求和有限算力间的矛盾


无人车是一个实时计算系统,无法像 Web 后端系统一样通过增加服务器来进行算力拓展。同时车载系统对能耗、散热也有约束,这间接约束了感知能使用的算力。在有限算力下部署复杂模型,感知输出延迟较大,会造成安全隐患及各种问题。我们需要通过模型压缩、神经结构搜索、代码优化的方式更巧妙地利用有限的算力资源,达成最佳的效果。


4. 难以准确表征和处理不确定性


感知的输出是带有不确定性的¹¹,一个近处物体,在无遮挡的情况下,我们对其估计较为确定;而一个远处物体,激光雷达打上的点少,我们对它的类别、位置的不确定性都较大。一般来说,我们需要输出一个最置信的类别和位置信息,但此时该信息的不确定性是极大的,而感知内部或下游往往会直接忽略这种不确定性。如何更好地融合不确定性信息,需要感知内部和下游模块从底层进行更好的思考。



不确定性:例如在遮挡严重的情况下,我们对物体的类别、位置、速度等信息变得不确定


4. 充满挑战的进阶之路


在外界看来,无人车感知似乎是一个较容易的问题,使用先进的深度学习模型就可以解决得不错。但无人车对安全性有极高的要求,同时路测出现的场景千奇百怪,这对感知的挑战是巨大的。无人车感知是一个需要综合算法、工程、数据的系统工程。算法方面,我们需要针对问题,组合、定制已有算法,同时紧跟学术界/业界进展,引入新思路。工程方面,我们需要让系统能够吞吐更大量的数据;同时不断完善系统,减少工程师在解决问题需要投入的时间。数据方面,我们需要利用路测数据积累对长尾数据的认知和评估,同时形成模型-路测-数据标注闭环,增加数据的量级和利用率。在这一方面,我们复用了滴滴已有的成熟基础架构进行二次开发,因此可以较快建立感知的体系。


一个更高层次的要求是自学习性。如果系统有更好的自学习性,仅需一些数据标注和自动学习,系统就可以适应一个新的环境。当前,我们的感知系统部署到一个环境变化的新城市,还需要投入一些人力进行重新开发和调整。这是一个需要努力的方向,完善的数据和算法架构是重要的基础。


目前为止,无人车感知虽然已经取得了极大进展,但遗留的难题还很多。以上只是一些宏观层面的思考,但细节决定成败,每个难题的攻克需要二三素心人的潜心钻研。期待无人车的未来进阶之路上早日迎来技术的跃迁。


References


[1] Montemerlo, M., Becker, J., Bhat, Suhrid., Dahlkamp, H and Dolgov D., Ettinger, Scott., & Haehnel Dirk. (2008). Junior: The Stanford Entry in the Urban Challenge. Journal of Field Robotics, 25(9), 569–597. Retrieved 11 December 2020.


from https://onlinelibrary.wiley.com/doi/abs/10.1002/rob.20258


[2] Held, D., Guillory, D., Rebsamen, B., Thrun, S., & Savarese, S. (2016). A Probabilistic Framework for Real-time 3D Segmentation using Spatial, Temporal, and Semantic Cues. In Robotics: Science and Systems.


DOI: 10.15607/RSS.2016.XII.024


[3] Ninety-ninety Rule. Retrieved 11 December 2020.


from https://en.wikipedia.org/wiki/Ninety-ninety_rule


[4] The Mythical Man-Month. Retrieved 11 December 2020.


from https://en.wikipedia.org/wiki/The_Mythical_ManMonth?oldformat=true#The_mythical_man-month


[5] Standley, T., Zamir, A., Chen, D., Guibas, L., Malik, J., & Savarese, S. (2020). Which Tasks Should Be Learned Together in Multi-task Learning?. Retrieved 11 December 2020.


from https://arxiv.org/abs/1905.07553


[6] He, X., Zhao, K., & Chu, X. (2020). AutoML: A Survey of the State-of-the-Art. Knowledge-Based Systems, 106622. Retrieved 11 December 2020.


from https://www.sciencedirect.com/science/article/abs/pii/S0950705120307516


[7] Szegedy, C., Zaremba, W., Sutskever, I., Bruna, J., Erhan, D., Goodfellow, I., & Fergus, R. (2013). Intriguing properties of neural networks. arXiv preprint arXiv:1312.6199. Retrieved 11 December 2020.


from https://arxiv.org/abs/1312.6199


[8] Goodfellow, I. J., Mirza, M., Xiao, D., Courville, A., & Bengio, Y. (2013). An empirical investigation of catastrophic forgetting in gradient-based neural networks. arXiv preprint arXiv:1312.6211. Retrieved 11 December 2020.


from https://arxiv.org/abs/1312.6211


[9] Goodfellow, I. J., Shlens, J., & Szegedy, C. (2014). Explaining and harnessing adversarial examples. arXiv preprint arXiv:1412.6572. Retrieved 11 December 2020, from https://arxiv.org/abs/1412.6572


[10] Fused Sensing vs. Sensor Fusion. Retrieved 11 December 2020.


from https://www.outsight.tech/technology/fused-sensing-vs.-sensor-fusion


[11] Feng, D., Harakeh, A., Waslander, S., & Dietmayer, K. (2020). A Review and Comparative Study on Probabilistic Object Detection in Autonomous Driving. arXiv preprint arXiv:2011.10671. Retrieved 11 December 2020.


from https://arxiv.org/abs/2011.10671


本文作者


Milton,滴滴自动驾驶高级专家算法工程师。

2021 年 1 月 08 日 17:14807
用户头像
陈思 InfoQ编辑

发布了 562 篇内容, 共 192.3 次阅读, 收获喜欢 1113 次。

关注

评论

发布
暂无评论
发现更多内容

从技术思维角度聊一聊『程序员』摆地摊的正确姿势

码大叔

随笔杂谈 技术人生 经验分享

硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题

小林coding

TCP 网络安全 网络编程 面试题 计算机网络

真诚的回报

zhoo299

生活 随想

程序员可迁移技能的培养

码闻强

程序员 程序员素养 程序员成长

分布式系统技术:存储之数据库

奈学教育

分布式

ARTS-Week 01

chasel

如何辨别有发展潜力的员工​

Neco.W

工作 招聘

日志过滤

HU

Elasticsearch-Base

lee

elasticsearch search 搜索

27岁了,程序员写给自己的一封信

学习Java的小姐姐

程序员 生活 总结 程序媛 职场回顾

2020年6月5日 继承

瑞克与莫迪

一文带你了解 Kafka 原理

cxuan

kafka

如何通过众包应用本地化获得 500 万次下载?

葛仲君

android 翻译 本地化 产品开发 Play商店

[kube 022] 混沌测试框架-Litmus

zbyufei

Kubernetes 云原生 混沌工程 Litmus litmuschaos

存储让“想象”势不可挡

焱融科技

ARTS - Week Three

shepherd

开源 互联网 算法

关于Synchronized锁升级,你该了解这些

学习Java的小姐姐

并发编程 synchronized 轻量级锁 偏向锁 重量级锁

2020年5月北京BGP机房网络质量评测报告

BonreeAPM

网络 服务器 存储 机房 主机

LeetCode 1339. Maximum Product of Splitted Binary Tree

隔壁小王

算法

怎样成为解决问题的高手

落曦

ARTS week3

丽子

我体验了一把自由职业,比 996 苦多了...

非著名程序员

创业 程序员 自由职业 创业心态

前端开发必备工具箱

LeanCloud

CSS 性能优化 前端 vscode 工具

读《平凡的世界》

YoungZY

读书

修改git里commit信息用户名

张张张小烦

区块链能够防伪?你彷佛有什么误解!

CECBC区块链专委会

CECBC 区块链技术 商品溯源 防伪

江湖事儿 | 技术人如何做好晋升准备

哈利迪

android 职业成长

ARTS打卡-02

Geek_yansheng25

大话设计模式 | 1 简单工厂模式

Puran

C# 设计模式 PlantUML

持续集成实践系列 」Jenkins 构建 CI 自动化流水线常见技巧 (二)

狂师

持续集成 jenkins jenkins-plugin CI/CD

游戏夜读 | 神话故事和世界观

game1night

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

自动驾驶在挑战中进化的感知能力-InfoQ