为了安全高效地在道路上行驶,自动驾驶汽车必须具有像人类驾驶员一样预测周围交通参与者行为的能力。目前,轨迹预测的相关研究受到了越来越多的重视。这篇文章主要解决轨迹预测的一个难点,即预测的多模态。同时,这篇文章的另一个亮点是通过卷积光栅图像来实现预测。作者通过实验得到了目前最优的预测效果。这篇文章对轨迹预测相关领域的研究具有一定的学习和参考价值。
无论是在难度还是潜在的社会影响方面,自动驾驶是目前人工智能领域面临的最大问题之一。自动驾驶车辆(SDVs)有望在改善更多人的生活质量的同时,减少道路事故,挽救数百万人的生命。然而,尽管有大量的关注和在自动驾驶领域工作的行业参与者,为了开发一个能与最好的人类驾驶员操作水平相当的系统,仍有许多工作要做。其中一个原因是交通行为的高度不确定性以及SDV在道路上可能遇到的大量情况,使得很难创建一个完全通用的系统。为了确保安全和高效的运行,自动驾驶车辆需要考虑到这种不确定性,并预测周围交通参与者的多种可能行为。我们解决了这个关键问题,并提出了一种方法来预测多个可能的轨迹,同时估计它们的概率。该方法将每个参与者的周围环境编码成一个光栅图像,作为深度卷积网络的输入,以自动获得任务的相关特征。经过大量的离线评估和与最新基准的比较,该方法成功地在SDVs上完成了封闭道路测试。近年来,人工智能(AI)应用领域取得了前所未有的进展,智能算法迅速成为我们日常生活中不可或缺的一部分。举几个影响了数百万人的例子:医院使用人工智能方法来帮助诊断疾病[1],婚介服务使用学习的模型来连接潜在的夫妇[2],而社交媒体订阅源则通过算法[3]来构建。尽管如此,人工智能革命仍远未结束,并有可能在未来几年进一步加速。有趣的是,汽车领域是主要的产业之一,目前为止人工智能的应用还很有限。大型汽车制造商通过在高级驾驶辅助系统(ADAS)中使用人工智能(AI)取得了一些进展[5],然而,它的全部能力仍有待通过新的智能技术的出现加以利用,例如自动驾驶汽车(SDVs)。尽管驾驶车辆对许多人来说是很平常的活动,但也是一项危险任务,甚至对于有几年经验的人类驾驶员来说也是如此[6]。虽然汽车制造商正努力通过更好的设计和ADAS系统来提高汽车安全性,但年复一年的统计数据表明,仍有许多工作要做来扭转公共道路上的负面趋势。尤其是2015年美国的车祸死亡人数占总死亡人数的5%以上[7],绝大多数车祸都是人为因素造成的[8]。不幸的是,这并不是最近才出现的问题,几十年来,研究人员一直在试图了解其原因。研究包括调查司机分心的影响[9]、酒精和毒品使用[10]、[11]和司机年龄[6]等因素,以及如何最有效地让司机接受自己是易犯错误的并最高效地影响他们的行为[12]。毫不奇怪,现有文献中的一个共同主题是,人类是交通系统中最不可靠的部分。这可以通过SDV的发展和广泛应用来改善。硬件和软件技术的最新突破使这一前景成为可能,为机器人和人工智能领域打开了大门,从而可能产生迄今为止最大的社会影响。自动驾驶技术已经发展了很长一段时间,最早的尝试可以追溯到20世纪80年代,关于AL-VINN的研究[13]。然而,直到最近,技术进步才达到一个可以更广泛使用的程度,例如2007年DARPA城市挑战的结果[14],[15]。在这里,参赛队伍必须在复杂的城市环境中导航,处理公共道路上常见的情况,并与人和机器人驾驶的车辆进行互动。这些早期的成功激发了人们对自动驾驶领域的极大兴趣,许多行业参与者(如Uber和Waymo)和政府机构正竞相为实现SDVs建立技术和法律基础。然而尽管取得了进展,仍有更多的工作要做,来使SDVs以人的水平运作并充分商业化。要在现实世界中安全有效地运行,一个关键的难题是正确地预测周围参与者的运动,一个成功的系统还需要考虑到他们固有的多模态特性。我们专注于这项任务,并以我们部署的基于深度学习的工作[16]为基础,创建了编码高清地图和环境的鸟瞰图(BEV)光栅,以预测参与者的未来,并提出以下贡献:(1)我们扩展了现有技术,提出了一种方法,取代单一轨迹的推断,而给出了多条轨迹及其概率;(2) 在对多假设方法进行广泛的离线研究之后,该方法成功地在SDV上进行了封闭道路测试。
图1显示了我们的模型如何捕获未来6秒轨迹的多模态。该方法使用光栅化的车辆上下文(包括高清地图和其他参与者)作为模型输入,以预测参与者在动态环境中的运动[16]。当车辆接近交叉口时,多模态模型(其中我们将模态数设置为2)估计直行的概率比右转的概率略低,见图1a。在三个步骤后,车辆继续直行,此时右转的概率显著下降(图1c);注意,实际上车辆继续直行通过交叉口。我们可以看到,单模态模型不能捕捉场景的多模态,而是粗略地预测两种模态的平均值,如图1b和1d所示。相关工作预测参与者未来动作的问题已在最近的一些出版物中讨论过。本课题的全面概述见[17]、[18],在本节中,我们将从自主驾驶的角度回顾相关工作。首先,我们将介绍自动驾驶行业中实际应用的工程方法。然后,我们讨论了用于运动预测的机器学习方法,特别强调了深度学习方法。自动驾驶系统中的运动预测大多数部署的自动驾驶系统使用成熟的工程方法来预测参与者的动作。常用的方法包括根据底层物理系统的假设和利用卡尔曼滤波(KF)[19],[20]等技术,通过随时间传播对象的状态来计算对象的未来运动。虽然这种方法对短期预测效果很好,但由于模型忽略了周围的环境(如道路、其他参与者、交通规则),其性能在较长时间内会下降。针对这一问题,MercedesBenz[21]提出的方法利用地图信息作为约束条件来计算车辆的长期未来位置。系统首先将每个检测到的车辆与地图上的一条或多条车道相关联。然后,基于地图拓扑、车道连通性和车辆当前状态估计,为每个车辆和相关车道对生成所有可能的路径。这种启发式方法在一般情况下提供了合理的预测,但是它对车辆和车道关联的误差很敏感。作为现有的部署工程方法的替代,所提出的方法自动地从车辆通常遵守道路和车道约束的数据中学习,同时很好地推广到在道路上观察到的各种情况。此外,结合现有的车道关联的想法,我们提出了一个我们方法的扩展。机器学习预测模型人工设计的模型无法扩展到许多不同的交通场景,这促使机器学习模型成为替代方案,如隐马尔可夫模型[22]、贝叶斯网络[23]或高斯过程[24]。最近研究人员关注于如何使用逆强化学习(IRL)来模拟环境背景[25]。Kitani等人[26]考虑场景语义,使用逆最优控制来预测行人路径,然而现有的IRL方法对于实时应用来说是低效的。深度学习在许多实际应用中的成功[27]促使人们研究它在运动预测中的应用。随着近期递归神经网络(RNN)的成功,其中一条研究路线叫做长短时间记忆(LSTM)被用于序列预测任务。文献[28],[29]的作者应用LSTM预测了行人在社会交往中的未来轨迹。在[30]中,LSTM被应用于利用过去的轨迹数据预测车辆位置。在[31]中,另一个称为门控递归单元(GRU)的RNN变体与条件变分自动编码器(CVAE)结合用于预测车辆轨迹。此外,[32],[33]通过将卷积神经网络(CNN)应用于一系列视觉图像,直接从图像像素预测简单物理系统的运动。在[16]中,作者提出了一个系统,在该系统中,使用CNNs预测短期车辆轨迹,并将编码单个参与者周围环境的BEV光栅图像作为输入,该图像随后也应用于弱势交通参与者[34]。尽管这些方法取得了成功,但它们并没有解决精确的长期交通预测所需的未来可能轨迹潜在的多模态问题。目前存在许多研究在解决多模态建模的问题。混合密度网络(MDNs)[35]是通过学习高斯混合模型的参数来解决多模态回归问题的传统神经网络。然而,MDNs由于在高维空间中操作时的数值不稳定性,实际上经常难以训练。为了解决这个问题,研究人员提出训练一个网络集合[36],或者训练一个网络,用一个仅考虑最接近真值的预测结果的损失,来产生M种不同假设[37]对应的M个不同输出。由于良好的经验结果,我们的工作建立在这些努力的基础上。此外,在[38]中,作者通过学习将概率分配给六个机动类别的模型,介绍了公路车辆多模态轨迹预测的方法。该方法需要预先定义一组可能的离散动机,这对于复杂的城市驾驶来说可能很难定义。或者,在[28]、[29]、[31]中,作者建议通过采样生成多模态预测,这需要重复的前向传递来生成多个轨迹。而我们提出的方法在一个单一的前向CNN模型上,直接计算多模态的预测结果。
本文提出的网络框架提出的方法在本小节中,我们讨论提出的交通参与者多模态轨迹预测方法,我们先介绍问题定义以及符号使用,然后讨论我们设计的卷积神经网络结构和损失函数。问题定义假设我们可以得到安装在自动驾驶汽车上的传感器,比如激光雷达、超声波雷达或者相机的实时数据流。此外,假设这些数据被用于现存的检测和跟踪系统中,并输出所有周围交通参与者的状态估计S(状态包括检测框、位置、速度、加速度、航向和航向角变化率)。定义跟踪器输出状态评估的一组离散时间为,在连续的时间步之间的时间间隔是固定的(当跟踪器工作在10Hz时,时间间隔为0.1s)。然后,我们定义跟踪器在tj时刻对第i个交通参与者的状态输出为sij,这里i=1,…,Nj。Nj是在tj时刻被跟踪的所有交通参与者数。注意一般情况下,交通参与者的个数是时刻变化的因为新的交通参与者会出现在传感器的感知范围内以及原先被跟踪的交通参与者会超出传感器的感知范围。并且,我们假设可以得到自动驾驶汽车行驶区域的详细的高精地图信息M,包括道路和人行道位置,车道方向以及其他相关的地图信息。多模态轨迹建模基于我们之前的工作[16],我们首先栅格化一个BEV栅格图像,该图像编码交通参与者的地图环境以及周围交通参与者(比如其他的车辆和行人等),如图一所示。然后,给定在tj时刻的第i个交通参与者的栅格图和状态估计sij,我们使用一个卷积神经网络模型来预测M个可能的未来状态序列,以及每个序列的概率。其中,m表示模态数,H表示预测的时间步长。有关栅格化方法的详细描述,请读者查阅我们之前的工作[16]。在不损失一般性的情况下,我们简化了工作,我们只推断第i个交通参与者未来的x和y坐标而不是完整的状态估计,而其余的状态估计可以通过状态序列和未来的位置估计得到。在tj时刻交通参与者过去和未来的位置坐标都是都是相对于交通参与者在tj时刻的位置,其中前进方向为x轴,左手方向为y轴,交通参与者检测框的中心为原点。本文提出的网络结构如图2所示。输入是300*300的分辨率为0.2米的RGB栅格图以及交通参与者当前的状态(车速、加速度和朝向角改变率),输出是M个模态的未来的x坐标和y坐标(每个模态有2H个输出)以及它们的概率(每个模态一个标量)。所以每个交通参与者有(2H+1)M的输出。概率输出随后被传到softmax层以保证它们的和为1。注意任何卷积神经网络结构可以被用作基础网络,这里我们使用了MobilleNet-v2。多模态优化函数在这一部分我们讨论我们提出的建模轨迹预测问题固有的多模态性的损失函数。首先,我们定义在tj时刻第i个交通参与者的第m个模态的单模态损失函数为真值轨迹点和预测的第m个模态之间的平均位移误差(或者L2范数)。
一个简单的多模态损失函数我们可以直接使用的是ME损失,定义如下:
然而,从我们在第四节的评估结果可以看出,由于模态崩溃问题,ME损失不适用于轨迹预测问题。为了解决这个问题,我们受到[37]的启发提出使用一种新的多轨迹预测(MTP)损失,它明确地模拟了轨迹空间的多模态。在MTP方法中,对tj时刻的第i个交通参与者,我们首先通过神经网络的前向传播获得M条输出轨迹。然后我们通过一个任意轨迹距离公式确定最接近真值轨迹的模态m。
在选择了最佳的匹配模态m后,最终的损失函数可以被定义为如下:
这里I是一个二进制指示函数,如果条件c是真的就等于1,否则就为0,是一个分类交叉熵损失,定义为:
α是一个用来权衡两个损失的超参数。换句话说,我们使最匹配的模态m的概率接近1,使其它模态的概率接近0。注意在训练的过程中,位置的输出只更新最优模态,而概率的输出所有模态都更新。这使得每个模式都专门针对不同类别的参与者行为(例如,直走或者转弯),这样就成功地解决了模态崩溃的问题,如接下来的实验中所示。
图3:模态选择方法(模态以蓝色表示):使用位移时,真值(绿色)与右转模态匹配,而使用角度时则与直行模态匹配我们实验了几种不同的轨迹距离函数。特别是作为第一选项,我们使用的是两个轨迹之间的平均位移。但是,这个距离函数并不能很好地对十字路口处的多模态行为进行建模,如图3所示。为了解决这个问题,我们提出一个通过考虑交通参与者当前位置与真值和预测轨迹最后一个位置之间夹角的测距函数,从而改进了对十字路口场景的处理。第四节给出了定量的比较结果。最后,对损失(2)和(4)我们训练卷积神经网络参数来最小化训练集上的损失。
注意我们的多模态损失函数是不可知的选择其中一个模态作损失函数,并且很容易将我们的方法推广到论文[16]中提出的用负高斯对数似然来预测轨迹点的不确定性。车道线跟随多模态预测之前我们描述了一种方法,它可以直接在一个前向传播过程中预测多个模态。在[21]中,每辆车都与一条车道相关联(即为车道线跟随车辆),我们提出了一种隐式输出多条轨迹的方法。特别是,假设我们已知可能跟随的车道线和通过车道线评分系统筛选出不可能跟随的车道线,我们添加了另一个栅格层来编码此信息,并训练网络输出车道线跟随轨迹。然后,对于一个场景,我们通过生成多个不同的车道线跟随的栅格图,可以有效地预测多模态轨迹。为了生成训练集,我们首先确定车辆实际跟随的车道线并基于此建立输入栅格图。然后我们通过设置M=1(ME和MTP在这种情况下是相等的)来使用之前介绍的损失函数来训练车道线跟随(LF)模型。实际上,LF和其它方法可以被同时使用,分别处理车道线跟随和其它的交通参与者。请注意我们介绍这种方法只是为了完整性,因为实践者可能会发现将栅格化想法与现有的车道线跟随方法相结合来获得多模态预测会很有帮助,如[21]中所述。
图4. LF模型在同一场景下不同跟随车道线的轨迹输出示例(淡粉色表示)在图4中我们展示了同一个场景的栅格图,但是使用两个不同的用淡粉色标记的跟随车道线。一个是直行另一个是左转。该方法输出的轨迹很好地遵循了预定的路径,并可用于对车道线跟随车辆生成多条预测轨迹。实验我们通过手动驾驶在匹兹堡、PA、菲尼克斯、AZ等不同交通条件下(如不同时段、不同天数),收集了240小时的数据。从相机、激光雷达和超声波雷达获取原始传感器数据,使用UKF[40]和运动学模型[41]对j交通参与者进行跟踪,并以10Hz的速率对每辆跟踪车辆输出状态估计。UKF在大量标记数据上进行了高度优化和训练,并在大规模真实数据上进行了广泛测试。每个交通参与者在每个离散时刻的跟踪时刻相当于一个单一的数据点1,在删除静态交通参与者后,总体数据有780万个数据点。我们考虑了6秒的预测时间(即H=60),α=1,并且使用3:1:1的分割比例获得训练集、验证集和测试集。我们将提出的方法与几个基线进行比较:(1)前向UKF实时估计的状态(2)单轨迹预测(STP)[16](3)高斯混合轨迹空间MDN[35]
模型在TensorFlow[42]上实现,并在16Nvidia Titan X GPU卡上训练。我们使用开源分布式框架Horovod[43]进行训练,在24小时内完成。我们设置每个gpu处理的批量数为64,并使用Adam optimizer[44]进行训练,将初始学习率设置为10-4,每隔2万次迭代就降低0.9倍。所有的模型都是端到端的训练,并部署到自动驾驶汽车上,使用GPU执行批量处理,平均时间约为10ms。实验结果我们使用与运动预测相关的误差度量来比较方法:位移(1),以及沿着和交叉跟踪的误差[45]分别测量与真值的纵向和横向偏差。由于多磨要方法提供了概率,一种可能的评估方法是使用最可能的模态的预测误差。但是,早期关于多模态预测[31]的研究发现,这种度量指标更倾向于单模态模型,因为他们显示地优化了平均预测误差,同时输出了不真实的轨迹(参看图1中的示例)。我们从[31]和[37]镜像现有的设置,过滤掉概率低的轨迹(我们将阈值设置为0.2),并使用其余设置的最小误差模式来计算度量指标。我们发现这种方式计算的结果更加符合自动驾驶汽车上的观测性能。表1. 不同方法的预测误差比较(以米为单位)
在表1中我们给出了预测步长为1s和6s的误差,一级不同数量的模态M在整个预测步长的平均度量指标(模态数量从2到4)。首先我们可以看到单模态模型(如UKF和STP)显然不适合进行上时间预测。然而它们在1s的短时预测结果是合理的,6s的预测误差明显大于最优多模态方法。这样的结果是在意料之中的,因为在短期内交通参与者受到物理和它们周围环境的限制,导致真值近似单模态分布[16]。另一方面,从长时间的角度来看,预测问题的多模态性变得更加明显(例如当一个交通参与者接近一个十字路口时,它们在完全相同的场景下可能做出几种不同的选择)。单模态预测并没有很好地考虑这种问题,而是直接预测了一个分布的平均值,如图1所示。此外,值得注意的是,对于各种M值,MDN和ME给出的结果与STP相似。原因是众所周知的模态崩溃问题,其中只有一个模态提供了非退化预测。因此,在实践中,一个受影响的多模态方法会退回到单模态,不能完全捕获多个模态。[37]的作者报告了MDNs的这个问题,并发现多模态假设模型受到的影响较小,我们的实验结果也进一步证实了这一点。将我们的重点转移到MTP方法上,我们观察到与其他方法相比有了明显的改进。平均误差和6s时刻的误差都全面下降,表明这些方法学习到了交通问题的多模态性。短期1s和长期6s的预测误差均低于其它方法,即使在长期预测的效果更加明显。有趣的是,结果表明当M=3时,各项评价指标均达到了最佳。表2. 对于不同模态在6s时刻的位移误差
接下来,我们评估了不同的轨迹距离度量,以选择在MP训练中的最佳匹配模态。表一显示,使用位移作为距离函数比使用角度的性能稍好。然而,为了更好地理解这种选择的含义,我们将测试集分为三类:左转、右转和直行(测试集中95%的交通参与者大致是直行,其余的在转弯之间平均分布),并在表2中报告了6s预测的结果。我们可以看到,使用角度改善转弯的处理,以及非常轻微的退化直行情况。这证实了我们的假设,即角度匹配策略提高了十字路口的性能,这对自动驾驶汽车的安全性至关重要。考虑到这些结果,在本节的剩余部分中,我们将使用角度模态匹配策略的MTP模型。
图5. 从左到右分别对应1到4个不同模态对输出轨迹的影响在图5中,当增加模态M的数量时,我们可以看到,当M=1时(即所推断的轨迹大致是直线模式和右转模式的平均值。增加模态的数量到2,我们得到了一个直走和右转模态的清晰的分离。此外,将M设置为3会出现左转模态,尽管可能性很低。当我们设置为M=4时,我们发现了一个有趣的结果,直线模态又分成了“快”和“慢”模态,建模·交通参与者的纵向速度。我们注意到在远离十字路口的直道上也有同样的效果,直行模态会分开成几种不同的速度模态。
图6. 模态概率校正的分析最后,我们对预测模态概率的标定进行了分析。特别地,利用测试集,我们计算了预测模态概率和与真值轨迹最匹配的模态概率之间的关系。我们根据轨迹的预测概率对其进行了分段,并计算了每个分段的平均模态匹配概率。图6给出了我们使用M=3的结果,而M为其他值的结果与所示类似。我们可以看出,改图与y=x参考线非常接近,表明预测的概率经过了很好的校准。由于交通参与者行为固有的不确定性,为了保证在道路上安全高效地行驶,自动驾驶汽车需要考虑周围交通参与者未来可能的多条轨迹。在这篇论文中,我们解决了自动驾驶问题的这一关键方面,并且提出了一种对车辆运动预测的多模态建模方法。该方法首先生成一个栅格图编码交通参与者的周围环境,并使用一个卷积神经网络模型输出几个可能的预测轨迹及其概率。我们讨论了几种多模态模型,并与目前最先进的方法进行了比较,结果表明,本文提出的方法具有实际效益。经过大量的离线评估,该方法成功地在自动驾驶汽车上进行了测试。
浅析基于深度卷积网络的自动驾驶多模态轨迹预测
为了安全高效地在道路上行驶,自动驾驶汽车必须具有像人类驾驶员一样预测周围交通参与者行为的能力。目前,轨迹预测的相关研究受到了越来越多的重视。这篇文章主要解决轨迹预测的一个难点,即预测的多模态。同时,这篇文章的另一个亮点是通过卷积光栅图像来
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。