分享行人、车辆的行为及轨迹预测代码(pytorch)

该资料在pytorch下实现,主要用来利用Lstm行人或车辆目标障碍物的行为或者轨迹进行预测。

如有需求获取源代码和相关资料可以私聊

资料获取后可后期咨询!!!


代码包含几种不同的实现形式:

多变量多步长多输出直接预测(直接多输出)

如:利用行人或者车辆障碍物的历史5帧的纵向位置、车速、加速度;横向位置、速度、加速度;方向盘转角、到左右车道边界的横向距离等参数来预测未来2帧的行为或轨迹

 

format,png

多变量多步长滚动预测(单步滚动预测)

如:利用行人或者车辆障碍物的历史5帧的纵向位置、车速、加速度;横向位置、速度、加速度;方向盘转角、到左右车道边界的横向距离等参数来预测未来2帧的行为或轨迹。首先利用[1…5]预测[6’],然后利用[2… 6’]预测[7’],为了得到多个预测输出,就直接预测多次,并且在每次预测时将之前的预测值带入。这种方法的缺点是显而易见的:由于每一步的预测都有误差,将有误差的预测值带入进行预测后往往会造成更大的误差,使误差不断累积。

 

format,png

多模型单步预测

如:利用行人或者车辆障碍物的历史5帧的纵向位置、车速、加速度;横向位置、速度、加速度;方向盘转角、到左右车道边界的横向距离等参数来预测未来2帧的行为或轨迹,那么可以训练两个模型分别根据[1…5]帧数据预测第[6]帧轨迹和第[7]帧轨迹。若需要进行n步预测,就训练n个LSTM模型

 

format,png

多模型滚动预测

如:利用行人或者车辆障碍物的历史5帧的纵向位置、车速、加速度;横向位置、速度、加速度;方向盘转角、到左右车道边界的横向距离等参数来预测未来2帧的行为或轨迹,首先需要按照多模型单步预测的方式训练2个模型,然后模型1利用[1…5]预测[6’],然后模型2利用[2…6’]预测[7’]。

 

format,png

seq2seq

seq2seq由两部分组成:Encoder和Decoder。seq2seq的输入是一个序列,输出也是一个序列。采用了LSTM将原始数据进行编码,然后将LSTM的最后的隐状态和单元状态返回。解码器同样也由LSTM组成,不过解码器的初始的隐状态和单元状态是编码器的输出。此外,解码器每次输入都是上次的输出。

 

format,png

多任务学习(多种变量输入多种变量输出)

上面5种方法都是“单变量输出”,多变量输入如上面几种方法中一样,输入的参数为有很多种,比如障碍物参数或者道路参数等,多变量输出是指:一次性输出多个变量的预测值。比如利用前5帧的障碍物参数和道路参数来预测接下来2个时刻的[纵向位置x、横向位置y]。实际上,可以将多个变量的输出分解开,看成多个任务,也就是多任务学习,其中每一个任务都是前面提到的多变量输入单变量输出。具体来讲,假设需要预测2个变量,输出在经过LSTM后得到output,将output分别通过2全连接层,就能得到2个输出。得到2个输出后,就可以计算出2个损失函数,对这2个损失函数,将其简单求平均以得到最终的损失函数。

 

format,png

 

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值