李在瑞, 郑永果, 东野长磊
(山东科技大学 计算机科学与工程学院, 山东 青岛 266590)
近些年,随着卫星及遥感技术的发展,遥感图像的目标检测在城市规划、灾情救援、车辆监控等各种实际应用中起到了至关重要的作用[1]。 深度学习技术的迅速发展,使得目标检测有了重大突破,许多高性能的神经网络算法被提出[2]。 目前,基于深度学习的目标检测算法可以大致分为二阶段算法和一阶段算法两类,二阶段算法专注于提升模型对目标的检测精度,一阶段方法则在追求精度的基础上又兼顾了检测速度。
二阶段算法的经典模型是Fast R-CNN[3],其使用Region Proposal Network(RPN)来选择对象的候选边界框,随后又进一步筛选出较为准确的目标区域。 特征金字塔网络(FPN)[4]使用类似金字塔的结构来学习不同尺度的特征。 Tridentnet[5]通过引入扩展卷积来改变大小最佳的感受野,并基于不同大小的感受野构造多分支结构,从而解决多尺度检测问题。 一阶段模型中,SSD[6]增加了多个卷积层,以获得多尺度特征图进行预测,并设计不同大小的先验边界框以更好地检测目标。 YOLOv4[7]采用了更为高效的csp-darknet 作为主干网络并设计多尺度预测。 TPH-YOLOv5[8]则将Transformer 与网络相结合,增强模型提取特征的能力。
以上算法虽然在识别自然图像时都表现出了良好的效果,但由于遥感图像存在背景复杂、目标尺度变化范围大、物体分布密集等检测难题[9],通用目标检测算法对高分辨率遥感图像的检测具有很大的局限性[10]。 为解决上述问题,本文基于YOLOv5 框架,提出特征信息补充与加强以及多尺度融合的方法,以增强模型的检测能力。
随着YOLO 系列网络的提出,其在各种视觉检测任务中展现了出色的性能。 其中,YOLOv5 主干网络是由Focus 模块、CSP 结构以及SPP 模块组合而成。 Focus 模型会对图片进行切片操作,在宽和高两个维度上每隔一个像素取一个值,从而使特征图的通道数变为原来的4 倍,能够在最大程度减少信息损失的同时实现两倍下采样。 YOLOv5 在CSPNet[11]的基础上重新设计csp 结构,并在原本的darknet 网络中大量插入该结构。 spp 模块对特征图做不同大小的池化操作,从而在原特征图的基础上融合不同感受野,丰富上下文信息[12]。
YOLOv5 在Nick 部分结构参考了FPN 和PAN。首先,设计自顶向下路径来融合网络中不同层次的特征,将包含丰富语义信息的深层特征向下传递与浅层结合,能够提高模型对多尺度目标的检测能力;后又增加自底向上的金字塔结构,把浅层特征映射到深层网络,补充检测目标的细节及空间信息,进一步提升模型的检测效果。 同时,在nick 部分应用csp2_x 结构,使用X个卷积模块替代残差单元。
Head 部分则对图片进行预测与分类,YOLOv5 设计3 种尺寸的特征图来检测大中小不同种类的目标,最后通过非极大值抑制来筛选预测框,实现检测过程。
Transformer 模块早先广泛应用于NLP 领域,通过自注意力机制来捕获序列元素之间的依赖关系,在可并行性和特征提取方面展现了出色的性能[13]。近些年来,许多计算机视觉的学者开始将其作用于图像相关的研究上。 Parmar 等人提出 Image Transformer[14]算法,基于Transformer 解码器用于图像生成任务;随后Vision Transformer[15]被提出,并首次在大型图像数据集上展现出超越卷积网络的性能,在图像分类方面具有较强的泛化能力;Swin Transformer[16]则采用移动窗口的机制来计算注意力,有效解决了传统Transformer 模块中计算复杂度较高的问题,并通过不同窗口之间的特征交互提取到更为丰富的语义信息。
Transformer 由编码器和解码器两部分组成,基本原理是通过将图片展开成一维,得到图像特征张量,输入到编码器部分使用多头自注意力学习目标特征,增强图像中目标的语义信息,再利用解码器与解码器协同训练,学习注意力规律来强化目标和特征之间的关联关系,进而提升检测效果。
R-YOLOv5 目标检测算法结构如图1 所示。 首先,在YOLOv5 的主干网络CSPDarkNet 中使用跨阶段局部扩张结构,替代原本的跨阶段局部网络结构;其次,在主干网络的输出特征图瓶颈部分结合Transformer 模块中的编码器;最后,在原本的Nick部分嵌入多尺度特征融合模块。
跨阶段局部网络结构(Cross Stage Partial Structure,CSP)被大量应用到YOLOv4 的主干网络,YOLOv5 又在v4 的基础上将其与nick 部分结合。CSP 结构包括两个分支:一是将输入特征图进行X个残差单元的卷积操作,另一部分进行简单的3*3卷积计算特征后,与上一分支结合。 CSP 结构能够增强网络的特征提取能力,使模型获取到更为丰富的语义信息。
针对遥感图像中检测目标尺度变化较大,物体分布密集的特性,对CSP 结构进行改进,提出跨阶段局部扩张结构( Cross Stage Partial Dilated Structure,CSPD),如图2 所示。 首先,保持残差单元分支不变,在另一分支中使用6 个连续的扩张卷积,扩张率分别为3、6、12、18、24,来获取同一特征图的不同感受野,从而覆盖遥感图像中各种不同尺度的检测对象。
图2 跨阶段局部扩张模块结构图Fig.2 Cross Stage Partial Dilated module
其次,当图像中目标分布较为紧密时,使用扩张卷积会丢失特征信息,为了避免检测对象的漏检现象,在连续的6 个扩张卷积基础上采用密集连接结构,将原特征图与每层的卷积分别做逐个元素的加操作,从而加强特征的传播,丰富语义信息。
YOLOv5 主干网络分别输出3 个不同层次大小的特征图,作为后续多尺度特征融合部分的输入。将主干网络中负责输出特征图的瓶颈(Bottleneck)部分与Transformer 模块中的编码器相结合(如图3所 示), 提 出 瓶 颈 Transformer 结 构( TR -Bottleneck),提高模型对语义信息的提取能力,丰富图像全局信息,抑制背景对目标识别的影响。
图3 瓶颈Transformer 模块结构图Fig.3 Transformer bottleneck module
首先,将图片做切分并降低维度,即将原本H*W*C的图像变为N*(P2*C) 的Tokens,其中随后输入Encoder 中的多头注意力机制,进一步做特征提取,如式(1)所示:
式中:Q、K、V分别为输入多头注意力的查询向量、键向量、值向量,dk代表特征维度。 将查询向量与键向量相乘后,经过softmax 激活函数并归一化处理,再与V相乘加权,得到输出结果。
最后输入由两个全连接层及激活函数组成的MLP(前馈神经网络)得到整个Transformer 模块的输出特征,并与Bottlenck 结构的特征信息结合。
YOLOv5 输出的3 种尺寸的特征图,分别对应大中小不同的检测对象,高层语义信息中检测大目标,低层语义信息中检测小目标,而遥感图像中往往既有大目标又有小目标。 特征融合时,由于不同层间特征的不一致性,将会影响最后的检测结果。 为了缓解上述问题,更好的让网络利用高低层语义信息,在nick部分的最后,嵌入多尺度特征融合模块(Multi Scale Feature Fusion Module,MSF),如图4 所示。
图4 多尺度特征融合模块结构图Fig.4 Multi-scale feature fusion module
首先将3 种尺寸的特征图进行采样操作,调整到同一尺寸;再根据通道维度整合并接入SoftMax函数生成权重参数;最后3 层特征分别乘上各自的权重参数,得到融合后的特征,表达如式(2)所示:
式中:x1、x2、x3分别为3 种尺寸的特征图,cat表示对特征图做通道维度的整合, ⊗表示点乘操作,f则为最终的输出特征。
实验在linux 系统下进行,所用GPU 为Tesla P100,显存16 G,深度学习框架为pytorch。 实验所用遥感数据集为DIOR,其中包括23 463 张图像,训练与测试各取一半的样本。
实验采用平均精度均值(mAP)、平均精确率(AP) 作为评估指标,AP和mAP是可以反映多类别目标全局检测精度的指标在文献中被广泛用于评估多类别目标检测性能表达如式(2)、(3)所示:
其中,平均精度AP表示的是计算单类目标P - R曲线下面积的结果,p为精确率,R为召回率;而mAP是所有类别AP的平均值;N为检测目标的类别总数;APi表示第i个类别的平均检测精度。
如图5 所示,R-YOLOv5 算法首先对输入的遥感图像进行预处理,扩展图像数据;其次,根据模型配置文件搭建网络结构,读取训练参数,并根据训练结果更新网络参数;最后,加载训练权重与测试数据集,输出模型的预测图像。
图5 R-YOLOv5 算法流程图Fig.5 R-YOLOv5 algorithm flowchart
表1 为本文算法R-YOLOv5 与不同目标检测模型在DIOR 数据集下的实验结果。 其中包括一阶段模型Faster-RCNN,以SSD、RetinaNet、YOLOv4 为代表的二阶段模型,及无锚方法YOLOX。
表1 DIOR 数据集下对比试验Tab.1 Results on Dior dataset %
由表1 可知,R-YOLOv5 对飞机、机场、船、桥、车辆等密集分布、大小尺度不一目标的精度均有不同程度的提高,具有良好的表现。
图6 所示为R-YOLOv5 对密集分布、大小尺度不一目标的效果图。 这两种情况在检测过程中都较易对目标错检或漏检,模型识别的难度较大。 如图6(a)、(b)中飞机与油罐的分布较为密集,模型对此类目标能够较为全面的做出识别;图6(c)、(d)中车辆与桥梁、棒球场与网球场等各类物体的尺度变化给模型带来了检测难题,结果表明,R-YOLOv5 可以较为准确的检测出目标对象。
图6 R-YOLOv5 检测结果Fig.6 R-YOLOv5 detection result
基于高分辨率遥感图像存在检测对象密集度高、大小不一等问题。 本文提出R-YOLOv5 算法,通过扩大感受野和增强特征信息以及改善特征融合来提高模型对密集物体以及多尺度目标的检测精度。 实验表明,本文提出的目标检测算法在遥感数据集上具有较好的识别能力。