Rocky X · 2020年08月25日

CurcveLane-NAS:华为&中大提出一种结合NAS的曲线车道检测算法

作者:SFXiang
首发:AI算法修炼营
这篇文章是华为诺亚方舟实验室和中山大学开源的弯道车道线检测的工作,主要利用了NAS技术实现,使得车道敏感架构搜索和自适应点混合统一的用于曲线车道检测,解决了曲线车道检测问题。与现有方法相比,搜索网络实现了速度/FLOPS权衡的SOTA。

图片.png

论文地址http://arxiv.org/pdf/2007.121...

代码地址https://github.com/xbjxh/curv...

本文解决了弯道车道检测问题,它比传统的车道检测面临更多现实挑战,以更好地促进现代辅助/自动驾驶系统的发展。由于缺乏对长距离上下文信息和详细曲线轨迹的建模,当前的手工设计的车道检测方法不足以捕获曲线车道。在本文中,提出了一种新颖的车道敏感架构搜索框架,名为CurveLane-NAS,可以自动捕获长距离相干和精确的短距离曲线信息。它由三个搜索模块组成:a)特征融合搜索模块,用于为多层层次结构特征更好地融合局部和全局上下文;b)弹性主干搜索模块,以探索具有良好语义信息和潜在信息的特征提取器;c)自适应点混合模块以搜索多级后处理细化策略以组合多尺度head预测结果。此外,还发布了一个名为CurveLanes的新的最大车道检测数据集,每幅图像拥有更多的曲线车道/车道,从而建立一个更具挑战性的基准。它由带有680K标签的150K图像组成。实验部分,在新的CurveLanes上的实验表明,之前工作中的车道检测方法的性能大幅下降,而本文的模型仍可以达到80%以上的F1得分。在诸如CULane之类的传统车道基准数据集上进行的大量实验也证明了本文的CurveLane-NAS的优势,例如在CULane上获得了新的SOTA 74.8%F1得分。

简介

车道检测是现代辅助和自动驾驶系统中的核心任务,它可以定位交通场景中每个车道的准确形状。 相较于直行车道,曲线车道的检测对于进一步的下行轨迹规划任务更为关键,以使汽车在复杂的道路场景中转向时保持与道路车道的正确定位。如图1所示,在实际应用中,考虑到曲线车道的形状长短不一,且很可能被其他交通对象遮挡,曲线车道检测可能非常具有挑战性。此外,由于插值的原因,曲线车道的曲率对于远处的部分会大大增加,这使得这些远处的部分很难被追踪到。此外,实时的硬件限制和各种恶劣的场景如恶劣的天气/光线条件也限制了模型的能力。

图片.png

图1弯道检测示例与直线车道相比,曲线车道的检测对于现代辅助和自动驾驶系统中的轨迹规划更为关键。但是,弯道图像在当前大型数据集中的比例非常有限,在CULane数据集中为2%(约2.6K图像),在TuSimple数据集中为30%(约3.9K图像),这阻碍了自动驾驶在现实世界中的适用性系统。因此,我们为社区建立了一个更具挑战性的基准,称为CurveLanes。它是迄今为止最大的车道检测数据集(150K图像),超过90%的图像(约135K图像)包含曲线车道。

现有的车道检测数据集(例如TuSimple和CULane)不足以具有测量弯道车道检测的性能。由于交通场景中车道的自然分布,这些数据集中的大多数车道都是直线车道。在CULane中,只有约2.1%的图像(约2.6K),在TuSimple中只有30%的图像包含曲线车道(约3.9K)。为了更好地衡量具有挑战性的曲线车道检测性能并促进对困难路况的研究,本文引入了一个新的大规模车道检测数据集,名为CurveLanes,该数据集包含150K图像和经过仔细标注的680K曲线车道标签,并精心挑选所有图像,以使几乎所有图像都包含至少一个弯道(超过135K图像)。据我们所知,它是迄今为止最大的车道检测数据集,并为社区建立了更具挑战性的基准。

最先进的车道检测方法是基于CNN的方法,如SCNN和SAD网络将车道检测作为一个语义分割任务,具有较重的编码器-解码器结构。然而,这些方法通常使用较小的输入图像,这使得它很难预测曲线车道的远距离的部分。此外,这些方法通常仅限于检测预先定义的车道数量。另一方面,PointLaneNet和Line-CNN遵循基于候选区域的图像,在图像中生成多个候选锚框或线,从而摆脱了低效的解码器和预先定义的车道数。然而,候选线对捕捉沿曲线车道的变异曲率是不够灵活的。此外,PointLaneNet预测是基于一个固定的单一特征图,未能在每个候选区域处同时捕获长距离和短距离的上下文信息。它们在预测曲线或远距离车道等困难场景时,性能下降很大。

在本文中,提出了一种新颖的车道敏感架构搜索框架,名为CurveLane-NAS,以解决当前模型在车道检测中的上述局限性。受到网络体系结构搜索(NAS)的最新进展的启发,本文尝试自动探索和优化当前体系结构,以实现针对特定任务的高效曲线车道检测器。具体来说,提出了结合多级预测头和多级特征融合的搜索空间,以结合远程相干车道信息和准确的短程曲线信息。此外,由于后处理对于最终结果至关重要,因此该方法通过自适应点混合优化后处理步骤来统一架构搜索,统一框架的相互指导确保了车道敏感模型的整体优化。因此,本文的车道检测方法设计了三个搜索模块:1)弹性骨干搜索模块,用于在多尺寸特征图上分配不同的计算量,以探索高效的特征提取器,以更好的权衡并具有良好的语义和潜在信息; 2)特征融合搜索模块用于为多层层次特征找到局部和全局上下文的更好融合;3)自适应点混合模块,用于搜索新颖的多级后处理细化策略,以结合多级head预测,并允许对形状变化和远距离车道进行更鲁棒的预测。总体上本方法考虑了一种简单而有效的多目标搜索算法,并将其与进化算法一起,为每个特征层正确分配具有合理的感受野和空间分辨率的计算,从而在效率和准确性之间达到最佳平衡。

在新的CurveLanes数据集上进行的实验表明,之前的车道检测方法性能大幅下降(以F1分数计为10%-20%),而本文的模型仍保持可用。同时对包括TuSimple和CULane在内的多个现有车道检测基准数据集进行了广泛的实验,结果证明了方法的有效性,例如本文的模型优于SCNN 和SAD ,并CULane数据集上在FOLPS降低的情况下获得了新的SOTA的结果:74.8%F1得分。

本文方法

1、网络结构

图片.png

图2(a)和(b)显示了其他的车道检测框架,图2(c)展示了本文中的CurveLane-NAS模型框架,可以看出是将(b)的框架进行扩展,引入了多层次优化模型。具体提出了一个具有多级预测head和多级特征融合的灵活模型搜索空间,以结合远距离相关车道信息和准确的短距离曲线信息。此外,本文的搜索框架统一了NAS并以端到端的方式优化了后处理步骤。

图片.png

图3:本文网络结构的概述。本文的统一搜索框架包含三个模块:1)弹性骨干搜索模块,用于探索具有最佳设置的网络宽度,深度以及何时增加通道/下采样的高效特征提取器;2)特征融合搜索模块,用于查找合适的融合几个特征层;3)自适应点混合模块,可通过自适应mask自动突出显示最重要的区域,并允许对形状变化和远距离车道进行更鲁棒的细化。应用统一的多目标搜索算法生成具有最佳精度/ FLOPS的折衷

CurveLane-NAS框架设计了三个搜索模块:1)设置一个弹性骨干搜索模块跨阶段高效地分配计算;2)一个特征融合搜索模块,以探索局部和全局上下文的更好组合;3)自适应点混合模块,用于搜索新颖的多级后处理优化策略,并允许对形状变化和偏远区域进行更可靠的预测。

2、Elastic Backbone Search Module

车道检测的常见主干是ImageNet预训练的ResNet,MoblieNet和GoogLeNet,它们既不特定于任务也不特定于数据。骨干网络是提取相关特征的最重要部分,而通常对于弯道检测可能不是最佳的。因此,可以在这里求助于特定于任务的体系结构搜索,以探索新颖的特征提取器,以更好的权衡并获得良好的语义信息

通用的骨干网网络目的是通过增加下采样率来提取特征,可以将其视为4个阶段。同一阶段中的卷积块共享相同的空间分辨率。早期阶段通常具有较高的计算成本和更多的细节特征。后期特征图较小,因此计算成本相对较小,但丢失了大量空间细节信息。如何在骨干网络的不同阶段利用其计算成本进行最佳的车道网络设计?在骨干网络内部,本文的方法设计了灵活的搜索空间,以找到最佳的基本通道大小,何时进行下采样以及何时增加通道数,如下所示:

具体地,通过几个堆叠的ResNet块构建主干网络,其中ResNet块包括了基本残差块和瓶颈残差块。骨干网络可以选择3阶段或4阶段,并允许不同的基本通道大小为48、64、80、96、128,并且每个阶段对应于不同的块数,总块数从10到45不等。为了进一步允许灵活分配计算,还搜索在哪里增加通道数。在原始的ResNet18 / 50中,将通道大小块加倍的位置固定在每个阶段的开始。例如,如图3所示,主干架构编码字符串看起来像“ BB\_64\_13\_[5,9]\_[7,12]”,其中第一个占位符编码块设置,64是基本通道大小,13是块总数, [5,9]是下采样块的位置,[7,12]是通道大小加倍的位置。在搜索过程中,无需使用预先训练的ImageNet模型,即可从头开始以大批量对模型进行良好的训练。

3、Feature Fusion Search Module

如DetNAS中提到的,骨干网络后期的神经元对整个物体有强烈的反应,而其他神经元更容易被局部纹理和图案激活。在车道检测方面,后期阶段的特征可以捕捉到长距离的相干车道信息,而早期阶段的特征则通过其局部图案包含更准确的短距离曲线信息。为了融合多级特征间的不同信息,提出了特征融合搜索模块,以更好融合特征。同时,还允许在不同的特征图上进行预测,因为详细的车道形状通常是由一个大的特征图捕获的。

令F1,...,t表示骨干网络中不同阶段的输出特征图(根据骨干网络的选择,t可以为3或4)。从F1到Ft,空间大小逐渐用stride = 2进行下采样。而特征融合搜索模块由融合层{Oi}组成,对于每个融合层Oi,选择两个输出特征层,并将{F1,...,F4}作为输入特征,同时选择一个目标输出分辨率。这两个输入特征首先通过一个1x1卷积层成为一个输出通道c,然后这两个特征将进行上采样/下采样至目标输出分辨率,并串联在一起。另外的Oi的输出将经过另一个1x1卷积,其输出通道可以连接到最终输出。因此,网络中的搜索空间足够灵活,可以融合不同的特征并选择输出特征层以送入Head。对于特征图的每个层级,还可以决定是否应添加预测head(至少一个)。由此,特征融合搜索模块的总搜索空间相对较小(大约103种可能的选择)。

4、 Adaptive Point Blending Search Module

受PointLaneNet 的启发,每个head在其特征图上建议许多锚点,并预测其对应的偏移量以生成候选线,并且最终可以在图像中通过线点和一个终点确定一条车道线。具体,首先将每个特征图划分成大小相同的网格,如果网格的中心靠近真实车道,则改网格负责检测该车道。由于一条车道将跨越多个网格,因此可以将多个网格分配给该车道,其置信度得分sij反映网格包含车道一部分的概率对于每个网格,模型将预测一组偏移量和一个终点位置,其中偏移量是真实车道与预定义的垂直锚点之间的水平距离,如图4所示。有了预测的偏移量和终点位置,每个网格可以预测一个潜在的车道线,最后需要进行后处理以汇总和过滤所有候选车道线并生成最终结果。

图片.png

在PointLaneNet中,在一个特征图上采用Line-NMS来过滤出较低的置信度,并根据其置信度得分采用非最大抑制(NMS)算法来过滤出遮挡的车道。然而,它不能适应多层次情况。首先,不同层次特征的预测不能被同等对待。例如,在低级特征图上的预测在短距离内比较准确,而在高级特征图上的预测在长距离内比较一致,但会损失很多细节。此外,每个网格只能精确地预测其中心周围的偏移量,而离锚点较远的偏移量则不准确。使用普通的Line-NMS对曲线或车道偏僻部分的捕捉不够敏感。

由此,本文提出了一种自适应点混合搜索模块,以将后处理步骤统一到NAS框架中以进行lane-sensitive检测,如图4(右)所示。为了在多层次预测中允许使用不同的强调区域,对每个特征图f都使用了自适应score masking,并对原始分数进行了预测。cx、cy表示每个栅格区域某个特征映射的中心位置,则score masking表示为:

图片.png

上式中一项与每个预测的垂直位置线性相关,而另一项与与[uxf,uyf]的距离相关。之所以使用上述mask,是因为低层特征在车道的较远部分(图像中心附近)可能会表现更好,并且这种表达方式允许跨特征图进行灵活的mask获取。

同时,每个置信度较高的网格都具有靠近网格中心的车道的精确局部信息,并过滤掉其他所有被遮挡的车道,然而只使用Line-NMS中置信度最高的车道,因为得分较低可能无法捕捉到远端部分的曲率。因此,进一步使用点混合技术进行车道敏感的预测。在对每个特征图上的原始置信度得分进行修改后,首先通过一个合适的阈值过滤掉那些低分的车道,并应用NMS将剩余的车道根据其相互距离分成若干组。在每组车道中,将得分较低的锚点中好的局部点与得分最高的锚点中的远程点进行迭代交换。对于每个高置信度锚点,再将其部分点替换为好的局部点,成为最终的预测结果。曲线形状的弯道的远距离部分可以通过局部点进行修正,通过在每组限线内增加一个循环,计算开销非常小。

实验与结果

数据集: New CurveLanes Benchmark,TuSimple, CULane,BDD 

图片.png

CurveLanes数据集实验:

图片.png
图片.png

对比实验

图片.png

消融实验

图片.png

更多细节可参考论文原文。

推荐阅读


更多机器学习、深度学习、计算机视觉、自动驾驶、机器人等领域最新最前沿的科技请关注微信号AI算法修炼营。
WX20200303-134844.png
推荐阅读
关注数
18838
内容数
1371
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息