石洪康 李林波 祝明辉 陈义安 马 勇* 张剑飞
(1.四川省农业科学院蚕业研究所,四川 南充 637000;2.四川省农业科学院特种经济动植物研究所,四川 南充 637000))
栽桑养蚕在我国具有悠久的历史,奠定了举世瞩目的丝绸之路。养殖过程中,受病害、营蚕工具、气候环境等因素的影响,家蚕结茧的质量会有所不同。常见的蚕茧种类包括上车茧、黄斑茧、柴印茧和畸形茧等。缫丝前需要对蚕茧进行分选,筛除劣质茧,确保缫丝的效率和生丝的质量。现有的蚕茧分选方法主要依赖于手工操作,效率较低,不利于蚕桑丝绸业的转型发展。
近年来,研究人员将深度学习技术广泛地应用在蚕桑丝绸领域,取得了许多显著的成果。石洪康等提出了基于卷积神经网络的家蚕品种[1-2]、常见病害[3-4]、生长阶段[5]的识别方法,为智能化养殖装备研发奠定基础。吴建梅等[6]提出了基于卷积神经网络的家蚕农药中毒识别模型。Guo 等[7]提出基于图像修复技术的蚕蛹雌雄识别方法。于业达等[8]提出基于卷积神经网络的蚕蛹性别鉴定方法。张印辉等[9]提出基于目标检测的下车茧检测模型及系统。何锐敏等[10]研究了人工饲料养殖环境下的家蚕计数方法。任浩等[11]开发了基于深度学习的桑叶枝干检测系统。本文聚焦于蚕茧的智能分选工作,根据不同蚕茧种类在视觉上的显著区别,以常见的上车茧、黄斑茧、畸形茧和柴印茧为识别对象,结合深度学习在视觉领域展现的优异性能,提出基于深度学习的蚕茧种类识别方法,可为研发智能化的蚕茧分选装备提供参考。
数据集对于深度学习模型的训练十分关键,为使训练的模型具有较强的识别能力,本文在实际环境下采集蚕茧图像并制作出数据集。采集时间为2023 年9 月25 日,地点位于四川省南充市嘉陵区的养殖基地。采集图像时,将蚕茧平铺在传送带上,摄像头固定在传送带上方,竖直向下进行拍摄。采集的原始图像如图1 所示,每张图像中的蚕茧数量约为10~20 粒,并同时包含多种类别的蚕茧。共采集图像2000 张,约包含3.2 万粒蚕茧。
图1 采集的原始图像(部分)
训练深度学习模型需预先对图像进行标注,使用标注工具LabelImg 在图像中标注出每粒蚕茧的类别,标注界面如图2 所示。使用每粒蚕茧在图像中的外接矩形表示其位置,该位置信息可用于后续智能分选设备的目标定位。标注的蚕茧种类包括上车茧、畸形茧、黄斑茧和柴印茧。标注完成后,采用随机挑选图像的方式,数量按照6:2:2 的比例,将全部图像划分为训练集、验证集和测试集。
图2 数据标注界面
常见的深度学习模型包括图像分类、语义分割和目标检测等。为便于后续研发蚕茧智能分选设备时,提供不同种类蚕茧的位置和类别信息,本研究采用目标检测模型开展蚕茧种类分选。目标检测是图像分类的延伸,不仅可以预测出每个对象在图中的位置,还可以识别出每个对象的类别。在自动驾驶、智能导航和工业检测等领域广泛应用。按照检测流程,目标检测网络可以分为单步检测和双步检测。以往通常认为单步检测的效率更高,而双步检测在精度上的优势更加明显。但随着研究人员不断地努力,单步检测网络的检测精度已能够和双步网络相媲美。考虑到在实际环境下,蚕茧分选的工作量较大,分选效率十分关键,因此,本文采用单步检测模型开展蚕茧分选研究。
选择的具体模型是YOLO 系列网络[12],是单步检测原理中的代表性方法。它将目标检测任务转换成回归预测,依赖纯卷积运算完成图像特征提取,具备端到端的识别能力,并能够同时兼顾精度和效率,自发布起就广泛受到研究人员的青睐。本研究采用YOLO v5 训练识别模型,其结构如图3 所示,结构上主要包括CSPNet 主干网络,PANet 特征融合网络,以及3 个维度的检测头(YOLO head)。
图3 YOLO v5 的网络结构图
图3 中,“Focus” 代表对图像进行间隔像素取样,“CBL”代表依次进行卷积、归一化和激活,“CSP”代表特征提取块。“SPP”代表SPP 模块,“Ups” 代表上采样,“Concat” 代表特征拼接,“Conv”代表1×1 的卷积运算,“NMS”代表非极大值抑制。“640×640×3”等代表图像或特征图的维度。
YOLO v5 的运算流程是:对于尺寸为640×640 像素的输入图像,在主干网络中,先使用Focus 运算间隔取样以丰富图像语义信息,并使用顺序堆叠的“CBL”和“CSP”提取图像特征,其中“CBL”还起到下采样的作用。在主干网络最后一次“CBL”和“CSP”模块之间嵌入了“SPP”模块,主要用于增加网络的感受野。经过主干网络的计算后,会得到维度分别为80×80、40×40 和20×20的3 个有效特征层,并将其作为特征融合网络“PANet”的输入,在融合网络中进行一系列的上采样和下采样运算实现不同分辨率特征图的融合,以此增强网络的表达能力。经过“PANet”运算后的特征,在“YOLO head”中分别使用1 次1×1的卷积运算后可输出网络的识别结果。对预测结构进行置信度筛选和“NMS”非极大值抑制后可得到最终的预测结果。
试验的硬件设备为DELL Precision 5820 工作站,处理器为酷睿i7-9800X,显卡是RTX 2080Ti,具有11G 显存,运算平台为CUDA-10.0。操作系统为Windows10 64 位专业版。编程语言为Python3.7,程序开发环境为VS Code,深度学习框架为Pytorch。网络训练的超参数包括:最小批量化为8,迭代次数为300 次,边界框回归损失函数为GIoU,优化器为Adam,初始学习率为0.001,并使用余弦下降动态调整学习率。使用训练集和验证集训练模型,训练完成后,使用在验证集上达到最佳效果的权重进行测试。使用Recall、Precision、F1-score、AP 和mAP 作为评价指标,其计算公式分别为:
其中,TP (True Positives) 代表蚕茧被检测为正样本,且检测结果正确,FP (False Positives)蚕茧被检测为正样本,但其实际为负样本,即背景。FN (False Negatives) 代表检测结果为负样本(背景),但其实际为正样本(蚕茧)。AP 是Precision 和Recall 围成的区域面积,mAP 是AP的平均值。
为查看模型的收敛效果,将训练时每次迭代的损失值和每10 次迭代的mAP 值记录,结果如图4 所示。从中可得,在训练刚开始时,网络在训练集上的损失值较大,在验证集上的识别精度较低。随着训练不断地深入,网络逐渐趋于稳定,且在150 次迭代后,损失值和mAP 值趋向于平稳,表明模型达到稳定状态。
图4 训练过程中每次迭代的损失值和每十次迭代的mAP 值
表1 是训练模型在测试集上的识别结果,从中可得,黄斑茧和上车茧的识别结果较佳,Recall达到87.77% 和82.77%,Precision 为81.25% 和79.30% ,F1 -score 为0.84 和0.81,AP 达 到89.61%和86.84%。而畸形茧和柴印茧的识别结果较低,其Recall 值较低,表明大量的背景被识别成该两类蚕茧,Precision 值较低,表明这两类蚕茧被遗漏或被识别成其他类别。这两个值较低也造成了其F1-score 和AP 值偏低。
Table 2 Comparison results with YOLO v5 networks
造成识别结果差异较大的原因可能在于:首先,上车茧和黄斑茧的视觉特征较为明显,而畸形茧和柴印茧的特征可能仅在蚕茧的局部位置,提供的有用信息较为微观,在同等条件下模型无法学习到足够的特征。其次,在本研究构建的数据集时,柴印茧和畸形茧的样本数量较少,这也与实际情况相符,类别数量失衡导致模型无法形成较强的鉴别能力。因此,在后续的研究中,应当着重关注畸形茧、柴印茧、薄皮茧等依赖局部特征判别的种类,以及当数据集中样本数量差距较大时的识别问题。
图5 列举了4 张识别效果示意图,从中可以看出,训练的YOLO v5 模型能够对蚕茧实现准确定位,提供的位置信息可为智能化的分选装备提供参考。同时,识别模型还需要进一步提升分类的准确度,以便能更好地应用于实际场景。
图5 识别效果示意
本研究提出一种基于深度学习的蚕茧种类识别方法,在实际环境下采集蚕茧图像,并对图像进行标注,类别包括上车茧、黄斑茧、畸形茧和柴印茧。采用单步检测原理中的代表算法YOLO v5 开展了识别试验,结果表明:深度学习技术可以准确对蚕茧图像进行定位,上车茧和黄斑茧的识别精度较高,畸形茧和柴印茧的识别精度较低。
结合试验结果,在后续的工作中计划着重于聚焦畸形茧和柴印茧的识别研究,进一步采用局部和细粒度特征开展识别,并增加数据集中蚕茧的种类,将薄皮茧、死蛹茧等纳入识别范围。同时,考虑类别不均衡条件下的蚕茧类别的识别问题,以及蚕茧背部特征不可见的问题。以便于训练出适应能力强的识别模型,推进智能化蚕茧分选装备的研发工作。