基于DD-CycleGAN的道路检测模型研究*

2022-10-11 12:33王怀章蔡立志
传感器与微系统 2022年10期
关键词:损失道路函数

王怀章, 蔡立志, 张 娟

(1.上海工程技术大学 电子电气工程学院,上海201620; 2.上海计算机软件技术开发中心,上海 201112)

0 引 言

近年来,随着私家车的普及,交通事故频繁发生,因此驾驶安全问题变得尤为重要。随着计算机视觉技术的不断发展,自动驾驶技术引起广泛关注。对于自动驾驶而言,最重要的就是找到道路区域,因此道路检测技术显得尤为重要。为了稳定、准确地检测道路区域,人们开发出许多使用附加传感器进行道路检测的算法[1],例如使用全球定位系统(GPS)获取位置信息。但在现实生活中,人们可以通过眼睛获得复杂的交通信息并安全驾驶。因此,本文的重点是挖掘更深层次的视觉信息。

随着传感器和计算机硬件的迅速发展,高精度检测方法得以实现。Chen Z等人[2]在贝叶斯网络框架内,提出了可以同时检测道路和边界的深度神经网络。Yuan Y等人[3]设计了一种在线架构学习的方法,可以从视频序列中提取可行驶道路区域,该方法结合了密集尺度不变特征变换(scale-invariant feature transform,SIFT)、方向梯度直方图(histogram of oriented gradient,HOG)和局部二值模式(local binary pattern,LBP)的特征,并且显著增强了灰度变化和阴影的鲁棒性。Zhang W[4]使用高斯差分滤波器将激光雷达扫描区域分为道路区域和非道路区域。

深度学习近年来在许多领域都取得了较好的成绩,卷积神经网络(convolutional neural network,CNN)也引起了学者的广泛关注。Oliveira G L等人[5]提出了一种利用语义分割检测道路区域并解决道路场景分割的方法。Long J等人[6]提出全卷积网络(fully conwolutional network,FCN)后,许多研究人员开始使用具有相同的结构方法来进行道路检测。Caltagirone L等人[7]将激光雷达(LiDAR)点云转换为2D顶视图图像,并在分割道路时将2D顶视图图像作为FCN的输入。最近,Asvadi A等人[8]开发了一种将激光雷达和彩色相机数据集成到深度学习框架中的车辆检测系统。

此外,Bellone M等人在具有挑战性场景的3D云数据道路检测中使用了支持向量机(support vector machines,SVM)[9]。Zhou S等人[10]使用SVM来构建支持在线学习的道路检测算法,这意味着该方法可以更新训练数据并减少分类错误的可能性。另外,道路检测的任务不仅限于传统的道路场景,还涵盖了一些复杂而严峻的场景,例如湿滑的道路和恶劣的天气。

Goodfellow I等人提出的生成对抗网络(generative adversarial network,GAN)[11]引起极大关注,并迅速应用于各个领域。GAN的核心是一种生成对抗性损失,它使生成的图像尽可能与原始图像相似。人们在GAN的基础上提出了各种对抗网络。Zhao J等人[12]提出一种双判别器周期一致的GAN(double-discriminator cycle-GAN,DD-CycleGAN),将有雾图像转换为无雾图像。

本文使用DD-CycleGAN作为全文的基础框架网络,学习原始图像的道路区域与标注图像的道路区域之间的映射函数,实现对道路区域的检测。接着,将残差密集块[13]以及空间CNN[14]添加到生成器中,利用残差密集块和空间CNN进一步增强生成器的特征提取能力。最后,本文提出一种自适应的优化模型,对于转换后存在小孔洞的图片,使用膨胀与腐蚀算法自动检测并填充孔洞。

1 神经网络模型

本文使用的神经网络模型(如图1所示)建立在DD-CycleGAN框架之上,该模型可以提取道路特征并完成道路检测的任务。

1.1 总体架构

本文实验部分使用了2个生成器,每个生成器配备了2个具有相同结构的判别器。通过增加1个具有相同结构的判别器,模型可以更好地逼近最佳判别器,并减少原始CycleGAN对道路区域的误判。向生成器添加空间CNN和残差密集块增强生成器提取特征的能力。

如图1(a)所示,本文的网络模型具有两个映射功能:第一个是G映射,第二个是F映射。对于G映射,其映射过程可以表示为:G:X→Y,即G(x)=y。类似地,F映射的映射过程可以表示为:F:Y→X,即F(y)=x。判别器DX1和DX2的目的是找到X域中的图像x与映射的图像F(y)之间的差异。同样,判别器DY1和DY2的目的是找出Y域中的图像y与映射图像G(x)之间的差异。

图1(b)为网络的正向训练过程。生成器G生成图像y时,输入到生成器G中的图像是X域中的图像x。生成器F生成图像x时的输入图像是生成器G的输出图像。最终输出图像要与输入图像难以区分开,即x→G(x)→F(G(x))≈x。

如图1(c)所示的是网络的反向训练过程。生成器F生成图像x时,输入到生成器F中的图像是Y域中的图像y。生成器G生成图像y时的输入图像是生成器F的输出图像。最终输出图像要与输入图像难以区分开,即y→F(y)→G(F(y))≈y。

图1 整体网络模型

1.2 损失函数

Deepak P等人的研究[15]表明,提高网络性能的有效方法之一是向网络中添加损失函数。本文利用L1损失函数[16]测量循环一致性损失,循环一致性损失函数设置为

Lcyc(G,F)=Ex~pdta(x)[‖F(G(x))-x‖1]+

Ey~pdta(y)[‖G(F(y))-y‖1]

(1)

式中G和F为两个映射函数。这两个函数应满足循环一致性:对于X域中的图像x,在映射后仍可以映射回原始图像。类似地,对于Y域中的图像y,在映射后仍可以映射回原始图像。

对于生成器G及其两个判别器DY1和DY2,判别器DY1损失函数设置如下

LGAN(G,DY1,X,Y)=Ey~pdta(y)[logDY1(y)]+

Ex~pdta(x)[log(1-DY1(G(x)))]

(2)

映射函数G的目的是使生成的图像G(x)与Y域中对应的图像尽可能相似。同时,G期望最小化损失函数。类似地,判别器DY2的损失函数如下

LGAN(G,DY2,X,Y)=Ey~pdta(y)[logDY2(y)]+

Ex~pdta(x)[log(1-DY2(G(x)))]

(3)

生成器G的目标损失设置为

LGAN(G,DY1,DY2,X,Y)=λ1LGAN(G,DY1,X,Y)+

(1-λ1)LGAN(G,DY2,X,Y)

(4)

综上,最终目标损失函数设定如下

L(G,F,DX1,DX2,DY1,DY2)=LGAN(G,DY1,DY2,X,Y)+LGAN(F,DX1,DX2,Y,X)+λ3Lcyc(G,F)

(5)

其中,λ1,λ2和λ3分别表示

LGAN(G,DY1,X,Y),LGAN(G,DX1,Y,X)和Lcyc(G,F)的权重。

本文的最终目标是

L(G,F,DX1,DX2,DY1,DY2)

(6)

式中 生成器G和F期望最终目标损失函数最小,判别器D期望损失函数最大。

1.3 网络架构

1)生成器架构

生成器由三部分组成:编码器,转换器和解码器。首先,编码器对输入图像进行下采样提取特征;然后,转换器将输入图像的特征向量转换为目标域的特征向量;最后,由解码器进行上采样从特征向量中获得低层特征。网络如图2所示。

图2 生成器结构

本文的生成器网络与原始CycleGAN之间的区别在于:本文在编码器后加入了空间CNN模块,使得空间信息能在同层神经元上传递,增强了空间信息的传递。在转换器部分,使用残差密集块替代了原始的残差块,进一步提高生成器生成目标图像的能力。

2)判别器架构

判别器使用的是70×70 的PatchGAN,其目的是,确定每个大小为70×70图像补丁是否由生成器生成。与使用完整图像的判别器相比,使用这种补丁级别的判别器参数更少,并且可以将其应用于任意大小的图像做完全卷积。本文使用的双分支判别器网络如图3所示。

图3 判别器结构

3)优化器

GAN生成的道路区域可能存在小孔洞或误检的问题,这会降低道路检测的准确性。为了解决这个问题,提高道路检测的精度,本文提出一种自适应的优化方法来检测和优化GAN输出的结果。具体过程如图4所示。

自适应的优化模型将自动检测图像中的道路区域是否存在孔洞,若检测到孔洞存在,优化模型会使用膨胀和腐蚀算法自动填充孔洞。解决孔洞问题后,自适应模型将继续检测图像中是否存在误检的道路区域。误检的道路区域是指图像中没有道路被误认为是道路的区域。检测到误检的道路区域,自适应模型将使用连通域检测方法[17,19]来优化结果。道路区域误检的原因是因为周围物体的颜色和纹理与道路区域相似,因此误检道路区域通常是连通且规则的。完成这些操作后,模型将生成最终结果。

图4 优化模型

2 实验与结果分析

2.1 数据集与评估标准

本文使用KITTI道路基准数据集来评估所提出的道路检测方法。该数据集包括289张带标注图像的训练图像以及290张测试图像。此外,这些图像的像素大小约为375×1 242。评估模型的性能使用以下标准

(7)

(8)

(9)

(10)

KITTI服务器根据指标maxF对提交的方法进行排名,其公式如下所示

(11)

式中τ为分类阈值,使用该阈值可最大化F(Fmeasure)。

2.2 实验平台与参数

实验使用配备2.5 GHz,64核CPU,GTX 1080Ti GPU和128 GB内存的服务器,训练环境是TensorFlow 1.12.0,Python3.6.0。全文实验过程中,设置λ1=0.5,λ2=0.5,λ3=10。本文选用批量大小为1的Adam优化器,设置学习率为0.000 2。

2.3 KITTI道路基准检测结果与分析

最终的实验结果提交给KITTI服务器,以便将本文最终的实验结果与其他道路检测的结果进行比较。在提交之前,需要将实验结果转换到BEV(bird’s eye view)空间,因为KITTI服务器评估实验结果必须在BEV空间中进行。表1是近年来提交方法和本文方法的比较。

表1 方法比较 %

从表1中方法的比较可以发现,虽然本文方法在评估指标AP上与Road Segmentation有一定差距,但在maxF,PRE(precision)和假真正类(FPR)三个主要指标上,本文方法都有较为显著的提高。对于RD-CycleGAN,从表中可以看出,本文方法相较于RD-CycleGAN在各个指标上都有较为显著的提升。此外,虽然mAP和Multi-task CNN在个别指标上略微领先本文方法,但是在其他几个主要指标上,本文方法都有比较明显的提升。

图5为本文方法在KITTI基准服务器上的最终测试结果。从图中可以看出,本文提出的模型可以较好地提取图像中的道路区域,而且误检以及漏检的区域也比较少。此外,在不同场景中本文提出的模型都可以有效地提取出道路区域,具有较强的泛化能力。综上,本文的模型在大多数情况下都可以有效提取出图像中的道路区域,所以本文方法具有一定的研究意义与应用价值。

图5 KITTI基准服务器测试结果

3 结束语

本文提出一种结合深度学习算法和自适应算法的道路检测方法。引入DD-CycleGAN作为全文的基础框架网络来完成道路检测任务。DD-CycleGAN中的双判别器共同作用,使输出无限接近最优解。为了增强生成器的特征提取能力,在生成器中添加了空间CNN以及残差密集块。GAN的输出图像存在一些小孔洞和误检区域,针对这些问题,本文设计了一种自适应优化模型。该优化模型使用传统算法自动检测和填充GAN输出结果中的小孔洞,并去除误检道路区域。最终实验结果提交给KITTL服务器,并在KITTI道路基准测试中取得了较好的成绩。整体的最大F测度为90.46 %,精度为92.15 %。该数据说明本文方法明显优于传统道路检测算法,能够较为准确有效地完成道路检测任务,具有一定的研究和应用价值。

猜你喜欢
损失道路函数
洪涝造成孟加拉损失25.4万吨大米
坚持中国道路——方向决定道路,道路决定命运
道听途说
两败俱伤
运筹70年,中国道路
关于函数的一些补充知识
高中数学中二次函数应用举隅オ
无独有偶 曲径通幽
一次骑行带来的感悟
损失