融合图像修复的遮挡目标检测算法
2023-02-13史金光郑子玙
徐 旸, 史金光, 郑子玙, 赵 渭
(1.南京理工大学能源与动力工程学院,南京 210000; 2.中国兵器工业试验测试研究院,陕西 渭南 714000)
0 引言
军事目标检测在现代战争中具有非常重要的地位,具备目标检测能力的制导武器既要保证精准、有效地打击并摧毁目标,也要能够及时侦察敌情,减少己方人员伤亡,这就要求该武器系统的目标检测同时具有很高的检测精度和很快的识别速度。如今,随着深度学习技术的突破和计算硬件的发展,基于深度学习的目标检测算法[1-2]已经不再依靠人工提取特征,而是借助深度卷积神经网络自行提取更具表达能力的深层特征,这不仅使目标检测更具有泛化能力,而且具有很高的检测精度。目前,基于深度学习的目标检测算法大致可以分为两类,一类是以R-CNN为代表的两阶段(Two-stage)算法[3],另一类则是以YOLO为代表的单阶段(One-stage)算法[4-5]。目前,两阶段目标检测算法被应用于日常情况下已经具备了精度高、速度快的特点,然而应用于检测实际军事战场环境中的目标时,尤其是遇到军事目标借助物体隐蔽的情况,目标检测算法无法维持原有的检测精度和速度,甚至会出现漏检和误检的情况,这对于瞬息万变的战场来说是致命的。于是,康帅等[6]针对复杂场景下检测精度下降和漏检的问题,在YOLOv4网络中添加了基于空洞卷积的HDC模块和SJDC结构,增大感受野,从而获得更多的特征信息,一定程度上降低了漏检率;李轩等[7]在YOLOv3算法上除了同样采用空洞卷积层,还使用改进残差网络(ResNet)后的密集网络结构,通过重用特征保留更多的特征细节,提高目标检测算法在复杂天气环境下的鲁棒性。采用空洞卷积模块改进目标检测算法,虽然能够通过增大感受野尽可能提取到更详细的目标特征,但是空洞卷积是面向整个特征图,会存在冗余的特征信息,而且空洞卷积是以扩充的方式增大感受野,会损失信息的连续性。因此,融合注意力机制被提出,令网络模型重点提取目标区域的特征信息,以此解决目标有遮挡的问题。邓杰等[8]在YOLOv3网络的输出层中加入时频域融合注意力模块(TFFAM),通过给特征图分配权重,令网络更多地关注目标区域,有效地提高了密集行人的检测精度;王杨等[9]考虑到检测目标经过迷彩伪装会影响检测精度,对YOLOv5算法添加Triplet Attention和SE(Squeeze and Excitation)注意力模块,能较为准确地检测出隐蔽目标且保持较高精度。
对于目标检测的遮挡问题,无论是采用空洞卷积模块增大感受野,还是添加注意力机制提高关注度,研究人员都是针对目标未被遮挡的部分进行研究,通过改进目标检测算法来实现遮挡条件下的目标检测任务。很少有人从目标整体的角度出发来研究目标存在遮挡的检测精度问题,因此,本文结合图像修复提出一种针对目标被遮挡问题的目标检测算法(YOLO-Inpainting),该算法由两部分组成,一部分是基于YOLOv4算法改进的目标检测算法,另一部分是基于生成对抗网络的图像修复算法,这部分用于对去除遮挡物的目标图像进行修复,尽可能还原图像中目标的完整性。算法训练分为两部分训练,除了搜集的图像外,训练的数据集还使用EmbedCut算法进行数据增强。
1 基于YOLOv4的目标检测算法
1.1 YOLOv4目标检测算法
YOLOv4算法[10]是单阶段目标检测算法中较为完善的一种算法,它在YOLOv3的基础上增加了许多优秀的优化技巧,主要从网络结构、数据增强、激活函数和网络训练等方面进行优化,可以实现检测精度和速度的均衡。
YOLOv4的网络结构主要由主干网络(Backbone)、颈部(Neck)和头部(Head)3个部分组成。主干网络借鉴CSPNet网络结构,采用CSPDarkNet53网络,该网络将特征提取分割为两个支流,一个支流需要经过若干残差模块进行特征提取,另一个则只需要经过一个卷积块,最后合并成一组特征图,这样既保留了网络的深度,提高网络的学习能力以及丰富特征内容,又减少了模型参数,降低了模型的计算成本。CSPDarkNet53网络还采用Mish激活函数,不同于其他激活函数,Mish函数没有上边界,能避免由于边界存在而导致的饱和,并且更加平滑,可以更好地传播信息,保持很好的准确性。网络的颈部(Neck)即特征融合部分,主要采用了SPP模块和PANet网络结构,SPP模块是多层池化结构,在YOLOv4中除了用来消除卷积神经网络受固定输入尺寸的限制,还可以增加感受野,并分离出最重要的上下文特征。PANet网络结构是在FPN结构的基础上增加了自下向上的特征金字塔,这样可以从主干层对不同的检测层进行特征融合。YOLOv4的损失函数在原YOLOv3的基础上改用了CIoU-Loss,作为丈量目标框和预测框之间的位置损失,包含了重叠面积、中心点距离和长宽比3个因素,进一步提高了目标检测算法的精度。
模型训练方面,YOLOv4算法采用了多个可以提升算法精度的训练小技巧。Mosaic是YOLOv4中提出的一种新型数据增强的算法,它将4张训练图片拼接为1张,极大地减少了训练成本。训练过程中采用DropBlock正则化,选择丢弃单元领域内的区块,增加模型训练的复杂性,效果比通常的Dropout形式更好。除此之外,YOLOv4还采用遗传算法,在前10%的训练时间里选择出最优的超参数。
1.2 改进的目标检测模块
检测目标的遮挡问题,一般是指存在物体遮挡住目标的一部分区域,只留剩余部位暴露在检测视觉范围内,而且遮挡区域大小通常都是随机的,因此,目标暴露的部位以及区域大小成为影响检测效果的关键因素。
现有的YOLOv4算法虽然已经具有很好的检测效果,但是面对检测目标的遮挡区域过大或者暴露区域为非关键区域时,很容易出现漏检和误检的现象。本文同样在YOLOv4算法的基础上进行改进,对算法主干网络部分引入卷积注意力模块[11](Convolutional Block Attention Module,CBAM),增强网络对目标区域的特征提取;同时,在计算条件有限的情况下,为提高模型训练效率,在模型的头部采用交叉迭代批量标准层[12](Cross-Iteration Batch Normalization,CBN)。
图1所示为改进的YOLOv4结构图。
图1 改进的YOLOv4结构图Fig.1 Structure diagram of the improved YOLOv4
1.2.1 卷积注意力模块
卷积注意力模块(CBAM)是由通道注意力模块(Ch-annel Attention Module,CAM)和空间注意力模块(Spatial Attention Module,SAM)两个独立的子模块组合而成,通过每一步训练让网络学会关注更重要的特征图以及特征信息,采用给通道和空间分配不同权重的方式,使注意力信息流通整个网络。
通道注意力模块是对特征图的通道进行权重分配,输入尺寸为H×W×C的特征图,分别经过全局最大池化和全局平均池化,得到2组1×1×C的特征图,然后在一个神经网络中进行2次卷积让通道数在C/r和C之间转换(r为超参数),最后再将得到的特征图经过Sigmoid函数输出一个C维向量的权重值,对输入的特征图赋值。
空间注意力模块则是对每张特征图的内容进行权重分配,对输入的特征图先做一个基于通道的全局最大池化和全局平均池化,得到两个H×W×1的特征图,再将2张特征图进行通道拼接,最后经过1个卷积层和激活层降维成H×W×1的权重系数,赋值给每张特征图。
图1(b)中,本文将CBAM注意力模块添加在主干网络的残差模块(Resunit)中,并且在CSP模块中额外加入通道注意力模块,由于CSP模块是网络的主要组成部分,可以保证注意力机制深入网络,提升网络对特征图通道和空间的敏感性,而且避免了模型计算量的大幅增加。
1.2.2 交叉迭代批量标准化
批量标准化(Batch Normalization,BN)通过对一个小批量(Batch Size)的特征图进行标准化,令特征图的数据可以满足分布规律,能够大幅加快模型训练的收敛速度,缓解网络中特征分布较散的问题,还能改善内部协变量偏移(Internal Covariate Shift)现象。然而,产生这些优势的前提是Batch Size的数量足够大,这就需要较好的模型计算环境,因此,为了在有限的计算条件下不降低模型训练效率,本文在算法模型的头部采用交叉迭代批量标准化层代替原来的批量标准层。
(1)
(2)
(3)
(4)
(5)
(6)
2 基于生成对抗网络的图像修复模块
生成对抗网络(Generative Adversarial Network,GAN)是由GOODFELLOW等[13]提出的,主要用于实现图像去噪、图像修复、图像风格转换等计算机视觉任务。生成对抗网络一般包含生成器G和判别器D两个部分,生成器经过学习数据分布将随机输入的噪声生成接近真实的样本,鉴别器则是用来判断输入的样本是生成器生成的假样本还是真实样本,然后遵循“二人零和博弈”的思想,将生成器网络与鉴别器网络进行博弈,从而使训练出的生成器能够生成足以以假乱真的样本。其中,博弈过程就是优化GAN网络目标函数的过程。
GAN的对抗损失公式为
(7)
式中:E为分布函数的期望;Pdata(x)为真实样本的数据分布,x即为真实样本;Pz(z)表示随机输入的噪声分布,通常采用正态分布。
2.1 网络模型结构
考虑到目标图像不完整的轮廓会对目标检测结果有一定的影响,因此受到NAZERI等[14]提出的基于对抗性边缘学习的图像修复算法(EdgeConnect)启发,本文在基于生成对抗网络设计的图像修复网络上增加边缘修复网络,这样可避免图像修复的边界模糊问题,而且尽可能保证目标图像轮廓信息的完整性,模型结构见图2。
图2 图像修复模型结构图Fig.2 Structure diagram of image restoration model
本文的图像修复模型由2个生成器和2个判别器组成。前半部的生成器用于边缘生成,保证目标图像轮廓的完整性,并对应一个判别器;后半部的生成器则用于图像内容的纹理修复,对应另一个判别器。边缘生成器依照原模型进行结构布局,采用自编码的形式,包含2次下采样、8个残差块以及2次上采样。图像修复生成器使用本文目标检测模块的主干网络作为自编码部分,这样可以共享特征提取的参数,节省部分运算时间。解码部分使用了5个上采样模块,包含2个卷积块、上采样层和跳跃连接层,其中,上采样的扩张因子为2,Leaky ReLU激活函数的参数α=0.2,最后添加1个卷积层将特征图输出为三通道的样本图像。由于图像修复生成器融合YOLOv4主干网络作为编码器,因此还采用跳跃连接[15]的形式,将编码器各层输出的特征图跳跃连接到解码器中,与上采样的特征图进行融合,从而保证高层次语义信息和低层次局部信息的有效融合,为图像修复增添更多局部细节信息,同时也有助于梯度的反向传播,加快训练速度。2个判别器均采用70×70的PatchGAN结构[16],将输入映射为N×N的矩阵,矩阵块的每个元素代表着原图像中对应的70×70感受域的评价值,再通过求均值来判断是否为真实样本。
2.2 损失函数
原始GAN网络的损失函数是用KL散度和JS散度作为距离衡量指标,在高维度空间中,当生成分布和真实分布没有重叠部分或者重叠部分可以忽略时,KL散度和JS散度无法反映两者的远近,而且无法提供梯度,这会导致判别器优化良好的情况下生成器发生梯度消失现象,而且使用GAN损失函数训练生成的图像缺乏多样性。因此,本文在两个判别器中均应用WGAN网络[17]的损失函数,它是使用Wasserstein距离来衡量生成样本分布和真实样本分布之间的距离,相同情况下,由于Wasserstein距离是平滑的,所以能够提供有效的梯度。WGAN网络的损失函数L为
(8)
2.2.1 边缘生成网络的损失
由于边缘生成网络只针对目标图像的轮廓进行补全,所以损失只包含了对抗损失和特征匹配损失,其中,特征匹配损失通过对比判别器各层的激活图,有利于稳定模型的训练。
对抗损失Ladv,1采用WGAN网络的损失函数,所以定义为
Ladv,1=E(Cgt,Igray)[D1(Cgt,Igray)]-EIgray[D1(Cpred,Igray)]
(9)
特征匹配损失LFM为
(10)
边缘生成网络的目标函数为
(11)
式中,λadv,1和λFM为正则化参数,表示损失权重的分配,设置为λadv,1=1,λFM=10。
2.2.2 图像修复网络的损失
图像修复网络的修复内容包括纹理特征、颜色特征和细节特征,为了使修复后的图像最大程度地还原出缺失内容,除了对抗损失外,还引入了感知损失和风格损失。
对抗损失Ladv,2也采用WGAN网络的损失函数,即
Ladv,2=E(Igt,Ccomp)[D2(Igt,Ccomp)]-ECcomp[D2(Ipred,Ccomp)]
(12)
感知损失Lperc是通过定义真实图像卷积得到的特征图与生成图像卷积得到的特征图之间的距离来惩罚不相似的结果,用它作为惩罚项有助于还原图像的高层信息。感知损失的函数为
(13)
式中,ψi为生成器网络中第i层卷积的特征图。
风格损失Lstyle是用Gram矩阵来计算真实图像和生成图像之间的风格差异,函数为
(14)
图像修复网络的目标函数为
(15)
式中,λp和λs分别表示感知损失权重和风格损失权重,均为正则化参数,设置为λadv,2=λp=0.1,λs=250。
3 算法总体结构
本文算法总体结构如图3所示,由前文所述的改进YOLOv4算法模块和图像修复模块构成。
图3 YOLO-Inpainting算法总体结构图Fig.3 Structure diagram of YOLO-Inpainting algorithm
输入的图像经过目标检测网络得到检测结果以及主干网络的特征图,再根据检测结果判断是否需要进行图像修复,如果目标检测结果的置信度低于检测阈值,则将特征图和检测图像输入图像修复网络中进行修复,最后对修复后的图像重新进行目标检测,否则,直接输出检测结果。
4 模拟仿真与分析
4.1 构建数据集
本文选择坦克作为检测的军事目标,通过在互联网上搜集到的和在相关视频中截取得到的各类坦克的目标图像,共计2000张。在构建用于目标检测模块训练的数据集时,为了提高算法的鲁棒性和准确率,还使用EmbedCut算法进行数据增强,将含有大尺寸目标的图像经过剪切、缩放后嵌入到各类场景图像中,构造出更多不同环境背景的目标图像,共计丛林、山地、丘陵、废墟和沙漠5种环境,而且变换后的目标尺寸更具多样性,经过数据增强后的数据集总计4200张图像,并通过LabelImg工具完成标注,以PASCALVOC数据集的格式保存。
对于图像修复模块的数据集,以搜集到的2000张目标图像为基础,用不规则掩膜进行遮挡,遮挡范围包括图像的20%,40%和60%。
图4所示为构建的数据集示例图像。
图4 数据集图像Fig.4 Dataset image
图4(a)是用于目标检测模块训练的数据集,里面包含不同尺寸大小和不同数量的目标图像,以及用EmbedCut算法合成的图像。图4(b)则是训练图像修复模块的数据集。
4.2 模型训练
实验环境是Windows10操作系统和 Python3.6编程语言,采用PyTorch1.2.0的深度学习框架,使用PyCharm作为编程软件。整个模型训练为两部分算法模块单独训练。
在训练目标检测模块时,根据计算条件,将输入图像的分辨率大小调整为416像素×416像素,每一步迭代的Batch Size设置为4。训练之前,先使用K-means聚类算法对数据集实现目标框的聚类。训练的迭代步数设置为160,采用余弦退火算法来调整学习率的下降,可以防止出现局部极小值的现象,其中,前100步迭代设置初始学习率为1×10-4,最小值为1×10-5,后60步迭代设置初始学习率为1×10-5,最小值为1×10-6,下降间隔步数均为5。
对于图像修复模块,Batch Size设置为2,预设迭代15万次,并根据具体收敛情况进行增加,直至模型收敛。采用Adam优化器优化生成器,设置参数为β1=0,β2=0.99,学习率为1×10-3。由于2个判别器都应用WGAN损失作为对抗损失函数,因此根据文献[17],采用RMSProp优化器对判别器参数进行优化,设置平滑常数α=0.9,学习率为1×10-4。其中,边缘生成网络中采用Canny算子进行边缘检测,高斯滤波器的标准差设置为σ=1.5,阈值为0.5。
4.3 模拟仿真与结果分析
4.3.1 验证目标检测算法优化后的检测效果
为验证本文提出的目标检测算法的优越性,挑选正常目标图像和带掩膜遮挡的目标图像各200张作为测试集,分别采用YOLOv3,YOLOv4以及本文所提的YOLO-Inpainting算法进行测试。评估目标检测效果的指标通常为mAP,是指各类目标物体平均准确率(AP)的均值,由于本文只选择坦克这一类物体作为检测的军事目标,因此mAP值即为AP值。数值上,它等于准确率(Precision)和召回率(Recall)所围成P-R曲线图的面积,准确率表示算法检测出的正确目标数与检测出的所有目标数的比值,能表现算法的误检情况;召回率则表示算法检测出的正确目标数与目标图像中所有目标数的比值,可表现算法的漏检情况。
首先对比本文的YOLO-Inpainting算法与YOLOv4算法对无遮挡图像的检测效果,测试图像包括正常图像和合成图像,如图5所示。图5(a)和图5(b)分别为两种算法对200张正常坦克类目标图像测试集检测的P-R曲线,从中可以看出,YOLO-Inpainting算法检测的AP值略高,但仅高出了2.5%。仔细对比图5(a)和图5(b),虽然曲线所围成的面积大小相似,但是两条曲线有明显差异,图5(a)中曲线更加平滑,准确率的值基本稳定在最高值,而且从横坐标的召回率来看,曲线的横向跨度略大,这表明YOLO-Inpainting算法一定程度上可以解决漏检问题。
图5(c)和图5(d)分别为两种算法对测试集检测结果中的8张示例图,从中可以看出,两种算法对于正常的目标图像检测效果都不错,无论是多目标的情况还是目标处于不同光线环境下,只存在检测置信度高低的差距。然而,在面对合成的目标图像时,YOLOv4算法出现了检测不稳定现象,相比之下,YOLO-Inpainting算法虽然检测结果一般,但并未出现检测不稳定现象。这说明添加注意力模块后,算法对于检测小目标图像或者与周围环境相似的目标图像有一定的提升,同时使用EmbedCut算法进行数据增强可以有效提高目标检测算法的检测精度。
4.3.2 验证图像修复模块的修复效果
图6为本文算法中图像修复模块对200张带掩膜遮挡的目标图像进行修复的结果示例图。从图6上看,对于遮挡较少的图像,修复后的目标图像能较好地显示出纹理细节,没有明显的局部色差问题。在修复遮挡区域较大的图像时,虽然无法细致地还原目标的纹理结构,出现了局部模糊现象,但是由于使用了边缘修复的双生成器模型,修复后的目标图像基本没有出现伪边界,从视觉效果上看,图像也比较完整、连续,能清晰地观察出目标的整体轮廓。
图6 图像修复模块的修复结果Fig.6 Results of image restoration module
为了更加直观地体现出图像修复模块的修复效果,引入结构相似性(Structural Similarity,SSIM)和峰值信噪比(Peak Signal to Noise Ratio,PSNR)两种指标来评估图像修复的效果。PSNR是基于修复图像和原始图像之间对应像素点的误差进行图像质量评估,其数值越大,表明修复效果越好;SSIM则是通过对比2张图像的亮度、结构和对比度来测量相似度,数值范围为(0,1),同样数值越大,表示修复效果越好。
表1所示为图像修复模块的PSNR值与SSIM值。
表1 图像修复模块的PSNR值和SSIM值
从表1也能看出,模型修复效果较佳,能有效还原出被遮挡的目标区域,而且由于各种损失函数的约束,减小了修复图像的亮度、结构和对比度等误差。
4.3.3 验证整体算法的检测效果
融合图像修复模块的目的是为了提高目标有遮挡时的检测精度,因此,还需要验证添加图像修复模块后算法对于目标遮挡情况的检测效果。检测图像是借助白色掩膜来模拟遮挡环境的目标图像,遮挡区域约占30%~60%,且随机遮挡目标部位。
图7所示为算法对遮挡目标的检测结果。
将各种算法对200张带掩膜遮挡的坦克类目标图像测试集进行目标检测,其AP曲线图见图7 (a)~7(d),结果表明,即使不使用图像修复模块,YOLO-Inpainting算法依然比其他两种算法具有更好的检测效果。其中,YOLOv3算法的检测效果较差,这是因为网络深度会影响提取特征的能力,无法提取出更多、更细节的有效特征,进而导致较低的检测精度。本文算法在YOLOv4的基础上引入注意力机制,会对目标未被遮挡的部分产生更多的关注度,能较为准确地检测出目标的部分区域,而且添加注意力机制在一定程度上可以加深网络,增强网络的特征提取能力,从而提高算法精度。
图7 不同算法对遮挡目标的检测结果Fig.7 Detection results of occluded targets based on different algorithms
图7(e)为4种算法对测试集检测结果中的8张示例图。自上而下依次为YOLOv3,YOLOv4,YOLO-Inpainting(目标检测模块)和YOLO-Inpainting。从检测结果图像可以明显地看出,各算法对遮挡目标的检测效果,无论是YOLOv3算法还是YOLOv4算法,都存在漏检或者误检的情况,检测的准确率更是无法达到要求。经过比对,对于不同区域大小以及不同部位的遮挡,单纯的目标检测算法会出现较大差距的检测结果,甚至对同一遮挡目标的不同部位检测出多个结果,严重不符合军事目标的检测要求。而YOLO-Inpainting算法通过图像修复模块还原出目标被遮挡的部分,即使存在修复不佳的情况,如图7(e)的第1,3列,但还是能够准确地检测出目标,这是因为图像修复模块还原了目标图像的整体轮廓。
模拟仿真最终检测结果如表2所示。
表2 3种算法检测效果对比
从表2可知,本文提出的YOLO-Inpainting算法对于检测遮挡目标有很大的优势,这也表明本文算法具有很好的可行性。
5 结论
本文提出一种融合图像修复模块的目标检测算法,用于针对复杂环境中目标被遮挡的问题。在目标检测模块中以YOLOv4算法为基础,引入注意力机制,增强网络的特征提取能力,较原YOLOv4算法提高了2.5%的检测精度;随后基于生成对抗网络设计了图像修复网络,用于修复还原目标被遮挡的部位。经过模拟仿真表明,在其他算法对遮挡目标检测结果较差的情况下,本文算法借助图像修复模块能够使检测精度达到79.63%,同时可以较好地解决复杂背景情况下的漏检和误检问题,这对于复杂战场中的军事目标检测具有重要的意义。由于本文在目标检测算法中增添了图像修复模块,会导致算法的检测速度下降,削减了算法的实时性,因此,如何更好地融合图像修复模块是下一步工作中需要重点研究的问题。