论文出处
[2304.05277] Graph-based Topology Reasoning for Driving Scenes (arxiv.org)https://arxiv.org/abs/2304.05277
TopoNet
TopoNet的目标是从车辆上安装的多视角摄像头获取图像,感知实体并推理出驾驶场景的拓扑关系,实现端到端预测,下图是TopoNet的整体设计
模块解读
-
特征编码:多视角图片作为输入,特征提取器生成多尺度的图像特征,单独提取前视图特征。然后通过view transformerm模块生成BEV特征。前视图特征和BEV特征在后面被分成两个分支来做处理,因为在前视图中更容易学习到交通元素的特征在BEV中不容易学习,而在BEV空间中更容易学习中心线的特征
-
可变注意力解码:这里设计了是多层的解码器堆叠,两个特征分别传入两个都是基于可变注意力的decoder,前视图特征做Q查询是学习交通元素的信息,而BEV特征Q查询是为了学习中心线的中心线。
-
SGNN模块:
-
因为在透视图中的交通要素的位置特征很难利用,但是语义特征很重要,所以先利用嵌入网络来提取交通元素的语义信息,然后转换为统一的特征空间和中心线匹配。
-
分别构建两个有向图来传播特征(直接构建一个全连接图计算成本高,会学习到非必要的信息),一个用于车道图估计Gll,一个代表交通要素分配Glt。分别对两个图做GNN学习。因为Ql和Qt代表不同的查询对象,语义有差异,引入适配器层组合信息增益R,流程如下图。(融合学习信息的操作,生成下一级decoder的查询Q)
-
在一个场景知识图中,不同类别的交通要素的权重矩阵是独立的,会为不同走向的车道带来不同的信息。所以接下来是用了一个改造过的图卷积网络GCN(被拆分成了两块),查询交通要素聚合信息。
这是一个在场景知识图上更新查询LC1的例子。计算过程:中心线部分根据学习权重矩阵的情况结合前向和后向的权重去计算(因为车道的结构是彼此依赖的,车道位置信息可以很好指示邻居的信息),每个节点的新特征都是受到它的邻居影响的。而交通要素之间的特征更新是特征查询和特征类别做矩阵乘法更新
-
-
检测头部分:模型对应出三个检测头,直接交通元素decoder产生的检测头做用于检测指示牌,信号灯等,而根据SGNN得到的检测头可分为拓扑关系检测头和中心线的洁厕头,拓扑关系的检测头是交通元素和中心线共同作用的结果
损失函数
模型中用到了多种损失函数,匈牙利算法生成真实值和预测值之间的匹配
交通要素:Focal loss分类损失,L1 loss回归损失 ,IOU loss位置损失
中心线:Focal loss分类损失,L1 loss回归损失
其他三种技术
STSU
论文出处:
[2203.17270] BEVFormer: Learning Bird's-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers (arxiv.org)https://arxiv.org/abs/2203.17270
遵循 DETR 的做法,使用稀疏查询进行对象检测。STSU也是使用两组查询向量,一组用于中心线,一组用于交通对象元素。他的transformer有两个分支,车道分支和目标分支。
车道分支:检测头预测是否存在由某个查询向量编码的车道,控制头预测 R 贝塞尔曲线 控制点的位置,关联头预测用于聚类的嵌入向量,关联分类器判断关联性。贝塞尔曲线非常适合中心线,可以使用固定数量的 2D 点对任意长度的曲线进行建模
目标分支:处理transformer的提议,包含检测头, MLP + sigmoid 层,后处理网络:将实例转换为语义分割
VectorMapNet
论文出处:[2206.08920] VectorMapNet: End-to-end Vectorized HD Map Learning (arxiv.org)https://arxiv.org/abs/2206.08920
用矢量来构建高精度语义地图,设计思路是将该问题构建为稀疏点集预测问题,每个语义元素由N_v个有序二维点列构成的折线表示。
主要由三部分组成:BEV特征提取、地图元素检测:利用transformer的decoder,polyline生成:基于BEV特征。预测头是一个分类分支和一个回归分支。
MapTR
论文出处:
[2208.14437] MapTR: Structured Modeling and Learning for Online Vectorized HD Map Construction (arxiv.org)https://arxiv.org/abs/2208.14437
MapTR是一个基于排列的HD Map构造方法,它将每个地图元素视为有着一组等价排列方式的点集。封闭形状被描绘为多边形polygon,开放形状被描绘为线段polyline,通过这样的方式避免地图元素定义上的歧义。
具体工作流程是先做2D to BEV的encoder,得到BEV特征,然后用transformer的decoder,其中query查询的就是点集特征,最后是分类头和预测头输出。
TopoNet会表现出优势的原因
其实这些模型的构建思路都很相似,区别在于他们对问题做了不同的抽象,把模型学习特征要素的表示方式不一样,STSU是贝塞尔曲线,VectorMapNet是矢量集合来表示,MapTR就更加精细一点,提出了等价排列点集的思路。
TopoNet的优势在于作者思考后把问题转化到了图的拓扑关系问题。作者设计了模型专门学习图的拓扑关系,利用了可变注意力和图神经网络区学习。学习到了节点之间的邻接关系,中心线和交通要素间的关系。
还有就是对交通要素和中心线先是分别提取特征学习,然后再融合更新查询矩阵Q这个思路和STSU相似,看起来也很有效。交通要素头和中心线预测头都很好学习到了自身的特征。拓扑关系预测头则是两者的融合,这个设计也很巧妙,是前面分别做特征提取和decoder的思路延续。