SOD-MTGAN: Small Object Detection via Multi-Task Generative Adversarial Network

SOD-MTGAN: Small Object Detection via Multi-Task Generative Adversarial Network

基于多任务GAN的细小物体检测

摘要

物体检测是计算机视觉中的一个基本而重要的问题。虽然在大规模检测基准(例如COCO数据集)中对大/中型物体取得了令人印象深刻的结果,但小物体的性能远远不能令人满意。原因是小物体缺乏足够详细的外观信息,这可以将它们与背景或类似物体区分开来。为了解决小目标检测问题,我们提出了一种端到端的多任务生成对抗网络(MTGAN)。在MTGAN中,生成器是一个超分辨率网络,可以将小模糊图像上采样到精细图像中,并恢复详细信息以便更准确地检测。判别器是多任务网络,其描述具有真/假性得分,对象类别得分和边界框回归偏移的每个超分辨图像块。此外,为了使生成器恢复更多细节以便于检测,判别器中的分类和回归损失在训练期间反向传播到生成器中。在具有挑战性的COCO数据集上进行的大量实验证明了所提出的方法在从模糊的小图像中恢复清晰的超分辨图像的有效性,并表明检测性能,特别是对于小尺寸物体,提高了state-of-the-art。

 

1.引言

物体检测是计算机视觉中的一个基本而重要的问题。 它通常是许多实际应用的关键步骤,包括图像检索,智能监控,自动驾驶等。在过去的几十年中,对象检测已经得到了广泛的研究,并且随着深度卷积神经网络的出现,已经取得了巨大的进步。。 目前,基于CNN的对象检测有两个主要框架:(1)one-stage,如YOLO [27]和SSD [24],它们以密集的方式应用对象分类器和回归器而无需对象修剪; (2)two-stage,如Faster-RCNN [29],RFCN [3]和FPN [22],它们提取建议目标,然后按照提案分类和回归。

图1. FPN检测器 [22]在COCO数据集的大,中,小子集上的所有类别的性能总体误差分析[23]。 每个子图像中的图是在[23]中定义的不同评估设置下的一系列精确回忆曲线。 从比较中我们可以看出,小型和大型/中型物体的性能之间存在很大差距。

 

如图1(a)和1(b)所示,两个框架的目标检测器在大规模检测基准(例如COCO数据集[23])中对大/中尺寸的物体取得了令人印象深刻的结果。然而,小尺寸物体(在[23]中定义)的性能远非令人满意,如图1(c)所示。从比较中我们可以看出,小型和大型/中型物体的性能之间存在很大差距。小物体检测(SOD)的主要困难在于小物体缺少将它们与背景(或类似类别)区分开来所需的外观信息并且实现更好的定位。为了在这些小对象上获得更好的检测性能,SSD [24]利用中间转换特征映射来表示小对象。然而,浅细粒度转换特征图不那么具有辨别力,这导致许多假阳性结果。另一方面,FPN [22]使用特征金字塔来表示不同尺度的对象,其中具有强语义信息的低分辨率特征图被上采样并与具有弱语义信息的高分辨率特征图融合。但是,上采样可能会产生伪像,这会降低检测性能。

 

为了解决SOD问题,我们提出了一种基于经典生成对抗网络(GAN)框架的统一端到端卷积神经网络,该框架可以结合到任何现有的检测器中。根据开创性的GAN工作 [9, 21] 的结构,我们的模型中有两个子网络:生成器网络和判别器网络。在生成器中,引入了超分辨率网络(SRN)以将较小的目标图像上采样到更大的比例。与使用双线性插值直接调整图像大小相比,SRN可以生成更高质量的图像,并且在大的放大因子(在我们当前实现中为4倍)时产生更少的伪像。在判别器中,我们引入了对象检测任务的分类和回归分支。真实的和生成的超分辨率图像通过判别器网络,该网络共同区分它们是真实的还是生成的高分辨率图像,确定它们属于哪个类,并且细化预测的边界框。更重要的是,分类和回归损失进一步反向传播到生成器,这鼓励生成器产生更高质量的图像,以便更容易分类和更好的定位。

 

贡献。 本文主要做出以下三点贡献。 (1)提出了一种用于小物体检测的新型统一端到端多任务生成对抗网络(MTGAN),可以与任何现有的检测器结合使用。 (2)在MTGAN中,生成器网络生成超分辨率图像,并引入多任务判别器网络,以同时区分真实的高分辨率图像与伪造图像,预测对象类别和细化边界框。 更重要的是,分类和回归损失被反向传播,以进一步指导生成器网络产生超分辨率图像,以便更容易分类和更好的定位。 (3)最后,我们证明了MTGAN在物体检测管道中的有效性,其中检测性能比几个最先进的基线检测器(主要用于小物体)提高了很多。

 

2.相关工作

2.1 通用目标检测

作为经典主题,在过去十年左右的时间里已经提出了许多物体检测系统。 传统的物体检测方法基于手工制作的特征和可变形的部件模型(DPM)。 由于手工制作的特征的有限表现,传统的物体探测器记录了低的性能,特别是在小尺寸的物体上。

近年来,随着包括CNN在内的深度神经网络的复兴,图像分类和场景识别的优越性能得以实现[19,32,34]。类似地,由于CNN [7]从大规模图像数据集中学到的更丰富的外观和空间表示,物体检测的性能得到了显着提升。目前,基于CNN的对象检测器可以简单地归类为属于两个框架之一:two-stage框架和one-stage框架。基于区域的CNN (RCNN) [7] 可以被认为是用于物体检测的两阶段框架的里程碑,并且它已经实现了最先进的检测性能。每个区域提案都在RCNN [7]中单独处理,这是非常耗时的。之后,在Fast-RCNN [6]中引入了ROI-Pooling,它可以在提案提取和分类步骤之间共享计算,从而大大提高了效率。通过端到端地学习这两个阶段,更快的RCNN [29]在检测性能和计算效率方面都取得了进一步的进步。但是,该框架的所有检测器在COCO基准测试中对小对象的性能都不令人满意,因为它们没有任何明确的策略来处理这些对象。为了更好地检测小物体,FPN [22]通过自上而下的路径和横向连接将低分辨率,语义上强大的特征与高分辨率,语义上较弱的特征相结合,其中学习的转换特征映射预期包含强语义小物件的信息。因此,FPN在检测小物体的任务中表现出优于快速RCNN的性能。然而,FPN中的低分辨率特征图被上采样以创建特征金字塔,该过程倾向于将伪像引入特征中并因此降低检测性能。与FPN相比,我们提出的方法采用超分辨率网络从低分辨率图像生成高分辨率(4倍向上缩放)的图像,从而避免了FPN中上采样算子引起的伪像问题。

在一阶段框架中,检测器直接将锚分类为特定类,并以密集方式回归边界框。 例如,在SSD [24](典型的单级检测器)中,高分辨率的低级中间转换特征图用于检测小对象。 然而,这些转换特征通常仅捕获没有强语义信息的基本视觉模式,这可能导致许多误报结果。 与SSD类探测器相比,我们的判别器使用深度强大的语义特征来更好地表示小物体,从而降低误报率。

2.2 生成对抗网络

在开创性的工作[9]中,引入了生成对抗网络(GAN)以从随机噪声输入生成逼真的图像。 GAN在图像生成[4],图像编辑[35],表示学习[25],图像超分辨率[21]和风格转移[16]方面取得了令人瞩目的成果。最近,GAN已成功应用于超分辨率(SRGAN)[21],从而产生了令人印象深刻且有希望的结果。与自然图像上的超分辨率相比,COCO基准中的特定对象的图像例如充满了多样性(例如模糊,姿势和照明),因此,使得对这些图像的超分辨率处理更具挑战性。事实上,SRGAN生成的超分辨率图像特别适用于低分辨率的小物体,这对于训练精确的物体分类器没有帮助。为了缓解这个问题,我们在生成器的损失函数中引入了新的loss,即分类和回归loss在我们提出的MTGAN中反向传播到生成器网络,这进一步指导生成器重建更精细的超分辨率图像,以便更容易分类和更好的本地化。

3. MTGAN

图2.我们提出的小物体检测系统(SOD-MTGAN)的pipeline。 (A)图像被送入网络。 (B)基线检测器可以是任何类型的检测器(例如,更快的RCNN [29],FPN [22]或SSD [24])。它用于从输入图像中裁剪正(即对象)和负(即背景)示例,用于训练生成器和判别器网络,或生成用于测试的感兴趣区域(ROI)。 (C)正面和负面的例子(或ROI)由现成的检测器产生。 (D)生成器子网重建低分辨率输入图像的超分辨版本(4×放大)。 (D)判别器网络将实际与生成的高分辨率图像区分开来,同时预测对象类别并对对象位置进行回归。判别器网络可以使用任何典型的架构,如AlexNet [20],VGGNet [32]或ResNet [12]作为骨干网络。我们在实验中使用ResNet-50或ResNet-101。

 

在本节中,我们将详细介绍所提出的方法。 首先,我们给出了经典GAN网络的简要描述,以便为描述我们提出的用于小对象检测的多任务GAN(MTGAN)奠定上下文。 然后,描述了我们框架的整个架构(参见图2的插图)。 最后,我们分别介绍了MTGAN网络的每个部分,并定义了用于训练生成器和判别器的损失函数。

3.1 GAN

表1.生成器和判别器网络的体系结构。 “conv”和“layer *”表示卷积层,“x5”表示具有5个卷积层的残差块,“de-conv”表示上采样卷积层,“2x”表示上采样的因子 在图2中,“fc”表示完全连接的层。 请注意,我们仅使用ResNet-50发布判别器网络的体系结构。

 

GAN [9] 通过对抗过程同时学习生成器网络G和判别器网络D. 训练过程交替地优化生成器和判别器,它们彼此竞争。 生成器G被训练以产生样本以欺骗判别器D,并且训练D以区分由G产生的真实图像和伪图像。待优化的GAN损失定义如下:

其中z是随机噪声,x表示实数,θ和ω分别表示D和G的参数。 在这里,G试图最小化目标函数,而D试图将其最大化为等式(2):

与[9,21]类似,我们设计了一个生成器网络Gw,它以交替的方式优化,具有判别器网络Dθ,寻求联合解决小物体检测的超分辨率,物体分类和边界框回归问题。 因此,整体损失定义如下:

其中I LR和I HR分别表示低分辨率和高分辨率图像。 u是类标签,v是地面实况边界框回归目标。与[9]不同,我们的生成器的输入是低分辨率图像而不是随机噪声。与[21] 相比,我们在判别器中有多个任务,我们将生成的超分辨图像与真实高分辨率图像区分开来,对对象类别进行分类,并共同回归对象位置。具体地,方程(3)背后的一般思想是它允许人们训练生成器G,其目的是欺骗可区分的判别器D,该判别器被训练以将超分辨图像与真实高分辨率图像区分开。此外,我们的方法(SOD-MTGAN)通过添加两个并行分支来扩展经典SRGAN [21],以对类别进行分类并对候选ROI图像的边界框进行回归。此外,判别器中的分类损失和回归损失被反向传播到生成器,以进一步促进它产生超分辨图像,其也适合于更容易分类和更好的定位。在下面的小节中,我们将详细介绍MTGAN的体系结构和训练损失。

3.2 网络结构

 

我们的生成器将低分辨率图像作为输入,而不是随机噪声,并输出超分辨率图像。 出于对象检测的目的,判别器被设计为将生成的超分辨图像与真实高分辨率图像区分开来,对对象类别进行分类,并联合回归位置。

生成器网络(Gw)。 如表1和图2所示,我们采用深度CNN架构,其在[13]中的图像去模糊和[1]中的面部检测中显示出有效性。 与[13]不同,我们的生成器包括上采样层(即表1中的反转)。 在网络中有两个上采样的分数跨度转换层,三个转换层和五个残余块。 特别是,在这些残差块中,我们使用两个带有3x3内核和64个特征映射的转换层,然后是批量归一化层[15]和参数化ReLU [11]作为激活函数。 每个去卷积层由学习的内核组成,它将低分辨率图像上采样到2倍超分辨率图像,这通常比通过插值方法重新调整相同图像大小更好[5,17,33]。

 

我们的生成器首先通过去卷积层对包括对象和背景候选ROI图像的低分辨率小图像进行上采样到4×超分辨图像,然后执行卷积以产生相应的清晰图像。 生成器的输出(清晰的超分辨图像)更容易使判别器分类为伪或真实并执行对象检测(即对象分类和边界框回归)。

判别网络(Dθ)。 我们使用ResNet-50或ResNet-101 [12]作为判别器中的骨干网络,表1显示了ResNet-50网络的体系结构。 我们在骨干网的最后一个平均池层后面添加了三个并行的f c层,它们分别起到区分真实高分辨率图像和生成的超分辨率图像,分类对象类别和回归边界框的作用。 对于这个特定的任务,第一个fc层(称为f cGAN)使用sigmoid损失函数[26],而分类fc层(称为f ccls)和回归fc层(称为f creg)使用softmax和平滑L1损失[ 6]功能,分别。

判别器的输入是高分辨率ROI图像,f cGAN分支的输出是输入图像是真实图像的概率(pGAN),f ccls分支的输出是概率(pcls =(p0) ,...,pK))输入图像是K + 1个对象类别,f creg branch的输出是边界框回归偏移(t =(tx,ty,tw,th)) ROI候选对象。

 

3.3 总损失函数

我们采用了一些最先进的GAN方法[21,16]的像素和对抗性损失来优化我们的发生器。 与[21]相比,我们删除了特征匹配损失,以降低计算复杂度,同时不会牺牲太多的生成性能。 此外,我们将分类和回归损失引入生成器目标函数,以驱动生成器网络从小尺度图像中恢复精细细节,以便于检测。

像素损失。 我们的生成器网络的输入是小ROI图像而不是随机噪声[9]。 强制生成器的输出(即超分辨图像)接近地面实况图像的一种自然而简单的方法是通过最小化像素方式的MSE损失,并将其计算为方程(4):

其中我LR i,Gw(I LR i)和I HR i分别表示小的低分辨率图像,生成的超分辨率图像和真实的高分辨率图像。 G表示生成器网络,w表示其参数。 然而,众所周知,MSE优化问题的解决方案通常缺乏高频内容,这导致图像模糊,纹理过于平滑。

对抗性损失。 为了获得更真实的结果,我们将对抗性损失[21]引入客观损失,定义为方程(5):

对抗性损失促使网络产生更清晰的高频细节,以便欺骗鉴别器D.在方程(5)中,Dθ(Gw(I LR i))表示解析图像Gw(I LR i)的概率 一个真正的高分辨率图像。

分类损失。 为了完成对象检测的任务并使生成的图像更容易分类,我们将分类损失引入整体目标。 设{I LR i,i = 1,2,....。。 ,N}和{I HR i,i = 1,2 ,.。。 ,N}分别表示低分辨率图像和真实高分辨率图像,{ui,i = 1,2,...。。 ,N}代表它们对应的标签,其中ui∈{0,...,K}表示对象类别。 因此,我们将分类损失表述为:

其中pI LR i = Dcls(Gw(I LR i))和pIHR i = Dcls(I HR i))分别表示生成的超分辨率图像和属于真实类别ui的真实高分辨率图像的概率。

在我们的方法中,我们的分类损失起着两个作用。 首先,它引导鉴别器学习分类器,该分类器将高分辨率图像(尽管是生成的超分辨率和真实高分辨率图像)分类为真实或假的。 其次,它促使生成器恢复更清晰的图像,以便于分类。

回归损失。 为了实现更准确的定位,我们还向方程(7)中定义的目标函数引入了一个边界框回归损失[6]:

其中,

其中vi =(vi,x,vi,y,vi,w,vi,h)表示真正的边界框回归目标的元组,ti =(ti,x,ti,y,ti,w,ti, h)表示预测的回归元组。 t HR i和t SR i分别表示第i个真实高分辨率和生成的超分辨图像的元组。 当ui≥1时,括号指示器功能[ui≥1]等于1,否则为0。 有关回归损失的更详细描述,请参阅读者[6]。

与分类损失类似,我们的回归损失也有两个目的。 首先,它鼓励鉴别器回归从基线检测器裁剪的候选对象的位置。 其次,它促使生成器生成具有精细细节的超分辨率图像,以实现更准确的定位。

目标函数。 基于上述分析,我们将方程(5)中的对抗性损失,方程(6)中的分类损失和方程(7)中的回归损失与方程(4)中的逐像素MSE损失相结合。 因此,我们的GAN网络可以通过优化方程(9)中的目标函数来训练:

其中α,β和γ是权衡不同条款的权重。 这些权重在我们的实验中交叉验证。

直接优化关于用于更新发生器G的w的方程(9)使得w快速地发散到无穷大,因为大的w总是使得目标获得大的损失。 为了更好的行为,我们以固定点优化的方式优化目标函数,就像之前的GAN工作[21,16]一样。 具体地说,我们优化发生器G的参数w,同时保持鉴别器D固定,然后更新其参数θ,保持发生器固定。 以下是产生的两个子问题,这些子问题被迭代优化为:

方程(10)中发生器G的损失函数包括对抗性损失方程(5),MSE损失方程(4),分类损失方程(6)和回归损失方程(7),强制重建图像类似于 具有高频细节的真实,对象特定和可本地化的高分辨率图像。 与之前的GAN相比,我们将生成的超分辨物体图像的分类和回归损失添加到生成器损耗中。 通过引入这两个损失,从生成器网络恢复的超分辨图像比仅使用对抗和MSE损耗优化的图像更加真实。

方程(11)中鉴别器D的损失函数引入了分类损失Eq(6)和回归损失Eq(7)。 分类损失的功能是对真实高分辨率和生成的超分辨图像的类别进行分类,这与GAN [9]的基本公式并行,以区分真实或生成的高分辨率图像。 在小物体检测领域,众所周知,一些像素漂移可能使预测的边界框不能满足评估标准。 因此,我们将回归损失(回归分支)引入鉴别器网络以实现更好的定位。

 

4. 实验

在本节中,我们在具有挑战性的公共物体检测基准(即COCO数据集[23])上验证了我们提出的SOD-MTGAN探测器,其中包括一些消融研究和与其他现有技术探测器的比较。

4.1 训练和验证集

我们使用COCO数据集[23]进行所有实验。 如[23]中所述,数据集中有大于/大型对象的小对象,大约41%的对象很小(区域<322)。 因此,我们使用此数据集进行培训并验证所提出的方法。 对于物体检测任务,在自然环境和日常生活中拍摄125K图像(即具有多样性的物体)。 随机选择80K / 40K / 5K数据进行训练,验证和测试。 在之前的工作[2,22]之后,我们使用80k训练图像和35k验证图像(trainval135k)的子集进行训练,并报告其余5k验证图像(迷你)的消融结果。在评估期间,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 [12]模型作为我们的骨干网络,并添加三个并行的fc层,如第3.2节所述。 fc层由零均值高斯分布初始化,标准偏差为0.1,偏差用0初始化。

表2.我们提出的方法SOD-MTGAN相对于COCO迷你子集的基线方法的检测性能(AP)。 [8]提供了更快的RCNN [29]和Mask-RCNN [10]的AP性能。 显然,SOD-MTGAN优于基线方法,特别是在AP性能增加超过1.5%的小子集上。

我们的基线检测器基于更快的RCNN和ResNet50-C4 [12]以及FPN和ResNet101 [22]。 基线检测器的所有超参数都来自[10]中的设置。 为了训练我们的发生器和鉴别器网络,我们使用我们的基线检测器从COCO [23] trainval135k中设置正负ROI示例。 通过使用因子4的双三次插值对高分辨率图像进行下采样来生成相应的低分辨率图像。在测试期间,我们的基线检测器裁剪100个ROI,然后将其馈送到我们的MTGAN网络以产生最终检测。

在训练期间,我们使用Adam优化器[18]作为生成器,使用SGD优化器作为鉴别器网络。 SGD的学习率最初设定为0.01,然后在每40k小批量后减少10倍。 在最多80k次迭代后终止训练。 我们交替更新发生器和鉴别器网络,如[9]。 我们的系统在PyTorch中实现,源代码将公开发布。

4.3 ablation 研究

我们首先将我们提出的方法与基线检测器进行比较,以证明MTGAN对小物体检测的有效性。 此外,我们通过比较具有/不具有该分支的AP性能来验证回归分支在鉴别器网络中的积极影响。 最后,为了验证每个损失(对抗性,分类和回归)对发生器的损失函数的贡献,我们还通过逐渐将它们中的每一个逐渐添加到像素方式的MSE损失来进行消融研究。 除非另有说明,否则所有消融研究都使用ResNet-50作为鉴别器中的骨干网络。

多任务GAN(MTGAN)的影响。表2(第2行与第3行以及第4行与第5行)将基线检测器的性能与COCO迷你子集上的方法进行比较。从表2中,我们观察到我们的MTGAN与ResNet-50的性能优于Faster-RCNN(ResNet-50-C4检测器)在小子集上的相当大的余量(即AP中的1.5%)。同样,使用ResNet-101的MTGAN比使用ResNet-101的FPN检测器提高了1.6%。原因是基线检测器在提取转换特征图时执行下采样操作(即,用步幅2进行卷积)。小对象本身包含有限的信息,大部分详细信息将在下采样后丢失。例如,如果输入是16×16像素对象ROI,则结果是1×1 C4特征映射,并且没有为C5特征映射保留任何内容。这些有限的转换特征映射降低了这些小对象的检测性能。相比之下,我们的方法将低分辨率图像上采样到精细尺度,从而恢复详细信息并使检测成为可能。图3显示了我们的MTGAN生成器生成的一些超分辨率图像。

猜你喜欢

转载自blog.csdn.net/leviopku/article/details/84399094