一种采用区域知识蒸馏网络的车道线检测算法

2022-11-18 03:43刘子龙
小型微型计算机系统 2022年11期
关键词:弱光车道特征

叶 飞,刘子龙

(上海理工大学 光电信息与计算机工程学院,上海 200082)

1 引 言

近几年随着深度神经网络不断发展,深度神经网络在车道线检测中得到了广泛的应用[1,2].然而,当车道线破损,弱光条件以及车辆造成的遮挡,都会让检测任务具有挑战性.尤其是当光线条件差的时候,车道线将变得十分模糊,这会使得难以提取出车道线的特征信息,无法精确的识别车道线.另外,可用于训练车道线标签通常是稀疏的(例如,大背景下非常细且长的车道线),因此影响了网络学习道路的场景结构的能力.目前,弱光条件下检测的方法有两种:1),多任务学习;2)上下文语义信息.比如VPGNet[3]在多任务学习中加入了道路标记检测和消失点预测,可以在车道线检测中更好地表现.但是,这种方法需要额外的人工标注信息,这无疑是增加更大的工作量.另一种上下文语义信息方法,比如SCNN[4],它取代了层与层之间的连接,使像素在行与列之间传递信息.这种方法能够帮助检测网络更好的在弱光条件下理解交通场景,但是这种方式大大的增加推理计算.

在深度学习邻域,数据选择是否恰当以及模型大小是否合适最终会决定检测的效果.由于数据集大部分只是光线良好的条件下,这使得检测网络在诸如夜晚和阴影弱光条件下表现不佳.又因为考虑到计算资源有限的车载设备,常常选用较小的模型进行部署,当需要训练一个小模型时,上述的挑战变得尤其严重.为了解决以上两个问题,数据增强和知识蒸馏(Knowledge distillation,KD)[5]成为了一种不错的解决方式.通过将含有不足弱光数据的数据集进行数据增强,增加弱光数据集,然后再使用知识蒸馏的方法训练车道线检测模型.目前,已经提出许多数据增强和知识蒸馏的方法.例如,通过生成对抗网络(Generative Adversarial Network,简称GAN[6])扩充数据集;通过柔和类别分数传递知识[5],特征图匹配的方法[7,8]或者通过空间注意力匹配的方法[9].

本文的主要工作如下

1)提出一种基于改进循环一致性的生成对抗网络的方法,利用该网络对数据集进行数据增强,增加数据集弱光条件的数据.

2)提出一种关注区域内特点的知识蒸馏方法将老师网络的训练得到场景结构知识传递给学生网络,来增强学生网络模型的结构认知能力.

3)最后进行不同优化算法的对比实验,通过实验验证得出基于本文方法得到检测模型对于不同场景下鲁棒性强,精度更高.

2 相关工作

大多数传统的车道线检测方法都是基于手工特征.主要分为两类:基于模型和基于特征.基于模型的方法[4]主要是通过匹配车道线的特征点和车道线的几何模型来提取车道线.基于特征的方法[10]主要是通过车道线边缘的梯度、方向和灰度信息特征来检测车道线.采用这种方法有许多缺点,例如,需要复杂的特征选择过程,并且仅在简单的公路场景中工作良好.

目前,由于卷积神经网络(Convolution neural network,简称CNN)[11,12]可以提取不同深度层次的特征,它也被广泛应用于不同的车道线检测任务.例如,王等人[13]利用深度神经网络将输入图像映射到语义分割图.由于大型模型通常需要巨大的内存存储,并且推理速度较慢,因此许多轻量级模型,例如ERFNet[14],被用来满足快速推理和小存储的要求,Van Gansbeke等人[15]提出了一种端到端的车道检测器,它由两部分组成:一个深度网络,为每个车道预测一个类似分割的权重图,以及一个可微分的最小二乘拟合模块,用于返回拟合参数.然而,由于模型尺寸受限,这些网络没有足够的能力提取足够的上下文信息.已经提出了几种方法来缓解稀疏性问题,例如,SCNN[3]通过深层要素图层之间的信息传递解决了这个问题.张等人[16]提出了一种同时执行车道区域分割和车道边界检测框架.还有一些学者,引入知识蒸馏的方法,目的是将老师网路提取出的特征知识转移给小型的学生模型,提取特征知识有不同的形式,例如,软化逻辑输出[17],中间特征映射[18,19]或相邻层之间的成对相似性映射[20].另一种工作[21,22]使用自我知识蒸馏来加强网络本身的表征学习,而不需要大型教师模型的监督,侯等人[22]通过自我知识蒸馏来加强上下文知识的学习,即使用深层注意图来指导较浅层的学习.最新的研究方法是将知识蒸馏从一个样本扩展到几个样本[23,24].例如,帕克等人[23]在蒸馏过程中传递一批数据样本之间的相互关系.Tung等人[24]将不同样本特征的相似性得分作为蒸馏目标.上述方法没有考虑一个样本中不同区域之间的结构关系.

另一个方面上述方法中并没有考虑原始数据集弱光数据的比例,例如CULane数据集中白天与晚上的数据比例大概是17:1,通过训练得到的检测器在弱光情况下检测能力将十分受限.一些研究人员采用生成对抗网络GAN来对图像数据集进行数据增强以提高检测器检测工作,小龙等人[25]认为物体遮挡或变形占很小的比例,因此对抗空间丢失网络(Adversarial Spatial Dropout Network,简称ASDN)和对抗空间变形网络(Adversarial Spatial Transformer Network,简称ASTN)被设计用于分别学习如何遮挡和旋转物体.刘等人[26]开发了一个模型,该模型联合优化了GAN和探测器,并对发生器进行了检测损失训练,能够产生探测器难以探测到的物体,提高了探测器的鲁棒性.以上方法只使用GAN的解决物体遮挡和小物体检测问题,并没有解决弱光问题.本文的方法将改进后的生成对抗网络GAN应用到数据增强中,并且引入一种考虑不同区域之间结构关系的知识蒸馏方法,以此提高弱光条件下检测器检测的精度和速度.

3 车道线检测算法

车道线检测主要任务是语义分割任务.具体过程是,输入图片X∈h×w×3,并且已知图片中车道线以及其他物体的标签信息l∈{0,…,n-1},其中,h是图片高度,w是宽度,n代表物体类别种类,然后通过一种映射X→O,得到语义分割图O,目前主流的方法通过CNN等网络来得到这种映射.

本文的方法首先利用改进后的循环一致性生成对抗网络对CULane数据集做数据扩充,增加数据集中弱光条件的数据,然后提出一种关注区域特征的蒸馏方法对模型进行训练,最终得到高效的车道线检测模型.

3.1 改进循环一致性生成对抗网络

通过改进循环一致性生成对抗网络(Improved-CycleGAN)进行数据增强.本文使用的改进后的循环一致性生成对抗网络结构如图1所示,它由两个生成器(GA和GB)和两个鉴别器(DA和DB)组成.生成器GA将图像从合适的光照条件转换到弱光照条件,而生成器GB以相反的方式转换图像.鉴别器将单个标量(真或假)反馈给生成器.然后经过训练后的网络将良好光照条件转换到弱光条件风格,通过该方法得到图片不需要重新进行标注,可直接使用原始图片的标注信息.

图1 改进循环一致性生成对抗网络

循环一致性生成对抗网络生成器结构的设计思想来源于U-net网络,整体结构通过经过编码(下采样),然后解码(上采样),包含了两个步长为2的卷积、几个普通卷积模块和步长为1的卷积.但是它不是一个完全对称的结构,对应层尺寸不一致这会导致输出与数据集内真实的图像分辨率不匹配,非比例的变换导致图像很容易失真.为了使得输入输出的分辨率匹配,本文引入Overlap-tile的策略,其主要步骤在图片输入到网络前对图像进行边缘填充,使得最终的输出尺寸与原图一致.生成器主要网络结构如图2所示.

图2 生成器结构

本文将白天光照条件的数据定义为域X,弱光条件的数据定义为Y,通过改进循环一致性对抗网络(Improved-CycleGAN)将域X的数据变换为域Y的数据,也可以将域Y变换为域X.在训练过程中,生成器根据鉴别器的反馈生成更加逼真的图像,达到欺骗鉴别器的目的.因此,本文加入对抗损失来描述这一过程,将从域X到域Y的对抗损失定义为:

LossGAN(GA,DB,X,Y)=Ey~Pdata(y)[logDB(y)]+

Ex~Pdata(x)[log(1-DB(GA(x)))]

(1)

其中,图像GA(x)通过最小化GA从域Y生成,最大化DB来区别生成的图像GA(x)和真实的样本Y,即minGAmaxDBLGAN(GA,DB,X,Y).同理,易知从域Y到域X的对抗损失函数与公式(1)相似将其定义为:minGBmaxDALGAN(GB,DA,Y,X).

通过GA从域X转换到GA(x),再通过GB将GA(x)转换到GB(GA(x))和GB从域Y转换到GB(y),再通过GA将GB(y)转换到GA(GB(y)),进行周期一致性适配,从而生成更加逼真的图像.将周期一致性损失来描述这一过程:

Losscyc(GA,GB)=EX~Pdata(x)[‖GB(GA(x)-x)‖]+

Ey~Pdata(y)[‖GA(GB(y))-y‖]

(2)

最终,损失函数为:

Losstotal=LossGAN(GA,DB,X,Y)+

LossGAN(GB,DA,Y,X)+λLosscyc(GA,GB)

(3)

其中,λ用来控制两个目标之间的相对重要性.

3.2 区域间亲和蒸馏网络

知识蒸馏是一种通过从大模型中提取知识来提高小模型性能的常用方法.知识蒸馏有两个网络,一个叫教师网络,一个叫学生网络.其目的是将数据中深层的特征知识从大且复杂的教师模式转移到小且紧凑的学生模式.一般的知识蒸方法,是将教师网络输出的概率分数与学生网络输出进行软化,再利用交叉熵损失函数进行训练,让学生网络泛化学习教师网络,最终目的使学生网络有教师网络的检测能力.

但是直接用软化目标分数诱导学生网络训练,一是不利于检测模型对场景的理解,尤其是街景这类变化较多的场景,二是会造成学生网络模型过拟合.为了加强区域间结构特征的理解能力,不仅将教师网络最后的输出的软化分数作为学习的知识,而且将每张图片中不同区域的结构特征视为一种新的知识,然后通过软化分数作为监督学习来引导学生网络对教师网络区域特征的学习,并将其命名为Region-KD.具体来说,本文认为每个输入样本有n个道路标记(包含背景),把每个类别都当作一个区域.在给定相同的输入,构建学生网络的区域亲和图G1和教师网络区域亲和图G2.其中将亲和图定义为:G(μ,C)其中μ可视作节点集合,代表区域间特征的分布统计.C视作各个区域节点间的连线集合,表示两个区域特征分布的相似性.总体的网络框架如图3所示.

本文将整个流程分成3个部分:1)提取代表图中每个节点的区域范围;2)采用矩运算量化计算每个区域的分布统计;3)构建区域亲和图,将教师网络的结构知识提取到学生网络.

第1步,从给定的图像中提取区域来表示每个类别的空间范围,这里将标签图像二值化处理,输出一个集合L∈h×w×n的特征图,其中n是类的个数.每一张图都是以“0”和“1”二进制构成,车道线用“1”表示,背景用“0”表示.使用形态学操作进行标签平滑,输出一个包含集合M∈h×w×n的区域范围.

第2步,假设从网络中得到的特征图表示为F∈hf×wf×c,其中hf,wf,c分别代表长,宽,通道数.将第一步中得到包含集合M的区域作为模板来提取特征图F中相同区域的特征.然后计算每个区域特征的亲和度.本文将亲和度定义为两个特征分布之间的相似性.受文献[27],文献[28]启发,本文使用矩运算来计算两个特征分布之间的相似度,分别计算特征分布的平均值矩向量μ1,方差矩向量μ2,以及偏斜度矩向量μ3.计算公式如下:

(4)

其中,k表示类别数量.

第3步,由于教师模型和学生模型提取特征图是不同维度的,在执行矩向量匹配的时候首先要进行维度一致性操作.最终,通过余弦损失函数来计算类别k1和类别k2矩向量之间的相似度:

(5)

其中r∈{1,2,3}.通过公式得到的相似性分数作为学生模型要学习的高级知识,矩向量和相似性分数构成亲和力图G(μ,C),如图所示.区域间亲和蒸馏损失函数如公式所示:

(6)

最后,整个网络的总的损失函数由两部分组成,语义分割损失函数,区域间亲和蒸馏损失函数,交叉熵损失函数.损失函数如下:

Loss=Lossseg(O,L)+αLossm(CS,CT)+

βLosssoft(QS,QT)

(7)

其中α,β用来平衡蒸馏损失对语义分割任务Lossseg(O,L)损失的影响.Losssoft作为目标软化分数损失函数监督学生网络学习区域特征知识的行为,具体公式如下:

(8)

从以上公式可以发现所引入的亲和提取只与类和数量相关,而与特征的具体维度无关.并且,区域知识来自于前景与背景的区域特征信息,包含更加丰富的道路信息.

4 实验及结果分析

4.1 实验数据集

CULane数据集广泛应用于车道线,其中包含许多不同的具有挑战性的驾驶场景,如拥挤、阴影、夜晚、炫光等.对于光照条件的风格转化,本文从数据集中选择了3000张光线条件良好的图片和3000张低光照条件下的图片.这些图片按照3:1的比例进行分割,分别作为改进循环一致性生成对抗网络的训练集合测试集.在完成了训练之后,本文在数据集中选择了13000张合适光照条件下的图片,通过该训练好的网络将这些图像转换成低光照条件下的图片.如图4所示,显示了其中一部分转换结果的例子.

图4 改进循环生成对抗网络生成的部分图片

4.2 评价标准

为了判断车道线是否被正确的检测到,本文将每个车道线视作一条30像素宽的线,并计算标签与预测之间的交并比(IoU).实验中,将阈值设置为0.5,大于阈值的预测被视作真阳性(TP).然后,本文用F1分数来作为评价标准,F1的定义为:

4.3 实验设置

通过分析CULane数据集,发现在输入图像上部分约1/3区域是天空,并没有道路标记,因此本文在接下去的训练与测试中将原始图像的上部分区域裁剪节省GPU内存,最终将原始图片分辨率调整为800×208.在训练中使用SGD的方法来训练本文的模型,学习率设置为0.01,批次大小设置为4,α设置为0.1.在实验中,使用ERFNet来作为学生模型,ResNet-101来作为教师模型.将本文的方法最终命名为Improved-CycleGAN+Region-KD.

4.4 实验对比分析

4.4.1 不同生成数量图片对模型精度的影响

本节中为了探究生成图片对于模型的性能影响程度,设计两个实验:

1)生成图片与真实图片的对比;

2)不同数量的图片对车道线检测能力对比实验.

实验1.使用原始CULane训练集的13000弱光条件下图片作为训练集,以及使用改进循环生成对抗网络生成的13000张弱光条件下的图片作为训练集.测试集使用CULane测试集,结果如图5所示,这表明使用生成的图片进行训练可以更快的收敛和拟合.因为真实弱光环境录制的视频有许多干扰与噪声,而通过生成的图片是风格迁移,并没有这些干扰,所以生成的图片更容易被模型理解.

图5 生成图片与原始图片实验对比

实验2.假设在弱光条件下生成的图像与真实图像数量的比例为N,本文取N=0.5,1,2,4作为对比,实验结果如表1所示,可以看出当生成更多的弱光条件下的图片时,N大于1之后,F1分数不再上升,甚至在某些场景表现不佳,在本次实验中,N=1是最佳比例,能使检测模型达到性能最佳.

表1 不同比例生成图像在不同场景的F1分数

4.4.2 数据增强前后模型性能对比

为了验证改进循环生成对抗网络扩充数据集方法的有效性,本节中设置了3组对照实验,其中其他条件不变,都采用ERFNet模型,并且通过以下3种数据集进行训练得到车道线模型:

1)原始的CULane数据集;

2)原始数据集并添加由循环生成对抗网络生成的13000弱光数据集;

3)原始数据集并添加由改进循环生成对抗网络生成的13000弱光数据集.

并且将训练后的模型命名为ERFNet,CycleGAN+ERFNet,Improved-CycleGAN+ERFNet.

对比实验的结果如表2所示.与没有数据增强的ERFNet网络相比,可以发现通过使用改进循环生成对抗网络进行数据增强方法在弱光条件下表现更好,如夜晚和阴影的场景中,其F1分数分别增加了2.2%和4.9%.这表明光照风格的转换来进行数据扩充有助于在弱光情况下的车道线检测性能.同时,本文可以看到该方法处理后,整体模型的综合性能也从73.1%提升至73.8%,提高了模型的泛化能力.

表2 数据增强前后各模型F1分数

4.4.3 不同算法检测性能对比

为了进一步验证区域亲和知识蒸馏方法的有效性,本文在通过改进循环生成对抗网络进行数据增强的基础上,分别选取了传统的SCNN方法,以及目前比较常用的蒸馏方法对比实验,实验结果分别由表3和图6所示.

图6 不同车道线算法可视化对比

表3 不同算法性能对比

由表2可以看出本文的方法相较于自我蒸馏的ERFNet-SAD和有着同样教师-学生蒸馏模型的ERFNet-KD都有一定程度提升,F1分数分别提升了0.4%和0.7%.另外,本文的方法由于参数量比ResNet-101少了近21倍,在推理速度上快了近16倍,但F1分数只是仅仅低了0.6%.

图6是车道线算法可视化对比,在图中选取了本文算法,ERFNet,以及ERFNet-KD这3个网络模型的输出同真实标签对比.对比第1行、第2行分别对应日常情况和拥堵,3种算法在都有不错的表现,精本文利用软化分数蒸馏和区域亲和知识蒸馏的方式,使得其可以得到更多的特征信息,具有更准确的预测能力.对比第3行,第4行分别对应生成弱光条件和原始弱光条件,另外两种算法检测性能不佳,出现预测不准确,或是误检的情况.

5 总 结

在弱光条件下,车道线检测是一项具有挑战的任务.本文通过改进循环一致性生成对抗网络对数据进行增强,并且为了提高模型对场景的检测能力,提出一种软化分数蒸馏和区域亲和的知识蒸馏方法,让轻量级模型ERFNet可以捕捉不同场景的特征分布相似性.通过在CULane数据集上的实验表明,本文的方法在弱光条件,模型检测精度,以及模型检测的速度上都有良好的表现.但是,由于本文并没有考虑道路车道指示标记在车道线检测中重要程度.未来将研究车道指示标志与车道线的联系,提高模型对于车道线检测的理解能力,更好来完成车道线检测任务.

猜你喜欢
弱光车道特征
离散型随机变量的分布列与数字特征
基于OpenCV的直道车道线识别技术研究
北斗+手机实现车道级导航应用
低温弱光对茄子幼苗抗逆性指标的影响
基于单片机的潮汐车道设计与实现
抓特征解方程组
不忠诚的四个特征
斑马线前该如何礼让
开花坐果期弱光对不同品种番茄生理特性的影响
弱光条件下亚适温对黄瓜幼苗生长及抗氧化酶活性的影响