APP下载

基于卷积神经网络的多标签飞机识别算法

2018-09-26孙振华李新德

计算机应用与软件 2018年9期
关键词:层数识别率分类器

孙振华 李新德

(东南大学自动化学院 江苏 南京 210000)

0 引 言

目标识别是计算机视觉、模式识别和图像处理领域的研究热点之一,而飞机识别作为目标识别的重要部分,在现代战争中的空中侦察和敌我身份识别等方面都有着重要的应用。尤其随着图像处理和人工智能的迅速发展,飞机识别系统会成为未来武器的主要组成部分,而飞机识别的准确率一直是影响该技术应用的重要因素。因此,如何充分利用已有信息设计出更为准确的飞机识别系统,是当前该领域的重点研究方向。

多标签飞机识别问题目前主要是分成单个标签分开处理。一种是基于传统图像处理的方法,如:朱旭锋等[1]提出基于多不变量和多分类器融合的识别方法;李新德等[2]提出基于Hu矩、PNN和DSmT融合的方法;Hussein等[3]提出转换特征和模糊聚类的飞机识别方法;Zhu等[4]提出基于优化的BoW模型识别方法;Molchanov等[5]提出融合多普勒相干特征进行飞机识别的方法。另一种是基于深度学习的方法,主要采用的基础网络模型是CNN,如:Chevalier等[6]提出基于深度学习的LR-CNN方法;Li等[7]提出PCNN模型用于飞机识别;Malekzadeh等[8]提出采用DNN模型提取飞机特征的方法;Xu等[9]提出“端到端”的FCN用于飞机的快速识别方法。

传统卷积神经网络结构在处理多标签识别问题时,是根据每个标签分别训练独立的网络,然后通过每个独立的网络,分别对每个标签进行分类预测。经分析得知,该方法主要有两个问题:(1) 由于采用的网络数目过多,且相互无关联,从而增加了网络训练的成本,造成信息冗余,以致时间效率低下;(2) 忽略了不同标签之间固有的关系,丢弃了一部分有用的先验知识,限制了识别效果的提升。

鉴于此,本文提出一种基于卷积神经网络的多标签飞机识别算法,并在多标签飞机图像数据集上进行训练与测试。

1 问题建模

多标签飞机识别问题和单个标签的飞机识别问题实质上是相同的,都是要对飞机图像进行图像预处理,再输入到特征提取器中提取适当的特征。然后将提取到的特征输入到特定的分类器中,以获取标签的预测值。

本文将飞机识别问题建模为一个可以用卷积神经网络求解的一个多标签分类问题,并基于Softmax回归构建分类概率模型。借助于卷积神经网络强大的特征提取能力和对非线性关系的回归能力,获得更准确的识别效果。

Softmax回归是逻辑斯蒂回归在多类别分类问题上的推广,其分类目标损失函数为:

(1)

式中:ω为网络结构参数,xl为第l个样本的输入,N为训练样本数目,C为单个标签所包含的类别数,1{yl=i}在满足yl=i时为1,否则为0。

由于直接代数求得目标函数显式的解析解是难以实现的,因此采用梯度下降法逼近代价函数的极小值点,并将所求极小值点对应的参数作为网络的系统参数估计值,其梯度公式如下:

(2)

将式(2)代入梯度下降算法中,在每一次迭代时进行如下的权重更新,直到目标损失或训练步数达到要求为止。

(3)

2 多标签卷积神经网络设计

卷积神经网络是一种前馈人工神经网络,区别于其他人工神经网络模型,其最主要的特点为卷积运算操作。因此,相比传统方法甚至其他深度网络模型,卷积神经网络在图像识别任务上具有更为优异的表现。

对多标签飞机识别任务而言,由于不同型号飞机在结构和纹理上具有较高的相似性,尤其是同一厂商的不同型号飞机之间(如图1中Boeing 737-600与Boeing 737-300,Airbus 320与Airbus 321),除了结构设计上的微小差异,其他方面基本相同,具有极大的类间相似度,因此相比一般物体识别具有更大难度。

图1 不同型号飞机对比图

针对传统卷积神经网络在处理多标签识别时存在的问题,采用如图2所示的MLCNN网络结构,利用各标签之间的关系,将多个标签的特征提取和分类融合到一个完整的网络。

图2 MLCNN网络结构示意图

如图2所示,MLCNN网络主要包括三大部分:数据输入部分、CNN特征提取部分Ci(i=1,2,…,n)和分类器部分Li(i=1,2,…,n)。每个标签Li的分类器都有与之相对应的特征提取器Ci。其中n为采用该网络的分类问题所具有的标签数目,且各标签之间具有如下的包含关系:

L1⊃L2⊃…⊃Li…⊃Ln

(4)

式中:Li⊃Lj表明标签Li中的任意一个类包含标签Lj中的一个或多个类,也就是说标签Lj具有比标签Li更多、更细分的类别。可以看出,从属于标签Lj的不同类之间的相似性更大,具有更高的识别难度,因此需要比标签Li更加抽象的特征,也就需要构建更深层的卷积网络来进一步进行特征提取。

因此,在网络MLCNN中位于最低层的特征提取部分C1,主要负责对图像的特征进行初步提取,所得特征被用作L1标签分类器和更深层网络C2的输入。然后,特征提取部分C2对特征图进行更高层的语义抽象,所得特征被用作L2标签分类器和更深层网络C3的输入。依次向下直到最细分的标签Ln和最高语义的特征提取部分Cn。

就多标签飞机识别问题而言,所采用的数据集具有多个标签,且每个标签之间又具有一定的逻辑关系。每一级标签都具有一定的先验信息,在下一层次的标签分类中,可以利用这些先验知识,减少冗余的干扰信息,引导特征提取向更深层的标签靠拢,提高最高层次标签的识别准确率。

同时,将n层标签的识别放到一个网络当中,比起传统上每个标签设计一个网络,极大地减少了网络的复杂程度。使用一个网络就可以完成原本多个网络的分类任务,提高了卷积神经网络的特征提取效率,整体上减少了卷积神经网络的训练时间,也避免了特征重复提取和抽象。

2.1 数据输入层

数据输入层主要负责对初始数据集进行扩充和数据预处理,从而增强数据的多样性,防止模型过拟合。该层实现数据扩充的方法,主要包括水平翻转、尺度变换、旋转变换和Fancy PCA[10]等。

在对数据集进行扩充以后,需要对输入图像进行中心式归一化操作,即对每个特征减去训练集图像的平均值,以凸显图像个体差异。

2.2 CNN特征提取

如图3所示,“CNN特征提取”部分主要采用CNN的核心算法思想——卷积对输入特征图进行局部特征提取。为了能够更高效地控制网络的深度和调整参数,卷积核大小固定为3×3。由于该多标签网络整体结构较深,为减少梯度弥散的发生,同时避免ReLU函数常见的“死区”问题,故该部分采用指数化线性单元ELU(Exponential Linear Unit)函数[11]作为卷积后特征值的激活函数,其函数公式如下所示:

(5)

图3 CNN特征提取部分结构

在多次卷积之后,采用最大值池化的方式对卷积后的特征图进行降采样,以减小特征图的大小,并保证一定程度的特征不变性和防止过拟合。

2.3 分类器

MLCNN网络的分类器部分共包含n个结构相似的分类器,分别对应于n个层级的标签。该分类器的基本结构如图4所示。

图4 分类器结构

特征提取部分获取的特征图,需要首先经过卷积核尺寸为1×1的卷积操作降维后,再输入到采取dropout策略进行训练的全连接神经元。然后将神经元输出的特征向量输入到Softmax层进行回归分析。最终根据回归所得的概率值,判断出当前标签下的类别。

3 实 验

3.1 数据集

为了保证实验结果的可靠性和针对多标签分类问题的适用性,使得实验能够准确测试出本文算法的有效性,在数据集构建时主要选择Boeing和Airbus两个具有多种型号飞机的厂商,同时针对不同标签数据的数量进行了适当平衡。

本文数据集所采用的图像和标签,主要采集自FGVC-Aircraft数据集。同时根据需要按飞机型号标签采用爬虫的方式从网络爬取图片,对相应标签数据进行扩充,共包含1万幅飞机图像。如图5所示,其主要包含三级标签:“厂商”、“系列”、“型号”,且三者具有如下的包含关系:一个厂商包含一个或多个系列,一个系列包含一个或多个型号。“厂商”共包含2类,“系列”共包含14类,“型号”包含35类,每幅飞机图像都具有唯一的“厂商”、“系列”、“型号”标注。

图5 飞机数据集标签层级结构示意图

3.2 实验结果与分析

数据集采集构建完成后,将数据集的2/3分割出来作为训练集,剩余1/3作为测试集。其中训练集被用作训练神经网络,使网络在式(1)中目标函数的监督下能够更新自身权重,以实现自我学习,而测试集被用作验证算法的有效性。

由于本文采用的数据集具有3个标签,所以第2节中MLCNN结构中所对应的n=3,也就是说实验所采用的MLCNN共包含3个CNN特征提取部分(C1,C2,C3)和3个对应标签(L1,L2,L3)的分类器。因为卷积层的层数直接决定了CNN特征提取的能力,而影响分类器的识别效果,所以在该MLCNN网络中,3个CNN特征提取部分(C1,C2,C3)各自卷积层的层数,是影响其识别效果的主要结构参数。

为了在本文数据集上,选择识别效果较好的MLCNN网络。针对C1、C2、C3层数的不同比例分布,分别对不同的MLCNN网络进行训练和测试。同时为了保证各组网络之间可以进行比较,固定每组MLCNN网络的总层数均为15层。

该实验共选取7组层数分布不同的MLCNN网络。其中:第1组网络对应包含5个卷积层的C1、5个卷积层的C2和5个卷积层的C3;第2组网络对应包含6个卷积层的C1、6个卷积层的C2和3个卷积层的C3。同样,后5组网络C1、C2、C3所包含卷积层的数目,依次为:6层、3层、6层,3层、6层、6层,3层、3层、9层,3层、9层、3层,9层、3层、3层。所得的实验结果如表1所示。

表1 不同特征提取层数分布的测试结果

从表1可以看出,当最细分标签L3的识别率较高时,标签L1和L2的识别率也较高;只比较最终标签L3的识别率,发现第2组和第7组的识别率高于其他各组,此时C1+C2=12为几组实验中最高;只比较标签L2的识别率,发现也是第2组和第7组的识别率最高,此时C1层数分别为6和9,不低于其他各组;只比较标签L1的识别率,同样是第2组和第7组的识别率最高。

由该实验可以总结如下特征提取部分的层数选择经验:

(1) 当总卷积层数不限时,适当增加MLCNN的总层数可以提高最细分标签的准确率。

(2) 当总卷积层数受限时,适当减小最后一个特征提取层C3的层数,增加C1和C2的层数,可以提高标签L3的识别率;适当减小C2的层数,增加C1的层数,可以提高标签L2的识别率。将其归纳为MLCNN特征提取层数选取的渐减策略:

C1≥C2≥C3≥…≥Cn

从实验结果看出,当“CNN特征提取”层数采用渐减策略时,更能保证准确地提取出各层标签分类器所需要的特征,从而总体上提高各个标签的分类准确度。

综合考虑多个标签的识别效果,选用上述实验第7组方案的结果作为MLCNN针对本文数据集的最优实验结果。同时,采用另外两种传统方案,分别对相同数据集进行训练和测试。一种是SIFT特征提取,再用SVM进行分类的方式;另一种是针对各个标签分别训练独立的CNN。为了便于比较,各个CNN的层数与MLCNN中特征提取层数相对应,分别为:9层、12层和15层。实验结果如表2所示。

表2 不同方法在本文数据集的测试结果

从表2可以看出,本文所提出的MLCNN在三个标签的识别率均高于相互独立的单标签CNN,尤其在最高层级标签“型号”上相比单独的15层“型号”CNN分类网络,在测试集上的识别率提高了7.54%。这表明,本文提出的MLCNN可以利用不同层级标签之间的关系信息,将其作为特征提取的依据,从而减少干扰信息,优化网络的识别效果。

为了测试MLCNN在训练上的时间效率,在网络训练的同时进行了计时。实验所使用的计算机配置为:GPU(TITAN XP)、CPU(E5-2650)和内存(64 GB)。对应于三个标签的独立CNN训练用时分别为5、6.5和7 h,而MLCNN的训练用时为7.5 h。可以看出,训练一个MLCNN比起训练三个独立的CNN,在时间上节约了一半多。因此,MLCNN在时间效率上也有了较大的提高。

4 结 语

本文提出一种采用卷积神经网络解决多标签飞机识别问题的方法,并构建了多标签飞机数据集,训练和测试网络模型。实验结果证明,该方法明显优于同深度的单标签CNN和传统的SIFT+SVM模型,能够更好地利用不同标签之间的层级关系,缩短了网络总体的训练和测试时间,并在测试集上取得了更高的识别率。如何在保证网络深度的同时,调整网络优化算法的网络参数和计算复杂度是我们下一步的研究方向。

猜你喜欢

层数识别率分类器
浅探铺设土工格栅技术在软土路基加固处理中的运用
学贯中西(6):阐述ML分类器的工作流程
基于朴素Bayes组合的简易集成分类器①
通过绞车钢丝绳计算井深
MoS2薄膜电子性质随层数变化的理论研究
一种自适应子融合集成多分类器方法
档案数字化过程中OCR技术的应用分析
基于PCA与MLP感知器的人脸图像辨识技术
科技文档中数学表达式的结构分析与识别
人工智能现状和发展