闫靖昆,黄毓贤,秦伟森,高 攀
(石河子大学信息科学与技术学院,新疆 石河子 832003)
棉花是我国重要的战略物资,全国有多个省、市、自治区生产棉花,涉棉农民达1亿多人,棉花产业在国民经济中占有重要地位. 棉花黄萎病是危害我国棉花生产最为严重的病害之一,棉花一旦感染,将减产甚至绝收[1].
从图像中分割病害作物和提取病斑是病害检测和病害识别过程中的重要步骤,传统检测方法常采用阈值分割法对简单背景下的病害叶部图像进行分割,取得了较好的分割效果[2]. 但是大田环境下图像中作物背景复杂,颜色成分丰富,包含较多噪声和不确定像素,对作物病斑的提取造成严重的干扰,采用单一阈值分割,很难取得较好效果.
基于传统机器学习方法,袁媛等[3]针对复杂背景下的病害图像,有机结合OTSU方法和超G方法以消除大田图像中的无用背景,而后根据预处理后图像的红色分量(R)自动建立数据项,将相邻像素间红色分量的差值作为平滑项,构建了基于阈值预处理的图分割算法. 虽然转换颜色模型和使用OTSU方法有效降低了计算量,并消除了图像受亮度和对比度的影响,但是OTSU方法分割目标单一,当目标和背景面积比例相差悬殊时,类间方差函数呈现出的双峰或者多峰导致了较差的分割效果.
大田环境下采集的棉花病叶图像存在光照不均匀和背景复杂等问题,同时棉花叶片的病变往往是不规则的、复杂的和随时间变化的,基于人工设计的阈值求解和特征提取的分割方法的分割精度和泛化能力无法满足大田作物病害检测和识别的需要.
目前,卷积神经网络(convolutional neural networks,CNNs)已成功应用在作物病害图像识别、检测和分割中,取得了显著效果[4]. 任守纲等[5]构建了一种基于反卷积引导的VGG网络模型,首先采用反向全连接层将分类结果恢复为特征图,然后通过上采样技术和卷积操作进行反卷积,使用残差块融合多层特征恢复图像细节,最后每个像素点基于二分类交叉熵函数进行训练,使得编码器关注实际的病斑部位. Ronneberger 等[6]针对小数据集提出了改进的U-Net网络模型,使用全卷积层代替全连接层,实现了端到端的网络结构. R-CNN体系直接应用于叶片病斑检测时,病害区域不能得到充足的分割. Ozguven等[7]根据图像和要检测的区域调整参数,令R-CNN体系取得了成功.
综上,虽然基于卷积神经网络的分割算法可有效避免传统分割技术繁琐的特征选择过程,并实现比传统算法更高的识别精度,但本文针对的棉花黄萎病病斑形状复杂、分布无序,在使用深度学习方法处理时,训练标注过程繁琐复杂,模型分割时间冗长,无法达到田间实时要求.
本文针对大田背景下棉花病叶内病斑分割问题,结合深度学习和传统无监督学习优点,提出先使用基于数据迁移的语义分割模型在复杂背景中分割出病叶,再由选择初始质心的K均值聚类得到病斑. 通过大量图像试验,经人工分割结果验证,本文提出的病斑分割算法能够有效分割复杂背景中出现的棉花病叶、病斑,为进一步检测识别棉花黄萎病病害提供了依据.
本文棉花叶部病害图像数据采集于石河子大学农学院试验站(85°9′51.231 00″E,44°35′47.720 00″N),采集时间段为2020年7月,在自然光下(时间段为9:00—12:00)对田间棉花叶片进行多个方位拍摄. 在自然光下更有利于拍摄作物病害的主要特征,如病害的纹理、颜色、形状等,也更能贴切实际. 图像采集设备为微型单镜头数码相机,型号为SONYDSC-HX400,图像分辨率为 3 456×4 608像素.
训练深度学习模型时,训练数据越多、越全面,其识别能力越强,因此本文采用多种方法实现语义分割图像数据集的数据增强. 对田间采集的1 800张棉花叶部图像,选取400张图像进行颜色直方图均衡化和镜像翻转处理[8-9],最后得到1 200张扩展图像数据集. 数据集示例如图1所示.
图1 扩展数据集示例Fig.1 Samples of extended dataset
本文所用数据还包括Kaggle提供的公开数据集NPDD(new plant diseases dataset),选择NPDD中形状、纹理、特征类似于棉花叶片的图像作为扩展数据集,包含1 000张256×256像素的苹果、柑橘、马铃薯、番茄叶片图像. 图像示例如图2所示.
图2 公开数据集示例Fig.2 Samples of open source dataset
图像通过全卷积神经网络进行学习后能够清楚地被归纳出具有相同语义含义的像素点. 不同植株的叶片具有颜色、纹理、形状等部分相同的特征,故数据迁移技术可以在语义分割模型中使用.
本文将采集的棉花叶部病害图像数据集和从公开数据集NPDD获得的图像集按8∶2的比例划分为训练数据集与测试数据集.
本文采用Labelme-3.3.6的Polygons对叶部图像进行标注,Labelme软件是美国麻省理工学院计算机与人工智能实验室开发的一款用于深度学习的图像标注工具. 图像在采集时会受到外界一些因素的干扰,导致图像存在一定的噪音,对叶片的特征提取产生不利的影响,因此采用中值滤波算法对图像进行预处理[10-11]. 为节约计算资源和标注时间,在进行标注前,利用OPENCV将2个数据集中的图像大小统一调整为301×301像素. 在采集棉花叶部图像时,病叶通常位于图像中间部位且面积占比较大,相对较小的叶片不是分割的目标,标注效果如图3所示.
图3 标注效果Fig.3 Annotation effect
Chen等[12]提出的DeepLabv3+模型的整体架构如图4所示,DeepLabv3+模型为编码器-解码器结构(encoder-decoder structure),编码器(encoder)模块的深度卷积神经网络(DCNN)是带有空洞卷积(atrous convolotion)的Xception主干网络,同时带有空洞卷积的空间金字塔池化模块(atrous spatial pyramid pooling,ASPP)引入多尺度信息,将底层特征与高层特征进一步融合,提升分割边界准确度.
图4 DeepLabv3+模型Fig.4 Model of DeepLabv3+
DeepLabv3+模型采用空洞卷积的方法进行特征提取,在不损失信息的情况下,可以获得更大的感受野,使得每一个卷积输出都包含大范围的信息. 绝大多数的植物叶片拍摄都是基于近距离拍摄的场景,叶片图像占比较大. 通过空洞卷积的方法进行特征提取,可以获得更多的局部特征,从而能够在近距离拍摄环境下更好地检测和分割叶片目标. 正常卷积与空洞卷积对比如图5所示.
图5 正常卷积与空洞卷积对比图Fig.5 Comparison of normal convolution and dilated convolution
ASPP模块主要包括了1个1×1卷积层、3个不同空间跨度的3×3空洞卷积层和1个平均池化层. 本实验中,DeepLabv3+模型通过ASPP模块从5个尺度提取叶片的特征,能够在不改变图像分辨率的前提下多尺度以更大的感受野捕捉到叶片的特征信息.
为防止编码器得到的高级特征被弱化,解码器(decoder)模块首先采用1×1卷积对低级特征进行降维,然后将编码器得到的多尺度融合特征双线性插值上采样,通过特征连接(concatenate)把编码器中提取的高级特征和1×1卷积降维后的低级特征进行特征融合,最后,对融合后的特征进行3×3卷积,用双线性插值上采样得到与原始图像相同大小的掩码图像.
在微型计算机系统上安装Ubuntu16.0系统、Python3.6编译环境、CUDA架构、cuDNN开发库,使用深度学习框架Tensorflow,在该深度学习环境下进行模型构建、训练和预测,通过交互选择分割效果最好的模型. 设置初始学习率为0.000 1,迭代次数为500,train_batch_size为1,atrous_rates为6、12、18,output_stride为16,decoder_output_stride为4,labels为2(背景+叶部). 模型训练耗时36.2 h. 在训练集上的准确度为0.989,最终损失值为 0.167;在验证集上的准确度为0.983. 训练集的训练损失、准确度和模型迭代次数关系如图6所示.
图6 训练损失和准确度曲线图Fig.6 The graph of training losses and accuracy
调用训练好的模型对大田背景下棉花叶片图像进行处理,可基本上将复杂背景中的棉花叶片完整提取,得到前景图像,如图7所示.
图7 复杂背景去除效果Fig.7 Complex background removal effect
自然环境下获取的RGB图像的3个分量都与亮度密切相关,亮度改变,3个分量都会随之相应地改变,均匀性较差,对于某一种颜色,很难给出较为精确的3个分量数值表示. HSV颜色空间可以非常直观地表达颜色的色调、鲜艳程度和明暗程度,方便进行颜色的对比和对亮度的控制比较. HSV颜色空间已被许多研究人员用于彩色图像分割,本文将1.4节得到的前景叶片图像从RGB颜色空间转换到HSV颜色空间,以便进行下一步分割处理[13-14].
HSV颜色空间包含色相、饱和度和明度分量. 本文将K均值聚类算法应用到HSV颜色空间中的色相成分H上.K均值聚类算法具有聚类的随机性问题,每次运行算法,簇群中心得到改变,以前包含叶部病斑部分的簇群在下一次运行中可能不再包含. 为了克服聚类随机性的问题,本文提供每个聚类的初始质心值.
在HSV颜色空间中创建色相分量的颜色直方图. 图8为一个棉花叶片图像的色相分量颜色直方图. 图9和图10为叶片图像病斑部分和正常部分的色相分量直方图. 对病斑部分和正常部分的颜色直方图进行观察,发现了可以区分病斑和正常部分的波谷区域,但在波谷区域存在少量像素点,可能导致病斑簇中存在部分绿色. 选择特定阈值在直方图中以分隔病斑部分和正常部分,从直方图中提取每个bin的像素数和色相分量值,将图像的病斑部分和正常部分的bin分别存储在2个单独的队列中. 从队列中选择像素数为最大值的色相值作为病斑簇和正常部分的初始质心值,以用于K均值聚类.在K均值聚类中,病斑部分、正常部分及黑色背景的初始中心得以确定.
图8 叶片图像色相分量直方图Fig.8 Hue component histogram of leaf image
图9 叶片图像病斑部分色相分量直方图Fig.9 Hue component histogram of diseased spot in leaf image
图10 叶片图像正常部分色相分量直方图Fig.10 Hue component histogram of normal part in leaf image
K均值聚类作为一种典型的无监督聚类算法,主要用于将相似的样本自动归到一个类别中[15]. 在本文中,设置K为3,使用2.2节中的初始质心值作为3个簇的初始中心,然后计算叶片图像中剩余像素点到3个初始中心的距离,将每个像素点分配到离它最近的中心点,但形成的新簇并不一定是最好的划分,因此在生成的新簇中重新计算每个簇的中心点,然后再重新进行划分,直到每次划分的结果保持不变.
提供初始质心的K均值聚类算法计算后返回每个像素的聚类标签. 创建2个相同尺寸、像素值都为0的空白图像存储聚簇结果. 使用聚类标签,将前景图像的每个像素复制到对应的空白图像,在步骤的最后得到了2个聚簇图像(病斑部分图像和正常部分图像). 病斑簇中不必要的绿色部分会直接影响分类的准确性. 在色相分量中,绿色部分介于17.2°~45°之间. 为了去除病斑簇中不必要的绿色像素,以绿色色相的最小值和最大值创建一个Mask进行阈值分割. 大田背景下病叶中的病斑分割结果如图11所示.
图11 病斑分割结果Fig.11 The result of diseased spot segmentation
本文使用准确率Rprecision和召回率Rrecall作为分割结果的评价指标,如式(1)、(2)所示. 以综合评价指标F1作为准确率和召回率的评估值,如式(3)所示.
(1)
(2)
(3)
式中,TP为正确分割的像素数,FP为误分割的像素数,FN为漏分割的像素数.
从采集到的棉花叶部病害图像中选取200张,用本文模型和人工分割分别进行处理,统计分割结果中病叶、病斑的正确分割、误分割、漏分割的像素数,计算出准确率和召回率,最后统计得到F1值,如表1所示.用本文方法处理的病叶分割F1值为98.87%,基本可以得到完整分割,被误分割为背景的情况较少,且边界能较好地保留;病斑分割F1值为87.29%,大部分病斑得到有效提取,能够将细小的病斑点分割出来.本文方法与人工分割相比,病叶分割F1值仅相差0.33%,病斑分割F1值仅相差1.28%.棉花叶片上病斑分布无序、形状复杂,对其进行语义标注是一项十分艰难的工作,在没有数据增强的条件下,最终能否达到理想结果尚未可知,而且处理时间会大大延长,无法满足田间作业实时处理的要求.本文所提算法利用数据迁移的方法,学习叶片共有的语义信息以实现病叶分割,降低人为设置参数造成的分割误差,减少K均值聚类算法误分割、过分割情况,分割准确度整体优于已有算法.
表1 分割结果评价指标对比Table 1 Comparison of evaluation indexes of segmentation results
本文提出了基于数据迁移的DeepLabv3+模型与初始质心选择K均值聚类机制相结合的复杂大田背景下棉花黄萎病病斑分割算法,通过试验得到如下结论:
(1)语义分割能够归纳出具有相同语义含义的图像像素点,在训练DeepLabv3+神经网络时具有相同表型特征的不同植株叶片可以达到数据增强的效果. 在NPDD公开数据集中部分叶片图像与棉花病叶图像具有相似特征,所以本文将NPDD数据集中部分图像数据作为训练DeepLabv3+模型的增强数据,有效提高了复杂背景下分割叶片像素点的准确率和召回率.
(2)K均值聚类算法具有聚类的随机性问题,每次运行算法,簇群中心得到改变.通过多次试验和观察,在不受光照影响的色相分量上选定正常叶部和病斑的初始质心,有效减缓了K均值聚类的随机性问题.