基于目标检测的复杂环境下茶叶嫩芽检测方法
未命名
09-16
阅读:111
评论:0

1.本技术属于计算机视觉技术领域,具体涉及一种基于目标检测的复杂环境下茶叶嫩芽检测方法。
背景技术:
2.茶作为一种健康的绿色饮品已经流行了很长时间,随着茶叶产量的逐年增加,市场需求给劳动力带来了巨大的挑战。目前,茶芽采摘方式主要包括人工采摘和机械采摘。对于人工采摘,由于茶园种植面积大、茶叶生长期短,存在劳动强度大、成本高和效率低等问题;对于机械采摘,它可以实现大规模采摘,提高采摘效率和降低成本,但是通常采用“一刀切”的采摘方式,不能准确识别嫩芽和老叶,给后期分类工作带来很大负担。因此,为了实现视觉引导下的智能采摘,探索如何准确、快速地检测茶芽是首要任务。
3.目前基于计算机视觉系统的茶叶嫩芽识别方法主要包括传统的图像处理方法和基于深度学习的方法。传统的图像处理方法主要根据茶叶嫩芽的颜色特征、形状特征和纹理特征等进行茶叶嫩芽的识别。传统的图像处理方法对于自然环境,如光照、视角等因素要求较高。基于深度学习的茶叶嫩芽检测方法,数据集大多采集于室内环境或简单的背景,很少在复杂的茶园环境中制作而成。
技术实现要素:
4.本发明的主要目的在于克服现有技术的缺点与不足,提出一种基于目标检测的复杂环境下茶叶嫩芽检测方法。
5.为了达到上述目的,本发明采用以下技术方案:
6.一种基于目标检测的复杂环境下茶叶嫩芽检测方法,包括:
7.收集茶园内茶叶嫩芽原始图像,并对原始图像中的茶叶嫩芽的一芽一叶和一芽两叶进行人工标注,构建得到茶叶嫩芽数据集;
8.对取得的茶叶嫩芽数据集的标注数据进行归一化处理,转换成改进目标检测模型yolov3-spp可用的训练格式;
9.在归一化后的茶叶嫩芽数据集上进行k-means聚类算法初始化锚框;
10.采用聚类得到的初始化锚框,训练所述改进的目标检测模型yolov3-spp,所述改进的目标检测模型yolov3-spp在原先三个预测层的基础上加上一个浅层预测层,并在每一个预测层的颈部中融入坐标注意力机制,在预测头中嵌入transformer编码器;
11.采用训练好的改进目标检测模型yolov3-spp对待检测茶叶嫩芽图像进行检测,得到检测结果。
12.进一步的,所述在归一化后的茶叶嫩芽数据集上进行k-means聚类算法初始化锚框,包括:
13.s3.1、根据yolov3-spp的锚框要求确定k个簇;
14.s3.2、在茶叶嫩芽数据集中选取k个样本作为初始簇心;
15.s3.3、根据茶叶嫩芽数据集中每个样本离这k个簇心的欧氏距离,将这些样本划分至离它们最近的簇心中,以每个簇的样本的均值作为新的样本中心;
16.s3.4、重复步骤s3.2至s3.3更新簇心,直至簇心不变为止,停止聚类,获得属于茶叶嫩芽样本的锚框。
17.进一步的,所述坐标注意力机制融入到每个预测层颈部的卷积之前。
18.进一步的,所述transformer编码器嵌入到每个预测头中的卷积之前,从第一层到第四层嵌入的个数依次为3、2、1和1个。
19.本技术提出的一种基于目标检测的复杂环境下茶叶嫩芽检测方法,与现有技术相比,具有如下优点和有益效果:
20.1、考虑到了不同的自然环境完成了数据集的制作,提升了模型的鲁棒性和泛化能力。
21.2、对yolov3-spp网络进行改进,在yolov3-spp的neck中加入坐标注意力机制,在原始三个预测层的基础上加上一个浅层预测层,并将transformer encoder block嵌入到预测头中形成transformer prediction heads,提高了在茶园复杂自然环境下对茶叶嫩芽的识别表现。
22.3、采用的神经网络具有特征学习的能力,无需人为设计茶叶嫩芽一芽一叶和一芽两叶的特征,相比于传统的技术具有更高的鲁棒性和准确性。
附图说明
23.图1为本技术基于目标检测的复杂环境下茶叶嫩芽检测方法流程图;
24.图2为改进后的目标检测模型的结构图;
25.图3为坐标注意力机制结构图;
26.图4为transformer编码器结构图。
具体实施方式
27.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本技术,并不用于限定本技术。
28.在一个实施例中,如图1所示,提出了一种基于目标检测的复杂环境下茶叶嫩芽检测方法,包括:
29.s1、收集茶园内茶叶嫩芽原始图像,并对原始图像中的茶叶嫩芽的一芽一叶和一芽两叶进行人工标注,构建得到茶叶嫩芽数据集。
30.在本实施例中,将茶叶嫩芽分为一芽一叶和一芽两叶,使用相机在茶叶嫩芽附近以45
°‑
90
°
等各种不同角度拍摄图像,构建原始数据集;此外,为了扩大样本图像的多样性,在各种天气情况下(晴天、阴天和雨天)和不同时间点(上午8点至晚上8点)收集图像,充分考虑了茶叶机器人工作的不同环境干扰因素。最终,共采集到3932幅图像。
31.使用图像标注软件labelimg软件对原始图像的茶叶嫩芽进行标注,以一芽一叶和一芽两叶为标注依据,一个茶叶嫩芽的标注信息包括图像的名称、图像的尺寸、目标类别、左上角和右下角的坐标信息。坐标信息为[x1,y1.x2,y2],其中左上角的坐标为x1和y1,右
下角的坐标为x2和y2,类别名为tea(一芽一叶和一芽两叶为一个类别,都是tea),最后以xml的格式存储标注后的茶叶嫩芽图像。
[0032]
在标注过程中会有很多休眠期和萌芽期的干扰因素,需要分辨清楚,以标注生长健壮适合采摘的一芽一叶和一芽两叶为主。由于茶叶在生长过程中较为杂乱无序,因此茶叶嫩芽之间会有相互遮挡的情况存在,在标注过程中将遮挡超过70%的茶叶嫩芽忽略不标注。
[0033]
s2、对取得的茶叶嫩芽数据集的标注数据进行归一化处理,转换成改进目标检测模型yolov3-spp可用的训练格式。
[0034]
在本实施例中,对标注数据归一化处理,即将标注数据除以图像的宽度和高度,以将最终的数据控制在0~1之间,便于训练样本数据的快速读取,同时满足多尺度训练的要求。
[0035][0036][0037]
其中,(x
max
,x
min
,y
max
,y
min
)表示原始样本左上角和右下角的坐标中的最大值和最小值,(width,height)表示图片尺寸,(x,y,w,h)表示归一化后的标注信息,(x,y)为目标的中心点坐标,(w,h)为目标的宽和高;
[0038]
归一化后的数据样本中,每张图片的每个目标的标注信息均包含5个参数(x,y,w,h,class_id),其中,class_id为目标类别编号。最后将xml格式转换成改进yolov3-spp可用的voc格式。
[0039]
s3、在归一化后的茶叶嫩芽数据集上进行k-means聚类算法初始化锚框。
[0040]
本步骤,在归一化后的茶叶嫩芽数据集上进行k-means聚类算法初始化锚框,用以预测边界框的坐标,具体为:
[0041]
yolov3-spp采用的锚框是通过对coco数据集聚类而来,使得每个特征图包含3个不同尺度的锚框,锚框的大小会影响模型的收敛速度以及预测的准确性。本实施例中制作的茶叶嫩芽数据集中茶芽目标主要以中小目标为主,而coco数据集中的目标尺寸比较多样,所以yolov3-spp初始的锚框并不适用于茶叶嫩芽的检测,因此采用k-means聚类算法分析获取茶叶嫩芽数据集的锚框尺寸。其中,采用k-means对锚框(anchor)进行聚类分析的步骤为:
[0042]
s3.1、根据yolov3-spp的锚框要求确定k个簇;
[0043]
s3.2、在茶叶嫩芽数据集中选取k个样本作为初始簇心;
[0044]
s3.3、根据茶叶嫩芽数据集中每个样本离这k个簇心的欧氏距离,将这些样本划分至离它们最近的簇心中,以每个簇的样本的均值作为新的样本中心;
[0045]
s3.4、重复步骤s3.2至s3.3更新簇心,直至簇心不变为止,停止聚类,获得属于茶叶嫩芽样本的锚框。
[0046]
由于yolov3-spp的锚框要求是12个,因此上述k等于12。在归一化后的茶叶嫩芽数据集上进行k-means聚类算法得到12个锚框,从小到大依次排列,将其均匀分布于4种尺度的特征图上,前3个锚框对应于160
×
160的特征图(对应图2中第四层),中间的3个锚框对应
于80
×
80的特征图(对应图2中第三层),接下来的3个锚框对应于40
×
40的特征图(对应图2中第二层),最后3个锚框对应于20
×
20的特征图(对应图2中第一层)。其中,得到12个聚类中心的参数值分别为[11,14][9,20][13,18][11,26][18,18][15,23][15,33][19,28][24,23][21,39][27,32][33,47],锚框的宽高维度对应于聚类中心点的目标框的宽高,数据单位为像素。
[0047]
s4、采用聚类得到的初始化锚框,训练所述改进的目标检测模型yolov3-spp,所述改进的目标检测模型yolov3-spp在原先三个预测层的基础上加上一个浅层预测层,并在每一个预测层的颈部中融入坐标注意力机制,在预测头中嵌入transformer编码器。
[0048]
本技术对目标检测模型yolov3-spp进行改进,如图2所示,改进后的模型由骨干网络(backbone)、颈部(neck)和transformer预测头(prediction heads)三个部分组成。在yolov3-spp原始三个预测层(第1,2,3层)的基础上加上一个浅层预测层(第4层),在neck中加入坐标注意力机制,并将transformer编码器(transformer encoder block)嵌入到预测头中形成transformer预测头(transformer prediction heads)。
[0049]
其中,backbone采用darknet53作为特征提取网络,输入图像依次经过conv2d和五个残差网络,残差网络的具体个数分别为1、2、8、8、4。信道由1
×
1和3
×
3卷积层压缩,分别对输入图像进行2倍、4倍、8倍、16倍和32倍下采样,经下采样之后图像的尺寸分别是320
×
320,160
×
160,80
×
80,40
×
40,20
×
20。
[0050]
neck部分由空间金字塔池化spp、坐标注意力机制(coordinate attention,ca)和特征层融合结构组成。
[0051]
spp包含3个最大池化层,其中的池化核大小分别为5
×
5、9
×
9、13
×
13;池化核大小为5
×
5的最大池化层padding为2,步长为1,池化核大小为9
×
9的最大池化层padding为4,步长为1;池化核大小为13
×
13的最大池化层padding为6,步长为1。由于spp模块中的池化核的大小接近于需要池化的网络输出特征图的大小,所以特征图在进行了不同尺度的特征融合之后可以丰富特征图的特征表达能力,从而提高检测的精度。
[0052]
本实施例在neck部分的每个预测层中的卷积(图2中的c1)之前添加坐标注意力机制,卷积c1包括5次conv2d。坐标注意力机制(coordinate attention,ca)如图3所示,对于输入图像,首先沿着两个空间方向进行特征聚合,返回一对方向感知注意力图,级联上述生成的两个方向感知注意力图,使用一个共享的1
×
1的卷积进行变换,接着再通过batchnorm+non-linear来编码两个方向的空间信息,然后分离两个方向的向量,通过1
×
1卷积重新调整两个方向特征向量的通道数,最后将两个特征图分别经过sigmoid激活函数归一化到0~1范围之间,从而获得输入特征层各通道的权值,最后将此权值和输入特征层相乘。加入注意力机制后可以弥补由特征提取网络带来的信息损失,提高茶叶嫩芽的识别效果。
[0053]
特征融合结构表示对backbone的第五个残差块的输出首先经过spp模块和ca模块,其输出结果进行5次conv2d卷积(c1),经过该操作之后的结果有两个去向,第一个去向是作为prediction heads部分的20
×
20特征层的输入,用于检测大目标,第二个去向是用于上采样;上采样后的结果与第四个残差块的输出进行拼接,拼接过后的结果先经过ca模块,之后有两个去向,第一个去向是对输出结果进行5次conv2d卷积(c1),并作为prediction heads部分的40
×
40特征层的输入,用于检测中等目标,第二个去向是上采样;上采样之后的结果与第三个残差块的输出进行拼接,拼接过后的结果先经过ca模块,之后
有两个去向,第一个去向是对输出结果进行5次conv2d卷积(c1),并作为prediction heads部分的80
×
80特征层的输入,第二个去向是上采样;上采样之后的结果与第二个残差块的输出进行拼接,先经过ca模块,之后对输出结果进行5次conv2d卷积(c1),并作为prediction heads部分的160
×
160特征层的输入。
[0054]
茶叶嫩芽属于小目标检测,在原始的三个检测层的基础上加上一个浅层的检测层(图2中第四层),有利于增强网络对于小目标茶芽的检测,从而提高模型的识别精度。
[0055]
在一个具体的实施例中,本实施例预测头,将transformer编码器(trans)添加20
×
20,40
×
40,80
×
80,160
×
160的四个尺度的预测头中形成transformer预测头,位于预测头中卷积(图2中的c2)之前,添加的个数分别是3,2,1,1,用于检测密集场景下的密集小目标茶叶嫩芽。transformer编码器如图4所示,主要由多头注意力层和前馈神经网络(mlp)两个部分组成。输入的图像首先经过多头注意力层,帮助当前节点关注当前像素并获取上下文语义,再经过mlp层,mlp是一个完全连接的层,这两层之间通过残差连接。transformer encoder block不仅可以收集丰富的上下文信息和全局信息,还可以增强收集不同局部数据的能力,并利用自注意机制挖掘特征表达的潜力。
[0056]
训练所述改进后的目标检测模型yolov3-spp时,先设定训练参数例如设置实验优化器为sgd,批次大小为16,总迭代次数为300个epoch,学习率采用余弦退火算法,最大学习率为1
×
e-2,最小值为最大值的0.01倍。然后训练模型并保存最优模型,具体包括:
[0057]
输入图片表示为一个大小为n
×m×
3的张量,其中n和m表示图片的宽度和高度,单位为像素,3表示rgb三通道数;
[0058]
首先将不同大小的图像自动调整为640
×
640的固定尺寸,再划分为20
×
20的网格,由目标中心点所在的网格负责该目标的检测;每个网格将预测覆盖在该网格上的3个边界框以及这些边界框的置信度,每个边界框包含6个预测量:x,y,w,h,confidence和class_id,其中(x,y)表示预测的边界框的中心与网格边界的相对值,(w,h)表示预测边界框相对于整张图片宽度和高度的比值,confidence表示置信度,用以剔除低于阈值的边界框,class_id表示目标类别编号;每个边界框的预测信息包含边界框的坐标、宽度和高度,边界框坐标计算公式如下:
[0059]
bx=σ(tx)+cx,by=σ(ty)+cy
[0060][0061]
其中,(bx,by,bw,bh)表示预测的边界框中心坐标及宽和高;(tx,ty,tw,th)表示网络学习的目标,(cx,cy)是网格的坐标偏移量,(pw,ph)是预设的锚框维度。
[0062]
之后,需要预测边界框的置信度,依据标注的目标,为每个网格预测3个边界框,每个边界框包含6个预测量,因此通道数为3
×
(4+1+1)=18,输出的4种尺度特征图分别为20
×
20
×
18、40
×
40
×
18、80
×
80
×
18,160
×
160
×
18,单位为像素;
[0063]
完成边界框的置信度预测后,再对预定义目标类别的得分进行预测,为提高小目标的检测效果,采用多尺度预测的思想,分别用20
×
20、40
×
40、80
×
80,160
×
160这4种不同尺度的特征图进行预测,单位为像素。
[0064]
关于网络模型的训练,是本领域比较成熟的技术,聚类得到的锚框应用在每一个预测层中,这里不再赘述。
[0065]
s5、采用训练好的改进目标检测模型yolov3-spp对待检测茶叶嫩芽图像进行检
测,得到检测结果。
[0066]
在训练好网络模型之后,将待检测的图像输入保存好的最优模型中进行前向推理,再经soft-nms后处理得出待检测的图像中茶叶嫩芽,完成对茶叶嫩芽的检测。具体的,使用图像采集设备采集茶园中茶叶嫩芽的图像,将待检测的图像输入保存好的模型中进行前向推理,得出n个候选结果。在检测过程中会出现候选结果往往包含同一目标重叠的现象,因此采用soft-nms的方法进行处理,非极大值选择的阈值为0.5可以使最后的识别效果最佳。
[0067]
soft-nms采用的公式为:
[0068][0069]
其中,表示最终的预测框集合,bi表示检测框集b的子集,表示检测的最大得分,si表示第i个预测框的得分。
[0070]
根据重叠部分的大小,为相邻检测框设置衰减函数,而不是将其分值完全设置为0。即如果两个检测框重叠部分最多,会给出很低的分数,不会直接设置分数为0;如果两个检测框存在少量重叠,不会对原来的检测分数产生很大影响。
[0071]
本技术使用数据增强算法扩充茶叶嫩芽原始数据集数据,再改进现有的目标检测模型yolov3-spp,添加transformer encoder block,添加一个预测层部分,添加注意力机制部分和k-means重新聚类anchor部分,以适用于茶园复杂环境下的茶叶嫩芽数据集,并设定训练参数对网络进行迭代训练,从而实现对复杂茶园环境下的茶叶嫩芽的准确检测。
[0072]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
技术特征:
1.一种基于目标检测的复杂环境下茶叶嫩芽检测方法,其特征在于,所述基于目标检测的复杂环境下茶叶嫩芽检测方法,包括:收集茶园内茶叶嫩芽原始图像,并对原始图像中的茶叶嫩芽的一芽一叶和一芽两叶进行人工标注,构建得到茶叶嫩芽数据集;对取得的茶叶嫩芽数据集的标注数据进行归一化处理,转换成改进目标检测模型yolov3-spp可用的训练格式;在归一化后的茶叶嫩芽数据集上进行k-means聚类算法初始化锚框;采用聚类得到的初始化锚框,训练所述改进的目标检测模型yolov3-spp,所述改进的目标检测模型yolov3-spp在原先三个预测层的基础上加上一个浅层预测层,并在每一个预测层的颈部中融入坐标注意力机制,在预测头中嵌入transformer编码器;采用训练好的改进目标检测模型yolov3-spp对待检测茶叶嫩芽图像进行检测,得到检测结果。2.根据权利要求1所述的基于目标检测的复杂环境下茶叶嫩芽检测方法,其特征在于,所述在归一化后的茶叶嫩芽数据集上进行k-means聚类算法初始化锚框,包括:s3.1、根据yolov3-spp的锚框要求确定k个簇;s3.2、在茶叶嫩芽数据集中选取k个样本作为初始簇心;s3.3、根据茶叶嫩芽数据集中每个样本离这k个簇心的欧氏距离,将这些样本划分至离它们最近的簇心中,以每个簇的样本的均值作为新的样本中心;s3.4、重复步骤s3.2至s3.3更新簇心,直至簇心不变为止,停止聚类,获得属于茶叶嫩芽样本的锚框。3.根据权利要求1所述的基于目标检测的复杂环境下茶叶嫩芽检测方法,其特征在于,所述坐标注意力机制融入到每个预测层颈部的卷积之前。4.根据权利要求1所述的基于目标检测的复杂环境下茶叶嫩芽检测方法,其特征在于,所述transformer编码器嵌入到每个预测头中的卷积之前,从第一层到第四层嵌入的个数依次为3、2、1和1个。
技术总结
本发明公开了一种基于目标检测的复杂环境下茶叶嫩芽检测方法,对YOLOv3-SPP网络进行改进,在YOLOv3-SPP的颈部中加入坐标注意力机制,在原始三个预测层的基础上加上一个浅层预测层,并将Transformer编码器嵌入到预测头中形成Transformer预测头,提高了在茶园复杂自然环境下对茶叶嫩芽的识别表现。在归一化后的茶叶嫩芽数据集上进行K-means聚类算法初始化锚框,提升了模型的鲁棒性和泛化能力。本发明采用的神经网络具有特征学习的能力,无需人为设计茶叶嫩芽一芽一叶和一芽两叶的特征,相比于传统的技术具有更高的鲁棒性和准确性。于传统的技术具有更高的鲁棒性和准确性。于传统的技术具有更高的鲁棒性和准确性。
技术研发人员:桂江生 徐慧蓉 童俊华 陈建能
受保护的技术使用者:浙江理工大学缙云研究院有限公司
技术研发日:2023.04.12
技术公布日:2023/9/14
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/