网站建设实战李静,如何建设网站的能力,网络营销策划案模板,网站建设国风网络公司本文所提算法如下#xff1a; 叙述按时间顺序 你也可以把本文当作快速阅读这几篇文献的一个途径 所有重要的部分我都已经标注并弄懂其原理 方便自己也是方便大家 Line-CNN#xff1a;基于线提议单元的端到端交通线检测
摘要
交通线检测是一项基础且具有挑战性的任务。以往的…本文所提算法如下 叙述按时间顺序 你也可以把本文当作快速阅读这几篇文献的一个途径 所有重要的部分我都已经标注并弄懂其原理 方便自己也是方便大家 Line-CNN基于线提议单元的端到端交通线检测
摘要
交通线检测是一项基础且具有挑战性的任务。以往的方法通常采用两阶段的方式进行交通线检测即先检测线段再对线段进行聚类。然而这种方法很可能忽略整个线条的全局语义信息。为了解决这一问题我们提出了一种名为 Line-CNNL-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] 使用两个侧向安装的下视相机来估计车道点的位置但由于相机的方向该方法相当有限因为它无法利用场景中的所有信息。空间 CNNSCNN[11] 被证明特别适合通过像素之间的消息传递来对长连续形状结构进行像素回归但它在检测数量上有限制例如最多 4 条交通线。与基于 CNN 的方法不同Li 等人 [44] 结合多任务 CNN 和 RNN 来检测交通线段。在第二个 “线段聚类” 步骤中通过某些聚类方法如 DBSCAN [7], [45]、RANSAC [6], [46], [47] 线拟合或 [10], [11], [43] 中的一些启发式贪婪选择将检测到的线段分配给交通线。
三、Line-CNN
我们的端到端交通线检测系统称为 LineCNNL-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 能够在检测交通线时同时具有较高的准确率和召回率。 通过这种标签分配方式训练目标函数能够专注于那些最有希望代表真实交通线的线提议正标签并忽略那些明显不相关的线提议负标签同时不考虑那些不确定的线提议。
在训练过程中使用多任务损失函数来最小化模型的预测与真实标签之间的差异 区域提议网络 → 线提议单元我们首先回顾 RPN 中区域提议的设计细节。具体来说RPN 在每个滑动窗口位置同时预测 k 个区域提议每个提议包含 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 左右是宽 还有下是长个线提议。 这里S1代表长度和S个水平偏移量用于回归真实车道线 2代表着是否为车道线 为那一条车道线 区域表示 → 线条表示为了描述和表示紧凑的 “区域” 对象用矩形框即边界框将其包围是合理的这在基于区域的目标检测方法 [18], [25], [27] 中很常见。该矩形框可以参数化例如用中心坐标 x, y 及其宽度 w 和高度 h。然而这种表述显然不适合表示长 “线” 对象如交通线。受到 TuSimple 基准测试中数据结构定义的启发我们采用均匀采样的点序列来表示交通线这几乎可以表示任何可能方向的线条曲线。具体来说原始图像被离散为 S−1 个水平带S 条均匀分布的切片线。这些切片线从 1 到 S 进行索引从底部到顶部。交通线然后由与自身相交的水平切片线的点集表示如图 5右所示。点的数量可以确定交通线在外观上的实际长度其被包含在两个切片索引中 —— 起始索引s和结束索引e。因此交通线 l 可以表示为 x 坐标的序列即 l {xs, xsl1, ··· , xe}其中 sl 表示交通线 l 的起始索引el 表示其结束索引。同样线提议即直线射线L 可以写为 L {XsL, XsL1, ··· , Xin f}其中 Xin f in f其中 inf 指 “无限”。注意线条表示无法处理几乎水平的线条。对于旨在主流实际应用 —— 车道偏离警告LDW和车道保持辅助LKA的提出的算法而言这不是问题。这些功能在交通线方向下运行的假设下工作。不适合这些应用的几乎水平的线条将被相应忽略。 区域 - 区域度量 → 线条 - 线条度量学习区域提议需要为所有锚框分配正 / 负标签其中通常采用锚框和真实框之间的交并比IoU重叠作为度量以决定区域对象之间的距离。对于线条对象其距离度量需要根据上述结构表示进行定义。假设线提议 Li 和交通线 l j 可以分别表示为 Li {XsLi , XsLi 1, ··· , Xin f}Xinf inf和 l j {xsl j , xsl j 1, ··· , xel j}。 正负标签 正标签分配对于每个线提议 Li如果它到真实交通线 lj 的距离 D(Li,lj)d 是所有距离中最小的并且这个距离 d 小于一个阈值 tpos正标签的阈值那么 Li 就被分配为正标签。这个过程确保只有那些与真实交通线非常接近的线提议才被标记为正标签。需要注意的是一个真实交通线可以为多个线提议分配正标签因为多个线提议可能都与同一条真实交通线比较接近。保证两点 第一小于一个阈值 也就是不能离得太远 第二选择离的最近的那条真实线 只能是一条 但一条真实线可以有多个提议 负标签分配如果一个线提议与所有真实交通线的距离都大于另一个阈值 tneg负标签的阈值则它被分配为负标签。这意味着这个线提议与任何真实交通线都不够接近因此不太可能表示实际的交通线。保证一点 与所有车道线 都大于阈值 既是和所有线都不近 不参与训练的线提议既不是正标签也不是负标签的线提议不参与训练目标。这些线提议可能处于不确定的区域或者与真实交通线的距离不够接近以被标记为负标签也不足够接近以被标记为正标签。 这部分不作为标签 分类损失用于训练模型判断线提议是否为实际交通线的能力。正标签的线提议应具有较高的 “是交通线” 的置信度而负标签的线提议则应具有较低的置信度。 回归损失用于调整线提议的位置和形状使其更接近真实交通线。只有正标签的线提议才会触发回归损失的计算和优化因为它们是模型需要精确定位的交通线的候选者。
二用于学习 Line-CNN 的损失函数
为了训练 Line-CNN正负标签分配我们为每个线提议直线射线分配一个二进制分类标签表示是否为实际交通线。如果满足两个条件则为线提议 Li 分配正标签i它与真实交通线 l j 的距离 D(Li,l j) d 最小且iid 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 是一个向量表示预测的交通线形状的 S1 个参数化坐标r_i^* 是与线提议 Li 距离最小的 d 对应的真实交通线 l j 的参数化坐标。分类损失 Lcls 设计为两个类别的对数损失实际交通线或非。回归部分应用鲁棒损失函数平滑 L1 [49]作为 Lreg。值得注意的是只有正线提议的回归损失通过 p_i^* Lreg 项被激活。λ 用于平衡分类和回归项之间的训练。我们采用以下参数化方式点数后跟从线提议的横向偏移量
ri∗{elj−slj1,xslj−XsLi,xslj1−XsLi1,⋅⋅⋅}.
需要注意的是r_i^* 中有效的 x 偏移量持续 elj − slj 1 次。因此剩余的回归损失不是通过简单地将后续损失权重填充为零来计算的。此外在实践中我们忽略或扩展 l j 的几个底部点以强制 slj sLi使交通线的起始索引与对应的线提议对齐以进行正确的回归。通过上述定义的损失函数L-CNN 系统可以通过反向传播和随机梯度下降SGD[50] 进行端到端训练。由于负样本占主导我们通过将它们的损失权重设置为零来随机丢弃许多负样本。
损失函数 区分正负样本 回归损失只针对正标签