程千顷,王红军,丁希成,陈 璐
(国防科技大学 电子对抗学院,合肥 230037)
近年来,随着小型无人机技术的发展和普及,无人机的黑飞和滥飞现象越来越严重,给社会和公共安全造成了严重的威胁[1]。对防范小型无人机而言,检测手段是其中的关键[2]。相比于雷达探测[3]、射频探测[4]和声音探测[5]等技术手段,更为精准的基于图像识别来实现无人机探测预警的方法已成为反无人机领域重要的研究方向之一[6]。
图像识别方法主要可分为传统图像识别方法和深度学习图像识别方法两大类[7]。传统图像识别方法中具有代表性的是支持向量机(Support Vector Machines,SVM)方法和K近邻算法(K Nearest Neighbors,KNN)[8],这些方法既可以用于解决分类问题,也可用于图像识别,但是存在需人工提取特征、泛化能力和鲁棒性差的缺点。深度学习图像识别方法主要是早期的BP(Back Propagation)神经网络[9]和近十年来发展迅速的卷积神经网络,包括AlexNet、VGGNet、 Inception-V3和ResNet等神经网络[10-13]。
近年来,随着深度学习的发展,迁移学习和集成学习逐渐应用到网络模型的训练中。文献[14]将迁移学习与YOLOv3算法相结合实现了对无人机目标的检测识别,平均识别率达到了88.9%,但仍有较大的提升空间。文献[15]在无人机目标数据集过少的条件下,采用自主拍摄构建数据集以及卷积神经网络识别的方法实现了对无人机图像的有效识别,但因未将无人机与其他物体进行区分,容易造成无人机目标识别的误判。文献[16]应用权重不可知网络(Weight Agnostic Neural Network,WANN)对无人机微动特征进行图像识别,取得了不错的效果,但方法与其他主流网络对比较少,无法体现算法的先进性。文献[17]提出了一种应用迁移集成方法的模型,显著提升了复杂背景下的树木识别效果,但算法流程复杂,存在改进空间。
针对上述算法存在的问题,本文提出了一种基于迁移集成学习的无人机图像识别算法。算法采用卷积网络模型AlexNet、VggNet-19、Inception-V3和ResNet-50在ImageNet数据集上进行预训练,得到预训练模型;然后使用UavNet图像数据集进行迁移学习,得到基分类器模型;最后应用相对多数投票法和加权平均法的集成学习方法通过基分类器模型建立迁移集成模型,实现对无人机目标图像的准确识别。
基于迁移集成学习的无人机图像识别算法是通过应用卷积网络模型进行迁移学习和集成学习来提高模型识别性能的算法。图1为迁移集成模型的架构图。
图1 迁移集成识别模型
卷积神经网络在迁移集成算法中作为集成模型的基分类器,其结构大致分为卷积层、池化层和全连接层等。卷积层在卷积神经网络中的作用是通过卷积操作提取图像特征。池化层可以用来减小特征图的尺寸,降低参数量。全连接层作为连接输入层和输出层关键的一层,具有部分分类器的功能。
梯度下降算法是神经网络在反向传播过程中使用到的算法,可以使损失函数更快地达到最小值加快模型收敛。其算法公式为
(1)
式中:J(θ)为目标函数;θi为目标函数上的某点坐标;α为学习率。
常用的梯度下降算法有随机动量梯度下降算法(Stochastic Gradient Descent with Momentum,SGDM)和自适应矩估计算法(Adaptive Moment Estimation,Adam)。SGDM算法可以有效地加快模型收敛,使模型损失函数达到最小值,得到模型最优解。Adam算法可以自适应调节学习率,使模型更快地收敛,但有时候会出现收敛到局部最优的情况,达不到模型的全局最优解。本文通过实验对比了SGDM算法和Adam算法在卷积网络模型上的效果,得出SGDM算法在模型训练数据集时能达到更好的性能。因此,在后续的实验中均采用SGDM算法作为模型的梯度下降算法。
迁移学习是机器学习领域一种解决小样本学习任务的常用方法,其原理是让模型充分学习A域的大量数据,然后在此基础上让模型再去学习B域的小样本数据,使模型对小样本数据也有很好的识别效果[18]。
卷积网络模型在进行迁移学习时,一般要使用ImageNet数据集进行训练得到预训练模型,并且为了使模型在UavNet数据集上能有更好的表现,要对模型进行训练微调。训练微调的方法是冻结预训练模型的部分卷积层(通常是靠近输入的多数卷积层),然后训练剩下的卷积层(通常是靠近输出的部分卷积层)和全连接层。因此对于AlexNet等4种卷积模型只需要对模型的k层卷积层进行权重冻结,然后训练剩余的n-k层全连接层就可以得到性能良好的分类模型。4种卷积网络模型训练微调策略的相关信息如表1所示,表中的fc、fc6、fc7、fc8均指模型结构中最后的全连接层。
表1 模型训练微调策略信息表
集成学习是分类和回归任务的一类提升方法[19],其核心思想是通过改变样本分布或者使用不同类型的分类模型构建分类器,将这些分类器进行线性组合得到一个更强大的分类器,来做最后的决策。
相对多数投票法的原理是寻找几个基分类器,然后把基分类器的超过半数的预测结果作为最终的预测分类。假设基分类器的预测结果为Ok(k=1,2,3,4),相对多数投票法通过统计基分类器的预测结果Ok,选取个数最多的预测结果Ok作为最终的输出结果,当投票结果一样时则随机选择一类作为最终的输出结果。
加权平均法的原理是根据一定的规则对基分类器的预测结果赋予权重进行平均然后得出最终结果。假设第i个基分类器对输入图片样本的标签预测概率如式(2)所示:
(2)
式中:i代表分类器的编号;n代表预测的标签类别;p(yi=n)表示分类器预测标签类别的概率。
通过预测概率矩阵,可以使用加权平均的方法得到最终分类结果,其公式如式(3)所示:
(3)
综上所述,迁移集成算法首先通过迁移学习得到4种分类模型,获得数量足够多且相互独立的基分类器;然后,采用集成学习中的相对多数投票法和加权平均法两种集成策略对4种分类器进行线性组合,构建集成模型。
近年来无人机的普及和应用非常迅速,但用于无人机识别的图像数据集却十分缺少,这对研究来说十分不便,因此笔者通过自主拍摄无人机图像、结合鸟类开源数据集CUB200-2011,以及网络爬取直升机图像3种方式自主构建了图像数据集UavNet。UavNet数据集中包含了小型无人机、飞鸟以及直升机3类图像,每类目标的图像数量为4 000张,其中,小型无人机类别包含大疆御、大疆悟、大疆精灵型号的无人机图像;飞鸟类别来源于CUB200-2011数据集,在总共200类的飞鸟中每类随机选取20张组成了飞鸟类别的4 000张图像;直升机类别包含“黑鹰”系列、米系列等武装直升机的各种飞行姿态图像。UavNet数据集按照7∶3的比例划分为训练集和测试集,训练集用于训练模型参数,测试集用于检验模型性能。数据集具体信息如表2所示。
表2 UavNet数据集信息表
为了进一步测试迁移集成算法的性能,还选用了Flower_photos公开数据集作为实验的检测基准。该数据集是TensorFlow开源的五分类花卉数据集,总共有图像3 500张,其中,训练集的图像为3 099张,测试集的图像为341张,常被用于机器学习的测试和训练。图2为Flower_photos数据集的部分图像。
图2 Flower_photos数据集部分图像
在小样本数据集的训练过程中,深层卷积神经网络往往会出现过拟合的现象,使得训练模型的鲁棒性不足,对新样本新类型的无人机识别能力较差。为了解决这个问题,算法中采用数据增强的方法来提升训练模型的鲁棒性,防止过拟合现象的出现[20]。实验采取的数据增强方法有剪切变换、数值归一化、shuffle(样本输入打乱)以及水平和垂直翻转操作等。通过上述数据增强方法的组合,扩充原有数据集,使训练集更丰富,从而使模型更具泛化能力。数据增强实例如图3所示。
图3 数据增强实例
算法实验平台基于PyTorch深度学习框架且配有CUDA10.2平台作为并行运算结构,计算机环境为Windows 10操作系统,内存为64 GB,GPU为NVIDIA Quadro P4000(8 GB显存)。
实验中网络模型训练时的超参数设置如表3所示,包括了初始学习率、批大小、训练轮数和迭代次数等。表中,fine tune表示模型在迁移学习过程中的训练微调方法,model-fine tune表示经过迁移学习的模型。
表3 模型训练过程中部分参数情况
为验证迁移集成算法在无人机图像识别方面的可行性和先进性,将实验设计为4个部分:第一部分,使用SGDM和Adam两种梯度下降算法进行对比实验,检验SGDM算法和Adam算法在模型训练上的效果;第二部分,对4种卷积模型进行迁移学习和非迁移学习性能对比,检验迁移学习方法对模型性能的提升能力;第三部分,进行集成模型与4种卷积模型在识别准确率和F1-score指标上的对比实验,检验包括相对多数投票法和加权平均法两类集成方法的集成效果;第四部分,将所提出的集成迁移方法与SVM、BP算法以及ResNet-50方法进行对比实验,检验迁移集成算法的先进性。
深度学习中关于图像识别的评价指标较多,实验主要采用其中3种重要的评价指标:模型对训练集的平均损失、模型对测试集的识别准确率以及F1-score指标。
3.2.1 模型对训练集的平均交叉熵损失
由模型在训练集上进行训练时通过平均交叉熵损失函数计算得出。平均交叉熵损失越小,模型在训练集上的识别性能越好,因此使用交叉熵损失作为模型评价的指标之一。平均交叉熵损失的计算公式为
(4)
(5)
式中:count表示输入样本的总数;class表示当前样本类别的索引;loss表示单个样本的损失;xi表示输入的第i个样本;x[j]表示预测函数的第j个输出。
3.2.2 模型对测试集的识别准确率
即模型输出的结果与图像原始标签一致的准确率,其计算公式为
(6)
式中:m为测试集图像的总数量;c为模型测试正确图像的数量。
3.2.3 F1-score指标
F1-score是衡量分类模型精准度的一种指标,是精确率和召回率的调和平均。其计算公式为
(7)
(8)
(9)
式中:TP(True Positive)是实际输入为正样本,预测结果也为正样本;FP(False Positive)是实际输入为负样本,预测结果为正样本;FN(False Negative)是实际输入为正样本,预测结果为负样本;TN(True Negative)是实际输入为负样本,预测结果为负样本。
3.2.4 FPS(Frames Per Second)指标
FPS指标表示模型检测一张图片所用的时间大小或者1 s处理的图片数量。FPS值越大,模型检测速度越快,可以用来衡量模型的检测效率。
3.3.1 SGDM与Adam训练效率对比
SGDM算法和Adam算法有着性能优秀和便于调参的优点,在深度学习中得到了广泛应用。为了验证SGDM算法在迁移集成模型中的性能,设置了SGDM算法与Adam算法的对照实验。实验将经过迁移学习的4种CNN模型分别采用SGDM和Adam两种算法在UavNet数据集上进行训练,训练的epoch为125,batch为32,迭代次数为32 875。实验过程通过tensorboard可视化工具保存每次训练的平均损失和准确率,绘制了平均损失随训练次数变化的折线图以及模型识别准确率的统计表格,结果如图4和表4所示。
(a)AlexNet模型
(b)VggNet-19模型
(c)Inception-V3模型
(d)ResNet-50模型图4 4种CNN模型的平均损失随训练次数变化情况
表4 模型在不同优化算法的识别准确率
分析图4和表4可知,基于SGDM算法的CNN模型(后面简称SGDM类模型)的识别准确率均优于基于Adam算法的CNN模型(后面简称Adam类模型)。此外,由图3可知,Adam类模型在前20 000次迭代中损失的振荡幅度很大,而SGDM类模型在训练过程中损失始终保持平稳下降且下降速度要超过Adam类模型。因此从对比结果来看,SGDM算法对模型性能的优化效果要强于Adam算法。
3.3.2 基于迁移学习的模型实验
本实验使用AlexNet、VGGNet-19、Inception-V3和ResNet-50四种卷积模型,并采取模型自训练和迁移学习训练两种方式分别对模型展开训练。模型自训练方法是模型基于数据集本身从零开始的训练,其识别效果取决于模型自身结构设计以及数据集样本的优劣。迁移学习方法是通过加载预训练权重和微调模型的方式使模型训练的方法。实验过程中将对这两种方法进行测试集识别准确率和F1-score指标(特指UavNet数据集中的无人机类别)的对比,结果如表5所示。
表5 测试集识别准确率和F1-score
从表5分析发现,使用迁移学习方法的模型在测试集的识别率和F1-score上都有较大的提升,其中识别效果最好的VGGNet-19-fine tune,其识别准确率达到了98.67%,F1-score达到了98.46%,说明迁移学习方法通过大量的先验知识学习可以使模型提取到更多的图像特征,增强模型的识别性能。因此,迁移学习模型相较于自训练模型具备更强的学习能力和识别效果。
3.3.3 基于集成学习的模型实验
本实验通过使用相对多数投票法和加权平均法两种集成策略对迁移学习模型集成得到两类集成模型。使用集成模型在测试集上进行验证,并与经过迁移学习的卷积模型进行识别准确率、F1-score和FPS指标的对比,结果如表6所示。表6中所有模型均是经过迁移学习方法训练的模型,FPS指标是模型在GPU设备上进行图像检测时测得的结果。
表6 迁移模型和集成模型准确率、F1-score和FPS
由表6可知,无论是投票集成法还是加权集成法的集成模型在识别准确率和F1-score指标上均高于迁移学习的卷积模型。其中性能最优异的加权集成模型在UavNet数据集上的识别准确率可以达到99.42%,F1-score指标可以达到99.12%,但在FPS指标上速度有所下降,仅在16 frame/s左右,相较于其他模型仍有差距。但综合精度对比来看,牺牲部分速度以换取极高的精度,迁移集成模型仍是一种不错的方法。综上,迁移集成模型通过使用迁移学习方法以及集成方法,综合多个分类模型的优点,牺牲部分检测速度,使模型的性能得到了进一步的提升,体现出其先进性。
3.3.4 迁移集成方法与其他方法性能比较
早期的图像识别方法中具有代表性的有SVM和BP神经网络等,这些方法在早期的图像识别任务中应用比较广泛。现在的图像识别方法更多使用改进的卷积网络来适应不同的目标识别任务。因此本实验使用HOG+SVM、HOG+BP神经网络以及ResNet-50神经网络的图像分类方法训练识别Flower_photos数据集和UavNet数据集,并与所提出的基于迁移集成学习的无人机图像识别方法进行性能比较。在应用SVM和BP神经网络方法时还使用了方向梯度直方图(Histogram of Oriented Gradient,HOG)方法对图像进行特征提取,提升了这两种方法的识别性能。实验结果如图5所示。
(a)Flower_photos数据集为基准
(b)UavNet数据集为基准图5 迁移集成方法和其他方法识别准确率
从结果来看,基于迁移集成的方法相比于SVM和BP神经网络方法以及ResNet-50残差网络方法在两个数据集上的识别准确率均有明显的提升,相较于SVM和BP方法提升幅度比较大,相较于ResNet-50方法提升了大约9%的准确率。主要原因在于SVM和BP识别方法主要依靠手动提取特征和不断调参的方式进行图像识别,识别性能的好坏取决于先验知识和专业调参经验;ResNet-50方法识别性能虽有提升,但仅应用了单一网络的优点;而基于迁移集成学习的方法可以自动提取图像特征,并且可以使用迁移学习和集成学习等机器学习方法,综合各种网络的优点,提升模型的识别性能,因此具有相对较高的识别率。
本文提出了一种基于迁移集成学习的无人机图像识别算法,并自主构建了一个目标图像数据集UavNet,在此基础上进行了性能仿真实验。相较于其他图像识别方法如SVM、BP以及ResNet-50,迁移集成模型在UavNet数据集上的识别准确率和F1-score指标以及Flower_photos数据集上的识别准确率均有较大提升。这说明算法不仅对无人机图像目标具有良好的识别效果,针对不同类型的训练对象也同样具有优异的性能,展现出了良好的通用性。下一步研究将针对集成方法造成的检测速度下降问题,精简集成模型结构,优化集成方法,以达到更快的无人机目标图像检测速度。