news 2026/7/14 10:10:33

深度学习框架YOLOV8模型如何训练水面及河道漂浮物垃圾检测数据集 建立基于深度学习YOLOV8河道水面垃圾检测系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深度学习框架YOLOV8模型如何训练水面及河道漂浮物垃圾检测数据集 建立基于深度学习YOLOV8河道水面垃圾检测系统

水面垃圾检测数据集、垃圾检测、YOLO模型通用

以下是水面垃圾检测(塑料瓶)数据集的结构化信息表格:


📊 水面垃圾检测(塑料瓶)数据集概览表

项目描述
数据集名称水面垃圾检测数据集(聚焦塑料瓶)
总图像数量1,200 张
数据划分- 训练集(Train):960 张
- 验证集(Val):120 张
- 测试集(Test):120 张
类别数量(nc)1 类
目标类别bottle(塑料瓶)
标注框总数3,248 个
每类图片覆盖所有 1,200 张图像均包含bottle目标
应用场景河道/湖泊/海洋垃圾监测、智能环保船、无人机巡检、水体清洁机器人等
任务类型目标检测(Object Detection)

📈 模型在验证集上的性能对比(mAP@0.5)

模型mAP@0.5
YOLOv5m0.90641
YOLOv8m0.90834
YOLOv11m0.89696

最佳表现:YOLOv8m(mAP@0.5 = 90.83%),显示该数据集质量高、标注精准,适合训练高精度水面垃圾检测模型。


📁 推荐目录结构

water_bottle_dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ ├── labels/ │ ├── train/ │ ├── val/ │ └── test/ └── dataset.yaml

📄dataset.yaml示例

train:./images/trainval:./images/valtest:./images/testnc:1names:['bottle']

该数据集可直接用于环保 AI 系统开发水域智能治理学术研究


水面垃圾检测(塑料瓶)数据集的完整 YOLOv8 检测系统实现方案,包含:

✅ 从预训练模型开始的 YOLOv8 训练代码
✅ 推理脚本(图像/视频/摄像头)
✅ Web 检测界面(Django + Bootstrap)
✅ 垃圾计数与环保报告生成


📁 一、项目目录结构

water_bottle_yolov8/ ├── data/ │ ├── images/ │ │ ├── train/ # 960 │ │ ├── val/ # 120 │ │ └── test/ # 120 │ ├── labels/ │ │ ├── train/ │ │ ├── val/ │ │ └── test/ │ └── dataset.yaml ├── models/ │ └── best.pt # 训练后模型 ├── train.py # YOLOv8 训练脚本 ├── infer.py # 推理脚本 ├── web_app/ │ ├── views.py │ ├── models.py │ ├── urls.py │ └── templates/ │ └── index.html └── requirements.txt

📦 二、requirements.txt

ultralytics==8.2.0 opencv-python==4.8.0 numpy==1.24.3 pillow==9.5.0 django==4.2.7 matplotlib==3.6.3

安装:

pipinstall-rrequirements.txt

📄 三、data/dataset.yaml

train:../data/images/trainval:../data/images/valtest:../data/images/testnc:1names:['bottle']

✅ 确保images/trainlabels/train中文件名一一对应(如001.jpg001.txt


🚀 四、train.py—— YOLOv8 训练代码(从预训练模型微调)

# train.pyfromultralyticsimportYOLOif__name__=="__main__":# 加载官方预训练模型(YOLOv8m)model=YOLO("yolov8m.pt")# 可替换为 yolov8n/s/l/x# 开始训练results=model.train(data="data/dataset.yaml",epochs=100,imgsz=640,# 水面目标通常较小,640 足够batch=16,# 根据 GPU 调整(RTX 3060 可用 16)device=0,# 使用 GPU;无 GPU 改为 "cpu"name="water_bottle_yolov8m",project="runs/train",patience=20,# 早停机制save=True,exist_ok=True)print(f"✅ 训练完成!最佳模型路径:{results.save_dir}/weights/best.pt")

运行训练:

python train.py

💡 预期 mAP@0.5 ≈ 0.908(与你提供的验证结果一致)


🔍 五、infer.py—— 推理与塑料瓶计数

# infer.pyfromultralyticsimportYOLOimportcv2importos# 加载训练好的模型model=YOLO("runs/train/water_bottle_yolov8m/weights/best.pt")defdetect_bottles(image_path,conf=0.4):results=model(image_path,conf=conf)annotated_img=results[0].plot()# 统计塑料瓶数量bottle_count=len(results[0].boxes)# 保存结果output_path=f"output_{os.path.basename(image_path)}"cv2.imwrite(output_path,annotated_img)print(f"✅ 检测到{bottle_count}个塑料瓶,结果保存至:{output_path}")returnbottle_count,output_path# 示例:单张图像detect_bottles("river_scene.jpg")# 视频推理(可选)# model.predict("lake_video.mp4", save=True, conf=0.4)# 摄像头实时检测# model.predict(source=0, show=True, conf=0.4)

🌐 六、Django Web 检测系统

1.web_app/models.py

fromdjango.dbimportmodelsclassBottleDetection(models.Model):image=models.ImageField(upload_to='uploads/')result_image=models.ImageField(upload_to='results/',null=True)bottle_count=models.IntegerField(default=0)timestamp=models.DateTimeField(auto_now_add=True)location=models.CharField(max_length=100,default="河道A段")

2.web_app/views.py

fromdjango.shortcutsimportrenderfromdjango.httpimportJsonResponsefromdjango.core.files.storageimportFileSystemStoragefrom.modelsimportBottleDetectionfromultralyticsimportYOLOimportcv2importos# 全局加载模型(仅加载一次)model=YOLO("runs/train/water_bottle_yolov8m/weights/best.pt")defindex(request):returnrender(request,'index.html')defdetect_bottle_web(request):ifrequest.method=="POST"andrequest.FILES.get('image'):uploaded_file=request.FILES['image']fs=FileSystemStorage()filename=fs.save(uploaded_file.name,uploaded_file)input_path=fs.path(filename)output_dir=os.path.join(fs.location,'results')os.makedirs(output_dir,exist_ok=True)output_path=os.path.join(output_dir,f"result_{filename}")# 推理results=model(input_path,conf=0.4)annotated_img=results[0].plot()cv2.imwrite(output_path,annotated_img)bottle_count=len(results[0].boxes)# 保存记录record=BottleDetection.objects.create(image=uploaded_file,result_image=f'results/result_{filename}',bottle_count=bottle_count)returnJsonResponse({'result_url':fs.url(f'results/result_{filename}'),'bottle_count':bottle_count})returnJsonResponse({'error':'请上传图像'})

3.templates/index.html

<!DOCTYPEhtml><htmllang="zh"><head><metacharset="UTF-8"><title>🌊 水面塑料瓶智能检测系统</title><scriptsrc="https://cdn.tailwindcss.com"></script></head><bodyclass="bg-blue-50"><divclass="max-w-4xl mx-auto p-6"><h1class="text-2xl font-bold text-center mb-6">🌊 水面垃圾(塑料瓶)AI检测系统</h1><formid="uploadForm"enctype="multipart/form-data"class="mb-6"><inputtype="file"name="image"accept=".jpg,.png"class="block w-full mb-4"><buttontype="submit"class="bg-blue-600 text-white px-4 py-2 rounded">上传并检测</button></form><divid="result"class="hidden"><imgid="resultImg"class="max-w-full border rounded shadow"><divclass="mt-4 p-4 bg-white rounded"><pclass="text-lg">检测到塑料瓶数量:<spanid="count"class="font-bold text-red-600"></span></p><pclass="text-sm text-gray-500">可用于环保评估与清洁任务调度</p></div></div></div><script>document.getElementById('uploadForm').onsubmit=async(e)=>{e.preventDefault();constformData=newFormData(e.target);constres=awaitfetch('/detect/',{method:'POST',body:formData});constdata=awaitres.json();if(data.result_url){document.getElementById('resultImg').src=data.result_url;document.getElementById('count').textContent=data.bottle_count;document.getElementById('result').classList.remove('hidden');}};</script></body></html>

4. 启动 Web 系统

python manage.py makemigrations python manage.py migrate python manage.py runserver

访问:http://127.0.0.1:8000


🌍 七、应用场景

应用方向说明
河道/湖泊巡检无人机或无人船搭载模型,自动识别水面漂浮塑料瓶
环保执法取证快速生成污染证据图,辅助城管或水务部门
清洁机器人导航为水面垃圾打捞机器人提供目标定位
公众环保教育Web 系统开放给公众上传照片,提升环保意识

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 10:39:59

​​解锁AI Agent开发新姿势:Coze Studio,让创意秒变现实

引言 在AI技术飞速发展的今天&#xff0c;AI Agent&#xff08;智能体&#xff09;已成为推动行业变革的核心力量。无论是智能客服、自动化流程&#xff0c;还是个性化助手&#xff0c;AI Agent的应用场景正不断拓展。然而&#xff0c;传统开发方式往往需要深厚的编程基础和复…

作者头像 李华
网站建设 2026/7/14 10:40:01

YOLOv8图文匹配潜力评估

YOLOv8图文匹配潜力评估 在智能视觉应用日益普及的今天&#xff0c;如何快速构建一个稳定、高效的目标检测系统&#xff0c;已经成为开发者面临的核心挑战之一。从自动标注到图文内容理解&#xff0c;再到多模态检索&#xff0c;目标检测不仅是基础能力&#xff0c;更是连接图像…

作者头像 李华
网站建设 2026/7/1 6:41:33

R语言可视化进阶指南:5个你必须掌握的数据探索技巧

第一章&#xff1a;R语言数据探索可视化的核心价值在数据分析流程中&#xff0c;数据探索可视化是理解数据结构、发现潜在模式和识别异常值的关键步骤。R语言凭借其强大的图形系统和丰富的可视化包&#xff08;如ggplot2、lattice、plotly等&#xff09;&#xff0c;成为数据科…

作者头像 李华
网站建设 2026/7/1 21:43:33

【R语言GPT代码调试终极指南】:9大高效技巧让你秒杀Bug

第一章&#xff1a;R语言GPT代码调试的核心挑战在将GPT模型集成到R语言环境中进行开发时&#xff0c;代码调试面临一系列独特挑战。这些挑战不仅源于R语言本身的动态特性和非标准求值机制&#xff0c;还涉及与外部API通信、数据类型转换以及上下文管理等复杂问题。动态作用域与…

作者头像 李华
网站建设 2026/7/13 1:27:04

YOLOv8日志收集:ELK栈集成方案

YOLOv8日志收集&#xff1a;ELK栈集成方案 在AI模型训练日益复杂的今天&#xff0c;开发者早已不再满足于“模型能跑就行”的初级阶段。尤其是在使用YOLOv8这类高效目标检测框架进行工业级项目开发时&#xff0c;一个常见的痛点浮现出来&#xff1a;当训练突然中断、损失函数异…

作者头像 李华
网站建设 2026/7/13 1:26:34

探秘智能水质检测公示屏

炎炎夏日&#xff0c;泳池是消暑健身的好去处。然而&#xff0c;畅游背后&#xff0c;池水是否真正洁净安全&#xff0c;曾经是管理者与游泳者共同的隐忧。传统的水质管理方式&#xff0c;正面临着多重挑战。传统水质管理的痛点过去&#xff0c;泳池水质监测多依赖人工定时取样…

作者头像 李华