基于YOLOv5开源项目实现垃圾分类功能(2)

这篇具有很好参考价值的文章主要介绍了基于YOLOv5开源项目实现垃圾分类功能(2)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  在上篇文章中,我们已经了解并学会如何使用yolov5这个开源项目,在这篇文章中,我们将会进行模型训练,使用自己训练出的权重文件实现我们的垃圾分类功能。

一、基本概念

1、什么是权重文件?

  权重文件保存的就是训练好的网络各层的权值,也就是通过训练集训练出来的。训练好之后,应用时只要加载权值就可以,不再需要训练集了.

2、GPU与CPU的区别

参考学习:https://zhuanlan.zhihu.com/p/106385370?ivk_sa=1024320u

  CPU更为灵活能胜任更多的任务。GPU能做什么?关于图形方面的以及大型矩阵运算,如机器学习算法、挖矿、暴力破解密码等,GPU会大幅提高计算效率。简单地说,CPU擅长分支预测等复杂操作,GPU擅长对大量数据进行简单操作。一个是复杂的劳动,一个是大量并行的工作。

3、深度学习框架

参考学习:https://baike.baidu.com/item/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%A1%86%E6%9E%B6/22718084?fr=aladdin

  在开始深度学习项目之前,选择一个合适的框架是非常重要的,因为选择一个合适的框架能起到事半功倍的作用。研究者们使用各种不同的框架来达到他们的研究目的,侧面印证出深度学习领域百花齐放。全世界最为流行的深度学习框架有PaddlePaddle、Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch。

  在深度学习初始阶段,每个深度学习研究者都需要写大量的重复代码。为了提高工作效率,这些研究者就将这些代码写成了一个框架放到网上让所有研究者一起使用。接着,网上就出现了不同的框架。随着时间的推移,最为好用的几个框架被大量的人使用从而流行了起来。 [1] 全世界最为流行的深度学习框架有PaddlePaddle、Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch。

---------以上内容来源于百度百科

4、PyTorch

PyTorch官方教程中文版:https://www.pytorch123.com/
PyTorch官方网址:https://pytorch.org/

  PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够 实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。 PyTorch提供了两个高级功能: 1.具有强大的GPU加速的张量计算(如Numpy) 2.包含自动求导系统的深度神经网络 除了Facebook之外,Twitter、GMU和Salesforce等机构都采用了PyTorch。

二、下载和安装nvidia显卡驱动

参考学习:https://zhuanlan.zhihu.com/p/266652844

安装教程文档:
链接:https://pan.baidu.com/s/1p4lu2AxepDtn9eu81we73g 
提取码:l3xz 
--来自百度网盘超级会员V5的分享

三、训练自己的模型并分析

一、YOLOv5代码修改(为支持中文标签)
	1)train.py文件
		with open(opt.data) as f:
			改为
		with open(opt.data, encoding='UTF-8') as f:
	
	2)test.py文件
		with open(opt.data) as f:
			改为
		with open(opt.data, encoding='UTF-8') as f:

	3) utils/general.py文件
		导入包from PIL import Image, ImageDraw, ImageFont
	
	4) utils/plots.py文件
		(1) 修改 plot_one_box 函数,if label之后的代码改为
			if label:
				tf = max(tl - 1, 1) # font thickness
				t_size = cv2.getTextSize(label, 0, fontScale=tl / 3, thickness=tf)[0]
				font_size = t_size[1]
				font = ImageFont.truetype('msyh.ttc', font_size)
				t_size = font.getsize(label)
				c2 = c1[0] + t_size[0], c1[1] - t_size[1]
				cv2.rectangle(im, c1, c2, color, -1, cv2.LINE_AA) # filled
				img_PIL = Image.fromarray(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))
				draw = ImageDraw.Draw(img_PIL)
				draw.text((c1[0], c2[1] - 2), label, fill=(255, 255, 255), font=font)
				
				return cv2.cvtColor(np.array(img_PIL), cv2.COLOR_RGB2BGR)
		
		(2) plot_images 函数中
			plot_one_box(box, mosaic, label=label, color=color, line_thickness=tl)
				改为
			mosaic = plot_one_box(box, mosaic, label=label, color=color, line_thickness=tl)

	5) detect.py文件
		plot_one_box(xyxy, im0, label=label, color=colors[int(cls)], line_thickness=3)
			改为
		im0 = plot_one_box(xyxy, im0, label=label, color=colors(c, True),
line_thickness=3)
二、 准备训练集和验证集
	1)下载和解压数据集
		解压VOCdevkit_trash.zip和testfiles.zip
		
		数据集使用PASCAL VOC数据集的目录结构:
			建立文件夹层次为 VOCdevkit\VOC2007
			VOC2007下面建立两个文件夹:Annotations和JPEGImages
		
		JPEGImages放所有的训练和测试图片;Annotations放所有的xml标记文件
	
	2)使用python脚本对数据集进行训练集和验证集划分

	执行python脚本:python prepare_data.py
	
	在VOCdevkit/VOC2007目录下可以看到生成了文件夹YOLOLabels
	
	YOLOLabels下的文件是images文件夹下每一个图像的yolo格式的标注文件,这是由
annotations的xml标注文件转换来的;

	在VOCdevkit目录下生成了images和labels文件夹:
		images文件夹下有train和val文件夹,分别放置训练集和验证集图片;
		labels文件夹有train和val文件夹,分别放置训练集和验证集标签(yolo格式)
	
	在yolov5下生成了两个文件yolov5_train.txt和yolov5_val.txt。
	
	yolov5_train.txt和yolov5_val.txt分别给出了训练图片文件和验证图片文件的
列表,含有每个图片的路径和文件名
三、剩余步骤

基于YOLOv5开源项目实现垃圾分类功能(2)
  由于版权问题,剩下的步骤及开发文档无法公开发表,有兴趣的朋友可以根据我上边图片展示出的步骤,搜索别人的博客实现接下来的步骤,也可私信我留下自己的邮箱,我给需要的朋友发一份,仅用作技术交流。

本文章参考了百度百科,他人技术文章以及哔哩哔哩免费教程,综合整理而来,如有侵权联系删除,小白一个,欢迎大家指导交流!文章来源地址https://www.toymoban.com/news/detail-442359.html

到了这里,关于基于YOLOv5开源项目实现垃圾分类功能(2)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python开发项目基于语音识别的智能垃圾分类系统的设计与实现【源码+论文+演示视频+包运行成功】

     博主介绍 :擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 Java项目精品实战案例(300套) Java微信小程序项目实战(200套) Python项目精品实战案例(100套) 目录

    2024年02月12日
    浏览(44)
  • 毕设开题分享 stm32智能语音垃圾分类系统(项目开源)

    Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目 毕业设计 stm32智能语音垃圾分类系统(项目开源) 大家可用于 课程设计 或 毕业设计 🧿 项目分享: https://gitee.com/sinonfin/sharing 学长设计的系统主要使用 stm32单片机为基础设计并开发一个智能垃圾桶系统。该系

    2024年01月23日
    浏览(75)
  • 单片机毕设 stm32智能语音垃圾分类系统(项目开源)

    Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目 毕业设计 stm32智能语音垃圾分类系统(项目开源) 大家可用于 课程设计 或 毕业设计 🧿 项目分享:见文末! 学长设计的系统主要使用 stm32单片机为基础设计并开发一个智能垃圾桶系统。该系统实现智能开盖, 垃

    2024年03月10日
    浏览(62)
  • 基于微信小程序的垃圾分类小程序(源码已开源)

    之前因为工作原因接触到垃圾分类小程序, 觉得挺有意思的,就根据收集的资源搞了一个, 搞着搞着发现垃圾分类最重要的并不是代码 而是 垃圾分类的数据集 , 所以花了好一阵时间终于收集到了足够的垃圾分类数据了, 下面就把这个小程序分享出来 1、垃圾分类小程序,特点是

    2024年02月09日
    浏览(65)
  • YOLOv5实现目标分类计数并显示在图像上

            有同学后台私信我,想用YOLOv5实现目标的分类计数,因此本文将在之前目标计数博客的基础上添加一些代码,实现分类计数。阅读本文前请先看那篇博客,链接如下: YOLOv5实现目标计数_Albert_yeager的博客         以coco数据集为例,其类别如下(共80类)。注意,每个

    2024年02月08日
    浏览(80)
  • 基于深度学习的计算机视觉垃圾分类项目解析

    项目地址:https://gitcode.com/YaoHaozhe/Computer-vision-based-on-deep-learning-garbage-classification 在这个数字化的时代,数据已经成为我们生活和工作的重要组成部分,而其中,图像数据的处理能力更是关键。YaoHaozhe 创建的这个基于深度学习的计算机视觉垃圾分类项目,提供了一个实用的解决

    2024年04月12日
    浏览(30)
  • 手把手教你用Yolov5 (v6.2) 训练分类模型 基于《Kaggle猫狗大战》案例

    在8月17日晚上, YOLOv5 官方发布了 v6.2 版本, v6.2 版本支持分类模型训练、验证、预测和导出; v6.2 版本的推出使得训练分类器模型变得超级简单! 下一个版本 v6.3 计划于9月发布,将为 YOLOv5 带来官方实例分割支持,今年晚些时候将发布一个主要的 v7.0 版本,更新所有3个任务

    2024年01月18日
    浏览(54)
  • 机器学习——基于朴素贝叶斯分类算法实现垃圾邮件分类

    贝叶斯定理: 贝叶斯理论指的是,根据一个已发生事件的概率,计算另一个事件的发生概率。贝叶斯理论从数学上的表示可以写成这样:  ,在这里A和B都是事件, P(B)P(B)不为0。 在贝叶斯定理中: 1. P(A) 称为”先验概率”,即在B事件发生之前,我们对A事件概率的一个判断。如

    2024年02月04日
    浏览(51)
  • 基于Tkinter实现一个垃圾分类答题软件

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 一、Tkinter 二、最终效果 三、项目过程 3.1分析布局 3.2创建窗口 3.3构建题库 3.4创建组件

    2024年01月21日
    浏览(62)
  • 基于单片机的语音识别智能垃圾桶垃圾分类的设计与实现

           功能介绍 以51单片机作为主控系统; 液晶显示当前信息和状态; 通过语音识别模块对当前垃圾种类进行语音识别;  通过蜂鸣器进行声光报警提醒垃圾桶已满; 采用舵机控制垃圾桶打开关闭; 超声波检测当前垃圾桶满溢程度; 整个电路以5v供电;  电路图   源代

    2024年02月13日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包