支持抗光照目标检测的改进YOLO算法*
2023-05-29姚宇捷彭育辉陈泽辉何维堃陈文强
姚宇捷,彭育辉,陈泽辉,何维堃,吴 庆,黄 炜,陈文强
(1.福州大学机械工程及自动化学院,福州 350116;2.福建汉特云智能科技有限公司,福州 350028)
前言
基于计算机视觉的目标检测是通过对输入的图像信息进行解码分析,获得图像中目标对象的正确类别和准确位置,在商用领域和军用领域均有巨大应用价值。
传统目标检测算法存在运算量大、实时性差等问题[1-2],基于深度学习的目标检测算法正逐步成为计算机视觉领域的主流技术路线。深度学习目标检测算法根据是否提前生成候选框可分为Two-stage和One-stage。前者以R-CNN[3]为代表,由于算法本身会产生过多的候选框,导致运算量过大,无法满足实时性要求;后者则实现了端到端的网络训练,大幅减少了运算量,提高了网络的实时性,如YOLO 系列[4-6]、SSD[7]、MobileNet[8-10]算法等。
RGB 图像作为目标检测的输入数据,其自身的特性之一就是易受到光照的影响,为此Ren 等[11]提出了一种新的单级端到端可训练的目标检测网络,通过在多尺度特征图上引入递归滚动卷积(RRC)架构来构建“深入上下文”的对象分类器和包围盒回归器来降低光照影响;Zhao 等[12]提出特征金字塔增强策略(FPES)来增加网络感受野,并为对象检测模块(ODM)阶段提出了自适应阈值获取方法以提高模型精度;Zhu 等[13]采用残差特征增强的方法来增强颈部卷积层的特征提取,增强的PANet[14]用于改进特征融合,加强了特征图的表示能力。上述算法均无法回避RGB 图像自身的固有缺陷,即对光照敏感度过高问题。
由于HSV 图像具有较好的抗光照能力,以及YOLO 算法在目标检测中的优越性,本文中提出一种适用于YOLO 系列(YOLOV3、V4、V5等)的改进算法。鉴于YOLOV4[15]网络相较于其他YOLO 网络在复杂环境下检测性能突出,因此以YOLOV4 网络为基础,从HSV 图像分离出抗光照能力最强的S通道,并与RGB 图像进行融合,使输入网络中的图像数据既保留重要的色彩信息又同时具备抗光照能力;同时对YOLOV4 的主干网络和损失函数进行优化,以达到提高检测精度并满足实时性的预期目标。
1 改进的YOLOV4检测模型
1.1 抗光照网络模型
RGB 图像将R(red)、G(green)、B(blue)3个通道的变化和亮度相叠加混合,构成人类视觉所能感知的颜色信息。RGB 3 个通道的分量与亮度紧密相联,当亮度发生变化后,3 个通道的分量也会随之发生改变,从而导致整体的颜色信息发生改变。这一特性导致RGB 图像很易受到光照影响,即对亮度的敏感度过高。
为解决光照带来的影响,方式之一是采用HSV颜色空间。构成HSV 模型的主要参数有:色调(Hue)、饱和度(Saturation)、明度(Value)。色调H是将所有的颜色显示转化为0°~360°之间,不同于RGB需要三通道的分量相互配合,H通道只须选择相应的角度即可;饱和度S表示的是颜色接近光谱色的程度,光谱色占比越高,则表示颜色的饱和度越高;明度V表示的是颜色明亮程度,明亮值就是指受到外界光照影响的大小。HSV 可由RGB 转换而成,转换公式为
式中:R、G、B分别代表RGB图像的3个通道分量;H、S、V代表的是HSV 图像的3 个通道分量。由上述公式可知,V通道选取的是RGB 图像的最大分量,因此光照对HSV 图像的V通道影响最大,而相较之下,H通道和S通道都是取RGB图像中的最小分量并相互作差和运算而来的,所以光照对与HSV 图像的H通道和S通道影响较小。验证这一结论的光照实验结果如图1所示。
由图1 可知,在相同光照条件下,RGB 图像易受光照影响,3 个通道分量都出现了亮暗界限分明的情况。HSV 图像由于其V通道的存在,导致HSV图像也出现亮暗界限分明的情况。将HSV 图像进行通道分割,分离出H通道、S通道和V通道进行观察,发现V通道的亮暗界限分明,S通道的亮暗界限消失,H通道的亮暗界限模糊,说明HSV 图像的H通道和S通道都具有抗光照能力,而S通道的抗光照能力更强。
HSV 关注的是图像颜色的划分,而非图像颜色的语义信息。如果只是简单地将HSV去除V通道输入网络,就会缺失图像颜色中携带的语义信息,导致网络无法进行与颜色相关的特征提取。为此,本文将HSV 中抗光照能力强的S通道分离出,与RGB 通道合并后输入网络,使输入网络的数据兼备抗光照能力。具体流程见图2。
图2 抗光照算法流程图
图2 所示的实现流程是建立在原YOLOV4 网络基础上的,由于YOLOV4网络本身不具备学习RGBS四通道图像信息的能力,为此,须对YOLOV4的原网络维度进行重构,补足四通道信息输入所需维度,保证网络正常输出。
1.2 Ghostnet网络替换与改进
YOLOV4 的主干网络CSPDarknet53 采用了大量的3×3 卷积核来进行特征提取,过程中产生的相似特征图通常被当作冗余信息。冗余特征图虽然能使网络更具泛化性,但同时也带来了更大的数据量,降低算法效率。Ghostnet 网络[16]基于一组内在特征映射,应用一系列成本低廉的线性变换来生成许多冗余特征映射,可以用更低的计算量充分提取内在特征背后的信息。因此,为降低网络参数量,提高检测实时性,将主干网络由CSPDarknet53 替换为Ghostnet网络,对YOLOV4进行改进。
Ghostnet 模块主要由两部分操作构成:先是通过少量的普通卷积来获取网络学习所需要的部分特征图;再对这些特征图进行低成本的线性操作生成新的特征图;最后再将两部分的特征图Concat 拼接在一起补足输出维度需求。Ghostnet 模块相较于普通卷积的理论加速比为
式中:k为Kernel 的尺寸;d为内核尺寸;w、h为输入数据的宽和高;c为输入数据的通道数;n为输出数据的通道数;s为压缩比。
在一个Ghostnet模块线性运算中,当内核尺寸d与卷积核尺寸k一致,且s<<c时,模型的效率最大。则参数压缩率计算如下:
文献[17]中对比分析了VGG 与ResNet 系列在CIFAR-10 数据集上的测试结果,得出当压缩比s=2时Ghostnet 模型效果最佳,即在卷积过程中,一半用普通卷积生成,另外一半由简单线性操作生成。研究发现,部分网络的冗余特征图并没有占到原特征图总数的一半。对于这部分网络,如果只用一半的常规卷积进行特征提取,将无法完成对图像信息的全面理解,导致网络的识别精度下降。因此压缩比s=2的Ghostnet模型无法运用到所有的网络模型中。
为获得Ghostnet 模块在YOLOV4 网络中最佳压缩比s,采用Hash 算法对YOLOV4 网络生成的32 张特征子图进行分析,通过将所有子图的数据转化为hash值,并进行两两比对其hash值的汉明距离,借此来判定二者是否相似。两张图片的汉明距离越小,图片越相似。最后通过数据变换将距离大小转化为相似度进行输出,所得结果如图3所示。
图3 YOLOV4特征图冗余现象
由图3 可知,YOLOV4 在经过卷积生成的特征图中冗余特征图与普通特征图的占比为1∶3,即压缩比s为4/3。据此,对GhostNnet 模块进行修改,将原来普通卷积与廉价卷积的比例由原来的1∶1 重新调整为3∶1,修改前后如图4所示。
图4 Ghostnet模块修改对比图
改进后的Ghostnet 模型相较于原模型在参数量上有所提升,但其保证了对输入图像特征的全面提取,提高了网络的检测精度。改进的YOLOV4 检测模型结构如图5所示。
图5 YOLOV4+抗光照算法+改进Ghostnet模块的网络结构图(YOLO-RLG)
1.3 损失函数改进
YOLOV4 采用CIoU 损失作为Boundingbox(目标识别框)的损失函数,其在IoU 损失的基础上加入了考虑预测框与真实框高宽比的影响因子,即
式中:b、bgt表示预测框和真实框的中心点;ρ表示两中心点之间的距离;c为包含两个框的最小封闭框的对角线长度;v用来衡量高宽比的相似性;α为与交并比相关的权重系数。
尽管CIoU_Loss 在进行候选框与真实框损失计算时考虑了框的面积大小、中心点距离以及框的高宽比等因素。但是,当候选框的高、宽与真实框的高、宽呈倍数关系且大小不相等时,CIoU_Loss 中高宽比影响因子(αν)就会失效。另外,对式(6)求导发现,高、宽的梯度方向相反,即当高度增加时,宽度必然减小,反之也成立。因为高、宽无法实现同增或同减,导致CIoU_Loss可能会以不合理的方式优化相似性。为进一步提高模型的检测精度和鲁棒性,本文中利用EIoU来改进YOLOV4算法的损失函数。
将CIoU 替换为EIoU[17]来优化高宽比影响因子失效的情况,从而实现对YOLOV4 损失函数的改进,即
EIoU 将CIoU 的高宽比损失项拆分成预测框的高宽分别与最小外接框高宽的差值,优化了边界框回归任务中样本不平衡问题,即减少与目标框重叠较少的大量锚框对Boundingbox(目标识别框)回归的优化共享,使回归过程专注于高质量锚框,加速了模型的收敛速度和回归精度。
2 实验
2.1 实验数据与环境
实验采用的KITTI 数据集是由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合采集制作的,其中包含市区、乡村和高速公路等场景采集的真实图像数据。每张图像中最多达15 辆车,还有各种程度的遮挡与截断,每个车辆特征复杂,场景多变,可以很好地防止训练过程中由于标记物特征简单而导致的过拟合风险。KITTI数据集总共分为7 481张训练集和7 518 张测试集,总共包含80 256 个标记对象,庞大的数据量能够支持各种不同算法的验证,为国内外广大研究人员广泛使用。
计算环境为Ubuntu16.04 操作系统,服务器硬件配置为Intel Xeon Silver 4108 处理器、GPU 型号为NVIDIA GTX1080Ti 显卡、32 GB 运行内存。在Anaconda 下使用tensorflow 深度学习框架和Python3.8 编程语言实现车辆的检测网络,并使用GPU进行加速。
2.2 评价指标
在目标检测方面的评价标准主要有精确率P(Precision)、召回率R(Recall)、AP(Average Precision)、网络推理时间(FPS)和模型大小MS(Model Size)。其中,AP是由类别的精确率和召回率所构成的曲线下方面积,是充分体现模型泛化能力的重要指标,AP计算公式为
式中:P表示精确率;R表示召回率;TP表示正确预测为正样本的数量;FP表示错误预测为正样本的数量;NF表示错误预测为负样本的数量;AP表示各类别PR曲线构成的下方面积。
2.3 网络训练参数设定
在模型训练的过程中使用SGD 优化方法,模型训练的超参数设置:初始学习率设置为0.005,动量设置为0.9,权重衰减系数设置为0.000 5。在实验的训练和测试中所设置的图片大小设置为416×416,batch-size 大小设置为16,epoch 大小设置为1 000。
2.4 结果分析
为进一步验证YOLOV4改进抗光照模型中所用到的各模块对YOLOV4的优化作用,采取消融实验。首先对YOLOV4 网络进行抗光照增强,之后将模型的主干网络替换成Ghostnet,最后对Ghostnet 网络和损失函数进行改进。消融实验各模型的AP 和性能比对结果如图6和图7所示。
图6 各模型AP曲线图
图7 性能比对图
表1 为YOLOV4 改进抗光照模型进行的消融实验结果,对各种组合下的算法平均精确度、模型大小和检测帧率进行对比。
表1 消融实验
(1)定量分析
从表1 可以看出,YOLOV4 模型生成的权重文件大小为256.8 M,AP为92.53%,FPS为34.04 f/s。改进模型1 进行了抗光照增强,输入数据由原来的RGB 三通道图像变换RGBS 四通道图像,并对网络模型进行维度统一,导致模型权重大小轻微增加了6.9 M,FPS轻微变化了0.18 f/s,但AP提升了1.55%,其原因在于KITTI数据集本身就有较多的阴影交替的场景,而改进模型1 中刚好具有抗光照能力,所以AP有所提升。改进模型2 在改进模型1 的基础上将原来的CSPDarknet53 替换成Ghostnet,由于Ghostnet本身是轻量化网络,所以改进模型2相较于改进模型1,其模型权重大小下降了218.3 M,FPS提高了18.41 f/s,由于上文中提到了原Ghostnet网络特征提取不充分的原因,导致了改进模型2 的AP下降了5.33%,改进模型2 虽然AP下降,但FPS得到了大幅上升,提高了网络检测的实时性。改进模型3 在改进模型2 的基础上运用本文提到的方法对Ghostnet 网络进行了优化,使模型相较于改进模型2的AP提升了3.87%,模型权重大小增加了1.1 M,FPS上涨了3.28 f/s。本文模型YOLO-RLG 在改进模型3 的基础上将损失函数由CIoU 替换为EIoU,使AP提升了0.74%,模型大小没有变化,FPS轻微提升0.67 f/s。与原YOLOV4 网络模型相比,模型的大小下降了210.3 M,检测精度提升了0.83%,FPS提高了22.54 f/s。
(2)定性分析
对比YOLOV4 与YOLO-RLG 在测试集上的部分检测结果如图8所示。图8(a)和图8(b)分别是两个算法对同一张图像进行检测的结果。可以看到,YOLOV4 虽然在近处的检测结果很好,但在远处光影交错的车辆就无法识别到;而YOLO-RLG 能很好识别近处和远处光影交错的车辆。为验证YOLOV4-RLG 能识别到远处的这类车辆不是因为算法本身AP(平均精确度)高导致的,本文采用了训练还未完成的AP(平均精确度)较低的YOLO-RLG 权重文件进行同一图像检测如图8(c)所示。结果显示,由于AP(平均精确度)较低的原因,近处的识别效果没有YOLOV4 好,但仍然能够识别到远处光影交错的车辆,充分说明了本文算法所具备的抗光照能力。
图8 KITTI数据集测试结果
为验证改进后的YOLO-RLG 算法的性能优势,将本文提出的算法与前沿的目标检测算法SSD、Faster-RCNN、EfficientDet、Swin Transformer等网络模型在KITTI二维数据集上进行比对,结果如表2所示。
表2 YOLO-RLG与其他算法比对
由表2 可知,YOLO-RLG 相较于Faster-RCNN,由于使用了Ghostnet 改进模块,使其计算的参数量远小于Faster-RCNN,且实时检测速度也比其快;与SSD系列相比,在实时检测速度上与SSD300和SSDMoblienetV3 相当,但在检测精度方面,YOLO-RLG有绝对优势;与YOLOV5和EfficientDet相比,不管在检测精度还是实时检测速度方面都优于二者;最后与Swin Transformer 比较,在检测精度上略低于SwinTransformer,但在计算参数量上远小于Swin Transformer,且实时检测速度比Swin Transformer快。
为进一步验证YOLO-RLG 算法对不同类型的检测目标也具备较好的检测效果,利用PASCAL VOC 数据集对原YOLOV4 算法和改进后的YOLORLG 算法进行验证,结果如图9 和图10 所示。其中PASCAL VOC 数据集包含20 个目标类别,总计有16 551 张训练图像和15 943 张测试图。PASCAL VOC 数据集是计算机视觉中常用的数据集,庞大的数据量和多种类别可支持各种不同算法的验证。
图9 YOLOV4模型多类别检测AP柱状图
图10 YOLO-RLG模型多类别检测AP柱状图
YOLO-RLG 与YOLOV4 在PASCAL VOC 数据集上性能对比数据如表3所示。
表3 PASCAL VOC数据集验证比对
由表3 可知,改进后的YOLO-RLG 模型检测多类别的平均精度(mAP)为92.64%,原YOLOV4 模型检测多类别的平均精度(mAP)为91.33%,改进后的YOLO-RLG 模型mAP提升了1.31%,且改进后的YOLO-RLG 模型在检测速度、模型大小、抗光照能力方面均优于原YOLOV4 算法。综上所述,本文的YOLO-RLG 模型相较于其他网络模型不仅有较好的检测精度,且有较快的检测速度,能满足算法实时性要求,且还具备抗光照能力。
3 结论
为更好解决强光和阴影等干扰因素对目标检测的影响,提出了一种基于YOLOV4 的抗光照目标检测模型YOLO-RLG。首先,从HSV 图像分离出抗光照能力强的S通道与RGB图像通道进行合并作为卷积神经网络的输入,使输入模型的数据既保留了重要的色彩信息又具备抗光照与阴影的能力;其次,为提高模型目标检测的实时性和检测精度,对主干网络和损失函数进行改进,将CSPDarknet53 替换成轻量化模型Ghostnet,并对Ghostnet 模型进行优化,使用EIoU 来消除候选框与真实框高宽比相同、大小不同所造成的高宽比影响因子失效的影响,加快模型收敛速度和回归精度,提升模型的鲁棒性。基于KITTI 数据集和PASCAL VOC 数据集对模型的性能进行实验,结果表明:提出的方法能满足目标检测的实时性和检测精度要求,并有效提升网络的抗光照能力,相比于原YOLOV4网络模型,模型的规模下降了210.3 M,在KITTI 数据集上检测精度提升了0.83%,FPS 提高了22.54 f/s;在PASCAL VOC 数据集上检测精度提升了1.31%,FPS提高了17.84 f/s。
改进后的YOLO-RLG 算法,虽然在抗光照方面有所提升,但相应地增加了网络特征提取的复杂度,如何让网络更加注重目标特征,将会是YOLO-RLG算法未来提升的方向。