基于难易样本平衡因子的遥感图像目标检测
2022-03-24王华军李忠玉赵金泉
黄 聪, 杨 垚, 王华军, 李忠玉,赵金泉, 马 瑜, 万 军
(成都理工大学 a.地球物理学院,b.地球勘探与信息技术教育部重点实验室,成都 610059)
0 引言
遥感图像目标检测作为遥感图像处理领域中的一个重要分支,近些年来得到了研究者们的广泛关注。相对于自然场景下的图像,光学遥感图像具有视野范围大,目标与背景对比度低、目标较小且密集等特点,这些特点进一步增加了目标检测的难度[1]。准确高效地检测出遥感图像中感兴趣目标,已经成为了智能化处理遥感图像信息的关键问题之一。早期的遥感图像目标检测,主要是使用传统的机器学习技术并结合遥感图像的表层信息(如纹理、几何特征等)进行目标检测[2,4]。对于不同类别的检测目标,研究者基于大量的先验知识人工设计出各种特征表示,主要有梯度直方图特征、尺度不变特征变换和Gabor特征等[5,13],然而人工设计的特征对于多样性的变化没有很好的鲁棒性,而且传统的机器学习方法(如SVM、Adaboost等)算法具有特征学习不足、时间复杂度高等缺陷,导致目标检测精度较低,不能很好地满足实际需求[18]。
如今,深度卷积神经网络由于能够自动地学习到更深层次的特征,在图像的分类和检测等领域获得的了广泛地应用。目前主流的目标检测模型主要分为两类:①以Faster R-CNN为代表的two-stage目标检测算法,首先通过提取机制来定义感兴趣区域,然后这些感兴趣区域由检测网络进一步处理获得检测结果[16-17];②以YOLOv3为代表的one-stage目标检测算法,不需要经过区域提取层直接从锚框来预测结果[3]。相对于传统的机器学习算法,基于深度学习的目标检测算法其表征能力更强,学习到的特征更丰富,能够适应各种复杂多样的场景,检测精度也得到了很大地提高。
笔者主要贡献是将YOLOv3运用到遥感图像目标检测中,为了适应遥感图像背景复杂、感兴趣目标小等特点,在检测网络中引入难易样本平衡因子,进一步平衡简单样本和难例样本的损失权重,从而提升了模型的检测性能。
1 相关工作
在目标检测领域,不平衡问题越来越得到了人们的关注,有效地处理不平衡问题能够进一步提升检测器的性能。目前,不平衡问题主要分为四类:①类别不平衡;②尺度不平衡;③空间不平衡;④对象不平衡[14]。对于类别不平衡,主要的研究方向分为正负样本之间的不平衡和多个正样本之间的不平衡。为了解决正负样本不平衡的问题,近年来研究人员提出了一系列有效的理论和方法。其中最为简单有效的方法,是直接在数据集中进行各种剪裁和融合操作来增强数据集从而达到样本平衡,如Dwibedi等人直接对图片中的目标进行随机裁剪[10]。硬采样方法作为解决目标检测中不平衡问题的常用方法,它主要是通过从图像数据集合中,选取一个特定正负样本比例的子集来消除样本不平衡所带来的影响。例如在Faster R-CNN检测模型中,分别从所有的正负锚框集合中随机选取了128个正负锚框样本用来训练RPN网络[8]。不同于随机采样的方式,在线难例样本挖掘作为另一种硬采样方法,它主要是从含有大量简单样本的数据集中自动地选取其中的难例样本进行训练,从而提高检测器的性能[6]。针对硬采样方法只选取部分样本进行模型训练所带来的不足,软采样方法主要是通过整个数据集中每个样本在训练过程中相对重要程度来调整其对模型参数更新的贡献,例如在YOLO算法模型中,作者直接使用常系数来定义正负样本的权重用于模型的训练更新[11-12,15]。
2 本文方法
笔者主要将YOLOv3应用于遥感图像目标检测。为了适应遥感图像视野范围大、背景复杂、目标小等特点,在网络的损失函数中引入平衡因子来进一步平衡不同样本之间的损失权重以提高模型的检测精度。
2.1 Darknet-53
YOLOv3是在YOLOv1和YOLOv2基础上改进而来的单阶段检测网络。模型采用Darknet-53为主干网络,网络总共包含53个卷积层。表1中显示,该网络大量使用了3×3和1×1卷积,同时借鉴了残差思想,设置多个残差模块来加强图像特征地提取[9]。如图1所示,每个残差模块包含两个卷积层和一个残差连接,卷积层之间使用leaky relu激活函数。通过使用残差连接,可以有效地解决深度网络退化问题。
表1 Darknet-53网络结构
图1 残差模块
2.2 多任务损失函数
YOLOv3中使用多任务损失函数进行训练,式(1)表明损失函数可分为回归损失Lossbox、置信度Lossconf损失和分类损失Losscls三部分[15]。
Loss=lossbox+lossconf+losscls
(1)
其中回归损失Lossbox采用均方误差:
(2)
置信度损失Lossconf采用二值交叉熵误差:
(3)
分类损失Losscls采用二值交叉熵误差:
(4)
2.3 难易平衡因子
在YOLOv3多任务损失函数中,不同类别样本被赋予了相同的损失权重,而数据集中不同类别数量差异很大,使得最终的损失函数由部分类别样本主导,不利于网络模型的学习和训练。为了解决YOLOv3存在的问题,在网络的损失函数中引入难易平衡因子能够进一步提高检测模型的性能[7]。我们定义难易平衡因子Φ如下:
Φ(θ)=-α(1-θ)γ
(5)
其中θ定义如下:
(6)
(7)
(8)
在多任务损失函数中引入难易平衡因子后,能够提高算法模型对数据集的表达能力,有利于提高模型的检测精度。
3 实验与分析
3.1 数据集和评估指标
这里所有的实验都是基于公开的遥感数据集RSOD-Dataset,该数据集总共包含四个类别,分别为飞机、油罐、立交桥和操场。由图2可以看到,对于飞机类别,目标尺度相对图片较小且多为连续密集排列;而对于立交桥类别,其图片背景相对复杂且目标没有明显的轮廓。因此,这两类目标的检测难度一般要大于油罐和操场。对于评估指标,我们使用平均精度AP50、AP75均值平均精度mAP和简单kappa系数来评估模型对于单个目标和总体的检测性能。
图2 检测示例
3.2 实现细节
笔者使用Ubuntu20.04操作系统,PyTorch1.6.0深度学习框架和NvidiaGTX2080Ti 11GB来训练和测试算法模型,网络模型的学习率设置为0.001,批量大小为6,迭代周期为120,锚框数量为12个,锚框的宽高尺度通过在数据集上使用K均值聚类算法获得,难易平衡因子中的α参数设置为0.75,γ为2,其余的超参数设置不变。
3.3 主要结果
为了验证本文改进方法的有效性,对YOLOv3检测模型和本文方法进行了一组对比消融实验。表2是两个算法模型在遥感数据集RSOD-Dataset上的平均检测结果,从表2中对比可以看出,当IOU=0.5时,YOLOv3算法模型的均值平均精度mAP为69.12%,kappa系数为0.50;而改进后的YOLOv3算法模型的均值平均精度mAP和kappa系数则分别提高到了75.53%和0.57,尤其是对于尺度较小的飞机类别和背景较复杂的立交桥类别,两者的检测精度分别有8.19%和15.12%的提升;当IOU=0.75时,相对于YOLOv3,本文改进方法的均值平均精度和kappa系数分别提高了14.07%和0.12,证明了本文方法更适用于小尺度和复杂背景的目标检测。
表2 算法在RSOD-Dataset数据集上的平均检测率对比
4 结论
针对遥感图像视野范围大、背景复杂、目标小等特点导致的低精度和低效率问题,笔者在YOLOv3中引入了难易平衡因子来进一步提升模型对遥感图像的检测性能。通过消融实验结果表明,引入该平衡因子后的检测模型在数据集上的平均检测精度达到75.53%,优于原YOLOv3检测模型,尤其是对于尺度较小的飞机类别和复杂背景的立交桥类别,检测精度有了显著提高,证明了本文方法对YOLOv3的改进能够更加适用于遥感图像目标检测任务。在未来的工作中,将会继续研究如何提升目标检测算法对于难例样本的检测性能,从而进一步改进本文的方法,促进遥感图像目标检测与深度卷积神经网络的融合应用。