本发明属于图像处理技术领域,具体涉及一种基于场景约束gan的行人轨迹预测方法。
背景技术:
轨迹预测是根据目标在过去时间段内的轨迹进行分析,从而推测出目标在未来固定时刻的位置坐标。在公共交通场景下,分析行人及车辆的历史轨迹,预测其将来的行进方向,可用于自动驾驶的道路选择、避免与其他目标碰撞以及机器人导航等。在城市交通中,挖掘及分析车辆的轨迹数据,可以对城市的交通流进行预测并且可以及时预警交通阻塞。在行人密集场所,监控人类的活动轨迹并分析人群运动、检测异常轨迹对于犯罪预防等有着积极的作用。
传统轨迹预测方法,使用复杂的公式或者函数,因而只能处理简单的交互问题,如socialforce(sf)模型,gaussianprocesses方法等。目前,基于深度学习的轨迹预测方法相比传统方法而言,操作简单且效果好,如social-lstm、s-gan等方法。然而这些方法仅仅只考虑到行人的运动模式和人之间的交互,没有考虑到所处的场景对行人轨迹的影响,导致预测结果不佳。
技术实现要素:
要解决的技术问题
为了避免现有技术的不足之处,本发明提出一种综合考虑行人普遍行走模式和目标行人特殊行走模式、行人之间的多种交互、社会习惯以及场景对于行人行走的约束等多种因素、可用于复杂场景的一种基于场景约束gan的行人轨迹预测方法。
技术方案
一种基于场景约束gan的行人轨迹预测方法,其特征在于步骤如下:
步骤1:获取训练数据集
场景图象和行人轨迹均来源于公开数据集eth和ucy的五个场景;行人轨迹为eth和ucy中所有的坐标序列集合
步骤2:构建场景约束gan网络模型
所述的场景约束gan网络模型包括场景编码器、生成器和判别器;
场景信息张量
其中,it是t时刻目标行人pi所在场景的帧画面,wcnn为场景编码器的权重;
所述的生成器由编码器、解码器和池化模块构成;首先对场景中的每个行人使用多层感知机提取其位置特征张量
其中,ф(·)是加入了relu非线性激活函数的嵌入层函数,wee是嵌入层的权重系数;wen是生成器中编码器的权重,在场景中所有目标行人共享lstm参数;
池化模块能将场景信息
其中,ф(·)是加入了relu非线性激活函数的嵌入层函数,wpe是嵌入层的权重;γ(·)是加入了relu非线性激活函数的多层感知机,wp是多层感知机的权重;m是一个聚合函数,将行人做出决策需要的信息和约束汇聚到约束张量
解码器同样由lstm构成,使用含有relu非线性激活函数的多层感知机γ(·)将池化后得到的约束张量
其中,wc为解码器嵌入层函数的权重,z是随机噪声;
约束张量
用多层感知机预测时间步t+1目标pi的xy坐标
其中,wde是lstm的权重系数;预测的多个时间步坐标集合即为预测的轨迹;
判别器是由一个lstm和一个分类器构成,生成器预测的轨迹与真实的轨迹经过lstm编码后,分类器会对其隐藏状态
将该得分score使用交叉熵函数即可得出分类结果;
步骤3:训练模型
使用交叉验证方式对场景约束gan网络模型进行训练,即使用其中4个场景的数据训练网络,剩下的1个场景的数据进行测试,对5个场景的数据进行同样的操作;训练方法为:
在生成器中采用l2损失函数计算预测的轨迹和真实轨迹之间的差值,由公式(14)得到:
其中,y为真实轨迹,
在场景约束gan网络模型中采用多样性的损失函数训练网络,以学习到行人普遍的行走模式和最佳的模型参数;在生成的多个轨迹中我们选择l2距离最小的,也就是预测最准确的一条轨迹作为预测结果;损失函数如公式(15)所示:
步骤4:轨迹预测
在行人集合中任选一个行人pi,i∈[1,n]的部分或者全部轨迹轨迹
场景编码器是卷积神经网络,权重是在公共数据集中单独训练的,如imagenet。
生成器中的编码器、解码器和判别器中的lstm都为单层。
步骤1中行人数量n取值为106~1536。
判别器中使用的交叉熵函数为二分类交叉熵函数。
有益效果
本发明提出的一种基于场景约束gan的行人轨迹预测方法,在预测行人轨迹时,结合一般行人的普遍行走模式和目标行人的特殊行走模式,还嵌入了行人之间的多种交互、约定俗成的社会习惯和行人所处场景对行人轨迹的约束信息等因素,从而使模型在预测行人轨迹时有更好的准确性和鲁棒性。
附图说明
图1本发明流程图
具体实施方式
现结合实施例、附图对本发明作进一步描述:
实施例1
步骤1.获取训练数据集:
场景图象和行人轨迹均来源于公开数据集eth和ucy的五个场景,其中eth中有750个行人,ucy中有786个行人。行人轨迹为eth和ucy中目标行人的坐标序列集合
步骤2.构建场景约束gan网络模型
一种基于场景约束gan的行人轨迹预测方法所使用的网络模型包括场景编码器、生成器和判别器。
场景信息张量
其中it是t时刻目标行人pi所在场景的帧画面。wcnn为场景编码器的权重。
生成器由编码器、解码器和池化模块构成。首先对场景中的每个行人提取其位置特征张量
其中,ф(·)是加入了relu非线性激活函数的嵌入函数,由1个线性层构成,wee是嵌入函数的权重系数。wen是编码器的权重,lstm参数共享。
池化模块能将场景信息
其中,ф(·)是加入了relu非线性激活函数的多层感知机,由1层线性层构成,wpe是嵌入层的权重。γ(·)是加入了relu非线性激活函数的多层感知机,由3层线性层构成,wp是多层感知机的权重。m是一个最大值聚合函数,将行人做出决策需要的信息和约束汇聚到约束张量
解码器同样由lstm构成。使用含有relu非线性激活函数的多层感知机γ(·)由3层线性层构成,将池化后得到的约束张量
其中,wc为解码器嵌入层函数的权重,z是随机噪声。
约束张量
用1层线性层构成的多层感知机预测时间步t+1目标pi的xy坐标
其中,wde是lstm的权重系数。预测的多个时间步坐标集合即为预测的轨迹。
判别器是由一个lstm和一个分类器构成,生成器预测的轨迹与真实的轨迹经过lstm编码后,分类器会对其隐藏状态
将该得分score使用二分类交叉熵函数即可得出分类结果。
步骤3.训练模型
使用交叉验证方式对场景约束gan网络模型进行训练,即使用其中4个场景的数据训练网络,剩下的1个场景的数据进行测试,对5个场景的数据进行同样的操作。
训练方法为:
生成器和判别器的学习率均为0.001,梯度裁剪阈值为1.5。
在生成器中我们采用l2损失函数计算预测的轨迹和真实轨迹之间的差值,由公式(14)得到:
其中y为真实轨迹,
在场景约束gan网络模型中我们采用多样性的损失函数训练网络,以学习到行人普遍的行走模式和最佳的模型参数。在生成的多个轨迹中我们选择l2距离最小的,也就是预测最准确的一条轨迹作为预测结果。损失函数如公式(15)所示:
步骤4.轨迹预测
我们在行人集合中任选一个行人pi,i∈[1,n]的部分或者全部轨迹