IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于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分别给出了训练图片文件和验证图片文件的
列表,含有每个图片的路径和文件名
三、剩余步骤

在这里插入图片描述
??由于版权问题,剩下的步骤及开发文档无法公开发表,有兴趣的朋友可以根据我上边图片展示出的步骤,搜索别人的博客实现接下来的步骤,也可私信我留下自己的邮箱,我给需要的朋友发一份,仅用作技术交流。

本文章参考了百度百科,他人技术文章以及哔哩哔哩免费教程,综合整理而来,如有侵权联系删除,小白一个,欢迎大家指导交流!

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:28:33  更:2022-03-08 22:30:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 16:33:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码