AI学习笔记四:yolov5训练自己的数据集

news2024/11/26 19:59:23

若该文为原创文章,转载请注明原文出处。

一般情况下,大部分人的电脑都是没有cpu的,cpu也是可以训练的,但花费的时间太长,实际200张图片,使用CPU训练300轮花了3天,本章记录使用云服务器来训练自己的数据集。

使用的云服务器是AutoDL,一直在使用,性价比还是比较高的。

AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL

训练疲劳驾驶行为检测

一、准备数据集

数据集可以自己拍照,也可以网上找,博主在网上找到了一份疲劳驾驶行为的图片,直接拿过来用了,共有2千多张。 

准备好数据后需要数据标注,数据标注是大部分人工智能算法得以有效运行的关键环节。数据标注的过程是通过人工贴标的方式,为机器系统可供学习的样本。yolov5标注使用的是labelimg软件。

需要数据集,下方评论或@博主。标注数据是在本地电脑操作,标注后才把数据上传到云服务器训练

二、labelimg

1、激活环境

conda activate yolo

img编辑

2、安装labelimg

# 使用pip 安装
pip install labelimg

安装后,在终端输入labelimg启动软件

3、标注

标记完成的数据请按照下面的格式进行放置,方便程序进行索引。 colo128 ├─ images │ ├─ test # 下面放测试集图片 │ ├─ train # 下面放训练集图片 │ └─ val # 下面放验证集图片 └─ labels ├─ test # 下面放测试集标签 ├─ train # 下面放训练集标签 ├─ val # 下面放验证集标签

3.1 打开图片及设置标注文件保存的目录并设置自动保存,这里需要主要选择yolo格式

3.2 开始标注,画框,标记目标的label,crtl+s保存,然后d切换到下一张继续标注,不断重复重复

标注完成后,把colo128打包压缩下,准备上传到服务器。

三、训练数据集

1、注册AutoDL

自行注册,云服务可以按时收费,也可以其他方式,自己选择。

2、创建实例

配置选择,选择的是3090,也可以其他,我比较喜欢就是直接选择好社区镜像,就给你创建好环境

创建后开启,可以通过多种方式登录,为了方便,直接使用JupyterLab

JupyterLab,打开终端就可以看到终端界面了,环境也安装好了

3、上传数据集和下载YOLOV5-5.0

删除环境自带的yolov5版本,然后下载yolov5-5.0版本,并上传到服务器,可以直接拖进去,并把标注好的数据也一并上传。

4、修改配置文件

博主是 基于colo128配置文件训练的,这里需要修改两个文件

修改文件一:复制yolov5-5.0/data/colo128.yaml为pilao_coco128.yaml

# 修改一:数据集路径
train: ../coco128/images/train2017/  # 128 images
val: ../coco128/images/train2017/  # 128 images
​
# number of classes
# 修改,原本是80,修改成3
nc: 3
# 修改二:class names即标注的类,数据集标注了3类,所以修改成3类,colo128是80类
# class names
names: [ 'closed_eye','closed_mouth','open_eye']

修改文件二:复制yolov5-5.0/models/yolov5s.yaml为pilao_yolov5s.yaml

注意不一定是yolov5s.yaml,这是训练时参考的模型,可以是其他的,自行了解

# parameters
# 修改,原本是80,修改成3
nc: 3  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple

5、训练

python train.py --img 640 --batch 16 --epochs 300 --data ./data/pilao_coco128.yaml --cfg ./models/pilao_yolov5s.yaml

看到进度,已经在运行了,训练了大概3个多小时。

最后可以在runs/train/expX/weights目录下看到生成了两个pt文件

6、测试

python detect.py --source data/images/zidane.jpg --weights runs/train/exp2/weights/best.pt

路径自行修改。

如有侵权,或需要完整代码,请及时联系博主。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/794076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【无废话解决bug】python dash库 127.0.0.1 拒绝了我们的连接请求

无废话。 Q: python dash库在127.0.0.1无法打开–访问本地IP时显示拒绝访问 在python3写好了代码,打算运行代码后在浏览器127.0.0.1查看,浏览器提示:127.0.0.1 拒绝了我们的连接请求。 A:【本解决方法对dash库问题适用,其他涉及…

【前端知识】React 基础巩固(三十四)——组件中的异步操作及优化

React 基础巩固(三十四)——组件中的异步操作及优化 一、待优化的异步请求流程 通过组件的生命周期来完成网络请求,网络请求的异步代码直接放在组件中 import React, { PureComponent } from "react"; import { connect } from "react-redux"…

OLED透明屏的安装价格与安装步骤

OLED透明屏的安装价格因各种因素而异,例如屏幕尺寸、分辨率、透明度等。一般来说,安装OLED透明屏需要考虑到以下几个步骤: 准备表面:首先,需要清理屏幕表面以确保透明度。然后,需要钻孔以安装屏幕。 安装框…

Java在线OJ项目(一)、多进程编程实现 做题代码的编译和运行

在线OJ项目(一)、多进程编程实现 做题代码的编译和运行 一、回顾线程和进程二、进程比线程的优势三、多进程编程样例四、多进程思想 实现对代码 的编译 以及 运行两个功能CommandUtil 由于我们是在线oj,所以得编译用户的代码不仅编译 还需要 …

TEE GP(Global Platform)安全认证方案

TEE之GP(Global Platform)认证汇总 一、安全认证介绍 GlobalPlatform的安全认证计划通过独立的安全评估,确认安全组件是否符合通用标准认可的Protection Profile。它确保安全组件满足为特定服务定义的所需安全级别,使服务提供商能够自信有效地管理风险并…

技术干货|详解威胁情报在WAF类产品中如何发挥最大价值?

在产业互联网发展的过程中,企业也将面临越来越多的安全风险和挑战,威胁情报在企业安全建设中的参考权重大幅上升。早期安全产品对威胁的鉴定是“一维”的:鉴定文件是黑(恶意文件)、白(正常文件)…

数据结构初阶--带头双向循环链表

目录 一.带头双向循环链表的定义 二.带头双向循环链表的功能实现 2.1.带头双向循环链表的定义 2.2.带头双向循环链表的结点创建 2.3.带头双向循环链表的初始化 2.4.带头双向循环链表的打印 2.5.带头双向循环链表的判空 2.6.带头双向循环链表的尾插 2.7.带头双向循环链…

要做接口并发性能测试,总得先学会分析吧!

引言 这篇是我3月份在公司内部做的技术分享内容,由于我在公司内部分享的内容较多以及一些特殊性,我摘取了接口并发测试从设计思路整理→测试方案设计→设计分析→代码编写这套流程(我不会承认我把40多页PPT的内容都放在这篇博文里&#xff0…

高压放大器在无线电能传输中的作用和用途

高压放大器是一种电子放大器,主要用于放大输入信号的幅度,通过输出端输出一个较大的电压信号,以达到强化原始信号的功能。在无线电能传输中,高压放大器扮演着非常重要的角色。本文将从无线电能传输的定义、高压放大器的特性以及高…

mysql数据备份与还原进阶操作

创建以下表 创建普通用户backup并给权限 备份数据库school到/backup目录 mysqldump -u backup -p school > /backup/school.sql备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库 mysqldump -u backup -p --add-drop-d…

mysql mha高可用

目录 1.MHA是什么以及作用 2.工作原理 3.案例 1.MHA是什么以及作用 MHA(Master High Availability) MySQL高可用环境下故障切换和主从复制的软件 MHA 的出现就是解决MySQL单点故障 MySQL故障切换过程中 MHA能做到0-30秒内自动完成故障切换操作 MHA能在故障切换的过程中最大程…

行业追踪,2023-07-26,如果主力不骗人,化工原料和磷化工有第一波机会

自动复盘 2023-07-26 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

1.java入门(基础概念与常识)

文章目录 1.1.java语言有哪些特点?1.2.关于JVM JDK和JRE最详细通俗的解答1.2.1JVM1.2.2 JDK和JRE 1.3. Oracle JDK 和 OpenJDK 的对比1.4. Java 和 C的区别?1.5. import java 和 javax 有什么区别?1.6. 为什么说 Java 语言“编译与解释并存”&#xff1…

Docker仓库

Docker仓库 一、docker Harbor简介 Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Rol…

Python 基础(十八):异常处理

❤️ 博客主页:水滴技术 🌸 订阅专栏:Python 入门核心技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 文章目录 一、异常是什么?二、异常处理的基本语法三、捕获特定的异常类型四、finall…

P3183 [HAOI2016] 食物链

题目描述 如图所示为某生态系统的食物网示意图,据图回答第 1 小题 现在给你 n 个物种和 m 条能量流动关系,求其中的食物链条数。物种的名称为从 1 到 n 编号 M 条能量流动关系形如 1,2,3​,…,am−1​,bm−1​,am​,bm​。其中 ai​ 和 bi​ 表示能量从物…

《零基础入门学习Python》第067讲:GUI的终极选择:Tkinter4

今天我们来学习 Entry 组件,也就是我们平时所说的 输入框。 输入框是跟程序打交道的途径,比如 程序要求你输入 账号 和 密码。那么它就要提供两个输入框,并且接收密码的输入框还会用 星号 * 将实际的内容给隐藏起来。 我们学了还几个 tkint…

uniapp 微信小程序 navigationBarBackgroundColor 标题栏颜色渐变

大体思路: 第一步:“navigationStyle”:“custom” 第二步: template内 重点:给view添加ref“top” 第三步:添加渐变色样式 1、pages.json {"path" : "pages/user/user","style" : …

FAQ文档的重点注意事项!别踩坑了

在很多优秀的大企业中,FAQ文档是企业运营管理中不可或缺的重要部分。但是也仅限大企业,很多企业目前还是没有这个意识的。一方面原因是因为缺乏这个客户服务的意识,另一方面也和技术水平不足有关。但是其实现在有不少的第三方搭建平台可以帮助…

L---泰拉瑞亚---2023河南萌新联赛第(三)场:郑州大学

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 示例1 输入 1 10 3 5 输出 3 说明 只有一把回旋镖,你可以先打两次伤害为3的,再打一次倾尽全力的,造成的伤害为5。总伤害为33511,即可获得胜…