Yolov5 AI学习笔记

news2024/9/21 2:47:48

Yolov5 AI学习笔记

环境准备

需要Python的开发环境,安装Anaconda。
Anaconda的一些命令:

# 创建虚拟环境
conda create -n yolo_cpu python=3.9
# 查看虚拟环境
conda env list
# 激活虚拟环境
conda activate <env_name>

Yolov5上手

下载源码

Yolov5源码:https://github.com/ultralytics/yolov5。

git clone https://github.com/ultralytics/yolov5

下载模型

使用已经训练好的模型:https://github.com/ultralytics/yolov5/releases。

例如yolov5s.pt,放置在yolov5目录。

安装依赖环境

在requirements.txt里面记录了yolo的依赖环境,可以使用pip安装。

# 使用国内源,不一定可以用
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 或者
pip install -r requirements.txt 

测试

原理其实就是是在电脑上用python加载训练好的模型,然后将输入送到模型中获取识别结果。

图片

目录下有提供的测试图片。
在这里插入图片描述

python detect.py --source ./data/images/bus.jpg

识别结果路径见打印。这里用的是CPU, 因为requirements.txt 依赖包里默认安装的 pytorch-cpu 版。
在这里插入图片描述
在这里插入图片描述

视频

在电脑上随便找了个mp4文件。
在这里插入图片描述

python detect.py --source data/mp4/GiantKillerPlants_60sec_5p1_AAC.mp4

在这里插入图片描述
在这里插入图片描述

使用GPU

确定Cuda版本

nvidia-smi

在这里插入图片描述

官网查看安装命令 https://pytorch.org/get-started/locally/
在这里插入图片描述

# 下载会有点慢
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 

装好之后可以找到GPU了,但是报错了。
在这里插入图片描述
conda list查看当前环境的包,发现torchvision不是cuda版本。
在这里插入图片描述

卸载后重装。

pip uninstall torchvision 
pip3 install torchvision --index-url https://download.pytorch.org/whl/cu121 

测试

python detect.py   --source ./data/images/bus.jpg

在这里插入图片描述
识别结果一致,耗时少了40ms。

训练模型

官方说明
https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data

labelImg标注工具安装

git clone https://gitee.com/ochip/labelImg.git

# conda环境
conda install pyqt=5
conda install -c anaconda lxml
pyrcc5 -o libs/resources.py resources.qrc
# 运行软件
python labelImg.py

在这里插入图片描述
软件预定义了一些类别,可以进行添加。
在这里插入图片描述

后面需要设置图片的文件夹和保存的文件夹,格式选择为yolo,可以在view勾选自动保存。
在这里插入图片描述

准备数据集

这里做一个识别用过的卫生纸的功能,把predefined_classes.txt里内容删除掉,将waste paper towels加入,然后用手机拍一些照片。

文件夹的名字需要是images。

在这里插入图片描述

使用labelImg进行标注,保存到labels文件夹,创建框选择类别即可。

在这里插入图片描述

创建yaml文件。
在这里插入图片描述
文件内容:

# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]
train: ../my_model/images/
val: ../my_model/images/
# number of classes
nc: 1

# class names
names: ['waste paper towels']

模型训练

在命令行里输入。

# 报没有内存
python train.py --img 640 --batch 50 --epochs 100 --data ../my_model/my_model.yaml --weights yolov5s.pt --nosave --cache
# 改成320正常运行
python train.py --img 320 --batch 50 --epochs 100 --data ../my_model/my_model.yaml --weights yolov5s.pt --nosave --cache

在这里插入图片描述

测试

直接用训练的图片进行测试。

python detect.py --weights runs/train/exp21/weights/best.pt --img 640 --conf 0.25 --source ..\my_model\images\2024_08_25_19_34_IMG_0249.JPG

在这里插入图片描述

参考文章

  1. 教程:超详细从零开始yolov5模型训练
  2. YOLOv8问题分析和解决

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

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

相关文章

上下文的弹性

“上下文的弹性”是指在自然语言处理中&#xff0c;模型对输入文本的上下文信息的理解和利用能力。它描述了模型在处理文本时能够根据上下文信息来调整其输出的程度。具有弹性上下文的模型可以更好地处理自然语言中的语义和语境&#xff0c;从而提供更准确和有用的回答。这种弹…

这才是老板喜欢的产品经理简历

速创猫今天给大家分享的是应届毕业生产品经理简历优化案例&#xff0c;希望对大家求职有帮助。速创猫总结了以下七条简历制作干货&#xff0c;希望对大家有帮助&#xff1a; 明确目标岗位&#xff1a;在简历的开头&#xff0c;明确指出你申请的职位&#xff0c;让招聘者一眼就能…

聚焦AI4SE软件工程领域,基于Multi Agent System多智能体系统开发的最新成果,实现软件开发领域的PUGC!

可能有很多小伙伴不了解AI4SE是什么&#xff0c;其实从字意上就不难看出一定是和AI相关。 AI4SE&#xff08;Artificial Intelligence for Software Engineering&#xff09;是指将人工智能技术应用于软件工程领域。 其核心目标是通过自动化和智能化技术降低软件开发的复杂性…

MySQL 官方高可用方案 InnoDB Cluster

文章目录 前言1. 方案构成2. 使用要求和限制3. 集群部署3.1 环境说明3.2 软件下载3.2 MySQL Server 安装3.3 MySQL Shell 安装3.4 检测实例是否符合资格3.5 创建集群3.6 向集群中添加节点3.7 配置 Router3.8 测试验证 4. 集群运维4.1 Router 服务管理4.2 MySQL 服务管理4.3 集群…

结束Linux特定端口上的进程,超级实用!

在使用 Linux 时&#xff0c;您可能会遇到特定端口被进程占用的情况。了解如何终止在特定端口上运行的进程可能非常有用&#xff0c;特别是对于排除故障和有效地管理系统而言。 本文中&#xff0c;我们将完成查找端口号、识别使用该端口的进程以及安全停止该进程。 详细步骤 …

【最全深度学习介绍】基本概念、类型、应用、优缺点、与机器学习区别是什么?

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发…

PostgreSQL技术内幕6:PostgreSQL索引技术

文章目录 0. 简介1.PG索引类型介绍2. PG创建索引说明及索引属性查看2.1 创建说明2.2 查看方式2.2.1 查看PG默认支持的索引及对应的Handler类型2.2.2 查看B树索引属性 3. 索引选择3.1 查看索引情况 4.PG中B-Tree索引原理4.1 页存储结构 5.索引代码分析5.1 不同索引结构解析5.1.1…

郑州建站网页手机版

随着移动互联网的迅猛发展&#xff0c;越来越多的企业和个人开始重视手机网页的建设。在郑州&#xff0c;这一趋势尤为明显&#xff0c;搭建手机网页已经成为提升品牌形象和吸引客户的重要方式。本文将就郑州建站网页手机版的现状、重要性及注意事项进行探讨。 首先&#xff0c…

LabVIEW中升采样和降采样

升采样 (Upsampling) 和 降采样 (Downsampling) 是信号处理中的两种常见操作&#xff0c;用于改变信号的采样率。它们在数字信号处理&#xff08;DSP&#xff09;和许多工程应用中非常重要&#xff0c;尤其是在处理不同采样率的数据流时。 升采样 (Upsampling) 升采样是增加信…

SpringBoot 引入使用消息队列RabbitMQ通信 配置连接 无路由模式

介绍 请先对Rabbitmq的用户和权限配置好在进行往下的操作 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>下面将演示最简单的例子不过路由 生产者 -&g…

IDEA工程连接不上Mysql数据库

在进行项目创建的时候&#xff0c;发现IDEA工程连接不上数据库。即使登陆的用户名和密码全部正确也报错。 在服务里发现Mysql80没有启动 直接利用命令提示符启动&#xff0c;也显示启动失败。 通过 netstat -ano | findstr :3306 查看数据库默认端口3306的占用情况&#…

【CSP:202009-2】风险人群筛查(Java)

题目链接 202009-2 风险人群筛查 题目描述 求解思路 本题的数据量并不大&#xff0c;直接模拟即可。x和y表示每次读取的坐标点。res1表示经过高风险场地的人数&#xff0c;res2表示在高风险场地停留的人数。s用来记录连续在高风险场地停留的点数。r1表示是否经过高风险场地&…

【学习笔记】卫星通信NTN 3GPP标准化进展分析(三)- 3GPP Release17 内容

一、引言&#xff1a; 本文来自3GPP Joern Krause, 3GPP MCC (May 14,2024) Non-Terrestrial Networks (NTN) (3gpp.org) 本文总结了NTN标准化进程以及后续的研究计划&#xff0c;是学习NTN协议的入门。 【学习笔记】卫星通信NTN 3GPP标准化进展分析&#xff08;一&#xff…

CART算法原理及Python实践

一、CART算法原理 CART&#xff08;Classification And Regression Trees&#xff09;算法是一种用于分类和回归任务的决策树学习技术。它采用贪心策略递归地划分数据集&#xff0c;以构建一棵二叉决策树。CART算法的原理可以概括为以下几个关键步骤&#xff1a; 1. 特征选择与…

如何在 CentOS 6 上安装 Nagios

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 Status: 已弃用 本文涵盖的 CentOS 版本已不再受支持。如果您目前正在运行 CentOS 6 服务器&#xff0c;我们强烈建议升级或迁移到受支持…

什么是单片机?为什么要学习单片机?

实现目标 1、熟悉单片机定义、特点、应用场景、发展历史等&#xff1b; 2、理解为什么要学习单片机&#xff1f;怎样学习单片机&#xff1f; 一、单片机是什么&#xff1f; 1、定义 单片机是集成在一块&#xff08;单&#xff09;芯片上的微型计算机。平时我们把 MCU&#x…

E. Sheep Eat Wolves

https://codeforces.com/gym/104869/problem/E 赛时队友想贪心&#xff0c;贪不了一点&#xff0c;我想了数学办法每次都送固定的发现送过去就不满足了 赛后补&#xff0c;暴力做O&#xff08;n4) 至少要几次才能把安全所有羊送到对岸去 考虑最短路,bfs,用数组存下所有状态 …

nerf论文代码理解

近年来&#xff0c;生成式AI(AGI)快速发展&#xff0c;各类生成式模型层出不群&#xff0c;但我更觉得具有物理意义的生成式AI将是未来革命性技术。因此也在抽空看看关于三维重建的知识&#xff0c;这篇文章就是记录我对nerf的理解。 一、论文理解 首先&#xff0c;需要知道ne…

车载冰箱的介绍

车载冰箱产业链的上游环节主要涉及制冷模块的研发与制造&#xff0c;这一环节根据所采用的制冷技术不同而展现出各自的特点。压缩机制冷模块和半 导体制冷模块是车载冰箱制冷系统的核心组成部分&#xff0c;它们在设计、材料选择和制造工艺上各有千秋。 车载冰箱的原理图 车载…

HTB-Three(云服务)

前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天给大家讲解Three靶机 渗透过程 信息搜集 服务器开启了22 SSH 和 80 HTTP服务端口 扫描目录 服务器只有一个image图片文件&#xff0c;ssh 需要账号名密码 绑定域名 进行子域名扫描探测 疑似域名&#xff0c;尝…