摘要
目标检测是计算机视觉中一项具有挑战性的任务。现在,许多检测网络在应用大型训练数据集时可以获得良好的检测结果。然而,为训练注释足够数量的数据往往很费时间。为了解决这个问题,本文提出了一种基于半监督学习的方法。 半监督学习用少量的注释数据和大量的未注释数据来训练检测网络。 在提出的方法中,生成对抗网络被用来从未注释的数据中提取数据分布。提取的信息随后被用于提高检测网络的性能。实验表明,与只使用少数注释数据的监督学习相比,本文的方法大大改善了检测性能。实验结果证明,当训练数据集中只有少数目标物体被注释时,有可能取得可接受的检测结果。
1、介绍
目前最先进的物体检测系统是用大量的注释数据来训练的。例如,用于物体检测的VOC2007 trainval数据集有11540张图像,有27450个注释的物体。这种数据集的注释往往要花费大量的时间和人力。在遥感应用中,数据量很大,而注释这些数据是很耗时的。在这种情况下,合理利用整个数据而不对所有数据进行注释,无疑有利于物体检测。大多数基于深度学习的物体检测方法需要大量的训练数据集。最近,一些人努力在小数据集上解决这个问题。利用转移学习的算法首先用其他数据集训练网络,这些数据集有大量的训练数据,然后在小数据集上微调网络。然而,这些方法并不适合本文讨论的情况,即注释的数据很少,但未注释的数据量却很大。
在本文中,我们提出了一种使用生成式对抗网络(GAN)的半监督检测算法。 半监督学习是一种同时使用标记数据和未标记数据进行训练的方法。如图1所示,监督学习只训练有标签的数据,而半监督学习从有标签和无标签的数据中提取有用的信息,因此可以获得更合理的分类器。在我们的方法中,我们首先用标记的样本训练一个检测网络,然后用训练好的检测网络来检测未标记的图像上的物体。在半监督分类网络的训练中,没有被人为标记的检测结果被作为未标记的部分。
综上所述,本文的主要贡献是: 将GAN框架扩展到物体检测应用中。利用未注解的数据来提高检测性能。本文其余部分的组织结构如下: 第2节描述了方法和理论。第3节是实验结果。最后,第4节是该方法的结论。
2、提出的方法
在这一节中,我们将简单介绍本文中使用的GAN和检测网络。然后我们将描述如何利用GAN来改善检测结果。
2.1、生成对抗网络
G学习数据分布,并生成与真实样本相似的样本来欺骗D,而D应努力区分真实样本和G生成的假样本,两者相互竞争,最终达到纳什均衡。它对应于一个最小化的双人博弈,其表述为:
其中E是概率期望值的经验估计,
是数据分布。
是噪声分布,G将一个噪声变量z转移到G(z)
2.2、检测网络
在文献[2]中,Liu等人提出利用可旋转边界框(RBox)在卫星图像上检测飞机、船舶和车辆的DRBox,其mAP达到94.13%。DRBox的详细设计可以参考文献[2]。在本文中,DRBox被用来作为我们的检测网络。需要强调的是,使用哪个检测器并不是强制性的。 然而,选择合适的检测器,如Faster RCNN、FCN、SSD或其他检测器是根据情况而定的。
2.3、使用半监督学习的GAN
当训练数据变少时,检测性能会变得非常差。我们使用GAN的半监督学习来解决这个问题。整体流程图如图2所示。标记的样本与检测器所使用的相同。未标注的样本是通过检测器从未标注的图像中获得的。我们的GAN是基于DCGAN[6]的。如图3(a)所示,生成器由一个全连接层和四个卷积层组成。分类器由四个卷积层、一个平均集合层和一个全连接层组成,如图3(b)所示。
生成器损失:
由于分类器的判别输出是基于网络中间层的特征。因此,考虑到通过分类器中间层生成的假样本的特征与通过分类器中间层的真实样本的特征尽可能相同。所以发生器的损失是通过特征匹配来计算的[3]。让f (x)表示分类器中间层的激活,生成器损失被定义为:
分类器损失
分类器的损失函数由三部分组成,分别来自于有标签的样本、无标签的样本和假样本。半监督分类器的输出比标准分类器的输出多一个。半监督分类器有K+1个输出。第(K+1)个输出代表由生成器生成的样本类别,这被称为假样本。对于分类器的输出,当减去相同的一般函数时,它不会改变softmax的输出。让
,所以
,即K的输出在这种变化后对分类器来说是足够的。分类器的损失函数的计算如下:
其中
,y代表标注样本的真实类别。
2.4、理论
当我们用很少的样本来训练分类器时,它所能获得的信息是非常有限的,而且它很容易变得过度拟合。所以分类器的鲁棒性很差。然而,当我们有很多未标记的样本时,我们利用GAN来从中提取信息。在这种情况下,生成器会创造出大量的像真实样本一样的假样本。而分类器要将样本分为假的和真的。渐渐地,分类器将学习真实数据的边缘分布。因为真实数据的边缘是区分假数据和真实数据的最佳分类平面。
3、实验结果
我们的实验是关于遥感图像的飞机检测。我们从中国和美国的11个机场的图像中收集了1000多架飞机。其中一个机场被抽出作为测试数据集。100架飞机作为标记数据集用于训练,其他飞机作为无标记数据集。我们使用标记数据集训练DRBox,并在测试数据集中进行测试。召回率为96.33%。这证明该检测器在寻找图像中的目标方面有很大的能力。但在测试机场有很多误报。误报率为88.87%。结果如图4(a)所示。当检测器被训练好后,我们用它来寻找未被标记的机场中的飞机。然后我们把检测结果作为GAN的无标签数据集。对于我们的GAN中的生成器,我们使用批量归一化和泄漏ReLU。分类器使用批处理归一化和ReLU。训练生成器3次,训练分类器1次。图4(b)显示,我们的方法在保持可接受的检测精度的同时,具有减少误报的巨大能力。 图5显示了半监督分类器、监督分类器和DRBox的精度-召回(P-R)曲线。召回率的定义是:真正被分类的飞机数量占所有飞机的比例。所以召回率等于x/(x+z)。在我们的网络中给定一个阈值,当一个物体的置信度大于阈值时,分类器就会把这个物体当作飞机。所以精确度等于x/(x+y)。表1中显示了x y z的含义。图5显示,半监督分类的结果远远好于检测器的结果和监督分类的结果。监督分类的结果比检测器差,可能是因为监督分类器由于训练样本量小而过度拟合。
不同迭代的P-R曲线显示在图6中。我们可以看到,当迭代次数达到一定数量时,P-R曲线基本保持不变。因此,我们得出结论,半监督学习可以防止过度拟合。
4、结论
本文介绍了在检测任务中使用GAN的半监督学习。我们的方法可以有效地减少误报,并能很好地利用数据。此外,我们的方法有能力防止过度拟合。然而,我们的方法不能降低漏检率。因此,我们使用的检测器应该确保低的漏检率。