从零开启自动驾驶工程师之路(三)感知到底在干啥

这一系列的第三篇文章,我们来聊一聊自动驾驶中最核心的模块——感知。也正是由于撰写这部分的文章难度非常大,因此几次欲提笔创作结果又放弃,不过好在功夫不负有心人,我还是将这一部分的笔记及自己的思考整理出来了。

在了解感知模块到底在感知些啥之前,我们首先要了解一点,自动驾驶中的这部分感知其核心实际上是计算机视觉的范畴。因为掀起这一轮自动驾驶浪潮的正是自12年开始的计算机视觉(卷积神经网络)大突破,这才有了自动驾驶技术的蓬勃发展。而同属感知部分的毫米波雷达感知实际上在很早之前就已经在一些国外高端车型中作为辅助驾驶的传感器使用了。至于激光雷达,由于其高分辨率,也常常被当做视觉传感器而采用视觉的方法进行处理。因此,可以说,想要学习感知,就必须先学习计算机视觉(Computer Vision, CV)。

对于我们人类而言,人类本身便具有众多的感知器官——眼睛,能够为我们提供绝大部分周围环境的信息,大小、距离、颜色等等。我们还有嗅觉、触觉等一众感知信息作为参考,这些海量的信息和数据最终汇总到人脑,经过复杂的至今也没能研究透的神经细胞处理,让人类时时刻刻知道自己所处的环境和情况。而自动驾驶的感知便是想要模仿人类的这种感知能力,从而为车辆的驾驶提供输入信息。这些信息包括但不限于是否有障碍物、距离我多远、车道线及路边缘在哪,交通信号灯是红还是绿等等,所有与驾驶有关的信息它都得提供。

我们总体上可以将感知分为四个子任务——检测、分类、跟踪和分割。检测是最基本的感知任务,即找出环境中有哪些物体,这就像教幼儿园小朋友看图说话一样,找出图中所有的物体。当然,在检测这一步还会同时提供目标的距离、速度、方向等关键信息,也为之后的分类跟踪和分割做准备;分类,这个好理解,就是把你检测到的物体分门别类,比如这是车、这是人、这是交通标志等等;跟踪,这个难度就稍大了些,即你不光要能探测到、对目标做出分类,你还需要进一步去追踪他,随着时间的推移观察该物体,尤其是运动物体。分割在这里更明确地说叫语义分割,它与分类最大的区别在于它能将一幅图像中每一个像素与语义进行匹配,例如这一片是天空,那和蓝天白玉会被分割成一整块,而不是识别到一朵云就把它贴个标签,这是云。语义分割对图像的理解能力又提升了一个维度,获取到了更多更深层次的信息。实际上这也更符合人类感知世界的方式,我们不会每路过一辆车、一棵树都会说一遍,哦,它是车、它是树,我们会从整体去感受整个环境,比如路两旁都载满了树,道路上行驶着很多小汽车。

那么车辆又是如何具体去进行感知和环境建模的呢?实际上,传感器在每一周期内会采集到丰富的数据,摄像头是图像数据、雷达是点云数据。这里以图像数据为例,对于摄像头而言,世界是由一个一个像素点组成的,红绿蓝三原色通过不同的配比叠加在一起形成了我们看到的丰富多彩的世界。而这些图像数据实则是一个图像矩阵,每一块都可以用数值来表示。有了这个数值矩阵作为表示,图像处理技术便得以施展。例如图像翻转、变深变淡、提取特征点等等。有了这些特征点之后,我们便可以从图像中勾勒出目标物体的轮廓和形态,从而标注出这是什么,对其进行分类。目前最常用的算法变是卷积神经网络(CNN),我们可以将图像送入CNN网络,最后它会输出检测和分类的结果。接下来就需要进行目标追踪,这种跨帧的目标检测方式能够让车辆持续地对同一目标进行探测,它能知道上一帧和下一帧是有关联的,不会凭空消失的。目前比较常用的算法是卡尔曼滤波算法,这也是解决这一类问题最经典的算法。最后的语义分割为车辆提供了可行驶区域,这也为之后的路径规划与决策奠定了基础。用于语义分割的算法也是以CNN为基础,不同于检测分类算法的是分割需要确保输出图像大小与原输入图像大小一致,因此网络结构有所改变,需要编码器提取特征,再通过解码器还原图像从而产生上图我们看到的分割好的图像。

本次的文章从核心的感知模块入手,回答了感知到底在感知啥的问题,同时也简单介绍了常用的算法。之后也会对细节和后续模块展开介绍和深入的研究,欢迎大家点赞关注,谢谢!


本文首发于零束开发者论坛

作者:晓畅Auto
文章来源:上汽零束SOA开发者论坛 
原文链接:https://bbs.z-onesoft.com/omp/community/front/api/page/mainTz?articleId=7665

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值