计算机视觉----基于锚点的车道线检测、从Line-CNN到CLRNet到CLRKDNet 本文所提算法Line-CNN 后续会更新以下全部算法

本文所提算法如下:

叙述按时间顺序 你也可以把本文当作快速阅读这几篇文献的一个途径 所有重要的部分我都已经标注并弄懂其原理 方便自己也是方便大家

Line-CNN:基于线提议单元的端到端交通线检测

摘要

交通线检测是一项基础且具有挑战性的任务。以往的方法通常采用两阶段的方式进行交通线检测,即先检测线段,再对线段进行聚类。 然而,这种方法很可能忽略整个线条的全局语义信息 。为了解决这一问题,我们提出了一种名为 Line-CNN(L-CNN)的端到端 系统,其关键组件是一种新颖的线提议单元(LPU)LPU 利用线提议作为参考来准确定位交通曲线迫使系统学习整个交通线的全局特征表示。后面的实验部分没有写 了解原理即可

针对以往车道线检测对于车道整体全局语义的忽视,本文提出了LPU线提议单元,我的理解是类似于目标检测中的锚定框 然后根据预定义锚定框 回归真实框

一、引言

近年来,自动驾驶系统在学术界和工业界都呈现出爆炸式的发展,各种计算机视觉技术被证明是安全可靠自动驾驶不可或缺的。例如,自动驾驶中一个基础任务是车辆导航或可行驶车道识别,现有研究从道路区域分割和交通线检测两个方面来解决这一问题。 由于后者不仅能确定由平行线限制的可行驶路径,还能反映道路区域分割无法体现的交通规则和完整全局结构,因此本文聚焦于交通线检测任务。实际上,交通线检测极具挑战性,因为线条形态各异,驾驶场景通常也很复杂。 交通线结构多样复杂,交通线曲线包含各种曲率半径。 此外,线条可能是虚线或实线。对于不连续的虚线,需要从语义层面找到一种方法来连接所有不连贯的部分。(这就是本文提出的意义) 此外,交通线合并/分离现象频发,这也给准确的交通线检测带来了很大的困难。除了交通线本身的外观,还应全面考虑外部复杂环境 ,如天气状况(晴天/雨天/雪天)、照明条件(白天/夜晚)以及其他意外因素(阴影/遮挡) 。因此,人们开发了多种交通线检测方法来解决这些问题。(早期手段 通过集合假设 滤波器提取线特征 然后对线段聚类)早期的 工作主要通过对一对交通线施加平行几何假设 ,利用手工制作的滤波器来提取线段特征,然后将线段聚类成不同的交通线 。许多近期的工作通过使用流行的卷积神经网络(CNN)来实现特征提取,从而实现了上述两阶段解决方案。然而,这些方法的性能相当有限。事实上,广泛使用的两阶段策略忽略了线条检测的全局信息上述现有方法的两个阶段是相互隔离的,无法保留线条的全局信息, 以在聚类阶段提供不同线条的可区分性,尤其是在存在阴影或严重遮挡的情况下。(这里说明为什么目标检测器不适用于车道线检测 其一 车道线细长 像素点少 贯穿场景 这也就要求了全局信息 目标检测器是对矩形区域的预测 用矩形包住车道线 会增加冗余像素 增加不准确性)有人可能认为,现有的基于区域的有效目标检测器(如 Faster R-CNN)可用于实现交通线检测。在这里,我们想要澄清的是,它们并不适用于我们的任务。这是因为线条与区域有很大不同,它们更纤细且不那么紧凑。区域检测器生成一个粗糙的边界框来定位对象区域。然而,线条通常是贯穿整个场景的曲线,但只占据少量像素。因此,如果使用边界框来包围线条,盒子将包含许多不对应于线条的冗余像素,这肯定是不准确且无意义的。 为了克服以往方法的局限性,我们提出了一种名为 "Line-CNN"(L-CNN)的高效、稳健的深度学习系统来处理交通线检测,其中新颖的线提议单元(LPU)在成功检测中起着重要作用。LPU 的动机来源于现有的基于区域的有效的目标检测器------Faster R-CNN 及其区域提议网络(PRN)。 由于显然不适用于通过基于区域的检测器来检测像交通线这样纤细且不紧凑的对象,我们对 RPN 进行了一种优雅的算法改进------主要是用新颖的 "线提议" 替换 "区域提议" 的概念。(与我前面提到的预测相同)与 RPN 类似,其中通过其对应锚框的参考预先定义区域提议,然后首先激活该提议以进行后续的精确定位和分类,LPU 包含多个预设的线提议,这些线提议是从图像边界以一定方向发出的直线射线,其中一些线提议进一步被细化以获得驾驶场景中交通线的真实形状。 这种设计使我们的系统紧凑且端到端,LPU 强迫卷积特征提取器学习整个交通线的全局表示 ,这与现有的两阶段流程有显著不同。因此,可以保留整个交通线的全局信息以进行准确检测,而以往两阶段方法的聚类步骤总是无法定位被遮挡的交通线或线条非常接近的情况。

二、相关工作

本节首先回顾一些传统区域检测的代表性工作,然后介绍与本文主题相关的现有交通线检测方法。

(一)基于区域的目标检测

区域检测器在近年来展现出 compelling 的发展。其中大多数 [20], [21] 旨在生成可能的对象候选的粗略边界框。例如,Faster R-CNN [18] 集成区域提议网络(RPN)以高效且准确地生成区域提议。通过添加实例掩码分支,Mask R-CNN [22] 进一步提升了 Faster R-CNN 的整体性能 。另一种基于区域的检测器设计是不使用区域提议。OverFeat [23] 利用全连接层直接预测对象的坐标。最近,SSD [24], [25] 和 YOLO(这两种算法是单阶段检测算法) [26], [27] 也通过对端到端的定位任务范式引发了该领域的研究兴趣。

(二)交通线检测

如引言所述,上述基于区域的检测器不适合检测交通线。因此,一系列方法被专门开发来解决这个问题。现有方法通常将交通线检测任务分解为两个独立的步骤,即线段检测和线段聚类。在第一个 "线段检测" 步骤中,许多手工制作的滤波器(如高斯核 [6], [8]、可转向滤波器 [15]、Sobel 滤波器、霍夫变换 [29]--[37]、颜色 [16]、基于直方图的 [17] 特征) 被提出用于检测每个交通线的片段。这些手工制作的特征需要大量的启发式和复杂的后处理,并且需要强烈几何假设 来确定交通线的最终位置,这在实际应用中是不切实际的。由于深度网络(如 CNN [38]--[41])的发展,最近人们利用强大的卷积滤波器来提取线段特征。例如,全卷积网络(FCNs)[42] 被用于查找线段 [7] 或属于交通线的像素点 [10], [11], [43]。具体来说,在 [7] 中,通过使用 FCN 在滑动窗口中回归预测局部线段的两个端点。VPGNet [10] 结合辅助监督的消失点来定位交通线。Deeplanes [43] 使用两个侧向安装的下视相机来估计车道点的位置,但由于相机的方向,该方法相当有限,因为它无法利用场景中的所有信息。**空间 CNN(SCNN)[11] 被证明特别适合通过像素之间的消息传递来对长连续形状结构进行像素回归,但它在检测数量上有限制(例如,最多 4 条交通线)。**与基于 CNN 的方法不同,Li 等人 [44] 结合多任务 CNN 和 RNN 来检测交通线段。在第二个 "线段聚类" 步骤中,通过某些聚类方法(如 DBSCAN [7], [45]、RANSAC [6], [46], [47] 线拟合或 [10], [11], [43] 中的一些启发式贪婪选择)将检测到的线段分配给交通线。

三、Line-CNN

我们的端到端交通线检测系统,称为 LineCNN(L-CNN),由两个连续部分组成。第一部分是 ResNet [19], [39] 主干,用于丰富的特征提取。第二部分是提出的线提议单元(LPU),它通过参考线提议直接预测整个交通线。整个系统是一个单一的统一网络,用于交通线检测(图 3)。由于 L-CNN 将 Faster R-CNN 中的所有元素从局部区域重新表述为全局线条,我们在以下小节 III-A 中对 Faster R-CNN 和 L-CNN 进行类比,以便读者能够轻松理解 L-CNN 的实际工作原理。在类比中,我们按顺序详细解释 L-CNN 的细节,以便读者完整理解它及其核心组件 ------ LPU。在小节 III-B 中,我们展示了用于学习 L-CNN 的损失函数,并在小节 III-C 中给出了实施的详尽细节。

通过特征提取后 进入线提议单元 fa是a位置的全局信息 ra是a的预测向量 对于左右下三个方位 各自生成15条线提议 每条线提议包括 置信度 长度 用于准确定位真实交通线的采样水平偏移

(一)从 Faster R-CNN 到 Line-CNN

为了将 Faster R-CNN 在基于区域检测中的成功转化为交通线检测,我们对与区域相关的概念进行了重新表述,使其适用于线条:这里的提议也就是锚定框 对于每个窗口生成k个区域提议 每个提议包含 坐标信息和类别信息

这种训练策略既考虑了分类的准确性,又考虑了定位的精确性,从而使得 Line-CNN 能够在检测交通线时同时具有较高的准确率和召回率。

通过这种标签分配方式,训练目标函数能够专注于那些最有希望代表真实交通线的线提议(正标签),并忽略那些明显不相关的线提议(负标签),同时不考虑那些不确定的线提议。

在训练过程中,使用多任务损失函数来最小化模型的预测与真实标签之间的差异:

  1. 区域提议网络 → 线提议单元 :我们首先回顾 RPN 中区域提议的设计细节。具体来说,RPN 在每个滑动窗口位置同时预测 k 个区域提议,每个提议包含 2 个分数,用于表示对象

  2. (objectness)以及 4 个坐标,用于准确的提议定位。这 k 个提议是相对于 k 个参考框(称为锚框)进行参数化的。对于大小为 W × H 的卷积特征图,总共有 W Hk 个锚框。在交通线检测中,我们考虑使用直线射线代替锚框作为有效的参考,即线提议 ,因为交通线通常是全局且纤细的。此外,受到交通线从左/右/下 边界开始并汇聚到消失点的启发,我们组织这些线提议(直线射线)从三个边界上的起始点发射 。直线射线设置为具有一定的方向,每个起始点与一组射线相关联。左/右/下边界点的射线组数分别表示为 kl, kr, kd。与 RPN 稍有不同,我们的线提议单元(LPU)在三个边界上的每个滑动窗口位置同时预测 k 个线条形状 (直接作为最终预测的交通线结果),每个 k(这里为了清晰起见,将 kl, kr, kd 简化为 k)包含 2 个分数,用于表示为实际交通线的置信度,以及 S + 1 个坐标,用于描述其准确形状。图 4 清晰地展示了从 RPN(左)到 LPU(右)的适应过程。注意,LPU 中的线提议与我们设计中的直线射线是相同的概念,因为 LPU 直接通过一步参考线提议 / 直线射线输出最终可能的交通线,即线提议(直线射线)→ 最终交通线形状。 这与 Faster R-CNN 实际上包含两个步骤的流程不同:锚框 → 区域提议 → 最终对象边界框。LPU 可以通过一个小型全卷积网络(FCN)[42] 来实现。我们在最后一个卷积特征图的三个边界上分别滑动三个 1 × 1 卷积网络。从每个边界位置获得 1024 维特征向量,然后将其输入到两个并行的全连接层 ------ 线回归层和线分类层 。这个小型网络在图 4(右)的右侧边界的一个位置上进行了说明。注意,由于该小型网络以滑动窗口的方式运行,因此在每个边界的所有空间位置上分别共享全连接层。这种架构自然地通过三个并行的 1 × 1 卷积层实现,每个层后面跟着两个对应的 1 × 1 卷积层(分别用于线回归和线分类)以及相应的每个边界。因此,对于大小为 H × W 的卷积特征图,总共有 H(kl + kr) + Wkd **(左右是宽 还有下是长)**个线提议。

  3. 这里S+1代表长度和S个水平偏移量用于回归真实车道线 2代表着是否为车道线 为那一条车道线

  4. 区域表示 → 线条表示 :为了描述和表示紧凑的 "区域" 对象,用矩形框(即边界框)将其包围是合理的,这在基于区域的目标检测方法 [18], [25], [27] 中很常见。该矩形框可以参数化,例如,用中心坐标 x, y 及其宽度 w 和高度 h。然而,这种表述显然不适合表示长 "线" 对象,如交通线。受到 TuSimple 基准测试中数据结构定义的启发,我们采用均匀采样的点序列来表示交通线,这几乎可以表示任何可能方向的线条曲线。**具体来说,原始图像被离散为 S−1 个水平带,S 条均匀分布的切片线。这些切片线从 1 到 S 进行索引,从底部到顶部。交通线然后由与自身相交的水平切片线的点集表示,如图 5(右)所示。点的数量可以确定交通线在外观上的实际长度,其被包含在两个切片索引中 ------ 起始索引(s)和结束索引(e)。因此,交通线 l 可以表示为 x 坐标的序列,即 l = {xs, xsl+1, ··· , xe},其中 sl 表示交通线 l 的起始索引,el 表示其结束索引。同样,线提议(即直线射线)L 可以写为 L = {XsL, XsL+1, ··· , Xin f},其中 Xin f = in f,其中 inf 指 "无限"。注意,线条表示无法处理几乎水平的线条。**对于旨在主流实际应用 ------ 车道偏离警告(LDW)和车道保持辅助(LKA)的提出的算法而言,这不是问题。这些功能在交通线方向下运行的假设下工作。不适合这些应用的几乎水平的线条将被相应忽略。

  5. 区域 - 区域度量 → 线条 - 线条度量 :学习区域提议需要为所有锚框分配正 / 负标签,其中通常采用锚框和真实框之间的交并比(IoU)重叠作为度量 ,以决定区域对象之间的距离。对于线条对象,其距离度量需要根据上述结构表示进行定义。假设线提议 Li 和交通线 l j 可以分别表示为 Li = {XsLi , XsLi +1, ··· , Xin f}(Xinf = inf)和 l j = {xsl j , xsl j +1, ··· , xel j}。

  6. 正负标签

  7. 正标签分配 :对于每个线提议 Li​,如果它到真实交通线 lj​ 的距离 D(Li​,lj​)=d 是所有距离中最小的,并且这个距离 d 小于一个阈值 tpos​(正标签的阈值),那么 Li​ 就被分配为正标签。这个过程确保只有那些与真实交通线非常接近的线提议才被标记为正标签。需要注意的是,一个真实交通线可以为多个线提议分配正标签,因为多个线提议可能都与同一条真实交通线比较接近。保证两点 第一小于一个阈值 也就是不能离得太远 第二选择离的最近的那条真实线 只能是一条 但一条真实线可以有多个提议

  8. 负标签分配 :如果一个线提议与所有真实交通线的距离都大于另一个阈值 tneg​(负标签的阈值),则它被分配为负标签。这意味着这个线提议与任何真实交通线都不够接近,因此不太可能表示实际的交通线。保证一点 与所有车道线 都大于阈值 既是和所有线都不近

  9. 不参与训练的线提议 :既不是正标签也不是负标签的线提议不参与训练目标。这些线提议可能处于不确定的区域,或者与真实交通线的距离不够接近以被标记为负标签,也不足够接近以被标记为正标签。 这部分不作为标签

  10. 分类损失 :用于训练模型判断线提议是否为实际交通线的能力。正标签的线提议应具有较高的 "是交通线" 的置信度,而负标签的线提议则应具有较低的置信度。

  11. 回归损失 :用于调整线提议的位置和形状,使其更接近真实交通线。**只有正标签的线提议才会触发回归损失的计算和优化,**因为它们是模型需要精确定位的交通线的候选者。

(二)用于学习 Line-CNN 的损失函数

为了训练 Line-CNN,正负标签分配我们为每个线提议(直线射线)分配一个二进制分类标签(表示是否为实际交通线)。如果满足两个条件,则为线提议 Li 分配正标签:(i)它与真实交通线 l j 的距离 D(Li,l j) = d 最小,且(ii)d < t_pos,其中 t_pos 是控制正标签阈值的超参数。注意,单个真实交通线可能为多个线提议分配正标签。如果一个非正线提议与所有真实交通线的距离都大于 t_neg(与 t_pos 定义相反),则为其分配负标签。既不是正标签也不是负标签的线提议不参与训练目标。通过这些定义,我们通过多任务损失最小化图像的目标函数:

L(pi​,ri​)=λi∑​Lcls(pi​,pi∗​)+i∑​pi∗​Lreg(ri​,ri∗​)

其中,i 是线提议的索引,p_i 是该线提议 Li 的预测概率(即为实际交通线的置信度)。该线提议的真实标签 p_i^* 由分配的标签确定:如果是正标签则为 1,否则为 0。r_i 是一个向量,表示预测的交通线形状的 S+1 个参数化坐标,r_i^* 是与线提议 Li 距离最小的 d 对应的真实交通线 l j 的参数化坐标。分类损失 Lcls 设计为两个类别的对数损失(实际交通线或非)。回归部分应用鲁棒损失函数(平滑 L1 [49])作为 Lreg。值得注意的是,只有正线提议的回归损失通过 p_i^* Lreg 项被激活。λ 用于平衡分类和回归项之间的训练。我们采用以下参数化方式:点数后跟从线提议的横向偏移量:

ri∗​={elj​−slj​+1,xslj​−XsLi​,xslj​+1−XsLi​+1,⋅⋅⋅}.

需要注意的是,r_i^* 中有效的 x 偏移量持续 elj − slj +1 次。因此,剩余的回归损失不是通过简单地将后续损失权重填充为零来计算的。此外,在实践中,我们忽略或扩展 l j 的几个底部点,以强制 slj = sLi,使交通线的起始索引与对应的线提议对齐,以进行正确的回归。通过上述定义的损失函数,L-CNN 系统可以通过反向传播和随机梯度下降(SGD)[50] 进行端到端训练。由于负样本占主导,我们通过将它们的损失权重设置为零来随机丢弃许多负样本。

损失函数

区分正负样本

回归损失只针对正标签

相关推荐
m0_6206078111 分钟前
机器学习——集成学习基础
人工智能·机器学习·集成学习
weixin_5498083639 分钟前
如何使用易路iBuilder智能体平台快速安全深入实现AI HR【实用帖】
人工智能·安全
EasyDSS1 小时前
WebRTC技术下的EasyRTC音视频实时通话SDK,助力车载通信打造安全高效的智能出行体验
人工智能·音视频
jndingxin1 小时前
OpenCV CUDA模块中逐元素操作------数学函数
人工智能·opencv·计算机视觉
暴龙胡乱写博客2 小时前
机器学习 --- KNN算法
人工智能·算法·机器学习
极新2 小时前
极新携手火山引擎,共探AI时代生态共建的破局点与增长引擎
人工智能·火山引擎
是麟渊2 小时前
【大模型面试每日一题】Day 17:解释MoE(Mixture of Experts)架构如何实现模型稀疏性,并分析其训练难点
人工智能·自然语言处理·面试·职场和发展·架构
Poseidon、3 小时前
2025年5月AI科技领域周报(5.5-5.11):AGI研究进入关键验证期 具身智能开启物理世界交互新范式
人工智能·agi
天机️灵韵3 小时前
字节开源FlowGram与n8n 技术选型
人工智能·python·开源项目
jixunwulian3 小时前
AI边缘网关_5G/4G边缘计算网关厂家_计讯物联
人工智能·5g·边缘计算