YOLO v8 环境搭建
1. Anaconda3安装:
- 下载:anaconda download
默认:
安装到根目录
下:
默认:
下面一路默认,直至安装完成。 - 配置anaconda环境变量:
我的安装路径是C盘,所以这么写,如果anaconda安装路径不是C盘,请按照实际更换。
2. 安装VScode并在vscode中配置anaconda
配置解释器
- 安装,我有vscode所以不用重新安装了,去官网安装即可。
- 配置anaconda
- Vscode中使用
Ctrl+P
打开搜索 - 搜索栏里输入:
>select interpreter
- 找到自己想要的anaconda路径下来的python.exe,
如果找不到的话自己去anaconda的安装路径下把python.exe的路径复制过来。 最好等确定了anaconda虚拟环境后再来做这个工作,不然基于虚拟环境的python在这里也用不了。 - ( 终端最好使用anaconda自带的终端,因为可以在anaconda建立虚拟环境,使用的python环境也是基于虚拟环境的)
- Vscode中使用
3. 配置镜像源:
- pip配置镜像源(这里是清华镜像源)
1
2
3//复制到终端执行,或者复制到anaconda的终端运行
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple - 检查配置是否OK
- 只要终端输出
pip.ini
就装好了 - 去文件管理器路径下输入
%APPDATE%
,找到pip.ini的文件,记事本打开,看是否是我们使用的源。
- 只要终端输出
- conda配置镜像源:
在终端输入
conda config --set show_channel_urls yes
,执行后会在用户里面生成一个后缀名为.condarc
的文件使用记事本打开,复制以下镜像源并保存
1 |
|
1 |
|
4. 安装pytorch
创建conda虚拟环境
因为在创建虚拟环境的时候会顺带下载一个python,所以接下来在虚拟环境里面写的一切代码其实都是在虚拟环境的python中
虚拟环境python请指定3.9!!!
虚拟环境python请指定3.9!!!
虚拟环境python请指定3.9!!!1
2
3
4
5
6
7
8
9
10
11
12
13
14//查看安装的conda包
conda list
//查看已有的conda环境
conda env list
//查看conda版本
conda --version
//查看conda信息
conda info
//python创建虚拟环境
conda create -n your_env_name python=x.x
//删除虚拟环境
conda remove -n your_env_name --all
//激活环境
conda activate your_env_name在线安装:(我的电脑没有显卡,所以选择CPU加速安装):
(有坑,这里不要去带版本,对于网上教程要求的版本,可能你看到的时间已经不适用于你现在的python了。)
(conda install pytorch== 1.8.1 torchvision== 0.9.1 torchaudio== 0.8.1 cpuonly -c pytorch)
报错如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14# 这个报错是在告诉我们0.81的torchaudio是找不到适合python3.9的包的
# 虽然在下表中找到了0.8.1可以用在py3.9里,可能是清华源的镜像太老了没有更新导致的
The following packages are incompatible
├─ pin-1 is installable and it requires
│ └─ python 3.9.* , which can be installed;
└─ torchaudio 0.8.1 is not installable because there are no viable options
├─ torchaudio 0.8.1 would require
│ └─ python >=3.6,<3.7.0a0 , which conflicts with any installable versions previously reported;
├─ torchaudio 0.8.1 would require
│ └─ python >=3.7,<3.8.0a0 , which conflicts with any installable versions previously reported;
├─ torchaudio 0.8.1 would require
│ └─ python >=3.8,<3.9.0a0 , which conflicts with any installable versions previously reported;
└─ torchaudio 0.8.1 would require
└─ python_abi 3.9.* *_cp39, which does not exist (perhaps a missing channel).python/pytorch/torchvision/torchaudio版本关系一览:
(指定pyhon版本3.9,并用这个版本安装pytorach:conda install pytorch== 1.10.0 torchvision== 0.11.1 torchaudio== 0.10.0 cpuonly -c pytorch)
1 |
|
下载如图所示,选择Y
就行:
因为是国内的源,下载速度还是很快的,完成会出现done
。
- 若卡在solving environment或有其他问题( 问题可能是python版本导致的,如果确定不是因为版本问题引起的可以折腾下面的内容,没有这个问题的不用折腾下面的内容),可以选择从pytorch官网安装:
- 下载:pytorch online downlaod
- 选择版本,OS,package,等等信息,最后生成了一个command。
- 将command复制到终端或者conda中下载(看你怎么选的package);如下图,包很大,但是因为上面配置了镜像源,所以下起来还挺快(包特别大,下了个开头我心疼流量直接取消了)。
- 除了在线下载之后,还可以选择去镜像源离线下载,下载后用命令安装
- 下载:pytorch offline downlaod
- 查看自己处理器架构,在终端输入
systeminfo
, - 下载
pytorch
和torchivision
和torchaudio
包 - 下载好后,终端输入
cd 包位置
- 输入安装命令
conda install --offline pytorch包名
- 输入安装命令
conda install --offline torchvision包名
- 输入安装命令
conda install --offline torchaudio包名
- 安装好后,在终端输入
import torch
和torch.cuda.is_available()
,不管返回true或者false,不报错就证明装好了。
5. CV2安装
先默认,pip会去找适合py3.9的最新版
1 |
|
6. YOLO v8代码库下载安装:
默认
1 |
|
7. yolo数据集
默认
1 |
|
- 终端敲
labelImg
使用- open:打开单张图片
- open Dir:打开文件夹中的所有图片
- Change Save Dir:更改标签存放路径
- 格式选择yolo格式
8. yolo文件夹建立
yolo可以按如下层级和命名`建立文件夹`:
(命名尽量规范,不然yolo可能识别不出而报错)- dataset
- images
- test
- train
- val
- labels
- test
- train
- val
- images
9. 标注/训练图片
原始图集放
dataset-images
里面。启动
LabelImg
,找到图片路径点击
Change Save Dir
选择保存标签的路径,保存标签路径为dataset-labels
。设置自动保存图片和标签
打标签
( 有坑:python版本太高(
本来装的3.11)会导致LabelLmg闪退,报错如下:)
最好把之前安装的环境统一降到兼容python3.9的环境
报错如下:1
2
3
4
5
6
7
8
9
10
11TypeError: arguments did not match any overloaded call:
drawLine(self, l: QLineF): argument 1 has unexpected type 'float'
drawLine(self, line: QLine): argument 1 has unexpected type 'float'
drawLine(self, x1: int, y1: int, x2: int, y2: int): argument 1 has unexpected type 'float'
drawLine(self, p1: QPoint, p2: QPoint): argument 1 has unexpected type 'float'
drawLine(self, p1: Union[QPointF, QPoint], p2: Union[QPointF, QPoint]): argument 1 has unexpected type 'float'
# 总体来说,就是python版本没有对应上导致闪退
# 解决方案,如下代码:
# 相当于是新建立了一个名字叫labelimg的conda虚拟空间,但是这个空间里面还是需要重新装符合3.9版本的pytorach那些
conda create -n labelimag python=3.9标签
打标签是个简单而繁琐的事情,我这里就打了5张标注,标准名为highspeedrail
10. 数据集
自动生成的标签
打完标签之后可以看一眼dataset-labels
,里面已经为我们打的每一个标签都新建了一个txt文件(class装的是标签信息,其他装的是一些模型参数信息,不要去手动改)了。
打完标注之后就可以直接关闭labelImg
了。整理数据
在
images
和labels
的文件夹下分别存放test
,train
,val
三个子文件夹。
转到文件夹建立把图片按比例放入
images
文件夹中,一般train
训练集放60%
(比如10张图片就放6张);剩下的test和val
各占20%
(2张/2张)
标签与之一一对应
,图片的位置和它的标签对应好,不然可能会报错!class.txts
文件放到dataset下一级去(和labels同级)为数据集创建一个
data.yaml
文件,文件位于dataset的根目录下,文件应该包括数据路径,类别数,类别信息等必要的内容。
把dataset放进之前建立的yolo_v8(其实就是为vscode工作区建立的一个工作文件夹)的空文件夹中去data.yaml如下:
1
2
3
4
5
6
7
8
9
10train: ./images/train #自己的训练集地址
val: ./images/val #自己的验证集地址
test: ./images/test #自己的测试集地址
# Classes
nc: 1 # 自己定义的类别数 number of classes
names: [ #类别的名字
"highspeedrail"
]
11. 开始训练
python的解释器路径,终端敲
where python
1
2
3
4(yolo_v8) C:\WINDOWS\system32>where python
C:\Users\wuyucun\.conda\envs\yolo_v8\python.exe
C:\anaconda3\python.exe
C:\Users\wuyucun\AppData\Local\Programs\Python\Python311\python.exevolo_v8\环境下的就是我们在虚拟环境中使用的python解释器,去vscode中把解释器选中为它就好了。
转到配置解释器yolo V8训练
代码如下:1
2
3
4
5
6
7
8
9from ultralytics import YOLO
# Load a model
#model = YOLO('yolov8n.yaml') # build a new model from YAML
#model = YOLO('yolov8n.pt') # load a pretrained model (recommended for training)
model = YOLO('yolov8n.yaml').load('yolov8n.pt') #加载模型和预训练权重
# Train the model
model.train(data=r'C:\Users\wuyucun\Desktop\yolo_v8\dataset\data.yaml', epochs=100, imgsz=640,workers=2) #训练数据集路径,epochs,迭代次数;imgsz,图片大小;works,线程。训练时又产生了因版本问题引起的报错:
这里面又有个坑,虽然我们前面已经很认真的在选版本的,但是在训练的时候依旧报了个错误告诉我pytorch和torchvision版本不兼容(因为这个报错的存在,我weights里面的权重并没有生成)
报错如下
1 |
|
于是我又按照pytorch官网建议,全部不带版本去安装:
敲入终端后,终端回了我一些信息:
1 |
|
他把我原来的旧版本全部变成py3.9适用的最新版本了。首先保证你python环境是对的话。不指定版本安装也是可以的,我用这个成功了
如果环境没问题,最后跑出来的结果应该如下图所示: