APP下载

基于轻量化YOLO 模型的植物叶片识别

2023-02-08常黎玫丁学文孙盼盼蔡鑫楠董国军

智能计算机与应用 2023年1期
关键词:损失叶片植物

常黎玫,丁学文,3,杨 旭,孙盼盼,蔡鑫楠,董国军

(1 天津职业技术师范大学 电子工程学院,天津 300222;2 天津市高速铁路无线通信企业重点实验室,天津 300450;3 天津云智通科技有限公司,天津 300350)

0 引言

植物是大自然基本资源,是食物、药物的主要来源。植物作为大自然中的初级生产者,可以各种形式储存能量,供生物界的能量需求,其在维持地球上的生物和物质循环平衡中,起着不可代替的作用。如:植物为地球上的生物提供栖息地和生活场所;植物在水土保持和净化生物圈的无机环境中起着不可或缺的作用;植物对于人类生产生活有着重要的经济地位,主要表现在药用和食品方面,是人类生存的基本而又无法替代的部分。作为农业大国,提高植物业和农业生产需要大量植物的精细数据。因此,植物分类识别对于人类生产生活具有重要意义和作用。

随着20 世纪计算机与人工智能技术的兴起与发展,基于深度学习的目标检测算法已逐渐代替传统的识别方法。深度学习的目标检测算法分为一阶段(one-stage)目标检测算法和二阶段(two-stage)目标检测算法。二阶段目标检测算法以R-CNN[1]系列为代表,先使用卷积神经网络(Convolutional Neural Networks,CNN)从图像中提取出一些候选框,然后再对这些候选框进行逐一甄别,筛选出置信度高的候选框。该算法相当于进行了两次筛选,因此检测的准确率较高、计算量低,但检测的速度较慢。一阶段目标检测算法以YOLO 系列[2-5]和SSD[6]为代表,这种方法直接将图像数据送入网络,提取一次特征,然后使用卷积神经网络将特征直接提取候选框,整个过程只要一步就可完成。因此,单阶段目标检测的优势是检测速度快。

近年来,国内外研究者基于图像处理和机器学习的植物识别进行了多方位的研究。如:文献[7]中提出,将叶片形状特征和纹理特征相结合,共提取了2 182 维特征,再使用线性评判分析与主成分分析相结合的方式,将叶片进行特征降维,降维后的训练集取得了不错的识别结果。文献[8]构建了一种基于残差连接的Alexnet 卷积神经网络,对于多种植物叶片识别不准、计算效率低等问题得到了明显的改善和提升。文献[9]在P1antCLEF 2016 比赛中发现使用微调的AlexNet、VGGNet 和GoogLeNet 模型来识别植物种类的方法优于其它方法。文献[10]将LBP、SURF 和HOG 3 种纹理特征单独输入到支持向量机分类器中对自建的草本植物数据集进行分类识别,结果表明HOG 和LBP 的识别性能优于SURF[10]。

目前,叶片识别使用的很多模型都需消耗大量的计算资源,只能部署在服务器端,导致其普及性和实时性较差,所以对于叶片识别具有一定的局限性。而YOLO 神经网络模型由于其算法的改进性和迁移性强,在快速识别植物叶片和移动端部署上有着更好的表现和应用前景。本文利用基于pytorch 框架的YOLOv5 中v5s 模型来训练植物叶片数据,以满足植物叶片识别的准确性和高效性。

1 神经网络模型概述

YOLOv5 是YOLO 系列不断创新的一阶段目标检测网络。在YOLOv5 模型的代码中,4 个版本的检测网络分别为:YOLOv5x、YOLOv5l、YOLOv5m、YOLOv5s,可以满足不同量级的设备使用。其中,YOLOv5s 是该系列中深度最小,并且特征图的宽度也是最小的网络。YOLOv5 沿用了YOLOv4 的部分方法。例如:利用Mosaic 方法进行数据增强;针对不同数据集计算不同的初始先验框(anchor)长宽比;在测试时,对原始图片添加最少的边框,以提高推理速度;改进损失函数Generalized Intersection over Union(GIOU)Loss 和预测框筛选的Distance-IoU(DIOU)_NMS 等等。

1.1 YOLOv5 模型结构

YOLOv5 网络结构由输入端(Input)、Backbone、Neck、Prediction 组件组成,各部分完成的主要功能所述如下:

(1)Input:YOLOv5 沿用YOLOv4 中Mosaic 数据增强方式来丰富数据集,降低硬件需求,减少GPU 的使用。自适应锚框计算功能被嵌入到整个训练代码中,可自行调节开关,自适应图片缩放,提高了推理阶段目标检测的速度。

(2)Backbone:Focus 模块是YOLOv5 特有结构,其中的关键是将特征图进行分块切片操作,之后经过多层卷积池化、跨阶段局部网络(Cross Stage Partial Network,CSPNet)[11]和特征金字塔池化(Spatial Pyramid Pooling,SPP)[12]结构,将图像特征传递到下一组块。

(3)Neck:沿用了YOLOv4 的特征金字塔网络(Feature Pyramid Networks,FPN)[13]和路径聚合网络(Perceptual Adversarial Network,PAN)[14]结构。但不同的是,在YOLOv5 的Neck 结构中,采用了借鉴CSPnet 设计的CSP2 结构,加强了信息传播,具有准确保留空间信息能力。

(4)Prediction:改进损失函数GIOU-Loss,可以将一些遮挡重叠的目标准确识别出来,进而能够解决传统IOU 存在的缺陷。

YOLOv5s 网络结构如图1 所示。

图1 YOLOv5s 网络结构图Fig.1 YOLOv5s Network Structure Diagram

1.2 YOLOv5 损失函数

在YOLOv5 网络中使用IoU系列损失函数中的CIoU loss来计算目标框和预测框的边界框损失(Box)。其中标框和预测框的置信度损失(Objectness)与分类损失(Classification)则是使用二元交叉熵损失函数(Binary Cross Entropy loss,BCE loss)来计算。

(1)边界框损失:

其中,IoU是预测框和目标框两个方框重叠面积与相并部分面积的比值;ρ为预测框和目标框的中心点距离;v用来表示长宽比的相似度;α为v的影响系数。

(2)置信度损失与分类损失:

其中,y为真实标签,p(x)为模型输出。

2 实 验

2.1 数据集

实验选用10 种植物类别的叶片作为数据集,将实验选用的样本图片按照3 ∶1 比例划分训练集和测试集,其中部分植物叶片数据集如图2 所示。样本图片尺寸均为416×416 分辨率,图像背景纯白无阴影。

图2 部分植物叶片数据集Fig.2 Partial plant leaf dataset

由于训练数据集数量较小,网络中使用了Mosaic 数据增强。随机从叶片数据集中找出4 张图片,通过随机缩放、随机裁剪、随机分布的方式进行拼接,可以丰富叶片背景,也增加了很多小目标,如图3 所示。送入网络中训练,使得新图片中可识别信息更加丰富,同时增强了网络的鲁棒性。

图3 Mosaic 数据增强后叶片数据集Fig.3 Mosaic data enhanced with leaf dataset

2.2 实验环境与参数配置

本实验软件环境配置见表1,训练网络为YOLOv5s 网络。批尺寸(batch size)设置为8,迭代次数为300,初始学习率为0.01。

表1 实验环境参数Tab.1 Experimental environmental parameters

2.3 模型评估指标

训练时记录下边界框损失(Box)、置信度损失(Objectness)和分类损失(Classification),可以检查是否存在过拟合现象;也可以通过对方框、目标检测以及分类效果进行观测,来设置合适的参数阈值。上述3 种损失均值越小,训练越精准,识别越准确,训练效果越好。

评价一个模型性能的好坏在于评估指标的真实性,本文选取精准率(Precision)、召回率(Recall),以及目标检测算法中衡量算法效果的指标全类平均准确率(Mean Average Precision,mAP)作为评估指标。其中,Precision和Recall可以清晰反映出网络对识别对象的错误识别和没有识别到的情况。其计算公式如下:

式中,TP是样本的真实类和预测结果一样是正例数量;FP是样本的真实类别是负例,但预测结果是正例的数量;FN是样本的真实类别是正例,但预测结果是负例的数量。

全类平均精度mAP,是将所有类别检测的平均正确率(AP)进行综合加权平均而得到,其值也可用Precision和Recall作为两轴作图后所围的面积来表示。

2.4 实验结果分析

使用YOLOv5s 网络的训练损失率和验证损失率都较为平滑,模型拟合效果较好。如图4 所示。

图4 叶片训练集损失Fig.4 Leaf training set loss

训练后模型的Precision、Recall、mAP@0.5 的结果如图5 所示。

图5 模型性能评估指标Fig.5 Model Performance Evaluation Metrics

由图中指标可以看出,Precision和Recall在epoch200 次以后波动幅度不大,mAP@0.5 基本稳定在93%,说明训练效果较好。

基于YOLOv5 网络训练后生成的best 模型,使用本实验训练集进行识别测试,部分结果如图6 所示。对于目标叶片类别能够准确的进行分类,且有较高的识别率。

图6 YOLOv5 部分识别结果Fig.6 Partial recognition results of YOLOv5

3 结束语

本论文针对植物叶片识别检测任务,构建10 种植物类型数据集,通过将原始叶片图像数据集随机缩放、随机裁剪、随机分布进行拼接,再进行镜像反转操作,来增强数据集并提高网络鲁棒性;使用基于Pytorch 框架的YOLOv5 网络模型,对叶片识别精度有较高提升,与传统人工植物叶片识别方法相比工作量大大缩减,叶片识别效率和准确率较高,网络模型可部署性强,可以满足植物学相关人员实时识别植物的要求,并减少在叶片识别中所需要的各方面成本。

猜你喜欢

损失叶片植物
胖胖损失了多少元
两种喷涂方法在TRT叶片上的对比应用及研究
玉米抽穗前倒伏怎么办?怎么减少损失?
丹参叶片在快速生长期对短期UV-B辐射的敏感性
哦,不怕,不怕
将植物穿身上
菜烧好了应该尽量马上吃
植物罢工啦?
植物也疯狂
损失