基于改进GoogLeNet的遥感图像分类方法*
2019-05-28韩要昌蔡启航
韩要昌,王 洁,史 通,蔡启航
(空军工程大学防空反导学院,西安 710051)
0 引言
遥感图像就是通过航空或航天器,在远距离非接触的技术手段下获得的图像[1]。遥感图像具有分辨率高、内容丰富等特点,在军事领域中,可利用遥感技术对敌方军事基地进行识别定位和侦查,取得先机,比较典型的目标有机场、港口、舰队和导弹阵地等[2]。文献[3]进行了遥感图像预处理的分析研究,为提供遥感图像识别分类提供了重要参考。文献[1]针对遥感图像中的港口目标,利用CNN(卷积神经网络)进行了分类研究;文献[4]进行了遥感图像中飞机的分类研究。在实际应用中,获得的是某个区域的大范围遥感图像,对于不同类别的众多典型目标,如何将其识别定位,为指挥人员提供决策依据,是军事侦察中的重要课题。
特征提取是图像识别的关键,在早期的图像分类中,必须借助SIFI、HOG的算法提取具有良好区分性的不变矩特征[5]。图像识别则依靠SVM(支持向量机)和BP(反向传播)神经网络等实现图像的分类,受人工提取特征的限制,错误率较高,表现较好时也仅在26%以上[6]。CNN则可以达到更好的特征提取效果,是图像识别和分类的有效手段。
1 遥感图像分类模型的选择
CNN起源于20世纪80年代提出的神经认知机[7-8],比较经典CNN结构的有LeNet-5、AlextNet、VGG Net、GoogLeNet和ResNet[8-12]等。对于大规模的数据集,网络层数越深,提取和识别的特征就越多,训练和泛化的效果也就越好,但是遥感图像的数据集比较小,并且同一般的RGB图像相比,遥感图像的信息更加丰富。因此需要通过实验和改进来确定合适的网络结构。
针对遥感图像的分类,选择了武汉大学夏桂松团队开发的公开数据集AID[14],分别在LeNet-5、AlextNet、VGG Net、GoogLeNet和ResNet上训练,测试了AID数据集的训练时间和识别正确率,结果如表1所示。AID数据集共有10 000遥感图片,分为30类,每张包含200~400张600像素×600像素的图片。同UCM等早期经典数据集相比,AID中来源多元化,可以更加客观的检验各种算法的识别率和泛化能力。
选择AID数据集训练5种典型的CNN结构,试验采用的硬件配置为:CPU为Intel i7,GPU为NVIDIA Tesla K40。迭代次数为30 000次。
表1 五种CNN模型的遥感图像分类准确率对比
对比训练结果,GoogLeNet模型的分类效果最好,Lext-5模型的准确率最低,其余3种网络的性能相差不大。因此选择GoogLeNet模型作为研究改进的对象。GoogLeNet结构虽然识别率较高,但是仍难以满足要求。为了进一步提高图片识别率,通过研究GoogLeNet的实现原理,对GoogLeNet网络模型做了改进,提高了训练和测试效果。
2 改进的GoogLeNet网络模型
2.1 GoogLeNet模型的机理
GoogLeNet网络模型是基于Inception模块堆叠而成。一般先通过1×1卷积降低通道数聚合信息之后,再进行计算,有效地利用了计算力,融合不同尺度的卷积以及池化操作,进行多维特征的融合,识别和分类效果也更好;将计算力由深变宽,也避免了网络太深导致的训练梯度弥散的问题。GoogLeNet网络采取全局均值池化,解决了传统CNN网络中最后全连接层参数过于复杂且泛化能力差的特点。
图1 改进后的Inception模块结构图
2.2 对GoogLeNet模型的改进
GoogLeNet的整体结构是针对类似ImageNet等大规模数据集来设计的,这种框架对大型的普通图像数据集分类效果优秀。而较为典型的遥感图像数据集,如UCM等,图片数量一般在几千张到一万张之间,样本数量远远少于普通图像;此外,遥感图像具有6个通道,特征更加复杂。
为了提取更多的潜在特征,首先在Inception模块中增加7×7卷积操作和相应的降采样层。改进后的Inception模块如图1所示;针对数据集较小的情况,将层数降低为16层,保留其中一个分支分类器;在全连接层之前添加Batch-Normalization正则化工程,改善梯度消失问题。Batch-Normalization的工作过程如下:
1)输入:mini-batch中的值:x={x1,x2,…,xm}
2)mini-batch方法求均值
(1)
3)min-batch方法求方差
(2)
4)正则化
(3)
式中:θ为偏置,设为固定值。
5)输出结果:
(4)
式中:γ、β是需要学习的参数。
对于最后的分类问题,由于支持向量机(SVM)在分类问题中的良好表现[15],采用SVM进行最后的分类。改进好的结构命名为GoogLeNet16。
2.3 改进效果验证
采用同样的数据集,也就是AID遥感图像数据集,对GoogLeNet进行训练,迭代次数为5 000次,学习率为0.1,实验结果对比如表2。
表2 GoogLeNet和GoogLeNet16分类结果
从表2可以看出,同原有的GoogLeNet相比,GoogLeNet16网络模型的分类准确率提高了5.2%,训练时间减少了21 min,说明改进的GoogLeNet是有效的。
3 利用权值初始化迁移模型
分析表2的训练结果可以看出,虽然改进后的网络模型在遥感图像的分类方面性能有了很大提高,但是改进后的分类准确率也仅仅达到了86.4%,尚不能满足实际应用的要求。受限于各种因素,遥感图片数据集很难大规模扩大,因此需要尝试从其他途径提高遥感图像分类的准确率。迁移学习是解决小规模数据集训练的有效方法[16]。
定义:给定源域DS及其学习任务TS,目标域DT和学习任务TT,利用在源域DS的学习任务TS中学得的知识提高在目标域DT中任务TT中的学习效果的过程,称为迁移学习。其中:DS≠DT,或者TS≠TT。
基于权值的迁移学习可以使深度卷积神经网络模型更好的初始化,从而更好的学习特征和充分利用计算资源。传统机器学习与迁移学习对比如图2所示。利用在相似数据集中训练好的模型中的权值进行初始化,在新任务的学习中不断调整这些参数。这样,网络可以更加快速地学习到遥感图像数据集的高级特征。
图2 迁移学习与传统机器学习对比
迁移学习中对源域的选择是非常重要的。ImageNet数据集是比较经典的超大规模的数据库,它包括了1 400余万幅图像,分为两万多个类别,选择ImageNet作为迁移学习的原始数据集,训练原始数据集时使用对大规模数据集效果较好的GoogLeNet16网络,将训练好的模型保存,再使用AID数据集训练该模型。采用基于权值的迁移学习方法和全训练方法分别在改进的GoogLeNet16上训练,训练ImageNet数据集时的迭代次数为30 000次,训练AID数据集时的迭代次数均为5 000次。结果如表3所示。
表3 GoogLeNet16全训练与迁移学习训练结果
从结果对比可以看出,采用基于权值的迁移学习方法可以明显提高针对AID遥感图像分类的准确率。将改进之后的GoogLeNet模型与基于权值迁移的学习方法相结合,明显提高了对AID遥感图像数据集自动分类的准确率,达到了96.8%。
4 实验与分析
为了验证该方法普遍适应于遥感图像的自动分类,将该方法对其他选定的遥感图像数据集进行分类实验验证。
4.1 实验数据集
实验数据集选取UCM和WHU-RS19(以下简称RS19)。UCM遥感数据集是由美国USGS国家地图图像集合中手工提取而来的公开遥感图像数据集。该数据集总共有21类2 100幅图片,每类100张图片,大小均为256像素×256像素。RS19数据集的像素为600像素×600像素,总包含19类场景图像,每一类大概50张,共1 005张。
4.2 GoogLeNet16的学习率和迭代次数
在训练卷积神经网络时,学习率的取值是影响训练结果的重要因素。当学习率过大时,学习过程难以收敛;当学习率过小时,学习的效率将变得非常慢,神经网络的收敛速度非常慢。同时,训练中的迭代次数对训练结果的影响也较大。迭代次数过大,深度神经网络的训练时间将大大增加,出现过拟合的可能性也大大增加,从而降低分类的准确率;如果迭代次数过小,会导致学习不够充分,达不到学习目的。因此,选择合适的学习率和迭代次数是非常重要的。
在选择学习率和迭代次数时,将学习率和迭代次数分别固定,观察另一个变量的变化,选择合适的值。利用UCM数据集在GoogLeNet上进行全训练,分别得到了固定迭代次数时学习率对训练结果的变化和固定学习率时迭代次数对训练结果的变化。
4.3 实验结果与分析
利用UCM数据集在GoogLeNet16网络模型上实验,固定迭代次数为5 000次,选择0.02~0.2之间的10个值作为学习率。实验结果如图3所示。
观察图3(a)的实验结果可以看出,学习率位于0.08到0.2时,训练效果基本处于较高水平;学习率在超过0.16以后时,分类效果还呈下降趋势;学习率低于0.08时,训练效果比较低且不稳定,因此在选择迭代次数的时候将学习率设定为0.1。
在学习率为0.1的情况下,不同迭代次数下的训练结果由图3(b)给出。迭代次数在3 000次以后逐渐趋于稳定,在95%上下。在迭代次数少于3 000次的情况下,特征学习不足,分类准确率不高。从整体考虑出发,选择迭代次数为4 000次。
图3 学习率和迭代次数对训练结果的影响
由于遥感图像和自然图像存在着较大的差别,因此,在利用ImageNet数据集进行迁移学习之后,以其他遥感数据集为源域再次进行迁移学习。分别选定AID、UCM和RS19遥感数据集作为目标数据集,学习率设定为0.1,迭代次数设定为4 000次。实验结果如图4所示。
图4 不同的迁移方式对比
观察实验结果可以看出,单纯使用ImageNet迁移和先使用ImageNet迁移再使用其他遥感数据集迁移学习的准确率相差不大。使用ImageNet+AID和ImageNet+UCM比使用ImageNet有很小的提高,使用ImageNet+RS19比使用ImageNet略有下降,这可能与两种遥感图像数据集制作方式不同有关。因此,使用大规模的自然图像作为迁移学习的源域足以满足遥感图像分类的需要。
设置学习率为0.1,迭代次数4 000次,分别对AID、UCM和RS19进行分类,采用GoogLeNet全连接训练和采用改进后的GoogLeNet网络权值迁移训练的遥感图像分类准确率如表4所示。
表4 GoogLeNet全训练与GoogLeNet16迁移学习结果对比 %
从表4可以看出:利用改进后的GoogLeNet网络模型和基于权值的迁移训练方法对不同数据集中的遥感图像进行分类,均有较大幅度的提升,而且分类准确率均在95%以上,基本满足了实际应用的需要,试验验证了采用改进的GoogLeNet模型和权值迁移的方法相结合,对于提高遥感图像分类的准确度是通用的。
5 结论
针对遥感图像的分类问题,选取AID、UCM和RS19等经典遥感图像数据集,在GoogLeNet的基础上,根据遥感图像的特点设计了改进的GoogLeNet16深度卷积网络模型,结合基于权值迁移的学习方法,选取合适的学习率和迭代次数,提高了遥感图像的分类准确率,实验结果表明,该方法对不同的遥感图像数据集的分类准确度均可稳定在95%以上,基本达到了实际应用的要求。该方法的不足之处是对数据规模的依赖性较强,对具有新特点的数据集和场景需要进行训练,影响了时效性。后续工作还需要对一些特殊场景下的遥感图像分类,尤其是厚云层下的遥感图像以及防空导弹阵地的识别、海洋遥感图像中的舰船识别等问题,进行更加深入的研究。