董丽君,曾志高,易胜秋,文志强,孟 辰
(湖南工业大学 计算机学院,湖南 株洲 412007;湖南省智能信息感知与处理技术重点实验室,湖南 株洲 412007)
遥感技术[1]在航空航海动态监控、生态资源环境监测、军事目标检测等众多领域发挥着重要作用。而遥感图像目标检测是遥感图像分析技术的重要一环。近年来,人工智能快速崛起,基于深度学习的目标检测算法[2]层出不穷,但是随着工业应用要求的不断严格,提高目标检测的精度仍然是研究的重点方向。传统的目标检测算法利用滑动窗口遍历原始图像,易造成候选区域选择效率低下、窗口冗余等弊端。遥感图像背景复杂难以检测[3-4],而传统目标检测算法只适用于背景简单、特征显著的图像,实际应用有很大的局限性。随着深度学习技术[5]的飞速发展,基于深度学习的目标检测算法凭借其结构灵活、自动提取特征和强大的数据处理能力等优势,逐渐替代传统目标检测算法,成为当前目标检测的主流算法。相较于传统目标检测算法,基于深度学习的方法具有性能较高、实际应用场景广、使用方便简洁等诸多优点。
基于深度学习的目标检测算法主要有两种,一是以Fast R-CNN(convolutional neural networks)、Faster R-CNN等为代表的Two-Stage算法[6-7]。这类算法主要分为两个步骤,第一步提取感兴趣区域;第二步结合主干特征,提取网络输出,进行目标精准定位及类别判定。另一种是以SSD(single shot multibox detector)、YOLO(you only look once)等为代表的One-Stage算法[8-10]。这类算法直接在特征提取层做目标检测,没有生成候选区域,大大节省了检测时间,且检测精度没有明显劣势。随着对检测精度及构建更深层次网络的不断追求,国内外研究者做了大量研究,Cheng G.等[11]提出一种学习旋转不变卷积神经网络模型RICNN(rotation-invariant convolutional neural networks),该模型在现有CNN结构的基础上引入和学习新的旋转不变结构来提升检测性能。Cheng G.等[12]提出了COPD(collection of part detectors)模型,通过一组代表性的分类器为多类地理空间目标检测提供了一种实用模型,能有效提高分类精度。Li K.等[13]从特征融合角度提出了RI-CAO(rotation- insensitive and context-augmented object detection)模型,通过局部上下文特征增强和双通道特征融合网络,提高模型检测性能。而Wang C.等[14]通过优化检测框筛选机制提出了DODN(deconvolutional object detection network)模型,该模型通过构建二级反卷积网络取代锚定框机制,再通过区域生成网络(region proposal network,RPN)生成感兴趣区域,提高了模型检测精度。Ultralytics公司提出了YOLOv5算法,其采用跨阶段局部网络(cross stage partial network,CSP)作为主要结构,并结合空间金字塔池化(spatial pyramid pooling,SPP)和路径聚合网络(path aggregation network,PANet)对网络结构进行了优化,同时数据集进行马赛克增强和更改损失函数为GIoU loss[15],有效地提高了目标检测精度。本文拟将基于YOLOv5算法的优化模型应用于遥感图像数据集,在开源的NWPUVHR 10数据集[16]和RSOD数据集[17]上进行训练测试,同时针对遥感数据集的特点进行数据增强,对模型损失函数进行改进,优化目标检测方法,以期提高遥感图像的检测精度。
YOLO算法创造性地将目标检测当作回归问题来解决,直接从特征提取层获取检测框边界和类别概率。与使用RPN网络或滑动窗口的方法不同,YOLO算法将候选区域和检测阶段合二为一,将输入划分成s×s个窗格,每个格子会生成不同长宽比的B个边界框(bounding box)。当目标框中心点落在某个窗格,则此目标的检测由该窗格负责,同时预测出边界框的位置信息、分类概率及置信度(confidence)。
目前,YOLO系列中,最强大的模型为YOLOv5模型,其具有轻量级的模型大小及超高的准确率等优点。具体模型结构如图1所示。
图1 YOLOv5模型结构图Fig.1 Structure diagram of YOLOv5 model
YOLOv5共有YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x 4种不同大小的模型,其中YOLOv5s模型最小,也是速度最快的一个,其他3种模型是在此基础上不同程度地增加模型宽度与深度。为了提高检测精度的同时也保证检测速率,课题组选择了YOLOv5s模型。YOLOv5s模型在第二次和第三次CSP结构中采用了3个残差组件,其余的CSP结构只采用一个残差结构,CSP结构的使用缓解了大量推理时间问题。同时在主干特征提取网络前还加入了Focus模块,主要是对图像进行切片操作,最大程度减少了信息损失和推理时间,并进行了下采样操作,较完整地保留了图像下采样信息。在主干特征提取网络中借鉴了SPP-Net中的SPP模块,实现了多重感受野特征的融合,最大化提高了特征利用率。针对多尺度目标检测问题,采取了自上而下的侧向特征融合的FPN结构和自底向上的PAN结构,以此提高检测能力,结构如图2所示。
图2 FPN+PAN结构图Fig.2 Structure diagram of FPN + PAN
课题组选择的YOLOv5s模型,其结构较浅,在模型不够深的情况下,通过充足的侧向链接可以保证对不同分辨率的检测目标的检测。特别是对于高空拍摄的遥感图像,这类图像分辨率高且目标复杂,而侧向链接有助于解决该类遥感图像的检测难题。
马赛克数据增强原理如图3所示。
图3 马赛克数据增强原理图Fig.3 Mosaic data enhancement schematic diagram
课题组在数据集NWPU-VHR 10和数据集RSOD上进行训练和测试,数据集相对较小,为了提升检测效果,采用马赛克数据增强手段,提高模型的泛化能力。马赛克数据增强是从一个batch中随机选取4张图片,将4张图像通过随机缩放、裁剪、排布等操作随机拼接成一个设定边长的训练样本。这样做丰富了数据集,同时增加了许多小目标,对遥感图像检测更有利,能有效缓解遥感图像样本不足的问题,加强了网络鲁棒性。模型可以一次性对4张图像进行训练,这样使batch size不需要很大,减少了对GPU的要求,一个GPU也可以训练出较好的模型。
YOLOv5的损失函数包括3个部分,分类损失、定位损失与置信度损失。通过对这3个损失值进行加权相加得到总损失值。
3.2.1 分类损失函数优化
本文采用Focal loss函数作为分类损失函数,在One-Stage detector中会生成成千上万个候选框,但一张图片中的检测目标有限,这就导致大部分的候选框是负样本,带来了严重的正负样本不均匀问题。针对该问题,课题组使用Focal loss作为分类损失函数,其定义如式(1)所示,式中,代表预测值,y表示真实值,γ>0为可调节因子。令pt表示预测类别为真实标签的概率,定义如式(2)所示,代入式(1)后Focal loss函数可用式(3)表达。从式(3)可看出Focal loss函数是对交叉熵损失函数的优化,相比于交叉熵损失函数,Focal loss函数多了一个调制因子(1-pt)γ,当γ=0时,Focal loss就是交叉熵损失。
该损失函数的主要思想就是给正负样本加上一个权值,度量难分样本和易分样本的损失贡献,调节正负样本损失贡献的权值。图4为不同γ取值的Focal loss函数曲线对比图。
图4 Focal loss函数曲线Fig.4 Focal loss function curve
当类别概率pt→1.0时,表明预测值高度接近真实值y,此类样本属于易分样本,这些易分样本大部分是负样本和极少数与真实框高度吻合的正样本,模型能够快速准确地识别,此时(1-pt)→0.0,则以此来降低这些易分样本的权值。对于难分样本(1-pt)→1.0,此时Focal loss逼近于交叉熵函数,总体来说Focal loss函数降低了易分样本的损失贡献,使模型更关注于难分样本。如图所示,调节因子γ能有效降低简单样本的损失值,γ越大则简单样本的损失值越小。对于置信度损失,也就是有无物体的损失,模型通过输出confidence表示图像中是否有目标,有目标则为1,预测时用sigmoid函数转化为(0, 1)的概率值,最后通过二值交叉熵损失函数(binary cross entropy loss)进行反向传播。
3.2.2 定位损失函数优化
课题组对定位损失函数也进行了优化,采用了更全面的CIoU loss函数。在目标检测中,需要对比检测框与真实框之间的检测效果,YOLOv5原作者采用的GIoU loss,定义如下:
式(4)~(5)中:A、B分别为预测框与真实框;C为A与B的最小外接矩;IoU为真实框与预测框之间的交并比(intersection over union);GIoU为对IoU的优化,考虑了真实框与预测框之间的重叠面积;LGIoU代表GIoU的损失。
当预测框包含于目标框时,GIoU loss退化成了IoU loss,无法区分相对位置。一个好的定位损失函数应该不止考虑到重叠面积,而CIoU还考虑到了距离、尺度以及长宽比。CIoU loss定义如下:
式(7)~(9)中:α为权值;v为衡量长宽比的相似性;b、bgt分别为预测框与真实框;w、h分别为预测框的宽和高;wgt、hgt分别为真实框的宽与高;c为两个矩形框的最小外接矩的对角线;ρ为求两个矩形框中心点的欧氏距离;CIoU为对IoU的一种更全面的优化;LCIoU为CIoU的损失。
定位损失函数如图5所示。
图5 定位损失函数示意图Fig.5 Locating loss function diagram
CIoU loss优点如下:
1)当预测框与目标框不重叠时,边界框仍然可以学习往目标框移动;
2)直接优化两个目标框的距离,收敛速度更快;
3)对于预测框包含于目标框的情况,GIoU恒相等,无法学习到具体相交情况,而CIoU可以加速框回归;
4)考虑了长宽比,使预测框更快地回归到目标框。
3.3.1 自适应锚框
由于遥感图像目标尺寸复杂,因此训练时修改默认锚定框为自适应锚框,生成更符合数据集的锚框。一个锚框由面积(s)和长宽比(ratio)定义,计算公式如下:
式中:w为边框的宽;h为边框的高。
在训练初期,如果召回率大于阈值则不改变默认锚框,如果召回率小于阈值,则利用K-mean均值和遗传算法对数据集进行分析,自动学习新的预定锚框,获得更适合数据集的预设锚定框。
3.3.2 自适应图片缩放
对于输入图像,传统的做法是将图像缩放到固定大小再进行后续操作。当图像的长宽比过大或过小时,则会产生大量的填充区域,造成信息冗余,影响模型推理速度。基于遥感图像的复杂性,采用了自适应图片缩放,先选择图像的较长边进行缩放到固定尺寸,本文设定为640,按照该比例再对较短边进行缩放,这样得到一个小于640的短边长,具体公式如下:
YOLOv5网络模型中经过了5次下采样,最后的特征层感受野为32,为了便于计算机计算,对小于640的短边进行填充,填充到大于短边同时为32的倍数的最小值。这样保留了图像原有的比例信息,同时也最小化了填充黑边,降低了原始填充方法带来的信息冗余问题,在测试时采用自适应图片缩放,缩减填充,提高模型推理速度。
本项目是基于Pytorch框架,使用GPU进行训练,试验环境具体配置如表1所示。
表1 试验环境配置Table 1 Experimental environment configuration
本文基于现有的配置,batch size设为4,初始学习率为0.01,epochs设置为1 000。NWPU-VHR10数据集包括650张含目标的图像和150张无目标图像,共800张,10个类别,分别为飞机、舰船、油罐、棒球场、网球场、篮球场、田径场、港口、桥梁和汽车。RSOD数据集共有976张图像,包含飞机、操场、立交桥和油桶4个类别。
本试验评价体系包括召回率R(recall),精准率P(precision),平均精准度AP(average precision)和均值平均精度mAP(mean average precision),各标准的具体公式如下:
式(14)~(17)中:TP、FP、TN、FN分别代表预测为正样本且预测正确、预测为正样本但预测错误、预测为负样本且预测正确和预测为负样本但预测错误;Psmooth(r)为平滑的P-R曲线。
为了更好地评价本次试验效果,课题组利用其他目标检测算法在数据集NWPU-VHR10上进行测试对比,比较结果如表2所示。表中加*数据为该类别AP最高值。从表2中可以看出,优化后的YOLOv5s模型在NWPU-VHR 10数据集上取得了较好的结果。优化算法的所有类别精度都接近1,其mAP较优化前的YOLOv5s模型高出2.31%,同时比其他模型中排第二的DODN模型高出8.19%。同时为了验证模型的泛化能力,也在数据集RSOD上进行了训练测试。
表2 不同算法在数据集NWPU-VHR10上的试验结果Table 2 Experimental results of different algorithms on dataset NWPU-VHR10
每类的P-R曲线如图6所示。从图中可以得出,优化后的YOLOv5s模型在数据集RSOD的mAP约为93.07%。其中优化后YOLOv5s模型在飞机、操场和油桶这3个类别上都有很好的检测精度,但在立交桥的目标检测精度只有79.27%,主要原因是RSOD数据集中类别样本不均衡,导致训练及测试样本不平衡,虽然进行了数据增强操作,增加了数据样本,但立交桥类的样本仅占测试样本集的1.94%。
图6 不同类别的P-R曲线Fig.6 P-R curves of different classes
本文算法对遥感图像小目标的检测效果如图7所示。从图中可以看出,本文基于YOLOv5s的优化模型对遥感图像小目标检测具有一定的优越性。
图7 本文算法对小尺度目标的检测效果图Fig.7 Small target detection results with the proposed algorithm adopted
比较其他模型与优化YOLOv5s模型之间的均值平均精度,发现优化YOLOv5s模型表现出了超高的性能,究其根本,在以下几个方面:1)在输入端对训练集进行了马赛克数据增强,增加了样本多样性,降低了过拟合,提高模型泛化能力;2)主干特征提取层结合了CSP结构与SPP结构,加强了特征提取效率;3)在进入检测端前对3种不同尺寸的特征图采用了自顶而下的FPN结构和自底而上的PAN结构,充分利用了特征提取信息,使低层次特征具有强语义信息高分辨率等特征,有利于小目标检测;4)采用Focal loss的分类损失函数,降低了正负样本不均衡问题,使模型更关注于难分样本的损失;5)采用CIoU loss作为定位损失函数,同时考虑了目标框之间的距离、重叠面积、尺度以及长宽比。
本文针对遥感图像小目标占比较高且目标复杂、目标尺度不一等问题,把优化后的YOLOv5s模型应用于遥感图像的检测任务中,同时应用马赛克数据增强,有效地扩充数据样本。结合自适应的方法降低目标尺寸复杂的影响,选取了CIoU loss作为定位损失函数,提高了模型检测精度。以Focal loss作为分类损失函数,可降低训练时正负样本不均衡问题。试验结果表明,优化后的YOLOv5s模型能有效地检测遥感图像,平均精准度和均值平均精度显著提升。