基于改进的MoCo的遥感图像目标检测

2022-12-30 14:09焦新泉李睿康陈建军
计算机与现代化 2022年12期
关键词:编码器权重分类

焦新泉,李睿康,陈建军

(中北大学电子测试技术国家重点实验室,山西 太原 030051)

0 引 言

近年来出现了许多高质量的遥感图像数据集,但在卫星实际拍摄的图像中存在着多种问题,例如卫星受到了大气条件(云层、雾霾)、太阳光照条件、拍摄曝光条件等限制,最终得到的遥感图像往往并没有市面上常见的理想,造成了训练样本难度可能低于实际对遥感图像检测的难度。此外,在遥感图像数据集中,有些目标占图像比例差距较大,例如飞机、汽车和操场、港口,一些目标之间相似度接近易于造成混淆识别,例如山地、丘陵地形等分类和形状相似的一些建筑物,还有一些目标在平时被拍摄到的难易程度不同,引起了数据样本分布不均匀。这些问题造成了遥感图像人工标注时标准不统一,提高了人工标注的成本。一些方法能够检测出云层和云阴影[1],或者在云、雪共存的复杂情况检测出云层[2],减弱了气象条件的影响,但是数据分布不均匀的问题依然存在。

针对数据集标注存在的问题,无监督对比学习可以提高模型的识别率和检测精度。目标分类和目标检测是不同的任务,在分类任务中,整幅图像被分类为单一的标签,而在检测任务中,除了目标的类别之外,还有它具体的位置,且整幅图像中有可能存在不同分类的多个目标。虽然2种任务不同,但是检测任务可以认为是分类任务的下游任务,在对比学习中,将特征提取网络训练好的权重作为固定值,参与下游的检测任务,可以提高整体模型的检测精度。将通道注意力机制添加到对比学习中的编码器网络,可以增强特征提取,提高检测精度。全局通道注意力机制[3]建立了全局信息的交互联系,通过迭代获取每个通道的重要程度。局部的通道注意力[4]认为获取所有通道之间的交互关系效率不高且不必要,只考虑每个通道及其相邻的部分通道之间的联系以增强模型的效率及有效性。

本文提出一个由局部的注意力机制改善的MoCo v2的模型,将MoCo v2预训练得到的权重作为固定参数应用于以YOLOv5为基础的目标检测框架,以提高遥感图像检测精度。实验在AID Dataset[5]进行分类训练,迁移对比学习得到的预训练权重到YOLOv5中进行遥感图像检测,在TGRS-HRRSD[6]数据集上进行检测训练。

1 相关研究

1.1 传统遥感图像检测方法

Chen等人[7]通过多尺度特征融合,提高了遥感图像检测精度,使用通道注意力机制,生成集成多尺度的注意力特征图,利于关注不同背景和大小的物体,一定程度上改善了大小目标之间的特征信息不对等的情况。还有基于多特征融合的变化检测方法,通过计算结构相似的纹理差,利用纹理和光谱特征提高遥感图像中样本的可信度,提高了检测性能。Tan等人[8]提出了对Faster R-CNN的剪枝和量化的优化方法,提高了对遥感图像中车辆的检测性能。这些方法虽然在各自的数据集上提高了检测表现,但在实际应用的多分类场景中没有改善标签标注的标准不统一和相似样本之间难于区分的情况。

1.2 YOLO系列的目标检测方法

到目前为止,流行的目标检测模型可以分为2类,其中一类是R-CNN系列的两阶段检测算法,例如:RCNN[9]和Faster R-CNN[10],另外一类是单阶段检测算法,例如:YOLOv3[11]、YOLOv4[12]、YOLOv5和SSD[13]及DSSD[14],其中YOLO系列在检测效果的实时性和精度上都更优秀。经过YOLOv1到YOLOv5这6年的发展,现在许多检测项目和实际应用都使用YOLO算法,YOLOv5模型已经在目标检测领域有最好的速度和精度的综合性能。自从ResNet[15]提出以来有许多实验证明了用于提取信息的骨干网络对于残差结构的依赖。YOLOv5的骨干网络使用了类似于ResNet结构的CSP网络,增加残差结构可以增强网络层与网络层之间反向传播的梯度值,有利于网络层的加深,从而可以提取到更微小、更丰富的特征信息而不必担心网络退化。之后经过不同尺度的池化操作,送入特征融合网络FPN[16]和PAN[17],最后再预测分类和回归具体位置。

1.3 无监督对比学习

近年来,无监督对比学习领域迅速发展,许多模型和方法在分类任务上的表现已经超过了有监督模型,在目标检测任务上也有相近或者超过的性能。无监督对比学习本质上是利用大量的无标注数据与复杂的神经网络模型,从图像中吸取本身的分布,学习到高级的语义特征信息。目前效果比较好的对比学习方法主要分为2类:对比聚类和对比反例,基于负例的对比学习方法在目标检测、语义分割的下游任务的表现会更好一点。典型无监督训练模型[18]和无监督embedding学习[19]目的是在无标定样本中发现视觉相似性或者弱类别信息。基于负例的对比学习模型的发展从端到端的模型例如CPC v1[20]、CPC v2[21]、DIM[22]、AMDIM[23],到关键分支采用Memory Bank[24]再到动态字典的分支构建[25],这些方法注重于关键值分支的处理,MoCo已经实现了稳定的迭代方法,训练出了高质量的编码器。MoCo v2[26]、SimCLR[27]进一步对编码器输出的表示做了改进,增加了全连接层,能够过滤图像更多的像素级的细节特征,能够促进模型对高级语义特征、一些通用特征的学习。为了改善对比学习在图像分类任务和目标检测任务上的精度不一致的情况,Xie等人[28]提出了除了全局图像特征之外,局部特征也很重要,加入了跨局部和全局的对比损失和多阶段的对比损失,大大提高了对比学习应用于目标检测的性能。在遥感图像领域,也有一些方法使用了弱监督或者无监督对比学习方法。 Li等人[29]使用场景级标记进行多类地理空间目标检测的弱监督深度学习方法,利用分离的场景类别信息和场景对之间的相互线索来充分训练深度网络,以追求更高的目标检测性能。2020年,Li等人[30]又提出了一种基于弱监督深度学习的云检测方法,一定程度上减弱了云层覆盖对光学遥感图像可用性的影响。Li等人[31]提出在遥感特征的基础上,重新构建了一种新的遥感知识图,用于支持未知遥感图像场景的推理识别,在遥感图像分类任务上有很好的表现。

2 基于改进的MoCo的遥感图像检测

2.1 基于MoCo v2的对比学习的改进

对比学习可以大致分为3个部分,如图1所示。第一部分是数据输入端,对样本使用2种不同的数据增强方法得到2种样本作为对比2个分支的输入,经过2种数据增强后,2个分支中的由相同图像增强后得到的2个样本互为正例,不同图像进行增强后的2个样本互为负例,基于负例的对比学习通过比较正负例之间的相似性学习到图像内的分类信息。第二部分为编码器,通过编码器来提取图像中的表示和特征,查询分支提取出的特征表示可以用于下游任务。第三部分为损失函数,通过计算2个分支中的样本的相似性来定义损失函数,得到样本的伪标签,达到分类的效果。

图1 基于负例的对比学习模型

数据输入端的改进:MoCo v2使用了比较大的动态字典构建关键值分支的样本,并对关键值分支的编码器采用了动量迭代的方法,以能够缓慢稳定地训练。对比学习中好的特征通过大量的反例来学习,但AID数据集中的图像总数远远小于MoCo v2用到的ImageNet,为了在下一个迭代周期时打乱样本批量队列更新,降低抽到重复的样本的概率,需要改变动态字典的大小,MoCo v2的字典大小为65536,对于AID数据集,可以设置为1024或者2048。其次对关键值的分支使用的数据增强方法再增加随机对比度转换以增大2个分支样本的区别,加快训练速度。

编码器的改进:许多遥感图像中目标与背景之间相似度很高,部分种类之间的相似度也很高,降低了识别率以及目标锚框的准确度,许多不同类别的物体在整幅图像中所占的比例差距很大,造成了标注时的标准不统一的问题。如图2所示,图2(a)飞机和图2(b)立交桥所占整个图像比例差距很大,带来标注的麻烦,图2(c)是裸地与图2(d)中沙漠的相似度很高,分类时容易发生错误。使用通道注意力可以改善这种情况,通道注意力机制会分配更多的权重在局部关注的区域,增强了重点区域的信息表达。在对比学习中增加注意力模块能够有效地提高目标的特征提取,能够改善遥感图像中大、小目标占图像的比例差距过大的情况,能够抑制无用背景或者干扰信息。如图3所示为局部通道注意力机制实现方法,对输入做不改变通道维度的全局平均池化操作,在通道维上使用卷积核为设定值的一维的1×1卷积,在经过sigmoid激活函数之后得到各个通道的权重值,将各权重值应用于原输入,最终得到经过注意力权值分配之后的特征图。

(a) 飞机 (b) 立交桥 (c) 裸地 (d) 沙漠图2 遥感图像对比

图3 局部通道注意力原理图

图4是添加了注意力机制的ResNet结构图,实际中将注意力机制添加到ResNet50时,可以在Conv2、Conv3、Conv4、Conv5层的最后加入注意力机制,在残差网络的每一个阶段都加入注意力机制,对每一阶段得到的不同通道数的特征进行注意力权重分配。整个获得特征图的网络作为之后检测网络的骨干网络,特征图接后续的网络可以实现目标分类与边界框位置回归。

图4 ResNet50添加通道注意力机制结构图

损失函数的计算:如图5所示,基于负例的对比学习的目的是将查询分支的样本和关键值分支上的正样本匹配、负样本区分,相同分类在向量投影空间上的分布体现一致性,距离很接近,不同分类在投影空间上的分布比较均匀。对比学习中的损失函数通过比较2个分支上的特征相似度来得到,公式(1)用来计算2个向量之间的相似度,通过点积运算方法,以判断2个向量在投影空间上的距离远近。

图5 对比损失在投影空间上的理解

(1)

在经过编码器网络之后,许多对比学习方法都直接进行相似度的计算,但是MoCo v2、SimCLR提出在编码器网络之后加入非线性变换,原因是编码器得到的特征表会包含包括图像增强信息在内的底层通用的细节信息,增加一个非线性网络层可以聚集这些通用特征,形成高阶特征信息,有利于对比和计算2个特征图之间的相似度。和MoCo v2相同,使用的是infoNCE损失函数[32],公式(2)为损失函数计算公式,在迭代过程中,分子上代表正例之间的相似度越来越大,分母上代表负例之间的相似度会越来越低,达到训练模型的目的。

(2)

2.2 基于YOLOv5的下游目标检测网络

YOLOv5是目前精度较高,实际应用性最好的目标检测框架,也能较快地部署到不同的设备之中,因此下游检测任务的基本框架选用YOLOv5模型。整体框架包括输入端的Mosaic数据增强、自适应锚框计算和自适应图片缩放。骨干网络通常是一些性能优异的网络用于提取特征,neck网络用于进一步提升特征的多样性以及鲁棒性,包括了FPN网络和PAN网络。最后是head输出端,包含分类分支和位置回归分支,使用GIOU损失函数。YOLOv5对这4个模块不断加深和加宽,最后形成了4个版本YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。

图6 YOLOv5中骨干网络的残差模块

YOLOv5的骨干网络是CSPDarknet53结构,主要由卷积层、残差块、连接层组成。如图6所示为YOLOv5中的残差模块,CBL模块为卷积层-批量归一化层-Leaky Relu激活函数,用于提取特征信息。大部分对比学习中使用的用于提取特征信息的编码网络是ResNet50,ResNet50带有残差组件的神经网络可以促进网络结构的加深,提高对特征信息的提取。为了更方便地迁移对比学习中学习到的用于特征提取的编码器模型,需要对YOLOv5中的骨干网络进行更换。实际中将YOLOv5中的骨干网络更换为带有注意力机制的ResNet50网络,使用了对比学习训练同样的带有注意力机制的ResNet50编码器的权重作为骨干网络的权重,这一权重在训练时不进行梯度迭代,作为固定权重生成特征图。使用带有注意力机制的ResNet50网络为YOLOv5骨干网络的好处有2个,第一点是对ResNet50增加了注意力结构,增强了特征提取,第二点是可以直接用许多对比学习方法中的预训练权重参与到下游的检测任务中,方便了实验结果的比较、验证工作。更换之后的网络整体模型如图7所示。

图7 改进的YOLOv5整体模型结构

3 实验结果及分析

整体实验分为2个部分,第一部分为对比学习方法的改进,在遥感图像分类数据集上进行训练、验证、测试。第二部分为迁移对比学习中获得的编码器网络到下游的检测任务,在遥感图像目标检测数据集上进行训练、验证、测试。

3.1 无监督对比学习分类实验

无监督对比学习的实验环境:Intel(R) Xeon(R) Gold 5218 CPU,4个GeForce GTX 2080Ti(每个显卡11 GB显存),CUDA 11.1,Ubuntu 18.04操作系统,深度学习框架是Pytorch 1.9。无监督对比学习实验在AID数据集上进行,设置batch-size为64,MoCo中维护的字典队列的大小设置为2048,设置温度超参数T为0.07,学习率为0.015,计算分类损失之前的特征维度是128,使用多GPU分布式训练。

AID数据集共有10000余张遥感图像,30种分类,每种分类包含的图像数目都在300以上,由于AID Dataset包含的图像数目要远远小于ImageNet数据集,所以设置批量数和维护字典队列要尽量小一点,ImageNet虽然是全世界种类最全,图像数目最多的数据集,但是由于拍摄角度和图像分辨率的问题,直接使用在ImageNet上预训练的权重去对遥感图像分类效果不好,所以还是需要在ImageNet预训练权重的基础之上在AID Dataset上训练一个针对遥感图像分类的权重,以使该权重在之后的目标检测任务上有更好的表现。分类精度采用top1精度和top5精度。如表1所示,实验首先对比了使用MoCo v2在使用在ImageNet的预训练权重和在AID Dataset上进一步训练得到的权重进行分类实验,结果显示,在ImageNet预训练权重的基础之上在AID Dataset上进行微调200 epochs之后分类的精度更高,top1精度提高了1.838个百分点,top5精度提高了0.612个百分点,体现了当训练自己的数据集时,ImageNet上的预训练权重微调后,整个模型的表现会更好。

表1 ImageNet上的预训练权重在AID数据集上微调的结果

除此之外,对MoCo v2的输入端数据增强和编码器进行了改进,分别都在ImageNet预训练权重的基础上微调,实验结果如表2所示。结果显示,在MoCo v2的基础上,针对AID Dataset数据量比较小的情况,对2个对比的分支使用不同的数据增强方法比对2个分支使用随机数据增强表现要好一点,top1精度提高了0.277个百分点。通过对编码器使用局部的通道注意力改进之后,整个对比的学习模型在AID Dataset上分类精度达到了95.888%,较MoCo v2不改进之前的top1精度提高了2.712个百分点,top5精度提高了且额外引入的参数大小增加量可以微乎不计,证明了局部的注意力是轻量化的、有效的。

表2 MoCo v2和改进过后的MoCo v2在AID数据集上的结果对比

实验还选取了之前的几种对比学习方法进行比较,主要分为对比聚类方法和基于负例的对比方法2类,基于聚类的方法选择了Deep Cluster[33]和SwAV[34]这2种方法,基于负例的对比方法选择了MoCo v1、SimCLR v1,MoCo v2和改进过的MoCo v2。为了公平,除了改进过的MoCo v2这些模型的编码器都选用了ResNet50,都是用它们各自在ImageNet上的预训练权重在AID Dataset进行微调。

如表3所示,基于聚类的对比学习方法SwAV在AID Dataset上分类精度最高95.963%,在基于负例的方法中改进过的MoCo v2表现最好,top1精度达到了95.888%。虽然改进的MoCo v2的性能并没有SwAV的聚类方法高,但这并不意味着基于聚类的对比学习方法更适合下游的检测任务,原因是对于目标检测、语义分割等像素级的任务时基于负例的对比学习方法往往能够获得不同种类物体的关键信息,而这些信息能够在像素级的任务中起到很大的帮助作用。这一观点也在之后的目标检测任务的实验中得到了验证。

表3 不同方法的预训练权重在AID数据集上的分类精确度

3.2 遥感图像检测实验

这部分实验设备与对比学习实验的基本相同,只是使用了单张GeForce GTX 2080Ti显卡。

遥感图像检测实验使用的数据集为TGRS数据集,TGRS数据集共有大约21700张遥感图像,有13种遥感图像中常见的分类,例如airplane、ship、harbor。划分数据集时,整个数据集随机分配为训练集,测试集,比例为9:1,并且同样对训练集以9∶1的比例划分出训练验证集。每一次训练的迭代轮数为100。初始学习率为0.01,样本批量为16,输入图像的分辨率为640×640。目标检测任务采用YOLOv5框架,将YOLOv5中的骨干网络更换为对比学习中的编码器的结构,各种功能神经网络的骨干网络都是用来提取特征的,训练过程这一部分的权重是通用的,所以实验中可以将对比学习中的编码器网络作为YOLOv5的骨干网络,并在训练的过程中不对这部分模块进行参数的更新、迭代。这样做一方面可以直接使用无监督对比学习训练得到的性能比较好的权重,另一方面可以减少计算量,加快训练速度。

首先在骨干网络上进行了消融实验,设置了不同结构骨干网络的预训练权重,使用了从MoCo v2和使用改进的MoCo v2在AID数据集得到的预训练权重,也将骨干网络加入训练中的迭代更新与以上2个结果对比。结果如表4所示,分析结果可得,当骨干网络使用了由对比学习得到的权重并在遥感图像检测任务中冻结它们,可以提高检测精度,使用改进MoCo v2得到的权重的mAP@0.5为95.2%,比不使用预训练模型时提高了3.4个百分点,更严格的指标mAP@.5:.95提高了5.6个百分点,作为改进,比MoCo v2的预训练权重分别提高了1.2个百分点和2.8个百分点。证明了使用对比学习中编码器得到的预训练权重可以对目标检测任务的性能起到提高的作用,也证明了改进的MoCo v2中对于遥感图像的检测是有效果的。

表4 在TGRS数据集上的下游检测任务微调的结果

遥感图像检测实验还使用了其他一些之前不同方法的骨干网络的预训练权重作为固定值参与训练,和改进的MoCo v2一起比较。每一次训练都是100轮,用时12.6 h。结果如表5所示,虽然在对比学习的分类任务中基于聚类方法的SwAV表现最好,但是在目标检测中像素级别的分类和回归的要求更高,基于负例的对比学习在检测方面的任务迁移时表现更好。使用改进的MoCo v2预训练权重的mAP@0.5比SwAV的高了1.1个百分点,mAP@.5:.95提高了2.8个百分点,改进的模型取得了最好的表现,证明了改进MoCo v2模型的通用性和鲁棒性。

表5 不同方法在TGRS数据集上的检测结果对比

下一步进行了停车场类别上的检测,在TGRS- HRRSD数据集上使用的每种方法对于不同种类的检测精度都是停车场的检测精度最低。表6是各种方法在停车场上的表现,图8对比了使用改进的MoCo v2预训练权重与不使用预训练权重在停车场上的检测结果。图8(a)和图8(c)中使用了改进的MoCo v2的预训练权重检测效果会更好,证明了对比学习对于目标检测任务的帮助作用。

表6 不同方法检测停车场的结果对比

(a) (b) (c)图8 在TGRS-HRRSD数据集的停车场类别的目标检测结果对比

最后为了进一步验证改进模型的通用性,在RSOD遥感数据集[35]上进行目标检测实验。RSOD数据集包含4种分类,共976张卫星遥感图像。模型骨干网络的预训练权重设置为在AID数据集上微调过的MoCo v2和改进的MoCo v2相同,结果与骨干网络参与迭代做对比,迭代轮数都设置为100。结果如表7所示,使用微调过改进的MoCo v2的预训练权重取得了最好的表现,体现了模型的先进性。

表7 在RSOD数据集上的下游检测任务微调的结果

为了体现基于无监督对比学习的先进性,选择几种流行的或性能优越的目标检测方法在TGRS-HRRSD数据集上进行对比,对比结果如表8所示,基于改进的MoCo v2的YOLOv5取得了最好的表现。

表8 在TGRS数据集上的不同算法的目标检测精度

4 结束语

针对卫星遥感图像中存在的标注标准不统一,大小目标占图比例差距过大的问题,本文提出了一种改进的MoCo v2基于无监督对比学习方法,将对比学习中的提取特征的网络迁移到目标检测任务中。对于对比学习中数据增强做出了改进,并对编码器加入了局部的通道注意力机制,增强了提取特征,在一定程度上帮助模型识别和分类小目标和相似目标。迁移预训练权重时,将YOLOv5的骨干网络更换为改进的MoCo v2的编码器。无监督对比学习的方法不仅能够解决遥感图像中标签标注时的标准不统一的问题,而且也能够提高对遥感图像检测的精度。实验结果表明在TGRS数据集上的mAP@.5:.95最高达到了67.8%,利用无监督对比学习方法得到的权重可以提高下游检测任务的表现。同时使用YOLOv5作为目标检测的框架,保持了检测精度、速度的优点,与其他的常用检测模型相比,该网络具有良好的通用性,当对比学习中的编码器部分做出了改进,很方便地能够把相同的改动应用到YOLOv5的骨干网络,迁移的训练方法也能够加快整体网络训练的速度。在未来,也可以继续对无监督对比学习改进,一方面可以更加正确地做数据增强,构造有难度的正例,增强模型的表示学习能力,另一方面针对下游检测、分割任务的像素级别的任务时,可以提高像素级别的细节学习能力。

猜你喜欢
编码器权重分类
融合CNN和Transformer编码器的变声语音鉴别与还原
权重望寡:如何化解低地位领导的补偿性辱虐管理行为?*
分类算一算
转炉系统常用编码器选型及调试
权重常思“浮名轻”
舞台机械技术与设备系列谈(二)
——编码器
为党督政勤履职 代民行权重担当
权重涨个股跌 持有白马蓝筹
教你一招:数的分类
说说分类那些事