原文标题:YOLO-G: Improved YOLO for cross-domain object detection
中文标题:YOLO -G :用于跨域目标检测的改进YOLO
论文地址: 百度网盘 请输入提取码 提取码:z8h7
代码地址: GitHub - airy975924806/yolo-G
1 、 Abstract
跨域目标检测是智能检测模型研究中的一个关键问题。与许多基于双阶段检测模型的改进算法不同,我们尝试了另一种方法。本文引入了一种简单高效的单阶段模型,综合考虑了推理效率和检测精度,扩大了承担跨域目标检测问题的范围。我们将这种基于梯度反转层的模型命名为YOLO-G,大大提高了跨域场景下的目标检测精度。具体来说,我们在主干之后添加了一个特征对齐分支,其中附加了梯度反转层和分类器。计算量只增加了一点点,性能得到了更高的提高。通过若干实验表明,与大多数最先进的(SOTA)算法相比,所提出的模型实现了更好的平均精度(mAP)。此外,还对4个部件进行了消融实验,以验证模型的可靠性。
2 、Introduction
2.1 、目标检测面临的挑战
深度卷积模型显著提高了目标检测的精度。然而,这些模型受到训练数据的严重约束。跨域目标检测要求模型在完全标注的训练集中完成训练过程,然后应用于来自不同域的验证。由于这样的领域差距,可能会出现糟糕的结果甚至退化。在现实世界中,这样的差异,比如照明条件、天气条件、视角、设备差异等是很常见的。此外,提供无限的训练数据是不可能的。也就是说,收集更多的数据并不是提高模型能力和增强模型鲁棒性的可靠方法。
2.2 、针对跨域目标检测的方法
2.2.1 、无监督方法
针对有限标记训练数据下的跨域目标检测问题,DAF首次关注到这一问题,设计了一种基于Faster R-CNN的改进双阶段检测模型,采用无监督训练的方式提升其在变化天气条件下的检测能力。随后,有人采用了添加了指导分支、融合生成对抗模型等方法,获得了更好的能力。
2.2.2 、半监督方法
也有人采用了半监督的方法,如调整训练策略,增加知识蒸馏机制,或者引入迭代训练方式,这些都是为了逐步提高模型的跨域检测能力。然而这些方法大大增加了计算预算,延长了训练时间。
2.2.3 、基于 YOLO 的跨域检测
与双阶段检测模型相比,YOLO在速度、精度、应用等方面更具优势。目前基于YOLO的跨域检测模型正在迅速发展。聚焦跨域目标检测问题,本文以YOLOv5-L模型为基线;特别是,我们采用了双阶段模型中广泛使用的特征对齐思想,并添加无监督对抗训练分支来提高模型的自适应能力;通过采用这样一个简单而高效的分支,该模型获得了全新的能力。具体来说,为了实现自适应特征对齐并减少不同图像之间的域差距,我们将对抗性训练机制引入模型参数更新过程。为了减轻负担,我们使用基于全卷积网络和全局平均最大池化的朴素三层分类器,并进行梯度反向操作。与密集线性层相比,YOLO-G只是稍微增加了计算量,但精度大大提高。为了在跨域目标检测任务中验证所提出的模型,本文在6个基准集下进行了大量的实验;结果表明,YOLO-G比一系列半监督和双阶段SOTA模型具有更好的检测精度。
2.3 、本文贡献
1)对于跨域目标检测任务,我们通过综合实验验证了YOLO模型在跨域目标检测任务中的可用性。本文消融实验表明,在仅源条件下,YOLOV5-L模型可以与许多SOTA算法进行比较。
2)YOLO-G模型是基于YOLOV5-L设计的。在基线模型中加入了一个简洁高效的无监督对抗训练分支。扩大了跨领域模型设计的范围,改变了以往仅限于双阶段模型的情况。
3)我们进行了定性和定量实验,并在6个跨域基准测试中比较了10种算法。为了充分说明模型的可信度,还进行了2个方面4和个因素的消融实验。实验结果表明,该模型确实取得了较好的检测效果。
3 、Related work
3.1 、Object detection
目标检测模型作为计算机视觉研究的重要内容,近年来在深度学习技术的支持下得到了迅速发展。其中,单阶段检测模型以 YOLO 和 SSD 为代表。特别是YOLO模型已经逐渐发展成为一个推理速度快、精度准确、部署简单的丰富系列。以Mask R-CNN和Fast R-CNN为代表的双阶段检测模型在学术研究中占有重要地位,因为模型采用了分离ROI区域生成和分类判别的过程,使得模型具有较高的可塑性。由于采用了更精细的ROI搜索策略,两阶段模型在相同条件下具有更高的检测精度。 目前,随着transformer的应用,基于transformer的更大参数规模的目标检测模型大放异彩,显示出良好的发展前景。在实际部署场景中,YOLO系列模型具有更好的兼容性。因此,综合考虑任务需求、应用场景和推理速度,本文选择YOLOv5-L模型作为基准,并对其进行改进,以适应跨域目标检测任务。
3.2 、Cross-domain
DAF创造性地利用双阶段检测模型解决了跨域目标检测问题,提出了一种基于全局特征对齐和目标特征对齐的处理方法。受其启发,后续的大多数研究都基于双阶段检测模型。少数研究,SWDA提出使用增强的局部特征和全局特征作为辅助特征对齐,GPA设计了基于类特征对齐的检测框架,ATF和PA-ATF尝试使用多分支监督训练来提高跨域目标检测能力。随着相关研究内容的不断深入,已经有了基于单阶段检测模型的尝试,如 EPMDA 将FCOS 模块集成到YOLO主干中,以提高其在跨域图像中提取目标特征的能力,SSDA-YOLO 在基于YOLO的跨域目标检测模型中加入 CUT 和知识蒸馏机制,也是基于YOLO。本文以单阶段检测模型为基准,探索跨域目标检测任务。通过本文的实验研究表明,借助有限计算量的功能分支,YOLO-G提高了YOLO在跨域目标检测任务中的能力。并且在某些任务中,结果远高于一些双阶段检测模型。
3.3 、Cross-domain detection
跨域检测任务在发展过程中演化出全监督、半监督、无监督等多种路径。
1 **)**全监督方法是指构建目标领域的全标注数据;该方法通过收集和标注数据增强,达到提高泛化能力的目的,然而这会带来巨大的劳动力。在实际应用场景中,无法收集所有可能场景的数据,因此这种方法并不可取。
2 **)**半监督方法提出使用部分标记的数据来指导训练过程;他们主要将训练过程分为多个阶段。首先,训练具有完全标记的源域数据的初始模型,然后通过预训练的模型创建目标域数据上的伪标签。设置置信度阈值后,迭代地将检测到的充分准备的目标域数据添加到训练集中。逐步引导模型提高泛化能力,但该方法受到初始模型检测能力的限制。很多情况下,初始模型很难提供足够有效的伪标签,导致迭代过程难以继续下去。
3 **)**无监督方法利用深度学习模型本身强大的自学习能力,通过设置简单的边界条件甚至提供属于目标域的未标记数据,模型可以独立学习识别目标的关键特征,在实现上更加简洁高效。
受这些原理的启发,本文在YOLOV5-L模型的基础上,通过增加无监督特征对齐函数分支,提出了一种简单、准确的跨域目标检测模型。
4 、Method
4.1 、 YOLOv5
首先简要介绍YOLOV5模型,该模型主要由3部分组成。主干负责特征提取,由C3、CSP和SPPF组成,通过多种串、并联形式的残差结构,提取输入图像的特征。颈部主要完成特征处理和融合,利用FPN和CSP实现自底向上和自顶向下的特征融合。头部模块分为3层,分别完成小、中、大尺度目标的检测任务。与双阶段模型Faster-RCNN(首先通过RPN提供ROI,然后进行分类检测)相比,YOLO模型直接检测feature map上的ROI区域,在处理效率上更加突出。
4.2 、 YOLO-G
如图1所示,YOLO-G在主干后增加了功能分支。对抗性训练用于约束来自不同场景的目标图像,以实现骨干输出层的特征对齐。通过这样做,消除了场景、天气、视角等因素导致的特征不一致问题,最终提高了目标的跨域检测精度。
假设S表示源域,T为目标域,Xs为从源域采集的一个数据集,Xs(c,b)为单张图像,c为目标类别,b为边界框坐标,其中包含4个标量。Xt是来自目标域的数据集,没有类别和坐标的标注信息。跨域目标检测任务是从源域学习一个检测模型f,然后直接用它进行推理,表示f(Xt)→ct、bt。
不同数据集之间的领域差距是产生跨领域问题的内在原因。H-divergence用于定量评价这种差异,它对于衡量同一分类器中不同数据的判别误差至关重要,其公式如下:
其中,d H 表示计算出的H散度,h为共享分类器,x m 为骨干提取的特征向量,err s 、e rr t表示分类器在各自域分类错误的情况。本文的分类器由2个卷积层和1个全局平均池化层组成,分类器只区分特征向量的域类别,即h(xm)的值只会是0或者1。在训练过程中,源域和目标域的标签分别设置为0,1。
简而言之,主要工作是如何降低数据集之间的H散度。由式(1)可知,x m是影响H散度的关键因素。这意味着H散度越大,特征的差异越大,反之亦然。因此,这解释了模型无法提取一致的特征,导致跨域目标检测的性能显著下降。为了减少H-divergence,可以采用数据级对齐,如数据增强技术,通过复制、粘贴、GAN生成等方式生成假的目标域图像,丰富训练集。第二种是像素级对齐,例如跨天气、光照场景中的图像样式转移;多种风格迁移模型将源域转换为目标域,减少了数据分布的差异。第三种是特征级对齐,从数据分布的角度来看,特征是对真实数据真实分布的低维描述。因此,本文主要探索在特征层面实现跨域图像对齐的方法。
4.3 、Gradient reverse
梯度反转是首次在跨域场景分类任务中提出的一种无监督训练方法,它实际上是在训练一个领域判别器,目的是让判别器无法准确地区分输入数据来自源领域还是目标领域。其基本思想是通过最大化领域判别器的损失来最小化源领域和目标领域之间的分布差异dH,从而提高模型在目标领域的泛化能力。流程描述如下:
其中,fb是目标检测模型的特征提取模块,即YOLO-G的骨干。公式其实在描述一个最小化-最大化(min-max)问题,也就是博弈论问题。在这个问题中,有两个参与者:一个是特征提取器fbfb,另一个是分类器h。两者的目标是相反的:
1 **)**特征提取器 fb的目标是学习一个特征表示,使得源域 S 和目标域 T 的数据在特征空间中尽可能相似,即最小化它们之间的分布差异 dH(S,T)。为了实现这一点,特征提取器fb需要生成能够误导分类器h的特征,使得分类器h难以区分源域和目标域的数据。
2 ) 分类器 h 的目标是正确分类输入数据是来自源域还是目标域。因此它试图最小化经过提取后的特征向量 x m 在源域和目标域上的错误率之和,即min ( err s (h( x m ))+ err t (h( x m )))
这实际上是一个对抗训练过程,其中特征提取器试图学习一个特征空间,使得分类器难以区分源域和目标域的数据,从而减少两个领域之间的分布差异。这个过程通常涉及以下步骤:
a、使用源域数据训练特征提取器和分类器。
b、使用目标域数据计算特征提取器的梯度,并反转这些梯度。
c、使用反转的梯度更新特征提取器,鼓励它学习对源域和目标域都有用的通用特征。
梯度反转在正向传播和反向传播期间设置相反的特征向量权重。前向传播训练分类器h时,引导分类器减少分类误差,后向传播更新特征提取器fb参数时,使用相反的权因子。以交互的方式引导主干更新航向,使分类器的分类误差最大化。这听起来可能有些违反直觉,因为我们通常希望模型能够减少误差;然而在领域自适应的背景下,我们希望特征提取器能够学习到对源域和目标域都适用的特征表示,即使这会导致分类器在区分两个领域时出现错误。这种交互式训练方法实际上是一个对抗过程,其中特征提取器试图生成令分类器难以区分的特征,而分类器则试图正确分类这些特征,两者形成一个对抗。通过这种方式,我们鼓励特征提取器学习到更加泛化的特征表示,这些特征表示对源域和目标域都是鲁棒的。
4.4 、 U pdate synchronously
在训练过程中,目标检测模型(负责检测图像中的目标)和领域分类模型(负责区分数据来自源域还是目标域)同步更新。目标检测损失函数Ldet由目标检测损失Lobj、分类损失Lclass和边界框回归损失Lbox三部分组成。特征对齐分支的二元分类损失函数Ldc使用二元交叉熵(Binary Cross-Entropy, BCE)损失来计算:
其中,dk是训练批次中第 k 个样本的领域标签。如果样本来自源域,dk 可能是1;如果来自目标域,dk 可能是0。pk(i,j) 是域分类器对输入样本的分类概率。由于对抗性训练方法,在其前面添加了负号。这个损失函数的目的是训练领域分类器,使其难以区分来自源域和目标域的数据。
综上所述,本文YOLO-G的总损失函数如下所示:
其中,λ1、λ2、λ3分别设置为1.0、0.5和0.05,α为特征对齐分支的损失权重,通过消融实验,本文将α设置为1.0。
5 、Experiment
5.1 、Datasets
1 **)**Cityscapes和Foggy-Cityscapes:两个数据集包含相同数量的图像样本,其中2975张训练图像和500张验证图像,唯一的区别是后者是通过渲染引擎添加雾后的数据集 。为了验证YOLO-G在跨域目标检测方面的优异性能,选择最大密集度0.02。
2 **)**SIM 10K: 通过GTA5渲染引擎合成的车辆驾驶场景数据集,包含各种街道场景中的10,000个车辆目标。
3 **)**KITTI:自动驾驶数据集包含 7481 个详细注释的各种目标。
4 **)**BDD 100K:大规模自动驾驶数据集,包含多种典型城市场景,本文选择白天条件下的数据进行实验,包括36278张训练图像和5258张验证图像。
5 **)**PASCAL VOC:大规模目标检测数据集,包含 20 类详细标记图像,我们使用 VOC 2007 和 VOC 2012 进行实验,总共 16551 张图像。
6 **)**Clipart and Watercolor:就像VOC一样,两个数据集都包含20种类型的目标,分别包含1000和2000个图像样本。
如下表1所示,我们总结了所有基准测试的一些特征。显然所有数据集都具有彼此独特的领域,这就是它们被广泛用于跨领域目标检测研究的原因。
5.2 、Implementation details
考虑到训练数据集的大小和类别类型,本文选择YOLOV5-L作为基线,其中输入图像尺寸统一为640×640,训练epoch为200,预热期为3 epoch, 其他参数与SSDA-YOLO一致。采用基于 mosaic 的数据增强策略,提高模型对小目标的检测精度。我们量化了消融实验中 mosaic 和 SPPF 的影响。其余未指定的参数设置与原始YOLO模型一致。
5.3 、Evaluation metrics
以实验的平均精度mAP作为评价指标,IOU指定为0.5。在K→C, S→C实验中,由于只检测到汽车目标,所以以AP作为评价指标,IOU阈值也设为0.5。
5.4 、Experimental platform
实验以Ubuntu 18.04 LTS操作系统、16GB运行内存、1块24GB内存的Nividia RTX 3090 GPU为硬件平台,使用PyTorch深度学习框架、Pycharm开发平台、11.7 Cuda、Cudnn 8.0加速环境。
6 、Result
6.1 、Detection from Cityscapes to Foggy Cityscapes
我们将Cityscapes设置为源域,将Foggy Cityscapes设置为目标域。在这样的设置中测试不同的跨域模型是否可以有效地消除天气条件变化时浓雾带来的影响。当模型提取一致的特征时,这些特征足够准确,可以识别雾遮挡条件下的物体,这是有意义的。本文将一些最先进的模型与YOLO-G进行对比,实验结果如下表2所示。
由表2可以看出,与基于双阶段检测模型的方法相比,YOLO-G的检测精度达到了47.8 mAP。此外,即使是基线模型也能得到39.9 mAP,远远高于大多数半监督跨域检测模型。得益于YOLO模型所使用的丰富的数据增强和SPPF,我们可以获得与DSS等SOTA相同的结果,但DSS需要更复杂的模型结构和训练策略。对于这些技巧的作用,我们在消融实验部分进行了详细的实验和分析。虽然YOLO-G模型和DSS方法都达到了47.8 mAP,但不同的是YOLO-G只采用无监督自学习模式。也就是说,我们不需要在模型结构和训练策略上有实质性的改进,也不需要分阶段训练。总之,YOLO-G在5个类别中得分最高,表现突出,检测结果如下图2所示。
6.2 、Detection from a different view
不同的图像采集设备和不同的采集角度会导致不同的目标成像结果,这是一个非常常见的目标跨域检测问题。为了检验这种条件下YOLO-G检测的精度,本文使用不同视角的SIM 10k、Cityscapes和KITTI数据集进行交叉实验,由于SIM 10k中只有一个汽车目标,所以将AP作为这部分实验的评价指标,相关结果如下表3所示:
由表可知,YOLO-G在处理多视图、多方向跨域场景方面的优势是显而易见的。通过指导特征对齐分支,YOLO-G能更精确地提取目标特征,确保在任何视角、方向和尺度下都能采样到足够多的目标特征信息,实现有效检测。YOLO-G实现了64.2和62.8的mAP,比其他两阶段模型至少好11.6 mAP。然而在S2C,在处理交叉角度和交叉虚拟现实的双重条件下,不仅存在视角差异,而且存在场景差异,YOLO-G仅比基线模型提高0.2 mAP。
6.3 、Detection from real to virtual
在很多情况下,虚拟场景与真实环境之间存在较大的差异,这很容易导致与模型的较大偏差。结合S→C的实验结果,本节测试了YOLO-G处理虚拟和真实场景条件的精度。实验将VOC数据集作为源域,Clipart和Watercolor作为目标域,Watercolor有6种与VOC数据集一致的目标。
从上表4的对比可以看出,与双阶段检测模型相比,在20个品类的跨域检测场景中,YOLO-G采用自主特征对齐的方法,达到了44.3 mAP。值得注意的是,SSDA-YOLO也是基于YOLOV5-L的跨域检测模型,它采用了半监督、EMA、知识蒸馏、一致性损失等复杂的训练策略。在半监督条件下,SSDA-YOLO获得了更高的mAP,但我们的YOLO-G只配备了GRL,与TIA相比,获得了略高的mAP。
从上表5可以看出,基于特征对齐约束的YOLO-G模型在虚实交叉目标检测任务中表现更为突出。
6.4 、Detection from small dataset to large-scale dataset
在本场景中,实验设置以Cityscape为源域,以大规模自动驾驶数据集BDD 100k的验证集为目标域。对该模型在小样本数据集和大规模数据集的跨域检测中的性能进行了充分的测试。由于BDD100k中列车目标较少,因此实验过程中去掉列车这一类别,实验结果见表6。
小样本是深度学习模型面临的重要挑战,避免过拟合问题是核心内容,对于小样本数据向大规模应用场景的跨域转换,YOLO-G给出了很好的解决方案,表6显示,在无监督学习条件下,GRL与YOLO的结合可以提高模型的泛化能力。它的mAP达到了34.6,但是与BDD100k大规模训练集得到的53.4 mAP相比,YOLO-G模型还有很大的提升空间。
7 、Ablation experiments
通过以上实验,充分显示了YOLO-G模型在跨域目标检测中的有效性。YOLO-G基于YOLOV5,它具有一系列明显不同于两阶段检测模型的技巧,如快速空间金字塔池(SPPF),马赛克数据增强。正如前面指出的,这两种技巧都允许基线获得出色的性能。同时预训练权值和权重系数的分布也会影响训练结果。为了深入研究每个技巧对YOLO-G的影响,我们进行了全方位的实验来验证模型的真实性。
7.1 、The impact of training tricks
本节主要讨论YOLO模型使用的两种技巧,SPPF和马赛克。我们将没有SPPF和马赛克作为普通(Vanilla)模型,然后在C→F场景中验证这两种技巧的影响,相关实验结果如表7所示。
从表7中可以看出,在没有任何技巧的情况下,普通模型的训练效果并不理想,可以说其性能与DAF差不多。随着技巧的加入,模型的检测精度逐渐提高,SPPF将mAP提高了1.5mAP到31mAP。马赛克将mAP增加1.8mAP到31.3mAP。最后在两种技巧都使用的情况下,source only的YOLOV5-L模型达到34.2mAP,这远远超过没有这些技巧的Faster RCNN模型。通过上述实验,使用具有各种技巧辅助的YOLOV5-L模型作为基线是合适且有效的,这有利于提高模型在source only情况下最终的检测精度。
7.2 、The impact of pretrained-weight
之前提到,通过预训练权重,模型已经掌握了检测对象的一些先验知识。在对比不同模型时,不同骨干模型所加载的预训练权值并不一致,因此对结果有一定的影响。为此,本部分在没有预训练权重支持的情况下进行对比实验,检验YOLO-G模型的自学习能力。为了加快模型训练过程,本组实验将VOC2012作为源域,Clipart作为目标域,不加载预训练权值,其余参数设置与前文一致,分别进行source only、YOLO-G和target only对比实验,相关结果如表8所示。
预训练权值是在非常大规模的数据集上进行充分训练的结果,借助预训练权值,模型可以在初始阶段快速提取目标的主要特征,加快模型的收敛速度。 从表8可以看出,在没有预训练权值的情况下,YOLO-G可以快速准确地学习到跨域场景下目标的主要特征。 训练过程的损失曲线如图3所示。
7.3 、The impact of weight coefficients
YOLO-G模型的训练损失函数由两部分组成,为了检验特征对齐损失对模型整体检测精度的影响,在使用预训练权值的条件下,进行了VOC2012到Clipart的跨域目标检测实验,α分别设为0.1、0.5、1.0、1.5,和2.0为分组实验,各类别检测结果如表9所示。
对比实验表明,当α = 1.0时,模型具有较好的检测精度。训练过程中的map曲线如图4所示。从左图可以看出,在权重为1时,检测精度可以更快、更一致地达到更高的水平。因此所有实验均采用α = 1.0的约束权值。
8、Discuss an conclusion
1 **)**YOLO-G在跨域目标检测方面的能力大大增强。但也存在一个严重的问题,即YOLO-G在考虑小物体时表现不佳。YOLO是一个基于锚点的模型,因此要确定一个适合所有目标的锚点是非常困难的,由于不同目标的大小和形状各异,为所有目标选择一个"最适合"的锚点是一个挑战。有些目标可能与预定义的锚点形状匹配得很好,而其他目标可能匹配得不好。特别是当数据集中的小目标较少时,如果没有焦损失函数的帮助,模型可能会偏向于检测那些较大的、容易被检测到的目标。焦点损失(focal loss)是一种损失函数,它专门为解决类别不平衡问题而设计,特别是在目标检测任务中;它通过减少对容易分类样本的关注,增加对难以分类样本的关注,来鼓励模型关注那些难以检测的目标(如小目标);这有助于模型更好地学习检测所有大小的目标。总之,在实际应用中还有很多需要进一步探索的地方。
2 **)**为了缓解跨域目标检测问题,本文分析了主流算法模型的特点,在YOLOV5的基础上提出了一种简单高效的YOLO-G模型。通过引入特征对齐分支和对抗训练,提高了主干模型在提取目标特征方面的一致性,增强了模型的泛化性,实现了更好的跨域检测能力。我们还组织了9组跨域对比实验,本文提出的YOLO-G模型达到了超越一系列SOTA模型的精度,表明其在跨域目标检测任务中具有更好的应用前景。