张锡联,段海滨
随着无人机技术的发展,其应用门槛也逐渐变低,这无疑提升了滥用无人机的可能性,同时对社会安全的带来了极大威胁[1-2].因此需要对无人机目标进行检测,以促进后续飞行器防护压制技术的发展.
近年来,基于深度学习的目标检测技术飞速发展,可分为两阶段目标检测方法和单阶段目标检测方法.两阶段目标检测的方法主要有区域卷积神经网络(R-CNN)、空间金字塔池化网络(SPP-Net)、基于快速区域的卷积网络(Fast R-CNN)、更快速区域的卷积网络(Faster-RCNN)、特征金字塔网络(FPN)、基于区域的完全卷积网络(R-FCN)等方法.文献[3]中介绍了R-CNN方法,先是利用选择性搜索的方法产生感兴趣的区域并规整化图像区域,然后将相同尺度的图片放到深度卷积网络里面进行提取特征,并利用支持向量机将该特征分类,同时将特征传进回归器得到边界框的位置.为了解决R-CNN中对每一个目标候选都要单独提取特征的问题,又进一步提出了SPP-Net方法[4].在SPP-Net基础上,文献[5]中提出了Fast R-CNN方法,它主要是将支持向量机加回归器的过程变成多任务分类损失在整个网络里进行优化的过程.为了进一步克服Fast R-CNN中因产生候选区域而导致速度变慢的问题,文献[6]中提出Faster R-CNN方法.它主要使用区域网络产生候选区域从而使得检测速度进一步提高.为了进一步达到实时检测的效果,文献[7]提出了FPN的方法.首先从下往上提取特征,然后把特征从上往下进行融合,在融合过程中将分辨率扩大,进一步加上前面对应层的特征从而输出新的特征.为了解决图片分类的平移不变性与物体检测的平移变换性之间的矛盾,文献[8]中进一步提出R-FCN方法,其中主要考虑了位置敏感的区域信息,使得目标检测的效果更佳.
针对单阶段目标检测,文献[9]提出了单阶段一次检测(YOLO)的方法,文献[10]和文献[11]分别提出了单阶段多框预测 (SDD)和单阶段目标检测网络(RetinaNet)的方法.YOLO方法主要是将输入的图片直接生成目标的位置,它将输入的图片用神经网络划分成若干的格子,对每个格子去预测边界框,同时给出边界框和物体的重叠率、条件概率,最后结合预测框和种类获得输出.SSD[10]是在YOLO基础上增加了默认框和多尺度特征,它可以对不同尺度特征图中的目标进行预测,提高检测精度.RetinaNet[11]采取降低背景样本在训练中的权重的思路形成更加实用的检测方法.
常见的两阶段目标检测和单阶段目标检测方法都有不足之处.前者首先要生成目标候选区域,因此存在着无法达到实时性的缺点.后者虽然速度较快,但是由于传统卷积网络在所学特征对方向和尺度变化鲁棒性上表现一般,因此对于小物体和重叠物体检测效果不佳,导致精度下降.
为了在保证实时性的前提下,改进传统深层卷积网络在所学特征对方向和尺度变化鲁棒性较差的问题,文献[12]中使用Gabor滤波器生成相应的特征,并将该特征作为神经网络的输入.文献[13]提出了新的Gabor卷积层,并使用该网络层提高深度网络特征提取的能力.这些方法都能在一定程度上改进整体网络的缺陷,但是都没有在提出新网络结构的前提下,对所有的卷积层逐层提高性能.
本文的方法与传统Gabor滤波器改进神经网络[18-20]的方法不同.首先,直接使用Gabor滤波器改进深度神经网络的基本元素卷积核,进一步使用改进后的卷积核构建卷积层(GACN),然后,用GACN卷积层搭建新的深层卷积神经网络进行特征提取.最后,根据提取的特征进行信息预测和算法验证.
本文的结构如下:第1部介绍了Gabor滤波器的原理和基于Gabor滤波器的网络结构,并进行特征提取;第2部分介绍了基于提取的物体特征进行信息预测的原理;第3部分为实验和算法验证;第4部分是结论.
Gabor函数是一个用于边缘提取的线性滤波器,在空间域中,一个二维Gabor滤波器[14-15]是一个由正弦平面波调制的高斯核函数.Gabor分为实部和虚部,用实部进行滤波后图像会平滑,虚部函数滤波后用来检测边缘,二者相互正交.一组不同频率不同方向的Gabor函数数组更有利于提取文献[21]图像的轮廓和细节特征.Gabor滤波器的定义[15]如下:
(1)
由于Gabor滤波器具有方向和频率信息,因此可以将方向信息编码到普通卷积核中以增强所学特征对方向上的鲁棒性,同时将频率信息整合到不同的网络层里面以增强所学特征对尺度变化上的鲁棒性.
那么当把每一层中的卷积核在Gabor滤波器调节操作后就会产生新的卷积核.因此,新的滤波器GAF可以由式(2)和(3)定义:
(2)
其中,Fi,o是普通卷积核,ζ(u,v)是具有不同方向和尺度的滤波器,∘就是按元素乘运算.
因此,新的滤波器GAF由下式得到:
(3)
由于前向传播中涉及到的权重是新滤波器中的信息,但是保留的权重仅仅是普通卷积核的权重,因此在反向传播中仅仅需要更新普通卷积核Fi,o.在反向传播中遵循如下的更新公式:
(4)
其中,L是损失函数.
该网络受Darknet53网络结构[25]的启发,在其基础上重新设计得到.它主要使用大小为4×3×3和4×1×1卷积核进行搭建,此处的大小不考虑通道数.基于Gabor滤波器的深度卷积神经网络(GDCN)结构如图1所示.
图1 基于Gabor滤波器的深度卷积神经网络Fig.1 Deep convolutional neural network based on Gabor filter
图1中将GACN记作基于Gabor滤波器的卷积层,该滤波器的方向为u=4.由于v和观测尺度是反比关系,较小的v可以得到比较大的观测尺度,用来提取轮廓特征;较大的v可以得到比较小的观测尺度,用来提取细节特征.在设计的基于Gabor的卷积层中为了平衡观测尺度,每个卷积层中的参数v均设置为3.对于输入和输出的维度而言,因为普通卷积核在Gabor滤波器的作用下变为4维,所以输入特征图的维度应扩充为4维才能进行基于Gabor滤波器的卷积计算.
在基于随机梯度下降的网络训练过程中,随着深度增加,训练误差有时候没有降低而升高[20],误差信号的多层反向传播容易引起梯度“弥散”或者“爆炸”,为了解决网络深度带来的训练困难的问题,引入残差网络[19],如下图2所示.
图2 残差网络模块示意图Fig.2 Residual network module diagram
残差网络的数学表达式如下:
(5)
由于输入的图像在神经网络特征提取后,已经变成[D×D×G]的特征,其中G为每个格子的特征数.首先,对每个格子去预测目标的位置,并且给出这个位置边界框和物体的重叠率.然后,针对每个格子预测每类物体的条件概率,即它是目标的情况下到底是哪一类[23]目标.最后,将预测的位置边界框和物体的种类结合得到目标检测结果.下面进行具体说明.
每个网格会预测N个位置的边界框,每个位置边界框会预测出5个值,包括ux,uy,uw,uh,pc,其中ux代表物体的x坐标;uy代表物体的y坐标;uw代表物体边界框的宽度;uh代表物体边界框的长度.pc指的是置信度,它主要反应了包含物体的情况下位置的准确性.除此之外,每个网格还会预测V个条件概率pr.
对于预测[16]边框而言,首先应该确定先验边框的信息,在先验边框[16]的基础上进一步得到预测边框的信息.先验边框要通过聚类[25]方法,对无人机飞行的训练集中的边框做聚类分析来获取.由先验框的宽和高确定出最终边界框的大小和位置,无人机真正的位置信息就是由先验框的平移和缩放得到,如下图3所示.
图3 位置信息的处理图Fig.3 Processing of location information
预测信息的数学表达式如下:
(6)
(7)
式中,Aw是先验框的宽度,Ah是先验框的高度,vx是当前网格左上角到物体图像左上角的横坐标距离,vy是当前网格左上角到物体图像左上角的纵坐标距离,nw和nh是预测框的宽度和高度,其中,(ux,uy,uw,uh)是预测的参数.激活函数采取式(7)中的Sigmoid函数.
针对无人机的位置信息而言,由先验框逐渐得到最后的预测框的过程如下图4所示.
图4 无人机预测框的获取Fig.4 UAV prediction box acquisition
通过上图的示意图可以看出,每个格子对应3个先验框,无人机真正的预测框位置信息就是先验框的平移和缩放.
下面对损失函数进行介绍,损失函数主要由回归检测框位置的损失函数、置信度(即该网格是不是物体)的损失函数和物体类别的损失函数组成.
回归检测框位置的损失函数是在均方损失函数基础上改进的,表达式如下:
(8)
置信度的损失函数采用交叉熵损失,损失函数表达式如下:
(9)
物体类别的损失采用交叉熵损失函数,损失函数表达式如下:
(10)
因此,整体的损失函数Loss为以上回归检测框位置、预测置信度(即该网格是不是物体)和预测物体类别的损失函数之和,表达式如下:
Loss=loss1+loss2+loss3
(11)
本次实验数据集的来源是空中飞行的两种无人机的飞行图集,其中,类型一记作receiver,类型二记作tanker,记作UAV_RT.本实验中无人机在空中以不同距离、不同姿态、不同高度的状态下飞行.该数据集基本包括无人机飞行的各种轨迹姿态状态.
当数据集建立好之后,在 Intel Core i7,显卡为NVIDIA GTX-1080的设备上对该数据集进行训练,然后在与训练集同分布的测试集上进行预测,得到最终的预测结果.
本文给出从开始到最后的训练批次过程中不同指标的变化曲线,主要包括误差损失、召回率和准确率的变化趋势.训练过程共80轮,每轮包括698次迭代循环,为了描述指标趋势,下图仅画出每一轮的首末两次迭代的数值.
边界框的坐标位置,宽度、高度、置信度、类别和总体误差损失在一定迭代次数后的变化趋势如图5中(a)、(b)和(c)所示,召回率和准确率的变化如下图中(d)和(e)所示.
如上图5(c)中所示,总体误差损失随迭代次数呈下降趋势,且从第7轮开始逐渐趋于稳定.召回率刻画了检测到的真正目标占所有真正目标的比例,从上图5(d)中看出从第7轮开始逐渐趋于1.准确率表示检测出来的物体中有多少是正确的,由图5(e)得到,所示整体呈递增趋势并能够在一定范围内趋于稳定.
本文主要对UAV_RT数据集上训练出的模型进行评价.算法验证的主要目的是识别空中飞行的无人机.假设空中飞行的无人机有且仅有两种类型,类型一记作receiver,类型二记作tanker.以下算法验证是采集空中无人机图像,在地面进行离线网络训练并得到目标检测[22]的结果.
验证主要分为四种情况:情况一是当两种无人机作为较大目标时进行目标检测;情况二是当两种无人机作为较小目标时进行目标检测;情况三是无人机存在在干扰背景的情况下进行目标检测[17];情况四是当无人机进行姿态变换后进行目标检测[24].
情况一:两种无人机作为较大目标时进行目标检测
当空中飞行的无人机作为较大目标时,分别在以下两种场景中进行检测.
由图6中的(a)和(b)可知,当无人机距离相机较近,它作为较大目标出现的时候,算法能够较为准确地检测出空中的receiver目标和tanker目标.
情况二:当两种无人机作为较小目标时进行目标检测
当空中飞行的无人机作为较小目标时,分别在以下两种场景中进行检测.
由图7中的(a)和(b)可知,当无人机距离相机较远,它作为较小目标出现的时候,算法能够较为准确地检测出空中的receiver目标和tanker目标.
情况三:无人机在干扰背景下进行目标检测
当空中飞行的无人机存在干扰背景时,分别在以下两种场景中进行检测.
图5 算法的指标变化Fig.5 Index changes in the algorithm
图6 无人机作为较大目标时的检测结果Fig.6 Test results when the UAV is a larger target
图7 无人机作为较小目标时的检测结果Fig.7 Test results when the UAV is a smaller target
图8 在干扰背景下对无人机进行检测的结果Fig.8 Results of testing UAV in the context of interference
由图8中的(a)和(b)可知,当receiver无人机的后方出现绿色树和草的干扰背景时,算法也能够较为准确地检测出空中的receiver目标.
情况四:当无人机进行姿态变换后进行目标检测
当空中飞行的无人机进行姿态变换时,分别在以下两种场景中进行检测.
图9 无人机进行姿态变换时进行目标检测的结果Fig.9 The result of the target detection when the UAV performs the attitude change
由图9中的(a)和(b)可知,当(a)中的receiver无人机发生明显的俯仰和滚转,(b)中的tanker无人机发生明显的滚转姿态变化,此时算法也能够较为准确地检测出空中的receiver目标和tanker目标.
为了进一步验证本文提出的目标检测算法在识别空中飞行的tanker和receiver两种无人机上的有效性,将其和几种不同的经典目标检测方法进行效果对比,采用的指标为精度(ACC)和平均正确率均值(mAP).比对方法采用SIFT的特征对无人机图像进行表述,通过局部特征聚合描述符(vector of locally aggregated descriptors,VLAD),词袋(bag of visual words,BoVW) 和费舍尔向量(Fisher vector,FV)等策略编码,最终采用支持向量机分类得到最终的检测结果.
由表1可以看出,本文提出的基于GDCN卷积神经网络的目标检测方法的ACC和mAP指标值比传统特征加分类方法的指标值更高.由此说明,本文所建立的深度神经网络模型能取得较高的精度和准确率.
表1 实验对比结果Tab.1 Experimental comparison results
本文针对无人机目标检测问题,提出了基于Gabor深度学习的目标检测算法,设计了基于Gabor滤波器的深度卷积神经网络,在保证网络稳定性的前提下对目标进行特征提取.根据提取的特征计算目标的预测信息,得到以空中飞行的两种无人机为目标的检测结果.该方法将Gabor滤波器集成到普通卷积核,从而能够使得所学特征对方向和尺度变化的鲁棒性得到增强.使用真实飞行的无人机数据集进行实验验证了本文提出的方法的可行性,进一步通过与传统特征加分类目标检测方法的对比说明了本文提出方法的精确性.