基于深度学习的石榴缺陷检测
Pomegranate Defect Detection Based on Deep Learning
DOI: 10.12677/hjfns.2024.133041, PDF, HTML, XML, 下载: 8  浏览: 137  科研立项经费支持
作者: 于 欢, 张圆圆, 林以星, 朱玉霞, 侯丽新:吉林农业大学信息技术学院,吉林 长春
关键词: 石榴缺陷YOLOv5Mask R-CNNPomegranate Defects YOLOv5 Mask R-CNN
摘要: 由于石榴的缺陷严重影响了其品质,文章基于深度学习方法对石榴缺陷进行识别与检测。根据国家林业局发布的“LY/T2135—2013石榴质量等级”行业标准,将缺陷分为鸟啄、裂果、腐烂、锈斑和日灼五种类型。采用YOLOv5模型和Mask R-CNN模型进行缺陷识别,检测精度分别为93.6%和88%。
Abstract: Because the defect of pomegranate seriously affects its quality, this paper uses deep learning method to identify and detect the defect of pomegranate. According to the industry standard “LY/T2135—2013 Pomegranate Quality Grade” issued by the State Forestry Administration, the defects are divided into five types: bird damage, fruit cracking, rot, rust and sunburn. YOLOv5 model and Mask R-CNN model were used for defect identification, and the detection accuracy was 93.6% and 88%, respectively.
文章引用:于欢, 张圆圆, 林以星, 朱玉霞, 侯丽新. 基于深度学习的石榴缺陷检测[J]. 食品与营养科学, 2024, 13(3): 318-326. https://doi.org/10.12677/hjfns.2024.133041

1. 引言

随着人们生活水平的不断提高,对食品质量的标准也日益提升。经研究表明,石榴具有丰富的维生素C,还具有健脾提神、增强食欲的作用[1] [2]。如今石榴已是我国需求量较大的一种水果,它的品质和产量受到广泛关注。由于石榴在生长、采摘和运输过程中会出现各种类型的缺陷,会严重影响石榴的品质,进而影响销售,造成较大的经济损失。目前对石榴缺陷的识别还主要依赖于人工检测,通过肉眼观测石榴颜色和表面完整度进行判断的方式过于低效且准确率不高,受人为因素影响较大,不利于石榴产业提速增效。

目前,石榴品质的影响研究主要集中在生长条件对品质方面的影响[3]-[5]。近年来,计算机视觉在水果缺陷方面的应用广泛。马博等基于机器视觉设计了番茄分选系统,采用缺陷检测方法,对番茄的缺陷进行识别和分级[6]。吴建清等基于机器视觉对芒果进行检测与分级,首先对芒果图像进行预处理,取五个缺陷参数并进行归一化,利用GMM、MLP、SVM和KNN 4种分类器,平均准确率可达92.5%、93.75%、98.75%和98% [7]。申飘基于图像处理与机器学习对柑橘表面缺陷进行检测研究,其中IAO-SVM具有更好的分类性能,分类准确率可达95.83% [8]。罗山等基于机器视觉对石榴品质进行分级,以缺陷面积与总面积之比和缺陷数目作为划分依据,分级准确率可达92.9%,但其不能识别出具体的石榴缺陷类型[9]。Manisha Bhange等基于图像处理检测石榴病害,使用k均值算法进行聚类,SVM用于分类,识别石榴病害的准确率为82%,不能识别出具体的缺陷类型[10]。巨志勇等基于自适应阈值Prewitt算子对石榴病斑进行检测,识别黑腐病和疥疮病两种石榴缺陷,识别的正确率可达98.24% [11]

由于石榴缺陷的检测研究较少,本文基于YOLOv5模型和Mask R-CNN模型分别对石榴五种缺陷进行检测,识别并标注出石榴的缺陷类型,并对比两个模型的缺陷检测精度。

2. 图像采集

我们选用Intel RealSense D435i型号的相机拍摄石榴表面缺陷,从正反侧面以及花萼、果梗共四个方向拍摄。为了保证石榴缺陷数据的准确性与广泛性,符合“LY/T2135—2013石榴质量等级”的分级标准,采集石榴五种不同的缺陷类型,分别为鸟啄(brid damage)、裂果(fruit cracking)、腐烂(rot)、锈斑(rust)和日灼(sunburn)。采集的石榴缺陷类型除了质量等级的几种常见类型之外,还增加了腐烂缺陷类型,大大增加了检测的全面性和准确性。

3. 图像预处理

Table 1. Training and testing sets for different defect types

1. 不同缺陷类型训练集和测试集


Bird damage

Fruit cracking

Rot

Rust

Sunburn

Total

Training set

250

250

250

250

250

1250

Test set

62

62

62

62

62

310

由于样本图像携带较多噪声,采用pycharm软件处理样本数据,将图像亮度增强,使石榴背景干净减少噪声。同时,为了增加样本数量,通过旋转、翻转、增亮、变暗、沿X及Y轴分别增大、对比度增强、锐度变化、随机颜色九种变换将数据集扩充,原数据为156张,扩增后为1560张,采用欠采样和过采样的方式处理数据集中存在类别不平衡问题,优化处理数据。YOLOv5模型采用labelimg软件对石榴缺陷的位置打标并保存,Mask R-CNN模型采用via软件打标并保存,按照8:2的比例随机划分训练集和测试集。不同缺陷类型的训练集和测试集情况见表1

4. YOLOv5模型

4.1. YOLOv5缺陷检测架构

本文采用了YOLOv5中的YOLOv5s版本,YOLOv5s是一个轻量级的目标检测模型。YOLOv5s采用了FPN + PAN结构,这种金字塔模型能够使上下层语义互通,提高检测的准确性。YOLOv5s是YOLOv5系列中深度最小、特征图宽度最小的网络模型,具有尺寸小、速度快、轻量化等优点。YOLOv5s的网络结构见图1

Figure 1. Network structure of YOLOv5s

1. YOLOv5s的网络结构

YOLOv5s网络结构由Backbone、Neck和Head组成。由Backbone提取特征信息后,再由Neck进行特征融合,最后通过Head模块的三个检测层分别对应得到3种不同尺寸的特征图,每个网格上预设了3个不同宽高比的Anchor,用来预测和回归目标。

4.2. YOLOv5模型训练

YOLOv5模型的主要性能指标包括损失函数、精确率、召回率和P-R曲线。损失函数包含分类损失(cls_loss),定位损失(box_loss)和置信度损失(obj_loss)。损失越小,模型训练效果越好。P和R表示精确率和召回率,它们的值越高效果越好。P-R曲线是以召回率为横轴,精确率为纵轴的曲线,展示了不同召回率下精确率的变化。MAP的值是精确率和召回率所围成的面积,MAP越接近1模型预测精度越高,性能越好。MAP@0.5:0.95 (MAP@[0.5:0.95])表示在不同IoU阈值(从0.5到0.95,步长0.05)下的平均MAP。训练性能各指标结果见表2,损失函数见图2,P-R曲线见图3

Table 2. Training results of each index

2. 各指标训练结果

Class

P

R

MAP50

MAP50-95

All

0.922

0.944

0.936

0.52

Bird damage

1

1

0.995

0.669

Fruit cracking

0.926

0.952

0.95

0.437

Rot

0.899

0.901

0.907

0.509

Sunburn

0.913

0.938

0.91

0.503

Rust

0.87

0.93

0.918

0.482

Figure 2. Training results of loss function

2. 损失函数训练结果

Figure 3. P-R curve

3. P-R曲线

表2可知,此模型训练的平均检测准确率为93.6%,模型训练结果较精确。由图2可知,损失函数随着训练次数的增多而逐渐减小,模型准确率越来越高。从图3中P-R曲线观测出不同召回率下精确率的变化,曲线期望接近(1,1)模型性能好,P-R曲线下面积为0.936,由此可见,模型训练效果整体良好。

5. Mask R-CNN模型

5.1. Mask R-CNN缺陷检测架构

Mask R-CNN属于实例分割与YOLOv5模型的目标检测分割不同,实例分割要求检测出目标位置同时对目标进行检测,所以需要结合目标检测(Faster R-CNN) [12]和语义分割(FCN)方法,见图4

Figure 4. Network structure for Mask R-CNN

4. Mask R-CNN的网络结构

主要框架使用的是Faster R-CNN,但Mask R-CNN模型将Faster R-CNN的主干特征提取网络vgg-16更换成了resnet101 + FPN结构,得到若干个不同尺度的特征图,根据不同尺度特征图生成若干不同大小的预设框。

将预设框通过RPN网络进行筛选(前景或者背景),得到筛选后的预设框。

将预设框分为两条线路:Faster R-CNN和Mask,Faster-RCNN线路主要输出对于预设框类别和回归的信息,而Mask主要输出对于proposal的值。在训练时,输入Mask分支的是由RPN提供的并与Faster R-CNN经过对比后的正样本预设框,测试时输入的是经过NMS处理以后的目标。

5.2. Mask R-CNN模型训练

Mask R-CNN是实例分割模型,在训练期间,将在每个采样后的RoI上的多任务损失函数定义为L = Lcls + Lbox + Lmask。分类损失(Lcls)和检测框损失(Lbox)与Faster R-CNN中定义的相同。掩码分支对于每个RoI的输出维度为Km2等即K个分辨率为m × m的二进制掩码,每个类别一个,K表示类别数量。我们为每个像素应用Sigmoid函数,并将Lmask定义为平均二进制交叉熵损失。对于真实类别为k的RoI,仅在第k个掩码上计算Lmask (其他掩码输出不计入损失)。Mask R-CNN模型训练后的各性能指标参数见表3,损失函数值见图5,MAP值见图6

Table 3. Training results of each index

3. 各指标参数训练结果


Sunburn

Rust

Rot

Fruit cracking

Bird damage

All

MAP50

0.95

0.9

0.82

0.77

0.91

0.88

MAP50-95

0.83

0.38

0.55

0.52

0.46

0.62

Figure 5. Loss function of training based on Mask R-CNN

5. Mask R-CNN模型训练损失函数

Figure 6. MAP results based on Mask R-CNN model

6. Mask R-CNN模型训练的MAP结果

6. YOLOv5和Mask R-CNN性能对比

6.1. 性能指标对比

通过图2图5对比两个模型的损失函数,可以知道两个模型的损失函数值都是逐渐减小的,每次训练之后对两个模型改进都越来越优化。根据损失函数值可以知道模型预测值与真实值的差距,根据每次训练出的损失函数值可以评估和求解模型,最小化损失函数,进而优化两个模型。通过表2表3对比可知,YOLOv5模型的精度值可达93.6%,Mask R-CNN模型的精度只能达到88%。可见,YOLOv5模型的精度更高,检测效果更准确。

6.2. YOLOv5可视化缺陷显示

在designer软件设置一个可视化的窗口,在vs2010软件配置PySide6环境,设置文件为可读文件,编写代码,调用训练最好的模型,显示可视化窗口,显示情况见图7,五种缺陷类型的检测见图8

Figure 7. Defect detection based on YOLOv5

7. YOLOv5缺陷检测结果

Figure 8. Test results for five defect types based on YOLOv5

8. 基于YOLOv5的五种缺陷类型检测结果

6.3. Mask R-CNN可视化缺陷显示

Figure 9. Defect detection based on Mask R-CNN

9. Mask R-CNN 缺陷检测结果

Figure 10. Test results for five defect types based on Mask R-CNN

10. 基于Mask R-CNN的五种缺陷类型检测结果

通过Mask R-CNN模型对数据集进行训练,得到最优模型。在pycharm预测模块调用训练得到的最优模型,输入需要检测的图片路径,利用plt.show函数和plot_img.save函数对检测结果进行显示并保存。输入原图片直接显示检测结果见图9,五种缺陷类型的检测见图10

7. 结论

Mask R-CNN和YOLOv5模型区别和联系:(1) Mask R-CNN是两阶段目标检测,而YOLOv5是单阶段目标检测。(2) 两者都使用锚框,但YOLOv5基于维度簇(Dimension Clusters),而Mask R-CNN是手工挑选(hand-picked)。(3) 两者都使用author-IOU标签方案。

本文分别用YOLOv5和Mask R-CNN网络结构训练模型进行预测分析。因为Mask R-CNN是自下而上和自上而下的双通道处理,所以要比YOLOv5的单一归一化的特征提取的效果要好。但是通过对比可知,Mask R-CNN的MAP值低于YOLOv5的MAP值。所以就模型的精度来说,YOLOv5模型精度更高,但就特征提取效果来说,Mask R-CNN模型的检测效果更好。根据实验结果,可以选择YOLOv5模型来实现高精度检测石榴缺陷。

基金项目

2023年吉林农业大学本科生科技创新基金项目。

参考文献

[1] 低糖水果 美味健康两不误[J]. 科学大观园, 2023(12): 42-45.
[2] 石榴功效[J]. 绿色中国, 2009(5): 42-43.
[3] 司守霞, 牛娟, 陈利娜, 曹尚银. 不同药剂对石榴可育花比率及产量和品质的影响[J]. 西北林学院学报, 2017, 32(4): 111-116.
[4] 王莉梅, 肖逸, 李游, 杜长江. 超高压和巴氏杀菌对石榴果汁饮料品质影响的研究[J]. 食品科技, 2023, 48(6): 89-94.
[5] 薛辉, 曹尚银, 牛娟, 李好先, 张富红, 赵弟广. 花粉直感对‘突尼斯’石榴坐果及果实品质的影响[J]. 果树学报, 2016, 33(2): 196-201.
[6] 马博, 李丹, 代丹丹, 李川江, 胡昊天. 基于机器视觉的番茄分选实验台系统设计[J]. 南方农机, 2024, 55(7): 35-37+49.
[7] 吴建清, 苏信晨. 基于机器视觉的芒果检测与分级研究[J]. 海南师范大学学报(自然科学版), 2024, 37(1): 56-64.
[8] 申飘. 基于图像处理与机器学习的柑橘表面缺陷检测研究[D]: [硕士学位论文]. 长沙: 中南林业科技大学, 2024.
[9] 罗山, 侯俊涛, 郑彬. 基于机器视觉的石榴品质自动分级方法[J]. 中国农机化学报, 2023, 44(3): 117-122.
[10] Bhange, M. and Hingoliwala, H.A. (2015) Smart Farming: Pomegranate Disease Detection Using Image Processing. Procedia Computer Science, 58, 280-288.
https://doi.org/10.1016/j.procs.2015.08.022
[11] 巨志勇, 薛永杰, 张文馨, 翟春宇. 自适应阈值Prewitt的石榴病斑检测算法[J]. 农业工程学报, 2020, 36(8): 135-142.
[12] 张艺博, 赵加坤, 陈攀, 支杨丹, 夏星浩. 基于改进Mask RCNN的遥感图像小目标检测算法研究[J]. 计算机与数字工程, 2024, 52(3): 880-885.