首页 > 汽车技术 > 正文

VectorFlow:结合图像和向量做交通占用和流预测

2022-08-16 13:15:35·  来源:计算机视觉深度学习和自动驾驶  作者:黄浴  
 
arXiv论文“VectorFlow: Combining Images and Vectors for Traffic Occupancy and Flow Prediction“,2022年8月9日,清华大学工作。预测道路智体的未来行为是

arXiv论文“VectorFlow: Combining Images and Vectors for Traffic Occupancy and Flow Prediction“,2022年8月9日,清华大学工作。

图片


预测道路智体的未来行为是自主驾驶中的一项关键任务。虽然现有模型在预测智体未来行为方面取得了巨大成功,但有效预测多智体联合一致的行为仍然是一个挑战。


最近,有人提出了occupancy flow fields(OFF)表示法,通过占用网格和流的组合来表示道路智体的联合未来状态,支持联合一致的预测。


这项工作提出一种新的occupancy flow fields预测器,从光栅化交通图像中学习特征的图像编码器,和捕获连续智体轨迹和地图状态信息的矢量编码器,二者结合起来,生成准确的占用和流预测。在生成最终预测之前,两个编码特征由多个注意模块融合。


该模型在Waymo开放数据集占用和流预测挑战(Occupancy and Flow Prediction Challenge)中排名第三,在遮挡占用率和预测任务(occluded occupancy and flow prediction task)中实现了最佳性能。

OFF表示(“Occupancy Flow Fields for Motion Forecasting in Autonomous Driving“,arXiv 2203.03875,3,2022)是一种时空网格,其中每个网格单元包括 i)任何智体占用单元的概率 和 ii)表示占用该单元智体运动的流。其提供了更好的效率和可扩展性,因为预测occupancy flow fields的计算复杂性与场景中道路智体的数量无关。


如图是OFF框架图。编码器结构如下。第一级接收所有三种类型的输入点,并用PointPillars启发的编码器进行处理。交通灯和道路点直接放置在网格中。智体在每个输入时间步t的状态编码是,从每个智体BEV框内均匀采样固定大小的点网格,并把这些点与相关智体状态属性(包括时间t的one-hot编码)放置在网格。每个pillar为其包含的所有点输出一个嵌入。解码器结构如下。第二级接收每个pillar嵌入作为输入,并生成每个网格单元占用和流预测。解码器网络基于EfficientNet,用EfficientNet作为主干来处理每个pillar嵌入得到特征映射(P2,…P7),其中Pi从输入中下采样2^i。然后用BiFPN网络以双向方式融合这些多尺度特征。然后,用最高分辨率特征映射P2在所有时间步回归所有智体类K的占用和流预测。具体地,解码器为每个网格单元输出一个向量,同时预测占用和流。

图片


针对本文,做以下问题设置:给定场景中交通智体1秒的历史和场景上下文,如地图坐标,目标是预测 i)未来观察到的占用率,ii)未来遮挡的占用率,以及 iii)在一个场景中未来8个路点上所有车辆的未来流,其中每个路点覆盖1秒的间隔。


将输入处理为光栅化图像和一组向量。为了获得图像,在给定观察智体轨迹和地图数据的情况下,相对于自动驾驶汽车(SDC)的局部坐标,在过去的每个时间步创建一个光栅化网格。为了获得与光栅化图像一致的向量化输入,遵循相同的变换,相对于SDC的局部视图,旋转和移动输入智体和地图坐标。


编码器包括两部分:编码光栅化表示的VGG-16模型,和编码矢量化表示的VectorNe模型。通过交叉注意模块将矢量化特征与VGG-16最后两步的特征进行融合。通过FPN-式样网络,融合后的特征上采样到原始分辨率,作为输入的光栅化特征。


解码器是单个2D卷积层,将编码器输出映射到occupancy flow fields预测,该预测包括一系列8网格图,表示未来8秒内每个时间步的占用和流预测。


如图所示:

图片


用torchvision的标准VGG-16模型,作为光栅化编码器,并遵循VectorNet(代码https://github.com/Tsinghua-MARS-Lab/DenseTNT)的实现。VectorNet的输入包括 i)一组形状为B×Nr×9的道路元素向量,其中B是批处理大小,Nr=10000是道路元素向量的最大数,最后一个维度9表示每个向量和向量ID中两个端点的位置(x,y)和方向(cosθ,sinθ);ii)一组形状为B×1280×9的智体向量,包括场景中最多128个智体的向量,其中每个智体具有来自观察位置的10个向量。


遵循VectorNet,首先根据每个交通元素的ID运行局部图,然后在所有局部特征上运行全局图,获得形状为B×128×N的向量化特征,其中N是交通元素的总数,包括道路元素和智体。通过MLP层将特征的大小进一步增加四倍,获得最终的矢量化特征V,其形状为B×512×N,其特征大小与图像特征的通道大小一致。


VGG每个级的输出特征表示为{C1、C2、C3、C4、C5},相对于输入图像和512隐藏维,跨步长(strides)为{1、2、4、8、16}像素。通过交叉注意模块将矢量化特征V与形状为B×512×16×16的光栅化图像特征C5融合,获得相同形状的F5。交叉注意的query项是图像特征C5,扁平为有256个令牌(tokens)的B×512×256形状,Key和Value项是具有N个令牌的矢量化特征V。


然后在通道维上连接F5和C5,通过两个3×3卷积层,获得形状为B×512×16×16的P5。P5通过FPN风格的2×2上采样模块做上采样并与C4(B×512×32x32)连接,生成和C4一样形状的U4。之后在V和U4之间执行另一轮融合,遵循相同的程序,包括交叉注意,获得P4(B×512×32×32)。最后,P4由FPN式样网络逐渐上采样,并与{C3,C2,C1}连接,生成形状为B×512×256×256的EP1。将P1通过两个3×3 卷积层,获得形状为B×128×256的最终输出特征。


解码器是单个2D卷积层,输入通道大小为128,输出通道大小为32(8个路点×4个输出维度)。

结果如下:

图片


图片


分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026620号