APP下载

一种采用空间特征编码的车道线检测方法

2020-09-02赵振东邵振洲谢劼欣施智平

小型微型计算机系统 2020年9期
关键词:空间信息车道编码

赵振东,邵振洲,谢劼欣,施智平,关 永

1(首都师范大学 信息工程学院,北京 100048)2(首都师范大学 轻型工业机器人与安全验证北京市重点实验室,北京 100048)3(成像技术北京市高精尖创新中心,北京 100048)

E-mail:zshao@cnu.edu.cn

1 引 言

作为自动驾驶环境感知的关键任务之一,车道线检测引起了越来越多专家和学者的关注,已成为科研院所和相关企业的研究热点.目前,基于摄像头的车道检测是环境感知的重要方法之一,它在确保车辆在车道内正确行驶的同时,对后续的车道变换或轨迹规划也至关重要,主要应用于车辆车道偏离预警、导航等.因此,基于视觉的车道检测是实现完全自动驾驶的关键驱动因素.

近年来,深度学习在计算机视觉领域取得突破性发展,越来越多的基于深度学习的车道线检测方法被提出.Huval等人[1]基于OverFeat框架[2]设计了一个端到端的目标检测网络DriveNet,用于处理高速公路这类简单场景下的车道线检测,但当车道线数量变化时,网络检测性能不佳.Neven等人[3]将LaneNet与H-Net两个网络配合使用,来处理道路场景中车道线数量不固定的情况,但难以识别车道线被遮挡的情况.Pan等人[6]对CNN网络的最高隐藏层特征设计了SCNN架构,通过对特征图按特定方向进行更新,赋予模型提取目标空间信息的能力,以应对车道线被遮挡的情况.但是,这一方法[6]需要搭配专门的小型网络来接收模型输出的概率图并给出最终结果,网络结构复杂且难以训练.Lee等人[4]在文献[2]和文献[5]的基础上提出了端到端的多任务网络模型VPGNet,通过在模型中加入消失点预测子任务,来提取场景的空间上下文信息,用以同时处理复杂场景下的车道线检测和类型识别.但随着子任务的增加,网络训练的难度也增大,此外还需要对数据进行额外的消失点标注.尽管以上方法尝试去提取和利用车道线的空间信息,但是当场景中存在多条车道线时,处于场景两侧位置的车道线因易受光照变化等影响变得模糊,使得网络难以识别甚至出现误检测,如图1所示.

图1 真实标签与现有方法车道线检测对比Fig.1 Comparison between ground truth and network output of the state-of-the-art method

为解决上述问题,本文提出一个端到端的空间特征编码多任务神经网络LDNet-SFE(Lane Detection Network with Spatial Feature Encoding),如图2所示,它由目标检测和边框回归两个子网络协同处理车道线的检测任务.这既利用了多任务网络的优势,又不增加训练难度和额外工作.为处理两侧车道线模糊导致检测准确性差的问题,本文设计了空间特征编码模块,通过对三维特征张量进行横向切分,借鉴传统的卷积网络中卷积层到卷积层的连接形式,将切分后的每一片视为新的卷积层,并进行纵向连接,以此来提取丰富的空间信息,使网络更好地捕获车道线的空间连续性的特征,增强网络对像素空间信息的利用,提高场景两侧车道线的检测精度.我们对多任务网络的特征提取器进行改进,通过设计更小的卷积核尺寸,更短的步长,使其学习并保留更多的浅层特征.由于浅层的卷积层能学习到物理轮廓、边缘和纹理等特征,对多任务网络而言,更好地浅层特征能为子网络带来更丰富的空间信息,提高模型的检测性能.

图2 网络整体结构Fig.2 Overall network structure

2 相关工作

传统的车道检测方法依靠专业化的手动设计的特征来检测目标的形状,然后拟合车道线[7-13].这些手动设计的方法[14,15,17,19]可以与霍夫变换[20,22]或者卡尔曼滤波器[24,25]相结合,当识别出车道线之后,利用后处理技术过滤掉误检和成组分割在一起的情况以得到最终车道线.Naftel等人[18]通过分析由目标追踪系统获得的车辆运动轨迹,来检测车道线并进行分类.Wu等人[16,21]设计自适应方法,用以识别不同宽度的车道,以及加速车道线检测.Tao等人[23]通过提取多个感兴趣区域作为MSER[26],再由HOG[27]特征为道路标记建模.虽然这些传统方法在简单场景下表现良好,但是它们很容易由于道路场景变化而导致鲁棒性下降.

随着深度学习在计算机视觉领域得到越来越多的应用[36],研究人员尝试用深度网络取代传统的手工标记,通过构建特征检测器进行车道线的预测.Gopalan等人[28]使用像素级特征描述符来建模,并且使用增强算法来选择用于检测车道标记的相关特征.Kim和Lee[29]将卷积神经网络(CNN)与RANSAC算法结合起来以检测车道线.其中CNN主要用于图像增强,并且仅当在道路场景复杂时才会使用.He等人[30]提出了DVCNN框架,将前视图和俯视图作为网络输入,来提高车道线的检测和识别能力.Huval等人[1]对OverFeat框架[2]进行改进,设计了边框回归和目标掩码与滑动窗口进行结合的检测模块,来解决多目标检测时的歧义性问题,模型最终用于高速公路驾驶,以执行端到端的车道线检测.考虑到车道线的外形细长,单条车道线在空间上具有连续性这一特点.Li等人[31]使用多任务卷积神经网络,用来寻找车道线的几何属性,然后再通过循环神经网络(RNN)来检测车道线.Pan等人[6]提出空间CNN网络模型,通过对网络的最高隐藏层进行特定方向的特征更新,使网络来处理车道线被遮挡时的检测.此外,传统的像素级标注的车道线数据比较窄,在网络的特征提取阶段,经过卷积和池化操作后易造成特征信息损失甚至消失.为了增加车道线的特征,Lee等人对像素级标注的车道线数据进行了网格化处理.随后,Lee在TSDC[5]多任务模型的基础上设计了VPGNet[4],通过添加消失点预测(VPP)[32]子任务来提供全局几何上下文信息,使得多任务网络能够在具有挑战的环境下同时检测车道线和识别其类型.上述的车道线检测模型有的需要添加额外的子任务,有的则需要搭配专门的小型网络来提取车道线的空间特征并对车道线进行检测,这样的网络结构复杂且难以训练.此外,需要注意的是,在面对位于道路场景两侧位置的车道线时,由于这类车道线之间的距离更近,且更易受光照变化等影响变得模糊,使得现有的网络难以准确检测甚至出现误检测,这对自动驾驶的安全造成重大隐患.

3 LDNet-SFE

LDNet-SFE由主干网络和两个分支网络构成,如图2所示.主干网络通过前向传播来提取共享特征.两个分支网络为边框回归网络和目标检测网络,分别用于处理车道线定位和检测任务.LDNet-SFE采用OverFeat框架,这使得我们的网络在处理定位、检测任务联合训练学习时是经济且有效的[2].同时LDNet-SFE为全卷积结构[33],这有助于网络提取特征的空间信息.在此结构上,我们对边框回归的最高隐藏层进行空间特征编码,以此来探索图像在竖直方向上的空间特征,使网络更适用于检测车道线这类有着较强空间信息的目标,从而提升网络对道路两侧位置处的车道线的检测性能.

3.1 多任务网络结构

多任务学习是对特征提取器捕获的特征进行共享,检测器的性能很大程度上依赖于特征提取器的性能[34],即更好的主干网络可以带来更好的检测性能.LDNet-SFE的主干网络的首层卷积层的步长为2,并采用7×7的卷积核尺寸,通过设计更小的步长和卷积核尺寸来学习更多的浅层特征[35];第二层卷积层的步长为2,使模型满足网络输出所需要的大小;为了进一步精简网络,我们的主干网络没有局部响应归一化操作.不含空间特征编码的多任务网络的参数如表1所示.

表1 不含空间特征编码的多任务网络的结构Table 1 Structure of multi-task network without spatial feature encoding

本文采用网格级标注对原始标注的数据进行预处理,将车道线的点标注转换成网格标注.其原理为,将车道线用一系列的8×8的网格覆盖,当网格中的任意一个像素位于某类车道线的标注框内时,则整个网格都会被标记为该类.这样的标注方法增加车道线的特征信息的同时,也将车道线与其他物体检测统一,为以后网络的扩展提供可能.本文的网络输入为640×480,网络输出为160×120,缩放系数为1/4.

图3 网格级掩码Fig.3 Grid-level mask

边框回归任务指在使单个框匹配特定的对象,但车道线这种细长的目标不能用单个框表示.受VPGNet启发,我们使用了一种利用网格级掩码的替代回归方法[4],如图3所示,通过使用高效“滑动窗口”检测器与掩码检测器结合,生成对象掩码并执行边界框回归,网格上的点回归到最近的网格单元,将相邻的网格回归成一个目标.

目标检测任务是利用4×4的“滑动窗口”滑过整张图片,窗口内部看作一个物体的中心区域.该模块定义了网络分辨的最小区域.回归时不用逐点回归,而是对4×4大小的网格进行回归.其输出的每个结果表示输入图像中的某个4×4像素区域包含车道线的概率.

3.2 网络损失函数

训练时总的损失函数由两个子任务各自的损失函数加权组成,其表示为式(1):

Loss=W1Lreg+W2Lob

(1)

其中,Lreg表示边框回归网络的L1损失,Lob表示目标检测网络的交叉熵损失.我们通过修改W1和W2的数值,来平衡两个子任务的训练.开始时将W1和W2分别取值为3和1,在训练过程中,当子任务对应的损失值相差较大时,暂停训练,手动取各自损失值的倒数作为其新的权值,然后继续训练,直至网络收敛.

4 空间特征编码

车道线的外形细长,单条车道线在空间上有一定的连续性.不同区域的道路场景差异性大,当场景中存在多条车道线时,现有的网络模型难以应对位于道路两侧的车道线检测.如何去对多任务网络的空间关系进行建模,以赋予模型充分探索空间连续性的特征,增强网络对图像上像素在空间信息的利用,这对于网络模型能否更好地检测边缘位置的车道线至关重要.

LDNet-SFE网络的车道线检测任务由边框回归和目标检测协同完成,其中边框回归对车道线的位置检测最为重要;同时,由于最高隐藏层含有丰富的语义特征信息,我们仅对边框回归的最高隐藏层进行空间特征编码,将特征图的每一行视作新的卷积层,使用卷积加非线性激活,把逐层卷积操作的原理应用到逐行卷积中,从而实现在同一行中的像素信息能在行之间按特定方向进行消息传递.

具体操作如图4所示,以尺寸C×H×W的三维张量为例,其中C、H和W分别表示信道、行数和列数.将其按行数H进行横向切分,得到H个片.然后将第一个片发送到尺寸为C×w的卷积核中进行卷积操作,这里w是卷积核宽度.经过卷积和ReLU操作之后,将输出的结果和第二个片的对应元素进行求和操作,来更新第二个片.此时第二个片已经获得来自第一个片的特征信息.然后将更新后的第二个片发送到下一个卷积核,重复上述过程,直到最后一个片被更新,从上向下方向的空间信息传递全部结束.

第H个片包含之前H-1个片的从上往下逐层传递的空间信息,将其作为初始位置,进行从下向上方向的更新,重复之前的连接和更新过程,直到第一个片被更新.

最后,将更新后的H个片输入到concat层,在维度为高度的方向进行拼接,得到更新后三维张量.经过上述操作,任意第N个片,包含前N-1个片从上向下传递来的信息,同时,也含有H-N个片从下向上传递来的信息.假设指定的一个三维张量K,信息传递可由式(2)计算:

(2)

其中Ki,j,k记为最后一片中通道i的元素和当前的片中通道j的元素之间的权重,这两个元素之间偏移为k列.同样的将Xi,j,k记录为张量X的元素,其中i,j,k分别指代通道、行、列.f是非线性激活函数ReLU.X′表示更新后的值,所有的片共享一组卷积核.

图4 空间特征编码Fig.4 Spatial feature encoding

5 实验结果与讨论

本部分主要验证本文提出的LDNet-SFE的车道线检测的性能.首先,我们分析新主干网络和空间特征编码对模型性能的影响,通过对比传统方法、DriveNet、VPG和仅更新主干网络的模型,来验证更好地学习和保留浅层特征对检测性能带来的提升;通过对比LDNet-SFE与其他不含空间特征编码的模型,来验证空间特征编码对空间特征的捕获以及对检测性能的提升.然后,我们设置不同核宽度的空间特征编码,来分析其对空间信息的利用.

实验使用加州理工学院车道线公开数据集,其包括在一天中的不同时间在加利福尼亚州帕萨迪纳附近的街道上拍摄的四个剪辑.我们选用其中的Cordova1和Washington1两个子数据集[1,4].网络采用随机梯度下降法的训练策略,初始学习速率为0.01,动量项为0.9,网络的输入大小为640×480,训练时采用批处理的大小为24,采用的最大迭代次数为5万次.网络的运行环境和相关的训练参数如表2所示.

表2 网络运行环境和参数Table 2 Network operating environment and parameters

本文研究的车道线检测算法属于检测和定位任务的结合,F1分数作为准确率和召回率的调和平均数,可以用来评价模型的综合性能.本文采用的网格级车道线标注,其标注的形式为(xmin,ymin,xmax,ymax,class),考虑到车道线初始由点标注,因此采用基于距离判定的方式计算检测结果.任意预测点(x,y),只要与标签点组成的网格中心坐标距离在一定范围之内即判定检测结果正确,TP加 1.

(3)

上式中,中心点坐标为起始点加上边长的一半,由于正方形网格边长为8,故取4.N值等于车道线的平均宽度的一半,根据实验经验,本文设置为20.为了使评价指标更加一般化,本文分别计算测试集上每一张图片的各个指标,最后求出平均值.

5.1 主干网络和空间特征编码对模型性能的影响

本文对主干网络的前两层卷积层进行修改,更新后的多任务模型取名为LDNet-No-SFE.分别在Cordova1和Washington1数据集下进行对比实验,结果如表3所示.

表中的LDNet-SFE为在LDNet-No-SFE基础上对边框回归进行空间特征编码后的网络模型.通过表3可知,基于深度学习的车道线检测算法性能远高于基于传统方法的车道线检测算法,其F1分数比传统方法高10%左右.在基于深度学习的方法之中,与DriveNet和VPG-2task进行对比,我们的LDNet-No-SFE的F1分数提高了0.8%.对比VPG-3task,我们的网络在不添加额外子任务的前提下,F1分数依然提高了0.5%.这表明首层卷积层提取到的浅层特征能有效提高网络的性能,更小的卷积核与步长可以使特征提取器学习并保留更多的浅层特征,从而提高检测任务的性能.

表3 在Cordova1数据集下各个模型的F1分数Table 3 F1 scores of each model in Cordova1

对比LDNet-SFE和LDNet-No-SFE,前者的F1分数比后者提高了0.3%.这表明通过对边框回归的最高隐藏层处进行空间特征编码,能使模型学习到更多在竖直方向的空间连续性特征,这对于网络检测车道线的位置,提高整体检测性能尤为重要.

表4 在Washington1数据集下各个模型的F1分数Table 4 F1 scores of each model in Washington1

表4为在Washington1数据集下进行实验的F1分数对比,表中LDNet-No-SFE比VPG-3task性能提升了0.8%,略低于VPG-2task,值得注意的是VPG-3task比VPG-2task性能下降了1.3%,这表明对多任务网络来说,更多的子任务不一定带来性能的提升,在面对复杂场景时模型的鲁棒性较差.值得注意的是,本文提出的LDNet-SFE的在Washington1和Cordova1数据集下均表现良好,取得最佳F1分数.

5.2 卷积核宽度对模型性能影响

卷积核宽度表示像素可以接收其他像素的信息数量,卷积核宽度的大小影响着空间信息的提取.为了进一步测试空间特征编码对模型性能的影响,本文在LDNet-SFE模型的基础上,选取核宽度为1、3、5、7、9的模型,分别在Cordova1和Washington1数据集下进行实验.

图5 网络输出对比Fig.5 Comparison with the network output

表5中LDNet-SFE-S1表示空间特征编码的卷积核宽度为1,以此类推.由表5可知,在Cordova1数据集下,当卷积核宽度为3时,模型的F1分数最高,达到了0.878.随着卷积核宽度的增加,模型的检测性能出现了稍许下降,对比最优的LDNet-SFE-S3模型,性能下降0.1%到0.2%之间.这是由于Cordova1数据集中道路环境相对简单,核宽度较小的空间特征编码能有效提升空间信息利用.

表5 在Cordova1数据集下,不同核宽度的F1分数Table 5 F1 scores of different kernel width in Cordova1

表6 在Washington1数据集下,不同核宽度的F1分数Table 6 F1 scores of different kernel width in Washington1

由表6可知,在Washington1数据集下,当卷积核宽度为7时,模型的F1分数最高,达到了0.867.而当卷积核宽度为3时,模型的F1分数为0.863,对比最优的LDNet-SFE-S7模型,性能下降了0.4%.这是由于Washington1数据集中复杂场景的路况较多,需要像素接收来自远端的像素的信息,提取和利用更多的空间特征,已达到模型性能的提升.

以上两组实验表明,不同的卷积核宽度在面对不同的数据集时,会对网络的检测性能造成一定的影响.值得注意的是,LDNet-SFE-S5模型在Washington1数据集下的F1分数为0.866,仅比最优的LDNet-SFE-S7模型低0.1%.同样,在Cordova1数据集下,LDNet-SFE-S5模型比性能最优的LDNet-SFE-S3模型低0.1%,其F1分数为0.877.基于上述实验结果,最终本文决定采用LDNet-SFE-S5模型作为我们网络的最终模型LDNet-SFE.

5.3 时间复杂度对比

网络推理时间是衡量网络模型性能的重要指标之一,我们在NVIDIATeslaK40C显卡下测试不同模型的推理时间,我们分别计算测试集上每一张图片的推理时间,最后求出平均值,对比结果如表7所示.

表7 不同模型的推理时间对比Table 7 Comparison of inference time of different models

由表7可知,LDNet-SFE的网络推理时间达到了45.6毫秒,比LDNet-No-SFE网络推理时间增加了4.1毫秒,但是对比DriveNet和VPG-3task,LDNet-SFE的网络推理时间分别缩短了1.6毫秒和4.5毫秒.与现有方法的对比表明,我们的LDNet-SFE能在提高检测性能的同时,使网络推理时间进一步缩短.

5.4 检测结果的可视化对比

图5为VPG-2Task、LDNet-No-SFE、LDNet-SFE三个网络模型的网络输出同真实标签的对比,对比第一行图片,LDNet-SFE在面对位于道路两侧位置的车道线时,可以提取到更丰富的车道线特征.对比第二行图片,当道路两侧位置的两条车道线距离较近时,我们的LDNet-SFE在保留更多车道特征的同时,可有效避免车道线之间的误检测.对比第三到第五行的图片可知,处于道路边缘位置的车道线更易受光照变化等影响,VPG-2Task和LDNet-No-SFE在应对这样的道路环境时,容易将两侧的道路误检为车道线,而我们的LDNet-SFE可以有效进行区分.

6 结 论

本文针对道路两侧位置的车道线易受光照变化等影响而变得模糊,导致其难以被检测的问题,提出了一个端到端的基于空间特征编码的多任务网络LDNet-SFE,我们对边框回归任务设计了空间特征编码,对深层特征图进行特定方向的切分与更新,赋予网络更好的学习空间信息的能力.此外,通过为模型设计新的特征提取器,使其能学习并保留更多浅层特征.在Cordova1和Washington1数据集上实验表明,LDNet-SFE可以学习到车道线的空间信息并完成对其位置的检测,值得注意的是,在面对处于道路两侧位置的车道线时,LDNet-SFE可以有效检测车道线的同时,避免误检测.

猜你喜欢

空间信息车道编码
结合多层特征及空间信息蒸馏的医学影像分割
基于OpenCV的直道车道线识别技术研究
北斗+手机实现车道级导航应用
生活中的编码
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
基于单片机的潮汐车道设计与实现
Genome and healthcare
斑马线前该如何礼让
共建空间信息走廊 助力“一带一路”