深度学习|深度学习在环境感知中的应用( 二 )


由于传统目标检测算法主要基于人为特征提取 , 对于更复杂或者更高阶的图像特征很难进行有效描述 , 限制了目标检测的识别效果 。 因此 , 通过集联多层神经网络形成很深的隐藏层从而提取出丰富特征的深度学习方法也就成为了环境感知技术中的“新宠” 。
在深度学习中 , 人们把特征提取和分类合到一起 , 这两部分都是通过以目的为驱动的训练的方式 。 这时 , 其实我们不清楚到底训练出来的这个特征是什么样的一个结构 , 或者是具有什么样的物理意义 , 因为它完全是大数据训练出来的 。 这就相当于变成了一个黑盒子 , 但是这个过程在一定程度上是以目的为驱动 , 如果数据量足够的话 , 它会训练出来在一定程度上表现这个物体最好的特征 。 因此如果数据量足够大 , 而且网络结构也相对合理 , 其准确率可以达到99.9%以上 , 而传统的视觉算法检测精度的极限在93%左右 。 传统机器学习与深度学习的分类对比如图4:

图4机器学习与深度学习在分类问题的对比
我们了解到深度学习的优势后 , 自然会将其应用在实际问题中 。 接下来本文将就深度神经网络在汽车环境感知中的环境物体检测、语义分割和目标跟踪等核心技术中的应用展开介绍 。
环境物体检测:如图5所示 , 自动驾驶待检测的环境物体包括本车周围的机动车、行人、骑车人、车道线、路面标识、路侧标识、红绿灯等具有形状特征的物体 。 传统物体的识别一般包括3个步骤:1)似物性区域提取;2)目标特征提取;3)目标分类器设计 。 第1步是指从大幅图像(或者点云)中提取出局部的感兴趣区域 , 以降低处理数据的总量;第2步一般由工程师手动构造 , 再由第3步结合经典的机器学习分类器AdaBoost或SVM来实现物体的检测 。
与之不同 , 深度神经网络(DNN)可自动学习特征 , 而不需工程师手动设计特征 , 简化了介入难度 , 提升了检测性能 。 所涉及的传感器主要包括摄像头和激光雷达 , 前者仅输出高分辨率的二维图像 , 后者输出带有深度信息的三维点云 , 远距离区域点云比较稀疏 。

图5自动驾驶场景的物体检测示意
语义分割:语义分割是计算机视觉中的基本任务 , 在语义分割中我们需要将视觉输入分为不同的语义可解释类别 。 语义的可解释性 , 即分类类别在真实世界中是有意义的 。 例如 , 我们可能需要区分图像中属于汽车的所有像素 , 并把这些像素涂成蓝色 , 如图6 。

图6语义分割后的场景
在深度学习统治计算机视觉领域之前 , 有随机森林、Texton Forest等方法来进行语义分割 。 深度学习的方法兴起以后 , 在图像分类任务上取得巨大成功的卷积神经网络同样在图像语义分割任务中得到了非常大的提升 。 最初引入深度学习的方法是patch classification方法 , 它使用像素周围的区块来进行分类 , 由于使用了神经网络中使用了全连接结构 , 所以限制了图像尺寸和只能使用区块的方法 。 2014年出现了Fully Convolutional Networks (FCN) , FCN推广了原有的CNN结构 , 在不带有全连接层的情况下能进行密集预测 。 因此FCN可以处理任意大小的图像 , 并且提高了处理速度 。 后来的很多语义分割方法都是基于FCN的改进 。
目标跟踪:目标跟踪是指在给定场景中跟踪特定感兴趣对象或多个对象的过程 。 传统上 , 它在视频和现实世界的交互中具有应用 , 其中在初始对象检测之后进行观察 。 现在 , 它对自动驾驶系统至关重要 , 例如优步和特斯拉等公司的自动驾驶车辆 。
物体跟踪方法可以根据观察模型分为两类:生成方法和判别方法 。 生成方法使用生成模型来描述表观特征并最小化重建误差以搜索对象 , 例如PCA 。 判别方法可用于区分对象和背景 , 其性能更加稳健 , 逐渐成为跟踪的主要方法 。 判别方法也称为检测跟踪(Tracking-by-Detection) , 深度学习属于这一类 。 为了通过检测实现跟踪 , 我们检测所有帧的候选对象 , 并使用深度学习从候选者中识别所需对象 。 可以使用两种基本网络模型:堆叠式自动编码器(SAE)和卷积神经网络(CNN) 。 其追踪对象如图7所示 , 不同的对象在不同时刻都被识别并锁定 。

相关经验推荐