徐姗姗,吕净妍,陈芳媛
(1.南京林业大学信息科学技术学院,江苏 南京 210037;2.哈尔滨理工大学机械动力工程学院,黑龙江 哈尔滨 150006)
植被检测方法众多,而深度学习技术在处理图像检测问题上日益成熟。对比传统图像处理方法,深度卷积神经网络运用了卷积层和池化层。卷积层能从局部获取信息,最后将局部信息综合得到全局信息,减少未知参数数量;池化层主要用来压缩数据,去除冗余信息,提取重要的特征,减小过拟合,缩小图片尺寸。此外,共享权值亦是卷积神经网络的一大特点,降低网络的复杂度,来处理高维数据[1]。而对于特征的选取,卷积神经网络不需要进行人工选取,只要训练好参数,即可得到特征分类。
早期的植被遥感分类需要到探测地进行野外实地调查,且检测主要以目视为主,不仅费时、费力、成本高,且无法进行大面积区域的检测。随着科技和理论的不断发展,K最邻近节点算法(KNN)[2]、聚类算法[3-4]、支持向量机算法(SVM)[5]、基于小波的分类方法[6]及全连接神经网络[7]和半监督算法[8]亦被应用于图像分类领域中,但算法依然在识别速度和精度上存在局限性[9]。KNN训练效率低,SVM对大规模数据训练比较困难,全连接神经网络则由于每一层都是全连接,导致参数过多训练困难,需要大量样本去训练,时间成本亦耗费巨大。在植被检测研究中,遥感数据主要是基于遥感图像和高光谱等。
基于高分辨率遥感图像的植被检测中,黄昌狄等10]采用自适应共振网络对植被进行检测识别,获得了90.8%的识别率,然而网络构建较为复杂;陈斌等[11]采用深度学习技术中的GoogleNet模型对植被进行分类检测,获得了88.3%的识别精度,然而GoogleNet添加的损失函数容易导致扩展性低下;王健[12]基于传统的卷积神经网络对山区的植被信息进行检测,获得了94.0%的识别精度,然而山区植被场景的检测较为简单;杨朦朦等[13]基于信号处理中的小波分解和传统BP(back propagation)神经网络对遥感图像进行分类识别,获得了93.1%的识别精度,然而需要添加小波分解过程;刘祖瑾等[14]采用深度置信网络对遥感图像中的植被进行提取检测,获得了91.9%的识别精度。高光谱是遥感数据中常用的信息,马凯等[15]基于BP神经网络,对高光谱图像中的植被直接进行检测,得到92.4%的目标识别精度。但是,高光谱信息无法合理利用植被色彩信息,因此,更多的研究是基于图像和高光谱信息的植被检测,例如,陈冠宇等[16]采用传统机器学习中的支持向量机算法对图像中的植被区域进行检测识别,精度达到83.6%,然而支持向量机通常希望正负样本的规模差不多,否则容易造成误分类。
卷积神经网络(CNN)模型成功应用于手写体字符识别并获得优异成果[17],其结构不断得到优化,逐步应用在物体检测、图像识别[18]、人脸识别、语音识别等诸多方面。基于CNN模型,通过对其结构进行分析,利用优化深度网络模型来对遥感图像中的植被区域进行检测识别。
本研究基于遥感卫星影像,通过对卷积神经网络的深入研究,包括优化器的原理、卷积核的设置以及网络层数配置,对高分辨率图像中的植被区域进行检测,快速有效地检测出城市中的植被区域,为植被资源统计等相关研究及管理提供依据。
研究区域为南京市玄武区(118.79°E,32.05°N),植被类型包括常见乔木和灌木。而根据城市森林类型划分,主要包括行道树和城市森林公园等。
目前,在植被检测研究中,相关的样本集并不丰富,需要构建实验所需的样本集,并对数据集进行预处理。数据采集方式为卫星遥感图像,地面的分辨率为0.3 m。为了去除图像畸变造成的干扰,数据集需要先进行正射变化,使得数据接近于垂直采集方式。首先把图像分为256×256像素,对图片采取旋转、翻转、增强亮度和对比度等一系列操作用以数据扩充,并进行正负样本分类。目标是将样本扩充至原来的50倍。最后获取了植被(正类)数为1 665,非植被(负类)数为1 032。部分正负样本集见图1。
卷积神经网络为一种通过卷积池化计算自动提取特征,具有深度层次结构的神经网络,在训练过程中采用反向传播算法来不断调整参数,优化网络结构,得到一个近似的结果。其基本结构包括了输入层、卷积层、池化层和全连接层。卷积神经网络的基本结构如图2所示。
首先,在输入层输入训练样本,从这些样本中,学习特征图,并进入卷积层,卷积层的卷积核与上一层获得的特征图进行卷积操作,通过激活函数得到这一层的神经元,构成了该层特征图。在卷积层中,每个特征图可以共享权值,不同的卷积层则需要使用不同的卷积核。卷积核(aij)计算公式为
(1)
式中:wm,n和xi+m,j+n分别为卷积核和某局部区域对应权值,wb为卷积核的偏置值,(i,j)为二维图像中像素点的位置。
图像从邻域选取与卷积核相同尺寸的区域,卷积核每个对应的权重与之相乘,得到的数据作为一个新的神经元,之后移动卷积核,让图像继续进行上述卷积操作,最后新神经元构成了新的特征图输出到下一层结构中。
假设W为输入图像宽度,P为填充尺寸(padding size),f为卷积核尺寸,s为卷积核移动步长,则经过卷积层卷积后输出的图像大小为(W+2P-f)/s+1,结果向下取整。在卷积层中,通常需要设置多个卷积核,从而得到完整的卷积特征。然而,多个卷积核导致权重设置困难,因此本研究重点对卷积核与网络层数进行研究。
由于进行高维度特征训练时,需要耗费巨大的计算资源,并可能会产生过拟合等问题,为了减少计算的复杂度,引入池化操作,即将上一层卷积得到的特征图输入到池化层中进行训练,把一个局部区域的不同位置的特征聚合成一个特征,从而输出无冗余信息的特征图。通常池化层的池化操作取对应位置的最大值或平均值,分别称之为“最大池化”和“平均池化”。在池化过程中,无学习参数,因此无需反向传播,也不需要计算梯度。最大池化操作和平均池化的示意图见图3。
在池化操作中,假设W为输入特征图像的宽度,f为池化窗口的宽度(卷积核尺寸),则输出的图像特征图大小为(W-f)/s+1,计算结果向上取整。
全连接层在卷积神经网络中有对特征碎片分类的功能,通常运用于网络的最后若干层,其将经过卷积池化后的特征做分类整合,并映射到样本标记空间中。全连接层将图像中所有特征保留下来并做整合,不考虑位置关系,每一个神经元都会与上一层神经元连接,因而参数量和计算量巨大。在卷积神经网络模型中,全连接层通常只设置2~3层。
相比于全连接层网络,卷积层内的同一个特征图能够共享权值,且池化层能降低图像的分辨率,去除冗余的信息,大幅度减少网络的参数,降低网络的复杂度。再者,因为卷积神经网络能够得到某些特殊的特征,比如图像的边角等,以及能从局部感知全局的特性,保证了卷积神经网络的平移、旋转、缩放和拉伸的不变性,甚至不同环境条件下,都能识别出样本特征,与其他传统方法相比识别结果更加精确[19]。
初始的6层卷积神经网络如图4所示。分别针对优化器、卷积核以及网络层数进行分析,基于Loss值(损失函数值),得出最优结构。
深度学习网络中优化器共有多种,比较常见的优化器有梯度下降优化器[20]、Adam优化器[21]、Momentum优化器等[22],本研究对上述3种优化器进行实验,对比不同优化器的优缺点,选取最适合植被检测的优化器。
为了防止其他因素对实验造成影响,设置其他参数保持一致,网络层数为10层(其中包括4层卷积、4层池化、2层全连接),卷积核大小为5×5,把批处理的尺寸(batch_size)设置成32。梯度下降优化原理是在当前位置寻找梯度,沿着梯度相悖的方向就能让函数值快速下降,直到找到最优解。主要参数是学习率,因而须对优化器的学习率进行确定。研究中学习率的设定需要通过反复实验来设置,这里仅仅给出3个学习率探讨结果,如图5所示。
当学习率为0.000 1时,虽然Loss值呈下降趋势,但因学习率太小,收敛速度异常缓慢,训练次数达到104次时,Loss值依然在0.6以上震荡,需要大量的训练次数才能得到预期的实验结果,耗费巨大计算资源。学习率为0.001的网络图像可以在4 800次训练时得到较好收敛,但Loss曲线收敛后仍会存在轻微震荡,无法达到预期实验精度。在学习率为0.1的网络中,由于学习率过大,一直无法到达最低点,使震荡不收敛。故根据实验结果,可以得出结论,采用梯度下降优化器需要多次试验,选取合适的学习率,学习率太小会导致Loss曲线收敛缓慢,反之会使优化幅度直接跳过最优点,导致曲线震荡不收敛。
根据上述实验结果,保持其他参数不变,选取学习率为0.001的GradientDescent梯度下降优化器,将其与Adam优化器以及Momentum优化器进行对比试验,从而选取合适的优化器。Adam优化器从随机梯度下降(SGD)算法扩展而来,与之不同的是,Adam是一种自适应的优化器,可以根据训练的数据自动更新神经网络的权重,且学习率在训练时不发生改变。Momentum优化器引入SGD算法,由于引入动量的概念,可以积攒历史梯度动量,当前的权值会受到上一次下降梯度的影响,如前一刻梯度与当前梯度不一致,受到前一梯度影响,会在当前梯度方向按前一梯度的权值减弱下降的幅度,从而减小震荡。而如果当前的梯度与前一梯度方向相似,则下降的趋势会在此时增强,通常超参数动量设置成0.9。3类优化器的Loss曲线全局图见图5。由图5D可见,Adam优化器能很快找到正确的下降方向,Loss曲线收敛最快,收敛后,曲线比较稳定,不会发生大幅度震荡;GradientDescent梯度下降优化器的Loss曲线下降均匀,但收敛后仍会发生小幅度震荡,下降速率慢于Adam优化器,且需要考虑是否陷入局部最优解的状态;Momentum优化器刚开始很难找到正确的前进方向,下降速度比随机梯度下降优化器快,在邻近最优解时由于前一梯度与当前梯度不一致,造成收敛缓慢。根据以上结论,Adam优化器是3类优化器中最好的选择,能够更好地优化网络结构,更快地训练。
在CNN网络中,卷积核是一种二维的滤波器矩阵,图像的每一个像素点及其邻域像素(选取的邻域与卷积核大小有关)都要与卷积核对应的权值相乘,从而提取有效的特征,因此卷积核的选取亦对实验有较大影响。根据理论知识,越大的卷积核,感受野也就越大,能够识别的图片信息就更多,获得的特征就越完整[17]。卷积层的运算量为num(MAC)=I×J×M×N×K×L。其中,num(MAC)为当时网络计算量,I×J为卷积核尺寸,M×N为输出特征大小,K表示输入通道数,L表示输出通道数。可知卷积核越大,伴随的计算量也会明显增加。如假设卷积核尺寸为3×3,输出特征图大小为32×32,输入通道数为3,输出通道数为16,则计算量为3×3×32×32×3×16=442 368;若卷积核改成9×9,则运算量增大到3 981 312,比3×3的卷积核运算量增加了近10倍。为了选取合适的卷积核尺寸,使实验达到较为满意的结果;同时,因为卷积核是一个矩阵,为了让其有一个中心点,通常卷积核宽度应为奇数。此时,使用上述提到的Adam优化器,网络层数为10层(包括4层卷积、3层池化、2层全连接以及1层输入层)的卷积神经网络,分别将卷积核宽度设置成3、5、7、9、11,其Loss曲线对比图(全局)如图6A所示。尺寸大小为3×3的卷积核在迭代8 520次左右时会发生大幅度震荡,卷积核宽度分别为7和9的曲线图在迭代9 120次和6 480次左右发生震荡,卷积核宽度为11的Loss曲线下降最为缓慢。由图6B迭代次数为0~1 500次的局部Loss曲线图,发现卷积核尺寸为9×9的Loss曲线在迭代700次左右时就已经收敛,收敛速度最快,当卷积核宽度分别为3和11时,收敛都较为缓慢,故卷积核过大或过小都不能很好地提取特征信息。而卷积核宽度分别为7和9的Loss曲线收敛时间相差无几。由迭代次数为500~1 000的Loss曲线图(图6C),可以发现卷积核宽度为9比卷积核宽度为7的Loss曲线图收敛得更快。因此,尺寸过大过小的卷积核都无法有效提取特征,应根据样本集选取合适的卷积核尺寸。卷积核宽度为9的神经网络对于遥感植被样本集更为有效,能提取更加完整的样本特征。
全连接神经网络由于参数量太多,无法利用像素之间的位置关系,每个像素点都被同等对待,导致学习大量无用的权重,且由于限制了网络层数,无法运用深层次的网络进行训练,故不太适合将全连接神经网络运用于图像识别中。而CNN增加了局部连接,权值共享和池化等方法解决了全连接层的以上问题。一般来说,网络层数越多,其表达能力越强。为了验证这一想法,研究使用大小为9×9的卷积核,其他变量依旧保持一致,网络层数分别设置成6、9、10、11、12、13层(其中6层网络包括2层池化层,其余网络均为3层池化层,卷积层分别为2~7层),其实验结果如图7所示。此时,池化层为3层的卷积网络Loss损失值均为0.7左右,比2层池化的Loss值低,说明池化层能够有效地去除冗余信息,提高计算效率。而在收敛后Loss曲线的稳定性分析上,13层和10层卷积神经网络稳定性较好,11层在迭代9 100次左右发生了大幅度震荡,6层网络的振荡频率则比较频繁。
从迭代0~2 000次的Loss曲线局部图(图7B)可见,10层网络的稳定性依然是所有曲线中表现最好的,也是Loss值下降和收敛的最优配置,而11层网络的曲线并不稳定。
迭代500~1 500次时,可以明显观察到,10层网络已经基本收敛,13层网络由于训练参数较多,结构复杂,Loss值依然可能会升高至较大水平;再观察曲线的稳定性,9层和10层网络收敛后,基本不会发生抖动,比较稳定;而其他曲线仍有很大波动,未能达到收敛状态。
综合考虑,10层网络结构在实验样本集上能够保持最好的Loss曲线收敛速度和收敛后的稳定性,为本实验所研究的最优结构。
卷积神经网络的优化器、卷积核大小和网络层数都对实验结果有重要影响,Adam优化器是目前最主流的优化器,能够自动变更学习率,加快收敛速度。卷积核过小不能有效提取特征值,过大反而会导致计算量暴增,曲线难收敛,在本研究中,卷积核大小为9×9可以达到最好效果。卷积网络层数则没有具体标准来定性,需要通过具体实验来确定最优结构,10层卷积网络(包含1层输入层、4层卷积层、3层池化层和2层全连接层),可以在本实验中达到较好的效果。运用上述参数构成的卷积神经网络测试483张遥感图片,正确分类了470张,其中240张为植被图像,230张为非植被图像,分类效果如图8所示。结果错误分类了13张图片,得到的植被检测平均识别率为95.4%。在统计正确率过程中,当整幅图80%像素点为植被信息并且算法识别为植被区域时,认为该图被正确识别。
本研究的植被检测精度为95.4%,高于其他方法所得结果[10-16]。
实验中错误分类的图片是指图片中含有80%以上像素点为植被区域,却被算法识别为非植被或者仅有20%不到的像素为植被区域,而算法却认为是植被区域。错误主要集中在:植被区域比较分散的图片;阴影区域较多的区域;植被与非植被区域界线不明显;非绿色植被易识别错误,如非植被区域为绿色,则容易识别为植被。
若需要提高精度则应当增加训练层数,增加非绿色植被的训练样本数,继续增加网络层数,探寻是否有更适合本实验的网络结构,以获得更加精确的识别率。如果卷积神经网络能选用合适的参数和网络结构,就能够提取植被特征并完成对植被的检测,且提升植被检测的识别率。
1)用深度卷积神经网络进行植被参数提取时,卷积层的作用是提取图片特征,池化层能够有效地去除冗余信息。在利用卷积神经网络处理二维图像时,无需手动提取特征,进行简单少量的预处理后,直接把图像输入到CNN模型中进行训练,即可实现图片的识别分类功能。降低了预处理的难度,同时局部感知和权值共享大幅度地减少了参数数量,加快了计算速度。次抽样还能保证图像处理后的平移、旋转、缩放和拉伸的不变性,解决了传统方法计算量和样本量大、结构复杂以及费时的缺点。
2)优化卷积神经网络,应当选取合适的卷积核尺寸、优化器和网络层数。卷积核选择错误会导致植被检测分类结果的精度降低,Adam优化器能够自适应调整学习率,让Loss曲线快速收敛。网络层数则没有定性的指标,必须根据样本集不断试验才能得到最好的网络结构。本研究的植被检测精度为95.4%,与其他算法相比精度较高。