英语原文共 14 页,剩余内容已隐藏,支付完成后下载完整资料
用于越野机器人导航的快速增量学习
摘要:机器学习是一种改善自动驾驶的有效方法 ,在机器学习系统中,通过获取车辆传感器的数据来创建训练数据集,输入,并为车辆输出期望的反馈结果。但是使用一个自学习导航系统的缺点是学习进程本身需要大量的训练实例和计算。为了避免收集大量驾驶实例作为训练集的需要,我们描述了这样一个系统,该系统充分利用由ImageNet提供的大量训练实例,但能够针对特定驾驶环境的小型训练集快速适应。
1.介绍
尽管在自动驾驶汽车领域已经取得了令人瞩目的进步,但在越野区域的自动导航仍然是一个尚未解决的问题。这项挑战的困难在于,当无人驾驶的地面车辆离开相对较好的道路时,它会面临路况的巨大不确定性。尽管有可能创建一个基于规则的系统,它将所有可能出现的情况都编码呈现到车辆中,但是这样的方法很脆弱,在遇到新环境时往往会失败。
机器学习是一种更有前景的改进自主驾驶方法。通过获取车辆传感器的数据来创建训练数据集并产生出期望的结果,这些反馈可由最初对车辆进行远程操作的人类驾驶员提供,或者可以从车辆的先前驾驶记录中收集。
目前已经有许多使用基于颜色或纹理的手工制造特征来学习可驾驶和不可驾驶地形的系统(参见例如Sofman 2010)。 近年来,特征是通过学习产生而非人为手工制造的卷积神经网络工具[ConvNets](LeCun等人1989提出),,已被证明是在海量的图像识别任务中最准确的。(参见例如Krizhevsky等人2012)
使用自学习的导航系统的一个缺点是学习过程本身可能需要大量的训练实例和大量的计算。 举例说明,ImageNet竞赛中使用的最精确的网络(ILSVRC 2014)训练了超过一百万个训练实例,并且经常需要数天的强大处理器集群的训练。 虽然这种要花费昂贵的代价培训可能适用于某些应用,但对于必须快速适应并且只有有限的训练数据的系统而言,这种代价是不可接受的。因此,这里我们描述一个系统,该系统充分利用ImageNet提供的大量训练实例,但它能够使用小型训练集快速适应。
2系统概述图
我们的实验使用CoroBot Jr机器人作为测试平台进行的。 Corobot通过独立改变四轮电机的转速进行转向操纵。 我们的Corobot增加了Point Grey Bumblebee立体相机,GPS(在手机上)和NVIDIA Jetson GPU / CPU板等设备。 摄像机安装在延伸杆上以提供更好的地形视野。 参见图1.各种组件通过使用机器人操作系统(ROS)框架相互通信。
图片1测试环境中的CoroBot机器人:Bayonet农场,HolmdelNJ
我们的CoroBot机器人能够穿越几厘米高的障碍物,但它可能会卡在厚厚的或潮湿的草地。
导航系统由一个地形分类器,成本地图和简单的路径规划器组成。 电机控制单元使用路径规划器的输出向CoroBot电机发出驱动命令。
我们研究的主要目标是实现一个可以迅速适应新环境的地形分类器,因此,本文的主要关注的讨论点就是这个分类器。
为了检测初始的障碍物集合,我们通过处理立体相机的图像来建立一个三维点云。然后使用三维Hough平面变换拟合器计算出接地面。在接地平面被计算出来后,基于点云里面的元素离该平面的距离可以被标记为障碍或者是可穿越的。
然后根据已经经过的点云,创建出代价地图和标记图像。
导航系统根据代价地图和目标位置计算出最优的行驶方向。轨迹规划器结合离障碍物的距离得出行驶方向来使Corobot避免障碍物。
单纯从上述三维数据中获取的代价地图对于越野导航来说是次优的,例如,了解超过三维传感器的检测范围以外的地形对于高效的路径规划来说是至关重要的。因此,三维数据可能错误地把草标记为障碍而把泥泞标记为可驾驶通过的。
由于这些原因我们建立了一个允许我们为特殊的地形修正代价地图的机制。我们使用如下的步骤。
图2。立体数据(左)和相应的立体地图(右)的例子。红色表示检测到的障碍物,绿色表示可行驶的地形。
来自相机的图片被扫描成59*59像素的小块,一个专门的Convnet(后面会论述)识别每个小块的中心,以此区分小块为“可通过的”或者“障碍”。因此,分类器被获取用来修正代价地图——如果代价地图中的一个障碍的高度比预定阈值要高,通常是4cm,不用做任何改变——我们认为任何比这高的障碍对于CoroBot来说都是不可通过的。对于代价地图中与或者低于阈值的障碍,代价由ConvNet确定。这种方式下,低于阈值高度的草会被标记为可通过的,然而能阻止车辆通过的泥水坑也能够被标记为障碍。
3.训练ConvNets
为了建立准确的分类器,需要带有多种权重的ConvNets。训练这些权重需要许多的标记训练实例。仅仅通过来自CoroBot相机的图像来获取足够的训练实例是不可行的,因为那会需要进行广泛的人工标记。幸运的是,ImageNet数据库是一个有前景和高效的选择。ImageNet包括了大概1000000张图片被分类成1000个标记种类。在过去的几年里,对ConvNets研究的不断推进使得对ImageNet测试数据分类精度的巨大进步。我们已经能够依靠这一进展。
我们的系统是基于在ImageNet上训练过的卷积神经网络。然后,我们保留了这些经过训练的卷积神经网络的一些初始层,作为我们的导航任务的特征提取器。然后使用从我们驾驶环境中的图像中提取的59 x 59补丁中提取的特性创建一个单独的导航训练集。我们使用的是补丁,而不是单一的标签像素,因为我们假设在问题的像素周围有“上下文”可以改进分类。
这些小块补丁的一个子集被人工标记以识别可能被立体相机错误分类的区域。接下来,使用这些特征或标记对来训练一个单层的感知机。也就是说,每个训练示例对都包含一个特征向量,该特征向量是由应用于这些补丁的特征提取器采集的,这些补丁分为可通过的或者不可通过的。经过这些几秒钟的训练后,得到了一种新的分类器,结合了图像生成特征提取和自定义地形分类。,这个新的分类器被用于标记没有使用立体相机的新图片的地形。
上述策略是一个“迁移学习”的实例,即专为一个任务设计的系统(本例为ImageNet分类法)被赋予新的用途去执行别的任务(地形分类)。
3.1ImageNet学习
我们在图片3中展示了ConvNet的体系结构。在训练过程中,我们ConvNet的输入有3个输入图像RGB层,每个都是来自ImageNet数据库的大小为119*119像素的图片。
- 第一个层对输入应用64个过滤器,每个8x8个像素。第一层使用4 x4的步长,因此它产生的地图是28 x28。这个卷积步骤随后是一个阈值操作,以及一个最大池函数,它将大小为2x2的区域池化,并使用2x2的步长。该操作的结果是一个64x14x14数组,它表示一个14x14映射的64维特征向量。每个单元的输入图像的接受域在这个阶段是8times;8
- 第二层(conv 池)与第一个非常类似,除了现在64维特征向量被映射到96维的地图(5x5大小的过滤器)。完整层(conv 池)的结果是一个96x5x5数组。
- 在最后一个阶段,96维特征向量的5x5数组被处理为一个2400维向量,它被反馈给一个有1536个隐藏单元以及1000个输出类的2层分类器。
3.1.1培训过程的细节
为了加速神经网络训练,使用了NVIDIA GTX泰坦GPU显卡进行并行训练,
15000个批次的64119 x 119 RGB图像的ImageNet图像作为培训输入和它们的ImageNet分类标签一起准备。唯一的预处理是扣除从每个像素上计算的第一批次(洗好的)10000个图像的平均RGB值。
我们使用动量设置为0.08随机梯度下降法来训练神经网络,学习率是根据公式来计算的,并且每次迭代乘以0.96。该神经网络由下一节所描述的4个数据集组成,并将在一个装有NVIDIA GTX泰坦显卡的系统中训练一个星期。
3.1.2数据集扩充
通过反复转换训练实例来扩充数据集是一个常用的用来减少神经网络的泛化误差的方法。转换在训练时应用而且不影响运行时性能。
我们将ImageNet图像缩放到128 x 128像素大小,并从中提取出大小为119*119的训练补丁。然后,我们根据以下规则随机旋转、缩放和剪断这些训练片。
- 翻转:水平翻转25%的样本,垂直翻转25%的样本,都翻转25%的样本,没有变化的样本为25%。
- 比例:在0.83到1.2之间随机选择一个比例因子
- 旋转:在-30- 30度范围内随机选择一个旋转角度。
- 改变水平方向和垂直方向(-5-5个像素),并将产量调整为119 x 119。
因此,训练数据包含4个子集,每个子集都从ImageN是et初始数据中获得。
3.1.3地形分类任务
我们的目标并不是创造最好的ImageNet分类器,而是研究 (倒数第二的输出层在我们网络)可以用于线性网络的快速培训的特征向量,该线性网络使用导航传感器提取的数据加上标签地形类作为训练样本作为输入。随着特征提取层的权重被冻结,以及使用这些特征/标签对的一个或多个隐藏层的完全连接神经网络,我们创建了一个在导航时使用的分类器。
我们神经网络被设计用于在已知地形类型区域图片集上进行训练,这些图片可以从立体相机的数据获取,或者通过人手工标记获取。然后,神经网络会将未识别的区域————通常是来自相同的环境的一个个全新的框架进行分类。
这些补丁是59*59像素的,也就是说,每个训练实例都包含一个来自特征提取器的特征向量,这个特征向量被应用到补丁中,之后这个小块被标记为“可通过的”或“障碍”。
4实现细节
4.1传感器
为了处理相机拍摄的图片,并更好的与开放的ROS环境相结合,消除和专有立体处理库的依赖,我们给机器人操作系统添加了图像管道栈。这个ROS堆栈提供了一套用于立体图像处理、可视化和相机校准的模块。立体图像处理从我们的定制相机驱动中拍摄了大黄蜂相机的原始图像,并对左边和右边的相机进行了图像校正(失真校正和校正)和色彩处理。ROS的图像管道堆栈在两个原始图像上执行了所需的过程,最终创建了点云。
4.2分类
在当前的项目中,使用了“火炬7”(一种支持大量机器学习算法的科学计算框架),因为它提供了一种简单、模块化的构建和训练简单或复杂的神经网络的方法。作为导航系统的一部分,分类算法通过一个特殊的库被集成到ROS环境中,该库将图像转换为Torch中的张量,方便了卷积神经网络的处理。卷积神经网络为每个像素返回了分类标签。
分类器可以实时进行训练,也可以在不同的图像被人收集和标记后进行训练。分类器的训练可以在外部计算机上完成,也就是用来控制越野的机器人的笔记本电脑。使用支持GPU的笔记本电脑可以在几秒钟内完成训练。训练后,新的分类器被上传到机器人上。
5.结果和讨论
5.1
我们会手动标记那些仅仅依靠立体相机会被错误分类的地形。人类手动标记一张或者几张有代表性区域的图片,然后我们把这些标记应用到同样环境下的多种图片中。如图4所示,从不同的场景中选择几张图片,红色和绿色的标记相应分别表示人手工标记为障碍或者可通过的区域(左边部分),和相应的分类结果(右边)。在上面的图片中,平坦的白雪覆盖地面被标记为障碍,而人行道被分类为可通过的。
在图4下边部分中,有小植被的区域被分类为可通过的,而有灌木丛和树的区域被分类为障碍。虽然结果并不完美,但它们清晰地显示带有小植物的地形为“可通过的”,而单使用立体相机的这杯分类为有障碍的区域。
5.2导航
卷积神经网络可以在被手工标记一小部分代表性区域的当前环境图片中进行实时训练。如前所述,用于手工标记的补丁来自于仅仅通过立体相机会被不恰当分类的区域。我们使用如下步骤将来自卷积神经网络的标记与点云结合到代价地图中。
首先,立体相机被用来识别在地面上延伸超过一个操作员设定的阈值的障碍物,该阈值通常为15厘米。对于小于这个阈值的物体,从卷积神经网络获得的标签用于分类。如果立体相机无法提供高度估计,例如没有足够特征来测量视差的表面的情况,我们就简单地使用从卷积神经网络获得的标签。
下面我们给出了在不同环境下运行机器人的结果。可以在网上找到相应的视频。
https://www.youtube.com/watch?v = zesKN_1i9VA https://www.youtube.com/watch?v = AXFupI_Nz8E https://www.youtube.com/watch?v=gDFQhFbX3oU
5.2.1纽约大学大厅
在这个实验中,我们教机器人在地毯上行驶,同时避免了地板的其他部分。图6中显示了人类标记的图像。
正如前面所讨论的,一旦分类器被训练,一个代价地图就由自学习的分类器和立体相机共同构建。请参见图7
5.2.2Bauonet农场
在本次实验中我们展示了一种人为标记户外场景(图片8),使用GPS传感器定位。
立体相机给了我们可信赖的信息,但是我们不想驾驶越过这些草地。通过训练分类器学习人为标记,我们为导航建造了期望的代价地图。在看图片9.图片的左边部分展示了立体相机标记为大部分区域都被标记为可以通过的。图片中部的标记展示了使用图片9中的人为标记。图片右侧展示了合成的代价地图。
5.2.3网景的后院
在这个实验场景中,立体相加会把草分类为是一个障碍,但我们想让机器人可以在草地上和水泥人行道上行
全文共5792字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[11067],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。