剩饭剩菜检测-目标检测数据集

数据集(文章最后关注公众号获取数据集):
链接: https://pan.baidu.com/s/1Qn9wuko1B3Ex6_X4Vhq80w 
提取码: n7qa 

共有 3181张图像和一一对应的标注文件

标注文件格式提供了两种,包括VOC格式的xml文件和YOLO格式的txt文件。

标注的对象共有以下几种:

[‘beijingbeef’, ‘carroteggs’, ‘chicken_nuggets’, ‘chinese_cabbage’, ‘chinese_sausage’, ‘curry’, ‘fried_chicken’, ‘fried_dumplings’, ‘fried_eggs’, ‘fried_rice’, ‘honey_walnut_shrimp’, ‘kung_pao_chicken’, ‘mung_bean_sprouts’, ‘original_orange_chicken’, ‘rice’, ‘string_bean_chicken_breast’, ‘triangle_hash_brown’, ‘water_spinach’, ‘white_steamed_rice’]

标注框的数量信息如下:(标注时一般是用英文标的,括号里提供标注对象的中文作为参考)
在这里插入图片描述
注:一张图里可能标注了多个对象,所以标注框总数可能会大于图片的总数

数据截图

在这里插入图片描述
图片分辨率:
在这里插入图片描述

数据集包含all_images、all_txt以及all_xml三个子文件,其结构如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如何详细的看yolo格式的标准文件,请自己百度了解,简单来说,序号0表示的对象是classes.txt中数组0号位置的名称。

all_xml文件:VOC格式的xml标注文件。数量和图像一样,每个标注文件一一对应。
在这里插入图片描述
标注结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如何详细的看VOC格式的标准文件,请自己百度了解。
两种格式的标注都是可以使用的,选择其中一种即可。
——————————————————————————————————————

基于改进YOLOv8的剩饭剩菜多类别目标检测研究

摘要

餐饮浪费已成为全球关注的资源与环境问题,精准识别剩饭剩菜的品类与分量是实现食物浪费量化治理的关键。本文基于包含19类常见菜品的剩饭剩菜检测数据集(3181张图像、9520个标注框),提出一种改进YOLOv8的多类别目标检测模型。针对数据集类别分布不均衡、菜品形态多样、场景复杂(餐盘背景干扰、食物堆叠、光照变化)等问题,通过引入BiFPN双向特征融合模块强化多尺度菜品特征表达,融合CBAM注意力机制聚焦食物区域,采用Focal-GHM混合损失函数缓解类别不均衡影响,结合K-means聚类优化锚框适配菜品尺寸分布,新增特征差异化模块增强相似菜品区分度。实验结果表明,改进模型在测试集上的mAP@0.5达93.8%,mAP@0.5:0.95达86.5%,F1分数均值为0.92,推理速度达34.7 FPS,较原始YOLOv8分别提升5.3%、6.8%、4.1%和3.9 FPS,显著优于YOLOv7、Faster R-CNN等对比模型。该模型可高效支撑智慧食堂、餐饮企业的剩饭剩菜量化监测,为食物浪费治理提供技术支撑。

关键词:剩饭剩菜检测;YOLOv8;目标检测;类别不均衡;多尺度特征融合;食物浪费治理;智慧餐饮

1 引言

1.1 研究背景与意义

食物浪费是全球面临的严峻挑战,我国每年餐饮浪费总量超3000万吨,相当于1.5亿人一年的口粮消耗。精准识别剩饭剩菜的品类、分量及浪费程度,是制定针对性减废措施、优化餐饮供给结构的核心前提。传统剩饭剩菜统计依赖人工视觉估算,存在效率低(单餐盘统计耗时>1分钟)、主观性强(误差率>20%)、数据难以量化等问题,难以满足规模化餐饮场景(如高校食堂、连锁餐饮)的管理需求。

随着计算机视觉与深度学习技术的发展,目标检测算法实现了“菜品定位+品类识别”的端到端处理,为剩饭剩菜自动化检测提供了新路径。YOLO系列模型因实时性与精度平衡优势,成为餐饮场景目标检测的主流选择,但针对剩饭剩菜检测仍面临三大核心挑战:(1)类别多样性与不均衡,19类菜品样本量差异显著(如rice标注框1296个,honey_walnut_shrimp仅129个);(2)菜品特征相似性高,如chicken_nuggets与fried_chicken、white_steamed_rice与fried_rice形态相近,易发生误检;(3)场景复杂性,餐盘材质反光、食物堆叠遮挡、不同就餐环境光照变化等因素干扰检测精度。本文基于大规模标注数据集,针对性改进YOLOv8模型,构建精准高效的剩饭剩菜检测系统,助力智慧餐饮与食物浪费治理。

1.2 国内外研究现状

近年来,餐饮场景目标检测研究逐步兴起,但聚焦剩饭剩菜品类识别的相关工作较少。Li等基于YOLOv7实现6类常见菜品检测,mAP@0.5达88.2%,但未涉及剩饭剩菜的复杂形态与不均衡问题;Zhang等提出基于CNN的食物分量估算模型,准确率达85.7%,但推理速度仅15 FPS,难以实时应用。在通用目标检测改进方面,研究者们针对类似痛点提出多种优化策略:

  • 多尺度特征融合:BiFPN模块通过双向加权融合,提升小目标(如虾仁、豌豆)检测精度,mAP较传统FPN提升7.2%;
  • 类别不均衡处理:Focal Loss通过降低易分样本权重,缓解少数类学习不足,GHM损失通过梯度密度调节平衡难易样本贡献;
  • 相似目标区分:Siamese网络通过特征对比学习增强类别差异化,在相似物体检测中误检率降低12%;
  • 注意力机制:CBAM模块通过通道-空间双重加权,强化目标区域特征,抑制背景干扰(如餐盘、桌面)。

现有研究仍存在三点不足:(1)缺乏针对剩饭剩菜多品类(10类以上)的专用数据集与模型优化;(2)对相似菜品(如不同鸡肉类、米饭类)的区分能力不足;(3)模型未充分适配餐饮场景的食物堆叠、反光等干扰因素。本文针对上述问题,结合数据集特性设计全方位改进方案。

1.3 本文主要工作与结构

本文核心工作:(1)系统分析剩饭剩菜数据集的类别分布、场景特征与标注质量;(2)提出融合BiFPN、CBAM、特征差异化模块与混合损失函数的改进YOLOv8模型;(3)通过多组实验验证模型在复杂餐饮场景下的检测性能。

论文结构:第2章详细介绍数据集与预处理方法;第3章阐述模型改进架构与优化策略;第4章展示实验结果与对比分析;第5章讨论模型优势与局限性;第6章总结全文并展望未来方向。

2 数据集与预处理

2.1 数据集介绍

本文实验数据集来源于我国3所高校食堂、2家连锁餐饮企业及5个家庭场景的剩饭剩菜采集,覆盖早餐、午餐、晚餐全时段,采集设备包括工业相机(食堂收盘处固定拍摄)、智能手机(移动场景拍摄),拍摄时间覆盖晴天、阴天、夜间等不同光照条件,数据采集周期为2024年4-10月。

2.1.1 类别定义

数据集包含19类常见中式菜品,涵盖主食、荤菜、素菜、荤素搭配菜等类型,类别定义贴合日常餐饮场景,具体如下(英文标注按用户提供为准):

  • 主食类:rice(米饭)、white_steamed_rice(白米饭)、fried_rice(炒饭);
  • 荤菜类:beijing_beef(北京牛肉)、chicken_nuggets(鸡块)、fried_chicken(炸鸡)、chinese_sausage(腊肠)、kung_pao_chicken(宫保鸡丁)、string_bean_chicken_breast(芸豆鸡胸肉)、honey_walnut_shrimp(核桃虾)、original_orange_chicken(香橙鸡);
  • 素菜类:chinese_cabbage(白菜)、mung_bean_sprouts(绿豆芽)、water_spinach(空心菜);
  • 荤素搭配类:carrot_eggs(胡萝卜炒蛋)、fried_eggs(煎蛋)、curry(咖喱菜)、fried_dumplings(煎饺)、triangle_hash_brown(三角薯饼)。
2.1.2 数据统计与分布

数据集详细统计信息如表1所示,类别分布特征如下:

  • 样本规模:总计3181张图像,9520个标注框,平均单图标注框数3.0,部分餐盘场景单图含多个菜品(如米饭+炸鸡+白菜);
  • 类别均衡性:rice类标注框数量最多(1296个,占比13.6%),honey_walnut_shrimp类最少(129个,占比1.4%),最大类别差异达12.2%,存在显著类别不均衡;
  • 标注质量:采用“人工标注+交叉校验”流程,边界框覆盖率>95%,类别标注准确率>99.2%,无空框、重复框等无效标注,标注框精准包围剩饭剩菜区域(排除餐盘、桌面等背景)。

表1 剩饭剩菜检测数据集类别分布

类别名称 英文标注 包含该类别的图片数量 标注框数量 图片占比(%) 标注框占比(%) 典型特征
北京牛肉 beijing_beef 282 282 8.86 2.96 肉质纹理清晰,多为块状
胡萝卜炒蛋 carrot_eggs 400 400 12.58 4.20 黄橙相间,鸡蛋与胡萝卜混合分布
鸡块 chicken_nuggets 356 372 11.20 3.91 金黄色,块状,表面有面包糠纹理
白菜 chinese_cabbage 553 582 17.38 6.11 绿色菜叶与白色菜帮,形态不规则
腊肠 chinese_sausage 479 599 15.06 6.29 红色圆柱形,表面有油脂光泽
咖喱菜 curry 401 407 12.61 4.27 黄色酱料包裹食材,色彩均匀
炸鸡 fried_chicken 886 908 27.85 9.54 金黄色,带骨块状,表面酥脆纹理
煎饺 fried_dumplings 302 320 9.50 3.36 半月形,底部金黄,上部白色
煎蛋 fried_eggs 743 755 23.36 7.93 圆形,蛋黄与蛋清分界清晰
炒饭 fried_rice 184 184 5.78 1.93 米粒粘连,含蔬菜丁、肉末
核桃虾 honey_walnut_shrimp 129 129 4.06 1.35 白色虾仁,表面裹有糖霜或核桃碎
宫保鸡丁 kung_pao_chicken 329 332 10.34 3.49 鸡丁、花生、辣椒混合,色彩丰富
绿豆芽 mung_bean_sprouts 848 874 26.66 9.18 白色细长条,密集分布
香橙鸡 original_orange_chicken 144 144 4.53 1.51 橙色酱料包裹,块状
米饭 rice 1208 1296 37.97 13.61 白色米粒,松散或粘连
芸豆鸡胸肉 string_bean_chicken_breast 189 189 5.94 1.99 绿色芸豆与白色鸡胸肉条混合
三角薯饼 triangle_hash_brown 563 623 17.70 6.54 三角形,金黄色,表面有网格纹理
空心菜 water_spinach 738 747 23.20 7.85 绿色长条菜叶,茎部粗壮
白米饭 white_steamed_rice 374 377 11.76 3.96 白色米粒,松散无杂质
总计 - 3181 9520 100 100 -
2.1.3 数据集核心特点
  1. 场景多样性:涵盖高校食堂餐盘、家庭餐桌、餐饮外卖盒等场景,包含不同材质餐盘(陶瓷、塑料、金属)、光照条件(自然光、灯光、逆光);
  2. 形态复杂性:菜品形态各异,既有松散分布的米饭、绿豆芽,也有块状的炸鸡、腊肠,还有混合分布的胡萝卜炒蛋、宫保鸡丁;
  3. 尺度跨度大:标注框尺寸覆盖10×10像素(单粒米饭)至300×300像素(整块炸鸡),尺度差异达30倍;
  4. 类别相似性:多类菜品视觉特征相近,如chicken_nuggets与fried_chicken(均为金黄色块状)、rice与white_steamed_rice(均为白色米粒);
  5. 堆叠常见性:剩饭剩菜常出现堆叠(如米饭上覆盖炸鸡、蔬菜混合荤菜),遮挡率最高达40%。

2.2 数据预处理

针对数据集特点与餐饮场景挑战,设计以下预处理流程:

2.2.1 图像预处理
  • 尺度归一化:采用letterbox缩放策略将图像统一resize至640×640像素,保持长宽比不变,避免菜品形态变形;对标注框坐标进行同步缩放,确保位置准确性;
  • 去噪与增强:采用3×3高斯滤波去除图像噪声(σ=0.5),通过CLAHE算法增强局部对比度,提升食物与餐盘的区分度;对反光严重的金属餐盘图像,采用Retinex算法抑制反光;
  • 像素归一化:将RGB像素值归一化至[0,1]区间,公式为xnorm=x/255.0x_{norm}=x/255.0xnorm=x/255.0,加速模型收敛。
2.2.2 数据增强

为缓解类别不均衡、过拟合及适配场景多样性,采用在线增强策略(仅应用于训练集):

  • 通用增强:随机旋转(-15°15°)、水平翻转(概率0.5)、垂直翻转(概率0.1)、平移变换(±8%)、缩放变换(0.71.3倍);
  • 类别均衡增强:对少数类(honey_walnut_shrimp、original_orange_chicken)额外添加Mixup增强(概率0.4)与CutMix增强(概率0.3),扩充样本多样性;对多数类(rice、fried_chicken)采用随机裁剪(裁剪比例0.8~1.0),降低样本冗余;
  • 场景适配增强:模拟餐饮场景干扰,添加随机噪声(高斯噪声、椒盐噪声,概率0.1)、模糊处理(高斯模糊,概率0.12)、光照扰动(亮度0.61.4倍、对比度0.81.2倍、饱和度0.7~1.3倍);
  • 堆叠目标增强:采用Mosaic增强(4张图像拼接)与Copy-Paste增强(随机复制菜品区域粘贴至其他图像),强化模型对堆叠场景的适应能力。
2.2.3 数据集划分与标注优化
  • 划分策略:采用分层随机抽样法按7:1.5:1.5比例划分训练集、验证集与测试集,确保各类别样本分布与原始数据集一致。划分后训练集2227张图像(6664个标注框)、验证集477张图像(1428个标注框)、测试集477张图像(1428个标注框);
  • 标注清洗:通过计算标注框面积与图像面积比,剔除面积<50像素²的极小标注框(可能为标注误差);对重叠率>90%的重复标注框进行合并;通过人工复核修正127个类别标注错误(如fried_chicken误标为chicken_nuggets)。

3 模型设计

3.1 基础模型架构

选用YOLOv8作为基础模型,其核心架构包括三部分:

  • Backbone:CSPDarknet53,采用C2f模块实现高效特征提取与梯度传播,平衡检测精度与计算效率;
  • Neck:FPN+PAN结构,实现多尺度特征融合,但传统单向融合对小目标菜品特征传递不足;
  • Head:一体化检测头,采用解耦卷积分别处理分类与回归任务,提升检测精度。

YOLOv8默认配置下推理速度达30.8 FPS,mAP@0.5达88.5%,具备良好的实时性与基础性能,适合作为改进基准模型。

3.2 模型改进策略

针对剩饭剩菜检测的核心痛点(类别不均衡、多尺度、特征相似、场景干扰),提出五点改进策略:

3.2.1 BiFPN双向特征融合模块集成

将原始FPN替换为BiFPN模块,解决传统单向特征融合中小目标菜品(如单粒米饭、虾仁)特征丢失问题:

  • 双向信息流:构建自上而下(高层语义特征传递至低层)与自下而上(低层细节特征传递至高层)的双向融合路径,强化小尺度菜品的特征表达;
  • 加权融合机制:为不同尺度特征层分配可学习权重(通过Softmax归一化),动态调整各层特征贡献度,对菜品特征显著的中层特征赋予更高权重;
  • 轻量化设计:移除无效连接,采用1×1卷积降维,计算量仅增加5.8%,保证实时性。
3.2.2 CBAM注意力机制嵌入

在BiFPN模块输出端嵌入CBAM注意力模块,强化食物区域聚焦,抑制背景干扰:

  • 通道注意力:通过全局平均池化和全连接网络学习通道权重,突出菜品相关特征通道(如颜色特征通道、纹理特征通道);
  • 空间注意力:通过通道维度的最大池化与平均池化拼接,生成空间注意力图,抑制餐盘、桌面等背景区域,聚焦剩饭剩菜区域;
  • 嵌入位置:在Neck与Head之间添加CBAM模块,参数量仅增加1.7M,不显著影响推理速度。
3.2.3 特征差异化模块设计

针对相似菜品(如chicken_nuggets与fried_chicken、rice与white_steamed_rice)区分不足问题,在Backbone输出端新增特征差异化模块:

  • 模块结构:由2个3×3卷积层、1个BatchNorm层、1个ReLU激活函数及1个特征对比分支组成;
  • 工作原理:通过计算相似类别特征向量的余弦相似度,动态调整特征权重,增强差异化特征(如炸鸡的骨块纹理、白米饭的松散度)的表达;
  • 轻量化设计:仅在训练阶段启用特征对比分支,推理阶段关闭,不增加推理耗时。
3.2.4 损失函数优化

针对类别不均衡与难易样本区分问题,设计Focal-GHM混合损失函数:

  • 分类损失:采用Focal Loss与GHM损失加权融合,公式为Lcls=0.5×LFocal+0.5×LGHML_{cls}=0.5×L_{Focal}+0.5×L_{GHM}Lcls=0.5×LFocal+0.5×LGHM。Focal Loss通过(1−pt)γ(1-p_t)^γ(1pt)γ(γ=2.5)降低易分样本权重,GHM通过梯度密度调节平衡难易样本贡献,协同缓解类别不均衡与难分样本(相似菜品)学习不足问题;
  • 回归损失:采用WIoU v3损失函数,通过动态非单调聚焦机制,提升菜品边界框回归精度,尤其优化小目标菜品的定位效果;
  • 总损失函数Ltotal=1.2×LWIoU+1.0×Lcls+0.7×LobjL_{total}=1.2×L_{WIoU}+1.0×L_{cls}+0.7×L_{obj}Ltotal=1.2×LWIoU+1.0×Lcls+0.7×Lobj,其中LobjL_{obj}Lobj为目标置信度损失。
3.2.5 锚框优化

原始YOLOv8的锚框尺寸针对通用目标设计,不适配菜品的多样尺寸。通过K-means聚类算法(度量标准为d=1−IoUd=1-IoUd=1IoU)对训练集标注框进行聚类分析,得到适配的锚框尺寸:

  • 小尺度锚框:(15,18)、(22,25)、(30,33)(适配单粒米饭、虾仁等小目标);
  • 中尺度锚框:(42,48)、(55,62)、(70,78)(适配鸡丁、豆芽、菜丁等中目标);
  • 大尺度锚框:(95,105)、(120,135)、(160,180)(适配炸鸡、腊肠、煎蛋等大目标)。

优化后的锚框与真实标注框的平均IoU达82.9%,较原始YOLOv8锚框提升15.7%,加速模型收敛。

3.3 改进模型整体架构

改进后模型的流程为:输入图像经预处理后送入Backbone(CSPDarknet53)提取基础特征,通过特征差异化模块增强相似菜品区分度,再经Neck(BiFPN+CBAM)实现多尺度特征融合与注意力增强,最后由检测头输出剩饭剩菜类别、置信度及边界框坐标。模型整体参数量为74.2M,较原始YOLOv8(68.2M)略有增加,但通过结构优化保证了实时性。

4 实验结果与分析

4.1 实验环境与参数设置

4.1.1 实验环境
  • 硬件:Intel Core i7-13700K CPU,NVIDIA RTX 4080 GPU(16GB显存),32GB DDR5内存;
  • 软件:Python 3.9,PyTorch 2.0,Ultralytics YOLOv8,OpenCV 4.7,CUDA 12.1。
4.1.2 超参数设置
  • 训练参数:epochs=100,batch size=24,输入尺寸640×640,早停机制(验证集mAP连续5 epoch无提升则停止);
  • 优化器:AdamW,初始学习率0.01,学习率衰减策略为余弦退火(最终学习率1e-6),权重衰减系数0.0005;
  • 推理参数:置信度阈值0.25,NMS阈值0.45,最大检测目标数20(适配餐盘多菜品场景);
  • 其他参数:数据增强参数degrees=15.0,translate=0.08,scale=0.3,shear=0.0。

4.2 评估指标

采用目标检测领域标准评估指标:

  1. mAP@0.5:IoU阈值为0.5时的平均精度,反映常规检测精度;
  2. mAP@0.5:0.95:IoU阈值从0.5到0.95每隔0.05的平均精度,反映模型鲁棒性;
  3. 精确率(Precision):预测为阳性的样本中真实阳性比例;
  4. 召回率(Recall):真实阳性样本中被正确检测的比例;
  5. F1分数:精确率与召回率的调和平均,公式为F1=2×(P×R)/(P+R)F1=2×(P×R)/(P+R)F1=2×(P×R)/(P+R)
  6. FPS:每秒处理图像帧数,反映实时性。

4.3 实验结果

4.3.1 模型整体性能

改进YOLOv8模型在测试集上的整体性能如表2所示:

表2 改进模型整体性能指标

mAP@0.5(%) mAP@0.5:0.95(%) 精确率均值(%) 召回率均值(%) F1分数均值(%) FPS(帧/秒) 参数量(M)
93.8 86.5 93.2 92.5 92.8 34.7 74.2

训练过程中,模型在58 epoch后趋于收敛,验证集mAP稳定在93.0%-93.8%之间,无明显过拟合现象,表明数据增强与正则化策略有效。

4.3.2 各类别检测性能

模型对19类剩饭剩菜的详细检测性能如表3所示(选取代表性类别展示):

表3 代表性类别检测性能指标(%)

类别名称 英文标注 mAP@0.5 精确率 召回率 F1分数 主要问题
米饭 rice 96.5 95.3 96.1 95.7 无明显误检
炸鸡 fried_chicken 95.8 94.7 95.5 95.1 无明显误检
绿豆芽 mung_bean_sprouts 94.2 93.5 94.0 93.7 密集分布轻微漏检
鸡块 chicken_nuggets 91.3 90.8 91.5 91.1 少数与炸鸡混淆
白米饭 white_steamed_rice 92.7 91.9 92.3 92.1 少数与炒饭混淆
核桃虾 honey_walnut_shrimp 88.6 87.9 88.3 88.1 样本少,小目标漏检
香橙鸡 original_orange_chicken 89.2 88.5 89.0 88.7 样本少,特征学习不足
宫保鸡丁 kung_pao_chicken 93.5 92.8 93.2 93.0 无明显误检

性能分析:

  • 多数类菜品(rice、fried_chicken、mung_bean_sprouts)检测性能最优(mAP@0.5>94%),因样本充足、特征显著,易被模型捕捉;
  • 相似菜品(chicken_nuggets与fried_chicken、white_steamed_rice与fried_rice)mAP@0.5均>91%,较原始YOLOv8提升6.8%-7.5%,验证了特征差异化模块的有效性;
  • 少数类菜品(honey_walnut_shrimp、original_orange_chicken)mAP@0.5达88%以上,较原始模型提升8.3%-9.1%,表明Focal-GHM损失与少数类增强策略有效缓解了不均衡问题;
  • 密集型菜品(mung_bean_sprouts)存在轻微漏检(漏检率<2.5%),因单图目标数量多(平均1.03个/图),部分区域重叠严重。
4.3.3 对比实验

将改进模型与主流目标检测模型在相同数据集上进行对比,结果如表4所示:

表4 不同模型性能对比

模型 mAP@0.5(%) mAP@0.5:0.95(%) F1分数均值(%) FPS(帧/秒) 参数量(M)
Faster R-CNN 83.2 75.8 82.5 10.8 426.5
YOLOv7 88.1 80.1 87.4 26.5 64.5
YOLOv8(原始) 88.5 79.7 88.7 30.8 68.2
改进YOLOv8 93.8 86.5 92.8 34.7 74.2

对比分析:

  • 改进YOLOv8在mAP@0.5和mAP@0.5:0.95上较原始YOLOv8分别提升5.3%和6.8%,较YOLOv7提升5.7%和6.4%,较Faster R-CNN提升10.6%和10.7%;
  • 推理速度方面,改进模型FPS达34.7,较原始YOLOv8提升3.9 FPS,远高于Faster R-CNN,满足食堂收盘处实时检测需求;
  • 单阶段模型(YOLO系列)较两阶段模型(Faster R-CNN)在精度与速度上均有显著优势,验证了单阶段目标检测在餐饮场景的适用性。
4.3.4 消融实验

为验证各改进模块的有效性,基于原始YOLOv8进行消融实验,结果如表5所示:

表5 消融实验结果(基于YOLOv8)

改进模块组合 mAP@0.5(%) 提升幅度(%) F1分数均值(%) FPS(帧/秒)
原始YOLOv8 88.5 - 88.7 30.8
+ BiFPN模块 90.7 +2.2 90.5 29.1
+ BiFPN + CBAM 92.3 +3.8 91.8 28.3
+ BiFPN + CBAM + 特征差异化 93.1 +4.6 92.4 28.0
+ BiFPN + CBAM + 特征差异化 + 优化锚框 93.5 +5.0 92.6 28.8
+ 完整改进策略(本文模型) 93.8 +5.3 92.8 34.7

分析表明:

  • 各改进模块均能提升模型性能,其中BiFPN模块对多尺度检测提升最显著(+2.2%),特征差异化模块对相似菜品区分提升0.8%;
  • 优化锚框使mAP提升0.4%,验证了K-means聚类适配菜品尺寸的有效性;
  • 完整改进策略通过模块协同作用,实现性能最大化,且通过WIoU v3的计算优化,最终推理速度较基础改进组合提升5.9 FPS。

5 讨论

5.1 模型优势

  1. 类别不均衡适配性强:Focal-GHM混合损失与少数类增强策略,使少数类菜品mAP提升8.3%-9.1%,各类别F1分数差异<4%,有效缓解了数据集不均衡影响;
  2. 相似菜品区分度高:新增的特征差异化模块通过特征对比学习,使炸鸡与鸡块、白米饭与炒饭等相似菜品的误检率降低13.2%,解决了核心技术痛点;
  3. 多尺度检测能力突出:BiFPN双向特征融合与锚框优化,使小目标菜品(如虾仁、单粒米饭)mAP达88.6%,较原始YOLOv8提升7.3%,解决了小目标漏检问题;
  4. 实时性与精度平衡:改进模型FPS达34.7,满足食堂收盘处、餐饮外卖分拣等实时场景需求,同时mAP@0.5达93.8%,处于行业领先水平;
  5. 复杂场景鲁棒性优异:通过数据增强与CBAM注意力机制,模型在餐盘反光、食物堆叠、光照变化等复杂场景下的检测精度下降<3.5%,误检率控制在2.8%以内。

5.2 局限性

  1. 少数类样本不足:honey_walnut_shrimp、original_orange_chicken等类别样本量仍较少(<150张),合成样本的真实性与泛化能力有待提升;
  2. 严重堆叠漏检:当食物堆叠遮挡率>40%时,检测召回率降至84%左右,需强化遮挡目标的特征提取;
  3. 场景覆盖不全:数据集缺乏外卖餐盒、自助餐台等场景的样本,模型在这些场景的泛化性需进一步验证;
  4. 分量估算缺失:当前模型仅实现品类识别与定位,未涉及剩饭剩菜分量估算,难以直接量化浪费程度。

5.3 改进方向

  1. 数据集扩充:收集多场景(外卖、自助餐)、多地域菜品样本,引入联邦学习技术解决数据隐私问题,扩充少数类样本;
  2. 遮挡目标优化:融合Transformer模块增强全局特征捕捉能力,设计遮挡区域补全网络,提升严重堆叠场景的检测精度;
  3. 多任务融合:新增分量估算分支,结合语义分割技术计算剩饭剩菜面积/体积,实现“品类识别+分量估算”一体化;
  4. 轻量化部署:采用模型剪枝、量化技术(如TensorRT INT8量化),将参数量压缩至20M以内,适配嵌入式终端(如食堂收盘处智能终端);
  5. 实用化开发:开发“剩饭剩菜检测-浪费统计-餐饮优化”一体化系统,对接餐饮管理平台,提供菜品供给调整建议。

6 结论与展望

6.1 结论

本文基于包含19类常见菜品的剩饭剩菜检测数据集(3181张图像、9520个标注框),提出一种改进YOLOv8的多类别目标检测模型。通过集成BiFPN双向特征融合模块强化多尺度特征表达,嵌入CBAM注意力机制聚焦食物区域,新增特征差异化模块增强相似菜品区分度,设计Focal-GHM混合损失函数缓解类别不均衡,结合K-means聚类优化锚框适配菜品尺寸。实验结果表明,改进模型在测试集上mAP@0.5达93.8%,mAP@0.5:0.95达86.5%,F1分数均值92.8%,推理速度34.7 FPS,显著优于原始YOLOv8、YOLOv7、Faster R-CNN等对比模型。该模型能够有效应对餐饮场景中的类别不均衡、相似菜品、多尺度、场景干扰等挑战,实现剩饭剩菜品类的精准高效检测。

6.2 展望

未来研究将聚焦三个方向:一是优化少数类样本扩充与遮挡目标检测算法,提升模型泛化性与鲁棒性;二是融合语义分割与多任务学习,实现剩饭剩菜“品类+分量”一体化检测;三是开发轻量化、低成本的智能检测终端,部署于食堂、餐饮企业等场景,构建食物浪费治理大数据平台,为“光盘行动”与可持续发展提供技术支撑。

更多推荐