最新要闻
- 每日资讯:中国移动:命苦
- 天天速看:鹿客发布掌心锁V5:掌静脉+3D结构光刷脸解锁 3399元起
- 尼泊尔空难20天就查明原因?为什么东航事故还没有结果?
- 世界微资讯!腾讯四年磨一剑!结果 让大家看笑话了
- OPPO Find X6 Pro:表演一场简单的光影魔术
- 亨迪药业(301211):3月21日北向资金减持66.63万股
- 世界热文:全明星爆款APP“偶像驾到”正式上线 主播经济和明星经纪开启新时代
- 小屏手机真凉了!苹果卖最差的iPhone 14 Plus 出货量也远超13 mini
- 山姆会员店寿司致多人上吐下泻:官方拒绝三倍赔偿
- 天天新消息丨致敬葫芦娃?保时捷911 Carrera GTS泰国特别版官图发布
- 环球最资讯丨14.5英寸超大屏+天玑9000!联想Y900平板正式发布:4999元起
- 天天观点:13代酷睿+RTX 40!联想拯救者Y7000P 2023电竞本发布:屏幕大升级
- 13900HX+4090顶配20999元!联想拯救者Y9000P 2023价格公布
- 环球最新:睡眠报告:山东人上床睡觉时间全国最早、广东人最能熬夜
- 焦点快看:埃安(埃)
- 天天观速讯丨放假5天!大学生已经在为五一做准备了
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
焦点报道:智能生活垃圾检测与分类系统(UI界面+YOLOv5+训练数据集)
摘要:智能生活垃圾检测与分类系统用于日常生活垃圾的智能监测与分类,通过图片、视频和摄像头识别生活垃圾,对常见的可降解、纸板、玻璃、金属、纸质和塑料等类别垃圾进行检测和计数,以协助垃圾环保分类处理。本文详细介绍基于YOLOv5算法的智能生活垃圾检测与分类系统,在介绍算法原理的同时,给出Python的实现代码、PyQt的UI界面以及训练数据集。在界面中可以选择各种图片、视频进行检测识别,可对图像中存在的多个目标进行识别分类,检测速度快、识别精度高。博文提供了完整的Python代码和使用教程,适合新入门的朋友参考,完整代码资源文件请转至文末的下载链接。本博文目录如下:
(资料图片仅供参考)
目录- 前言
- 1.效果演示
- 2.垃圾检测数据集与训练
- 3.智能生活垃圾检测
- 下载链接
- 结束语
➷点击跳转至文末所有涉及的完整代码文件下载页☇
完整代码下载:https://mbd.pub/o/bread/ZJaXlZhp
参考视频演示:https://www.bilibili.com/video/BV1Xx4y1N7YM/
离线依赖库下载:https://pan.baidu.com/s/1hW9z9ofV1FRSezTSj59JSg?pwd=oy4n (提取码:oy4n )
前言
智能垃圾分类处理系统是依托物联网、GPS、云计算、大数据等信息技术,结合各种智能化设备(智能垃圾分类箱、积分兑现、车载一体机等),采用分布式微服务架构搭建而成,对垃圾分类全过程中所涉及到的人、车、物、事进行全过程实时监管,实现垃圾投放、收集、运输、处理各环节的有源可溯。
传统的人工垃圾分拣技术存在着效率低、耗时长、需要大量人力、分挑环境差等问题,如何有效地智能化地进行垃圾分类以及成为亟待解决的问题。如今的深度学习技术快速发展,在深层特征提取、表征,目标检测上都取得了很大进展,利用相关技术解决垃圾分类问题,无疑可以减少人力资源的消耗,有效提高垃圾分类效率,促进生态文明建设发展。
智能生活垃圾检测分类是近年来计算机视觉领域的一个应用,同时也是目标检测领域中的难点。其目的是识别和定位图像中存在的垃圾类型,在许多领域中都有广泛的应用。本系统基于YOLOv5算法进行垃圾检测分类,对于图片、视频和摄像头捕获的实时画面,系统可检测画面中的垃圾类型和位置,支持结果记录、展示和保存,每次检测的结果记录在表格中。以下给出博主设计的界面,功能也可以满足图片、视频和摄像头的识别检测,初始界面如下图(比前面的界面稍有升级,增加了柱状图统计数目,哈哈)。
检测类别时的界面截图(点击图片可放大)如下图,可识别画面中存在的多个类别,也可开启摄像头或视频检测:
详细的功能演示效果参见博主的B站视频或下一节的动图演示,觉得不错的朋友敬请点赞、关注加收藏!系统UI界面的设计工作量较大,界面美化更需仔细雕琢,大家有任何建议或意见和可在下方评论交流。
1.效果演示
软件需要颜值与功能并存,我们还是通过动图看一下识别的效果,系统主要实现的功能是对图片、视频和摄像头画面中的垃圾识别,识别结果可视化显示在界面和图像中,另外提供多个目标的显示选择功能,演示效果如下。
(一)系统介绍
智能生活垃圾检测与分类系统主要用于日常生活垃圾检测和智能分类,对常见的可降解、纸板、玻璃、金属、纸质和塑料等类别垃圾进行检测和计数,以方便对垃圾进行分类处理;系统提供登录注册功能,可进行用户管理;能够有效识别图片、视频等文件形式,检测目标位置、类别并统计各类别计数结果;可开启摄像头实时检测和统计画面中的垃圾类型和数目,支持结果记录、展示和保存。
(二)技术特点
(1)YoloV5算法实现,模型一键切换更新;(2)检测图片、视频等图像中的各目标数目并可视化;(3)摄像头监控实时检测,便携展示、记录和保存;(4)支持用户登录、注册,检测结果可视化功能;(4)提供完整训练数据集,可重新训练模型;
(三)用户注册登录界面
这里设计了一个登录界面,可以注册账号和密码,然后进行登录。界面还是参考了当前流行的UI设计,上面贴图和系统名,下面可输入账号、密码。
(四)选择图片识别
系统可选择图片文件进行识别,点击图片选择按钮图标选择图片后,显示所有识别的结果,可通过下拉选框查看单个结果,以便具体判断某一特定目标。本功能的界面展示如下图所示:
(五)视频识别效果展示
点击视频按钮可选择待检测的视频,系统会自动解析视频逐帧识别多个垃圾类型,并将垃圾分类结果记录在右下角表格中,效果如下图所示:
(六)摄像头检测效果展示
在真实场景中,我们往往利用道路的摄像头获取实时画面,同时需要对垃圾进行识别,因此本文考虑到此项功能。如下图所示,点击摄像头按钮后系统进入准备状态,系统显示实时画面并开始检测画面中的垃圾,识别结果展示如下图:
2.垃圾检测数据集与训练
(一)YOLOv5项目进行生活垃圾检测
YOLOv5的代码是开源的,因此我们可以从github上克隆其源码。在不断更新和完善中,YOLOv5就已经有了多个分支,几经更新成为一项比较成熟的深度学习技术了,在发布这个智能垃圾检测系统的时候,YOLOv6-v8的代码版本也有了,不过看起来还有改进和更新的空间,因此这里先使用YOLOv5进行开发了,后续也会升级本系统的算法。
生活垃圾检测分类的数据集已经整理和添加进项目中,项目的目录如下图所示。其中train.py是训练程序,在配置好Python环境和依赖库的基础上,可以点击运行重新进行训练。
一般为了缩短网络的训练时间,并达到更好的精度,我们一般加载预训练权重进行网络的训练。而yolov5给我们提供了几个预训练权重,我们可以对应我们不同的需求选择不同的版本的预训练权重。通过如下的图可以获得权重的名字和大小信息,可以预料的到,预训练权重越大,训练出来的精度就会相对来说越高,但是其检测的速度就会越慢。预训练权重可以通过这个网址进行下载,本次训练自己的数据集用的预训练权重为yolov5s.pt。
(二)数据集及训练
这里我们使用的生活垃圾数据集,包含可降解、纸板、玻璃、金属、纸质、塑料等垃圾类型,每张图片除包括类别标签外,还有一个标注的物体边框(Bounding Box),其类别标注如下图所示。
Chinese_name = {"BIODEGRADABLE": "可降解", "CARDBOARD": "纸板", "GLASS": "玻璃", "METAL": "金属", "PAPER": "纸质", "PLASTIC": "塑料"}
每张图像均提供了图像类标记信息,训练数据集具有7324张图片,验证集2098张,测试集1042张,共计10000余张图像,部分图片的截图如下图所示。
安装好Yolov5的依赖库,配置一个Python3.8然后按照requirements.txt里面的依赖装环境就可以运行了,训练的具体参数需要具体配置,配置数据集的训练集路径、验证集路径、测试集路径,类别nc设置为6,包括"BIODEGRADABLE", "CARDBOARD", "GLASS", "METAL", "PAPER", "PLASTIC"这6类,配置好这些就可运行train.py训练了。
train: ./Garbage/images/trainval: ./Garbage/images/valtest: ./Garbage/images/testnc: 6names: ["BIODEGRADABLE", "CARDBOARD", "GLASS", "METAL", "PAPER", "PLASTIC"]
在深度学习中,我们通常通过损失函数下降的曲线来观察模型训练的情况。而YOLOv5训练时主要包含三个方面的损失:矩形框损失(box_loss)、置信度损失(obj_loss)和分类损失(cls_loss),在训练结束后,我们也可以在logs目录下找到生成对若干训练过程统计图。下图为博主训练生活垃圾类识别的模型训练曲线图。
一般我们会接触到两个指标,分别是召回率recall和精度precision,两个指标p和r都是简单地从一个角度来判断模型的好坏,均是介于0到1之间的数值,其中接近于1表示模型的性能越好,接近于0表示模型的性能越差,为了综合评价目标检测的性能,一般采用均值平均密度map来进一步评估模型的好坏。我们通过设定不同的置信度的阈值,可以得到在模型在不同的阈值下所计算出的p值和r值,一般情况下,p值和r值是负相关的,绘制出来可以得到如下图所示的曲线,其中曲线的面积我们称AP,目标检测模型中每种目标可计算出一个AP值,对所有的AP值求平均则可以得到模型的mAP值。
以PR-curve为例,可以看到我们的模型在验证集上的均值平均准确率为0.546。从训练结果和数据集进行分析,存在一定干扰样本,部分数据集图像中的垃圾相互遮盖,垃圾存在的环境复杂多变,很容易造成模型误检。
3.智能生活垃圾检测
在训练完成后得到最佳模型,接下来我们将帧图像输入到这个网络进行预测,从而得到预测结果,预测方法(predict.py)部分的代码如下所示:
parser = argparse.ArgumentParser()parser.add_argument("--weights", nargs="+", type=str, default="./weights/garbage-best.pt", help="model.pt path(s)") # 模型路径仅支持.pt文件parser.add_argument("--img-size", type=int, default=480, help="inference size (pixels)") # 检测图像大小,仅支持480parser.add_argument("--conf-thres", type=float, default=0.25, help="object confidence threshold") # 置信度阈值parser.add_argument("--iou-thres", type=float, default=0.45, help="IOU threshold for NMS") # NMS阈值# 选中运行机器的GPU或者cpu,有GPU则GPU,没有则cpu,若想仅使用cpu,可以填cpu即可parser.add_argument("--device", default="", help="cuda device, i.e. 0 or 0,1,2,3 or cpu")parser.add_argument("--save-dir", type=str, default="inference", help="directory to save results") # 文件保存路径parser.add_argument("--classes", nargs="+", type=int, help="filter by class: --class 0, or --class 0 2 3") # 分开类别parser.add_argument("--agnostic-nms", action="store_true", help="class-agnostic NMS") # 使用NMSopt = parser.parse_args() # opt局部变量,重要out, weight, imgsz = opt.save_dir, opt.weights, opt.img_size # 得到文件保存路径,文件权重路径,图像尺寸device = select_device(opt.device) # 检验计算单元,gpu还是cpuhalf = device.type != "cpu" # 如果使用gpu则进行半精度推理
应用训练得到的模型,可以运行testPicture.py代码,我们只需更改图片路径,该脚本调用已训练好的模型进行预测并通过OpenCV绘制标记框,运行效果如下图所示。
博主对整个系统进行了详细测试,最终开发出一版流畅得到清新界面,就是博文演示部分的展示,完整的UI界面、测试图片视频、代码文件,以及Python离线依赖包(方便安装运行,也可自行配置环境),均已打包上传,感兴趣的朋友可以通过下载链接获取。
下载链接
若您想获得博文中涉及的实现完整全部程序文件(包括测试图片、视频,py, UI文件等,如下图),这里已打包上传至博主的面包多平台,见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:
在文件夹下的资源显示如下,下面的链接中也给出了Python的离线依赖包,读者可在正确安装Anaconda和Pycharm软件后,复制离线依赖包至项目目录下进行安装,离线依赖的使用详细演示也可见本人B站视频:win11从头安装软件和配置环境运行深度学习项目、Win10中使用pycharm和anaconda进行python环境配置教程。
注意:该代码采用Pycharm+Python3.8开发,经过测试能成功运行,运行界面的主程序为runMain.py和LoginUI.py,测试图片脚本可运行testPicture.py,测试视频脚本可运行testVideo.py。为确保程序顺利运行,请按照requirements.txt配置Python依赖包的版本。Python版本:3.8,请勿使用其他版本,详见requirements.txt文件;
完整资源中包含数据集及训练代码,环境配置与界面中文字、图片、logo等的修改方法请见视频,项目完整文件下载请见参考博客文章里面,或参考视频的简介处给出:➷➷➷
完整代码下载:https://mbd.pub/o/bread/ZJaXlZhp
参考视频演示:https://www.bilibili.com/video/BV1Xx4y1N7YM/
离线依赖库下载:https://pan.baidu.com/s/1hW9z9ofV1FRSezTSj59JSg?pwd=oy4n (提取码:oy4n )
结束语
由于博主能力有限,博文中提及的方法即使经过试验,也难免会有疏漏之处。希望您能热心指出其中的错误,以便下次修改时能以一个更完美更严谨的样子,呈现在大家面前。同时如果有更好的实现方法也请您不吝赐教。
关键词:
当前快报:Go 并发编程(二):锁、Select、Context、定时器
焦点报道:智能生活垃圾检测与分类系统(UI界面+YOLOv5+训练数据集)
当前通讯!Servlet的基本使用
每日资讯:中国移动:命苦
天天速看:鹿客发布掌心锁V5:掌静脉+3D结构光刷脸解锁 3399元起
尼泊尔空难20天就查明原因?为什么东航事故还没有结果?
世界微资讯!腾讯四年磨一剑!结果 让大家看笑话了
OPPO Find X6 Pro:表演一场简单的光影魔术
亨迪药业(301211):3月21日北向资金减持66.63万股
世界最资讯丨uni-app云开发入门
当前资讯!WPF学习-布局
世界热文:全明星爆款APP“偶像驾到”正式上线 主播经济和明星经纪开启新时代
小屏手机真凉了!苹果卖最差的iPhone 14 Plus 出货量也远超13 mini
今日快讯:mysql集群搭建docker-compose方案
上海农商银行完成上海市政府柜台债发售
山姆会员店寿司致多人上吐下泻:官方拒绝三倍赔偿
天天新消息丨致敬葫芦娃?保时捷911 Carrera GTS泰国特别版官图发布
环球最资讯丨14.5英寸超大屏+天玑9000!联想Y900平板正式发布:4999元起
天天观点:13代酷睿+RTX 40!联想拯救者Y7000P 2023电竞本发布:屏幕大升级
13900HX+4090顶配20999元!联想拯救者Y9000P 2023价格公布
环球最新:睡眠报告:山东人上床睡觉时间全国最早、广东人最能熬夜
焦点快看:埃安(埃)
数据库系统
世界看点:day08-2-Thymeleaf
世界快看:使用OpenCVSharp和NAudio库在C#中录制带有声音的视频并保存下来的代码
焦点快报!债市日报:3月21日
天天观速讯丨放假5天!大学生已经在为五一做准备了
外出告别“板砖”电源!联想拯救者推出140W氮化镓适配器
4799元 创维推出新款G60 4K显示器:150Hz高刷 96W反向充电
即时焦点:2023载人航天飞行任务标识正式发布:中国神话神兽鲲元素
全国车企疯狂降价!吉利汽车CEO:吉利不打价格战
每日消息!微服务与rpc/grpc
全球观热点:第132篇:npm第一次使用自己的包(package-lock.json、package.json文件作用说明)
精彩看点:【Visual Leak Detector】在 QT 中使用 VLD(方式一)
热讯:华硕发布新款Vivobook Go 14/15 OLED笔记本:高配酷睿i3-N305
天天观速讯丨真我GT Neo5 1TB存储网友用掉了500多G:直呼“真香”
全球视讯!Win12及DX13要来了?微软预告DirectX全新功能
通信能力是5G的10倍!全球17家运营商发布6G白皮书:预计2030商用
熬夜伤不起!警惕睡眠质量受电子设备影响
记录--前端加载超大图片(100M以上)实现秒开解决方案
关于“堆”题的总体思路
焦点速讯:地表最强AI,GPT-4专治各种不服
个人交340单位交680退休能拿多少?主要看个人缴纳的部分
焦点速讯:匹克态极速浪跑鞋99元抄底:门店299元
天天热文:女子公园租电动车3个多小时扣466元 运营方:上海价格都是这
焦点滚动:别羡慕了!经常不分场合秒睡可能是种病:得看医生
全球观速讯丨宁德时代麒麟电池已量产 同体积比特斯拉电池电量高13%
世界新消息丨省的都是钱 长安汽车推“百亿补贴”:不到11万可买CS75 PLUS
【Visual Leak Detector】安装 VLD
世界速递!三主摄时代来了!OPPO Find X6 Pro大漠银月图赏
全球看点:49dB降噪行业第一!OPPO Enco Free3图赏
1949元 ROG魔方幻“月曜白”路由器今晚开售:三频万兆速率
今热点:微软Bing上线在线绘图功能:文字生成图片 仅支持英文
天天快资讯:安全性远超燃油车!特斯拉发布调查报告:是美国平均水平7.4倍
环球今头条!DVWA-XSS(Reflected)
环球观焦点:关于基于AWS-Cli的方式对EC2及AMI资源批量添加或者删除tag的方法
每日观点:为什么Tomcat架构要这么设计?这篇文章告诉你答案!
全球微动态丨记录监控摄像头的接入过程及web端播放
全球快资讯丨narak靶机
当前快播:新农股份: 2022年度业绩快报
环球观天下!OPPO Find X6 Pro搭载三星E6屏:亮度高达2500nit、支持Pro XDR显示
焦点滚动:用到安卓17没问题!OPPO宣布Find X系列将支持4次大版本更新
449元-6999元!OPPO Find X6发布会四大新品一图看懂
全球速递!报告:2022年中国每四辆新车就有一辆电动车 比亚迪无敌
全球焦点!为什么不建议用redis做消息队列
世界今亮点!【数位DP】计数问题
前端设计模式——状态模式
每日讯息!关于 Vue 列表渲染 key 绑定 index 的性能问题
每日观察!黄金时间·千海金:避险情绪推升金价 但本周的美联储议息会议依然关键
环球观点:杜绝虚标!哈趣投影率先启用中国CVIA亮度标准:成单片式LCD领头羊
OPPO Find N2系列赢麻了!连续三个月折叠屏销量第一
天天速看:自动洗烘拖布 石头自清洁扫拖机器人P10图赏
道奇纯燃油谢幕之作!挑战者SRT恶魔170发布:V8机械增压马力超千匹
简单讲透Mac环境下多版本python的环境变量设置,仅对小白生效
视点!"error LNK2019: 无法解析的外部符号"原因分析
今头条!IDEA Rebuild项目错误:Information:java: java.lang.AssertionError: Value of x -1
对斗破苍穹进行python文本分析
实时焦点:VsCode 常用好用插件/配置+开发Vue 必装的插件
环球简讯:爵士力克国王将湖人挤出附加赛区 迷失盐湖城小萨准三双数据难掩低迷状态
入睡妙招!研究表明穿袜子睡觉更助眠
全球热消息:AMD Zen4霸气!移动版12核心解锁130W 直追170W桌面12核心
"周杰伦演唱会门票"登顶微博热搜 14万张秒售罄
dnf机械牛和悲鸣图在哪里?DNF机械牛和悲鸣的门票分别是什么?
雨过天晴一键还原怎么用?怎么删除雨过天晴一键还原?
OA对话框打不开是怎么回事?OA对话框怎么变成普通对话框?
今日最新!脚本编写的一个通用框架
天天速讯:编写高质量c#代码的20个建议
面试常考:C#用两个线程交替打印1-100的五种方法
全球新资讯:Paramiko_Linux
【全球独家】跟着字节AB工具DataTester,5步开启一个实验
英雄联盟自动关闭是什么意思?英雄联盟自动关闭怎么解决?
冒险岛的时空裂缝是什么?冒险岛怎么提升面板?
全球热推荐:今天春分白昼长了!全国春日地图出炉 看看春天到哪了
天天热议:汽车界“海底捞服务”!蔚来2023无忧服务发布:11600元/年
世界聚焦:重庆不再实行旧车置换:直接给予新车补贴 总计达3000万
世界报道:跨界做智能手表 比亚迪回应:消息属实 4月上新
对标《原神》!二次元开放世界游戏《鸣潮》开启测试招募
热点!如果设备不支持vulkan,就用swiftshader,否则就加载系统的vulkan的正确姿势(让程序能够智能的在vulkan-1.dll和libvk_s
【全球快播报】springboot使用easyExcel导出Excel表格以及LocalDateTime时间类型转换问题
《前端serverless 面向全栈的无服务器架构实战》读书笔记