基于域适应Faster RCNN的复杂背景目标检测
2020-04-28王露荻解月江
王露荻 解月江
航天新长征大道科技有限公司, 北京100070
卫星遥感调查具有视点高、视域广、数据采集快等特点,获取的资料可直接进入计算机图像处理系统,具有传统的调查方法无法比拟的优势。随着遥感技术不断发展,卫星遥感影像的应用日益增多,但在云、雾及复杂地形等干扰下进行精确的目标检测仍是其中的难点。传统遥感影像识别采用基于知识或基于分类的识别方法[1-2],为抗干扰,算法会对采集到的视频及图像首先进行去噪、或图像增强处理[3-6];之后采取基于高斯背景模型[4]或是手工特征描述算法与分类器结合[5-6]的方式进行识别。近年深度学习在该领域的应用日益增多,如文献[7]则使用深度卷积网对目标进行了较为准确的识别。
但现有算法(包括深度学习)检测复杂背景图像时仍无法直接取得良好效果。为使工业实践中的目标识别算法具备更好的适应性,除了从改善图像质量入手外,还可以通过从原图有选择性地提取特征,来增加目标检测对不同环境的适应性。实际上,深度学习网络训练过程中提取过多和域相关的特征会导致模型在该域内过拟合。为减小拟合程度,需设计合适的网络训练算法。Yaroslav Ganin等用特征空间上的交叉域鲁棒性增强的方式来改进分类网络,并使用了对抗训练的方式[8],这是首次对特征空间的域适应,很好地解决了不同域层面上的适配问题。文献[9]尝试将该思路引用到目标检测网中,也取得了较好的效果。
本文基于域适应的Faster RCNN算法实现了对存在遮挡、复杂光源、目标混淆和动态干扰等复杂多变环境下目标的稳定识别,并以云、雾和岛屿干扰下的卫星遥感舰船目标检测作为应用场景进行验证。本文改进了域适应Faster RCNN算法的训练方式,在域适应算法中设计了源域对多种目标域的多分类器,使得模型能够对2个以上的目标域进行域适应。由于恶劣环境下可收集样本有限,在域适应部分引入域别平衡,提升模型整体检测效果,还在RPN网络部分引入Focal Loss,进一步提升难检目标的检测准确率。与经典的Faster RCNN、以及域适应Faster RCNN目标检测算法相比,本文算法明显提升了复杂环境条件下的目标检测效果。
1 基于域适应Faster RCNN的目标识别算法设计
1.1 域适应Faster RCNN基本原理及流程
训练和测试数据分布的不一致导致模型在实际应用中表现不佳。为使模型在分布不同但相似的数据集上进行迁移,研究者们进行了多种尝试。Chen Yuhua等[9]尝试采用对抗训练的方式控制目标检测网的特征提取过程,从而防止模型在域内过拟合。这种特征空间上的域适应为解决该类问题提供了新思路。这启发我们可以将域适配的方法与目标检测网(Faster RCNN等)结合来提升复杂背景下的检测准确率。
域适应Faster RCNN的网络结构如图1所示。在原Faster RCNN的3大模块:特征提取、候选区域生成和类别检测的基础上添加了2个对抗训练模块,即在目标检测网提取的图像级及实例级特征表达之后添加了梯度反转(GRL)层和域别判别器,使得目标检测网的特征提取部分和ROI池化部分,与域别判别器在迭代过程中形成对抗,以提取图像中那些和环境不相关的公有特征。目标是尽量训练出更完美的域别判别器,使其能准确地判别图像来自哪种环境;同时尽量使目标检测网提取的特征更好地欺骗域判别器,从而使特征提取更偏向域无关的方向,集中于要识别的物体本身。同时算法还加入了一致性正则项,使得图像级和实例级的域分类器结果更加一致,来更好地学习交叉域的检测框预测。
图1 域适应FasterRCNN网络结构图
1.2 复杂背景目标检测算法设计
针对工业场景中总体背景变化不大,但存在多种动态干扰因素的现象,将特征空间的域适应方法改进成为可适应多种环境干扰因素的模型训练方法。改进后的域适应Faster RCNN算法如图2所示。
图2 域别平衡域适应网络结构图
算法关键点主要包括:1)将原网络中的域判别器改为多分类域判别器,以满足3种不同环境条件下的域适应,针对不同环境条件下的样本可收集数目不同的问题,设计了针对多种不同域别训练样本的类别平衡的softmax和Sigmoid cross Entropy损失函数,分别将其应用于图像级及实例级域适应的代价函数当中,以达到防止对抗训练过程中梯度更新被样本数较多的域别主导的目的;2)在目标检测网的RPN网络及最后的分类部分,引入Focal loss损失函数,加强对难检样本的检测效果。
1.2.1 多环境条件域适应及域别平衡设计
为使网络可提取源域和多个目标域环境下检测目标的公有特征,使其所提取的特征最大限度地和域无关,本文在域适应网络中采用多分类域判别器。而针对不同域别样本收集难易不同,因而样本数目差别较大的问题,本文在图像及实例级域适应部分分别设计了域别平衡,以改善梯度更新方向。
类别平衡的多分类域判别器Sigmoid Cross Entropy应用于实例级特征提取中,其损失函数表达式如式(1):
(1)
其中,N表示样本数;C表示通道数,3个通道是因为one-hot编码表示下,区分样本的3个域别需要三位二进制编码;Pr(yj=1|x)表示该域别标签为1,也就是样本属于该域别时,对应的输出概率值;Pr(yj=0|x)表示样本不属于该域别时对应的输出概率值。当该域样本较少时,设定一个较大的权重值βc,这样,不属于该域别的样本就会被乘以一个较小的权重值1-βc,从而使得样本较少的域别在loss当中贡献的分量更多一些,避免其它域别样本对于梯度更新的主导。
基于Caffe源函数中的Sigmoid Cross Entropy Loss层,本文对公式进行改写以保留原来该层数值平衡的效果,则有:
(2)
其中,pn代表样本标签;xn代表上个全连接层的输入值;β为需设定的超参数。
1)当xn≥0时,将式(2)展开并合并,可得:
Ln-=(-βpn+pn+β-1)xn-
(2βpn-pn-β+1)ln(1+e-xn)
(3)
2)当xn<0时,为避免e-xn数值过大溢出,将式(2)中的ln分式上下同乘exn,化简可得:
Ln-=βpnxn-(2βpn-pn-β+1)ln(1+exn)
(4)
Sigmoid Cross Entropy属于one-hot编码,因此Sigmoid Score的输出为N×C×W×H维的特征图(N代表样本数;W和H分别为图像宽、高;而C代表通道数,对应到像素点就是one-hot编码对应的每个类别位)
域别平衡的Softmax with Loss应用于图像级特征提取中,实现细节有所差异。
1.2.2 基于Focal Loss的损失函数设计
在one-stage网络的训练过程中,难易分类样本数不平衡,导致易分类样本主导网络的梯度更新方向,造成难分类样本分类错误率较高的问题,Focal Loss可改善这一问题。
图像检测中,样本分类难易度是以概率置信度作为衡量标准的。观察普通的交叉熵损失函数(CE Loss)如式(5):
(5)
(6)
式(6)中,难易样本由其输出概率值来表征,当其为正样本时,输出概率值较小的为难分类正样本;负样本情况相反。γ设置越大,易分类样本对损失函数的贡献下降越明显。通过调节超参数γ,可以适当增加难分类样本对损失函数的贡献比重。此外,目标检测网络的RPN部分会对候选框内容进行前景、背景的分类判断,考虑到每张图像中检测目标和背景所占的比例可能相差较大,本文所用Focal Loss还引入了α用于调节正负样本比例。
2 数据集建立
采用搭建于ImageNet数据集上的预训练模型结合收集到的公开遥感影像数据集[11]进行重训练,并按照Pascal VOC格式制作遥感舰船影像数据集。
遥感影像数据集包含源域(晴天日间清晰)、目标域1(日间极浓雾)和目标域2(夜间有雾有遮挡)3个域别共1250张图像。按域别划分为训练集和测试集。最终数据分布如表1。
表1 遥感影像数据集样本分布情况
本文设计的数据集,每个域别的训练和检测图像中都包含该域别典型及难以检测的样本案例。因为训练时要进行域别适应的训练,所以不同域别的图像之间域差要尽量明显,从而体现出域适应部分对抗训练提取域别不相关的公有特征的效果。
3 实验设计与结果分析
3.1 实验基础条件设置及实验设计
本文实验以收集到的卫星遥感影像舰船在不同天气条件下的数据作为应用场景对算法进行验证。训练时通过调整训练次数及观察在训练集上loss值随着迭代次数的变化确定最优模型,并将本文算法与其它算法进行比较,用总数据集及每个域别的数据集上的平均准确率均值mAP来评价模型的好坏。
在遥感影像实验中对Faster RCNN,改进后的多域别域适应Faster RCNN(下简称FMda)及只加入Focal Loss和域别平衡的网络进行对比实验。为保证变量单一,即只有网络结构及参数不同,采用同样的训练集对不同网络模型进行原始训练,然后采用每个域类别上同样的测试集对每个训练出的模型进行测试。为了找到每种网络结构表现最佳的模型,对FMda先训练10000次,观察loss曲线在何时趋于平稳。然后保存每种网络在达到收敛的最小迭代次数时的模型,并比较它们在测试集上的表现。
实验中参数β及α设置为域类别比例的倒数,并进行了归一化处理。为了突出清晰图像在特征提取中的分量,适当加高了源域的比例,最终在实验中域适应部分的(beta_1,beta_2,beta_3)及(alpha_1, alpha_2, alpha_3)都设置为0.4, 0.4, 0.6。Focal Loss中参数γ设置为理论上的最优值2。
3.2 实验结果对比分析
图3为Faster RCNN训练10000次loss曲线,由图可知大概在8000次迭代左右就已收敛。域适应部分的loss: da_conv_loss和dc_loss的最终目的是区分不出样本来自哪个域,即分对分错的可能性理论上各占50%,所以稳定时loss曲线在一个恒定范围内上下波动。如图4所示,可以看出2000次以后幅值趋于稳定,然后在0.6到2.1范围内稳定地波动,证明对抗训练已经收敛。
图3 Faster-RCNN 训练过程loss曲线
图4 da_conv_loss迭代曲线
由此得知,判断2个域适应模型是否收敛,主要观察检测网部分的4个loss:Rpn_cls_loss, rpn_cls_bbox, loss_cls和loss_bbox。实验表明它们在差不多的时刻收敛,以rpn_loss_bbox为例(图5),可以看出整个模型约在8000到10000次迭代时收敛。
图5 rpn_loss_bbox迭代曲线(FMda)
取3组网络在相同训练集上迭代10000次时的训练模型在相同的测试集上进行测试,将效果进行对比,如图6-8所示。每组图像中左图和右图分别为原Faster RCNN及文中改进后网络的检测效果。通过清晰、日间浓雾、晚间水汽条件下的几组检测样例对比,可以得到检测效果显著提升的结论。
图6为日间清晰船只图像,可以看出本文网络相比于Faster RCNN,对远近及大小船只的检测更具有鲁棒性,检出率及回归框的准确率也大大提高。
图6 检测样例
图7为日间浓雾状态下的船只检测效果,可以看出本文网络对视野存在噪声不清晰、甚至肉眼难以辨识情况下的远处模糊小目标的检测效果大大提升。
图7 检测样例
图8为夜间黎明时分在近港口处对靠岸船舶在有桥及堤坝等干扰物的情况下的目标检测,可以看出本文网络有效避开干扰物并检测出了干扰物周围的所有船只,甚至因光线黯淡与海水融为一体的船只也可检出。
图8 检测样例
此外源域及2个目标域的图像都存在陆地背景及海面类似船舶的养殖区的干扰,本文的深度学习网络较好地避开了这些干扰,达到了精确的检测效果。
对比3个网络在测试集上的mAP值,如表2所示。表中Focal+balance指不加入域适应和对抗训练,只是单独在图像和实例级特征表达处加入一个域别分类的分支,以进行域别平衡,然后再加入Focal Loss的网络;FMda指文中算法提出的网络。分析表格知,相比Faster RCNN, FMda的检测结果在相同训练次数下,总的检测准确率提升了近17%。单独比较每个域别,源域提升为15%,目标域1提升近19%,而目标域2的提升接近25%,证实了域别平衡算法的有效性。在原Faster RCNN网络中,因梯度更新被数量较多的源域和目标域1主导,妨碍了目标域2的检测效果。而域别平衡改善了这个问题。
表2 不同检测网络mAP值对比
此外,对比Focal+balance和FMda的检测结果,证实了域适应对于模型适应复杂环境条件下目标检测的有效性。
4 结论
设计了改进的域适应Faster RCNN模型,用于实现多种干扰因素环境下小样本的目标检测问题,特别是部分环境条件下的样本难以收集、样本量不足导致的检测精度差的问题。本文基于域适应Faster RCNN算法,提出了域别平衡、Focal Loss方法等针对网络的改进方法,并使用局部标注策略加以辅助。
实验证明,本文算法对于多个域适应、同时每个域样本数量不平衡及样本检测难度不一致情况下的目标检测非常有效。与经典的Faster RCNN目标检测算法、以及域适应Faster RCNN目标检测算法相比, 本文算法不仅提高了模型整体的检测精度,还提高了针对低质量图像、小样本数据集的检测精度。
航天领域在景象匹配等寻的任务中常涉及对遥感、红外、雷达拍摄的复杂地理环境景象的精确目标识别,本文的研究成果为解决复杂背景图像中的目标检测问题提供了一种可行的思路,同时本文算法也能够进一步推广到类似煤矿井下等复杂环境中的目标检测。