基于三维重建的多角度葡萄叶病害识别方法研究
2022-09-27方逵李成何潇陈益能
方逵, 李成, 何潇, 陈益能
(湖南农业大学信息与智能科学技术学院,长沙 410128)
葡萄是我国的重要经济作物之一,在我国大面积种植。然而葡萄在生长过程中容易受到病虫害的影响,导致葡萄的品质和产量大幅降低,造成重大经济损失[1]。传统的葡萄病害识别通过肉眼观察葡萄叶片的外表特征,识别和诊断过程具有主观性,不仅费时、费力,而且效率低下[2-3]。
近年来,随着计算机图像处理技术和农业信息化技术的发展,基于机器学习和深度学习的图像识别算法广泛应用于病害识别领域。机器学习算法主要通过分割图像提取病害区域的颜色[4]、纹理[5]、光谱[6]、轮廓[7]等特征信息,输入到支持向量机(support vector machine, SVM)、K 邻近(K-nearest neighbor,KNN)、随机森林(random forest,RF)等分类器中训练并构建出病害识别模型。然而这些方法需要繁琐的图像预处理和特征提取,往往会因为分类特征的选择而导致训练模型的鲁棒性与识别效果不佳[8]。相比而言,卷积神经网络(convolutional neural networks, CNN)可以自动学习和提取图像的特征,减少人为主观经验对模型的限制。苏仕芳等[9]改进了CNN 网络VGG16 的全连接层,缩短了网络模型的收敛时间,以迁移学习的方式进行训练并部署到移动端,实现了田间葡萄叶片病害的检测。 Ji 等[10]通过融合Inceptionv3 和Resnet50 网络的宽度和深度特性构建了特征提取能力更强的融合模型,实现了对4类葡萄叶片的识别功能,但该算法结合了2种模型的参数,训练成本大幅增加。刘洋等[11]使用内存大小仅17.1 Mb 的MobileNet 构建了2 种轻量级的病害识别模型并应用于手机端,有效地提高了用户使用效率。何欣等[12]将Resnet18 中的固定卷积核修改成多卷积组合,并加入SENet 结构,提升了网络对不同大小病斑的感知能力和模型的整体识别效果。基于CNN 的叶片病害识别方法虽然取得了一定的进展,但模型训练需要成千上万张图像,为了解决训练样本不足的问题,大多采用裁剪、随机翻转、添加噪声、颜色变换等方式增强数据。但这些增强方式有时只能提供少量的额外信息[13],导致训练成本提高但模型识别效率仍然低下。因此,本文提出基于三维(3D)建模的数据扩充方法。三维建模技术可以将物体的二维图像转换成三维立体模型,重现物体在真实环境下的空间形态,更加完善地反映物体的表型信息。目前,三维建模技术在农业领域被广泛应用于农作物的表型无损检测[14],表型的叶长、高度、体积、宽度[15]等参数的提取。立体模型可以通过翻转获取多个角度下的图像,能够比单一图像提供更多的信息。
为了解决病害葡萄叶训练样本不充足的问题,本文提出了基于三维建模的多角度葡萄叶病害识别方法。该方法使用三维建模技术将每张训练样本15个角度的二维图像转换成三维立体模型;然后将立体模型进行翻转并实时保存模型的图像信息,从而由单个三维立体模型扩充出64 张多角度3D 图像;最后将扩充的3D 图像用于神经网络训练,成功提高了网络模型对葡萄叶病害识别的准确率,为实现葡萄病害的自动识别提供了参考。
1 材料与方法
1.1 数据集构建
1.1.1 数据采集 在实验室环境下采集图像数据,通过对每张叶片样本进行多角度拍摄构建3D图像序列用于生成立体模型。拍摄要求:将叶片样本编号为P1,P2,······,Pn,根据编号顺序依次平铺在白色背景上,模拟自然光照条件下拍摄2 组图像;第1 组拍摄,保持拍照设备距叶片中心约25 cm,与水平面呈45°,以叶柄为起拍点,绕逆时针每隔30°拍摄1次,共拍摄12次;第2组拍摄,保持拍照设备距叶片中心25 cm,与水平面约呈 60°、90°、120°位 置 各 拍 摄 1 次 ,共 拍 摄 3次(图1)。
图1 图像拍摄的角度和位置Fig.1 Angle and position for taking photo
1.1.2 3D 模型生成 基于AliceVision 开源框架[16],将已获取的3D 图像序列集,按照编号顺序依次建模,叶片立体模型生成的主要流程和效果如图2所示。
图2 葡萄叶样本的三维模型生成Fig.2 3D model generation of grape leaf samples
1.1.3 Mag-3D 数据集构建 将葡萄叶片模型导入开源软件MeshLab[17]中,调整模型至显示器中心区域并保持模型表面与显示器平行。以模型中心为原点,模型所在平面为YOZ平面,构建XYZ三维笛卡尔坐标系定位模型的位置。
使用Python程序控制三维模型分别以Z轴、Y轴、OP向量、OQ向量为旋转中心沿顺时针和逆时针方向连续翻转。模型先顺时针翻转,每翻转7°就截屏保存1次图像信息,翻转到56°时再恢复到初始状态,共计保存8 次图像。恢复到初始状态以后,修改翻转方向为逆时针进行相同操作,再次保存8次图像。绕4个旋转中心完成翻转以后,共计可以获得64 张不同角度的图像,旋转中心OP向量、OQ向量。绕Z轴的翻转方式如图3所示。
图3 坐标与模型翻转方式Fig.3 Coordinates and the way of flipping model
1.1.4 数据集分布 研究对象为葡萄叶片病害,根据样本的外貌特征将所有样本分为5 种类型:褐斑病、白粉病、气灼病、缺镁症、健康。将样本依次平铺在白色的背景板上,并随机采用4 种不同的拍照设备对样本进行拍摄,图像为JPG格式,设备型号分别为IPhone11、Redmik30s、Redmik20Pro、RealmeX50pro,图像样本如图4所示。
图4 图像样本Fig 4 Sample of image
拍摄完成后,将5类样本图像均按照6∶2∶2划分为训练集、验证集、测试集。然后使用3D 建模技术构建Mag-3D 数据集,用于模型训练,数据分布如表1所示。
表1 数据集分布Table 1 Distribution of dataset
1.2 Mag-3D网络模型
1.2.1 3D预处理模块 Mag-3D网络模型由3D预处理模块和图像识别模块构成,结构如图5 所示。3D 预处理模块为图像训练的预处理阶段,分为3D 重建、数据筛选、数据增强3个部分。3D 重建生成训练样本的立体模型和对应的3D图;采用随机算法从64张不同角度的3D图像中筛选15张用于模型训练;将样本原图和3D图数据的尺寸统一缩小到512×512,并随机使用传统的数据增强方式将所有训练集图像的特征增强,包括随机裁剪、图像旋转、镜像翻转、调整图像亮度、对比度、增加随机噪点等,最后将增强后的图像导入模型的图像识别模块。
图5 Mag-3D网络模型结构Fig.5 Structure of Mag-3D network model
1.2.2 图像识别模块 为了提高本文模型的应用性 ,依次 使用 Resnet34、Resnet101、Darknet53、MobileNet 网络作为图像识别模块中主体网络模型,与3D 预处理模块相结合,用于识别葡萄病害种类。
Resnet34和Resnet101模型是深度卷积神经网络模型,由很多残差块构成,能够避免因网络层数过深而导致的梯度消失和爆炸的问题。Darknet53模型是开源的神经网络框架,在ImageNet图像分类中取得了很好的效果。MobileNet卷积网络模型是轻量级的卷积网络,基于深度可分离的卷积架构,具有计算量少、运算速度快的特点。
1.2.3 实验环境 模型训练采用CPU 型号为E5-2680 v3、显 卡 为 RTX2080ti、操 作 系 统 为Windows10、深度学习框架为基于Cuda10.1 版本的Mxnet1.5,通过使用GluonCv 计算机视觉库,载入ResNet34、ResNet101、Darknet53 和 Mobilenet 网络模型用于训练。
网络batchsize 为16,训练过程中采用SGDMomentum 优化器,初始学习率为0.001,初始动量为0.9,权值衰减为0.000 1。根据训练回合数的不同,学习率衰减回合固定为总回合的70%和90%。每次训练执行迭代次数(epoch)100个,训练过程中每隔20个epoch 设立1个检查点,保存1次训练模型,保证模型收敛。
1.2.4 评价指标 采用精准率、召回率、评价模型单分类的结果,准确率和Kappa 系数模评价模型总体分类的结果。为获得目标识别模型的评价指标,根据检测结果制做单分类混淆矩阵,鉴别出真阳性(true positive,TP)、假阳性(false positive, FP)、真阴性(true negative,TN)、假阴性(false negative,FN),单分类混淆矩阵如表2所示。
表2 单分类混淆矩阵Table 2 Confusion matrix of single classification
根据混淆矩阵,评价指标的计算公式如下。
式中,P为精准率、R为召回率、A为准确率;Tp为真阳性样本数量,样本为正类且预测为正类;Fp为假阳性样本数量,样本为负类但预测为正类;Fn为假阴性样本数量,样本为正类但预测为负类;Tn为真阴性样本数量,样本为负类但预测为正类。
1.2.5 实验设计 本研究设计了3 组对比实验,分别为无数据增强、几何变化、几何与颜色变化。几何变化是在预处理阶段将训练图片进行随机裁剪、镜像翻转、随机旋转、几何和颜色变化是在预处理阶段将训练图片进行几何变化,再调节图像的亮度、对比度、饱和度、往图片上随机添加噪点。
为了验证Mag-3D 数据集的有效性,模型的3D 预处理模块分别采用3 种不同的数据类型作为训练数据:初始训练集数据、由初始训练集直接复制16 倍的数据及由初始训练集的原图和初始训练集样本所对应的Mag-3D 数据集中的3D 图像构成的数据。原图和3D 图像的比例是1:15,3D图像是随机挑选的15个任意角度图像。
图像识别模块采用4 种不同的网络模型,分别为Resnet34、Resnet101、Darknet53、Mobilenet。对数据以输入类别和模型进行命名,例如输入类型为16 倍数据集,模型为Resnet34,命名为16-Resnet34;输入类型Mag-3D 数据集,命名为3DResnet34。
2 结果与分析
2.1 无数据增强方式下的识别效果分析
2.1.1 无数据增强方式下的总体识别效果 从表3可以看出,原始数据在4个网络模型中的训练效果都很低,其中Resnet101 网络模型的识别准确率、Kappa 系数仅为66.5%、55.7%,说明模型识别结果的准确率和一致性很低。
使用16 倍原始数据集训练,16-MobileNet 网络模型的整体识别率与MobileNet 相比降低了1.2个百分点,16-Darknet53 模型与Darknet53 相比仅提高了1.1个百分点。可见MobileNet 和Darknet53模型已经接近饱和,大量添加重复数据,并没有太大的提升,甚至出现了训练过拟合现象。而Resnet34 和Resnet101 模型并未达到饱和状态,16-Resnet34、16-Resnet101 与 Resnet34、Resnet101相比提高了9 和16.7个百分点。说明在深度学习的部分算法中,大量添加重复数据能够提高识别效果,但同时会导致计算成本大幅增加。
加入Mag-3D 数据集后,4个网络模型的训练效果较原模型相比,整体识别率和Kappa系数均得到了较大的提升。3D-MobileNet、3D-Darknet53、Resnet34、Resnet101 与原模型相比整体准确率分别提高了11.3、7.7、11.4、17.3个百分点。Kappa系数分别提高了15.0、10.3、15.3、23.3个百分点。可见Mag-3D数据集与添加重复数据相比,能够提供更多特征信息给网络模型学习。
2.1.2 无数据增强方式下的单项识别效果 从表4可以看出,原始数据在4个网络中训练的模型对缺镁症的识别精确率均达到了100%,但召回率最高只有76.2%。说明模型学习到了缺镁症的部分特征,但很多测试集中的缺症叶片未识别成功。白粉病的识别精度最低为52.9%,召回率却高达89.4%,说明测试集中的白粉病大部分被识别出来,但很多其他类别也被误识为白粉病。褐斑病的识别精度模型均高于70%,但召回率最高只有30%。可见模型对图像特征学习不充足,识别效果不佳。
表4 无数据增强方式下的单类识别结果Table 4 Single class recognition result without data enhancement
在16 倍的原始数据集下,16-MobileNet 和16-Darknet53 网络对缺镁症的识别精度为100%。16-Darknet53模型对缺镁症的召回率提高了14.3个百分点,对缺镁症特征的学习得到部分提升。Resnet34、Resnet101模型对白粉病的识别精度分别提高了19.0、23.0个百分点,对气灼症的识别精度分别提高了14.3、11.2个百分点。虽然部分类别的召回率有所降低,但模型总体识别效果稍有提升。
加入 Mag-3D 数据集后,3D-MobileNet、3DDarknet53、3D-Resnet34、3D-Resnet101 模型与原模型相比,褐斑病的召回率分别提高了37.5、40.0、45.0、60.0个百分点,白粉病的识别精度分别提高了17.4、16.2、27.4、28.2个百分点。可见Mag-3D 更够加强网络模型对褐斑病与白粉病的特征学习,提高网络模型的识别效率。
2.2 几何变化方法的识别效果
2.2.1 几何变化方法的总体识别效果 通过对比表3、表5可以发现,在预处理阶段使用几何变化的数据增强方式,模型的训练效果改善,准确率和Kappa 系数均得到了提升。3D-MobileNet、3DDarknet53、3D-Resnet34、3D-Resnet101的识别准确率分别达到了89.2%、84.4%、89.2%、85.0%,与原数据集训练模型相比分别提高了10.8、2.4、8.4、10.7个百分点,Kappa 系数分别提高了 14.3、3.3、11.1、14.8个百分点。说明Mag-3D数据集能够结合几何变化的数据增强方式,有效提高模型对图像特征的学习,进一步提高模型的整体识别效果。
表3 无数据增强方式下的总体识别效果Table 3 overall recognition effect without data enhancement
表5 几何变化方式下的总体识别效果Table 5 Overall recognition effect under geometric change mode
2.2.2 几何变化方法的单项识别效果 在预处理阶段使用几何变化的数据增强的方式,Mag-3D 数据集训练的模型与原数据集和16 倍数据集相比,气灼病、缺镁症、健康叶片的识别精度和召回率大部分到了提升(表6)。褐斑病的精确率有所降低,3D-Resnet101 模型只有76.3%,但召回率提升到了72.5%。白粉病召回率降低的同时,识别精度得到提高,3D-Resnet101 由58.8%提升到了80.4%。缺镁症状的识别精确度在3D-MobileNet、3D-resnet34、3D-resnet101 模型上都达到了100%,召回率高于85.5%。可见,Mag-3D 数据集有效地结合了几何变化的数据增强方式,训练的网络模型对缺镁症的识别效果较好,但其他类别效果欠佳。
表6 几何变化方式下的单类识别结果Table 6 Single category recognition result under geometric change mode
2.3 几何与颜色变化方法的识别效果
2.3.1 总体识别效果 通过对比表3、表7可以发现,使用几何与颜色变化的数据增强方式,原数据集训练的网络模型的识别准确率均低于85%,Kappa 系数低于 80%。Resnet34、Resnet101 模型的识别准确率为79.6%、74.3%,Kappa系数分别为73.3%、66.0%。可见,Resnet34、Resnet101 模型训练效果提升较少,整体识别效果偏低。
表7 几何与颜色变化方式下的总体识别效果Table 7 Overall recognition effect under geometric and color changes
加入Mag-3D 数据集,4个网络模型的识别准确率和Kappa 系数与原数据集、16 倍数据集的模型相比,得到了大幅的提高。3D-Resnet101 的准确率和Kappa 系数分别达到了93.4%、91.5%,可见Mag-3D 数据集结合几何与颜色变化的数据增强方式,大幅提升了网络模型的整体识别效果。
2.3.2 单项识别效果 从表8 可以看出,在预处理阶段使用几何与颜色变化的数据增强方式,Mag-3D 数据集训练的模型与原数据集相比,除了白粉病的召回率和褐斑病的识别精度有所下降,其他类别的单项指标值得到较高的提升。3DMobileNet、3D-Darknet53网络模型对气灼病、缺镁症的识别精度和召回率均超过94%,可见模型对这2 种类别的特征学习比较准确。Resnet34、Resnet101 模型对褐斑病的识别精度下降了6.3、4.9个百分点,召回率提升了30.0、67.5个百分点,健康和缺镁症的识别精度和召回率均超过了92%。
表8 几何与颜色变化方式下的单类识别结果Table 8 Single class recognition result under geometric and color change modes
2.4 不同方法识别效果比较分析
在本文设计的对比实验中,无数据增强、几何变化、几何与颜色变化,MobileNet、Darknet53、Resnet34、Resnet101 网络模型加入本文构建的Mag-3D 数据集后,训练模型在测试集上的识别准确率都得到了不同程度的提升(图6)。在MobileNet 中,原模型在无数据增强的方式下的识别准确率仅74.9%,将初始数据复制16倍以后,网络模型的识别效率反而因过拟合降低了1.2个百分点。加入本文构建的Mag-3D数据集以后,网络模型的识别的效率提高到了86.2%,较原模型提高了11.3个百分点。原数据集采用几何变化、几何与颜色变化的增强方式训练,Darknet53、Resnet34 识别准确率从82.0%、80.8%降到了80.2%、79.6%,Resnet101 模型的识别准确率没有变化。可见,传统的数据增强方式有时只能提供少量的额外信息,甚至会因训练样本单一和模型训练过拟合而导致识别效果降低。加入Mag-3D 数据集后,3DDarknet53、3D-Resnet34、3D-Resnet101 模型的识别准确率分别提高到了89.9%、89.8%、93.4%,高于原模型和16 倍数据集的训练模型。结果表明,Mag-3D数据集可以有效提高网络模型学习葡萄叶病害的特征,结合颜色和几何变化的数据增强方式能进一步提升网络模型训练效果。
图6 总体识别效果对比Fig.6 Comparison of overall recognition effect
3 讨论
在深度学习领域,数据集是影响模型构建效果的关键因素。为了解决数据集不充足的问题,需要进行数据扩充,包括有监督数据增强、无监督数据增强2 种方式。无监督数据增强通过生成新数据、学习增强策略的方式扩充数据;有监督数据增强通过将原数据集进行几何和颜色变化,扩充出新数据,具有简单、实用的特点。本文采用三维建模的方式获取不同角度的三维图像用于扩充,并结合了几何与颜色变化的数据增强方式,有效提高了网络模型的识别准确率。
在训练数据不充足的情况下,通过数据增强的方式扩充数据集可以有效提高网络模型的训练效果。与原模型相比,使用16 倍数据集、Mag-3D数据集训练模型的整体识别率和Kapple 系数得到了较大的提升。部分类别的精确率和召回率指标会出现升降表现不一致的情况,但总体提升的幅度大于下降的幅度。原数据集使用几何和颜色变化的增强方式,只有部分模型得到了提升。相比之下,Mag-3D 数据扩充结合几何和颜色变化的增强方式,网络模型的识别效果均得到了较大的提升。因此,三维建模的数据扩充方式可以提升模型对葡萄叶病害特征的学习,结合几何和颜色的数据增强方式能够进一步提高葡萄叶病害的整体识别效果。
本研究结果满足了对葡萄病害识别的基本要求,对卷积神经网络在训练时如何克服训练数据不足的问题有一定的参考价值。但本文的方法均是在室内模拟真实环境下完成,与实际环境有一定的差距,如何将3D建模技术应用于实际场景和提高三维建模的品质和效率还需进一步深入。