钟伟镇,刘鑫磊,杨坤龙,李丰果
(华南师范大学 物理与电信工程学院/物理国家级实验教学示范中心,广东 广州 510006)
不同植物叶片的差异比较大,能够直接反映植物生长状态信息,而且植物叶片容易采摘,因此,常作为植物识别、分类和生长状态监控的对象进行研究。然而,在自然环境中获取植物叶片图像时,叶片图像中常常包含复杂的背景和多片相同叶片同时存在的情况。一方面,复杂的背景包含土地、建筑物和与拟识别对象外观相似的植物等;另一方面,多片目标叶片同时存在且相互重叠,叶片呈现角度不同等情况。这些因素极大增加了目标叶片分割和识别的难度,也直接影响了目标叶片分割和特征提取的准确度和效率。
深度学习由于其精确度高,响应速度快而迅速在叶片分割和识别[1-4],以及病斑提取[5]领域被广泛使用。许景辉等[6]在VGG-16模型的基础上设计了新的全连接层,并将该模型应用到玉米的病害识别上,结果表明,该模型对玉米健康叶、大斑病叶、锈病叶图像的平均识别准确率为95.33%。贾少鹏等[7]提出了一种CNN与胶囊网络的组合模型,该模型对番茄灰霉病病害图像的识别正确率达93.75%。Dyrmann等[8]使用深度卷积神经网络对包括杂草在内的22种植物进行分类,该网络的分类准确度达86.2%。高云等[9]在深度卷积神经网络基础上建立Pig Net网络,对群猪图像进行实例分割,对训练集和验证集的分割准确率分别为86.15%和85.40%。冯海林等[10]将Alex Net、VGG Net-16、Inception-V3和ResNet-50四种模型通过相对多数投票法和加权平均法建立集成的新模型Trees Net,对复杂背景下树种图像识别准确率达到99.15%。Mehdipour-Ghazi等[11]通过优化转移学习参数,使用深度神经网络进行植物识别,最好的组合系统在验证集上的总体准确度达到了80%。毕松等[12]提出一种对自然环境下柑橘进行识别的深度学习模型,该模型在自然环境下对柑橘的平均识别准确率为86.6%;孙哲等[13]提出一种基于Faster R-CNN的西兰花幼苗检测模型,该模型以ResNet101网络为特征提取网络,对西兰花幼苗的平均检测精度为90.89%。袁银等[14]利用SGD(随机梯度下降法)优化google Net的深度卷积神经网络,该网络对50种常规植物图像的识别准确率在90%以上。穆龙涛等[15]采用Im-AlexNet为特征提取层的Faster R-CNN目标检测算法,对复杂环境下相互遮挡的猕猴桃进行识别,在不同环境下识别精度为96.00%。综上所述,在深度学习领域,有关植物叶片的分割与识别已经取得不小的成果,但是缺少一种高效的针对植物叶片的种类识别与分割统一模型。Mask Region-based Convolutional Neural Network (Mask-RCNN)是一种通过使用标记好的图像进行训练,同时对多个目标进行分割和识别且准确率较高的深度学习框架。本文采用Mask-RCNN对自然状态下的包含地面、绿色植物等复杂背景的4种植物的多目标叶片图像进行像素级别的分割和植物叶片种类的识别,并对分割准确率进行定量分析。这一研究将对复杂背景下植物多目标叶片分割和识别提供算法参考,也为基于植物叶片的植物生长状态的监控提供算法支持。
采用在华南植物园使用手机拍摄的植物叶片图像作为训练样本,共拍摄了7 357张图像。由于Mask-RCNN为有监督深度学习网络,因此需对训练图像进行标注,共标注了3 000张植物叶片图像作为训练数据。这3 000张图像共包含4种植物,分别为孔雀竹芋(Calatheamakoyana)、珊瑚树(Viburnumodoratissinum)、洋常春藤(HederahelixL.)和黄花羊蹄甲(Bauhiniatomentosa),这4种植物在形状或颜色上有较大差异,便于区分。
A,孔雀竹芋;B,珊瑚树;C,洋常春藤;D,黄花羊蹄甲。A,Calathea makoyana;B,Viburnum odoratissinum;C,Hedera helix L.;D,Bauhinia tomentosa.图1 叶片样本标注示意图Fig.1 Schematic diagrams of the leaf sample labeling
由于显卡内存限制,需对图像进行一定比例的缩小后进行标注,缩小后的图像像素大小不超过850×850,相应地训练所需显卡内存不超过8 GB。图1所示为叶片样本的标注,选择图像中叶片面积最大且叶片完整的1片或者2片叶片(具体以图像中实际完整叶片数目来选择,有1个就选择1个,有多个就选择多个)作为目标叶片,使用标注软件labelme将4种植物叶片图像中目标叶片的边缘轮廓使用标注点标注出来,并使用不同标注标签即叶片英文名进行分类。所有的标注信息如标注标签、标注点坐标等将会保存到与原图像对应的json文件中。
使用labelme打开原图像和对应json文件即可看到图1所示图像,标注点将图像分为2部分,标注点内部为不同种类的目标叶片,其余为背景;但标注的标签信息不会在图像中显示,只能在labelme的其他视图中看到;因此,将标注后的json文件转化为可视图像,结果如图2所示。样本图像中的不同目标叶片将会用不同颜色的掩膜覆盖,并在右下角显示出标记的标签。此时每张图像对应的json文件只包含对应的原图像标注信息,将所有标注图像的json文件合成1个包含所有标注图像标注信息的json文件,转换成coco数据集输入到网络中进行训练。
A,孔雀竹芋;B,珊瑚树;C,洋常春藤;D,黄花羊蹄甲。A,Calathea makoyana;B,Viburnum odoratissinum;C,Hedera helix L.;D,Bauhinia tomentosa.图2 标注后的叶片图像样本Fig.2 Labelled leaf samples
1.3.1 Mask-RCNN基本框架
Mask-RCNN可分为4个主要的结构:主干架构(Backbone)、区域候选网络(RPN)、兴趣区域(ROI)分类器和边框回归器、分割掩膜(Mask)生成网络。Mask-RCNN的主干架构通常会利用1种或2种常用的卷积神经网络对训练图像进行特征提取,这是整个Mask-RCNN的基础部分,不同的深度学习网络对不同物体的特征提取效果不一,在进行迁移时要选取合适的深度学习网络作为主干网络,在使用相同数据进行训练时,使用ResNet101比ResNet50等网络精度更高[16]。
本文采用ResNet101与FPN相结合作为主干架构对植物叶片图像进行特征提取,其中ResNet101是一个共有101次卷积的卷积神经网络,可以依次提取出低级特征(边缘、角点等)和高级特征(叶片、花朵、地面等),形成5层不同大小和维度的特征图(feature maps),如果只使用ResNet101网络的最后一层特征图作为该网络的输出,由于其分辨率比较低,难以检测出比较小的叶片特征:因此,使用FPN网络将底层到高层的特征图进行融合,充分利用ResNet 101网络各层提取到的特征,将主干架构提取得到的特征图输入到区域候选网络。区域候选网络是一个典型的二分类网络,其作用是将图像分为目标叶片与背景2个类别,并将植物叶片以尽量贴合叶片大小的方框分别框选出来,此时只能区分出包含目标叶片的大概区域与背景,无法对目标叶片进行细致的物种分类和叶片分割。经过区域候选网络可以得到1个或多个必然包含目标叶片的区域,该区域将被输入ROIAlign中池化为固定大小的特征图,再分别输入到2个分支中。其中1个分支网络通过兴趣区域(ROI)分类器和边框回归器来进行目标叶片识别,兴趣区域(ROI)分类器和边框回归器均由1个全连接层构成,1个全连接层作为兴趣区域(ROI)分类器将兴趣区域分类为具体的植物类别,另一个全连接层则作为边框回归器调整兴趣区域的中心点位置和长宽比,以求更精准地检测到目标叶片。另一个分支网络则是由全卷积网络(fully convolutional networks,FCN)构成的分割掩膜(Mask)生成网络,该网络会产生与目标叶片大小、形状一致的掩膜对目标叶片图像进行分割。最终将识别与结果相结合,得到1张包含目标叶片类别和与目标叶片大小、形状一致的分割掩膜的图像。
1.3.2 模型参数
本文使用Ubuntu 16.04操作系统,服务器使用显卡为NVIDIA Tesla P4,显存为8 GB。使用Mask-RCNN-fpn-resnet101做预训练模型。2组参数组合对最终选择的参数组合进行多次实验进行比较:(1)取max epoch为12,初始学习率设置为0.01,动量默认设置为0.9,实验表明,网络会误识别不属于本文所需分析的4种植物叶片,即网络欠拟合,模型复杂度较低;(2)取max epoch为24,初始学习率设置为0.02,动量默认设置为0.9,结果表明,网络会误识别4种植物种类,即网络过拟合,泛化能力较差。
本文最终选择分割效果最好的参数组合,即:
图3 Mask-RCNN的结构图Fig.3 Architecture of Mask-RCNN
max epoch为24,采用带动量的梯度下降优化算法,初始学习率设置为0.01,动量默认设置为0.9。训练需要运行时间大约11 h,训练完成后分割需要几秒钟。图4是本文在上述参数下网络训练的损失与精准度收敛曲线图,可以看出,loss(损失)在0.04附近收敛,accuracy(精准度)在0.99附近收敛。说明网络达到了很好的拟合效果。
图4 Mask-RCNN的训练结果收敛曲线图Fig.4 Convergence curve of training results of Mask-RCNN
1.3.3 错分率计算
为了对分割效果进行定量评价,选择以人工在Photoshop软件中抠出的目标叶片作为评价基准,使用错分率针对本文算法对目标叶片分割的准确率进行评价。本文将图像中的点定义为4种情况:算法分割的结果与手动分割的结果相比较,将分割正确的目标叶片上的点称为正确的目标(true positive),将目标叶片上的点判断成了背景的点称为错误的目标(false positive),将分割正确的背景上的点称为正确的背景(true negative),将背景上的点判断成了目标叶片上的点称为错误的背景(false negative)。因此,定义了相关的4种错分率计算方式。第1种是将背景误分割为目标的点即错误背景点占算法分割出来的目标点的比例,称为错误背景率(false negative rate,FNR);第2种是将目标误分割为背景的点即错误目标点占算法分割出来的背景点的比例,称为错误目标率(false positive rate,FPR);第3种为所有误分割的点占整个图像的比例,称为图像错分率(error rate,ER);第4种为所有误分割的点占实际叶片的比例,称为叶片错分率(error rate for object,ERO)。
目标叶片指的是在图像中面积较大且较为完整的叶片。图5中展示了有2个目标叶片的样本图像原图和分割后的图像。图5-A为原图,可以看到图像中有2个目标叶片;图5-B为原图输入训练好的Mask-RCNN后输出的结果图,图中的2个目标叶片分别被不同颜色的掩膜覆盖并各自处于1个独立的绿色方框中,将图5-B的方框部分放大得到图5-E和5-F,框选出目标叶片的绿色方框左上角的内容是该框内目标叶片的预测标签和分数,即该框中的目标叶片的植物分类和目标叶片属于该植物类别的概率。本次分割实验包含2个类型,即黄花羊蹄甲和背景,所以显示的标签都是“Bauhiniatomentosa”,概率分别为0.90和0.99。将图5-B中覆盖目标叶片的掩膜提取出来得到图5-C,将图5-C与利用PS抠出的目标叶片图像5-D进行比较,计算错分率。
为了验证算法的可靠性,选择了4种植物叶片图像共80个样本,利用Mask-RCNN进行分割,再进行识别统计和错分率分析,这80个样本中共含有125片叶片。图6所示为80张样本中部分图像的原图、分割效果图、相应的掩膜和手动分割效果图。
A,原图;B,实验结果图;C,掩膜;D,PS抠图;E,目标叶片1,F,目标叶片2。A,Original image;B,Experimental result;C,Mask;D,Segmented image by Photoshop;E,Target blade 1;F,Target blade 2.图5 原图与分割后的图像样本Fig.5 Original image and segmented image sample
从左到右依次为原图、分割效果图、掩膜、PS抠图。From the left to right were original image,segmentation diagram,mask and segmented image by photoshop,respectively.图6 部分测试样本实验结果示意图Fig.6 Schematic diagram of the experimental results of part of integrant test samples
统计结果显示,Mask-RCNN对于所有样本的其余125个叶片全部识别正确,且保持较高的识别概率,识别效果较好。为了对分割结果的准确性进行定量分析,采用以Photoshop手动抠图的叶片为基准,计算错分率,错分率计算结果如图7所示。80个样本的错误背景率(FNR)和错误目标率(FPR)最高不超过2.72%和3.15%,说明将背景误分割为目标和将目标误分割为背景的概率较低,对于背景和目标有较好的分类。样本的图像错分率(ER)最高不超过2.49%,平均图像错分率为0.93%。样本的叶片错分率(ERO)平均值为4.79%。其中,图像错分率(ER)为图像分割领域通用指标。综合以上计算结果,说明Mask-RCNN对复杂背景下植物叶片有较好的分割效果。
图7 测试样本的错分率Fig.7 Error rate of test samples
使用Mask-RCNN深度学习网络对复杂背景下的4种植物(孔雀竹芋、珊瑚树、洋常春藤和黄花羊蹄甲)进行了目标识别和图像分割。共拍摄了7 357张图像,标注了4种植物的3 000张叶片图像作为数据库,并输入Mask-RCNN深度学习网络进行训练,训练后识别和分割了80个样本,并对其中80个样本进行了识别统计和错分率分析。结果表明:Mask-RCNN深度学习网络对这4种植物的识别效果较好,未出现识别错误的情况;分割的平均图像错分率为0.93%,最大值不超过2.49%,即分割准确率达97.51%。说明Mask-RCNN可以对在自然环境下获得的存在复杂背景和光照不均等情况的植物图像进行较为准确的分割和识别,具有良好的迁移性。诚然,对于自然生长状态的植物利用叶片进行识别和监控时,由于拍摄叶片图像时极其容易受到光照、拍摄角度等因素的影响,同时背景极具偶然性,这些因素给分割和识别目标叶片带来了困难,需要进一步研究。