YOLO垃圾检测数据集完整训练模型实时检测系统YOLOv5垃圾识别垃圾分类数据集18类标注目标检测模型摄像头实时检测智能环保系统计算机视觉项目毕业AI训练数据数据集详情18个精细类别铝箔、瓶盖、瓶子、碎玻璃、易拉罐、纸盒、香烟、杯子、盖子、其他垃圾、其他塑料、纸张、塑料袋/包装纸、塑料容器、易拉罐拉环、吸管、泡沫塑料片、未分类垃圾数据量总计6007张高质量标注图像训练集4201张验证集1705张测试集101张全部已做YOLO格式标注支持图片、视频、摄像头实时检测提供完整Python源码使用说明包含模型权重.pt文件系统可直接集成到智能垃圾桶、环保监测平台等项目中应用场景智能环保产品开发、AI项目实战垃圾分类系统原型开发、算法验证垃圾识别算法改进、模型对比实验11 基于 YOLOv5 的智能垃圾检测与分类系统技术解决方案1. 项目概述本方案旨在提供一个高效、精准的计算机视觉解决方案用于自动检测和识别环境中的各类垃圾。系统基于YOLOv5深度学习算法构建集成了高质量的数据集、预训练模型以及可视化的实时检测软件。该系统适用于智能环保监测、自动化垃圾分类设备、城市环境清洁机器人以及计算机视觉相关的学术研究毕业设计项目。核心优势高精度模型在 18 个细粒度类别上表现出色整体 F1-Score 达到0.89。即插即用提供训练好的.pt权重文件和完整的 Python 源码无需从零训练。多模态检测支持单张图片、视频文件以及摄像头实时流检测。2. 技术架构与栈系统采用经典的深度学习目标检测架构前端采用轻量级 GUI 框架以便于演示和集成。技术选型模块技术/库说明核心算法YOLOv5(PyTorch)目前工业界最主流的单阶段目标检测算法平衡了速度与精度。图像处理OpenCV (cv2)负责图像的读取、预处理Resize, Normalize及后处理画框, NMS。用户界面PyQt5 / PySide2构建桌面端可视化交互界面支持文件选择与实时画面显示。数据处理NumPy, Pandas用于数据集的统计分析如生成的分布图及张量操作。开发语言Python 3.8跨平台开发语言。3. 数据集分析本系统使用的高质量垃圾检测数据集包含6007张标注图像覆盖 18 种常见垃圾类别。3.1 类别定义 (18 Classes)数据集涵盖了从大件垃圾到微小碎片的广泛类别铝箔瓶盖瓶子碎玻璃易拉罐纸盒香烟杯子盖子其他垃圾其他塑料纸张塑料袋/包装纸塑料容器易拉罐拉环吸管泡沫塑料片未分类垃圾3.2 数据统计与分布数据划分训练集4201 张 (约 70%)验证集1705 张 (约 28%)测试集101 张 (约 2%)分布特征根据数据分析图显示Paper(纸张) 和Plastic bag - wrapper(塑料袋) 样本量最大超过 2000 个实例。Pop tab(拉环) 和Straw(吸管) 等小目标物体样本相对较少这对模型的微小物体检测能力提出了挑战。边界框分布图显示目标主要集中在图像中心区域且长宽比分布较为均匀。4. 模型性能评估F1-Confidence 曲线图分析模型表现出极高的鲁棒性。整体性能F1 Score:0.89(在置信度阈值 0.503 处达到最佳平衡点)。这意味着模型在精确率Precision和召回率Recall之间取得了极佳的平衡。类别表现大部分类别的曲线如Bottle,Can,Carton均位于高位说明识别准确。部分小目标或模糊类别如Cigarette,Plastic container曲线略低但在可接受范围内。5. 核心代码实现以下是构建该系统的核心代码片段展示了如何加载模型、进行推理以及构建 GUI 逻辑。5.1 环境依赖 (requirements.txt)torch1.7.0 torchvision0.8.0 opencv-python4.5.0 PyQt55.15.0 matplotlib numpy pandas seaborn5.2 模型推理核心逻辑 (detector.py)该模块负责加载 YOLOv5 模型并执行检测。importtorchimportcv2importnumpyasnpclassGarbageDetector:def__init__(self,weights_pathbest.pt,devicecpu,conf_thres0.25,iou_thres0.45): 初始化检测器 :param weights_path: 模型权重文件路径 :param device: 推理设备 (cpu or cuda) self.devicedevice self.conf_thresconf_thres self.iou_thresiou_thres# 加载 YOLOv5 模型 (使用 torch.hub 或本地加载)# 假设使用的是 yolov5 官方仓库结构self.modeltorch.hub.load(ultralytics/yolov5,custom,pathweights_path,force_reloadFalse)self.model.confconf_thres# 设置置信度阈值self.model.iouiou_thres# 设置 NMS IOU 阈值self.model.to(device)# 类别名称映射 (根据数据集定义)self.class_namesself.model.module.namesifhasattr(self.model,module)elseself.model.namesdefdetect_image(self,img_path): 检测单张图片 # 推理resultsself.model(img_path)# 解析结果 (pandas dataframe 或 numpy array)# results.xyxy[0] - [x1, y1, x2, y2, confidence, class]detectionsresults.xyxy[0].cpu().numpy()# 绘制结果imgcv2.imread(img_path)imgcv2.cvtColor(img,cv2.COLOR_BGR2RGB)annotated_imgresults.render()[0]# 获取绘制好框的图像returnannotated_img,detections# 使用示例if__name____main__:detectorGarbageDetector(weights_pathbest.pt,devicecpu)result_img,detsdetector.detect_image(test.jpg)print(f检测到{len(dets)}个目标)5.3 GUI 界面逻辑 (main_window.py)该模块使用 PyQt5 实现用户界面对应您截图中的软件界面。importsysfromPyQt5.QtWidgetsimportQApplication,QMainWindow,QFileDialog,QMessageBoxfromPyQt5.QtGuiimportQPixmap,QImagefromdetectorimportGarbageDetectorclassMainWindow(QMainWindow):def__init__(self):super().__init__()self.setup_ui()# 初始化检测器 (默认加载 cpu)self.detectorGarbageDetector(weights_pathbest.pt,devicecpu)defsetup_ui(self):# ... (此处为 Qt Designer 生成的 UI 代码包含按钮、滑块、Label 等) ...# 假设有一个按钮 btn_load_img 和一个显示区域 label_displayself.btn_load_img.clicked.connect(self.load_image)self.btn_detect.clicked.connect(self.run_detection)defload_image(self):file_name,_QFileDialog.getOpenFileName(self,选择图片,.,Image Files (*.png *.jpg *.bmp))iffile_name:self.current_image_pathfile_name pixmapQPixmap(file_name).scaled(640,480)self.label_display.setPixmap(pixmap)defrun_detection(self):ifnothasattr(self,current_image_path):return# 获取滑块参数confself.slider_conf.value()/100.0iouself.slider_iou.value()/100.0self.detector.model.confconf self.detector.model.iouiou# 执行检测result_img,detectionsself.detector.detect_image(self.current_image_path)# 显示结果height,width,channelresult_img.shape bytes_per_line3*width q_imgQImage(result_img.data,width,height,bytes_per_line,QImage.Format_RGB888)self.label_display.setPixmap(QPixmap.fromImage(q_img))# 打印信息print(f检测到目标数:{len(detections)})if__name____main__:appQApplication(sys.argv)windowMainWindow()window.show()sys.exit(app.exec_())6. 应用场景该系统可直接应用于以下领域智能垃圾桶配合机械臂或自动开盖装置实现垃圾的自动分类投放。城市清洁监测集成在巡逻车或无人机上自动识别路面垃圾并生成清洁地图。环保教育作为互动装置识别用户手中的垃圾并提示分类信息。学术与竞赛作为计算机视觉课程设计、毕业设计的优秀基准项目。7. 结论本方案提供了一套完整的、工业级的垃圾检测解决方案。通过6000张高质量标注数据和YOLOv5的强大特征提取能力系统实现了0.89的高 F1 分数。配合可视化的 PyQt 界面不仅满足了科研需求也具备了直接落地部署的潜力。