YOLO-Pose论文:MiniViT:Compressing Vision Transformers with Weight Multiplexing
代码已开源:https://github.com/Wolfwjs/GANet
1. 摘要
在CVPR 2022上,商汤智能汽车-创新研发中心团队提出一种新的基于关键点建模的车道线检测范式,即全局关联网络(GANet),通过直接回归车道线关键点到车道线起始点的偏移,来完成对车道线关键点的并行聚合,从而实现高效且准确的车道线检测。除此以外,本文还提出一个车道线感知的特征增强模块,以增强车道线的局部关键点关联,提升车道线局部连续性。本文所提方法在多个公开数据集上均超越已有方法,取得了良好的精度-速度均衡。
2. 方法动机
车道线检测是自动驾驶感知系统中重要的组成部分,旨在对图片中的每一条车道线进行实例级别的形状描述,其准确性和鲁棒性对规划、决策等下游端的性能有着直接或间接的影响。为了在自动驾驶系统中实现准确可靠的车道线检测功能,精度和速度是需要同时考虑的两个重要因素。由于车道线是长条状的特殊形状,且需要进行实例级别的区分,对车道线进行精巧的建模很大程度上决定了车道线检测算法的性能上限。典型的车道线检测建模方式大致包括以下两种:
1.基于锚线(anchor-based)的方法[1,3]。这一类方法受启发于基于锚框的目标检测算法,采用自顶向下的设计思想,预定义一组不同起始点、不同角度的直线作为车道线的锚线(anchor),车道线被建模为一系列轻微偏离锚线的曲线。如下图(a)所示,在推理过程中,通过回归实际车道线到其最接近的锚线的水平偏移量来对车道线的形状进行预测。这类方法在运行效率上有一定优势,然而由于对形状先验的依赖性较强,其对于形状较为复杂的车道线的刻画能力有限,在灵活度上略有不足。
2.基于关键点(keypoint-based)的方法[2]。这一类方法受启发于关键点检测算法,采用自底向上的设计思想,将车道线建模为由一组均匀分布的关键点顺序相连而成的曲线。如下图(b)所示,在每个关键点处预测其到下一个关键点的偏移量,通过迭代的方式,每次扩展一个关键点到当前车道线的关键点集合中。这种方法可以较为灵活的描述多种形状的车道线,然而这种逐点扩展的方式较为低效,很难满足实际应用的需求。
3.为了同时满足灵活性和高效性的需求,我们在本文中提出了一种新的基于关键点建模的车道线检测范式,即全局关联网络(Global Association Network,GANet)。如下图©所示,每条车道线由其起始点来唯一代表,每个关键点上直接预测其到所属的车道线起始点的偏移量,所预测得到的起始点位于同一个邻域内的关键点属于同一条车道线实例,将这些点顺序连接就可以还原车道线的准确形状。由于同一条车道线的不同关键点分配互不依赖,可以并行进行,因此我们的方法在效率方面有了极大的提升。这里我们选择起始点来代表车道线是因为在前视相机的视角下,不同车道线的起始点是所有关键点中距离最远最不容易混淆的,而且相比车道线中点,起始点的定义更清晰,不容易有歧义。
另一方面,由于在以上的关键点全局关联过程中,每个关键点都直接与车道线的起始点相关联,同一车道线上相邻关键点之间的缺乏关联,这可能会影响车道线的局部连续性。因此,我们还提出了一个车道感知的特征增强模块(Lane-aware Feature Aggregator,LFA)。如下图(d)所示,在LFA模块中,在每个关键点上预测其到相邻的若干个关键点的偏移量,并利用该偏移量对其他相邻关键点的特征进行聚合,以增强当前关键点的特征。LFA模块所提取的关键点间的局部关联与GANet中的全局关联构成互补,从而形成对车道线的全尺度建模。
3. 方法介绍
下图展示了GANet的整体框架。输入前视相机图片,依次经过主干网络(backbone)、自注意力模块(SA)、FPN模块提取图片的多尺度特征后,GANet利用一个关键点头(keypoint head)和一个偏移量头(offset head)来分别预测关键点的置信度图(confidence map)和关键点到车道线起始点的偏移量图(offset map),在推理过程中通过对这二者进行采样和组合,可以将关键点分配到所属的车道线,得到最终的车道线预测结果。LFA作为一个特征增强模块,插入在关键点头之前以帮助关键点预测。接下来的几部分我们将对这两部分展开详细的介绍。
3.1 车道线构建-全局关键点关联
如下图所示,构建车道线的过程包括三个步骤:
1.采样关键点,获取图片中所有关键点的坐标及其到所属车道线起始点的偏移量(下图(a))
2.将第一步获取的关键点坐标与偏移量相加,得到每个关键点所指向的车道线起始点坐标(下图(b))
3.获取图中所有车道线对应的起始点坐标,以起始点为中心,划定一定范围,所有指向起始点落在这一范围内的关键点都属于同一条车道线,将这些关键点顺序连接,即可恢复完整的车道线形状。(下图©)
以上步骤都可以通过矩阵操作实现,因而GANet在推理过程中具有高度的并行性。
3.1.1关键点预测
关键点的坐标由关键点的置信度图采样得到,该置信度图的所有元素值介于0到1之间,值越大,则代表该元素对应位置是车道线关键点的可能性越高。关键点置信度图采用修正的Focal Loss来训练:
此外,由于GANet的输出相比输入进行了一定的下采样,直接对下采样后的关键点坐标进行下取整会损失掉小数点后的精度。因此,我们额外设计了一个量化补偿项对此进行补偿,即:
量化补偿也采用L1 Loss来进行监督。
3.1.2 偏移量预测
获取关键点坐标之后,在偏移量图上对应位置的值即是该关键点到车道线起始点的空间偏移量。偏移量图是一个2通道的张量,分别对应水平和垂直方向的偏移。我们采用L1 Loss来对偏移量图的学习进行监督:
偏移损失仅在车道线关键点处计算。
3.1.3 起始点采样
车道线的起始点其实只是一种特殊的关键点,这一类关键点所指向的起始点位置应该是它们本身或者它们附近很小的范围。因此,通过在偏移量图上采样值较小的关键点位置,并将距离接近的关键点合并取中心,即可获取图片中所有车道线的起始点坐标。在本文中,我们将偏移量小于1的关键点作为起始点。相比在关键点之间进行自组织的迭代式的聚合,额外采样车道线的起始点作为聚类中心可以极大减少将关键点分配到所属车道线的时间,从而加速网络推理过程。
3.2 车道线感知的特征增强模块(LFA)
为了增强车道线的局部连续性,我们提出了一个车道线感知的特征增强模块(LFA),将其插入关键点头之前,从而更好的利用车道线上周边点的特征来增强当前点的特征。LFA的示意图如下图所示:
我们将LFA实现为特殊的可形变卷积,其实现方式如下:
在每个位置上预测其到同一条车道线上前后共M个相邻点的偏移量及相邻点的权重作为可形变卷积的偏移和权重,从而实现车道线上的局部信息关联。需要注意的是,LFA作用在特征图上的所有位置上,而不是仅仅作用于车道线的关键点上。然而为了保证在车道线关键点上偏移量预测准确,我们采用SmoothL1 Loss来监督偏移量的学习,这项损失函数仅在车道线关键点处计算:
4. 实验
如下表所示,我们分别采用ResNet-18,ResNet-34,ResNet101作为主干网络,得到三个不同大小的GANet,分别是GANet-S,GANet-M以及GANet-L。
我们在下图展示了车道线检测的可视化结果,可以看到,在关键点置信度图上,LFA模块可以有效聚合关键点在置信度图上的响应值,得到更连续的关键点预测结果,从而有效改善车道线的漏检以及多检问题。
同时,我们也在下表展示了GANet在车道线检测最常用的benchmark之一,CULane上与其他方法对比的实验结果,GANet在精度和速度之间取得了较好的平衡,其中最小的GANet-S,在精度上与已有方法接近甚至更高,但是速度有了极大的提升。值得注意的是,我们的方法在形状较复杂的曲线数据子集(Curve)上远超其他方法,这也说明了这种基于关键点全局关联的车道线建模方式对于复杂形状的车道线具有较明显的优势。
5. 结论
关键点进行全局关联以实现关键点到所属车道线的并行分配过程,从而极大提升车道线检测算法的运行效率,并且有效建模形状复杂的车道线实例。除此之外,我们还提出一个车道线感知的特征增强模块(LFA)来增强车道线的局部连续性。我们的方法在多个车道线检测benchmark上都超越了已有的方法,并取得良好的精度-速度平衡,具有巨大的应用潜力。
YOLO-Pose论文:MiniViT:Compressing Vision Transformers with Weight Multiplexing