一种基于场景约束GAN的行人轨迹预测方法与流程

文档序号:21547873发布日期:2020-07-17 18:00阅读:1215来源:国知局
一种基于场景约束GAN的行人轨迹预测方法与流程

本发明属于图像处理技术领域,具体涉及一种基于场景约束gan的行人轨迹预测方法。



背景技术:

轨迹预测是根据目标在过去时间段内的轨迹进行分析,从而推测出目标在未来固定时刻的位置坐标。在公共交通场景下,分析行人及车辆的历史轨迹,预测其将来的行进方向,可用于自动驾驶的道路选择、避免与其他目标碰撞以及机器人导航等。在城市交通中,挖掘及分析车辆的轨迹数据,可以对城市的交通流进行预测并且可以及时预警交通阻塞。在行人密集场所,监控人类的活动轨迹并分析人群运动、检测异常轨迹对于犯罪预防等有着积极的作用。

传统轨迹预测方法,使用复杂的公式或者函数,因而只能处理简单的交互问题,如socialforce(sf)模型,gaussianprocesses方法等。目前,基于深度学习的轨迹预测方法相比传统方法而言,操作简单且效果好,如social-lstm、s-gan等方法。然而这些方法仅仅只考虑到行人的运动模式和人之间的交互,没有考虑到所处的场景对行人轨迹的影响,导致预测结果不佳。



技术实现要素:

要解决的技术问题

为了避免现有技术的不足之处,本发明提出一种综合考虑行人普遍行走模式和目标行人特殊行走模式、行人之间的多种交互、社会习惯以及场景对于行人行走的约束等多种因素、可用于复杂场景的一种基于场景约束gan的行人轨迹预测方法。

技术方案

一种基于场景约束gan的行人轨迹预测方法,其特征在于步骤如下:

步骤1:获取训练数据集

场景图象和行人轨迹均来源于公开数据集eth和ucy的五个场景;行人轨迹为eth和ucy中所有的坐标序列集合即行人轨迹;其中,n为行人数量,pi为第i个行人,t为当前时刻;为第i个行人pi在t时刻的坐标,t为整个时间长度;{pi|i∈[1,n]}为行人集合,场景图象为在t时刻目标行人pi所在数据集抽取的场景视频帧;

步骤2:构建场景约束gan网络模型

所述的场景约束gan网络模型包括场景编码器、生成器和判别器;

场景信息张量中包含着场景对于行人轨迹的约束,由场景编码器提取;其中场景信息张量由公式(1)得到:

其中,it是t时刻目标行人pi所在场景的帧画面,wcnn为场景编码器的权重;

所述的生成器由编码器、解码器和池化模块构成;首先对场景中的每个行人使用多层感知机提取其位置特征张量然后使用基于lstm的编码器提取行人历史轨迹,其中位置特征张量由公式(2)获得;行人历史轨迹张量由公式(3)得到:

其中,ф(·)是加入了relu非线性激活函数的嵌入层函数,wee是嵌入层的权重系数;wen是生成器中编码器的权重,在场景中所有目标行人共享lstm参数;是行人pi在t时刻的隐含状态;通过ф(·)函数将行人坐标嵌入到向量中,作为编码器lstm的输入,编码器学习每个人的运动状态,并保存他们的历史信息;

池化模块能将场景信息对于行人轨迹的约束和行人之间的交互信息嵌入到约束张量中;在编码器获取到场景中所有目标行人t时刻的轨迹信息与场景信息后,池化模块将场景信息及行人之间的交互进行池化,引入场景对行人轨迹的约束,并为每个目标行人生成一个约束张量约束张量由公式(4)、(5)、(6)得到:

其中,ф(·)是加入了relu非线性激活函数的嵌入层函数,wpe是嵌入层的权重;γ(·)是加入了relu非线性激活函数的多层感知机,wp是多层感知机的权重;m是一个聚合函数,将行人做出决策需要的信息和约束汇聚到约束张量

解码器同样由lstm构成,使用含有relu非线性激活函数的多层感知机γ(·)将池化后得到的约束张量嵌入到编码层隐藏状态中得到fit,张量fit由公式(7)得到;再将随机噪声z引入得到由公式(8)得到:

其中,wc为解码器嵌入层函数的权重,z是随机噪声;

约束张量和隐藏层状态通过多层感知机后,再与上一时刻行人位置信息利用解码器更新张量的值,由公式(9)(10)得到:

用多层感知机预测时间步t+1目标pi的xy坐标由公式(11)得到:

其中,wde是lstm的权重系数;预测的多个时间步坐标集合即为预测的轨迹;

判别器是由一个lstm和一个分类器构成,生成器预测的轨迹与真实的轨迹经过lstm编码后,分类器会对其隐藏状态进行分类,得到一个判断该轨迹为真/假得分score,由公式(12)(13)得到:

将该得分score使用交叉熵函数即可得出分类结果;

步骤3:训练模型

使用交叉验证方式对场景约束gan网络模型进行训练,即使用其中4个场景的数据训练网络,剩下的1个场景的数据进行测试,对5个场景的数据进行同样的操作;训练方法为:

在生成器中采用l2损失函数计算预测的轨迹和真实轨迹之间的差值,由公式(14)得到:

其中,y为真实轨迹,为预测的轨迹;

在场景约束gan网络模型中采用多样性的损失函数训练网络,以学习到行人普遍的行走模式和最佳的模型参数;在生成的多个轨迹中我们选择l2距离最小的,也就是预测最准确的一条轨迹作为预测结果;损失函数如公式(15)所示:

步骤4:轨迹预测

在行人集合中任选一个行人pi,i∈[1,n]的部分或者全部轨迹轨迹其中1≤tobs<t<tpred≤t;tobs到t为观察学习阶段,学习个人轨迹特征以及场景对于行人轨迹的约束;从t+1时刻到tpred为预测阶段,时间t到t+1为一个时间步;每个时间步只预测下一时间步的坐标,将预测的坐标作为下一时间步lstm的输入,预测下下个时间步的坐标;在t+1到tpred上重复此步骤,即可得到连续的轨迹。

场景编码器是卷积神经网络,权重是在公共数据集中单独训练的,如imagenet。

生成器中的编码器、解码器和判别器中的lstm都为单层。

步骤1中行人数量n取值为106~1536。

判别器中使用的交叉熵函数为二分类交叉熵函数。

有益效果

本发明提出的一种基于场景约束gan的行人轨迹预测方法,在预测行人轨迹时,结合一般行人的普遍行走模式和目标行人的特殊行走模式,还嵌入了行人之间的多种交互、约定俗成的社会习惯和行人所处场景对行人轨迹的约束信息等因素,从而使模型在预测行人轨迹时有更好的准确性和鲁棒性。

附图说明

图1本发明流程图

具体实施方式

现结合实施例、附图对本发明作进一步描述:

实施例1

步骤1.获取训练数据集:

场景图象和行人轨迹均来源于公开数据集eth和ucy的五个场景,其中eth中有750个行人,ucy中有786个行人。行人轨迹为eth和ucy中目标行人的坐标序列集合其中t为最大时间,n为行人数量,pi为第i个行人,t为当前时刻,t为整个时间长度。为第i个行人pi在t时刻的坐标。{pi|i∈[1,n]}为行人集合,场景图象为在t时刻目标行人pi所在数据集抽取的场景视频帧。

步骤2.构建场景约束gan网络模型

一种基于场景约束gan的行人轨迹预测方法所使用的网络模型包括场景编码器、生成器和判别器。

场景信息张量中包含着场景对于行人轨迹的约束,由场景编码器提取。场景编码器由vgg16的features部分和三层微调卷积层构成,其中场景信息张量由公式(1)得到:

其中it是t时刻目标行人pi所在场景的帧画面。wcnn为场景编码器的权重。

生成器由编码器、解码器和池化模块构成。首先对场景中的每个行人提取其位置特征张量使用由单层lstm构成的编码器提取行人历史轨迹,其中位置特征张量由公式(2)获得。行人历史轨迹张量由公式(3)得到:

其中,ф(·)是加入了relu非线性激活函数的嵌入函数,由1个线性层构成,wee是嵌入函数的权重系数。wen是编码器的权重,lstm参数共享。是行人pi在t时刻的隐含状态。通过ф(·)将行人坐标嵌入到向量中,作为编码器lstm的输入,编码器学习每个人的运动状态,并保存他们的历史信息。

池化模块能将场景信息对于行人轨迹的约束和行人之间的交互信息嵌入到约束张量中。在编码器获取到场景中所有目标行人t时刻的轨迹信息与场景信息后,池化模块将场景信息及行人之间的交互进行池化,引入场景对行人轨迹的约束,并为每个目标行人生成一个约束张量约束张量由公式(4)、(5)、(6)得到:

其中,ф(·)是加入了relu非线性激活函数的多层感知机,由1层线性层构成,wpe是嵌入层的权重。γ(·)是加入了relu非线性激活函数的多层感知机,由3层线性层构成,wp是多层感知机的权重。m是一个最大值聚合函数,将行人做出决策需要的信息和约束汇聚到约束张量

解码器同样由lstm构成。使用含有relu非线性激活函数的多层感知机γ(·)由3层线性层构成,将池化后得到的约束张量嵌入到编码层隐藏状态中得到fit,张量fit由公式(7)得到。再将随机噪声z引入得到引入操作使用pytorch中的torch.cat()函数,由公式(8)得到:

其中,wc为解码器嵌入层函数的权重,z是随机噪声。

约束张量和上一时刻隐含层状态通过多层感知机后,再与上一时刻行人位置信息利用解码器更新张量的值,由公式(9)(10)得到:

用1层线性层构成的多层感知机预测时间步t+1目标pi的xy坐标由公式(11)得到:

其中,wde是lstm的权重系数。预测的多个时间步坐标集合即为预测的轨迹。

判别器是由一个lstm和一个分类器构成,生成器预测的轨迹与真实的轨迹经过lstm编码后,分类器会对其隐藏状态进行分类,得到一个判断该轨迹为真/假得分score,由公式(12)(13)得到:

将该得分score使用二分类交叉熵函数即可得出分类结果。

步骤3.训练模型

使用交叉验证方式对场景约束gan网络模型进行训练,即使用其中4个场景的数据训练网络,剩下的1个场景的数据进行测试,对5个场景的数据进行同样的操作。

训练方法为:

生成器和判别器的学习率均为0.001,梯度裁剪阈值为1.5。

在生成器中我们采用l2损失函数计算预测的轨迹和真实轨迹之间的差值,由公式(14)得到:

其中y为真实轨迹,为预测的轨迹。

在场景约束gan网络模型中我们采用多样性的损失函数训练网络,以学习到行人普遍的行走模式和最佳的模型参数。在生成的多个轨迹中我们选择l2距离最小的,也就是预测最准确的一条轨迹作为预测结果。损失函数如公式(15)所示:

步骤4.轨迹预测

我们在行人集合中任选一个行人pi,i∈[1,n]的部分或者全部轨迹其中1≤tobs<t<tpred≤t。tobs到t为观察学习阶段,我们设置为8,即用8个时间步学习个人轨迹特征以及场景对于行人轨迹的约束。从t+1时刻到tpred为预测阶段,我们设置为8,即预测接下来的8个时间步。时间t到t+1为一个时间步。每个时间步只预测下一时间步的坐标,将预测的坐标作为下一时间步的输入,预测下下个时间步的坐标。在时间步9到16重复此步骤,即可得到连续的轨迹。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1