登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 外文翻译 > 理工学类 > 能源与动力工程 > 正文

外文翻译资料

 2021-12-18 11:12  

翻译1:

Popa Alexandra ; Toderean Bianca ; Toderean Liana-Maria . Intelligent Autonomous Driving [C]2018 22nd International Conference on System Theory, Control and Computing (ICSTCC).

智能自动驾驶(节选)

1 介绍

自动驾驶辅助系统(ADAS)的常用方法依赖于全球导航卫星系统(GNSS)或差分全球定位系统,但从中获得的信息不够详细和精确。因此,惯性系统与GNSS的融合已在自动驾驶的研制中应用多年。当传感器应用在汽车的结构中时,人们对汽车的感知能力得到了提高,从而出现了新的研究路线,比如视觉里程测量技术以及步定位与测绘技术(SLAM)。

有感于汽车感知能力领域的技术改进仍在进行中,随着用于道路边界和车道线检测的三维激光扫描或用于基于巷道的路面破损连续测量和评估的二维激光图像的发展,这些方法尽可能地避免了背景噪声,使户外复杂环境作业成为可能,或消除了迭代试错的参数设置和计算。然而,线性支持向量机(LVSM)在高速公路数据车辆(DHDV)等技术上花费了不少系统处理空间,需要对其性能进行补偿。模型预测控制方法被用于不同条件下的自动驾驶。

全尺寸自动驾驶是由越来越多的公司希望解决的问题,在未来它可能是一项减少汽车事故中死亡人数的技术。目前使用的主要方法是传感器融合技术,将激光雷达、雷达、超声波和相机等传感器输入的信息处理成一个综合决策,以确保安全导航。目前,特斯拉和谷歌已经在公开声明中提出在自动驾驶技术中应用基于人工神经网络的人工智能的思想。应用传感器的协同作用可以累积成一个建立在多个传感器之上的测试基础。因此,机器学习在这一领域得到了发展。本文在设计1:10自动驾驶汽车的项目时,起始点也是人工神经网络。

本文将进一步对人工神经网络进行简要评述。其主要思想是模拟紧密相连的脑细胞,让计算机自己学习。神经网络的构成单元是神经元,它能够进行简单的计算并将信息发送给相互连接的神经元。它们被安排在只连接到相邻层的层中,每个层都完成一个特定的任务,每个任务都有各自的权重函数。信息进入每一层,并以被处理过的方式进入下一层,直到发出结果。每个网络包含一个输入和输出层以及所有其他隐藏层。输入单元接收网络将尝试学习和处理的数据,而输出单元则表示它如何响应所学习的信息。训练一个神经网络基本上意味着通过重复两个步骤校准所有的权值,前向传播和后向传播。对于正向传播,对输入数据应用一组权重,然后计算输出。权重可以随机选择,作为null,也可以作为直观的近似。对于反向传播,测量输出的误差裕度,调整权值以减小误差。因此,这些方法不断重复,直到精确地校准权值以预测输出。每一层的激活功能决定神经元是否被激活。这种激活是必要的,因为神经元不知道我们的网络应该工作的范围,所以需要一个函数使外部连接考虑到神经元的激活。理想的函数应该是确定稀疏和正确的激活,从而创建一个更高效、更轻量级的网络。

2017年,麻省理工学院发表了一项研究结果,展示了消费者对自动驾驶汽车的兴趣。在这项研究的3000名参与者中,48%的人表示,他们永远不会购买一辆完全自动驾驶的汽车。数据显示,人们对完全自动化的喜爱程度出现了一定比例的下降。所以这可以理解为是一种处理人们生活的技术。这是一项可以改进的技术,直到随着时间的推移和在各种测试中产生积极的结果。

本文考虑到小而功能适中的硬件和软件组件的局限性,并应用人工神经网络技术,对规范进行了折叠。该方法用于研究简单和入门级的控制处理,并在此基础上进一步构建系统结构。

图1 流程框图

图1给出了整个过程的MATLAB Simulink框图, 框图中给出了各功能模块的框图,便于理解。来自摄像机的输入(帧)被神经网络用来输出一个预测的角度。利用核心控制器对速度、GPS坐标和预测角度进行处理。

2 系统规范

2.1 组件

本文设计的1:10比例汽车由锂电池、带轮子的reelyelektroon -底盘ARR、模型车身、RC 540 Reely电机、转向伺服驱动器、STM核子控制板、Rasperry Pi板、 电机驱动器、增量式旋转编码器等组成。图2为组件布局示意图。两个控制器固定在汽车的后部,通过嵌套的电机驱动后轮。编码器被放置在一个相对开放的空间,电池被固定在另一边。前内侧部分布局更开放,允许相机被放置在它的支持和它的电缆带不受干扰。控制前轮的伺服电机位于前轮底盘部件的下方。

图2 汽车汽车零部件的布局

在尺寸上,该车宽20cm,长43cm, 高15cm,所参照使用的模拟道路总宽73cm, 两车道各宽35cm,边缘和中间的白线标记宽度1cm。

2.2 导航

导航是基于人工神经网络开发的,只可用Raspberry Pi camera V2,目前没有其他传感器。具体来说,通过训练一个使用Python 3.2环境开发的9层人工神经网络,可以实现在自己的车道上平稳连续行驶,不出现突发性和过于频繁的转向。

本研究案例使用了一种进入行为克隆领域的监督学习回归训练,该技术从流程中获取决策输入,并在类似的环境中模拟决策。

汽车行驶的道路上有白色的线作为两个方向的边界和中间的分界线,覆盖着一个黑暗的表面,类似于现实生活的条件。树莓派处理器的内存和处理频率的限制导致了这样一个小架构。然而,这些条件足够我们得出相关结论。利用现有的人工神经网络结构进行了几次试验,但是神经网络的尺寸超过了预期的结果。该架构受到英伟达《自动驾驶汽车的端到端学习》(End to End Leaning for Self-Driving,)一文的影响。考虑到Raspberry Pi的规格,该网络的实际培训是在一台单独机器的Intel I7处理器上进行的。训练模块输出一个可传输的模型文件,扩展名为“.ckptf”,这一文件还支持对网络的持续使用,能够通过对现有模型的培训进一步改进网络,进一步阐述了卷积神经网络(CNN)的结构,如图1所示,最终版本的神经网络包括来自实况摄像机的像素输入、标准化层、5个进化层、3个完全连接的层和输出,以返回捕获情景的转向角。形式化层在范围内映射角度。转换层响应特征提取的目的。前3个卷积层使用尺寸为5x5x3的kernel,step为2,提取plain features, 后2个卷积层使用尺寸为3x3的kernel,没有sride,选择更复杂的feature。在最后一个卷积层之后,激活映射被平面化以匹配完全连接层的输入类型,从多维数组匹配到一维数组。

在培训中,15%的训练机器在培训期间无法正常工作。

损失函数计算预测和标签之间的均方值,Adam优化器发现对输出影响最大的权重,并将其更新为修正后的值。所使用的激活函数是经典的非线性ReLu,它能很好地处理大多数情况,其函数为:

对6000多张照片进行了30代的序列训练。遍历元是在训练中更新权重的次数的度量。在经过多次测试后,我们选择了epox的数量和1e-4的学习率,并为其赋值,以确保不存在欠拟合或过拟合。为了消除直线驾驶的偏见,训练数据包含了更高比例的表示道路曲线的帧。这些照片是用两个工具在路上驾驶缩放汽车拍摄的,分别是一个gamepad应用程序和一个键盘应用程序。捕获的每一帧都需要分配一个角度,并分别保存操纵杆和键盘控件的值。相机的帧率与缓存值的频率的不同,角度的范围太小,无法准确工作。因此,大量的赋值过程和数据库都是手工插入的,人为的错误可能已经渗透到项目中。另一方面,需要手工修改,因为如果在使用操纵杆和键盘的自动分配中保存了错误的角度,则会在训练过程中经历损失函数,并相应地更新权重,从而导致预测的恶化。为了尽可能避免环境因素的干扰,需要对数据进行预处理。需要的格式是BGR,相机在这个颜色空间中记录,涉及区域被裁剪成用于训练的较小的图像。

经过所有预处理,经过人工神经网络,得到的程序达到4帧。

图3 卷积神经网络结构。该网络有大约2700万个链接和25万个参数。

2.3 GPS-like 系统

为了提供地理空间定位,在轨道上安装了一个基于“GPS like”的视频摄像机导航反馈系统。它允许车辆确定它的位置和相对于轨道作为一个参考系统,粒度为1秒。因此,实现了与正常卫星系统的并行,并带来了开发更接近传统标准的自动驾驶的可能性。

2.4 决策过程

当相机预热时,汽车决定了到达指定目的地的理想路径。轨迹图如图4所示,与实际情况相同,但它采用 .json文件的形式,其中包含一个面向图像的节点。图中的每个节点包含7个字段:名称、坐标、与其他节点的连接(前、后、左、右)以及节点的类型交叉口或车道)。在此基础上,构造了一个邻接表。邻接表中的每个arch的权值都是1,除了增加了权值的交叉口,使用Dijkstra算法,可以找到交叉口较少的路径。

图4 尺寸为8m/5.5m,坐标来自GPS的赛道实例

每个步骤都知道当前节点和以前的节点。该算法假设在队列中添加已访问节点,标记已访问字段,以证明它们的存在。当到达锁止点时,将从队列中删除当前节点,并找到另一个未访问的可能节点。在算法执行结束时,队列包含指向目标点的节点列表。它还知道在其路径上什么时候会发生交集(图中标记了来自交集的节点)。然后,汽车计算当前点、下一个点和交叉口后的点之间的夹角。如果角度是零,它会继续。否则,它就需要掌舵。有效的转向需要一个关于它将开始行动的点的修正。交叉口不采用人工神经网络进行转向。实验中取4个点的Bezier曲线作为实验轨迹。然而,由于它们不是可变的,因此需要一个理想的开始转向点,因此实现了上述校正,同时考虑到GPS的1秒粒度。这辆车在任何十字路口都能避免停车,但如果它识别出停车标志,就会停得更多。为此,使用OpenCV中的模板匹配,阈值为0.7。一个模板图像,一个停止标志照片,在源图像中搜索,每帧由相机拍摄。模板通过图像源逐个像素滑动。在每个位置都计算一个相关度量,并将其存储在一个结果矩阵中,然后对结果矩阵进行进一步研究,以找到最大值。这些值越高,在相应区域找到模板的可能性就越大。校准可以通过选择不同的阈值来比较结果矩阵值,并确定模板的存在。在成功改变方向后,算法返回到人工神经网络。

汽车的另一个任务是停车。停车场中心的坐标是已知的,因此可以得到一个同时依赖于当前坐标和理想停车点的函数。从该点开始,平行停车应用了2条Bezier曲线,具体来说,是向右的最大弯道(22度是车轮旋转的构造极限),然后是向左的最大弯道(-22度),就像司机将车靠后侧向停车一样。对公园标志的识别是决定性的,因为如果没有技术上的许可,它是不会停车的。在整个路线中,汽车以25cm/s的速度行驶,由PID控制器控制。

2.5 测试

测试采用物理赛道,如图4所示。开始和停止的位置都放在图上,以及要停车的B点。这些位置是预先给出的,因为事实上司机知道他从哪里开始他的旅程和他想要到达的地方。突变红线表示的是车辆计算出的最佳轨迹,同时也是车辆所采取的轨迹,大交叉口只经过一次,因为较小的交叉口权重较大。从一个点到另一个点,有一些数字表示GPS系统在那个位置给出的坐标。图5从观众的角度,而不是以图式的形式,展示了赛道。最初的测试由神经网络组成,只训练了大约300张照片和15代,但很明显,这种方法很可能会奏效,因为尽管训练规模很小,但通过修改数据库,这辆车只发生了几次脱轨。另一项测试是编写一个伪GPS,模仿官方跑道上的GPS,用键盘输入坐标。

在此之前,还在计算机上对寻路算法进行了测试,并进一步将其包含在手动GPS算法中。经过几次成功的测试,这些代码被包含在汽车的主程序中。

图6和图7给出了一个测试场景,负号表示方向,在这里是左边。更具体地说,当所表示的帧从相机中取出并通过神经网络时,汽车决定它应该以15度的角度向左转弯。

由于这种情况下的算法尚未实现,这辆车还没有进行过道路障碍测试。

图5 赛道鸟瞰图

图6 预测的角度

图7 汽车角度视图

3 结果和讨论

车道跟踪是成功的,但只是在特定的条件下。由于训练图像只拍摄了一次,在一天的特定时间,不同的灯光影响了图像采样准确度。网络可以选择对输出进行校准,但只能校准到某个特定的点。

网络真正需要的是更多的数据集,具有不同的环境条件,从光照到障碍物等等。更强大、更快的数据处理手段也会很有用。

Movidius stick是一个GPU(图形处理单元),可以直接连接到树莓镜头上,以便更好地进行图形处理。仅使用Numpy和Scipy Python库可以提供更快的处理结果。

在我们的例子中,项目count OpenCV和TensorFlow中包含的库,但是只使用前面提到的Python库的数学逻辑将会更好地使用内存和时间。另一个优化是可变的贝塞尔曲线和可变的停车方式。在研究中,这些参数是固定的,结果也取决于运气,特别是取决于汽车将停在哪里,以及它的方向,因为即使这些参数改变2%,也会产生不同的结果。然而,试验中很有价值的是,车辆还设法保持自己在其车道上的不同安排的轨道。

在图8中展示了汽车在新环境照明下的行为,在这种特殊情况下,这与数据采样照明距离较远。从一个3分钟的车程,汽车跟踪其车道的时间是收集和比较。

结果表明,从一开始,直到标定完全完成,汽车出现了一些脱轨,因为在它的路径上出现了不同的转弯,但从我们宣布标定完成的某一刻起,汽车就没有出现跟随直线的问题。

图8再现了一条没有十字路口的路径,只关注了光线对汽车的影响以及汽车在校准过程中的行为。图9所示为车辆行驶在不同的道路

资料编号:[4536]

您需要先支付 30元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图