当前位置: 首页 > 科技观察

高达250fps!实时高性能车道检测算法LaneATT

时间:2023-03-22 15:31:29 科技观察

CVPR2021车道检测方向论文:KeepyourEyesontheLane:Real-timeAttention-guidedLaneDetection。论文:https://arxiv.org/pdf/2010.12035.pdf代码:https://github.com/lucastabelini/LaneATT0Motive车道线检测是自动驾驶领域非常重要的子任务之一。作者提出了一种实时、高性能的车道检测算法,名为LaneATT。该方法基于anchor实现,应用attention机制,轻量级推理速度达到250FPS。01网络结构1.1总体流程算法总体流程如下图所示:以车辆前视摄像头采集的RGB图像作为输入,输出车道线位置。从上图可以看出,算法将backbone的输出结果进行池化,提取每个anchor的特征;提取的特征与attention模块生成的全局特征进行融合,解决遮挡、光照等问题,导致检测不到车道线;融合后的特征作为全连接层的输入,全连接层输出车道线的置信度及相关参数。1.2车道线和anchor的表示方法车道线的表示沿图片的垂直方向进行均等化,得到的等分点记为,其中。对于每条车道线,令固定,从而确定每条车道线的差异;每个在车道线上形成一个点,对应.由于车道线并没有贯穿整幅图像,所以用求和表示的起始索引和结束索引来表示车道线的连续有效点。锚点的表示使用原点和方向来表示锚点,其中。原点始终位于图像的左、右和底部边界。1.3Backbone使用ResNet等通用网络作为LaneATT的backbone;将主干的输出特征表示为。为了减少后续模块的计算量,进行卷积,输出结果记为。1.4featurepooling对每一个anchor,都要从中提取特征,提取的特征点用来索引坐标。首先定义这些坐标点的方向坐标:,用下面的公式求出它们对应的坐标:上式中的和代表anchor的原点和方向,代表原图对应的特征的步长。对于每一个anchor,使用上面的sum从中提取特征;如果上述计算得到的点的坐标值超出范围,则中心对应位置的值为0。1.5AttentionMechanism上面提到的特征池化操作获取局部特征。为了能够处理遮挡、光照等复杂场景,需要融合局部特征和全局特征。作者使用了一个注意力模块,其输入是局部特征,输出是全局特征。注意模块包含一个全连接层。对于索引为的anchor,将该anchor对应的局部特征作为输入,输出为权重:用于融合除第i个anchor之外的其他anchor对应的局部特征,形成全局特征:以上内容仅针对索引为i的主播;对于所有的anchors,可以使用矩阵乘法来快速实现。假设anchors的个数为,让,用下面的矩阵乘法来计算所有anchors对应的全局特征:在上面的公式中,和。1.6predictionhead对于索引为i的anchor,其局部特征和全局特征进行concat操作,输出结果记为。作为两个平行全连接层的输入,其中一个全连接层用于分类,输出信息为;另一个全连接层用于回归,输出信息为。对于每个anchor,网络最终输出3类信息:(1)概率值,用于预测anchor对应的车道线类别和背景的概率。对于不包含车道标记标记信息的数据集,设。(2)偏移值,表示anchor中的点与预测车道线上的点之间的横向偏移量。(3)车道线的长度是anchor中实际用来表示车道线的点数。根据1.2节的信息,分别可以通过anchor原点的坐标来确定startindex和endindex,长度可以用来确定值:1.7NMS定义了两条车道线之间的距离和是:在上面的公式中,使用上面定义的距离对网络预测结果执行NMS操作以减少误报的数量。02模型训练2.1训练训练时,仍然使用1.7节定义的距离来衡量anchor与groundtruth的距离。当两者之间的距离小于阈值时,将anchor视为正样本,当两者距离较大时,将anchor视为负样本;否则,锚点将被忽略。构造如下损失函数:上式中的和分别表示网络的分类分支和回归分支的输出结果,和为真值。就是FocalLoss,就是SmoothL1损失函数;它用于平衡两个损失函数。回归损失是根据相应的anchor和groundtruth之间的公共横坐标计算的。2.2模型加速在训练和推理过程中,总共有2782个anchors。如此大量的锚点会降低计算效率。相当一部分anchor在训练和推理过程中是无效的,比如起点在地平线以上的anchor。衡量每个anchor在训练集中作为正样本的次数,作为评价anchor是否有用的指标。在后续的训练和推理中,选择使用频率最高的anchor。03实验结果训练时,网络输入图像分辨率为,使用平移、旋转、缩放和水平翻转进行数据增强。设置,,,在TuSimple数据集上的结果如下表:在CULane数据集上的结果如下表:模型在两个数据集上的运行时间和性能对比如下图:可视化结果如下图下图中:上图中,第一行是TuSimple数据集的可视化结果,第二行是CULane数据集的可视化结果。图中蓝线为groundtruth;绿线和红线是网络的输出结果,绿线是真阳性,红线是假阳性。04总结提出了一种实时、单阶段、基于anchor的高性能车道线检测算法LaneATT;在LaneATT中应用attention机制来提高算法的性能;LaneATT可以很好地平衡准确性和推理速度。