基于改进的YOLOv8算法在洗碗机餐具识别上的研究
2024-04-01李重重庄伟玮刘静
黄 石 李重重 庄伟玮 刘静
(1.佛山市顺德区美的洗涤电器制造有限公司 佛山 528311;2.广东中创智家科学研究有限公司 广州 510663;3.中国电器科学研究院股份有限公司 广州 510663)
引言
近年来,智能家居相关技术发展迅速为家用电器的智能化提供了强大的技术支撑。在这个背景下,将高阶的物体图像识别算法应用于智能家居电器也变得越来越可行和有意义[1]。随着洗碗机在国内的普及度日益增高,洗碗机的智能化需求也水涨船高,尤其对于洗碗机中餐具的识别也迫在眉睫,实际上通过精确识别餐具的类型、大小、形状和污渍程度,智能洗碗机可以调整清洗程序,更高效和更节能实现对餐具清洁和和呵护。例如,对于大型或深度餐具,机器可以调整水量和清洁时间,而对于特殊材质的餐具,如红酒杯,机器则可以使用更温和的水流以避免损害。本算法分析的餐具类型主要包括:勺子、叉子、杯子和盘子,材质均为不锈钢,通过整合YOLOv8这样的先进物体识别技术,智能洗碗机能够更智能地处理家庭清洁任务,从而节约资源并提供更定制化的清洁方案。此研究的重要性在于,它不仅展示了智能技术在日常生活中的应用潜力,而且提供了一种改善家庭能源效率和提升用户体验的方式。本文的主要突破主要集中在两个方面。
首先,本文采用了Channel-Wise Mish模块。现有的算法通常忽视了图像像素分布直方图中明显的非线性特征,而这些非线性特征对分类精度具有重要影响。我们提出的Channel-wise Mish模块通过使用Mish激活函数替代传统的CBS(Channel-wise Batch Normalization with Sigmoid)模块,有效地处理这些非线性特征。Mish激活函数因其在解决梯度消失问题方面的有效性而广受赞誉,特别是在训练更复杂的深度模型时,而且Mish模块在处理与灯光和环境因素相关的非线性特征时具有增强的能力。
其次,本文的模型具有缓解常见的梯度消失问题的能力。梯度消失问题经常在深度学习模型的训练过程中出现,它降低了学习速度,妨碍了模型的准确性和计算性能。我们在该研究中实施的优化模型巧妙地避免了这个问题,成功地在给定的训练周期内显著提高了检测准确率。值得注意的是,该模型实现了91 %的准确率,比现有模型实现的最高检测准确率提高了3 %。这种性能提升证明了该模型在实践应用中的潜力。因此,我们提出的模型不仅能够提高餐具检测的准确性,还为未来在这一领域的研究提供了新的方法。此外,这项研究也可能为智能家居领域其他应用提供思路,如智能烹饪设备、自动化垃圾分类等。
1 方法介绍
1.1 YOLOv8介绍
YOLO(You Only Look Once)是一种深度学习算法,用于实时物体识别[2,3]。它的核心特点是能够在单次浏览图像时检测出多个物体,这使得它在需要快速且准确识别的场景中非常有用。YOLOv8是此系列模型的最新版本,相比之前的版本,它具有更高的准确度和更快的处理速度的特点[4,5],适用于目标检测和跟踪、实例分割、图像分类和姿势估计等各种任务[6-8]。YOLOv8的主干网络是Darknet-53,受到VGG的启发,在池化操作后将通道数增加一倍。此外,它在3×3卷积核之间放置1×1卷积核来压缩特征,并使用全局平均池化。批量归一化层用于稳定模型训练,加速收敛,并提供正则化。CSP模块是一种特征提取模块,旨在通过利用跨阶段连接来增强特征提取的效果。它允许多个阶段之间共享特征,并通过部分连接来提高参数和计算效率。YOLOv8模型的颈部将原始特征与多个卷积操作处理的特征融合,从而增强了特征提取能力。YOLOv8的主干网络和颈部部分受到YOLO v7 ELAN的设计原则的启发,并引入了C2F模块。C2F模块旨在减少参数数量同时保持丰富的梯度流信息。在训练的最后10个时期,禁用了Mosaic数据增强,以提高准确性。YOLOv8的头部部分将分类和检测头部分离。分类分支继续使用二元交叉熵(BCE)损失,而回归分支则采用分布焦点损失。这种损失函数有效地解决了类别不平衡和难以分类的样本的问题。就正负样本分配策略而言,YOLOv8从YOLOv5使用的静态分配策略中偏离。相反,它采用了TOOD算法中的任务对齐分配器。这个分配器根据分类和回归任务的加权分数选择正样本。由于YOLOv8算法具有高准确性、快速执行速度和强大的泛化能力,我们选择其作为我们改进的基线方法。改进的主要方面集中在改善YOLOv8算法中的CBS模块。该模块在原始YOLOv8中用于特征提取,我们对其进行了优化以更好地适应餐具数据集的特点。我们观察到餐具数据集中的目标具有明显的非线性特征,并且它们的真实边界框分布广泛。因此,我们提出了通过增加CBS模块的层数来增强特征提取能力的改进。通过增加层数,我们能够更好地捕捉目标的细节和形状特征,从而提高目标检测的准确性。
1.2 数据集
数据来源于在线的深度学习数据集[9],该数据集包含了四种基本厨房餐具的RGB图像,每个实例均为512×512×3,且均与一个标签相关联。其中,四种餐具的训练集各40张图片,测试集各10张图片,如图1所示。该数据集的数据有两个特征,即中心集中分布及非线性特征。图2展示了数据集中叉子子集的像素值的直方图。可以看到像素在某几个值附近有集中的趋势;而直方图则在不同强度区域展示了多个尖锐的峰值,具有不同的频率和不规则的不对称形状。因此,该数据集具有中心集中分布和非线性的特征,这是因为餐具与背景在颜色和材质上都具有较大的差异。YOLOv8算法模型相对较深,在数据集的训练过程中,当训练迭代次数达到50次时,非线性特征的存在导致反向传播过程中梯度减小,模型难以收敛,无法学习有意义的特征表示。
图1 数据集中的四种基本厨房餐具
图2 餐具数据集像素数据分布
1.3 模型改进
在YOLOv8中,卷积模块的结构由卷积块、归一化块和SiLU激活函数组成见图3。SiLU激活函数逼近于对小或大输入值都是线性的函数。这使得模型能够更快地学习线性关系,在训练的初始阶段加快收敛速度。在使用预训练模型的情况下,YOLOv8算法可以在更少的训练轮次下达到最高的检测准确率。在本文中,我们引入CWM模块改进了YOLOv8算法,以更好地适应不锈钢的餐具。虽然YOLOv8算法的SiLU激活函数在其他数据集上表现良好,在数据集上却存在梯度消失问题。本文通过将其替换为Mish激活函数来解决这个问题。
图3 改进模型的基本架构
在数据集上训练时,YOLOv8算法的MAP50训练结果如图4所示。
图4 MAP50训练结果
在最后10个训练轮次中,YOLOv8算法的MAP开始下降并趋于饱和。鉴于数据集中观察到的非线性特征以及SiLU激活函数在处理梯度饱和方面的性能较差,我们将原算法中的CBS替换为CWM来提升模型性能。此外,对于数据集,我们采用了Mish激活函数,公式(1)如下,其函数图像与SiLU激活函数的对比如图5所示。
图5 Mish激活函数与SiLU激活函数
式中:
x—上一层的输入值。
Mish激活函数在整个输入范围内表现出良好的平滑性,并具有可微的连续性。它有效地避免了训练过程中梯度消失和爆炸的问题。虽然SiLU和Mish激活函数具有类似的形状,但在更深的模型中,Mish在接近零点的地方具有更高的曲率,有助于避免梯度消失问题。与SiLU相比,Mish能够更好地捕捉到输入数据中的复杂非线性关系,这与IP102餐具数据集的特点相吻合。通过更好地处理非线性特征,Mish激活函数使得YOLOv8能够学习深度网络中的复杂特征,从而提高了模型的准确性和泛化能力。训练结果如图6所示。在训练过程中,Mish激活函数在有效性方面表现优于SiLU。Mish训练展现出更平滑的MAP50表现,通过更好地处理非线性特征,增强了算法对检测结果的处理能力。
图6 使用SiLU激活函数和MISH激活函数的训练结果比较
3 结果
对本文使用模型的评估指标如下:
准确率:衡量模型正确检测到的目标在所有被模型检测到的目标中的比例。较高的准确率表示模型的检测更准确。
式中:
TP—正确检测到的目标数量;
FP—代表错误检测到的目标数量。
召回率:衡量了模型正确检测到目标的能力。较高的召回率表示模型能更好地捕捉到目标。
式中:
FP—错误检测到的目标数量;
FN—未正确检测到的目标数量。
AP指标:通过计算不同召回率水平下的平均精度来综合评估模型的性能。它提供了对模型在各种阈值下的整体性能的评估。
MAP50:该指标是通过在交并比(IOU)为0.5的阈值下计算平均精度(AP)来衡量模型在预测物体位置时的性能。它量化了模型在预测的边界框与真实边界框之间的IOU至少为0.5时的精确性。
MAP50-95:通过考虑IOU从0.5到0.95的值来计算平均精度(AP)。这种综合评估考虑了物体检测模型在不同IOU阈值下的性能,并提供了更全面的准确性评估。它测量了模型在多个IOU阈值下的预测的边界框精度,反映了模型在定位与真实边界框之间重叠水平不同的情况下的能力。AP、MAP50和MAP50-95是对目标检测模型性能的综合评估指标。它们考虑了模型在不同召回率、不同IOU阈值下的表现,并提供了模型在定位和精确性方面的整体评估。这些指标对于衡量模型在目标检测任务中的准确性和鲁棒性至关重要。
3.1 训练结果
YOLOv8算法在使用预训练权重时,在60个epochs内达到最佳准确率。在本研究中,提出的改进算法进行了60个epochs的训练,以进行消融实验,并与YOLOv8算法进行了比较。本文提出的改进算法的训练结果如图7及8所示。
图7 模型训练结果
图8 模型训练的PR曲线
3.2 消融研究
消融研究是一种实验方法,其核心在于故意从系统中移除某个组成部分,以评估该部分对系统整体性能的影响。这种方法通过创造一个控制变量的环境,可以精确地理解各个组件的重要性。如果移除某个组件后,系统的性能未受显著影响,这表明该组件在系统中的作用可能并不关键;相反,如果该组件的缺失导致系统性能显著下降,这则表明该组件对于系统的运行是至关重要的。这种方法是理解和优化复杂系统中各部分作用的有效工具。表格1显示了YOLOv8算法在数据集上的训练指标。通过使用预训练模型和用CWM替换CBS模块,本文的方法在更少的训练epochs下取得了更好的结果。性能指标清楚地表明了与基准YOLOv8算法相比,本文提出的增强方法具有明显的有效性。
表1 消融研究
在训练过程中,在将CBS模块替换为CWM后,训练进展如图9所示。当模型深度达到临界点时,SiLU激活函数的准确性改善有限,导致梯度消失问题。通过将其替换为Mish激活函数,模型可以更好地处理数据集中的非线性特征,并更有效地提取目标特征,解决了算法在达到最佳性能时的梯度下降问题。
图9 MAP50在不同激活函数下的结果
3.3 比较实验
在比较实验中,我们选择了FPN,YOLOX,Dynamic R-CNN,SSD300,RefineDet和ExquisiteNet作为基准模型。实验结果如表2所示。我们提出的算法在MAP50和MAP50-95方面具有最佳性能,并且厨房餐具的数据集上,本文的模型在准确性和泛化能力方面比其他模型更高。
表2 对比实验
4 讨论与结论
本文分析了餐具数据集的特点,并使用CWM模块替换了原本的CBS模块。在训练过程中,有效解决了梯度消失的问题,从而更准确地提取与餐具边缘相关的特征,与YOLOv5、FPN和YOLOX算法相比具有较大的改善。Mish激活函数在处理非线性特征方面优于SiLU。在复杂的背景环境下,如图9所示,它的检测得分和最高MAP50准确率优于未改进的算法。 此外,本文仍然有一些可以改进和探索的方向。首先,本文的数据集包含有反光、投影的背景,所提出的算法在应对这些情景时性能相对较差。因此,未来的工作可以集中在改善具有反光及投影特征的背景分辨提取和检测能力上。其次,在推理速度方面,本文提出的模型存在一些限制,因为它具有较大的参数数量。未来可以尝试设计轻量级结构,以提高算法的推理速度。