刘文定 田洪宝 谢将剑 赵恩庭 张军国
(1.北京林业大学工学院, 北京 100083; 2.林业装备与自动化国家林业和草原局重点实验室, 北京 100083)
虫害是林业的主要灾害之一,严重危害着林业生态环境[1]。据有关统计,2006年至2011年,我国林业有害生物造成的年均损失总计1 101亿元[2]。科学防治虫害对于生态系统意义重大,而林业信息监测[3]可为林业虫害防治提供重要的数据支撑,使虫害防治方案更加合理、有效。在林业信息监测中,无人机监测高效准确,得到广泛应用[4-5]。
通过无人机搭载高清摄像机,可以及时获取林区虫害图像。针对无人机获取的图像,如何精准区分健康林区和虫害区域,是林业信息监测的研究重点。图像分割是虫害区域识别的主要方法。常用的图像分割算法有聚类算法、复合梯度分水岭算法和基于图论的分割方法。李冠林等[6]利用K-means硬聚类算法进行了葡萄病害的分割,分割病斑区域较为准确。江怡等[7]采用分水岭变换对遥感图像进行分割,有效抑制了过分割现象。赵瑶池等[8]采用了基于纹理差异度引导的DRLSE虫害图像分割方法,得到较为精确的病变区域轮廓。张军国等[9]提出基于复合梯度分水岭算法的虫害图像分割方法,并降低了平均相对误差率。上述传统分割方法泛化能力差,需要人工设计特征,为了适应数据的变化需要经验和时间调整。提高模型分割林区虫害图像的泛化能力、实现快速准确识别非常重要。
近年来,深度学习技术得到快速发展,图像分类、目标检测、图像语义分割都涌现出了一大批模型[10-14],这些模型都取得了非常优异的效果。LONG等[15]提出全卷积神经网络,将卷积神经网络的全连接层用卷积层替换,开辟了一条全新的图像语义分割方向。孙钰等[16]将全卷积神经网络应用于大棚及地膜农田分割,并对全卷积神经网络进行改进,提高了识别精度。这些方法对于规则的物体分割准确,但对于边界复杂的林区虫害区域识别效果不尽理想。
本文以八旋翼无人机航拍的辽宁省建平县林区油松林虫害图像为研究对象,针对标注样本匮乏问题,通过迁移预训练模型以降低样本需求,提升模型收敛性。考虑到油松林虫害区域复杂、边界不规则的特点,通过跳跃结构融合多层特征,提升全卷积神经网络识别精度。经过模型训练和优化,实现油松林航拍虫害区域快速、精确识别。
图像采集平台采用自主研制的八旋翼无人机,并搭载了单反相机,如图1所示。八旋翼无人机飞行时间15~20 min,抗风等级4~5级,飞行高度可达500 m,图像传输距离800 m,控制距离1 000 m,松下GH3型单反相机。
图1 八旋翼无人机实物图Fig.1 Physical map of eight-rotor drone
虫害图像数据来自于八旋翼无人机航拍的辽宁省建平县朱碌科镇和张家营子镇的油松林虫害图像。在阴天和多云环境下进行图像采集,2016年8月完成采集。航拍对象为受虫害侵蚀的油松林,选取20块典型区域作为采集样地,每块采集样地面积为30 m×30 m,航拍高度为10~50 m,单幅航拍图像尺寸为4 608像素×2 592像素。共采集虫害航拍图像450幅,选取油松林有效图像167幅。
针对采集的167幅4 608像素×2 592像素虫害图像,每幅图像无重叠裁剪为8幅1 000像素×1 000像素图像,共生成1 336幅,剔除部分无虫害图像,共得到800幅1 000像素×1 000像素图像。选取其中600幅作为训练集,100幅作为验证集,剩余100幅作为测试集。无人机航拍的虫害图像分辨率高、细节清晰,以虫害区域人工目视标注为主,以检验修正为辅的方式进行标注。首先对虫害的内部区域批量标注,然后对虫害的边界区域逐像素标注,最后将图像中剩余部分标注为健康区域。将健康区域的灰度设置为0,虫害侵蚀区域的灰度设置为1,多类别标注可以通过增加灰度类别实现。在完成人工精确标注后,将标注图的虫害区域映射到对应的原图区域,检测标注精度是否理想,并对不完善区域进行修正,如图2所示。
图2 航拍原始图像及人工精确标注图像Fig.2 Original image of aerial photography and artificially labeled image
以VGG16[17]为基础网络构建全卷积神经网络,将VGG16模型全连接层替换为卷积层;采用迁移学习预训练网络参数,降低全卷积神经网络样本需求量,减少过拟合,提升收敛速度;通过跳跃结构融合不同层特征,提升虫害区域识别精度。卷积化实现端到端学习,迁移学习提升模型收敛速度,跳跃结构优化识别精度,三者相辅相成。
卷积神经网络对图像特征具有很强的提取能力,较浅的层具有比较小的感受野,能够获取局部的信息,而较深的层具有比较大的感受野,能够获取更多的信息。卷积神经网络是良好的特征提取器,但是卷积神经网络最后几层一般为全连接层,能够较好地得到图像类别,但是也因此丢失了图像的细节,最后很难得到每个像素对应的类别。
传统的卷积神经网络是采用周围的像素块进行预测得到像素级的预测,但是这种方式存储开销大,计算效率非常低。将全连接层用卷积层进行替换,用上采样就可以恢复到原图的尺寸,然后用softmax分类器逐像素分类得到每个像素对应的类别,实现语义分割,得到虫害区域识别结果。如图3所示,将VGG16模型最后的全连接层用卷积层替换,并上采样得到最终识别结果,图中H为图像高度,W为图像宽度。
图3 虫害区域识别实现过程Fig.3 Implementation process of pest area identification
由于采集的虫害图像样本有限,精确标注的样本更为珍贵,本文采用迁移学习降低样本需求,提升模型收敛性。迁移学习[18-19]是运用已有的知识,对不同但是相关的领域求解的方法。迁移学习针对不同的数据量有不同的训练方式,针对于小数据量,一般去掉softmax层,定义新的softmax层,并开放全连接层,冻结所有卷积层的参数,用新的样本训练全连接层网络参数;针对中等数据量的样本,一般需要逐步开放全连接层之前的卷积层,数据量越多,开放的层数越多;数据量较大时,可以将原始的网络参数作为初始参数进行训练,使模型更快收敛。
本文数据样本较少,用ImageNet数据集[20]训练VGG16网络,训练完成后始终冻结卷积层参数,用ADE20K数据集[21]预训练全卷积网络反卷积层参数,并将此网络参数作为虫害图像训练的初始值。
卷积神经网络中浅层的卷积层能获得纹理等低级的语义信息,深层可以获得高级语义信息,通过融合不同的层可以获得多种特征信息,有效提升识别性能。虫害图像不规则,边界复杂,病害区域和健康区域交织在一起,多次池化使得特征图像分辨率降低,直接32倍上采样会使得虫害边缘区域的识别效果不理想,而不同卷积层可以获得不同层次的特征,通过融合高层和低层特征能够有效提升识别精度。
针对林业虫害图像特点,为了能够获得更多的细节和纹理特征,得到较好的识别效果,本文采用跳跃结构,通过不同组合融合各层的特征可以形成5种全卷积网络,即FCN-32s、FCN-16s、FCN-8s、FCN-4s、FCN-2s。以FCN-16s为例,融合时需要保持特征图大小一致,首先将卷积层8输出的结果进行2倍上采样,和池化层4进行融合,经过2倍上采样以后,最终得到和原图尺寸大小相同的特征图,然后用softmax分类器,逐像素得到每个像素对应的类别。如图4所示为本文的5种全卷积神经网络结构图。
图4 全卷积神经网络跳跃结构示意图Fig.4 Schematic of jump structure of full convolutional network
试验在Ubuntu16.04系统下进行,硬件平台采用双路1080TiGPU加速,基于Tensorflow1.8框架,Python版本为3.6。
为了得到林业虫害图像较好识别效果的模型,进行了5种全卷积神经网络的虫害区域识别对比试验,测试的对象为20块采集样地虫害图像。该试验在相同数据集、相同参数下进行训练,仅改变模型结构,其中,学习率设置为0.000 1,损失函数为交叉熵损失函数,模型训练采用Adam优化器,5种模型各训练10 001次,批尺寸为2,每隔500次保存一次网络参数。在准备好数据集和确定好超参数以后,分别训练5种全卷积神经网络识别模型,每个模型选取验证集损失值最小的权重,作为该模型最终的网络参数,然后分别测试,得到5种模型的虫害区域识别结果。
如图5所示为虫害图像原图、人工标注图和K-means、脉冲耦合神经网络(Pulse coupled neural network, PCNN)、复合梯度分水岭算法(Composite gradient watershed algorithm,CGWA)、FCN-32s、FCN-16s、FCN-8s、FCN-4s、FCN-2s等8种方法的虫害图像分割结果图。图5a、5b、5c为不同虫害采集样地内的虫害分割结果。分割结果和人工标注越接近,说明虫害区域识别效果越好。
图5 虫害区域识别结果对比Fig.5 Comparison maps of identification result of pest area
4.1.1识别精度评价指标
为了合理评估虫害区域识别精度,本文采用像素准确率、类别平均准确率、平均交并比、频率加权平均交并比4个指标对模型性能进行评价,4个指标数值越大说明识别效果越好。像素准确率RPA(Pixel accuracy, PA)是最简单的评价指标,代表正确分类的像素数量占总像素的比例,假设有k+1个类别,具体公式为
(1)
式中pij——类别i的像素预测为类别j的数量
pii——预测正确像素数量
平均准确率RMPA(Mean pixel accuracy, MPA)对像素准确率做了简单提升,首先计算每个类内被正确预测的像素数比例,然后对所有类别取平均值,具体公式为
(2)
平均交并比RMIoU(Mean intersection over union,MIoU)能够反映虫害区域识别的准确性和完整性,是最常用的评价指标,其计算两个集合的交集和并集之比,并求所有类别平均值。平均交并比的公式为
(3)
式中pji——类别j的像素预测为类别i的数量
频率加权交并比RFWIoU(Frequency weighted intersection over union,FWIoU)根据每个类别出现的频率设置权值,其公式为
(4)
4.1.2识别精度比较
选取20个试验样地各5幅图像作为测试样本,试验结果取100幅图像测试结果的平均值。表1为各算法识别精度对比结果,从表中可以看出,FCN相比于复合梯度分水岭、脉冲耦合神经网络[22]和K-means算法,识别精度提升较大,其中FCN-2s的像素准确率达到97.86%,比CGWA、PCNN、K-means算法分别高出6.04、20.73、44.93个百分点,平均交并比达到79.49%,比CGWA、PCNN、K-means算法分别高出18.86、35.67、50.19个百分点。分析5种FCN 算法,可以看出融合的层数越多,得到的语义信息越丰富,识别结果的像素准确率越高。从平均交并比可以看出,FCN-2s的识别精度在5种全卷积神经网络中最好,这是由于林业图像边界复杂,虫害区域不规则,需要融合低级语义特征提升识别精度。
表1 各算法识别精度比较Tab.1 Comparison of recognition accuracy of each algorithm %
算法的运行速度也是算法的重要性能,本文测试了20幅图像,所有图像的平均运行时间如表2所示。
表2 各算法单幅图像运行时间Tab.2 Single image running time of each algorithm s
由表2可以看出,本文算法的运行速度明显快于另外3种算法,本文5种算法中FCN-32s的识别速度最快,随着融合的层数增多,计算量增大,计算速度逐渐降低,考虑本地端虫害区域识别对算法实时性没有很高要求,FCN-2s识别速度已经能够满足需求,其运行时间为4.31 s, 比CGWA、PCNN、K-means算法分别降低11.39、19.70、47.54 s。
针对无人机航拍采集的林区虫害图像存在的问题,提出了一种基于全卷积神经网络的虫害区域识别方法,并考虑虫害图像数据集特点,引入迁移学习、跳跃结构等方法,提升了全卷积神经网络的识别精度。本文算法的识别精度比复合梯度分水岭算法、脉冲耦合神经网络、K-means都有大幅提升,其中FCN-2s识别精度最高,其像素准确率达到97.86%,比复合梯度分水岭算法、脉冲耦合神经网络、K-means分别高出6.04、20.73、44.93个百分点, FCN-2s的单幅图像分割运行时间为4.31 s,分别降低11.39、19.70、47.54 s。