采用改进YOLOv3的高分辨率遥感图像目标检测

2022-07-02 05:12黄秉坤
关键词:置信度先验高斯

夏 英,黄秉坤

(重庆邮电大学 计算机科学与技术学院,重庆 400065)

0 引 言

高分辨率遥感图像包含丰富的数据信息,在城市规划、生态环境、农林管理等领域得到了广泛应用。快速准确的目标检测在遥感图像处理和分析中具有重要意义。遥感图像具有目标密集排列、目标方向不同、目标尺寸差别大等特点[1-5]。传统目标检测算法中常采用尺度不变特征变换( scale-invariant feature transform, SIFT[6]),方向梯度直方图(histogram of oriented gradient, HOG[7]),可变形部件模型(deformable parts model, DPM[8])等特征提取方法,但由于检测目标形状、光照条件以及检测背景的多样性和复杂性,特征提取的鲁棒性不够理想,不能很好地适应遥感图像目标检测的性能需求。

近几年,深度学习在目标检测、目标识别、图像分类等领域取得了巨大的发展。基于深度学习[9]的目标检测算法依靠卷积神经网络(convolutional neural networks,CNN)[10]提取图像特征,具有更高的检测效率和精度。目前,基于深度学习的目标检测算法主要分为2类:①包括空间金字塔池化网络 (spatial pyramid pooling network, SPP-Net)[11],Fast R-CNN[12]( fast region-based convolution neural networks),Faster R-CNN[13](faster region-based convolution neural networks)在内的基于区域的检测算法;②包括YOLO (you only look once)系列[14-16],SSD[17](single shot multibox detector)等在内的基于回归的检测算法。

Zhu等[18]提出在Faster-RCNN的基础上,利用特征融合改善算法对遥感图像的目标检测性能,但在处理效率上还有待提升;Etten[19]改进YOLOv2算法,修改网络结构以融合不同的检测模型,设计了遥感图像目标检测算法YOLT(you only look twice),但在面对不同尺寸目标时,其检测效果仍然不够理想;普晗晔等[20]将高分辨率卫星图像分割为相同大小的图像,输入到CNN中进行检测,存在部分目标重复检测的问题;Wang等[21]利用密集连接网络对SSD算法进行优化以减少网络参数,提高检测效率,但在检测复杂背景的遥感图像时还存在一定的局限性;Guo等[22]在YOLOv3的基础上使用空洞卷积对卷积层进行替换,提高了算法对遥感图像的检测精度,但对密集排列目标的检测精度还有待提高。

基于以上分析,本文在YOLOv3算法的基础上,针对遥感图像目标排列密集、目标尺寸差别大等特点,设计了一种改进的遥感图像目标检测算法(remote sensing-YOLO,RS-YOLO)。该算法通过改进K-means聚类算法,生成更适合遥感图像的先验框;优化非极大值抑制算法,适应遥感图像密集排列的特点;引入高斯模型并优化损失函数,通过计算预测框坐标的不确定度,提高预测框坐标位置的准确度。

1 相关研究分析

1.1 NMS算法

在目标检测的过程中,非极大值抑制(non-maximum suppression,NMS)算法[23]主要是解决同一个目标被多次检测从而生成多个检测框的问题。NMS算法的处理流程:从所有的检测框中找到置信度最高的检测框,逐个计算其与剩余检测框的交并比 (intersection over union,IOU),如果IOU大于一定阈值,就删除该检测框;重复上述过程,直到处理完所有检测框。NMS算法公式表示为

(1)

(1)式中:bi为待检测框;si表示bi的置信度;Nt为NMS阈值;M为当前置信度最高的检测框。

1.2 YOLOv3算法

YOLOv3[16]采用DarkNet53作为特征提取网络,设计了多尺度检测结构,提高了算法的检测效果。YOLOv3算法引入了anchorbox[15]的概念,在训练前,每个尺度上都预先设置大小、高宽不同的先验框,利用先验框生成准确的预测框。先验框包含的参数为(pw,ph),其中,pw和ph分别代表先验框的宽度和高度。

在训练和预测时,YOLOv3算法将整张图像划分成S×S的网格,假如检测目标的中心坐标落在某个网格内部,那么该网格就负责预测该目标。YOLOv3在3种不同的尺度上进行检测,每种尺度预测3个预测框。其中,包含的参数有检测框的偏移坐标(tx,ty,tw,th)、1个目标置信度以及n个类别置信度(n为类别个数),YOLOv3的网络输出如图1所示。其中,tx和ty表示预测框坐标的偏移值,tw和th表示预测框大小的偏移值。将3个预测尺度的信息组合并通过非极大值抑制算法得到最终的预测结果。

图1 YOLOv3的网络输出Fig.1 Network output of YOLOv3

以图像左上角顶点为坐标原点,则网格相对于图像的坐标为(x,y),且先验框宽度为pw、高度为ph,那么预测框可以表示为

bx=σ(tx)+x

by=σ(ty)+y

bw=pw·etw

bh=ph·eth

(2)

(2)式中:bx和by表示预测框的中心坐标;bw和bh分别表示预测框的宽度和高度。

目标置信度表示预测框中含有目标的概率,目标置信度的计算公式为

Confidence=Pr(Object)×IOU

(3)

(3)式中,Pr(Object)为网格含有目标中心的概率,若含有目标中心,则Pr(Object)=1,否则Pr(Object)=0。

IOU的计算公式为

(4)

(4)式中:S1为预测框的面积;S2为真实目标框的面积;IOU的取值为0~1,IOU越大,说明预测框与真实目标框重合程度越大。

类别置信度表示在确定网格包含目标中心的条件下,属于某个类别的概率。类别置信度表示为Pr(Classi),Classi表示第i个类别。类别置信度的计算公式为

Pr(Classi)=Pr(classi|Object)×Confidence

(5)

(5)式中:Pr(classi|Object)为网格预测的类别条件概率;Confidence为目标置信度。

经过多次迭代的YOLOv3算法在检测精度上有了较大提高,成为了许多目标检测研究的优选算法。但是,该算法同时预测目标的位置和类别信息时会丢失较多的空间特征,一定程度上影响了目标定位效果。同时,在高分辨率遥感图像中,小尺寸目标多,不同目标尺寸差别较大,且存在目标密集排列的情况,从先验框尺寸以及特征提取等角度而言,直接使用YOLOv3难以获得准确的检测结果。

2 改进的方法

为了使YOLOv3算法适用于高分辨率遥感图像数据集,本文针对YOLOv3进行了改进,提出了针对遥感图像的目标检测算法RS-YOLO,主要改进策略:①改进网络模型中的K-means聚类算法,根据聚类结果确定先验框尺寸;②利用Soft-NMS算法优化网络对密集排列目标的检测性能;③引入高斯模型,计算预测框坐标的不确定度以及改进损失函数,使网络生成定位更加准确的预测框。算法整体流程框架如图2所示。

图2 算法流程框架Fig.2 Algorithm architecture

2.1 聚类算法的改进

遥感图像检测目标的形状和尺寸差别很大,且主要是小目标和中型目标。因此,使用原始的先验框,不利于生成适合遥感图像检测目标的预测框。K-means算法认为目标之间的相似度和距离相关,距离越近相似度越大。该算法通常利用欧氏距离计算2点间的距离。然而利用欧氏距离会使大尺寸的先验框比小尺寸的误差更大。本文希望通过聚类算法所得到的先验框与数据集中的真实目标框有相近的大小和比例,即两者的IOU尽可能地大。所以本文使用IOU作为距离指标,距离计算公式为

d(box,centroid)=1-IOU(box,centroid)

(6)

(6)式中:box表示真实目标框;centroid表示聚类产生的先验框;IOU(box,centroid)表示数据集的真实目标框和聚类产生的先验框的交并比。

2.2 Soft-NMS算法的引入

Soft-NMS算法[24]主要解决目标相互遮挡时检测精度较低的问题。该算法根据IOU给相邻检测框设置衰减函数,当检测框与某个相邻检测框的IOU大于阈值时,会给其一个较低的置信度。该检测框可以保留,进而提高算法的召回率,减少检测目标的漏检情况,使检测更加精确。

Soft-NMS算法有2种加权函数:线性加权函数和高斯加权函数。2种不同加权函数的Soft-NMS算法公式如下。

1)线性加权。

(7)

2)高斯加权。

(8)

(7)—(8)式中:si表示bi的置信度;M为当前置信度最高的检测框;bi为待检测框;D表示经过NMS算法处理后的检测框集合;fiou(M,bi)即M和bi之间的重叠率;bi和M的fiou越大,si的值越低。

遥感图像由于成像视角的特殊性,通过俯视角度拍摄,检测目标方向不同且部分目标如飞机、汽车等会出现密集排列的情况。在这种情况下,目标生成的预测框会互相重叠,采用NMS算法会直接删除置信度较低的预测框,造成漏检,降低算法的检测精度。因此,为了提高算法对密集排列目标检测的准确性,本文用高斯加权的Soft-NMS算法替换NMS算法。

2.3 引入高斯模型

YOLOv3中的目标置信度和类别置信度都是概率值,可以反映预测框内目标和类别的准确度。然而对于目标的位置信息,YOLOv3是直接输出预测框的中心坐标和大小,是确定的值。因此,无法反映网络对目标位置预测的准确度。本文利用高斯模型[25]在基本不改变YOLOv3结构和计算量的情况下,计算每个预测框坐标的不确定度,进而得到预测框坐标的置信度。引入高斯模型后,在网络中增加了反映预测框坐标准确度的参数,并且改进网络的损失函数,实现了对预测框不确定度的输出。基于高斯分布的YOLOv3网络输出如图3所示。

图3 基于高斯分布的YOLOv3网络输出Fig.3 Output of YOLOv3 network based on Gaussian distribution

图3中,加入高斯模型后,预测框坐标的输出变成了4个坐标参数和4个对应的不确定度。其中,μtx,μty,μth,μtw分别为预测框的中心坐标和宽高,∑tx,∑ty,∑th,∑tw为对应信息的不确定度。采用的高斯模型为

P(y|x)=N(y;μ(x),Σ(x))

(9)

(9)式中:μ(x)为均值函数,表示预测框的相对位置和尺寸大小;Σ(x)为方差函数,表示预测框定位的准确程度。

由于引入了高斯模型,本文对损失函数做了改进,使用负对数似然函数代替均方误差损失函数,预测框位置的损失函数为

(10)

引入高斯模型后,增加了预测框位置的不确定度。因此,预测框的置信度C的计算式为

C=Confidence×Pr(Classi)×(1-Uncertaintyaver)

(11)

(11)式中:Pr(Classi)是第i类的类别置信度;Confidence是目标置信度;Uncertaintyaver是预测框坐标不确定度的平均值,Uncertaintyaver越低,预测框坐标置信度越高。

3 实验及结果

3.1 实验数据集及实验环境

实验环境在Ubuntu16操作系统下,安装配置为Cuda10和Python3.6,利用Tensorflow作为深度学习平台。CPU为Intel Xeon,运行内存32 GByte,GPU为Nvidia GTX 2080Ti。

实验所用数据集是NWPU VHR-10[26],是一个公开的含有10类不同目标的遥感图像数据集,具体目标包括飞机、船舶、储油罐、棒球场、网球场、篮球场、田径场、港口、桥梁和车辆。该数据集包含800张高分辨率(very high resolution,VHR)遥感图像。

3.2 网络训练

本文在网络训练过程中,相关的网络参数设置如下:图像输入大小为416×416,初始学习率为0.000 1;Soft-NMS的阈值为0.7;动量为0.9;batch为64;subdivisions为16;衰减系数为0.001;在训练至35 000 epoch时,停止训练。

由于NWPU VHR-10数据集中所含图像较少,为了增强网络的泛化能力,在网络训练过程中使用数据增强操作扩充样本数量。对输入网络的图片进行平移、角度旋转、色调变化、尺度变化、饱和度及曝光量的变化,具体设置如表1所示。

表1 数据增强操作Tab.1 Data enhancement operations

为了设置适合遥感图像检测目标的先验框,利用改进后的聚类算法重新设计先验框,使先验框和目标候选框更加匹配。聚类结果如图4所示,反映了聚类中心数量和对应的平均交并比的变化规律。

图4 聚类结果图Fig.4 Cluster result diagram

从图4可以看出,当K值大于9后,纵坐标平均IOU的提升幅度趋于平缓。同时,在YOLOv3算法中,为了让生成的先验框能够平均分配到3个不同的预测尺度上,每个预测尺度都分配了3个先验框。因此,考虑计算效率和准确率,同时为了避免产生冗余,本文选择的聚类中心数量为9。所得到先验框的参数为(13,20),(21,35),(28,49),(32,54),(34,67),(48,89),(62,45),(59,119),(116,90)。

在网络训练过程中,对损失函数和交并比的变化进行了记录。图5和图6分别表示在训练过程中,算法的平均损失函数曲线和平均交并比变化曲线。

图5 平均损失函数曲线Fig.5 Average loss function curve

从图5和图6可以看出,在刚开始迭代时,损失函数和平均交并比的变化较大,随着网络训练次数的增加,可以看到损失函数的值不断下降,最终收敛。同时,平均交并比的值在不断上升,最终稳定在0.8和0.9之间,说明经过迭代后获得了可靠且有效的网络模型。

图6 平均交并比变化曲线Fig.6 Average IOU curve

3.3 实验评价指标与结果分析

为了体现RS-YOLO算法的整体性能,本文的评价指标主要为:平均精度(AP)、平均精度均值(mAP)。AP是用来衡量单类别目标检测的检测精度,每个类别都可以由查准率(P)和召回率(R)得到P-R曲线,AP表示P-R曲线的面积。mAP用来衡量多类别目标的检测精度,是所有类AP的平均值。计算检测目标的查准率P和召回率R的公式为

(12)

(13)

(12)式中:TP是正确检测目标的数量;FP是误检目标的数量;FN是漏检的目标数目。

AP和mAP的计算公式如下

(14)

(15)

(15)式中,Q是检测的总类别数。

本文各模块的消融实验对比如表2所示,验证了本文改进策略的有效性。其中,“√”表示使用了对应的方法。

由于原有数据集的样本数量太少,直接使用原有数据集训练,会导致准确度过低。因此,在所有的消融实验中都做了数据增强的操作,以提高算法的鲁棒性和泛化能力,使传统YOLOv3算法的检测精度达到了74.91%。通过表2可以看出,3种不同的改进策略都能产生很好的效果。使用改进的K-means算法重新设计了先验框,先验框的尺寸如表3所示。重新生成的先验框与遥感图像检测目标的形状和尺寸更加匹配,使算法整体的mAP提升了4.41%。表明重新设计生成的先验框和数据集中人工标注的真实目标框重合程度更高,从而增加了检测精度。

表2 各模块的消融实验Tab.2 Ablation experiments of each module

表3 先验框的尺寸Tab.3 Dimensions of the anchor box

使用Soft-NMS算法替换NMS算法,主要是解决了密集排列的目标容易漏检的问题。使用不同NMS算法的检测目标召回率如表4所示,改进后的NMS算法对数据集中不同检测目标的召回率都有所增加。其中, 飞机、船舰、车辆这3种类型的召回率提高比较多。主要是这3种检测目标,容易出现互相重合的场景。传统YOLOv3算法无法正确检测出来,改进后的算法可以将这些重合的目标正确检测。因此,加入Soft-NMS算法提高了网络的平均召回率,也使算法的整体mAP提高了2.55%。

表4 使用不同NMS算法的检测目标召回率Tab.4 Recallof detection targets using different NMS algorithms /%

为了验证引入高斯模型后算法对目标定位误差是否有改进。在YOLOv3中加入高斯模型,同时将均方误差损失函数替换为负对数似然损失函数,使网络能够计算检测框坐标的不确定度,生成目标的位置置信度。类别置信度和目标置信度仍然使用YOLOv3算法所设置的损失函数。表5是分别使用YOLOv3算法和加入高斯模型后的YOLOv3算法在测试集上测试所得到FP和TP的值。由于加入高斯模型后的算法能够检测出YOLOv3算法无法检测到的目标,从而增加了TP的数量,这说明改进后的算法可以准确检测更多的正样本。对于部分目标,YOLOv3算法可以检测出该目标,但是对该目标产生了错误的识别,从而导致FP很高。引入高斯模型使得网络不仅能够学习到类别信息,还能学习到检测目标的位置信息,可以降低对检测目标的误判,有效地减少了FP的数量,使算法的mAP提高了8.81%。

表5 FP和TP数值Tab.5 Numerical evaluation of FP and TP

最后,将3种改进策略分别两两组合后再进行网络训练。实验结果显示,组合之后的网络模型,相比使用单一改进策略的网络模型,mAP有了进一步的提高。主要是因为3种改进策略都针对原始YOLOv3算法在遥感图像目标检测中的某个问题进行了改进,且组合后没有产生互相抑制的影响。组合3种改进策略后的算法比原始YOLOv3的mAP提高了13.06%。实验表明,RS-YOLO算法的3种改进策略对提高遥感图像的平均检测精度是有效的。

3.4 不同算法实验结果分析

为了进一步说明RS-YOLO算法的有效性,本文同时和3种经典的深度学习目标检测算法YOLOv3[21],Faster R-CNN[18],SSD[22]作对比。Faster R-CNN将目标检测的多个步骤融合在一个神经网络中,提高了运算效率,是当前比较准确的2阶段检测算法。SSD结合了Faster-RCNN, YOLO以及多尺度卷积特征的思想,是当前比较前沿的单阶段检测算法。在实验过程中,使用相同训练集对每种算法分别进行训练,参数设置使用对应论文中建议的参数,对比结果如表6所示。

表6 不同算法的对比结果Tab.6 Comparison results of different algorithms %

实验结果表明,与其他算法相比,本文所提出的算法平均检测精度有了较大的提升,其他3种算法都存在检测精度较差的类别。RS-YOLO算法的平均检测精度达到了87.97%,比YOLOv3提高了13.06%;和SSD以及Faster R-CNN作对比,分别提高了6.09%和16.41%。图7是RS-YOLO算法在NWPU VHR-10数据集中部分图像的检测效果。从图7可以看出,RS-YOLO算法能够准确地对图像中不同类别的目标进行识别和定位。图7i中,同一幅图像中出现多个类别的检测目标时,RS-YOLO算法能够实现对不同类别目标的检测。对图7a中的飞机和图7g中的油桶这种比较容易出现密集排列情况的目标,RS-YOLO算法能将每个目标检测出来并给出合理的预测框,且平均检测精度都有了显著提升,表明本文算法在解决高分辨率遥感图像目标密集排列问题上的有效性。同时,针对高分辨率遥感图像中尺寸差别较大且存在不同角度的检测目标,RS-YOLO算法也能实现准确检测。图7h中,既检测到尺寸较大的田径场,又检测到尺寸较小的棒球场和网球场,表明本文算法可以更好地学习目标位置信息,提高了多尺度检测性能。通过多项实验表明,本文算法可以有效处理高分辨率遥感图像的目标检测问题。

图7 目标检测结果Fig.7 Target detection result

4 结 论

针对现有目标检测算法对遥感图像检测精度不够理想的问题,本文在YOLOv3算法的基础上,提出了改进的遥感图像目标检测算法RS-YOLO。在网络训练阶段,使用多种数据增强策略扩充数据集,提高了网络的泛化能力和鲁棒性。对高分辨率遥感图像的先验框重新聚类和引入高斯模型,降低了目标的定位误差。使用Soft-NMS算法,解决了检测目标重合时容易漏检的问题,提高了检测精度。通过和已有的方法进行对比,验证了RS-YOLO具有较好的准确性。在接下来的研究中,将结合遥感图像目标检测领域对小目标特征提取的需求,考虑引入显著性分析和注意力机制,进一步提高检测效果。

猜你喜欢
置信度先验高斯
基于数据置信度衰减的多传感器区间估计融合方法
一种基于定位置信度预测的二阶段目标检测方法
康德定言命令的演绎是一种先验演绎吗?——论纯粹知性与实践理性在先天原则证成方面之异同
基于暗通道先验的单幅图像去雾算法研究与实现
先验想象力在范畴先验演绎中的定位研究
数学王子高斯
校核、验证与确认在红外辐射特性测量中的应用
先验的风
从自卑到自信 瑞恩·高斯林