马少鹏,梁 路,滕少华
(广东工业大学 计算机学院,广东 广州 510006)
近年来,智慧农业已成为当今世界现代农业发展的大趋势。无人机农业遥感具有运行成本低、灵活性高以及获取数据实时快速等特点,在中小型农场中应用的可行性较高,是智慧农业的重要组成部分,成为了现代精准农业的重点研究方向。
目前,高光谱遥感已经成为农业遥感的一个重要内容和发展趋势[1]。农业高光谱遥感的一个重要课题,就是农作物精准分类,快速精确地识别出农作物种类,是农业灾害监测、产量估计的重要基础[2]。病害、虫害对粮食作物的叶片结构、叶绿素含量等方面都有较大影响,这些影响也体现在光谱特征上。邓小玲等[3]采用连续投影算法提取对柑橘患病植株分类贡献值最大的特征波长组合,基于特征波长建立了多种分类模型,且分类准确率均超过95%。农作物种植面积是影响农作物产量的关键信息,而农作物分类与识别则是获取农作物种植面积和产量信息的核心问题[4]。张丰等[5]利用生长期水稻高光谱图像的光谱特征,采用混合决策树分类方法对不同品种的水稻进行了精细分类,总体分类精度达到94.9%。
现阶段,以深度学习为代表的一些依赖高性能计算设备的人工智能方法常常被用于高光谱图像分类,因为其在分类精度上明显优于传统学习方法。相比于大型农场,从散户发展起来的中小型农场保持了低成本和精细化管理的优势。然而,中小型农场的计算设备性能有限,导致无法使用复杂人工智能算法进行高光谱图像学习。而更换计算设备又会给中小型农场带来巨大的开销,提升其运营成本,使其失去市场竞争力。因此如何在设备计算资源和存储能力有限的条件下,提高高光谱图像的分类精度,是一个具有现实意义的科学问题。
高光谱图像中包含着丰富的谱信息和空间信息。许多传统的方法如随机森林[6]、支持向量机(Support Vector Machines, SVM)[7]只利用了高光谱图像中的谱信息,忽略了高光谱图像中的空间信息在分类过程中的重要作用,导致分类精度不高。
高光谱图像分类任务是根据图像内容将高光谱图像像素划分为一组离散的有意义的类。在高光谱图像中,相邻的像素属于同一类别的可能性较大,这说明空间信息在高光谱图像分类中同样重要。因此,一些提取高光谱图像空间信息的方法被提出,如三维小波纹理特征[8]、低秩矩阵[9]、三维Gabor小波[10]。这些方法需要分别提取空间特征和谱特征,然后将两者融合作为分类器的输入,并且需要预先手动设置参数。
近年来,深度学习方法如自动编码器[11]、深度信念网络[12]在高光谱图像分类上取得了良好的表现,在分类精度上领先于传统学习方法。胡伟等[13]使用卷积神经网络提取谱特征,使用谱向量作为网络的输入。陈雨时等[14]提出了一个4层的卷积神经网络来提取谱特征,并使用Logistic回归作为分类器。文献[13]和[14]以谱向量的数据形式来训练卷积神经网络,只利用了高光谱图像中的光谱信息,忽略了相邻像素间的相关性,因此在分类精度上还有提升的空间。
为了提高分类效果,必须充分利用高光谱遥感图像的空间信息,因此李映等[15]、李竺强等[16]使用三维卷积神经网络(3D Convolutional Neural Networks,3D-CNN)提取高光谱图像的空谱联合特征。曹相湧等[17]提出了一个7层的卷积神经网络,并使用三维的图像块作为网络的输入,同时使用马尔科夫随机场对神经网络输出结果进行后处理,促使相邻像素的分类标签尽可能相同。李涛等[18]使用3D-CNN提取高光谱遥感图像的空谱联合特征,并使用所提取的特征来训练随机森林分类器。文献[17-18]在3D-CNN的基础上结合了传统分类方法,利用了高光谱遥感图像中的标签信息,进一步地提升了高光谱遥感图像的分类精度。然而,在一些中小型农场或精准农业所面向的边缘端分发计算的场景下,设备存储能力以及计算能力相对受限,文献[17-18]中提出的方法不仅需要训练卷积神经网络,还需要额外训练分类器,会加重设备的计算负担,因此不适合应用于中小型农场中的高光谱遥感图像分类。
针对中小型农场的应用场景,本文提出了一种基于卷积神经网络的轻量级高光谱遥感图像分类方法,通过采用三维图像块作为网络输入的方法,融合谱信息和空间信息来提取空谱联合特征,从而能保证较好的分类效果。同时,采用了多种策略优化卷积神经网络结构,降低网络训练成本,使得本框架能够在资源有限的设备中发挥作用。
(1) 数据归一化。
使用min-max标准化的方法,对原始数据进行线性变换,将高光谱遥感图像像素值映射到[0, 1]之间。
(2) 降维。
高光谱图像的一个特点是波段数量多,数据量大,这给高光谱图像分类带来了很大的困难。随着参与运算波段数目的增加,高光谱遥感图像分类精度会出现“先增后降”的现象即Hughes现象[15]。去除冗余的光谱波段不仅能够节约计算资源,还能提高分类精度,因此采用主成分分析法(Principal Component Analysis, PCA)[19]来消除高光谱遥感图像中的冗余光谱信息,保留信息量多且相关性低的光谱波段。
(3) 图像边缘填充。
高光谱遥感图像分类是基于像素的分类,以高光谱遥感图像中的像素为中心,将高光谱遥感图像切割成大小为k×k×d的图像块。其中k×k为网络输入覆盖的邻域范围,d为图像经过PCA降维后的波段数量。图像边缘填充示意图如图1(k=3)所示,采用边缘像素的邻域像素进行填充,有利于保留边缘像素的空间信息。
图1 边缘填充示意图Fig.1 Example of padding of the edge
(4) 数据扩增策略。
许多深度学习方法在缺乏样本的情况下,采用数据扩增策略来增加训练样本数量。于仕琪等[20]采用大小为5×5的图像块作为网络的输入,并通过对样本进行旋转和翻转操作来增加训练样本数量。Sáiz-Abajo等[21]采用了偏最小二乘回归法对光谱数据进行处理,模拟出带噪声的数据来学习得到鲁棒性强的模型。借鉴文献[20]的数据扩增策略,对待扩增类中的样本进行旋转或翻转,得到扩增样本。受文献[21]的启发,并结合中小型农场中的设备局限性这一条件,本文通过对待扩增类数据样本添加高斯噪声来得到扩增样本。图2是数据扩增流程图,本文将样本数量最多的类的10%设置为阈值ε,样本量少于该阈值的类作为待扩增类,并随机采用上述数据扩增策略来增加待扩增类的样本数量。
图2 数据扩增流程图Fig.2 Flow chart of data augmentation
卷积神经网络通过相邻层神经元间的局部连接模式来获取图像像素间的空间信息,且卷积核参数共享的性质大大减少了神经网络中的参数数量,使得卷积神经网络在许多图像处理任务中取得了良好的表现,如目标检测[22]、图像语义分割[23]、人脸识别[24]。
本文针对中小型农场中高光谱图像分类的轻量级应用场景,结合有效的数据预处理操作和卷积神经网络,提出了一个轻量级的高光谱遥感图像分类框架。轻量级卷积神经网络模型如图3所示,使用两层三维卷积来提取高光谱图像中的空谱联合特征,并且通过卷积层与池化层的搭配,在不同的感受野上提取判别能力强的特征。采用PCA降维来减少卷积神经网络输入样本的光谱波段数量降低网络训练复杂度。在卷积层中加入批标准化(Batch Normalization, BN)[25]、全连接层中加入dropout策略[26]来加速网络的训练过程。
轻量级卷积神经网络及其参数设置如图3所示,其中包含两个卷积层、两个池化层以及两个全连接层。采用大小为k×k×d的图像块作为网络输入,不需要将输入样本展开为一维的向量,有利于减少图像中空间信息的丢失。
第一个卷积层采用300个大小为3×3×d的卷积核进行卷积,得到大小为L1×L1×300的特征图(L1=k-2),并在卷积层后加入BN层,最后使用relu函数作为激活函数。
经过第一个卷积层后,在得到的特征图上进行最大池化操作。池化层中,池化窗口大小为2×2,窗口移动步长为2。得到的特征图的大小为L2×L2× 300,其中L2=「L1/2」。
第二个卷积层中使用100个大小为3×3×300的卷积核来提取判别性更强的高级特征,得到大小为L3×L3×100特征图,其中L3= L2-2。同样,在第二个卷积层后加入BN层并用relu函数作为激活函数,然后对特征图进行池化操作。
第二个池化层中,池化窗口大小为2×2,窗口移动步长为2。得到的特征图的大小为L4×L4×100,其中L4=「L3/2」。
将第二个池化层输出的特征图展开为一维的向量作为全连接层的输入。两个全连接层神经元个数分别为100和C。其中C为数据集中样本类别数量。每层全连接层中都采用了dropout策略来加快训练过程。在最后一层的全连接层后采用softmax函数来得到样本属于各个类别的概率。
图3 轻量级卷积神经网络模型Fig.3 Lightweight Convolution Neural Network model
为了评估本文模型效果,本文在印第安纳松树林(Indian Pines, IP)测试区图、意大利帕维亚大学(Pavia University, PU)城区图和美国加利福尼亚州萨利纳斯山谷(Salinas, SA)影像数据集上展开了一系列实验。并与一些经典的传统分类方法以及深度学习方法进行对比,对比算法的结果及代码均取自原文献。所有实验中,采用每个类别中10%的样本作为训练数据集,剩余样本作为测试集。
IP数据集是通过AVIRIS传感器在印第安纳州西北部收集的。其图像大小为145×145像素,包含220个范围为0.4~2.5 μm的光谱波段。整个数据集中含有16个地物类别。
SA数据集是通过AVIRIS传感器在加利福尼亚州萨利纳斯山谷采集获取的,本文采用该数据集的子集来进行实验,该子集图像大小为86×83像素,包含204个光谱波段,数据子集中含有6个地物类别。
PU数据集是通过R0SIS传感器在意大利帕维亚大学获取的,其图像大小为610×340像素,包含103个波段,覆盖了9个地物类别。
通过实验使用上述3个数据集从以下3个方面对本文方法进行研究:(1) 图像块的光谱维度数量对高光谱图像分类精度以及模型训练时间的影响。(2) 图像块的大小对高光谱图像分类精度以及模型训练时间的影响。(3) 与其他传统方法及深度学习方法进行对比。
本文中的所有实验均在一台台式电脑上进行,这台电脑的处理器为英特尔酷睿i5-8400@2.80GHz,2.81 GHz且配有16 GB的内存以及NVIDIA GeForce GTX1060 6 GB的显卡,操作系统为64位的win10专业版。
与文献[27]相同,本文采用总体准确率(OA)、平均准确率(AA)、kappa系数3个评估标准来评估所有算法的表现。其中,OA为正确分类的样本数量与总样本数量的比值;AA为每个类的平均准确率;kappa系数既考虑了错判率也考虑了漏判率,更好地表示出分类器的表现性能。这3个评估标准的值越大,代表分类效果越好。
在对IP数据集的实验中,学习率设置为0.01,迭代学习次数设置为1 000。
(1) 采用PCA来对原始数据进行降维,并通过实验探讨图像块光谱维度对分类结果的影响。在这个实验中,图像块的大小固定为11×11。实验结果如表1所示,随着光谱维度的减少,网络所需的训练时间逐渐减少。当光谱维度为60时,分类准确率最高,达到98.9%。在不采用PCA降维的情况下,模型的分类效果最差,且训练时间最长。因此,采用PCA来对原始图像进行降维不仅可以提高分类精度还可以节省时间成本。综合考虑分类准确率及时间成本,在IP数据集的其他实验中,将图像块的光谱维度设置为60。
表1 图像块光谱维度在IP数据集上对分类结果的影响Table 1 Impact of the spectral dimension of patches on classification results on IP dataset
(2) 将图像块的光谱维度固定为60,研究图像块的大小对分类结果的影响。实验结果如表2所示,随着图像块大小增大,网络所需的训练时间增多,当大小为11×11时,分类准确率最高,达到98.9%。
(3) 综合上述实验(1)和(2)结果,采用11×11×60的三维图像块作为卷积神经网络的输入,并与现有的方法进行对比实验,实验结果如表3所示。本文方法在精度以及时间成本上表现远优于传统学习方法(即文献[27]中的方法)。相比于深度学习方法,在精度上文献[17]和[28]的方法略优于本文的方法,但是所需的训练时间远高于本文方法。在时间成本上,本文方法表现远优于其他的对比方法。因此可以看出,本文所提出的方法能够在保证一定精度的同时降低时间成本,能较好地满足中小型农场实现智慧农业的实际需求。
表2 图像块大小在IP数据集上对分类结果的影响Table 2 Impact of patch size on classification results on IP dataset
表3 本文方法在IP数据集上与现有方法的对比Table 3 Comparison on IP dataset
在对SA数据集的实验中,学习率设置为0.01,迭代学习次数设置为500。
(1) 为了研究图像块光谱维度对分类结果的影响,图像块大小被固定为11×11。实验结果如表4所示,在SA数据集上,图像块的光谱维度数量对分类精度没有太大的影响,分类准确率全都达到了100%。这说明了本文的网络模型能够从图像块中有效地提取出可判别性强的空谱联合特征。在模型训练时间上,随着图像块光谱维度的减少,训练时间逐渐缩短。当光谱维度为10时,训练时间仅为7.46 s。这表明,轻量级网络模型能够在设备资源受限的情况下,快速地完成高光谱遥感图像分类任务。
(2) 根据实验(1)结果,将图像块光谱维度固定为10,并对图像块的大小对分类结果的影响进行研究。结果如表5所示。随着图像块大小增大,模型所需要的训练时间逐渐增多,当大小为7×7、11×11、15×15时,分类精度都达到了100%,并且当大小为7×7时,训练时间缩短为5.35 s。
表4 图像块光谱维度在SA数据集上对分类结果的影响Table 4 Impact of the spectral dimension of patches on classification results on SA dataset
表5 图像块大小在SA数据集上对分类结果的影响Table 5 Impact of patch size on classification results on SA dataset
(3) 综合上述实验(1)和(2),采用7×7×10的三维图像块作为卷积神经网络的输入,并与现有的方法进行对比实验,实验结果如表6所示。与其他方法相比,在精度上,本文方法取得了最好的分类结果。在训练时间上略高于CapsNet[30],需要5.35 s的训练时间。
表6 本文方法在SA数据集上与现有方法的对比Table 6 Comparison on SA dataset
在对PU数据集的实验中,将学习率设置为0.001,迭代学习次数设置为2 000。
(1) 为了研究图像块光谱维度对分类结果的影响,将图像块大小固定为11×11。实验结果如表7所示,在PU数据集上,随着光谱维度的增加,模型所需的训练时间逐渐增长。当光谱维度为20时,分类准确率最高,达到96.58%,且训练时间远低于光谱维度为40的情况,略高于光谱维度为10的情况。因此综合考虑分类精度以及训练时间成本,在接下来的实验中将图像块光谱维度设置为20。
(2) 根据实验(1)结果,将图像块光谱维度固定为20,并对图像块的大小对分类结果的影响进行研究。结果如表8所示。随着图像块大小增大,模型所需要的训练时间逐渐增长。当大小为11×11时,分类准确率最高。
表7 图像块光谱维度在PU数据集上对分类结果的影响Table 7 Impact of the spectral dimension of patches on classification results on PU dataset
表8 图像块大小在PU数据集上对分类结果的影响Table 8 Impact of patch size on classification results on PU dataset
(3) 综合上述实验(1)和(2),采用11×11×20的三维图像块作为卷积神经网络的输入,并与现有的方法进行对比实验,实验结果如表9所示。与其他方法相比,在精度上,文献[17]中的方法取得了最好的分类结果,但是训练时间成本为本文方法的3倍。在时间成本上,本文方法所需要的训练时间最短。可以看出在图像规模较大的数据集中,本文的轻量级框架仍然能够在保证一定分类精度的同时以较低的时间成本完成高光谱图像分类任务。
表9 本文方法在PU数据集上与现有方法的对比Table 9 Comparison on PU dataset
本文结合中小型农场发展智慧农业的现实场景,在设备资源相对缺乏的背景下,提出了一种轻量级的基于三维图像块的卷积神经网络的高光谱遥感图像分类框架。首先通过PCA降维及数据扩增等数据预处理方法来解决高光谱遥感图像各光谱波段间包含冗余信息以及数据分布不均匀的问题,然后将高光谱遥感图像切割成一定大小的图像块作为卷积神经网络的输入。最后通过两次卷积和池化操作,在多个感受野下提取高光谱遥感图像的空谱联合特征,同时在卷积层后加入relu激活函数来防止模型过拟合问题。通过预处理时的数据降维,以及在网络中加入的批标准化和dropout策略,大大地加速了网络的训练过程,使得本文的轻量级高光谱遥感图像分类框架能够在保证较高分类精度的同时,降低网络的训练时间成本。
在3个基准数据集上进行了多次实验,并且与现有的经典传统方法以及深度学习方法进行了对比。在中小型农场中,无人机在低空飞行的条件下获取的高光谱遥感图像往往较小且具有较高的空间分辨率,这恰好与SA数据集吻合。实验结果表明,在较小规模的数据集SA中,本文的方法取得了很好的表现。而后,在中等规模的IP和PU数据集的实验中,本文的轻量化模型也能够较好地兼顾分类精度以及训练成本。这说明,本方法能够很好地应用于资源受限的中小型农场或面向精准农业的边缘端分发计算的场景。
未来工作的目标是解决实时的模型训练问题,即对半监督及无监督的轻量级高光谱遥感图像分类进行研究。高光谱遥感图像的无标签的样本比带标签的样本更容易获得,本文方法虽然能够较好地降低训练时间成本,但是无法充分利用实时接收到的无标签样本。将半监督或无监督的学习方法融入本文提出的方法中,能够解决实时性的边缘端的高光谱遥感图像分类问题。