初始无人驾驶—感知

课程简介

了解不同的感知任务,例如分类、检测和分割,并学习对感知而言至关重要的卷积神经网络,让我们一起来学习吧!

一、感知简介

感知,顾名思义就是让汽车拥有对周围环境认识的能力。我们如何让汽车拥有这种能力呢?人可以通过利用眼睛来感知环境,车辆也可以通过静态摄像头和其他感知器来感知环境,所以我们必须使用大量的视觉感知装置来让汽车拥有这一能力。
而在获取了感知器信息后,最广泛的使用方法为CNN即卷积神经网络,然后我们将简单介绍机器学习、神经网络和卷积神经网络的基础知识,然后讨论感知模块在无人驾驶车中的具体任务。接下来让我们开启感知器的学习之路吧!

二、Sebastian介绍感知

感知是无人车能够行驶的关键步骤,也是最优难度的一部分,我们人类拥有很多的感知器,例如五官等,来感知环境,这些感知系统对我们有很大的帮助,转移到车上,它们也需要比人类更好的感知系统。例如神奇的传感器,雷达和激光雷达(LiDAR),可以帮助车辆测量原始距离,不仅会让车辆知道前方有什么障碍物,还可以准确辨别出距离那个障碍物有多少厘米。对于每个无人车来说,最具有竞争力的地方就是利用海量的传感器数据,模拟人脑来了解这个世界,这就可以通过神经网络、深度学习与人工智能来处理,好了,我们正式开启学习之路吧!

三、计算机视觉

对于人类来说,我们可以通过眼睛便能判断出前方物体的颜色和性质,甚至可以判断出物体的联系。但是对于计算机来说,它的眼睛里只有R,G,B构成的三种重叠图像。感知任务有四个核心任务。

1.检测:是指找出物体在环境中的位置
2.分类:是指辨别出物体是什么
3.跟踪:是指随时间的推移观察移动物体
4.语义分割:将图像中的每个像素与语义类别进行匹配


以上是对四种内容的图解介绍;

我们在研究的过程中,可以将分类作为研究计算机视觉一般数据流程的例子;分类是将对计算机输入的图像进行处理,输出标识该图像标签或者“类别”的算法。例如交通标志分类器,它可以分类出停车,限速等标识牌,有的分类器甚至可以分辨出行人是在走还是跑。

以上处理过程都是经过以下步骤进行处理的:

1.输入数据:将摄像头获取的图像传输给计算机;
2.图像预处理:将图像大小进行改正,图像进行旋转和颜色转换等;
3.特征提取:对图像中形状和轮子等特征进行提取;
4.分类模型:将处理后的数据传入模型中进行训练,得到最终结果。

这种训练模型很多,可以参照人脸识别和手写数字识别等例子。

四、摄像头图像

摄像头图像是最常见的计算机视觉数据,当向人展示一个汽车的图像时,人会马上认识到这是一个车的相片,但向计算机展示这个照片时,计算机却只能看到这是一个矩阵,各个举证单元格子里面是各种小的像素点,像素点又是由0-255个数值表示,说明其亮度大小,如下图所示:

通常我们会通过处理这些像素点的数值来对图像进行分析,图像一般可由三种颜色组合而成,R,G,B是颜色的三原色,图像的长度,宽度和颜色大小构成了三维:

只要把图像看成三色重叠的二维图像后,就很容易处理它了,你学会了吗?反正我是会了。

五、LiDAR图像

感知扩展到传感器,而不仅仅是摄像头,激光雷达传感器创建环境的点云表征,提供了难以通过摄像头图像获取的信息,例如距离和高度。激光雷达通过光线,尤其是激光来测量,思想是与环境中反射该光线的物体之间的距离,激光雷达发射激光脉冲并测量物体,将每个激光脉冲反射回传感器所花费的时间来计算记录。

由于激光雷达的反射测量,它收集的数据形成一团点或“点云”,点云中的每个点代表反射回传感器的激光束,通过发射的光我们可以获取物体的形状和表面纹理。通过对点进行分析,这些数据提供了足够的对象检测、跟踪或分类信息。例如下图所示:

我们可以通过该图发现,中间有一块黑***域,这一区域为汽车本身的位置,检测到的红色方框为行人,绿***域为汽车,虽然人很难利用这些图像,但是计算机能轻易识别这些图像,并加以利用。所以当摄像头检测到图像并和点云图像相结合后,就能达到感知的目的了。

六、机器学习

机器学习是使用特殊算法来训练计算机从数据中学习的计算机科学领域,通常这种学习结果存放在一种被称为“模型”的数据结构中。模型的种类有很多,但模型的共同目的都是让机器可用于了解和预测世界的数据结构。机器学习的作用很多,例如金融公司利用该算法对汇率和证券交易进行预测,零售企业使用机器学习来预测需求,医生甚至会利用机器学习来辅助医疗诊断。机器学习涉及数据 和相关的真值标记来进行模型训练。

当谈到机器学习时,不免让我想起了人工智能课程接触的基础知识点,监督学习和非监督学习。监督学习就是通过对某一种事物进行标签标识,通过学习比较,得出一个未知物体的类型。非监督学习就是在没有其他标识物辅助识别的情况下,自己判断其真假值。在本次学习中,我又接触了半监督学习,就是将两者特点结合在一起,该方法使用了少量的标记数据和大量的未标识数据来训练模型。

强化学习也是另一种机器学习,强化学习涉及允许模型通过尝试许多不同的方法来解决问题,然后衡量哪种方法最为成功,计算机会尝试不同解决方案,最终使其方法与环境相适应;

例如强化学习时,算***发出智能体进行各个方向的转向动作,并判断进行各个动作之后的情况,当选择的方向是正确选择后,该智能体会得到奖励,也就是加相应的分数,这种算法不断尝试的过程很迅速,在很短的时间内,便能跑很多次,最终让机器学会该技能。

七、神经网络

神经网络的介绍不作过多赘述,相信大家都有所了解。我们主要探讨,神经网络在无人驾驶汽车中如何使用,想一想,你觉得会在哪一方面使用呢?

哈哈,当然是图像识别了,神经网络通过密集的训练,最终让计算机可以辨别汽车,或者其他物体,它的主要工作原理和人脑相似,我们会利用物体的特征对与该物体的独有性来设置权值。例如汽车,它的颜色有很多种,所以光靠颜色不能方便,所以可将七权值设置为0,但是他有窗户,比较独特,但是房子也有窗子,所以独特性不高,我们可以设置为0.2,当提到车轮时,大家肯定会想到汽车,所以它对于汽车判断来说具有很高的权值,所以我们可以将其设置为0.8:

当然判断某个物体的特征不止这些,你还可以设置很多很多,这样会加深对物体的判断准确性,你学会了吗?

八、反向传播算法

上面我们了解到了神经网络在图像处理种的方法,接着,我们知道在学习过程种就是不断训练。而训练的过程又是在三步中不断循环,这三步就是:前馈、误差测定和反向传播。

1.前馈:首先随机分配初始权重,即人工神经元的值,通过神经网络来馈送每个图像产生输出值这就被称为前馈:

2.误差测定:就是真值标记与前馈过程中所产生的输出之间的偏差。


3.反向传播:通过神经网络反向传递误差值,此过程类似前馈过程,只是反向发生了转变。

结果上述三个过程的反复调整,就可生成更准确的网络,这样的训练通常需要上千个这样的周期循环,最终的结果就有很大的准确度了。

九、卷积神经网络

卷积神经网络(CNN),是一种人工神经网络,它对感知问题特别有效,而且它的数据接受多维输入。本次课程时间较短,所讲的课程只是卷积的皮毛,不过他只是一个概念的讲述,如果想详细了解,请点击我

但是对于卷积对车轮的提取却讲得很好,我们了解到CNN通过维持输入像素之间的空间关系来解决这个问题,因为当车轮发布到各个像素矩阵后,就让计算机很难提取出来。具体的工作原理就是CNN通过过滤器的连续滑过图像来收集信息,每次收集信息时,只对整个图像的一小部分区域进行分析,这就称为卷积:


可以观察到,第一层可以识别汽车基本边缘和颜色信息,然后通过第一层设置新的过滤器得到新的卷积层,CNN可以使用边缘信息和颜色来归纳更复杂的结构,如车轮、车门和挡风玻璃等特征,而另一个卷积层便可以通过这些信息识别出汽车了。

十、检测与分类

我们在对图像检测中,首先想到的是障碍物检测和分类,这些障碍物例如墙壁、树木,汽车必须以最快的速度识别前方障碍物的类型,将它归为某一类,接着作出相对于的动作。例如当车辆检测到前方有一辆自行车时,这时我们会选择变道或者减速刹车。但是如果前方是一辆行驶的汽车,那么我们就需要保持距离,慢速跟进。

当汽车来到十字路口时,虽然前方可能没有障碍物,但是我们仍需对信号灯的情况,检测此时的颜色并进行分类,得到最终是否可以通过的指令,执行相应的动作。

在执行检测与分类时,可以使用单一体系检测结构,其过程如下图所示:

它 利用一个体系便达到了对图像进行检测和分类的目的,这种经典的体系结构为R-CNN及其变体Fast R-CNN和Faster R-CNN,而另一种YOLO和SSD是具有类似形式的不同体系结构,由于没有使用,所以不作介绍。

十一、跟踪

你想象一下,假如我们检测完之后,没有对这一结果进行保存利用,那么就会一直识别该物体,所以在保存该物体的分类情况后,我们就需要对该物体进行跟踪。

例如当你在运行检测时,检测对象被其他对象遮挡了一部分,则检测算法可能会失败。追踪可以解决遮挡问题。另一个原因是,追踪可以保留其身份,障碍物检测的输出为包含对象的边界框。但是,对象没有与任何身份关联,单独使用对象检测时,计算机就不会知道一个帧的图像中哪些对象与下一帧的哪些对象相对应。

追踪的第一步是确定身份,通过查找特征相似度最高的对象,我们会将之前帧的对象和当前帧的对象进行匹配,不管是利用颜色或者形状,计算机都可以通过计算出复杂的图像特征值,从而达到对比的目的。而且在跟踪算法中,预测物体的下一步行动位置也会对其起到很大的帮助作用。

十二、分割

语义分割涉及对图像的每个像素进行分类,它尽可能详细地了解环境,并确定车轮可驾驶区域,它依赖于一种特殊类型的CNN,它被称为全卷积网络或FCN。

FCN用卷积层来替代传统CNN体系结构末端的平坦层,因为每一层都是卷积层,所以称为全卷积网络。但是有个问题就是,传统CNN在经过多次卷积之后,所产生的输出比原始输入图像小得多,但是为了分割图像,输出尺寸与原始图像必须相匹配。

为了达到目的,我们可以对中间输出进行上采样处理,直到最终输出的大小与原始输出图像的大小相匹配。网络的前半段部分通常被称为编码器,因为这部分网络对输入图像的特征进行了提取和编码,网络的后半段通常称为解码器,因为它对这些特征进行了解码,并将其应用于输出。

Apollo感知

Apollo开放式软件栈可感知障碍物,交通信号灯和车道线。Apollo在高精度地图上使用感兴趣区域(ROI)来重点关注相关对象。ROI过滤器应用于点云和图像数据,以缩小范围并加***知。然后,通过检测网络馈送已过滤的点云,输出用于构建围绕对象的三维边界框。最后,我们使用被称为检测跟踪关联的算法,来跨时间步识别单个对象。该算法先保留在每个时间步要跟踪的对象列表,然后再下一步时间步中找到每个对象的最佳匹配。

例如,对于交通灯的检测,首先Apollo会使用高精度地图来确认前方是否存在交通信号灯,这就缩小了检测范围,使检测精度更高,当到达交通灯后,只需对信号灯的情况进行检测分类即可。

Apollo使用YOLO网络来检测车道线和动态物体,其中包括车辆、行人等,在对数据进行预测后可对目前动作进行调整。同样的,其他的传感器也会对该模块进行反馈和调整,所以这是一个复杂的网络系统。

感知器的比较

Camera LiDAR Radar Camera+Radar+LiDAR
Object Detection Mixed Good Mixed Good
Object Classification Good Mixed Poor Good
Range of Visibility Mixed Mixed Good Good
Lane Tracking Good Poor Poor Good
Functionality in Bad Weather Poor Mixed Good Good
Functionality Mixed Good Good Good

感知器融合策略

Apollo使用激光雷达和雷达来检测障碍物,其融合输出的主要算法为卡尔曼滤波,卡尔曼滤波有两个步骤。第一步为预测状态,第二步是更新测量结果。

以下是对融合过程的详细图解:


这次课程总结就算告一段落,接下来我们会就其它更深入的内容进行学习总结,大家拭目以待哦!!

全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务