做了这么久车道线,决定近期沉淀一下,把看过的车道线文章写一个专栏,希望能坚持下去
paper链接
这是一篇基于线Anchor的车道线检测文章,很多灵感都源于Line-CNN。它也是将CULane的F1指标刷新了,并且实时性上也能达到250+fps(轻量化版本)
现代车道检测方法在复杂的现实场景中取得了显著的性能,但许多方法在保持实时效率方面存在问题,这对自动驾驶车辆非常重要。在这项工作中,我们提出了LaneATT:一种基于锚的深度车道检测模型,与其他通用的深度对象检测器类似,该模型将锚用于特征池步骤。由于车道遵循规则模式且高度相关,我们假设在某些情况下,全局信息可能对推断其位置至关重要,尤其是在遮挡、缺少车道标记等情况下。因此,这项工作提出了一种新的基于锚的注意机制,可以聚合全局信息。该模型在文献中使用最广泛的三个数据集上进行了广泛评估。结果表明,我们的方法优于目前最先进的方法,显示出更高的效率和效率。此外,还进行了消融实验,并讨论了在实践中有用的效率权衡方案
车道检测模型必须克服各种挑战。将在真实场景中使用的模型应该对几种不利条件具有鲁棒性,例如极端光照和天气条件。此外,车道标记可能会被其他物体(如汽车)遮挡,这在自动驾驶汽车中极为常见。一些方法,例如多项式回归模型,也可能会遇到长尾效应导致的数据不平衡问题,因为曲线更尖锐的情况不太常见。此外,该模型不仅要鲁棒性高,而且要高效。在一些应用中,车道检测必须实时或更快地执行,以节省其他系统的处理能力,这是许多模型难以满足的要求。基于语义分割的车道线检测方法,仍然很难满足实时性要求。除此之外,许多其他问题在车道检测工作中也很常见,例如需要后处理步骤(通常是启发式的)、训练时间长,以及缺乏公开可用的源代码,这会妨碍比较和再现性。 在这项工作中,我们提出了一种实时车道检测方法,它比大多数最先进的方法更快、更准确。我们提出了一种基于anchor机制的单阶段车道检测模型LaneA TT。它的体系结构允许使用轻量级主干CNN,同时保持高精度。提出了一种新的基于锚的注意机制来聚集全局信息。在三个基准(TuSimple[24]、CULane[17]和LLAMAS[3])上显示了广泛的实验结果,并与最先进的方法进行了比较,讨论了效率权衡,以及对我们的设计选择进行了烧蚀研究。总之,我们的主要贡献是:
1)提出一种在大型复杂数据集上比现有最先进的实时方法更精确的车道检测方法;
2) 与大多数其他模型相比,该模型能够实现更快的训练和推理时间(达到250 FPS,与之前的最先进技术相比,乘法累加运算(MAC)几乎少一个数量级);
3)一种新的基于锚的车道检测注意机制,在被检测对象相关的其他领域可能有用。
车道线检测方法
1.传统方法
2.基于分割的方法
3.基于逐行分类的方法
4.其他方法(Fast Draw、Line-CNN、PolyLaneNet)
还增加了可复现性这一论点
与之前提出的大多数以牺牲精度为代价实现高速的方法不同,我们提出了一种比现有最先进的方法更快、更准确的方法。此外,为社区发布了复制报告结果的完整代码。
LaneATT 用于车道检测的基于锚的单级模型(如YOLO/SSD),总体框架图如图一所示,输入是RGB图像,输出是车道边界线。为了生成这些输出,称为主干网络的卷积神经网络 (CNN) 会生成一个特征图,然后将其汇集以提取每个锚点的特征。这些特征与注意力模块产生的一组全局特征相结合。通过结合局部和全局特征,该模型可以更轻松地使用来自其他车道的信息,这在诸如遮挡或没有可见车道标记等情况下可能是必要的。最后,组合特征被传递到全连接层以预测最终输出车道。
车道由等间距Y坐标的2D点表示,由于Y是固定的,因此车道线只能由其坐标X = { Xi } Npts 1i = 0来定义。由于大多数车道线不会垂直穿过整个图像,因此开始索引s和结束索引e用于定义x的有效连续序列anchor的定义与Line-CNN一致,我们的方法使用线而不是框来执行基于锚的检测,这意味着车道的proposals是以这些线作为参考。锚点是图像平面中的一条“虚拟”线,由(I)原点O = (xorig,yorig)(其中yorig∈ Y)位于图像的边界之一(除了顶部边界)和(ii)方向θ定义。所提出的方法使用与[13]相同的一组锚。这种车道和锚点表示满足了绝大多数真实世界的车道。
该方法的第一阶段是特征提取,它可以由任何通用的CNN网络进行,如ResNet。这一阶段的输出是一个特征图 F,每个锚的特征将通过池化过程从中提取;为了降低计算成本,还是用了1x1卷积降维。
锚点定义了将用于proposals的特征图F上的点,由于锚被建模为线,所以给定锚的兴趣点是那些截获锚的虚拟线的点(考虑到栅格化的线被简化为特征映射的维度)
对于车道线而言,因为lane的anchor表征不再是矩形区域,而是一条线。因此本文提出了x坐标的计算公式:变换一下,对着图一看tanθ的计算公式即可
结合框架图来看,yorig/δback,xorig/δback 的意义:anchor是在特征图中产生的,所有原点坐标O要除以全局步长?(这是我目前的理解,如有不对后续将更正)
本文的池化操作类似于R-CNN的ROI ,然而,考虑到我们的方法是一个单级检测器,我们使用锚本身,而不是使用池化的proposal。此外,我们的方法RoI池层(用于生成固定大小的特征)不是很必要的。与只利用特征图边界的L-CNN相比,我们的方法可以潜在地探索所有的特征映射,这使得能够使用更小的接收域参数量少的主干。
这篇文章另一个时常自夸的点就是注意力机制:假设在某些情况下,全局信息可能对推断其位置至关重要,尤其是在遮挡、缺少车道标记等情况下。因此,这项工作提出了一种新的基于锚的注意机制,可以聚合全局信息。3.3中讲到由于每个anchor对应的特征向量都只是携带了局部信息,而本文需要全局信息—了解决这个问题,我们提出了一种作用于局部特征(aloc*)的注意机制,以产生聚集全局信息的附加特征(aglob*)—计算局部i与其他所有局部特征的相关性,然后加权得到i的全局特征。懂自注意力机制的,这块理解起来应该不难。
![
需要明白,在这篇论文里, 经常提到的proposal或者说Anchor就是一条线,由原点和θ定义而成。
每个anchor的预测结果包括三部分:1) K + 1 概率(k为k条车道线,一为背景或者无效预测)2)Npts个采样点的水平偏移量(预测和锚线之间的水平距离)3)proposla的长度l(有效偏移点的数量);X起始点s由yori决定,终止点e = s + l+1
预测分支有分类和回归两个分支,分类分支去预测k+1个类别,k个车道线类别和1个背景类别;回归分支基于anchor的起始点s,预测出N个采样点的预测坐标与anchor‘s line的水平偏移s ,以及一个线的长度L。因此,车道线的结束点就是e = s+l-1。(为什么-1, 因为起始点s已经算进去 )
像在基于锚的深度检测中一样,NMS对于减少误报数量至关重要。利用了Line-CNN中车道距离度量方法:两条车道之间的距离基于它们共同的有效指数(或y坐标)计算。让s0= max(sa,sb)和e0= min(ea,eb)定义这些常用指数的范围。因此,车道距离度量被定义为
在训练期间,公式(5)中的距离度量也用于定义正锚和负锚。首先,该度量用于测量每个锚点(未在NMS中过滤的锚点)与地面真相车道之间的距离。随后,距离小于阈值τp的锚被视为正锚,而距离大于τn的锚被视为负锚。在这些阈值之间有距离的锚(及其相关proposal)将被忽略。剩余Np&n用于多任务损失:
添加图片注释,不超过 140 字(可选)
损失函数分为分类损失和回归损失,具体计算思想如下:
全套anchor共有2782个anchors。这个数字的增加是限制模型速度的主要因素之一。由于大量锚定在训练期间将不有用(例如,一些锚定的起点可能高于训练数据集中所有图像的地平线),因此可以减小集合的大小。为了选择在训练和测试阶段将忽略哪些锚,该方法测量训练集中每个锚被标记为阳性的次数(与训练中的标准相同)。最后,仅保留顶部标记为Nanc的锚,以便进一步处理(也在测试期间)。
分别在Tusimple、CULane、LLAMAS上做了对比实验,就不细分析了,直接放结果
(1)参数设置
(2)实验结果
1)Tusimple
2)CULane
3)LLAMAS
4)效率平衡实验
5)消融实验
6.Conclusion
我们提出了一种实时单级深车道检测模型,其性能优于目前最先进的模型,与文献进行了广泛的比较。该模型不仅有效而且高效。在TuSimple上,该方法获得了第二高的F1(仅0.02%的差异),同时比顶级F1方法(171 vs 30 FPS)快得多。在最大、最复杂的车道检测数据集CULane上,该方法在速度和准确性方面都在实时方法中建立了一个新的先进水平(与最先进的方法相比,前者的速度约为170 FPS)。此外,该方法在LLAMAS基准测试中获得了较高的F1(+93%)。为了达到这些结果,在进行其他修改的同时,还提出了一种新的基于锚的注意力机制。消融研究表明,考虑到近年来文献进展所获得的收益,这一添加显著提高了模型的性能(F1评分)。此外,还展示了一些在实践中有用的效率权衡
参考博文如下:
https://zhuanlan.zhihu.com/p/268894250
anchor机制的详细解读:https://blog.csdn.net/m_buddy/article/details/119655990?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3.pc_relevant_aa&utm_relevant_index=4
https://blog.csdn.net/weixin_46716951/article/details/121478429?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3.pc_relevant_aa&utm_relevant_index=5
如果有问题,欢迎指正。 欢迎关注我的公众号:Cv打怪升级 一起学习交流