一种基于视觉时序推理的自动驾驶方法及系统
文献发布时间:2023-06-19 10:40:10
技术领域
本发明涉及自动驾驶技术领域,特别是涉及一种基于视觉时序推理的自动驾驶方法及系统。
背景技术
自动驾驶技术被认为是建设未来智慧城市和智慧交通的重点技术。随着我国道路交通事业的飞速发展,汽车保有量不断增长,随之而来的道路交通安全问题也成为影响公众生命和财产安全巨大威胁,成为关注焦点。未按操作规范驾驶、酒后驾驶、疲劳驾驶、超速驾驶、不规范驾驶等人为因素是导致大部分的交通事故的主要原因。同时,违规停车、随意超车等行为也引发了交通拥挤现象,影响正常公共交通秩序。自动驾驶技术的应用能够解决当前的一些交通问题现状,为我们带来一个更加高效、便捷、智慧的新型智能交通体系和新型智慧城市。
近年来,谷歌、特斯拉、英伟达、百度、Momenta等多个公司都投入大量精力研究自动驾驶的无人车辆。国家也颁布了一系列相关政策,来大力支持自动驾驶的研究和应用。传统的自动驾驶技术研究方法过多依赖于激光测距仪、GPS、激光雷达和高精度地图等较为昂贵的辅助传感组件,成本制约限制了其大规模应用与发展;单纯依赖单状态驾驶视觉信息的研究方法,受困于对复杂驾驶场景感知不丰富的限制,在安全性和精准性上都有待提升和优化。
发明内容
本发明提供一种基于视觉时序推理的自动驾驶方法及系统,解决现有问题中自动驾驶的安全性较差及精准性较低的技术问题,实现一种具有高泛化性、高可用性,高安全性的自动驾驶方法及系统。
本发明一个实施例提供一种基于视觉时序推理的自动驾驶方法,包括:
根据车辆的自动驾驶数据,提取与每个驾驶时刻对应的驾驶视觉场景图片序列;其中,所述自动驾驶数据包括驾驶视觉场景图片和示例驾驶行为动作,所述驾驶视觉场景图片序列包括历史驾驶视觉场景图片序列和未来驾驶视觉场景图片序列;
对所述历史驾驶视觉场景图片序列进行特征提取及自动驾驶策略网络处理,生成预测的驾驶行为动作及未来低维度特征向量表示;
对所述未来驾驶视觉场景图片序列进行特征提取,并将得到的值与所述未来低维度特征向量表示进行均方差误差损失统计,得到第一误差数据;
根据所述预测的驾驶行为动作及所述示例驾驶行为动作进行均方差误差损失统计,得到第二误差数据;
将所述第一误差数据及所述第二误差数据进行加权计算,得到总误差函数;
根据所述误差函数对自动驾驶网络模型进行更新迭代,得到损失函数值;
当所述损失函数值低于第一阈值或迭代次数大于第二阈值时,结束对自动驾驶网络模型进行更新迭代。
进一步地,所述对所述历史驾驶视觉场景图片序列进行特征提取及自动驾驶策略网络处理,生成预测的驾驶行为动作及未来低维度特征向量表示,包括:
对所述历史驾驶视觉场景图片序列进行特征提取,得到历史低维度特征向量表示;
根据所述历史低维度特征向量表示经过自动驾驶策略网络处理,生成预测的驾驶行为动作;其中,生成驾驶行为动作的过程中生成动作特征向量;
根据所述历史低维度特征向量表示及所述动作特征向量,得到未来低维度特征向量表示。
进一步地,所述对所述历史驾驶视觉场景图片序列进行特征提取,得到历史低维度特征向量表示,包括:
通过卷积神经网络处理高维度的历史驾驶视觉场景图片序列,产生历史驾驶场景下的具有视觉特性的中间特征变量序列;
通过循环神经网络模型根据所述中间特征变量序列,产生既具有视觉特性又具有时序特性的历史低维度特征向量表示。
进一步地,所述对所述未来驾驶视觉场景图片序列进行特征提取,并将得到的值与所述未来低维度特征向量表示进行均方差误差损失统计,得到第一误差数据,包括:
对所述未来驾驶视觉场景图片序列进行特征提取,得到未来低维度向量表示;
根据所述未来低维度向量表示及所述未来低维度特征向量表示进行均方差误差损失统计,得到第一误差数据。
本发明一实施例提供一种基于视觉时序推理的自动驾驶系统,包括:
驾驶视觉场景图片序列提取模块,用于根据车辆的自动驾驶数据,提取与每个驾驶时刻对应的驾驶视觉场景图片序列;其中,所述自动驾驶数据包括驾驶视觉场景图片和示例驾驶行为动作,所述驾驶视觉场景图片序列包括历史驾驶视觉场景图片序列和未来驾驶视觉场景图片序列;
历史驾驶特征提取及自动驾驶策略网络处理模块,用于对所述历史驾驶视觉场景图片序列进行特征提取及自动驾驶策略网络处理,生成预测的驾驶行为动作及未来低维度特征向量表示;
第一均方差误差损失统计模块,用于对所述未来驾驶视觉场景图片序列进行特征提取,并将得到的值与所述未来低维度特征向量表示进行均方差误差损失统计,得到第一误差数据;
第二均方差误差损失统计模块,用于根据所述预测的驾驶行为动作及所述示例驾驶行为动作进行均方差误差损失统计,得到第二误差数据;
加权计算模块,用于将所述第一误差数据及所述第二误差数据进行加权计算,得到总误差函数;
损失函数值计算模块,用于根据所述误差函数对自动驾驶网络模型进行更新迭代,得到损失函数值;
终止模块,用于当所述损失函数值低于第一阈值或迭代次数大于第二阈值时,结束对自动驾驶网络模型进行更新迭代。
进一步地,,所述历史驾驶特征提取及自动驾驶策略网络处理模块,包括:
历史驾驶特征提取子模块,用于对所述历史驾驶视觉场景图片序列进行特征提取,得到历史低维度特征向量表示;
历史自动驾驶策略网络处理子模块,用于根据所述历史低维度特征向量表示经过自动驾驶策略网络处理,生成预测的驾驶行为动作;其中,生成驾驶行为动作的过程中生成动作特征向量;
未来低维度特征向量表示获取子模块,用于根据所述历史低维度特征向量表示及所述动作特征向量,得到未来低维度特征向量表示。
进一步地,,所述历史驾驶特征提取子模块,包括:
视觉特性提取子模块,用于通过卷积神经网络处理高维度的历史驾驶视觉场景图片序列,产生历史驾驶场景下的具有视觉特性的中间特征变量序列;
时序特性提取子模块,用于通过循环神经网络模型根据所述中间特征变量序列,产生既具有视觉特性又具有时序特性的历史低维度特征向量表示。
进一步地,,所述第一均方差误差损失统计模块,包括:
未来驾驶特征提取子模块,用于对所述未来驾驶视觉场景图片序列进行特征提取,得到未来低维度向量表示;
第一误差数据生成子模块,用于根据所述未来低维度向量表示及所述未来低维度特征向量表示进行均方差误差损失统计,得到第一误差数据。
本发明一实施例提供一种电子装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现任意一项所述的基于视觉时序推理的自动驾驶方法。
本发明一实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行任意一项所述的基于视觉时序推理的自动驾驶方法。
与现有技术相比,本发明实施例的有益效果在于:
1.相比于传统依赖多传感器与规则制定的自动驾驶方法,本发明基于驾驶视觉信息,最大化模拟人类驾驶员驾驶习惯。且相对于仅利用场景视觉特性的学习方法,本发明引入了时间序列特性(历史车辆运动轨迹,道路状态变化,驾驶场景环境变化)的信息,充分感知驾驶视觉场景下的特征内容,增加了自动驾驶系统学习的准确性。
2.本发明的视觉时序推理模块,引入了视觉时序推理的方式。通过当前状态与预测行为推理未来驾驶状态,并将预测的未来状态与示例未来状态的差异反馈作为学习约束,使得自动驾驶系统具有驾驶推演的能力,极大的提高了自动驾驶系统的安全性与准确性。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明某一实施例提供的一种基于视觉时序推理的自动驾驶方法的流程图;
图2是本发明另一实施例提供的一种基于视觉时序推理的自动驾驶方法的流程图;
图3是本发明另一实施例提供的一种基于视觉时序推理的自动驾驶方法的流程图;
图4是本发明又一实施例提供的一种基于视觉时序推理的自动驾驶方法的流程图;
图5为本发明某一实施例提供的一种基于视觉时序推理的自动驾驶学习方法步骤流程图;
图6为本发明某一实施例提供的一种基于视觉时序推理的自动驾驶学习方法的网络框架示意图;
图7是本发明某一实施例提供的一种基于视觉时序推理的自动驾驶系统的装置图;
图8是本发明另一实施例提供的一种基于视觉时序推理的自动驾驶系统的装置图;
图9是本发明另一实施例提供的一种基于视觉时序推理的自动驾驶系统的装置图;
图10是本发明又一实施例提供的一种基于视觉时序推理的自动驾驶系统的装置图;
图11为本发明某一实施例提供的一种基于视觉时序推理的自动驾驶系统架构图;
图12为本发明某一实施例提供的基于视觉时序推理的自动驾驶系统的结构示意图;
图13是本发明某一实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
第一方面。
请参阅图1-4,本发明提供一种基于视觉时序推理的自动驾驶方法,包括:
S10、根据车辆的自动驾驶数据,提取与每个驾驶时刻对应的驾驶视觉场景图片序列;其中,所述自动驾驶数据包括驾驶视觉场景图片和示例驾驶行为动作,所述驾驶视觉场景图片序列包括历史驾驶视觉场景图片序列和未来驾驶视觉场景图片序列。
具体地,所述历史驾驶视觉场景图片序列和未来驾驶视觉场景图片序列,依据当前驾驶时刻与指定序列窗口长度对其进行划分。
S20、对所述历史驾驶视觉场景图片序列进行特征提取及自动驾驶策略网络处理,生成预测的驾驶行为动作及未来低维度特征向量表示。
在某一具体实施例中,S20、对所述历史驾驶视觉场景图片序列进行特征提取及自动驾驶策略网络处理,生成预测的驾驶行为动作及未来低维度特征向量表示,包括:
S21、对所述历史驾驶视觉场景图片序列进行特征提取,得到历史低维度特征向量表示。
在某一具体实施方式中,S21、史驾驶视觉场景图片序列进行特征提取,得到历史低维度特征向量表示,包括:
S211、通过卷积神经网络处理高维度的历史驾驶视觉场景图片序列,产生历史驾驶场景下的具有视觉特性的中间特征变量序列。
S212、通过循环神经网络模型根据所述中间特征变量序列,产生既具有视觉特性又具有时序特性的历史低维度特征向量表示。
S22、根据所述历史低维度特征向量表示经过自动驾驶策略网络处理,生成预测的驾驶行为动作;其中,生成驾驶行为动作的过程中生成动作特征向量。
S23、根据所述历史低维度特征向量表示及所述动作特征向量,得到未来低维度特征向量表示。
S30、对所述未来驾驶视觉场景图片序列进行特征提取,并将得到的值与所述未来低维度特征向量表示进行均方差误差损失统计,得到第一误差数据。
在某一具体实施方式中,S30、对所述未来驾驶视觉场景图片序列进行特征提取,并将得到的值与所述未来低维度特征向量表示进行均方差误差损失统计,得到第一误差数据,包括:
S31、对所述未来驾驶视觉场景图片序列进行特征提取,得到未来低维度向量表示。
S32、根据所述未来低维度向量表示及所述未来低维度特征向量表示进行均方差误差损失统计,得到第一误差数据。
S40、根据所述预测的驾驶行为动作及所述示例驾驶行为动作进行均方差误差损失统计,得到第二误差数据。
S50、将所述第一误差数据及所述第二误差数据进行加权计算,得到总误差函数。
S60、根据所述误差函数对自动驾驶网络模型进行更新迭代,得到损失函数值。
S70、当所述损失函数值低于第一阈值或迭代次数大于第二阈值时,结束对自动驾驶网络模型进行更新迭代。
在某一具体实施例中,请参阅图5-6,本发明提供一种基于视觉时序推理的自动驾驶学习方法,包括如下步骤和详细内容:
步骤S1,获取包括驾驶场景视觉图片与示例驾驶行为动作的自动驾驶数据集,对于每一个驾驶状态t下的样本,选取其前序列长度为窗口长度n的图片作为历史驾驶视觉场景序列,选取其序列长度为窗口长度的图片作为示例未来驾驶视觉场景序列。
具体地,如图6所示,在t时刻,历史驾驶场景视觉图片序列{S
步骤S2,通过驾驶场景视觉信息特征提取模块对历史驾驶视觉场景序列进行特征提取,获得历史低维度特征向量表示O
具体地,如图6所示,对于其中每一个S
步骤S3,根据历史低维度特征向量表示O
具体地,如图6所示,如果令上层全连接层的参数为w
下层全连接层为策略网络输出层,产生具体的驾驶执行动作
具体地,如图6所示,如果令下层全连接层的参数为w
在本发明中,由于使用的为CARLA高保真自动驾驶仿真环境的数据集,因此,
steer∈(-1,1),accelerator∈(0,1),brake∈(0,1)
步骤S4,根据步骤S2产生的历史低维度特征向量表示O
具体地,如图6所示,如果令视觉时序推理网络的参数为w
步骤S5,将步骤S1中示例未来驾驶场景视觉图片序列{S
将步骤S3结果
以两者加权和作为总误差函数,对全部网络模型参数进行更新与学习,令α,β为权重,则:
步骤S6,当损失函数结果低于一定阈值,或迭代次数大于一定阈值时,结束。
第二方面。
请参阅图7-10,本发明提供一种基于视觉时序推理的自动驾驶系统,包括:
驾驶视觉场景图片序列提取模块10,用于根据车辆的自动驾驶数据,提取与每个驾驶时刻对应的驾驶视觉场景图片序列;其中,所述自动驾驶数据包括驾驶视觉场景图片和示例驾驶行为动作,所述驾驶视觉场景图片序列包括历史驾驶视觉场景图片序列和未来驾驶视觉场景图片序列。
具体地,所述历史驾驶视觉场景图片序列和未来驾驶视觉场景图片序列,依据当前驾驶时刻与指定序列窗口长度对其进行划分。
历史驾驶特征提取及自动驾驶策略网络处理模块20,用于对所述历史驾驶视觉场景图片序列进行特征提取及自动驾驶策略网络处理,生成预测的驾驶行为动作及未来低维度特征向量表示。
在某一具体实施方式中,所述历史驾驶特征提取及自动驾驶策略网络处理模块20还包括:
历史驾驶特征提取子模块21,用于对所述历史驾驶视觉场景图片序列进行特征提取,得到历史低维度特征向量表示。
在某一具体实施方式中,所述历史驾驶特征提取子模块21还包括:
视觉特性提取子模块211,用于通过卷积神经网络处理高维度的历史驾驶视觉场景图片序列,产生历史驾驶场景下的具有视觉特性的中间特征变量序列。
时序特性提取子模块212,用于通过循环神经网络模型根据所述中间特征变量序列,产生既具有视觉特性又具有时序特性的历史低维度特征向量表示。
历史自动驾驶策略网络处理子模块22,用于根据所述历史低维度特征向量表示经过自动驾驶策略网络处理,生成预测的驾驶行为动作;其中,生成驾驶行为动作的过程中生成动作特征向量。
未来低维度特征向量表示获取子模块23,用于根据所述历史低维度特征向量表示及所述动作特征向量,得到未来低维度特征向量表示。
第一均方差误差损失统计模块30,用于对所述未来驾驶视觉场景图片序列进行特征提取,并将得到的值与所述未来低维度特征向量表示进行均方差误差损失统计,得到第一误差数据。
在某一具体实施方式中,所述第一均方差误差损失统计模块30还包括:
未来驾驶特征提取子模块31,用于对所述未来驾驶视觉场景图片序列进行特征提取,得到未来低维度向量表示。
第一误差数据生成子模块32,用于根据所述未来低维度向量表示及所述未来低维度特征向量表示进行均方差误差损失统计,得到第一误差数据。
第二均方差误差损失统计模块40,用于根据所述预测的驾驶行为动作及所述示例驾驶行为动作进行均方差误差损失统计,得到第二误差数据。
加权计算模块50,用于将所述第一误差数据及所述第二误差数据进行加权计算,得到总误差函数。
损失函数值计算模块60,用于根据所述误差函数对自动驾驶网络模型进行更新迭代,得到损失函数值。
终止模块70,用于当所述损失函数值低于第一阈值或迭代次数大于第二阈值时,结束对自动驾驶网络模型进行更新迭代。
在某一具体实施例中,请参阅图11-12,本发明提供一种基于视觉时序推理的自动驾驶系统,包括:
驾驶场景视觉信息特征提取模块10,用于处理高维度的驾驶视觉场景图片,通过神经网络模型对驾驶视觉场景序列进行特征提取,得到具有视觉特性与时序关联特性的驾驶场景低维度特征向量表示;
在本发明具体实施例中,具体地,驾驶场景视觉信息特征提取模块10进一步包括:
单状态视觉场景特征提取模块100,由卷积神经网络(CNN)组成,包含四层卷积层与四层池化层。某一时刻下驾驶场景的单张图片经过该模块时,不同尺寸的卷积核负责感知驾驶场景中与驾驶相关的关键特征,和池化层共同作用减少输入维度,最终产生单状态驾驶场景下的具有视觉特性的中间特征变量。在驾驶场景下,这类视觉特性特征通常包括当前车辆状态,当前道路状态,驾驶场景天气与周围环境的信息等;
时序特征提取模块101,由循环神经网络中长短期记忆单元(LSTM)构成。驾驶场景图片序列分别经过单状态视觉场景特征提取模块100处理后,其产生的中间特征变量可以按照原时间秩序形成序列。时序特征提取模块101负责对此序列向量进行特征提取,在驾驶场景下,时序性特征通常包括历史车辆运动轨迹,道路状态变化,驾驶场景环境变化等。至此,产生了既具有视觉特性又具有时序特性的低维度特征向量表示。
一般仅使用视觉场景特征的系统,由于忽略了驾驶场景之间的关联性与时序性,其特征丰富程度受限,导致最终预测驾驶行为动作时,无法得到较好的效果。本发明通过构建带有卷积神经网络的单状态视觉场景特征提取模块100以及带有长短期记忆单元的时序特征提取模块101,能够充分的提取驾驶视觉场景下丰富的特征内容。
自动驾驶策略模块11,根据驾驶场景视觉信息特征提取模块10对驾驶视觉场景序列提取低维度特征向量表示,以该低维度特征向量表示为输入,产生当前时刻下应执行的驾驶行为动作;该模块主要有两部分全连接层组成:上层全连接层为策略网络隐含层,其主要目的是产生动作特征向量,与驾驶场景视觉信息特征提取模块10的输出一同为预测未来状态提供知识;下层全连接层为策略网络输出层,产生具体的驾驶执行动作。
视觉时序推理模块12,根据驾驶场景视觉信息特征提取模块10对历史驾驶视觉场景序列提取的低维度特征向量表示,与自动驾驶策略模块11过程中的动作特征向量,推理得到当前状态下执行当前行为后预测的未来驾驶视觉场景内容。
第三方面。
本发明提供了一种电子设备,该电子设备包括:
处理器、存储器和总线;
所述总线,用于连接所述处理器和所述存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,可执行指令使处理器执行如本申请的第一方面所示的一种基于视觉时序推理的自动驾驶方法对应的操作。
在一个可选实施例中提供了一种电子设备,如图13所示,图13所示的电子设备5000包括:处理器5001和存储器5003。其中,处理器5001和存储器5003相连,如通过总线5002相连。可选地,电子设备5000还可以包括收发器5004。需要说明的是,实际应用中收发器5004不限于一个,该电子设备5000的结构并不构成对本申请实施例的限定。
处理器5001可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器5001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线5002可包括一通路,在上述组件之间传送信息。总线5002可以是PCI总线或EISA总线等。总线5002可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器5003可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器5003用于存储执行本申请方案的应用程序代码,并由处理器5001来控制执行。处理器5001用于执行存储器5003中存储的应用程序代码,以实现前述任一方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。
第四方面。
本发明提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面所示的一种基于视觉时序推理的自动驾驶方法。
本申请的又一实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。
- 一种基于视觉时序推理的自动驾驶方法及系统
- 一种基于交通元素视觉增强的深度学习的自动驾驶方法及系统