APP下载

基于图像处理和深度迁移学习的芒果果实病状识别

2021-07-24张德军周学成杨旭东

华南农业大学学报 2021年4期
关键词:灰度图像处理滤波

张德军,周学成,2,杨旭东

(1 华南农业大学 工程学院,广东 广州 510642; 2 华南农业大学 南方农业机械与装备关键技术教育部重点实验室,广东 广州 510642)

芒果Mangifera indica作为著名的热带亚热带水果,以其色香味俱佳而享有“热带果王”的美誉,具有极高的营养价值和经济价值,在热带及南亚热带地区有广泛栽培[1]。我国是芒果原生产地之一,种植历史悠久,在海南、广东、广西、福建、云南、四川等省份建立的规模化种植的芒果园,成为重要的地区特色农业经济产业。

由于长期施用过量的化学肥料和农药,土壤环境不断地发生恶化,果类病毒产生新的抗药性,芒果出现新的感染状况并产生诸多病症,如海绵组织病、心腐病、软鼻子病、空心病等生理性病害,对芒果的品质产生了严重的影响。在部分芒果产区,由此类病害造成的芒果损失率甚至达到了30%以上。患有此类病害的芒果,表面与没有患病的芒果相比并无差异,凭肉眼无法观测出来,经验丰富的果农也无法准确对此类芒果做到挑拣和分类,这也就对芒果果实的品质检测和分级技术提出了新的应用方向与挑战[2-5]。

现代农业无损检测技术正朝着智能化方向发展,结合计算机图形图像分析与深度学习的技术正成为水果品质检测的新方向和研究热点[5-7]。研究采用可见/近红外光谱、核磁共振和X射线等检测技术,无损地获得果类果实的内部组织特征图像,然后结合图像处理和模式识别等相关技术,进行组织提取和病状类型分析识别,从而实现果实品质检测和分级[8-9]。

国内外众多学者在农产品果类检测方向开展了大量的研究。2018年余心杰[10]基于可见光和近红外光 (Visible-near infrared, VIS-NIR)高光谱反射成像技术,研究开发了一种由堆栈自编码器(Stacked auto-encoder,SAE)和全连接神经网络组成的深度学习方法,用于预测收获的库尔勒香梨的硬度和可溶性固形物含量(Soluble solids content,SSC),证明了深度学习方法与高光谱成像技术相结合,可用于库尔勒香梨的快速无损检测硬度和SSC。2019年Nasiri等[11]采用深卷积神经网络模型 (Convolutional neural network, CNN)VGG-16 在枣果图像数据集上进行训练和测试,来鉴别健康枣果和缺陷枣果并用来预测健康枣的成熟期,VGG-16模型的分类准确率达到了96.98%,证明了深卷积神经网络模型优于传统的基于图像特征的枣果图像分类方法。2019年Wan等[12]提出了一种改进的快速R-CNN深度学习网络模型,用于机器人视觉系统,实现了苹果、芒果和桔子等多类水果检测,达到了91%以上的检测正确率,该深度学习模型提高了图像处理速度,也更适合于实际场景。2020年Osako等[13]通过对预训练的VGG16网络进行微调,构建了荔枝品种识别模型,该模型对荔枝水果图像进行品种识别,实现了98.33%的准确性,研究表明深度学习可用于区分荔枝品种。

迁移学习是一种机器学习的方法[14-17],是解决训练数据不足这一基本问题而发展起来的重要方法,其基本原理是通过已学习的相关任务中知识转移来改进新任务的学习[17-20]。近年来深度学习技术在图像识别分析领域取得了长足的进步,但是必须要有海量的训练数据作为支撑,来理解数据的潜在模式,才能够实现网络模型的训练[20-22]。深度迁移学习将在原域中预先训练好的深度学习网络结构重新利用,将其用于目标领域的深度神经网络的一部分,因为原网络已经学习了图像丰富特征,有很好的泛化性,通过网络微调可以实现相应的目标领域学习,大大加快了学习速度[23-25]。

本文基于芒果果实计算机层析成像(Computed tomography,CT)设备所得的芒果CT序列图像,提出了传统图像处理技术和深度迁移技术相结合的芒果病状识别判断方法。工作内容包括:1)芒果果实CT序列图像内部坏损区域的提取方法研究;2)利用AlexNet和GoogLeNet[26-28]预训练网络开展芒果病状的识别研究。

1 研究方法

1.1 芒果CT序列图像的获取

基于平板探测器的计算机层析成像系统(图1)采集芒果CT序列图像。该系统主要由X射线源分系统、平板探测器分系统、机械扫描分系统、图像处理分系统以及安全及辅助分系统组成[29]。该系统采用的平板探测器为VARIAN PaxScan2520V,其像元尺寸为0.127 mm,A/D转换器位数为14位。

图 1 基于平板探测器的计算机层析成像(CT)系统Fig. 1 Computer tomography (CT) system based on flat panel detector

选择外表无破损、内部组织坏损的芒果类型。实验室环境要求常温,湿度小于82%,磁场干扰较小,所有芒果样品图像采集的过程中实验室条件、采集方法和参数设置必须一致,这样才能减少误差。设备参数:平板探测器的积分时间为200 ms,X光机的电压为 45~50 kV,电流为 1 mA,CT 检测时根据检测对象大小设置热区参数,扫描方式为标准连续扫描。

1.2 芒果CT序列图像预处理

本文采集海绵组织病和空心病芒果16位DICOM格式CT序列图像(512×512),海绵组织病序列图像650张,空心病序列图像379张,有效图像分别为624张和365张。海绵组织病和空心病芒果CT序列图像如图2所示。

芒果CT图像的像素点的灰度值集中分布在0~35以内,芒果外区域集中在0~10。图3中的a和b分别是对海绵组织病芒果和空心病的CT序列图像作灰度值统计,验证了芒果有效像素值分布在灰度值较低范围,截取256灰度级的原始图像灰度。

图 2 海绵组织病芒果和空心病芒果Fig. 2 Mango with spongy tissue disease and mango with hollow disease

图 3 海绵组织病芒果和空心病芒果CT图像灰度值分布Fig. 3 Gray value distribution in CT images of mango with spongy tissue disease and mango with hollow disease

灰度变换是实现图像对比度增强的重要手段,最终的目的是为了增强图像清晰度,让图像细节更加突出。在样本的处理中发现未坏损区域的灰度值接近于恒定在14~35,根据灰度的分布特点,结合实际的图像效果,本文采用了分段函数法来实现图像对比度增强。

分段函数法又称为分段变换,为了突出感兴趣的目标或灰度区间,抑制不感兴趣的目标或灰度区间,常采用分段线性变换法。芒果图像未坏损区域的灰度值接近于恒定在14~35,采用分段函数将未坏损区域的灰度值拉伸变大,坏损区域的灰度值保持不变,公式如下:

采用分段函数的效果,如图4和图5所示。

图 4 海绵组织病芒果图像采用分段函数法变换Fig. 4 Piecewise function to transform image of mango with spongy tissue disease

图 5 空心病芒果图像采用分段函数法变换Fig. 5 Piecewise function to transform image of mango with hollow disease

1.3 图像降噪

芒果CT序列图像在获取的过程中,因为受到温湿度、磁场干扰、信号传输过程中的损耗、振动噪声等试验条件的限制,降低了图像的质量,造成最终的成像效果失真,这样必然影响后续的图像分析与研究,采用图像滤波处理的方法来进行降噪处理。根据获取的芒果CT序列图像的成像特点,研究采用空间域滤波处理的方式。空间域滤波包括线性滤波和非线性滤波。最终采用了中值滤波和双边滤波相结合的方法,对图像实现降噪处理。中值滤波有去除脉冲噪声和椒盐噪声,保留图像的边缘细节的作用。其算法原理是基于滤波器所在图像区域中像素灰度值的排序,由排序结果决定的值R代替中心像素的值,公式如下:

双边滤波是高斯滤波的改进,高斯滤波中只有关于空间距离的权重,而双边滤波在此基础上添加了关于灰度距离的权重,可以消除图像噪声,实现图像平滑,同时保留边缘信息。实现方法:1个与空间距离相关的高斯函数与1个灰度距离相关的高斯函数相乘,得到最终的卷积模板,双边滤波需要每个中心点邻域的灰度信息来确定其系数,计算量增长速度为核大小的平方。空间距离指的是当前点与中心点的欧式距离。空间域高斯函数其数学形式为:

将得到的权重与邻域像素灰度值相乘并叠加,然后再除以权重和,最终获得该像素点的灰度值:

由于X射线在穿透物体时,光子会发生散射、折射和衍射等现象,在芒果CT图像区域会形成大量的椒盐噪声(如图6所示)。要求去除椒盐噪声,尽量保留坏损区域的边缘信息和实现图像平滑,确定先双边滤波,再进行中值滤波的滤波处理方案。选定中值滤波窗口尺寸为4×4,双边滤波参数:滤波半径=5,全局方差=8,局部方差=0.2,达到了较好的图像处理效果。

图 6 芒果CT图像椒盐噪声分布Fig. 6 Distribution of salt and pepper noise in mango CT image

从整体和细节放大角度进行了对比分析,以海绵组织病芒果的第300层CT序列图像为例,进行了滤波效果展示。通过图7、图8分析,中值滤波结合双边滤波的图像滤波处理方案是可行的,能够去除椒盐噪声,实现图像平滑,坏损区域边缘信息得到了保留。文中采用的均值滤波器和高斯滤波器模板如图9所示。

图 7 芒果CT图像多方案滤波效果对比Fig. 7 Effect comparison of several filtering schemes in mango CT images

图 8 芒果CT图像多方案滤波效果细节放大对比Fig. 8 Effect comparison of several filtering schemes with detail amplification in mango CT images

图 9 均值滤波器和高斯滤波器模板Fig. 9 Mean filter and Gaussian filter templates

1.4 图像分割

图像分割是为了提取芒果CT图像内部组织坏损区域,对芒果果实内部的各种病害进行特征分析。不同病状芒果以及同一芒果不同层级序列图像呈现出不同的差异特点,使用图像二值化、形态学填充和差影法相结合的图像分割算法。

因为芒果CT序列图像上的不同部分具有不同亮度,局部自适应阈值法可以在同一幅图像上的不同区域采用的是不同的阈值,亮度较高的图像区域的二值化阈值通常会较高,而亮度较低的图像区域的二值化阈值则会相应地变小,从而在亮度不同的情况下得到更好的结果。本文选择了局部自适应阈值法,进行图像的二值化处理。局部自适应阈值法步骤:

1)均值平滑图像(本文采用4×4模板)。

2)求平滑图像梯度图:

3)平滑图像作Laplacian运算:

4)新建与原图像同样大小的零矩阵图像,用原始图像候选点中的灰度值代替零矩阵图像中对应像素的灰度值。

5)多次迭代求阈值面:

6)根据阈值面作二值分割:

本文对海绵组织病和空心病芒果所有有效层CT图像做了二值化处理。以图10中海绵组织病芒果二值化图像为例,局部自适应阈值法可以准确地将坏损区域和正常果肉区域分开,各相近层提取的坏损区域之间表现出明显的连续性。

图 10 海绵组织病芒果二值化序列图像Fig. 10 Binary sequence images of mangoes with spongy tissue disease

研究的病状芒果果实样品都是外部完好、内部出现坏损的类型,果实的边缘部分都是封闭的,所以本文中采用了基于边界封闭的种子填充形态学方法进行芒果果实图像内部区域填充[30]。种子填充算法定义:

点X0像素灰度值为1,B表示结构元,⊕表示形态学膨胀运算,如果Xk=Xk−1,则算法在迭代的第k步结束,用1填完所有孔洞。Xk和A的并集包含被填充的集合和它的边界。利用Ac的交集将结果限制在感兴趣区域内,实现条件膨胀。本文选择种子填充算法,孔洞填充后效果如图11b、图12b所示。差影法多应用于同一背景的图片中搜索差异。图像f1被填充,其背景、位置在填充过程中没有发生改变,整个区域的值都为255,得到填充图像f2;未填充的图像f1保留着内部坏损信息(坏损区域值为0),与f2做差影,得到图像f3。差影法公式:

空心病芒果序列图像的第300层和海绵组织病芒果序列图像的第300层的图像分割效果,如图11、图12所示。

图 11 空心病芒果图像差影法分割效果(第300层)Fig. 11 Image segmentation effect of mango with hollow disease using background subtraction (The 300th layer)

图 12 海绵组织病芒果图像差影法分割效果(第300层)Fig. 12 Image segmentation effect of mango with spongy tissue disease using background subtraction (The 300th layer)

2 分类算法

2.1 分类模型

深度迁移学习模型,针对未做图像处理和已做图像处理的芒果图像数据开展训练和测试,分析分类识别效果。基于AlexNet和GoogLeNet深度学习网络模型,芒果序列图像数据集作为训练数据开展迁移学习,调整超参数,完成训练过程的网络微调,实现分类任务。在不同模型下,对比了未做图像处理和做了图像处理的芒果图像测试集在模型的分类结果。

AlexNet和GoogLeNet已基于超过一百万个图像进行训练,将图像分为1 000个对象类别,学习了丰富的特征表示。AlexNet是在LeNet的基础上加深了网络的结构,学习更丰富更高维的图像特征,其特点包括:更深的网络结构;使用层叠的卷积层和池化层来提取图像的特征;使用Dropout抑制过拟合;使用数据增强抑制过拟合;使用Relu替换之前的Sigmoid的作为激活函数。GoogLeNet相比与AlexNet网络,增加了网络层数和Inception模块增强卷积模块功能,在增加网络深度和宽度的同时减少了参数,其参数数量约为AlexNet的1/12,提升了计算性能。

2.2 模型算法流程

修改预先训练好的网络并使用迁移学习进行训练以执行新识别任务,微调预先训练好的网络比构造和训练新网络更快、更容易,使用更少数量的训练图像迅速迁移学习到新任务。迁移学习的算法流程,如图13所示。

图 13 深度迁移学习算法流程图Fig. 13 Flow chart of deep transfer learning algorithm

最后3层替换为全连接层、softmax层和分类输出层,将层迁移到新分类任务。根据芒果数据指定新的全连接层的选项,将全连接层分类值设置为分类数目。对于迁移学习,要保留预训练网络的较浅层中的特征(迁移层权重),通过增大全连接层的学习率因子,加快新的最终层中的学习速度,这种学习率设置组会加快新层中的学习速度;执行迁移学习时,所需的训练轮数相对较少,一轮训练是对整个训练数据集的一个完整训练周期。

网络评估的目的是为了提高模型在应用过程的准确率,可以继续迭代,重新研究训练方案、检查数据以及重新配置模型参数。评估分类模型指标有精准率(Precision)、召回率(Recall)、F1分值(F1-score)、准确率(Accuracy)和宏平均(Macroaverage)。

式中,TP表示样本属于正类,且被正确地归为正类;FP表示样本不属于正类,但被错误地归为正类;FN表示样本属于正类,但被错误地归为其他类;TN表示样本属于其他类,且被正确地归为其他类,n表示类的个数。Precision衡量正样本的分类准确率,Recall表示分类正确的正样本占总的正样本的比例,F1-score是Precision和Recall的调和平均,Accuracy衡量所有样本被分类准确的比例。Macroaverage则是综合了性能指标的Precision、Recall和F1-score的信息,常和Accuracy一起用来评价模型整体的分类性能。

3 结果与分析

3.1 芒果图像数据集

芒果数据集分为训练集、验证集和测试集,打上标签。芒果图像数据集分为两大类,即未经图像处理数据集和经图像处理后的数据集。其中未经图像处理数据集包括3类:无病症芒果CT图片(2 168 张),海绵组织病芒果 CT 图片 (1 924 张),空心病芒果CT图像(864张)。经图像处理后的数据集包括5类:无病症芒果图片(2 168张)、海绵组织病芒果图片(1 924张)、空心病芒果图片(864张)、海绵组织病坏损区域图片(1 920张)、空心病坏损区域图片(864张)。通过水平翻转、垂直翻转、顺时针旋转90°得到了更多的图像数据,图14和图15分别展示了未经图像处理数据集和经图像处理后的数据集其变换后的形式。

图 14 未处理芒果图像Fig. 14 Unprocessed mango image

图 15 处理后的图像Fig. 15 Mango image after image processing

3.2 加载未经图像处理数据集

未经图像处理数据集分为训练集、验证集和测试集,随机取各类图片数目的60%作为训练集,20%作为验证集,20%作为测试集。训练集是作为模型拟合的数据样本,验证集用于调整模型的超参数和对分类模型的能力进行初步评估,测试集是用于评估分类模型的泛化能力。

深度迁移学习模型训练阶段监视模型的训练准确率、训练损失、验证准确率和验证损失,在训练过程中,通过调整超参数来优化分类模型,调整的超参数:迭代轮数 (Epoch)、最小批 (Mini batch)和学习速率(Learning rate)。迭代1轮是指训练算法完全通过整个训练集,训练迭代轮数越多,网络训练时间越长,准确率会随着每次迭代而提高。最小批是指在CPU上处理的训练数据集的子集,最小批越大,训练速度越快。学习速率是控制训练精度的主要参数,学习速率越低,训练结果准确率越高,但网络训练时间会更长。基于未处理的芒果图像数据集进行训练时,迭代轮数设为3,最小批值设置为64,不断调整学习速率来优化分类模型。基于AlexNet和GoogLeNet网络通过设置学习率不同值,开展训练,现分别取值为 0.000 8、0.000 5 和0.000 2,进行分类模型性能的评估。表1中展示了各个模型针对未处理芒果图像的分类性能参数。所有模型的迭代次数均为138。

表 1 深度迁移学习模型性能参数(未处理图像)Table 1 Performance parameters of deep transfer learning model (Unprocessed image)

文中加载未经图像处理数据集,通过训练深度迁移学习模型,构建了多种分类算法模型。AlexNet模型在学习率 0.000 8、0.000 5 和 0.000 2下,Accuracy分别为84.88%、90.22%和94.15%,Macro-average分别为83.18%、88.47%和92.93%。GoogLeNet模型在学习率 0.000 8、0.000 5 和 0.000 2下,Accuracy分别为90.73%、95.36%和98.79%,Macro-average分别为89.14%、94.38%和98.41%。当学习率为0.000 5和0.000 2,深度迁移学习模型分类效果较优;学习率值变小,深度迁移学习模型的分类性能有较大提升;在同一学习率下,GoogLeNet网络的分类效果明显优于AlexNet网络。

3.3 加载图像处理数据集

与未处理图像的分类比例相同,随机取各类图片数目的60%作为训练集,20%作为验证集,20%作为测试集。图像处理数据集与未经处理数据集相比,增加了海绵组织病坏损区域图片和空心病坏损区域图片,为保证对比效果,其他各类图片数量保持不变。对处理的数据集进行模型训练时,将迭代轮数值固定为3,将最小批值设置为64,不断调整学习速率值来优化分类模型。基于AlexNet和GoogLeNet网络训练模型的学习率分别取值为0.000 8、0.000 5 和 0.000 2,进行性能的评估。表 2中展示了各个模型针对未处理芒果图像的分类性能参数。所有的模型的迭代次数均为216。

表 2 深度迁移学习模型性能参数(处理图像)Table 2 Deep transfer learning model performance parameters (Processed image)

3.4 模型分类结果分析

加载图像处理数据集,训练深度迁移学习模型。深度迁移学习模型在图像处理数据集下的分类模型分类指标较未处理的数据集下有较大的提升。

AlexNet模型在学习率 0.0008、0.0005 和 0.0002下,Accuracy分别为95.39%、97.40%和100%,Macro-average分别为94.95%、96.93%和100%。GoogLeNet模型在学习率 0.0008、0.0005 和 0.0002下,Accuracy分别为98.05%、100%和100%,Macro-average分别为97.70%、100%和100%。基于同一数据集并且超参数一致时,GoogLeNet网络的分类效果明显优于AlexNet网络。GoogLeNet网络的训练时间较长。在学习率为0.000 5和0.000 2时,基于图像处理数据集得到的GoogLeNet分类模型,达到了100%的分类精度。相较于芒果图像识别算法的计数识别准确率82.3%[24],基于改进Faster R-CNN的芒果识别平均识别精度均值为88.94%[28],有极大提升。

综合考虑模型的性能参数和训练时间,选用基于GoogLeNet网络深度迁移学习模型在学习率为0.0002、迭代轮数为3、最小批值为64时,开展训练,将所得模型作为最终的分类模型。

4 结论

1)针对芒果CT序列图像坏损区域获取的问题,本文采用分段函数法、中值滤波结合双边滤波的图像处理方案实现图像增强,通过局部阈值自适应法开展图像二值化处理,然后通过形态学种子填充法进行填充,最后利用差影法提取了芒果内部组织的坏损区域,能够准确地分割出坏损区域,分割效果较好。

2)本文训练AlexNet和GoogLeNet分类模型,通过比较Accuracy和Macro-average分类性能参数,GoogLeNet网络对芒果图像分类识别的效果最优。当学习速率为0.0002,基于未处理数据集和处理过的数据集进行分类,GoogLeNet网络分类模型性能极佳,可以作为本文芒果数据的分类模型。深度迁移学习模型在水果图像分类领域大有可为。

3)本文分割提取后的芒果坏损区域图像,特征明显,易于区分,在类型识别过程中可达到极高准确度,体现了结合图像处理技术开展深度学习分类识别,具有较高的实际意义。

4)算法的局限性。文中的芒果数据并不能代表所有的海绵组织病和空心病芒果的坏损情况,主要是由于芒果有自己的生长周期,并且坏损情况受到温湿度、土壤水平和种植手段等多方面的影响,在未来的研究中,可以通过增加数据量来探究某类型病状芒果内部坏损的演变过程。

猜你喜欢

灰度图像处理滤波
航空滤光片阵列多光谱图像条带灰度调整算法
基于HP滤波与ARIMA-GARCH模型的柱塞泵泄漏量预测
采用改进导重法的拓扑结构灰度单元过滤技术
构建《Photoshop图像处理》课程思政实践教学路径的探索
人工智能辅助冠状动脉CTA图像处理和诊断的研究进展
基于图像处理与卷积神经网络的零件识别
天津港智慧工作平台灰度发布系统和流程设计
Arduino小车巡线程序的灰度阈值优化方案
提高VRay渲染器渲染品质和速度的图像处理应用技巧分析
一种考虑GPS信号中断的导航滤波算法