剩饭剩菜检测-目标检测数据集
剩饭剩菜检测-目标检测数据集
数据集(文章最后关注公众号获取数据集):
链接: 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 数据集核心特点
- 场景多样性:涵盖高校食堂餐盘、家庭餐桌、餐饮外卖盒等场景,包含不同材质餐盘(陶瓷、塑料、金属)、光照条件(自然光、灯光、逆光);
- 形态复杂性:菜品形态各异,既有松散分布的米饭、绿豆芽,也有块状的炸鸡、腊肠,还有混合分布的胡萝卜炒蛋、宫保鸡丁;
- 尺度跨度大:标注框尺寸覆盖10×10像素(单粒米饭)至300×300像素(整块炸鸡),尺度差异达30倍;
- 类别相似性:多类菜品视觉特征相近,如chicken_nuggets与fried_chicken(均为金黄色块状)、rice与white_steamed_rice(均为白色米粒);
- 堆叠常见性:剩饭剩菜常出现堆叠(如米饭上覆盖炸鸡、蔬菜混合荤菜),遮挡率最高达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)^γ(1−pt)γ(γ=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=1−IoU)对训练集标注框进行聚类分析,得到适配的锚框尺寸:
- 小尺度锚框:(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 评估指标
采用目标检测领域标准评估指标:
- mAP@0.5:IoU阈值为0.5时的平均精度,反映常规检测精度;
- mAP@0.5:0.95:IoU阈值从0.5到0.95每隔0.05的平均精度,反映模型鲁棒性;
- 精确率(Precision):预测为阳性的样本中真实阳性比例;
- 召回率(Recall):真实阳性样本中被正确检测的比例;
- F1分数:精确率与召回率的调和平均,公式为F1=2×(P×R)/(P+R)F1=2×(P×R)/(P+R)F1=2×(P×R)/(P+R);
- 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 模型优势
- 类别不均衡适配性强:Focal-GHM混合损失与少数类增强策略,使少数类菜品mAP提升8.3%-9.1%,各类别F1分数差异<4%,有效缓解了数据集不均衡影响;
- 相似菜品区分度高:新增的特征差异化模块通过特征对比学习,使炸鸡与鸡块、白米饭与炒饭等相似菜品的误检率降低13.2%,解决了核心技术痛点;
- 多尺度检测能力突出:BiFPN双向特征融合与锚框优化,使小目标菜品(如虾仁、单粒米饭)mAP达88.6%,较原始YOLOv8提升7.3%,解决了小目标漏检问题;
- 实时性与精度平衡:改进模型FPS达34.7,满足食堂收盘处、餐饮外卖分拣等实时场景需求,同时mAP@0.5达93.8%,处于行业领先水平;
- 复杂场景鲁棒性优异:通过数据增强与CBAM注意力机制,模型在餐盘反光、食物堆叠、光照变化等复杂场景下的检测精度下降<3.5%,误检率控制在2.8%以内。
5.2 局限性
- 少数类样本不足:honey_walnut_shrimp、original_orange_chicken等类别样本量仍较少(<150张),合成样本的真实性与泛化能力有待提升;
- 严重堆叠漏检:当食物堆叠遮挡率>40%时,检测召回率降至84%左右,需强化遮挡目标的特征提取;
- 场景覆盖不全:数据集缺乏外卖餐盒、自助餐台等场景的样本,模型在这些场景的泛化性需进一步验证;
- 分量估算缺失:当前模型仅实现品类识别与定位,未涉及剩饭剩菜分量估算,难以直接量化浪费程度。
5.3 改进方向
- 数据集扩充:收集多场景(外卖、自助餐)、多地域菜品样本,引入联邦学习技术解决数据隐私问题,扩充少数类样本;
- 遮挡目标优化:融合Transformer模块增强全局特征捕捉能力,设计遮挡区域补全网络,提升严重堆叠场景的检测精度;
- 多任务融合:新增分量估算分支,结合语义分割技术计算剩饭剩菜面积/体积,实现“品类识别+分量估算”一体化;
- 轻量化部署:采用模型剪枝、量化技术(如TensorRT INT8量化),将参数量压缩至20M以内,适配嵌入式终端(如食堂收盘处智能终端);
- 实用化开发:开发“剩饭剩菜检测-浪费统计-餐饮优化”一体化系统,对接餐饮管理平台,提供菜品供给调整建议。
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 展望
未来研究将聚焦三个方向:一是优化少数类样本扩充与遮挡目标检测算法,提升模型泛化性与鲁棒性;二是融合语义分割与多任务学习,实现剩饭剩菜“品类+分量”一体化检测;三是开发轻量化、低成本的智能检测终端,部署于食堂、餐饮企业等场景,构建食物浪费治理大数据平台,为“光盘行动”与可持续发展提供技术支撑。
更多推荐

所有评论(0)