2. 中国科学院大学, 北京 100049
2. University of Chinese Academy of Sciences, Beijing 100049, China
深度神经网络在计算机视觉问题上获得了广泛的应用。但是,基于深度神经网络的方法对用于训练的标记数据量提出了较高的要求,例如,用于目标检测的VOC2012数据集包含11 540张图片和27 450个目标标注框。标记这样大规模的数据是一件费时费力的事情。在本文所关注的遥感应用领域中,随着遥感图像数据资源的获取越来越容易和廉价,对图像的人工标注任务量日益庞大。因此,在减少人工标注数据工作量的情况下,如何有效地发挥出大量数据的潜在价值,对遥感图像的应用具有重要意义。半监督学习是解决这一矛盾的有效手段。半监督学习和最常见的全监督学习最根本的不同在于半监督学习不需要详细标注所有训练数据。如图 1(a)所示,蓝色和紫色的样本点分属于不同的类别。如果所有样本点的类别标签已知,使用全部样本进行监督学习,将得到图 1(d)所示的正确的分类决策面。但假如已知标签的样本仅占全部样本的一小部分,如图 1(a)中十字交叉点所示,则全监督学习会得到图 1(e)所示的错误结果。半监督学习通过在训练过程中采集没有标签的样本点的聚类信息,使分类决策面回到如图 1(d)所示的正确位置上。
Download:
|
|
遥感图像飞机目标检测是一个方兴未艾的研究领域。传统的方法依赖于人为设计特征,比如尺度不变特征变换(scale-invariant feature transform,SIFT)[1]、方向梯度直方图(histogram of oriented gradient, HOG)[2]、deformable part model(DPM)[3]等等。近些年来,随着深度学习的兴起,目标检测进入一个新的时代,大量的检测方法被提出[4-8],也开始应用到遥感图像飞机目标检测中[9-13]。Wu等[11]利用基于BING(binarizde normed gradients)和CNN的方法进行飞机检测,利用BING进行目标候选区域的提取,然后利用CNN对目标候选区域进行分类。这是一种类似于Region-CNN(R-CNN)[14]的两阶段检测方法。基于single shot multibox detector(SSD)[7],Chen等[12]提出一种端到端的飞机检测方法,其中利用到迁移学习和旋转扩充方法,该方法使得检测速度得到提升。Yang等[13]提出M-FCN(Markov random field fully convolutional network)方法并应用于飞机检测中,该方法结合全卷积网络(fully convolutional network,FCN)和马尔可夫随机场(Markov random field,MRF)两种方法。首先利用FCN生成一个粗糙的目标敏感的热图,排除大量无目标的区域;再把得到的热图输入到multi-MRF算法中,对目标形状进行改善。考虑到飞机方向信息的价值,为获得飞机的方向信息,Liu等[8]通过旋转边框训练一个旋转不变性的检测器(rotation invariant detector with rotatable bounding box,DRBox),该方法是对SSD的改进,通过方向信息的引进,提高了飞机的检测性能。上述方法均需要对训练数据进行完整的标注。
从无标记数据中无监督地学习数据分布是半监督学习的重要部分。目前,生成对抗网络(generative adversarial networks,GAN)[15]在无监督的学习数据分布中取得了成功的应用,但据我们所知,GAN还没有被应用于半监督目标检测问题中。我们提出一种基于GAN的半监督飞机目标检测方法,图 1说明了GAN实现半监督学习的原理。在对抗训练的过程中,生成器从大量的无标记数据中逐渐学习到数据的分布信息如图 1(b)所示,而判别器区分真实样本和生成器生成的假样本,图 1(c)展示真假数据的分类决策面。最终,判别器将会学习到数据分布的边缘信息。而对于标记样本的分类部分的学习是与判别部分共同训练的。该共同训练得到的最终的决策分类面不仅仅区分了标记样本,而且基本平行于数据的分布边缘,如图 1(d)所示。图 1(e)展示当只用标记数据训练全监督分类器得到的分类决策面,显然是不符合要求的。基于GAN的半监督学习可以简单地理解为:在对抗训练中,判别器通过区分真假数据,学习到数据的聚类信息,再结合对标记样本的学习,获得聚类数据的类别信息,从而获得最终的分类决策面。
文中通过结合全监督检测网络、生成网络和判别网络把上述的半监督学习方法引入到飞机检测当中。本文的主要贡献为将GAN扩展到飞机检测应用中并利用无标记数据来提高检测性能。
1 方法本文方法融合了GAN和传统的检测网络,网络结构如图 2所示。训练阶段过程如下:首先利用标记图像训练一个全监督检测网络,同时从标记图像中提取半监督训练需要用到的标记样本;然后,利用该检测网络对无标记图像进行检测,得到飞机目标的候选区域,这些候选区域构成半监督训练过程需要用到的无标记样本;最后,同时训练一个生成器和一个判别器,生成器学习无标记样本的分布,生成类似于真实样本的假样本,而判别器通过在判别真假的过程中分类飞机和背景样本,达到半监督分类的目的。
Download:
|
|
当网络训练完成后,对于待检测图像,首先经过检测器得到初步的检测结果,再经过判别器对置信度进行重新回归。所以最终的检测结果由检测器得到的边框信息和判别器得到的置信度共同构成。
1.1 全监督检测器在文献[8]中,作者利用旋转边框(rotatable bounding box,RBox)提出DRBox检测网络,在遥感图像飞机检测中取得了优异的检测性能。本文实验中,全监督检测器以DRBox为基础。
RBox为一个旋转矩形,由5个参数(x, y, w, h, θ)构成,其中x和y分别表示RBox中心点的横纵坐标,w和h分别表示宽和高,θ表示RBox与横轴的夹角。该检测网络属于单阶段检测网络。DRBox为一个全卷积网络,特征提取模块由截断VGG16构成,只保留conv4_3卷积层前面的结构。当得到特征图后,再利用一个卷积层预测每一个特征点对应的prior RBoxes的参数偏移量和类别信息。最后利用非极大值抑制(non-maximum suppression,NMS)得到最终的检测结果。网络结构如图 3所示。
Download:
|
|
基于GAN的半监督学习源于对原始GAN的改进,生成器和判别器及其对应的损失函数如下所述。
生成器 生成器的网络结构如图 4(a)所示,它包含有5个反卷积层和1个全连接层。卷积核大小为5×5,步长为2。由于判别器的输出取决于中间层的特征图,因此我们利用特征匹配[16]计算生成器的损失函数。令f(x)表示判别器中间层的输出,则生成器的损失函数定义为
$ {L_G} = \left\| {{\kern 1pt} {E_{x\backsim {p_{{\rm{ data }}(x)}}}}f(x) - {E_{z\backsim {p_z}(z)}}f(G(z)){\kern 1pt} } \right\|{\kern 1pt} _2^2, $ | (1) |
Download:
|
|
文中利用判别器最后一层特征层的输出计算该损失函数。
判别器 判别器如图 4(b)所示,它由5个卷积层、1个均值池化层和1个全连接层构成。卷积核大小为5×5,步长为2。最后利用softmax得到输出用以表示各个类别的概率。判别器的损失函数由3部分构成,分别对应标记样本、无标记样本和假样本。判别器的第K+1个输出对应假样本,而前K个输出与全监督检测的输出保持一致,对应真实样本的类别。因此判别器的损失函数定义如下:
$ {L_D} = {L_{{\rm{ labeled }}}} + {\lambda _1}{L_{{\rm{ unlabeled }}}} + {\lambda _2}{L_{{\rm{ fake }}}}, $ | (2) |
$ {L_{{\rm{ labeled }}}} = - {\rm{log}}\left( {\frac{{{\rm{exp}}({l_y}(x))}}{{Z(x)}}} \right), $ | (3) |
$ {L_{{\rm{ unlabeled }}}} = - {\rm{log}}\left( {\frac{{Z(x)}}{{Z(x) + {\rm{exp}}({l_{K + 1}}(x))}}} \right), $ | (4) |
$ {L_{{\rm{ fake }}}} = - {\rm{log}}\left( {\frac{{{\rm{exp}}({l_{K + 1}}(x))}}{{Z(x) + {\rm{exp}}({l_{K + 1}}(x))}}} \right), $ | (5) |
式中:
当判别器的输出同时减去同一个数值时,其对应的softmax输出是不变的。因此,令lj(x)=lj(x)-lK+1(x),则lK+1(x)≡0。所以,只需要保持判别器的前K个输出即可,可以舍弃最后一项的输出。因此,Llabeled,Lunlabeled和Lfake重新定义为:
$ {{L_{{\rm{ labeled }}}} = - {\rm{log}}\left( {\frac{{{\rm{exp}}({l_y}(x))}}{{Z(x)}}} \right),} $ | (6) |
$ {{L_{{\rm{ unlabeled }}}} = - {\rm{log}}\left( {\frac{{Z(x)}}{{Z(x) + 1}}} \right),} $ | (7) |
$ {{L_{{\rm{ fake }}}} = - {\rm{log}}\left( {\frac{1}{{Z(x) + 1}}} \right).} $ | (8) |
采取两阶段的训练策略,首先利用标记数据对检测器进行训练,然后再对半监督GAN网络进行训练。用于半监督GAN网络训练的标记样本中的正样本从标记数据中直接进行切取,并利用hard negative mining获取负样本。利用训练好的检测器对无标记图像进行检测,然后按照一定的阈值对其检测结果进行切取,得到用于半监督GAN网络训练的无标记样本。半监督GAN网络的训练过程如算法1所示。
算法1 半监督GAN网络的训练算法 |
输入:I:训练迭代次数;k:一个超参数;在实验中,取k = 3。 for i=1 to I do 从噪声分布pz(z)中获取m个噪声样本{z(l), …, z(m)}。 从无标记样本分布pdata(x)中获取m个样本{x(l), …, x(m)}。 从标记样本分布pdata(x)中获取m个样本{(xl), y(l)), …, (x(m), y(m))}。 减去随机梯度更新判别器参数。 for j=1 to k 从噪声分布pz(z)中获取m个噪声样本{z(l), …, z(m)}。 减去随机梯度更新生成器参数。 end for end for |
Hard negative mining 对于负样本的选取,采取hard negative mining的方法,而不是随机截取。利用训练好的全监督检测器对标记图像进行检测,然后对检测结果按照检测得到的置信度按照降序进行排序,选取排在靠前的非正样本作为负样本。为保持正负样本的平衡,我们维持正负样本的比例为1:1。
数据扩充 用于半监督GAN网络训练的数据进行旋转扩充,角度间隔为30°。因此,经过该部分处理后,训练数据扩充到原来的12倍。
1.4 检测在检测阶段,对于输入图像,首先利用全监督检测器得到初步的检测结果,再利用判别器对检测结果重新分类得到新的置信度。因此最终的检测结果由全监督检测器得到的位置边框和判别器得到的置信度共同构成。
2 实验结果与分析 2.1 数据利用遥感图像的飞机检测对本文方法的检测性能进行评估。从谷歌地球上获取13景来自于中国和美国的机场图像。包含飞机数量2 153架,总像素数为25.6亿,每景图像平均大小约14 000像素×14 000像素。其中只有一幅带有31架飞机的机场图像被标记,剩余的图像中共包含约2 100架飞机目标,其中75%当做无标记数据用于半监督检测网络的训练,25%用于验证。两者的比例大概为3:1。
2.2 对比方法和参数设置利用一些全监督检测方法跟我们的方法进行比较,以此证明半监督学习方法的有效性。其中包括DRBox、SSD等全监督检测方法,还有一种对比方法为DRBox和Classifier组成的两阶段检测网络,其中Classifier的网络结构与我们的判别器网络结构类似,但它只能利用标记样本进行训练。
DRBox检测器的相关参数设置为:prior RBoxes的尺寸设计为50×50和70×70两种大小,角度间隔为30°。输入到网络的图像为300×300大小的子图像。训练时利用adaptive moment estimation(Adam)进行优化,相关参数为默认值。负样本利用on line hard negative mining进行选取,并保持正负样本的比例为1:3。Batch size为32。
GAN相关参数设置为:λ1和λ2数值均设置为1,输入图像统一调整到64×64的大小,m取16,利用Adam算法对网络进行优化,初始学习率设置为0.000 3,标记样本中的正负样本比例为1:1。
2.3 实验结果图 5展示了我们的方法,DRBox+Classifier,DRBox和SSD的precision-recall (P-R)曲线,其中召回率R(recall ratio)用于评估寻找目标的能力,而精度P(precision)用于评估网络找到目标的质量。P和R的定义如下:
$ {P = \frac{{{T_{\rm{P}}}}}{{{T_{\rm{P}}} + {F_{\rm{P}}}}},} $ | (9) |
$ {R = \frac{{{T_{\rm{P}}}}}{{{T_{\rm{P}}} + {F_{\rm{N}}}}},} $ | (10) |
Download:
|
|
式中:TP表示被检测出的飞机数量,FP表示负样本被误检为飞机的数量,FN表示飞机被误检为负样本的数量。实验中,当预测边框与地面真实边框的重叠率(intersection-over-union,IoU)大于0.5时则认为为真实正样本。从图中可以看出,本文方法的P-R曲线完全包住了其他方法的曲线,证明本方法取得了最佳的检测结果。对比本方法与DRBox的曲线,证明GAN的半监督学习有效地提高了网络检测性能。进一步与DRBox+Classifier对比,证明我们的判别器通过与生成器的对抗训练从无标记数据中学习到了有用的信息,提高了网络的检测性能。相比于DRBox,DRBox+Classifier的检测性能不升反降,究其原因为,DRBox+Classifier是一个两阶段的检测网络,首先利用标记数据对DRBox进行训练,然后再利用hard negative mining从标记数据中提取负样本,当利用提取的标记样本对Classifier进行训练时,Classifier学习到的特征信息不同于DRBox学习到的用于分类的特征信息,另外,由于训练样本的缺少,导致Classifier极易过拟合,因此,对DRBox进行重新分类并不能改善性能。从表 1可以看出,当训练到一定的迭代次数后,我们的网络保持着较好的检测性能。实际上,Llabeled很快衰减到接近于0,也就意味着半监督GAN网络中对于标记样本的学习很快就进入到过拟合状态,但这种状态对结果并没有什么影响,究其原因在于半监督GAN网络从大量的无标记样本中学习到有用的信息,从而消除了标记样本过拟合的影响,从其结果看,标记样本更像是提供了一个标签的作用。从SSD的P-R曲线可以看出,其漏检始终存在,因此SSD并不适合作为我们的全监督检测器。
表 2展示各个方法的BEP(break even point),平均精确度(average precision,AP),R-90和P-90。BEP表示recall和precision相等时的数值,AP为P-R曲线下的面积,两项指标都是我们的方法取得最佳的结果,证明了该方法的优异性能。R-90表示当precision等于90%时的recall,我们的方法都远高于其他方法,证实该方法在保持高precision时能有效地减小漏警率。P-90表示当recall等于90%的precision,其他方法在该点的虚警率都高于70%,而我们的方法在保持高recall时能有效地减少虚警。
图 6展示测试集的检测结果。图上展示的是各个方法在BEP点上的检测结果。从图中可以看出,相比于其他方法,我们的方法检测出绝大部分的飞机,而且检测边框质量也不错。
Download:
|
|
图 7展示训练过程中不同迭代次数中的部分生成样本。可以看出,生成器逐渐学习到了数据分布。由于输入到GAN的数据有些是飞机有些不是,所以生成样本有些类似于飞机,有些则相差较大,类似于过渡区域,该现象有点类似于支持向量机,其中一些类似于“支持向量”的样本能够被判别器学习到。
Download:
|
|
图 8展示一些提取的无标记样本中的负样本。它们在一定程度上类似于飞机,这些都是DRBox容易误检为飞机的目标。而通过半监督GAN网络对无标记样本的学习,判别器很容易地把这些目标与飞机区别开来。因此,通过融合DRBox和GAN组合成的半监督检测网络有效地克服了单纯使用DRBox带来的弊端,显著改善了网络的检测性能。
Download:
|
|
文中,利用GAN实现半监督的检测网络。在不用标记所有数据的条件下,该方法有效提高了飞机检测的性能和数据的利用率,而传统的全监督检测方法只能利用标记部分的数据。判别器能通过生成器从无标记数据中学习到有用的信息来提高分类能力,因此,当遥感图像飞机检测中检测边框的置信度通过判别器重新更新后,检测结果变得更加准确。而且该方法还能使后续获取的数据得到有效的利用。
我们的网络是一个两阶段的检测网络,一定程度上降低了网络的检测速度,而且目标的位置仅由全监督检测器决定。后续将进行端到端的基于GAN的半监督检测网络的研究,以期克服以上两个缺点。
[1] |
Lowe D G. Distinctive image features from scale-invariant keypoints[J]. International Journal of Computer Vision, 2004, 60(2): 91-110. |
[2] |
Dalal N, Triggs B. Histograms of oriented gradients for human detection[C]//International Conference on Computer Vision & Pattern Recognition (CVPR'05). IEEE Computer Society, 2005: 886-893.
|
[3] |
Felzenszwalb P, Mcallester D, Ramanan D. A discriminatively trained, multiscale, deformable part model[C]//IEEE Conference on Computer Vision & Pattern Recognition, 2008: 1-8
|
[4] |
Ren S, He K, Girshick R, et al. Faster R-CNN:Towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2015, 39(6): 1137-1149. |
[5] |
Redmon J, Divvala S, Girshick R, et al. You only look once: unified, real-time object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016: 779-788.
|
[6] |
He K, Zhang X, Ren S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 37(9): 1904-1916. |
[7] |
Liu W, Anguelov D, Erhan D, et al. Ssd: single shot multibox detector[C]//European Conference on Computer Vision. Springer, Cham, 2016: 21-37.
|
[8] |
Liu L, Pan Z, Lei B. Learning a rotation invariant detector with rotatable bounding box[J]. arXiv preprint arXiv: 1711.09405, 2017: 1-9.
|
[9] |
Song Z N, Sui H G. a coarse-to-fine model for airplane detection from large remote sensing images using saliency modle and deep learning[J]. International Archives of the Photogrammetry, Remote Sensing & Spatial Information Sciences, 2018, 42(3): 1571-1573. |
[10] |
Yu Y, Guan H, Zai D, et al. Rotation-and-scale-invariant airplane detection in high-resolution satellite images based on deep-Hough-forests[J]. ISPRS Journal of Photogrammetry and Remote Sensing, 2016, 112: 50-64. Doi:10.1016/j.isprsjprs.2015.04.014 |
[11] |
Wu H, Zhang H, Zhang J, et al. Fast aircraft detection in satellite images based on convolutional neural networks[C]//2015 IEEE International Conference on Image Processing (ICIP). IEEE, 2015: 4210-4214.
|
[12] |
Chen Z, Zhang T, Ouyang C. End-to-end airplane detection using transfer learning in remote sensing images[J]. Remote Sensing, 2018, 10(1): 139-139. Doi:10.3390/rs10010139 |
[13] |
Yang Y, Zhuang Y, Bi F, et al. M-FCN:effective fully convolutional network-based airplane detection framework[J]. IEEE Geosci Remote Sens Lett, 2017, 14(8): 1293-1297. Doi:10.1109/LGRS.2017.2708722 |
[14] |
Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2014: 580-587.
|
[15] |
Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//Advances in Neural Information Processing Systems. 2014: 2672-2680.
|
[16] |
Salimans T, Goodfellow I, Zaremba W, et al. Improved techniques for training gans[C]//Advances in Neural Information Processing Systems. 2016: 2234-2242.
|