windows下配置pytorch + yolov8+vscode,并自定义数据进行训练、摄像头实时预测

news2024/12/23 6:31:34

最近由于工程需要,研究学习了一下windows下如何配置pytorch和yolov8,并自己搜集数据进行训练和预测,预测使用usb摄像头进行实时预测。在此记录一下全过程

一、软件安装和配置

1. vscode安装

windows平台开发python,我采用vscode作为基础开发平台,点击 https://code.visualstudio.com/进入vscode官网,下载对应的稳定版本即可。
下载安装完成后,在插件界面搜索 python,找到第一个即可安装好python开发环境。在这里插入图片描述
python我安装的是3.10版本

2. miniconda3安装

miniconda3可以用于配置pytorch的开发环境,https://docs.conda.io/en/latest/miniconda.html在官网下载对应版本即可,我的是python3.10,windows64,所以下载的是如图所示的安装包
在这里插入图片描述
配置path变量:找到miniconda3安装路径,参照下图设置环境变量
在这里插入图片描述

设置完成后,在开始菜单中找到Anaconda Prompt(miniconda3),打开。

  1. 添加清华镜像源,提高软件下载速度
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config  --set show_channel_urls yes
  1. 配置miniconda开发环境
    使用一下命令,创建一个pytorch虚拟环境
conda create -n pytorch python=3.10

-n 后面跟虚拟环境名称
python=设置python版本

  1. 通过以下命令激活虚拟环境
conda activate pytorch

之后,可以在该环境下配置pytorch

3. pytorch安装

进入pytorch官网https://pytorch.org/,查找对应的下载命令,我的是windows、CPU、python版本,所以选择如下图所示配置
在这里插入图片描述
复制图中对应的安装命令,即可安装pytorch

conda install pytorch torchvision torchaudio cpuonly -c pytorch

在这里插入图片描述

注意,此命令在激活的pytorch环境下安装

  • 打开vscode,配置pytorch环境
    在vscode中输入ctrl+shif+p打开命令行界面,输入Python:Select Interpreter选择python的开发编译环境
    在这里插入图片描述
    选择Python 3.10.12(‘pytorch’)作为当前环境即可
    在这里插入图片描述
    新建test.py文件,输入如下代码,按F5执行,若成功,则pytorch配置成功。
import torch
print(torch.__version__)
print(torch.cuda.is_available())

或者执行

python test.py

在这里插入图片描述

4. yolov8安装配置

在pytorch环境激活的情况下,使用一下命令安装yolov8

pip install ultralytics

安装完成后,通过命令进行测试

yolo task=detect mode=predict model=yolov8n.pt  imgsz=640 show=True save=True

命令会自己到github下载对应的测试数据bus.jpg和zidane.jpg两张图片 和默认的权重文件yolov8n.pt
在这里插入图片描述
如果无法下载yolov8n.pt,可以自己下载后,复制到对应的路径下也可以。

D:\Install\miniconda3\envs\pytorch\Lib\site-packages\ultralytics\yolo\v8\detect

如果缺少环境,下载ultralytics源码,执行下面命令安装依赖

pip install -r requirements.txt

二、yolov8自定义数据集

  1. 数据采集,根据自己项目需要,采集场景图片,图像大小没关系,后期yolo会根据配置,自动调整大小
  2. 对数据进行标注
    安装labelImg数据标注工具,之后对数据进行标注
    在这里插入图片描述
    1、打开标注前图像数据所在文件夹
    2、设置标注后标签文件保存位置,该位置下仅保存txt类型的标签数据
类别 box中心x box中心y box宽  box高
0 0.044531 0.735417 0.023438 0.048611
0 0.084766 0.625694 0.025781 0.054167
0 0.154297 0.620833 0.022656 0.058333
0 0.275000 0.584028 0.037500 0.076389
0 0.289844 0.868750 0.034375 0.070833

3、数据分类
按照图像、标签新建文件夹,并在每个文件夹下新建train和val文件夹,注意路径中不能有中文,路径如下所示
在这里插入图片描述
在这里插入图片描述
使用如下代码,将原始图像数据和标注数据进行分类

import sys,os
import shutil
imgPath = "F:/images/"
labelPath = "F:/data/Annotation"
yoloImagePath = "F:/data/images"
yoloLabelsPath = "F:/data/labels"

# labels = os.listdir(labelPath)
f=os.walk(labelPath)
#80%数据做训练,20%做矫正
persent=0.8
for dirpath,dirNames,filenames in f:
	trainNum = int(len(filenames)*persent)
	for i,filename in enumerate(filenames):
		name=filename.split('.')[0]
		if name=='classes':
			continue

		imgSrc=imgPath+name+".jpg"
		imgDst=''
		labelSrc=labelPath+"/"+filename
		labelDst=''
		# 训练数据
		if i<trainNum:
			imgDst = yoloImagePath+"/train"
			labelDst = yoloLabelsPath+"/train"
		else:
		    #矫正数据
			imgDst = yoloImagePath+"/val"
			labelDst = yoloLabelsPath+"/val"
		shutil.copy(imgSrc,imgDst)
		shutil.copy(labelSrc,labelDst)



4.新建配置文件.yaml,用于指定训练数据、验证数据的路径

#训练数据路径
train: F:/data/images/train
#验证数据路径
val: F:/data/images/val
# number of classes
nc: 1
# class names
names: ['acupoint']

自此,自定义数据的搜集和标注完成

三、自定义数据训练

接下来开始进行训练,在开始菜单打开anaconda prompt(miniconda3),使用conda activate pytorch后,使用以下命令

yolo task=detect mode=train model=yolov8n.pt data=F:/data/acupoint.yaml epochs=100 batch=16

task:指定运行的任务类型,有detect\segment\classify\init
mode:指定是train、predict、val
model:选择配置值权重模型
data:指定.yaml所在位置,
epochs:迭代次数
batch:一次加载多少张图片后更新权重
训练后,结果默认保存在以下目录中,

D:\Install\miniconda3\envs\pytorch\Lib\site-packages\ultralytics\yolo\v8\detect\runs\detect\train2

在这里插入图片描述
其中best.pt即为后续预测需要使用的模型文件

四、摄像头数据预测

训练结束后,使用

yolo task=detect mode=predict model=./runs/detect/train2/weights/best.pt source=0 show=True save=True

打开摄像头开始进行预测,默认图像大小为480x640.
其中model:自定义数据训练的模型结果
source:指定预测数据,可以是图片路径或视频路径,0表示使用usb摄像头0实时读取数据
show:是否实时显示结果
save:是否保存结果

以上是经过几天摸索,并经过实践验证的,可以行的通。后续会接着研究如何使用代码获取预测结果。

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

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

相关文章

Python基础合集 练习26 (turtle库的使用)

turtle是标准库 import turtle as t 窗口最小单位为像素 t.steup(width,height,起始点,起始点) 不是必须的 t.setup(800, 400) 不设置后面的起始点默认在中间 空间坐标体系 绝对坐标 四个象限 t.goto(x,y) 让某个位置的海龟到达某个地方 t.goto(100,100) t.goto(10…

使用flask开启一个简单的应用

Flask是非常流行的 Python Web框架&#xff0c;它能如此流行&#xff0c;原因主要有如下几点: 。有非常齐全的官方文档,上手非常方便。 。有非常好的扩展机制和第三方扩展环境&#xff0c;.工作中常见的软件都会有对应的扩展。自己动手实现扩展也很容易。 。社区活跃度非常高。…

【可解释学习】PyG可解释学习模块torch_geometric.explain

PyG可解释学习模块torch_geometric.explain PhiloshopyExplainerExplanationsExplainer AlgorithmExplanation Metrics参考资料 torch_geometric.explain是PyTorch Geometric库中的一个模块&#xff0c;用于解释和可视化图神经网络&#xff08;GNN&#xff09;模型的预测结果。…

RestClient操作文档和DSL查询语法

一、 文档操作 1、新增文档 本案例中&#xff0c;hotel为索引库名&#xff0c;61083为文档idTestvoid testAddDocument() throws IOException {// 1.根据id查询酒店数据Hotel hotel hotelService.getById(61083L);// 2.转换为文档类型HotelDoc hotelDoc new HotelDoc(hotel…

【数据结构】二叉树——链式结构

目录 一、前置声明 二、二叉树的遍历 2.1 前序、中序以及后序遍历 2.2 层序遍历 三、节点个数以及高度 3.1 节点个数 3.2 叶子节点个数 3.3 第k层节点个数 3.4 二叉树的高度/深度 3.5 查找值为x的节点 四、二叉树的创建和销毁 4.1 构建二叉树 4.2 二叉树销毁 4.3 …

2023年7月14日,ArrayList底层

集合框架图&#xff1a; 集合和数组的区别 AarrayList ArrayList底层实现原理 ArrayList的底层实现是基于数组的动态扩容。 初始容量&#xff1a;当创建一个新的ArrayList对象时&#xff0c;它会分配一个初始容量为10的数组。这个初始容量可以根据需求进行调整。 //表示默认的…

在Python中优雅地用多进程:进程池 Pool、管道通信 Pipe、队列通信 Queue、共享内存 Manager Value

Python 自带的多进程库 multiprocessing 可实现多进程。我想用这些短例子示范如何优雅地用多线程。中文网络上&#xff0c;有些人只是翻译了旧版的 Python 官网的多进程文档。而我这篇文章会额外讲一讲下方加粗部分的内容。 创建进程 Process&#xff0c;fork 直接继承资源&am…

zigbee DL-20无线串口收发模块使用(双车通讯,电赛模块推荐)

前言 &#xff08;1&#xff09;通常有时候&#xff0c;我们可能会需要让两个MCU进行通讯。而zigbee是最适合两个MCU短距离通讯的模块。他使用极其简单&#xff0c;非常适合两款MCU之间的进行数据交互。 &#xff08;2&#xff09;在各类比赛中&#xff0c;经常出现需要两个MCU…

独立看门狗 IWDG

独立看门狗介绍 Q&#xff1a;什么是看门狗&#xff1f; A&#xff1a;可以理解为对于一只修勾的定时投喂&#xff0c;如果不给它吃东西就会狂叫&#xff0c;因此可以通过观察修勾的状态来判断喂它的人有没有正常工作。 在由单片机构成的微型计算机系统中&#xff0c;由于单…

【业务功能篇44】Mysql 海量数据查询优化,进行分区操作

业务场景&#xff1a;当前有个发料表&#xff0c;随着业务数据量增多&#xff0c;达到了几千万级别水平&#xff0c;查询的效率就越来越低了&#xff0c;针对当前的架构情况&#xff0c;我们进行了分区的设置&#xff0c;通过对时间字段&#xff0c;按年月&#xff0c;一个月作…

ios 启动页storyboard 使用记录

本文简单记录ios启动页storyboard 如何使用和注意事项。 xcode窗口简介 以xcode14为例&#xff0c;新建项目如下图&#xff0c;左边文件栏中的LaunchScreen.storyboard 为默认启动页布局。窗口中间部分是storyboard中的组件列表&#xff0c;右侧为预览&#xff0c;可以看到渲…

H3C-Cloud Lab-实验-DHCP实验

实验拓扑图&#xff1a; 实验需求&#xff1a; 1、按照图示为R1配置IP地址 2、配置R1为DHCP服务器&#xff0c;提供服务的地址池为192.168.1.0/24网段&#xff0c;网关为192.168.1.254&#xff0c;DNS服务器地址为202.103.24.68&#xff0c;202.103.0.117 3、192.168.1.10-1…

Camtasia Studio 2023 最新中文版,camtasiaStudio如何添加背景音乐

Camtasia2023的视频编辑工具可以帮助用户剪辑、裁剪、旋转、调整大小、添加特效、混合音频等。用户还可以使用Camtasia2023的字幕功能添加字幕和注释&#xff0c;以及使用其内置的特效和转场来提高视频的视觉效果。 Camtasia Studio 2023新功能介绍 的光标增强 由于光标在屏幕…

解决win10电脑无法访问局域网内其它共享文件问题

问题描述 今天需要上传文件到一个共享的局域网文件夹里&#xff0c;在我的电脑和浏览器访问//192.168.0.16//public都提升访问受限&#xff0c;开始以为是因为用户没授权&#xff0c;后来一般沟通后&#xff0c;发现其它电脑都能正常访问的&#xff0c;所以确定是自己电脑配置…

Caerulein,17650-98-5,雨蛙肽,以三氟醋酸盐形式提供的十肽分子

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ Caerulein |雨蛙素&#xff0c;雨蛙肽&#xff0c;蓝肽| CAS&#xff1a;17650-98-5 | 纯度&#xff1a;95% ------雨蛙素结构式---- ----试剂参数信息--- CAS号&#xff1a;17650-98-5 外观&#xff08;Appearance&a…

java中使用POI生成Excel并导出

注&#xff1a;本文章中代码均为本地Demo版本&#xff0c;若后续代码更新将不会更新文章 需求说明及实现方式 根据从数据库查询出的数据&#xff0c;将其写入excel表并导出 我的想法是通过在实体属性上写自定义注解的方式去完成。因为我们在代码中可以通过反射的方式去获取实体…

js小写金额转大写 自动转换

// 小写转为大写convertCurrency(money) {var cnNums [零, 壹, 贰, 叁, 肆, 伍, 陆, 柒, 捌, 玖]var cnIntRadice [, 拾, 佰, 仟]var cnIntUnits [, 万, 亿, 兆]var cnDecUnits [角, 分, 毫, 厘]// var cnInteger 整var cnIntLast 元var maxNum 999999999999999.9999var…

vulnhub靶场red:1教程

靶场搭建 靶机下载地址&#xff1a;Red: 1 ~ VulnHub 难度&#xff1a;中等 信息收集 arp-scan -l 这里没截图忘记了&#xff0c;就只是发现主机 扫描端口 nmap --min-rate 1000 -p- 192.168.21.130 nmap -sT -sV -sC -O -p22,80 192.168.21.130 先看80端口 看到链接点一…

怎么又快又准的确定业务系统属于等保几级?

等保2.0政策已经落地严格执行了一段时间&#xff0c;但大家对于等保政策还有很多不清楚。这不不少人在问&#xff0c;怎么又快有准的确定业务系统属于等保几级&#xff1f; 怎么又快又准的确定业务系统属于等保几级&#xff1f; 【回答】&#xff1a;根据《信息安全等级保护管…

AtcoderABC255场

A - You should output ARC, though this is ABC.A - You should output ARC, though this is ABC. 题目大意 给定整数R和C以及一个2x2矩阵A&#xff0c;需要输出A R,C的值。 思路分析 简单的矩阵查找。根据给定的索引R和C&#xff0c;找到矩阵A中相应位置的元素&#xff0c…