CN111709489B - 一种基于改进YOLOv4的柑橘识别方法 - Google Patents
一种基于改进YOLOv4的柑橘识别方法 Download PDFInfo
- Publication number
- CN111709489B CN111709489B CN202010584280.0A CN202010584280A CN111709489B CN 111709489 B CN111709489 B CN 111709489B CN 202010584280 A CN202010584280 A CN 202010584280A CN 111709489 B CN111709489 B CN 111709489B
- Authority
- CN
- China
- Prior art keywords
- training
- citrus
- image
- parameter
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 235000020971 citrus fruits Nutrition 0.000 title claims abstract description 76
- 241000207199 Citrus Species 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000012549 training Methods 0.000 claims abstract description 96
- 238000013138 pruning Methods 0.000 claims abstract description 37
- 238000001514 detection method Methods 0.000 claims abstract description 15
- 230000000694 effects Effects 0.000 claims description 21
- 238000012795 verification Methods 0.000 claims description 21
- 235000013399 edible fruits Nutrition 0.000 claims description 16
- 238000012360 testing method Methods 0.000 claims description 13
- 238000013527 convolutional neural network Methods 0.000 claims description 12
- 230000003321 amplification Effects 0.000 claims description 9
- 230000006835 compression Effects 0.000 claims description 9
- 238000007906 compression Methods 0.000 claims description 9
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 4
- 230000002265 prevention Effects 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims description 4
- 230000001133 acceleration Effects 0.000 claims description 3
- 239000003242 anti bacterial agent Substances 0.000 claims description 3
- 229940088710 antibiotic agent Drugs 0.000 claims description 3
- 230000002238 attenuated effect Effects 0.000 claims description 3
- 238000009826 distribution Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000003860 storage Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 abstract description 5
- 230000007547 defect Effects 0.000 abstract description 4
- 244000175448 Citrus madurensis Species 0.000 description 7
- 235000017317 Fortunella Nutrition 0.000 description 7
- 241001672694 Citrus reticulata Species 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 201000010099 disease Diseases 0.000 description 2
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 244000298697 Actinidia deliciosa Species 0.000 description 1
- 235000009436 Actinidia deliciosa Nutrition 0.000 description 1
- 244000144730 Amygdalus persica Species 0.000 description 1
- 244000141359 Malus pumila Species 0.000 description 1
- 235000006040 Prunus persica var persica Nutrition 0.000 description 1
- RTAQQCXQSZGOHL-UHFFFAOYSA-N Titanium Chemical class [Ti] RTAQQCXQSZGOHL-UHFFFAOYSA-N 0.000 description 1
- 241000607479 Yersinia pestis Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 235000021016 apples Nutrition 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000003337 fertilizer Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000002420 orchard Substances 0.000 description 1
- 239000000575 pesticide Substances 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24137—Distances to cluster centroïds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于改进YOLOv4的柑橘识别方法,该方法通过改进YOLOv4网络模型结构,添加了上采样模块和对小目标敏感的检测特征图,能更好的识别个体较小的柑橘,通过对训练得到的网络模型进行稀疏训练,通道剪枝和层剪枝,克服了添加模块带来的内存消耗大和识别时间久等缺陷,运用Canopy算法与k‑means++算法一起进行聚类,让用户得到更适合自己数据集的锚框参数值。进行柑橘识别时,采用改进的YOLOv4网络结构对柑橘数据集进行训练,得到的模型能够更精确的识别个体较小的目标;在网络模型训练前,通过层剪枝和通道剪枝结合,压缩模型的深度和宽度,在不损失精度的前提下,提高了训练速度;对不同时期的树上柑橘进行识别,识别精度高、速度快,能够满足实时识别的需要。
Description
技术领域
本发明涉及图像识别技术领域,具体是一种基于改进YOLOv4的柑橘识别方法。
背景技术
柑橘是目前我国栽培面积最大、产量最高和消费量最大的水果。长久以来我国柑橘生产还主要依靠人力劳动,因此,计算机视觉识别系统的应用和开发具有十分重要的现实意义。此外,在农学科研中,不少研究者借助计算机视觉识别技术辅助进行果实的产量分析、采摘和病害防控。其中计算机视觉识别系统就是制约当前柑橘生产机械化和自动化技术应用的关键技术之一,在果园自然环境条件下精准快速识别柑橘是实现柑橘自动采摘、精准施药等应用的关键。
许多研究者围绕该问题开展了大量研究,提出了一些解决方法。例如,部分研究者提出基于区域特征的柑橘果实分割识别方法,通过彩色特征图像的颜色特征生成颜色特征向量,进行降维处理,然后通过双目摄像机确定果实的ROI大小,并对ROI进行分数排序,最后对最大分数的ROI作为分割识别区域。近年来,有研究者提出了基于卷积神经网络的果实识别方法,这些方法一般首先获取果实的RGB图片,并进行预处理和标注,构建数据集,设置好网络模型的参数后,将训练集放入卷积神经网络进行训练,最后就能得到果实识别模型。此外,也有人利用基于图像计算的方法,获取待测果实的初始轮廓图像,通过几何形态学方法对图像进行筛选,获取目标果实轮廓,再通过轮廓特征进行分割识别。
现有基于卷积神经网络的柑橘果实识别方法中,一个缺点是在识别柑橘果实时,过于注重对小目标的识别精度,没有考虑卷积神经网络的深度和检测速度;另一个不足是在优化网络结构时,往往降低了识别精度,缺少对指定目标的识别信息。
基于图像计算或区域分割方法识别柑橘的主要缺点是缺乏对复杂环境下,个体较小的柑橘的识别,仅能大致的将柑橘轮廓或者特性描述分割出来,而丢失了一些柑橘的细节,得不到较高的识别精度。
柑橘果实生长在柑橘树上,果实的个体、颜色、生长特性等特征随着生长周期的不同而表现出不同的差异,即使是同一种类的不同柑橘树,生长出的柑橘也不尽相同,不同品种的柑橘更是有不同的性状特征。此外,在柑橘的生长环境中,光照的强度,肥料的利用,病虫的防治等复杂环境中的因素都会影响柑橘的识别。因此,在识别柑橘果实时,考虑柑橘自身的因素和复杂环境的影响是十分必要的。
发明内容
本发明的目的在于克服现有技术的不足,而提供一种基于改进YOLOv4的柑橘识别方法,该方法对YOLOv4算法进行了进一步的改进,其思想是先把用户使用的数据集在卷积神经网络训练时锚框的参数分析出来,再用较深的卷积层结合上采样抽象个体较小的柑橘的特征,最后运用层剪枝和通道剪枝结合去掉卷积神经网络中没有用到的卷积层,达到在不丢失精度的同时提高训练和识别速度的目的,可以在复杂自然环境条件下对不同生长时期、不同遮挡程度的树上柑橘进行识别。
实现本发明目的的技术方案是:
一种基于改进YOLOv4的柑橘识别方法,包括如下步骤:
S1、图像的获取:用户采用数码相机或其他图像采集设备对结有果实的柑橘树进行图像采集,并将采集到的图像按照Pascal VOC数据集的格式将图片命名,同时创建名为Annotations、ImageSets、JPEGImages的三个文件夹;
S2、图像预处理:
S2-1、图像标记:在步骤S1采集到的图像中,运用图像标注工具LabelImg对图像中的柑橘进行标记,标注出柑橘的位置、品种名称并注明每个果实被树叶或者枝干遮挡的程度;
S2-2、图像扩增:若步骤S1采集到的图像不能达到识别一个品种的柑橘需要200张图片的要求,则进行图像扩增;用户选定图像的保存路径和标记信息的XML文件路径,并制定扩增后的图像输出路径,则在原有图像的基础上根据用户的需求量进行图像扩增,用户可以选择图像的亮度、大小、清晰度等参数对图像进行扩增;
S2-3、设置锚框参数,步骤如下:
S2-3-1、用户先根据标记且扩增后的数据集设置名为M-IOU自定阈值和锚框个数;
S2-3-2、采用Canopy算法对数据进行初步的聚类得到聚类中心;
S2-3-3、将步骤S2-3-2得到的聚类中心与M-IOU进行对比,观察聚类中心是否在用户设置的M-IOU周围有较好收敛效果,若满足,则进行下一步,否则从步骤S2-3-1重新设置M-IOU;
S2-3-4、使用k-means++算法对步骤S2-3-2得到的聚类中心再进行一次细致的聚类,重复执行本步骤,选择精度最高的聚类结果作为YOLOv4网络的锚框参数值;
S2-4:划分数据集:将扩增得到的图像和标记文件划分成训练集、测试集、验证集和训练验证集,训练集、测试集、验证集分别占50%、25%、25%,训练验证集为训练集与验证集的累加,占75%;
S3、设置网络模型参数:在YOLOv4网络模型的配置文件中,根据计算机内存、显存的大小,用户最终呈现的识别效果要求,设置卷积神经网络输入图像的尺寸、识别种类的数量和filters值、迭代次数参数;且用户需使用支持cuda加速的显卡类型;
S3-1、当输入图像大小为416*416,参数random为1(开启多尺度训练),batch_szie参数为64,迭代次数为6000,检测物体种类为2时,用户使用cpu训练模型,至少需要4GB内存;使用单GPU训练模型,至少需要6GB;
S3-2、当输入图像大小为416*416,参数random为0(关闭多尺度训练),batch_szie参数为16,迭代次数为6000,检测物体种类为2时,用户使用cpu训练模型,至少需要2GB内存;使用单GPU训练模型,至少需要4GB;
S3-3、当输入图像大小为608*608,参数random为1(开启多尺度训练),batch_szie参数为64,迭代次数为6000,检测物体种类为2时,用户使用cpu训练模型,至少需要4GB内存;使用单GPU训练模型,至少需要8GB;
S3-4、当输入图像大小为608*608,参数random为0(关闭多尺度训练),batch_szie参数为16,迭代次数为6000,检测物体种类为2时,用户使用cpu训练模型,至少需要3GB内存;使用单GPU训练模型,至少需要6GB;
S4. 对YOLOv4网络结构进行改进,得到改进后的YOLOv4网络结构,改进过程如下:
S4-1:在现有的YOLOv4网络结构中,对小目标比较敏感的是深层的网络层,其输出的特征图大小为76*76*3*(5+class_num),较大的特征图上的感受野较小,效果如图2所示。在现有的YOLOv4网络结构基础上,增加一个上采样模块和两个对小目标敏感、大小为152*152的检测特征图,使网络结构更深,使改进后的卷积神经网络学习更深层的信息;
S4-2、新增的检测特征图与现有的YOLOv4网络结构中CSP模块中大小为76*76*512的相连接,用于后续的特征拼接和防止过拟合;
S4-3、新增的两个检测特征图层与现有的YOLOv4网络结构中特征图尺寸为152*152*256、步长为1的卷积层连接;
S4-4、在新增的每层中,加入1*1卷积层进行通道降维,使最后输出的YOLO layer的大小为152*152*3*(5+class_num);
S5、训练网络模型:对改进后的YOLOv4网络结构进行参数设置,将设置好参数后的改进YOLOv4网络结构放入配置好环境的计算机中,运用训练集和验证集中标记好的图片名进行训练,训练过程中,将测试集中划分好的图片放入计算机中进行测试,得到每一个阶段训练的效果,并设置过程监控-map参数实时观察训练的mAP值,训练结束后保存训练好的网络模型。
S6、压缩网络模型:
S6-1、将步骤S5得到的训练好的网络模型,改进后的YOLOv4网络结构cfg文件,配置好data文件,采用训练验证集再进行一次基础训练,并设置训练参数-epochs 100 -batch-size 64;
S6-2、在YOLOv4网络结构中,将scale参数默认为0.001,用户根据标记且扩增后的数据集,观察mAP、BN分布,数据集种类的多少,适当调小参数s;-sr用于开启稀疏训练,将prune参数设置为1,运用全局s衰减稀疏策略;
所述的全局s衰减稀疏策略,是指在参数epochs值为0.5时权重已经完成部分的稀疏训练,拥有了一定的模型压缩度后,对参数s衰减100倍;
S6-3、通道剪枝:将稀疏训练的结果,采用SlimYOLOv3对通道剪枝策略,通过全局阈值找出各卷积层的mask,用每组shortcut,将相连各卷积层的剪枝mask取并集,把合并后的mask进行剪枝;
S6-4、层剪枝:只考虑剪CSPDarknet53主干网络中的shortcut模块,对每一个shortcut层前一个CBL进行评价,对各层的Gmma均值进行排序,取最小的进行层剪枝;每剪一个shortcut结构,会同时剪掉一个shortcut层和它前面的两个卷积层;
S6-5、经过通道剪枝和层剪枝,分别压缩了模型的宽度和深度,再通过微调fine-tune和迭代式剪枝操作训练,得到压缩后的柑橘识别网络模型;判断步骤S6-2设置的参数所得到的结果是否能满足需要,若不满足,则对参数s进行调整,并重复步骤S6-2-步骤S6-5,选择适合用户数据集的压缩网络模型策略,得到压缩后的柑橘识别网络模型;
S7、运用步骤6)得到的网络模型进行识别:在计算机上准备拍摄好的柑橘图像,在python环境下,通过命令行中输入训练命令,命令内容包括步骤6)压缩后得到的柑橘识别模型和要识别的柑橘图片名,最终得到柑橘的识别结果。
本发明提供的一种基于改进YOLOv4的柑橘识别方法,该方法通过改进YOLOv4网络模型结构,添加了上采样模块和对小目标敏感的检测特征图,能更好的识别个体较小的柑橘,通过对训练得到的网络模型进行稀疏训练,通道剪枝和层剪枝,克服了添加模块带来的内存消耗大和识别时间久等缺陷,此外,运用Canopy算法与k-means++算法一起进行聚类,让用户得到更适合自己数据集的锚框参数值。与现有技术相比,本发明具有如下优点:
(1)用户可以通过预设参数控制数据集的锚框的选择,使得网络得到当前数据集下最优的锚框数值;
(2)进行柑橘识别时,采用了改进的YOLOv4网络结构对柑橘数据集进行训练,训练得到的模型能够更精确的识别个体较小的目标;
(3)在网络模型训练前,通过层剪枝和通道剪枝结合,压缩模型的深度和宽度,在不损失精度的前提下,提高了训练速度;
(4)可以在自然环境条件下,对不同时期的树上柑橘进行识别,具有识别精度高、速度快的特点,能够满足实时识别的需要。
附图说明
图1为本发明一种基于改进YOLOv4的柑橘识别方法的流程图;
图2为聚类结果图;
图3为76*76 YOLO head结构图;
图4为改进后YOLO head结构图;
图5为152*152*256的卷积层与YOLO head结构图;
图6为改进后的YOLOv4网络模型对金橘的识别效果图;
图7为改进后的YOLOv4网络模型对南丰蜜桔的识别效果图;
图8为改进后的YOLOv4网络模型对遮挡不超过50%的金橘识别效果图;
图9为改进后的YOLOv4网络模型对遮挡超过50%的金橘识别效果图;
图10为改进后的YOLOv4网络模型对成熟期的金橘识别效果图;
图11为改进后的YOLOv4网络模型对成熟期的南丰蜜桔识别效果图。
具体实施方式
下面结合附图和实施例对本发明内容做进一步阐述,但不是对本发明的限定。
实施例:
一种基于改进YOLOv4的柑橘识别方法,如图1所示,包括如下步骤:
S1、图像的获取:用户采用数码相机或其他图像采集设备对结有果实的柑橘树进行图像采集,并将采集到的图像按照Pascal VOC数据集的格式将图片命名,同时创建名为Annotations、ImageSets、JPEGImages的三个文件夹,可以不用大量修改代码中文件保存的路径,便于后续网络模型训练的进行;
S2、图像预处理:
S2-1、图像标记:在步骤S1采集到的图像中,运用图像标注工具LabelImg对图像中的柑橘进行标记,标注出柑橘的位置、品种名称并标注每个果实被树叶或者枝干遮挡的程度;本实施例选取了金橘和南丰蜜桔两个品种为例;
(1)框选金橘时,标签可命名为citrus;框选南丰蜜桔时,标签可命名为NanFengOrange;
(2)框选遮挡超过50%的柑橘时,标签可在第(1)步的基础上命名为citrus-o,框选遮挡不超过50%的金橘时,可命名为citrus-e;
(3)框选生长期的柑橘时,标签可以在第(1)步的基础上命名为citrus-g;框选成熟期的柑橘时,标签可命名为citrus-m。
S2-2、图像扩增:若步骤S1采集到的图像不能达到识别一个品种的柑橘需要200张图片的要求,则进行图像扩增;用户选定图像的保存路径和标记信息的XML文件路径,并制定扩增后的图像输出路径,则在原有图像的基础上根据用户的需求量进行图像扩增,用户可以选择图像的亮度、大小、清晰度等参数对图像进行扩增;
S2-3、设置锚框参数,步骤如下:
S2-3-1、用户先根据上述标记且扩增后的数据集设置名为M-IOU自定阈值和锚框个数;
S2-3-2、采用Canopy算法对数据进行初步的聚类得到聚类中心;
S2-3-3、将步骤S2-3-2得到的聚类中心与M-IOU进行对比,观察聚类中心是否在用户设置的M-IOU周围有较好收敛效果,若满足,则进行下一步,否则从步骤S2-3-1重新设置M-IOU;
S2-3-4、使用k-means++算法对步骤S2-3-2得到的聚类中心再进行一次细致的聚类,重复执行本步骤,选择精度最高的聚类结果作为YOLOv4网络的锚框参数值,如图2所示;
S2-4:划分数据集:将扩增得到的图像和标记文件划分成训练集、测试集、验证集和训练验证集,训练集、测试集、验证集分别占50%、25%、25%,训练验证集为训练集与验证集的累加,占75%;
S3、设置网络模型参数:在YOLOv4网络模型的配置文件中,根据计算机内存、显存的大小,用户最终呈现的识别效果要求,设置卷积神经网络输入图像的尺寸、识别种类的数量和filters值、迭代次数参数;且用户需使用支持cuda加速的显卡类型,例如NVIDIA旗下的GeForce和TITAN系列的显卡;
S3-1、当输入图像大小为416*416,参数random为1(开启多尺度训练),batch_szie参数为64,迭代次数为6000,检测物体种类为2时,用户使用cpu训练模型,至少需要4GB内存;使用单GPU训练模型,至少需要6GB;
S3-2、当输入图像大小为416*416,参数random为0(关闭多尺度训练),batch_szie参数为16,迭代次数为6000,检测物体种类为2时,用户使用cpu训练模型,至少需要2GB内存;使用单GPU训练模型,至少需要4GB;
S3-3、当输入图像大小为608*608,参数random为1(开启多尺度训练),batch_szie参数为64,迭代次数为6000,检测物体种类为2时,用户使用cpu训练模型,至少需要4GB内存;使用单GPU训练模型,至少需要8GB;
S3-4、当输入图像大小为608*608,参数random为0(关闭多尺度训练),batch_szie参数为16,迭代次数为6000,检测物体种类为2时,用户使用cpu训练模型,至少需要3GB内存;使用单GPU训练模型,至少需要6GB;
S4. 对YOLOv4网络结构进行改进,得到改进后的YOLOv4网络结构,改进过程如下:
S4-1:在现有的YOLOv4网络结构中,对小目标比较敏感的是深层的网络层,其输出的特征图大小为76*76*3*(5+class_num),较大的特征图上的感受野较小,效果如图2所示。在现有的YOLOv4网络结构基础上,增加一个上采样模块和两个对小目标敏感、大小为152*152的检测特征图,使网络结构更深,使改进后的卷积神经网络学习更深层的信息,对小目标的表达效果更好,效果如图4所示;
S4-2、新增的检测特征图与现有的YOLOv4网络结构中CSP模块中大小为76*76*512的相连接,用于后续的特征拼接和防止过拟合;
S4-3、新增的两个检测特征图层与现有的YOLOv4网络结构中特征图尺寸为152*152*256、步长为1的卷积层连接,效果如图5所示;
S4-4、在新增的每层中,加入1*1卷积层进行通道降维,使最后输出的YOLO layer的大小为152*152*3*(5+class_num);
S5、训练网络模型:对改进后的YOLOv4网络结构进行参数设置,将设置好参数后的改进YOLOv4网络结构放入配置好环境的计算机中,运用训练集和验证集中标记好的图片名进行训练,训练过程中,将测试集中划分好的图片放入计算机中进行测试,得到每一个阶段训练的效果,并设置过程监控-map参数实时观察训练的mAP值,训练结束后保存训练好的网络模型。
S6、压缩网络模型:
S6-1、将步骤S5得到的训练好的网络模型,改进后的YOLOv4网络结构cfg文件,配置好data文件,利用训练验证集再进行一次基础训练,并设置训练参数-epochs 100 -batch-size 64;
S6-2、在YOLOv4网络结构中,将scale参数默认为0.001,用户根据上述标记且扩增后的数据集,观察mAP、BN分布,数据集种类的多少,适当调小参数s;-sr用于开启稀疏训练,将prune参数设置为1,运用全局s衰减稀疏策略;
所述的全局s衰减稀疏策略,是指在参数epochs值为0.5时权重已经完成部分的稀疏训练,拥有了一定的模型压缩度后,对参数s衰减100倍;
S6-3、通道剪枝:将稀疏训练的结果,采用SlimYOLOv3对通道剪枝策略,通过全局阈值找出各卷积层的mask,用每组shortcut,将相连各卷积层的剪枝mask取并集,把合并后的mask进行剪枝;
S6-4、层剪枝:只考虑剪CSPDarknet53主干网络中的shortcut模块,对每一个shortcut层前一个CBL进行评价,对各层的Gmma均值进行排序,取最小的进行层剪枝;每剪一个shortcut结构,会同时剪掉一个shortcut层和它前面的两个卷积层;
S6-5、经过通道剪枝和层剪枝,分别压缩了模型的宽度和深度,再通过微调fine-tune和迭代式剪枝操作训练,得到压缩后的柑橘识别网络模型;判断步骤S6-2设置的参数所得到的结果是否能满足需要,若不满足,则对参数s进行调整,并重复步骤S6-2-步骤S6-5,选择适合用户数据集的压缩网络模型策略,得到压缩后的柑橘识别网络模型;
S7、运用步骤6)得到的网络模型进行识别:在计算机上准备拍摄好的柑橘图像,在python环境下,通过命令行中输入训练命令,命令内容包括步骤6)压缩后得到的柑橘识别模型和要识别的柑橘图片名,最终得到柑橘的识别结果。
将采集到的金橘和南丰蜜桔两个柑橘品种不同生长期的图片输入上述步骤6)得到的网络模型中进行试验,得到的识别结果如图6-图11所示,结果表明,本发明能够快速、准确的识别柑橘的种类和位置。本发明操作容易、实现简单,达到了应用的要求。
本发明方法也可以应用于与柑橘有相同形状特点的果实如苹果、猕猴桃、桃子等。
Claims (2)
1.一种基于改进YOLOv4的柑橘识别方法,其特征在于,包括如下步骤:
S1、图像的获取:用户采用数码相机或其他图像采集设备对结有果实的柑橘树进行图像采集,并将采集到的图像按照Pascal VOC数据集的格式将图片命名,同时创建名为Annotations、ImageSets、JPEGImages的三个文件夹;
S2、图像预处理:
S2-1、图像标记:在步骤S1采集到的图像中,运用图像标注工具LabelImg对图像中的柑橘进行标记,标注出柑橘的位置、品种名称并注明每个果实被树叶或者枝干遮挡的程度;
S2-2、图像扩增:若步骤S1采集到的图像不能达到识别一个品种的柑橘需要200张图片的要求,则进行图像扩增;用户选定图像的保存路径和标记信息的XML文件路径,并制定扩增后的图像输出路径,则在原有图像的基础上根据用户的需求量进行图像扩增,用户选择图像的亮度、大小、清晰度参数对图像进行扩增;
S2-3、设置锚框参数,步骤如下:
S2-3-1、用户先根据标记且扩增后的数据集设置名为M-IOU自定阈值和锚框个数;
S2-3-2、采用Canopy算法对数据进行初步的聚类得到聚类中心;
S2-3-3、将步骤S2-3-2得到的聚类中心与M-IOU进行对比,观察聚类中心是否在用户设置的M-IOU周围有较好收敛效果,若满足,则进行下一步,否则从步骤S2-3-1重新设置M-IOU;
S2-3-4、使用k-means++算法对步骤S2-3-2得到的聚类中心再进行一次细致的聚类,重复执行本步骤,选择精度最高的聚类结果作为YOLOv4网络的锚框参数值;
S2-4:划分数据集:将扩增得到的图像和标记文件划分成训练集、测试集、验证集和训练验证集,训练集、测试集、验证集分别占50%、25%、25%,训练验证集为训练集与验证集的累加,占75%;
S3、设置网络模型参数:在YOLOv4网络模型的配置文件中,根据计算机内存、显存的大小,用户最终呈现的识别效果要求,设置卷积神经网络输入图像的尺寸、识别种类的数量和filters值、迭代次数参数;且用户需使用支持cuda加速的显卡类型;
S4. 对YOLOv4网络结构进行改进,得到改进后的YOLOv4网络结构,改进过程如下:
S4-1:在现有的YOLOv4网络结构中,对小目标比较敏感的是深层的网络层,其输出的特征图大小为76*76*3*(5+class_num),较大的特征图上的感受野较小,在现有的YOLOv4网络结构基础上,增加一个上采样模块和两个对小目标敏感、大小为152*152的检测特征图,使网络结构更深,使改进后的卷积神经网络学习更深层的信息;
S4-2、新增的检测特征图与现有的YOLOv4网络结构中CSP模块中大小为76*76*512的相连接,用于后续的特征拼接和防止过拟合;
S4-3、新增的两个检测特征图层与现有的YOLOv4网络结构中特征图尺寸为152*152*256、步长为1的卷积层连接;
S4-4、在新增的每层中,加入1*1卷积层进行通道降维,使最后输出的YOLO layer的大小为152*152*3*(5+class_num);
S5、训练网络模型:对改进后的YOLOv4网络结构进行参数设置,将设置好参数后的改进YOLOv4网络结构放入配置好环境的计算机中,运用训练集和验证集中标记好的图片名进行训练,训练过程中,将测试集中划分好的图片放入计算机中进行测试,得到每一个阶段训练的效果,并设置过程监控-map参数实时观察训练的mAP值,训练结束后保存训练好的网络模型;
S6、压缩网络模型:
S6-1、将步骤S5得到的训练好的网络模型,改进后的YOLOv4网络结构cfg文件,配置好data文件,采用训练验证集再进行一次基础训练,并设置训练参数-epochs 100 -batch-size 64;
S6-2、在YOLOv4网络结构中,将scale参数默认为0.001,用户根据标记且扩增后的数据集,观察mAP、BN分布,数据集种类的多少,适当调小参数s;-sr用于开启稀疏训练,将prune参数设置为1,运用全局s衰减稀疏策略;
所述的全局s衰减稀疏策略,是指在参数epochs值为0.5时权重已经完成部分的稀疏训练,拥有了一定的模型压缩度后,对参数s衰减100倍;
S6-3、通道剪枝:将稀疏训练的结果,采用SlimYOLOv3对通道剪枝策略,通过全局阈值找出各卷积层的mask,用每组shortcut,将相连各卷积层的剪枝mask取并集,把合并后的mask进行剪枝;
S6-4、层剪枝:只考虑剪CSPDarknet53主干网络中的shortcut模块,对每一个shortcut层前一个CBL进行评价,对各层的Gmma均值进行排序,取最小的进行层剪枝;每剪一个shortcut结构,会同时剪掉一个shortcut层和它前面的两个卷积层;
S6-5、经过通道剪枝和层剪枝,分别压缩了模型的宽度和深度,再通过微调fine-tune和迭代式剪枝操作训练,得到压缩后的柑橘识别网络模型;判断步骤S6-2设置的参数所得到的结果是否能满足需要,若不满足,则对参数s进行调整,并重复步骤S6-2-步骤S6-5,选择适合用户数据集的压缩网络模型策略,得到压缩后的柑橘识别网络模型;
S7、运用步骤6)得到的网络模型进行识别:在计算机上准备拍摄好的柑橘图像,在python环境下,通过命令行中输入训练命令,命令内容包括步骤6)压缩后得到的柑橘识别模型和要识别的柑橘图片名,最终得到柑橘的识别结果。
2.根据权利要求1所述的一种基于改进YOLOv4的柑橘识别方法,其特征在于,步骤3)中,所述的显卡类型,为如下要求:
S3-1、当输入图像大小为416*416,参数random为1,batch_szie参数为64,迭代次数为6000,检测物体种类为2时,用户使用cpu训练模型,至少需要4GB内存;使用单GPU训练模型,至少需要6GB;
S3-2、当输入图像大小为416*416,参数random为0,batch_szie参数为16,迭代次数为6000,检测物体种类为2时,用户使用cpu训练模型,至少需要2GB内存;使用单GPU训练模型,至少需要4GB;
S3-3、当输入图像大小为608*608,参数random为1,batch_szie参数为64,迭代次数为6000,检测物体种类为2时,用户使用cpu训练模型,至少需要4GB内存;使用单GPU训练模型,至少需要8GB;
S3-4、当输入图像大小为608*608,参数random为0,batch_szie参数为16,迭代次数为6000,检测物体种类为2时,用户使用cpu训练模型,至少需要3GB内存;使用单GPU训练模型,至少需要6GB。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010584280.0A CN111709489B (zh) | 2020-06-24 | 2020-06-24 | 一种基于改进YOLOv4的柑橘识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010584280.0A CN111709489B (zh) | 2020-06-24 | 2020-06-24 | 一种基于改进YOLOv4的柑橘识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111709489A CN111709489A (zh) | 2020-09-25 |
CN111709489B true CN111709489B (zh) | 2022-04-08 |
Family
ID=72542238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010584280.0A Expired - Fee Related CN111709489B (zh) | 2020-06-24 | 2020-06-24 | 一种基于改进YOLOv4的柑橘识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111709489B (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112464718B (zh) * | 2020-10-23 | 2024-02-20 | 西安电子科技大学 | 一种基于YOLO-Terse网络的目标检测方法及存储介质 |
CN112364734B (zh) * | 2020-10-30 | 2023-02-21 | 福州大学 | 基于yolov4和CenterNet的异常着装检测方法 |
CN112528738A (zh) * | 2020-11-06 | 2021-03-19 | 广东电网有限责任公司中山供电局 | 一种人工智能图像识别模型优化方法及系统 |
CN112215208A (zh) * | 2020-11-10 | 2021-01-12 | 中国人民解放军战略支援部队信息工程大学 | 基于改进YOLOv4的遥感影像桥梁目标检测算法 |
CN112329697B (zh) * | 2020-11-18 | 2022-04-12 | 广西师范大学 | 一种基于改进YOLOv3的树上果实识别方法 |
CN112464800A (zh) * | 2020-11-26 | 2021-03-09 | 上海海事大学 | 一种基于改进的YOLOv4算法的集装箱锁孔识别方法 |
CN112418117B (zh) * | 2020-11-27 | 2023-05-12 | 北京工商大学 | 一种基于无人机图像的小目标检测方法 |
CN112507896B (zh) * | 2020-12-14 | 2023-11-07 | 大连大学 | 一种采用改进的yolo-v4模型对樱桃果实进行检测的方法 |
CN112668445A (zh) * | 2020-12-24 | 2021-04-16 | 南京泓图人工智能技术研究院有限公司 | 一种基于yolov5的蔬菜种类检测与识别方法 |
CN112668490B (zh) * | 2020-12-30 | 2023-01-06 | 浙江托普云农科技股份有限公司 | 基于YOLOv4的害虫检测方法、系统、装置及可读存储介质 |
CN112668663B (zh) * | 2021-01-05 | 2024-03-22 | 南京航空航天大学 | 一种基于YOLOv4的航拍小汽车检测方法 |
CN112651966A (zh) * | 2021-01-18 | 2021-04-13 | 厦门大学嘉庚学院 | 一种基于acyolov4_csp的印刷电路板微小缺陷检测方法 |
CN112949385B (zh) * | 2021-01-24 | 2022-12-23 | 西北工业大学 | 一种基于光视觉的水面目标检测与识别方法 |
CN113033604B (zh) * | 2021-02-03 | 2022-11-15 | 淮阴工学院 | 一种基于SF-YOLOv4网络模型的车辆检测方法、系统及存储介质 |
CN112950547B (zh) * | 2021-02-03 | 2024-02-13 | 佛山科学技术学院 | 一种基于深度学习的锂电池隔膜缺陷机器视觉检测方法 |
CN112580639B (zh) * | 2021-03-01 | 2021-08-13 | 四川大学 | 一种基于进化神经网络模型压缩的早期胃癌图像识别方法 |
CN113139426A (zh) * | 2021-03-12 | 2021-07-20 | 浙江智慧视频安防创新中心有限公司 | 一种佩戴安全帽的检测方法、装置、存储介质及终端 |
CN112781634B (zh) * | 2021-04-12 | 2021-07-06 | 南京信息工程大学 | 一种基于YOLOv4卷积神经网络的BOTDR分布式光纤传感系统 |
CN113158962A (zh) * | 2021-05-06 | 2021-07-23 | 北京工业大学 | 一种基于YOLOv4的泳池溺水检测方法 |
CN113128465A (zh) * | 2021-05-11 | 2021-07-16 | 济南大学 | 一种针对工业场景基于改进YOLOv4的小目标检测方法 |
CN113255481B (zh) * | 2021-05-11 | 2023-05-23 | 北方工业大学 | 一种基于无人巡逻车的人群状态检测方法 |
CN113312999B (zh) * | 2021-05-19 | 2023-07-07 | 华南农业大学 | 一种自然果园场景下的柑橘木虱高精度检测方法及装置 |
CN113191347B (zh) * | 2021-05-25 | 2022-03-08 | 广东技术师范大学 | 一种基于圆形完整度修正的柑橘识别方法 |
CN113326771A (zh) * | 2021-05-28 | 2021-08-31 | 北京环境特性研究所 | 一种基于深度学习的震动触发目标监测装置及方法 |
CN113191334B (zh) * | 2021-05-31 | 2022-07-01 | 广西师范大学 | 一种基于改进CenterNet的植物冠层密集叶片计数方法 |
CN113313694A (zh) * | 2021-06-05 | 2021-08-27 | 西北工业大学 | 一种基于轻量型卷积神经网络的表面缺陷快速检测方法 |
CN113326808A (zh) * | 2021-06-26 | 2021-08-31 | 西北农林科技大学 | 基于改进型yolo的夜间番茄识别系统及方法 |
CN113313708B (zh) * | 2021-06-30 | 2022-10-18 | 安徽工程大学 | 基于深度神经网络的水果检测方法及系统 |
CN113822185A (zh) * | 2021-09-09 | 2021-12-21 | 安徽农业大学 | 一种群养生猪日常行为检测方法 |
CN114049346B (zh) * | 2021-11-26 | 2024-03-26 | 赣南师范大学 | 一种基于剪裁YOLOv3-SPP3的柑橘木虱检测与识别方法 |
CN114092814A (zh) * | 2021-11-26 | 2022-02-25 | 江西理工大学 | 基于深度学习的无人机脐橙树影像目标识别与统计方法 |
CN114830915B (zh) * | 2022-04-13 | 2023-09-26 | 华南农业大学 | 基于激光雷达导航的荔枝视觉采摘机器人及其实现方法 |
CN115205853B (zh) * | 2022-09-19 | 2022-12-27 | 华中农业大学 | 一种基于图像的柑橘果实检测与识别方法及系统 |
CN115294507B (zh) * | 2022-10-10 | 2022-12-16 | 四川川西数据产业有限公司 | 一种基于水果外形的动态视频数据识别方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109325418A (zh) * | 2018-08-23 | 2019-02-12 | 华南理工大学 | 基于改进YOLOv3的道路交通环境下行人识别方法 |
CN110766098A (zh) * | 2019-11-07 | 2020-02-07 | 中国石油大学(华东) | 基于改进YOLOv3的交通场景小目标检测方法 |
CN110796168A (zh) * | 2019-09-26 | 2020-02-14 | 江苏大学 | 一种基于改进YOLOv3的车辆检测方法 |
CA3116881A1 (en) * | 2018-10-19 | 2020-04-23 | The Climate Corporation | Detecting infection of plant diseases by classifying plant photos |
CN111291637A (zh) * | 2020-01-19 | 2020-06-16 | 中国科学院上海微系统与信息技术研究所 | 一种基于卷积神经网络的人脸检测方法、装置及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188802B (zh) * | 2019-05-13 | 2022-08-30 | 南京邮电大学 | 基于多层特征图融合的ssd目标检测算法 |
CN110222769B (zh) * | 2019-06-06 | 2022-09-16 | 大连理工大学 | 一种基于YOLOV3-tiny的改进目标检测方法 |
CN110895714A (zh) * | 2019-12-11 | 2020-03-20 | 天津科技大学 | 一种YOLOv3的网络压缩方法 |
-
2020
- 2020-06-24 CN CN202010584280.0A patent/CN111709489B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109325418A (zh) * | 2018-08-23 | 2019-02-12 | 华南理工大学 | 基于改进YOLOv3的道路交通环境下行人识别方法 |
CA3116881A1 (en) * | 2018-10-19 | 2020-04-23 | The Climate Corporation | Detecting infection of plant diseases by classifying plant photos |
CN110796168A (zh) * | 2019-09-26 | 2020-02-14 | 江苏大学 | 一种基于改进YOLOv3的车辆检测方法 |
CN110766098A (zh) * | 2019-11-07 | 2020-02-07 | 中国石油大学(华东) | 基于改进YOLOv3的交通场景小目标检测方法 |
CN111291637A (zh) * | 2020-01-19 | 2020-06-16 | 中国科学院上海微系统与信息技术研究所 | 一种基于卷积神经网络的人脸检测方法、装置及设备 |
Non-Patent Citations (4)
Title |
---|
Detecting Citrus in Orchard Environment by Using Improved YOLOv4;Wenkang Chen 等;《Scientific Programming》;20201125;第2020卷;第1-13页 * |
基于改进YOLOv3-LITE轻量级神经网络的柑橘识别方法;吕石磊;《农业工程学报》;20190908;第35卷(第17期);第205-214页 * |
基于改进YOLOv4的果园柑橘检测方法研究;陈文康 等;《广西师范大学学报(自然科学版)》;20210925;第39卷(第5期);第134-146页 * |
改进的YOLO V3算法及其在小目标检测中的应用;鞠默然 等;《光学学报》;20190402;第39卷(第7期);第253-260页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111709489A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111709489B (zh) | 一种基于改进YOLOv4的柑橘识别方法 | |
CN107016405B (zh) | 一种基于分级预测卷积神经网络的害虫图像分类方法 | |
CN110569786B (zh) | 一种基于无人机数据采集的果树识别和数量监测方法及系统 | |
CN109344699A (zh) | 基于分层深度卷积神经网络的冬枣病害识别方法 | |
CN113191334B (zh) | 一种基于改进CenterNet的植物冠层密集叶片计数方法 | |
CN112990103B (zh) | 一种基于机器视觉的串采二次定位方法 | |
CN112084977B (zh) | 一种融合图像和时间特征的苹果物候期自动识别方法 | |
CN110472598A (zh) | 基于区域特征的svm机采棉花含杂图像分割方法及系统 | |
CN115661544B (zh) | 基于N-MobileNetXt的菠菜幼苗水分胁迫等级分类系统及方法 | |
CN114818909A (zh) | 一种基于作物长势特征的杂草检测方法和装置 | |
CN112836623A (zh) | 设施番茄农事决策辅助方法及装置 | |
Zhao et al. | Transient multi-indicator detection for seedling sorting in high-speed transplanting based on a lightweight model | |
WO2022104867A1 (zh) | 目标物的特征检测方法和装置 | |
CN116740337A (zh) | 一种红花采摘点识别定位方法及采摘系统 | |
CN112329697B (zh) | 一种基于改进YOLOv3的树上果实识别方法 | |
CN116310338A (zh) | 一种基于实例和语义分割的单株荔枝红叶梢分割方法 | |
CN114700941B (zh) | 一种基于双目视觉的草莓采摘方法、机器人系统 | |
CN115862003A (zh) | 一种基于轻量化YOLOv5的在体苹果目标检测和分级方法 | |
Han et al. | Tomatoes maturity detection approach based on YOLOv5 and attention mechanisms | |
CN113837039B (zh) | 一种基于卷积神经网络的果实生长形态视觉辨识方法 | |
CN112991312B (zh) | 一种基于ai深度学习的梨品种苗木鉴别方法 | |
CN114916336B (zh) | 一种基于棉花顶叶成熟期分类识别的化学打顶方法 | |
CN115424247B (zh) | 一种采用cbam与八度卷积改进yolov5的温室番茄识别与检测方法 | |
CN116524344A (zh) | 一种基于rgb-d信息融合的番茄串采摘点检测方法 | |
Megantara et al. | Lettuce Watch: Image-Driven Plant Condition Analysis Using CNN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220408 |