论文 SOD-MTGAN: Small Object Detection via Multi-Task Generative Adversarial Network | SpringerLink
摘要
目标检测是计算机视觉中的一个基础和重要问题。尽管在大规模检测基准(例如COCO数据集)中,在大中型对象上取得了令人印象深刻的结果,但在小型对象上的性能远不能令人满意。原因是小物体缺乏足够的细节外观信息,这些信息可以将其与背景或类似物体区分开来。为了解决小目标检测问题,我们提出了端到端多任务生成对抗网络(MTGAN)。在MTGAN中,生成器是一个超分辨率网络,它可以将小的模糊图像上采样为精细图像,并恢复细节信息,以实现更准确的检测。鉴别器是一个多任务网络,它用真实/虚假分数、对象类别分数和边界框回归偏移量来描述每个超分辨率图像补丁。此外,为了使生成器恢复更多的细节以便于检测,鉴别器中的分类和回归损失在训练过程中反向传播到生成器中。在具有挑战性的COCO数据集上进行的大量实验证明了该方法在从模糊的小图像中恢复清晰的超分辨图像方面的有效性,并表明该方法的检测性能,特别是对于小尺寸物体的检测性能,比最先进的方法有所提高。
1 介绍
目标检测是计算机视觉中的一个基础和重要问题。它通常是实现许多现实应用的关键一步,包括图像检索、智能监控、自动驾驶等。在过去的几十年里,人们对目标检测进行了广泛的研究,并随着深度卷积神经网络的出现取得了巨大的进展。目前,基于cnn的目标检测主要有两种框架:(i)单阶段框架,如YOLO[27]和SSD[24],它以密集的方式应用对象分类器和回归器,不进行对象修剪;(ii)两阶段框架,如Faster-RCNN[29]、RFCN[3]和FPN[22],提取目标提案,然后对每个提案进行分类和回归。
如图1(a)和(b)所示,在大规模检测基准测试中(例如COCO数据集),两种框架的对象检测器在大中型对象上取得了令人印象深刻的结果。然而,在小尺寸对象上的性能远不能令人满意,如图1(c)所示。从比较中,我们可以看到,小型和大型/中型对象的性能之间存在很大差距。小目标检测(SOD)的主要困难是小目标缺乏与背景(或相似类别)区分并实现更好定位所需的外观信息。为了在这些小对象上获得更好的检测性能,SSD利用中间转换特征映射来表示小对象。然而,浅细粒度的转换特征映射的判别性较差,导致许多假阳性结果。另一方面,FPN使用特征金字塔来表示不同尺度的对象,其中对具有强语义信息的低分辨率特征图进行上采样,并与具有弱语义信息的高分辨率特征图融合。然而,上采样可能会产生伪影,从而降低检测性能。
为了解决超SOD问题,我们提出了一个基于经典生成对抗网络(GAN)框架的统一的端到端卷积神经网络,该网络可以集成到任何现有的检测器中。根据开创性GAN工作的结构,我们的模型中有两个子网:生成器网络和鉴别器网络。在生成器中,引入超分辨率网络(SRN)对小目标图像进行上采样。与直接用双线性插值调整图像大小相比,SRN可以在较大的缩放因子下生成更高质量的图像和更少的伪影(在我们当前的实现中是4倍)。在鉴别器中,我们引入了分类分支和回归分支来完成目标检测任务。真实图像和生成的超分辨率图像通过鉴别器网络共同区分是真实图像还是生成的高分辨率图像,确定其所属的类别,并细化预测的边界框。更重要的是,分类和回归损失进一步反向传播到生成器,这鼓励生成器生成更高质量的图像,从而更容易分类和更好的定位。
贡献 本文的主要贡献有以下三点
(1)提出了一种新的统一的端到端多任务生成对抗网络(MTGAN)用于小目标检测,该网络可以与任何现有的检测器合并。
(2)在MTGAN中,利用生成器网络生成超分辨率图像,同时引入多任务判别器网络来区分真假高分辨率图像、预测目标类别、细化边界框。更重要的是,分类和回归损失被反向传播,进一步引导生成器网络产生超分辨率图像,从而更容易分类和更好的定位。
(3)最后,我们展示了MTGAN在目标检测管道中的有效性,其中检测性能比几个最先进的基线检测器提高了很多,主要是针对小目标。
2相关工作
2.1一般目标检测
作为一个经典的话题,在过去的十年里,许多目标检测系统被提出。传统的目标检测方法是基于手工特征和可变形零件模型(DPM)。由于手工制作的特征的有限表示,传统的目标检测器注册低于标准的性能,特别是在小尺寸的对象。
近年来,随着包括cnn在内的深度神经网络的兴起,在图像分类和场景识别方面取得了优异的表现。同样,由于cnn从大规模图像数据集中学习了更丰富的外观和空间表示,物体检测的性能也得到了显著提升。
目前,基于cnn的目标检测器可以简单地分为两种框架:两阶段框架和一阶段框架。基于区域的CNN (region-based CNN, RCNN)可以认为是两阶段目标检测框架的里程碑,它已经达到了最先进的检测性能。在RCNN中,每个区域提议都是单独处理的,这非常耗时。之后,在Fast-RCNN中引入了ROI-Pooling,可以在提案提取和分类步骤之间共享计算,从而大大提高了效率。通过端到端学习这两个阶段,Faster RCNN在检测性能和计算效率方面都有了进一步的提高。然而,在COCO基准测试中,该框架的所有检测器在小对象上的性能都不理想,因为它们在提案提取和分类步骤之间没有任何显式的共享计算,从而大大提高了效率。通过端到端学习这两个阶段,Faster RCNN在检测性能和计算效率方面都有了进一步的提高。然而,该框架的所有检测器在COCO基准测试中的小对象上的性能都不令人满意,因为它们没有任何显式的策略来处理这些对象。
为了更好地检测小物体,FPN通过自上而下的路径和横向连接将低分辨率、语义强的特征与高分辨率、语义弱的特征结合起来,其中学习到的转换特征图有望包含针对小物体的强语义信息。正因为如此,FPN在检测小物体的任务上表现出比更快的RCNN更好的性能。然而,FPN中的低分辨率特征映射被上采样以创建特征金字塔,这一过程往往会在特征中引入伪影,从而降低检测性能。与FPN相比,我们提出的方法利用超分辨率网络从低分辨率图像中生成高分辨率图像(放大4倍),在提案提取和分类步骤之间共享计算,从而大大提高了效率。通过端到端学习这两个阶段,Faster RCNN在检测性能和计算效率方面都有了进一步的提高。然而,该框架的所有检测器在COCO基准测试中的小对象上的性能都不令人满意,因为它们没有任何显式的策略来处理这些对象。为了更好地检测小物体,FPN通过自上而下的路径和横向连接将低分辨率、语义强的特征与高分辨率、语义弱的特征结合起来,其中学习到的转换特征图有望包含针对小物体的强语义信息。正因为如此,FPN在检测小物体的任务上表现出比更快的RCNN更好的性能。然而,FPN中的低分辨率特征映射被上采样以创建特征金字塔,这一过程往往会在特征中引入伪影,从而降低检测性能。与FPN相比,我们提出的方法利用超分辨率网络从低分辨率图像生成高分辨率(4倍上尺度)的图像,从而避免了FPN中上采样算子带来的伪影问题。
在单阶段框架中,检测器直接将锚点分类到特定的类中,并以密集的方式回归边界框。例如,在SSD(一种典型的单级检测器)中,使用高分辨率的低级中间转换特征映射来检测小物体。然而,这些卷积特征通常只捕获基本的视觉模式,缺乏强语义信息,这可能导致许多假阳性结果。与类ssd检测器相比,我们的鉴别器使用深度强语义特征来更好地表示小对象,从而降低了误报率。
2.2生成对抗网络
在开创性的工作中,引入了生成对抗网络(GAN)来从随机噪声输入中生成逼真的图像。GAN在图像生成、图像编辑、表示学习、图像超分辨率和风格迁移等方面取得了令人瞩目的成果。最近,GAN已经成功地应用于超分辨率(SRGAN),并取得了令人印象深刻和有希望的结果。与自然图像的超分辨率相比,例如COCO基准中特定物体的图像充满了多样性(例如模糊,姿势和照明),因此使得这些图像的超分辨率处理更具挑战性。事实上,SRGAN生成的超分辨率图像存在模糊问题,特别是对于低分辨率的小目标,这不利于训练准确的目标分类器。为了解决这个问题,我们在生成器的损失函数中引入了新的损失,即在我们提出的MTGAN中,分类和回归损失被反向传播到生成器网络中,这进一步指导生成器重建更精细的超分辨图像,从而更容易分类和更好地定位。
图2
图2所示。本文提出的管道小目标检测系统(SOD-MTGAN)。(A)图像被输入网络。(B)基线检测器可以是任何类型的检测器(如Faster RCNN、FPN或SSD)。它用于从输入图像中裁剪正(即对象)和负(即背景)示例,用于训练生成器和鉴别器网络,或生成感兴趣区域(roi)用于测试。(C)正反例(或roi)是由现成的检测器生成的。(D)生成子网络重建低分辨率输入图像的超分辨率版本(4倍放大)。(D)鉴别器网络从生成的高分辨率图像中区分真实图像,预测目标类别,同时回归目标位置。鉴别器网络可以使用AlexNet、VGGNet或resnet等任何典型架构作为骨干网。我们在实验中使用ResNet-50或ResNet-101。
3 MTGAN用于小目标检测
在本节中,我们将详细介绍所提出的方法。首先,我们简要描述了经典GAN网络,为描述我们提出的用于小目标检测的多任务GAN (MTGAN)奠定了基础。然后,描述我们的框架的整个体系结构(参见图2的插图)。最后,我们给出了MTGAN网络的每个部分,并分别定义了用于训练生成器和鉴别器的损失函数。
3.1 GAN
GAN通过对抗过程同时学习生成器网络G和鉴别器网络D。训练过程交替优化生成器和判别器,两者相互竞争。训练生成器G生成样本欺骗鉴别器D,训练D区分G生成的真假图像。需要优化的GAN损失定义如下:
式中z为随机噪声,x为真实数据,θ、ω分别为D、G的参数。这里,G试图最小化目标函数,而D试图最大化目标函数,如式(2)所示:
表1 产生器和鉴别器网络的结构。“conv”和“layer*”表示卷积层,“x5”表示有5个卷积层的残差块,“de-conv”表示上采样卷积层,“2x”表示上采样倍数为2,“fc”表示全连接层。请注意,我们只在ResNet-50上发布了鉴别器网络的架构。
我们设计了一个生成器网络Gw,它与鉴别器网络Dθ交替优化,寻求共同解决小目标检测的超分辨率、目标分类和边界盒回归问题。因此,总损失定义如下:
其中,ILR和IHR分别表示低分辨率和高分辨率图像。U为类标号,v为基真边界盒回归目标。与原有的GAN相比,我们的生成器的输入是低分辨率图像,而不是随机噪声。我们在鉴别器中有多个任务,将生成的超分辨率图像与真实的高分辨率图像区分开来,对目标类别进行分类,并共同回归目标位置。具体来说,等式(3)背后的一般思想是,它允许人们训练一个生成器G,其目标是欺骗一个可微鉴别器D,该鉴别器被训练以区分超分辨率图像和真正的高分辨率图像。此外,我们的方法(SOD-MTGAN)扩展了经典的SRGAN,增加了两个并行分支来分类类别并回归候选ROI图像的边界框。此外,鉴别器中的分类损失和回归损失被反向传播到生成器中,进一步促进生成器生成超分辨图像,该图像也适合于更容易分类和更好定位。在下一小节中,我们详细介绍了MTGAN的体系结构和训练损失。
3.2网络结构
我们的生成器以低分辨率图像作为输入,而不是随机噪声,并输出超分辨率图像。在目标检测方面,该鉴别器将生成的超分辨率图像与真实的高分辨率图像区分开来,对目标类别进行分类,并共同进行位置回归。
生成器网络(Gw) 如表1和图2所示,我们采用了深度CNN架构,该架构在中显示了图像去模糊和中人脸检测的有效性。与不同,我们的生成器包括上采样层(即表1中的de-conv)。网络中有两个上采样的分数阶conv层、三个conv层和五个残差块。特别是,在这些残差块中,我们使用两个具有3×3核和64个特征图的conv层,然后是批量归一化层和参数ReLU作为激活函数。每个去卷积层由学习的核组成,它将低分辨率图像上采样为2×超分辨率图像,这通常比通过插值方法重新调整同一图像的大小要好。我们的生成器首先通过去卷积层将包括对象和背景候选ROI图像的低分辨率小图像上采样到4×超分辨率图像,然后进行卷积以生成相应的清晰图像。鉴别器更容易将生成器的输出(清晰的超分辨率图像)分类为假图像或真图像,并执行对象检测(即对象分类和边界框回归)。
鉴别器网络(D θ) 我们使用ResNet—50或ResNet—101 [12]作为我们在以太网中的骨干网络,表1显示了ResNet—50网络的架构。我们在骨干网络的最后一个平均池层后面添加了三个并行fc层,它们分别起到区分真实的高分辨率图像和生成的超分辨率图像、分类对象类别和回归边界框的作用。对于这个特定的任务,第一个fc层(称为fcGAN)使用sigmoid损失函数,而分类fc层(称为fccls)和回归fc层(称为fcreg)分别使用softmax和smooth L1损失函数。fcGAN分支的输入是高分辨率ROI图像,并且fcGAN分支的输出是输入图像是真实图像的概率(pGAN),fccls分支的输出是概率(pcls =(p0,.,pK)),并且fcreg分支的输出是ROI候选的边界框回归偏移(t =(tx,ty,tw,th))。
3.3总损失函数
我们采用一些最先进的GAN方法中的像素和对抗损失来优化我们的生成器。我们去除了特征匹配损失以降低计算复杂度,而不会牺牲太多的生成性能。此外,我们将分类和回归损失引入到生成器目标函数中,以驱动生成器网络从小尺度图像中恢复精细细节,从而更容易检测。像素损失 我们的生成器网络的输入是小ROI图像,而不是随机噪声。强制生成器的输出(即,超分辨率图像)接近地面实况图像的自然且简单的方式是通过最小化逐像素MSE损失,并且其被计算为等式(4):
其中,ILR i、Gw(ILR i)和IHR i分别表示小分辨率图像、生成的超分辨率图像和真实的高分辨率图像。G表示发电机网络,w表示其参数。然而,众所周知,MSE优化问题的解决方案通常缺乏高频内容,导致图像模糊,纹理过于光滑。
对抗损失 为了获得更真实的结果,我们在目标损失中引入对抗损失,定义为等式(5):
对抗损失促使网络产生更清晰的高频细节,从而欺骗鉴别器。 Dθ(Gw(ILR i))表示分辨图像Gw(ILR i)为真实高分辨率图像的概率。
分类损失 为了完成目标检测的任务,并使生成的图像更容易分类,我们在总体目标中引入了分类损失。设{ILR i,i= 1,2,…,N}和{IHR i,i= 1,2,…,N}分别为低分辨率图像和真实高分辨率图像,{ui,i= 1,2,…,N}表示它们对应的标签,其中ui∈{0,…,K}表示对象类别。因此,我们将分类损失表述为:
其中,pILR i = Dcls(Gw(ILR i)), pIHR i = Dcls(IHR i))分别表示生成的超分辨率图像和真实高分辨率图像属于真类别ui的概率。
在我们的方法中,我们的分类损失起着两个作用。首先,它引导鉴别器学习一个分类器,该分类器将高分辨率图像(尽管生成了超分辨率和真实的高分辨率图像)分类为真实或虚假。其次,它促进生成器恢复更清晰的图像,以便于分类。
回归损失 为了实现更精确的定位,我们还向目标函数引入了边界盒回归损失[6],其定义如式(7)所示:
其中,
其中vi =(vi,x,vi,y,vi,w,vi,h)表示真正的定界盒回归目标元组,ti =(ti,x,ti,y,ti,w,ti,h)表示预测的回归元组。tHR i和tSR i分别表示第i张真实高分辨率图像和生成的超分辨率图像的元组。当ui≥1时,括号指示器函数[ui≥1]= 1,否则为0。
与分类损失类似,我们的回归损失也有两个目的。首先,它鼓励鉴别器回归从基线检测器裁剪的候选对象的位置。其次,它促进了生成器产生具有精细细节的超分辨率图像,以实现更精确的定位。
目标函数 基于上述分析,我们将等式(5)中的对抗损失、等式(6)中的分类损失和等式(7)中的回归损失与等式(4)中的逐像素MSE损失结合起来。因此,我们的GAN网络可以通过优化等式(9)中的目标函数来训练:
其中α、β和γ是不同项的权重。这些权重在我们的实验中得到了交叉验证。直接针对w优化等式(9)来更新发生器G,会使w迅速向无穷发散,因为w越大,目标损失越大。
为了获得更好的行为,我们以不动点优化的方式优化目标函数,就像以前的GAN工作一样[16,21]。具体来说,我们在保持鉴别器D固定的情况下对发生器G的参数w进行优化,然后在保持发生器固定的情况下更新其参数θ。下面是迭代优化后的两个子问题:
和:
等式(10)中生成器G的损失函数由对抗损失等式(5)、MSE损失等式(4)、分类损失等式(6)和回归损失等式(7)组成,它们强制重建图像与真实的、对象特定的、具有高频细节的可定位的高分辨率图像相似。与之前的gan相比,我们将生成的超分辨目标图像的分类和回归损失添加到生成器损失中。通过引入这两种损失,从生成器网络中恢复的超分辨图像比仅使用对抗损失和MSE损失优化的图像更真实。
等式(11)中判别器D的损失函数引入了分类损失等式(6)和回归损失等式(7)。分类损失的功能是对真实的高分辨率图像和生成的超分辨率图像的类别进行分类,这与GAN的基本公式平行,用于区分真实的或生成的高分辨率图像。在小目标检测领域,我们都知道,几个像素的漂移可能会使预测的边界盒不能满足评价标准。因此,我们在鉴别器网络中引入回归损失(回归分支),以获得更好的定位。
4 实验
在本节中,我们在具有挑战性的公共对象检测基准(即COCO数据集[23])上验证了我们提出的SOD-MTGAN检测器,其中包括一些消融研究和与其他最先进检测器的比较。
4.1 训练和验证数据集
我们使用COCO数据集进行所有实验。如[23]所述,数据集中的小型对象多于大型/中型对象,大约41%的对象是小型对象(面积< 322)。因此,我们使用该数据集来训练和验证所提出的方法。对于目标检测任务,有125K在自然环境和日常生活中拍摄的图像(即具有多样性的物体)。随机抽取80K/ 40k /5K的数据分别用于训练、验证和测试。根据之前的工作,我们使用80 k训练图像和35k验证图像子集(trainval135k)的联合进行训练,并报告剩余5k验证图像(minival)的烧消结果。
在评估过程中,根据对象的面积将COCO数据集分为小、中、大三个子集。中子集和大子集分别包含面积大于322和962像素的对象,小子集包含面积小于322像素的对象。在本文中,我们主要使用我们提出的MTGAN网络进行小目标检测。我们使用标准COCO指标报告最终检测性能,其中包括AP(所有IoU阈值的平均值,即[0.5:0.05:0.95])、AP50、AP75和APS、APM、APL(不同尺度的AP)。
4.2 实现细节
在生成器网络中,我们设置权衡权值α =0.001, β = γ =0.01。生成器网络从头开始训练,每层权值初始化为标准差为0.02的零均值高斯分布,偏差初始化为0。为了避免不理想的局部最优,我们首先训练一个基于mse的SR网络来初始化发电机网络。对于鉴别器网络,我们使用在ImageNet上预训练的ResNet-50或ResNet-101模型作为我们的骨干网络,并添加三个并行fc层,如第3.2节所述。fc层由标准差为0.1的零均值高斯分布初始化,偏差初始化为0。
我们的基线检测器基于使用ResNet50-C4的Faster RCNN和使用ResNet101的FPN。基线探测器的所有超参数均采用中的设置。为了训练我们的生成器和鉴别器网络,我们使用我们的基线检测器从COCO trainval135k集合中裁剪正ROI和负ROI示例。采用系数为4的双三次插值对高分辨率图像进行降采样,生成相应的低分辨率图像。
在测试期间,我们的基线检测器裁剪100个roi,然后将其馈送到我们的MTGAN网络以产生最终检测。在训练过程中,我们对生成器使用Adam优化器,对鉴别器网络使用SGD优化器。SGD的学习率最初设置为0.01,然后在每40k个小批量后减少10倍。训练在最多80k次迭代后终止。我们交替更新生成器和鉴别器网络。
4.3 消融研究
我们首先将我们提出的方法与基线检测器进行比较,以证明MTGAN对小目标检测的有效性。此外,我们通过比较有/没有该分支的AP性能,验证了回归分支在鉴别器网络中的积极影响。最后,为了验证每个损失(对抗、分类和回归)在生成器损失函数中的贡献,我们还通过逐步将每个损失添加到逐像素的MSE损失中来进行消融研究。除非另有说明,所有消融研究都使用ResNet-50作为鉴别器中的骨干网络。
多任务GAN (MTGAN)的影响 表2(第2行与第3行,第4行与第5行)比较了基线检测器与我们的方法在COCO最小子集上的性能。从表2中,我们观察到使用ResNet-50的MTGAN在小子集上的性能比Faster-RCNN (ResNet-50- c4检测器)高出相当大的幅度(即AP的1.5%)。同样,使用ResNet-101的MTGAN在AP上比使用ResNet-101的FPN检测器提高1.6%。原因是基线检测器在提取卷积特征映射时执行了下采样操作(即与stride - 2卷积)。小物体本身包含的信息有限,降采样后大部分的详细信息会丢失。例如,如果输入是16×16像素对象ROI,则结果是1×1C4feature地图,并且C5特征地图没有保留任何内容。这些有限的转换特征映射降低了对此类小对象的检测性能。相比之下,我们的方法将低分辨率图像上采样到精细尺度,从而恢复了详细信息,使检测成为可能。图3显示了我们的MTGAN生成器生成的一些超分辨率图像。
回归分支的影响 如图1所示,定位不完善是检测误差的主要来源之一。对于小尺寸的对象尤其如此,当使用标准严格的评估标准时,它们的边界框中的微小变化会导致检测失败。鉴别器中的回归分支可以进一步细化边界框,实现更精确的定位。从表3(第1行和第5行)中,我们可以看到,当加入回归分支时,AP在小对象子集上的性能提高了0.9%,从而证明了它在检测管道上的有效性。
对抗性损失的影响 表3(第2行和第5行)显示,在没有对抗性损失的情况下,小子集上的AP下降了0.5%。原因是没有对抗性损失的生成图像过于平滑,缺乏高频信息,而高频信息对目标检测至关重要。为了鼓励生成器生成高质量的图像以进行更好的检测,我们使用对抗损失来训练生成器网络。
分类损失的影响 从表3(第3行和第5行)中,我们看到,当纳入分类损失时,小子集上的AP性能提高了约1%。显然,这证实了分类损失促使生成器恢复更精细的详细信息以进行更好的分类的说法。这样,鉴别器可以利用精细的细节来预测ROI图像的正确类别。
回归损失的影响 如表3(第4行和第5行)所示,通过使用回归损失来训练生成器网络,在小子集上,AP性能提高了近1%。与分类损失类似,回归损失驱动生成器恢复一些精细的细节以更好地定位。增大的AP说明了发电机损失函数中回归损失的必要性。
4.4 状态对比
我们将我们提出的方法(SOD-MTGAN)与几种最先进的目标检测器在COCO测试开发子集上进行了比较。表4列出了每个检测器的性能,从中我们得出结论,我们的方法在所有子集上都超过了所有其他最先进的方法。更重要的是,我们的SOD-MTGAN在小子集上实现了最高的性能(24.7%),比第二好的目标检测器的性能高出约3%。这种AP改进在小目标子集上最为显著,这清楚地证明了我们的方法在小目标检测上的有效性。
4.5 定性结果
图4显示了所提出的SOD-MTGAN检测器生成的一些检测结果。我们观察到,我们的方法成功地找到了几乎所有的对象,即使有些对象非常小。这证明了我们的检测器在小目标检测问题上的有效性。图4显示了一些失败案例,包括一些假阴性和假阳性结果,这表明在进一步提高小目标检测性能方面还有进步的空间。
5 结论
在本文中,我们提出了一种端到端多任务GAN (MTGAN)来检测无约束场景下的小目标。在MTGAN中,发生器将模糊的小ROI图像上采样为精细尺度的清晰图像,并通过判别器进行分类和边界盒回归。为了恢复详细信息以进行更好的检测,鉴别器中的分类和回归损失被传播回生成器。在COCO数据集上进行的大量实验表明,我们的检测器总体上提高了最先进的AP性能,其中对小尺寸对象的改进最大。