目标检测技术是当前计算机视觉领域的核心技术之一,当前目标检测技术逐渐发展并趋于成熟,其中随着遥感技术而发展起来的遥感图像目标检测技术具有执行效率高、检测范围大的优点,在应用方面存在着重要的价值。在军事应用领域,实时地掌握敌我双方军事目标的位置与类别信息可以让决策者根据现有信息及时做出军事部署;在民用领域,实时准确地检测遥感卫星拍摄的海上、陆上以及空中的目标信息可以更好地对其管理,在搜索救援、海上贸易、交通疏导、打击犯罪等方面具有重要作用[1]。
在遥感图像目标检测领域,基于深度学习的检测算法相比于传统检测算法(如DPM、ViolaJones)更有优势。它主要分为两类,一类是基于候选区的检测算法,最具有代表性的是Girshick于提出的Faster R-CNN算法[2],该算法首次引入RPN候选区提取模块,2016微软研究院的何凯明团队在其基础上提出了Mask-RCNN[3]、R-FCN[4]等算法,此类算法精度较高,检测速率较慢。另一类是基于回归的目标检测算法,最具代表性的是YOLO系列检测算法和SSD系列的检测算法,其中YOLO最初于2016年由Redmon提出[5],检测精度较差,在其基础上逐渐发展出的YOLOV2[6]、YOLOV3[7]性能逐步取得提升。虽然精度和速度都有所提升,但收敛速度较慢;SSD算法于2016年由Liu[8]提出,在检测精度和检测速度方面均表现良好,但对于小目标检测效果较差且容易出现重复框。冯家明等提出了一种YOLOv3-fass[9]算法,通过对Darknet-53网络的残差结构和卷积层的通道数进行删减使得检测速度提高近一倍,检测精度提升效果却很小。郑志强通过特征进行复用改进YOLOV3的特征融合方式[10],虽然提升了对遥感目标检测的精度,同时也使得参数量变大,增大了计算难度。传统的contact特征融合方式中采用简单的方式对不同层的特征信息进行简单堆叠,无法体现不同特征通道与不同卷积核的相关性和权重,即使性能较优的FSSD和YOLOV3通过FPN对相邻通道特征进行contact融合,其检测精度有所提升,但仍有优化的空间[11]。软注意力机制(如SENet、SKNet、CBAM等),可通过神经网络计算出梯度并通过前向传播与后向反馈的方式得到注意力权重,目前已被应用在众多算法的优化改造中,对提升目标分辨率有着重要作用。
当前遥感图像目标检测中存在的问题是:检测速率相对较慢,受气候环境影响因素较大,图像中的目标容易出现目标较小、模糊、遮挡、阴影,图像目标分辨率差等现象,容易发生目标漏检或误检[12],在实际检测中难免面临各种不利因素。
针对以上问题,本文提出一种基于SK-YOLOV3的目标检测方法,将从网络上搜集的光学卫星图像制作成数据集进行网络训练,以YOLOV3算法为主体,并通过引入SKNet视觉注意力机制对其网络结构进行改进,同时优化锚框聚类算法,实现对各类遥感目标的精确检测。
YOLOV3是YOLO和YOLOV2的升级版本,其采用全卷积神经网络并引入残差网络,共包含75个卷积层,以Darknet-53为基础网络,Darknet-53由卷积层和残差网络组成,每个卷积层包括1×1的卷极块CB1和3×3的卷极块CB2,用于提取图像特征。YOLOV3在Darknet-53的基础上添加了YOLO层,用于输出3个不同的尺度,当输入图片大小为416×416时,输出尺度分别为(52,52)(26,26)(13,13),但其通道数均相同,其网络结构如图1所示。
图1 YOLOV3网络结构框图
Fig.1 Network structure diagram of YOLOV4
为了提升对小目标的检测效果,YOLOV3通过借鉴FPN特征网络的思想进行多尺度特征融合, 通过添加上采样层(upsample)和连接层(contact),融合了3个不同尺度的特征,在多个尺度的融合特征图上分别独立做检测。采样过程中采用步幅为2的卷积层对特征图进行卷积,从而减小池化步骤导致的小目标信息丢失。13×13尺度输出用于检测大型目标,对应的26×26为中型的,52×52用于检测小型目标。
YOlOV3算法把输入的特征图划分为S×S个网格,输出的3个尺度特征图中的每个网格都会预测3个边界框,共聚类出9种尺寸的先验框。对于一个416×416的输入图像,总共有 13×13×3+26×26×3+52×52×3=10647 个预测。每个边界框输出特征图的通道数包括(位置信息、置信度、类别预测),所以输出张量的维度为N×N×3×(4+1+M),1代表置信度,4表示目标位置输出,M为类别数目。以本文4类待检测的遥感目标为例,通道数为3×(4+1+1)=18,输出特征图尺度分别为(13×13×18)、(26×26×18)、(52×52×18)。
信息分类时在NMS算法中通过logistic回归对9个先验框包围的部分进行一个目标性评分,即置信度,找到置信度最高的先验框,将其设定为与真实框相对应的最终预测框,置信度超过阈值却不是最高的先验框则被忽略。置信度即为先验框与真实框之间的交并比(IOU),其计算公式如下:
(1)
以图2的中间网格为例,虚线框表示先验框,其宽高分别为pw和ph,(cx,cy)为中间网格相对于图像左上角偏移量,(tx,ty,tw,th)是网络为先验框预测的坐标,其中(σ(tx), σ(ty)) 中间网格的输出对应于网格的相对中心坐标,实线框表示中间网格输出的值经过运算后得到的最终预测框,其预测框位置信息为(bxbybwby),运算公式如下:
图2 YOLOV3检测原理框图
Fig.2 YOLOV3 detection principle block diagram
(2)
YOLOV3损失函数主要由位置误差(中心坐标误差和宽高误差)、置信度误差、分类误差3部分组成。
Loss=λ1Lconf(o,c)+λ2Lcla(O,C)+λ3Lloc(l,g)
(3)
λ1λ2λ3均为平衡权重系数
位置损失函数Lloc为:
(4)
位置损失由真实偏差值与预测偏差值差的平方和组成,表示预测框坐标偏移量,表示真实框和默认框之间的坐标偏移量。
置信度损失函数Lconf为:
(5)
oi∈{0,1},oi=0表示预测目标边界框i中不存在真实目标,oi=1表示预测框i中存在真实目标。表示预测目标矩形框i内是否存在目标的Sigmoid概率。
分类损失函数Lcla为:
(6)
Oij∈{0,1},Oij=1表示预测框i中存在第j类目标,Oij=1表示预测框i中不存在j类目标。表示网络预测框i内存在第j类目标的Sigmoid概率。
SKNet是SENet的升级版本,是Attention注意力机制中视觉注意力机制中的一种。不同大小的卷积核对于不同尺度(远近、大小)的目标会有不同的效果,尽管比如 Inception 这样的增加了多个卷积核来适应不同尺度图像,但是一旦训练完成后,参数就固定了,这样多尺度信息就会被全部使用了(每个卷积核的权重相同)。SKNet 提出了一种机制,除了考虑到通道间的关系,还考虑到了卷积核的重要性,即不同的图像能够得到具有不同重要性的卷积核,使网络可以获取不同感受野的信息[13]。
SKNet网络由多个SK卷积单元堆叠而成,其中SK卷积操作由Split,Fuse,Select三大模块组成,共包含多个分支。以图3中二分支SKNet网络为例,首先通过Spilt操作分别通过(3×3)和(5×5)大小SK卷积核对大小为C×W×H的特征图X进行分组卷积操作和空洞卷积,输出和操作将2个特征图进行element-wise summation融合后先通过全局平均池化生成C×1×1的特征向量S(C为通道数),特征图S经过先降维再升维的两全连接层后形成d*1*1的向量Z;Select模块将向量Z通过2个softmax函数回归出通道之间的权重信息矩阵a和矩阵b,并使用a和b对2个特征图和进行加权操作,然后求和得到最终的输出向量V。利用该SKNet机制不仅可以使网络自动学习通道的权重,还考虑到了两路卷积(卷积核)的权重和重要性。
图3 SK卷积操作示意图
Fig.3 Schematic diagram of SK convolution operation
SK卷积单元中不仅使用了注意力机制,还使用了多分支卷积、组卷积和空洞卷积。
图4表示了SK-YOLOV3网络结构。CBRK表示使用了SK卷积模块的卷积单元,其中M表示要聚合不同卷积核中核的选择路径数,G为控制每条路径基数的组数,r表示用来控制fuse操作中的参数量的reduction ratio。
图4 SK-YOLOV3网络结构框图
Fig.4 SK-YOLOV3 network structure diagram
YOLOV3网络中的(shortcutn)残差模块表示使用了N个由1×1大小卷积CBR1和3×3大小卷积CBR3组成的子结构。本文在YOLOV3骨干网络Darknet-53的残差模块中将CBR3卷积单元替换为GBRK卷积单元,在每个残差模块中进行完1×1卷积后进行SK卷积,通过kernel size不同大小的卷积核卷积后将得到的不同的特征图进行融合,就可以获取输入图片不同感受野的信息,再通过线性变换完成对不同通道维度信息提取,在给予每个通道不同权重后对其再次融合。SK-shortcutn表示将模块中CBRK替掉CBR3后,优化网络结构后组成的新的重复单元,由n个(CBR1+CBRK)组成。
表1 SKNet特征信息表
Table 1 SKNet feature information table
所在层序号输出特征图3208×208×647、10104×104×12814、17、20、23、26、29、32、3552×52×25639、42、45、48、51、54、57、6026×26×51264、67、70、7313×13×1 024
以3层为例,2层CBR1输出208×208×32特征图作为第3层SKNet层输入,先通过多个不同大小卷积核将特征图分组卷积为多个不同尺度的64通道特征图和将结果经过element-wise summation融合后经全局平均池化操作后输出1×1×64特征图,再经两全连接层先降维再升维后输出1×1×d特征图,经softmax自适应地选择信息的不同空间尺度后,得到a、b 2个权重,其中b=1-a,经运算后得到该层网络输出结果。
在检测中,为了更加精确地对目标定位,使真实框和预测框取得更好的交并比(IOU),需要预先标定锚点框来对数据进行聚类。传统的k-means算法中,通过计算所有对象和预先设定的k个聚类中心之间的欧式距离来分配对象并聚类,并得到先验框的宽和高,k值一般为9。通过欧氏距离作为评价指标会使大尺寸目标比小尺寸目标聚类时产生更大的误差。
YOLOV3所使用的k-means算法中最终聚类结果通过IOU作为距离度量(即最短距离)进行判定,聚类距离随着预测框与聚类中心的IOU值得增大而减小。距离公式如下:
(7)
boxi为第i个样本的预测框,centroidj为第j个聚类中心,d为表示二者之间的距离。
YOLOV3为多尺度特征预测,在输出的3个不同尺度特征图上所需先验框在尺寸上也存在较大差异,传统的k-means聚类中忽略了特征图和先验框的关系,在数据集样本差异较大时容易造成聚类后产生的先验框无法与特征图相匹配的现象,进而影响检测效果。
为了改善这类问题,本文对k-means聚类算法进行优化,对每个样本点都给予一个权重wij以区分不同样本的重要性[14]。经改进后距离公式如下:
(8)
(9)
wij表示第i个样本和第j个聚类中心所属权重值,di为第i个样本到聚类中心点的距离,为所有样本点到距离中心点的平均距离。样本与中心点距离越短,wij取值越大;当第i个样本距离超过平均距离时,权重wij取0。
该实验软件环境包括CUDA10.0、cuDNN7.4.1、OpenCV等软件包,编程语言采用python3.6.3,硬件环境如表2所示。
表2 实验硬件环境表
Table 2 Experimental hardware environment table
硬件名称硬件型号数量主板 Intel B4601CPUIntel酷睿i7-107001内存16G DDR42固态硬盘SSD 256G1硬盘索尼1T1显卡GTX1080Ti1
该自建的遥感图像数据集共有1 250张,大部分从谷歌遥感图像数据集中挑选而来,并加入了少量网络上搜索的相关遥感图像。为了增强训练效果,其中包含了不同天气条件不同高度、不同角度、不同清晰度下卫星拍摄的多个样本。数据集包括有飞机、舰船、汽车、储油罐四类目标,通过labelimg工具将挑选的图片加以标注并以VOC格式存储,通过xml文件记录目标的类别信息和位置信息,按照4:1的比例划分为训练集和测试集。
本网络结构的性能通过IoU指标、AP指标、mAP指标、FPS指标来进行综合评价。其中IoU(交并比)用来评价是否能对目标成功定位;AP表示单类目标在不同召回率条件下准确率的均值,其值是Precision-Recall曲线下方的面积;mAP指标(平均精确度)指所有目标平均精度的均值,用于评价算法检测精度;FPS(每秒内检测的图像帧数)用于评价检测速度。其计算公式分别如下:
(9)
(10)
(11)
TP:预测为正,实际为正;FP:预测为正,实际为负;TN:预测为负,实际为负;FN:预测为负,实际为正。
AP=P(r)dr
(12)
(13)
(14)
num(picture)表示处理图片的总帧数;total(time)表示处理所有图片所需时间。
将SK-YOLOV3与YOLOV3进行对比训练,为保证公平性,在同样的数据集上进行150次epoch迭代,前6个epoch采用warm-up的方式进行“热身”训练,6到150个epoch学习率设定为0.001,Batch size设定为16,且均采用Pytorch深度学习框架,图5为YOLOV3和SK-YOLOV3的损失率变换曲线。由图可知两模型经过了150次epoch后损失值趋于稳定。
图5 损失值变化曲线
Fig.5 Loss value change curve
4.5.1 YOLOV3与SK-YOLOV3检测效果对比
分别通过原版YOLOV3算法和改进的SK-YOLOV3算法对测试集图片测试,部分结果如图6所示。
图6 YOLOV3改进前后效果图
Fig.6 Comparison chart of YOLOV3 before and after improvement
图6中,图6(a)和图6(b)为YOLOV3对遥感目标的检测效果图,图6(c)和图6(d)为SK-YOLOV3的检测效果图。图6(a)和图6(b)中对小目标检测效果不好,均出现了漏检现象,且检测到的目标准确率较低;相比之下,图6(c)漏检现象有很大改善,图6(d)未发生漏检现象,SK-YOLOV3可以检测到大量YOLOV3漏检的目标,提升了对遥感图像目标的分辨率。
4.5.2 SK-YOLOV3在各种复杂环境下检测效果
在现实情况中,由于各种原因如天气状况差、检测目标较小、拍摄场景光线较差等情况会影响遥感图像拍摄的质量进而影响检测效果。为了进一步验证SK-YOLOV3模型在复杂环境下的表现,选取一些特殊条件下的图片进行检测,选取有代表性的如图7~图9所示。图7为阴影场景,图7中目标经测试,准确率仍处于较高水平,检测模型受光线影响较小;图8中为小飞机目标,由检测效果来看,目标大小模型影响有限;图10为大雾场景,对检测有部分影响,一部分小型船只没有检测出来。综上可知,该检测模型在复杂环境中检测效果较好,个别处于复杂环境下的物体检测率不高,但恶劣情况毕竟居于少数,使得对于检测模型影响有限。
图7 阴影条件检测图
Fig .7 Shadow condition detection chart
图8 小型目标检测图
Fig.8 Small target detection map
图9 雾天目标检测图
Fig.9 Fog target detection map
为了对模型进行直面与客观的分析,分别将SK-YOLOV3与YOLOV3、SSD等几种常用目标检测算法实验对比,使用相同的训练数据集和训练方法进行训练,并从中抽取100张测试集进行测试,每种模型进行10次测试后取其平均值,最后通过平均精度mAP以及检测速率FPS进行性能对比,结果如表3所示。
表3 模型性能对照表(%)
Table 3 Model performance comparison table(%)
算法mAPAPplanecarshipoiltankFPSYOLOV379.8785.9277.6779.8680.0329.3SSD74.8580.2071.3774.2873.5523.9Faster-RCNN77.3081.3276.9575.5475.396.3R-FCN79.2182.2778.9778.2880.3210.5SK-YOLOV387.3388.9684.4485.8687.0627.7
从实验性能对照表可知,在检测速率方面YOLOV3算法检测速率最高,可达29.3 FPS,mAP可达80.87%,和其他几种常用检测算法相比无论在精度还是速度均具有优势。SK-YOLOV3算法相对于YOLOV3检测精度提升了7.46%,虽然在检测速率上略低于YOLOV3,但也达到了27.7FPS,处于较高水平,对检测时间影响不大。综合来看,基于SK-YOLOV3的遥感图像目标检测方法可以较好地完成检测任务。
提出了一种基于SK-YOLOV3的遥感目标检测方法,为了提高检测效果,弥补传统特征融合方式的局限性,对YOLOV3的基本框架进行改进。在原YOLOV3网络基础上引入SKNet视觉注意力机制,对特征图在不同感受野下的特征进行融合从而提高分辨率;并对锚框聚合算法进行优化,将传统k-means锚框聚合方法替代为加权k-means聚合方法以便于加强检测效果。通过在谷歌地图上采集到的遥感图像数据集进行模型训练,实现了对不同环境下图像中多种目标的精确检测。从实验对比结果分析可知,相比于原版YOLOV3,SK-YOLOV3对于恶劣环境下目标和小型目标的检测有着更好的效果;相对于其他检测算法无论是检测精度还是检测速率,优势十分明显。综合来看,该方法是一种良好的遥感目标检测方法。
[1] 黄洁,姜志国,张浩鹏,姚远.基于卷积神经网络的遥感图像舰船目标检测[J].北京航空航天大学学报,2017,43(09):1841-1848.
Huang J,Jiang Z G,Zhang H P,et al.Remote sensing image ship target detection based on convolutional neural network[J].Journal of Beijing University of Aeronautics and Astronautics,2017,43(09):1841-1848.
[2] REN S,GIRSHICK R,GIRSHICK R.Faster R-CNN:To-wards Real-Time Object Detection with Region Pro-posal Networks[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.
[3] HE K M,GKIOXARI G,DOLLAR P,GIRSHICK R,et al.Mask R-CNN[C]//O’Conner L,ed.Proc.of the 2017 IEEE Int’l Conf.on Computer Vision.Venice:IEEE Computer Societv,2018:2980-2988.
[4] EVAN SHELLHAMER,JONATHAN LONG,TREVOR DA-RELL.Fully Convolutional Networks for Semantic Segmentation[M].IEEE Computer Society,2017.
[5] REDMON J,DIVVAL S,GIRSHICK R,et al.You only look once:Unified,real time object detection[C]//In:O’Conner L,ed.Proc.of the 2016 IEEE Conf.on Computer Vision and Pattern Recognition.Seattle:IEEE Computer Society,2016:779-788.
[6] REDMON J,FARHADI A,et al.YOLO9000:Better,Faster,Stronger[C]//In:O’Conner L,ed.Proc.of the 2016 IEEE Conf.on Computer Vision and Pattern Recognition(CVPR).Honolulu:IEEE Computer Society,2017:6517-6525.
[7] REDMON J,FARHADI A.YOLOv3:an incremental improvement[J].arXiv:Computer Vision and Pattern Recognition,2018,5(3):12-22.
[8] LIU W,ANGUELOV D,ERHAN D.SSD:Single Shot MultiBoxDetector[C]//In:Leibe B,ed.Proc.of the 2016 European Conf.on Computer Vision.Amaterdam:Springer Int’1 Publishing,2016:21-37.
[9] 冯加明,储茂祥,杨永辉,等.改进YOLOV3算法的车辆信息检测[J/OL].重庆大学学报:1-12[2020-08-13].http://kns.cnki.net/kcms/detail/50.1044.N.20200619.1503.004.html.
Feng J M,Chu M X,Yang Y H,et al.Improved YOLOV3 algorithm for vehicle information detection[J/OL].Journal of Chongqing University:1-12[2020-08-13].http://kns.cnki.net/kcms/detail/ 50.1044.N.20200619.1503.004.html.
[10] 郑志强,刘妍妍,潘长城,李国宁.改进YOLO V3遥感图像飞机识别应用[J].电光与控制,2019,26(04):28-32.
Zheng Z Q,Liu Y Y,Pan C C,et al.Improved YOLO V3 remote sensing image aircraft recognition application[J].Electro-Optics and Control,2019,26(04):28-32.
[11] 鞠默然,罗江宁,王仲博,等.一种融合注意力机制的多尺度目标检测算法[J].光学学报,2020,40(13):126-134.
Ju M R,Luo J N,Wang Z B,et al.A multi-scale target detection algorithm fused with attention mechanism[J].Acta Optica Sinica,2020,40(13):126-134.
[12] 史文旭,谭代伦,鲍胜利.特征增强SSD算法及其在遥感目标检测中的应用[J].光子学报,2020,49(01):154-163.
Shi Wenxu,Tan Dailun,Bao Shengli.Feature-enhanced SSD algorithm and its application in remote sensing target detection[J].Acta Photonica Sinica,2020,49(01):154-163.
[13] Li X,Wang W,Hu X,et al.Selective Kernel N-etworks[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR).IEEE,2020.
[14] 李维刚,叶欣,赵云涛,等.基于改进YOLOv3算法的带钢表面缺陷检测[J].电子学报,2020,48(07):1284-1292.
Li Weigang,Ye Xin,Zhao Yuntao,et al.Strip steel surface defect detection based on improved YOLOv3 algorithm[J].Acta Electronica Sinica,2020,48(07):1284-1292.
Citation format:GUO Zhichao, CONG Linhu, LIU Aidong, et al.Remote Sensing Image Target Detection Method Based on SK-YOLOV3[J].Journal of Ordnance Equipment Engineering,2021,42(07):165-171.