
b站博主@你可是处女啊:https://space.bilibili.com/21060026/upload/video
1、YOLOv8 环境安装
miniconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
pypi: https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
pytorch: https://pytorch.org/
ultralytics: https://github.com/ultralytics/ultralytics
miniconda安装

✋创建环境:
bash
conda create -n yolov8 python=3.8
🐛访问不到国外的网站

配置清华源试试:
bash
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
然后:
bash
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
再:
bash
conda config --set show_channel_urls yes
把默认源移除:
bash
conda config --remove channels defaults
最后检查:
bash
conda config --show channels
解决了,

安装的python版本是3.10,(建议安装3.8,后面标注时出bug可能是这里出错),

配置源:

pytorch安装

✋
选择安装的pytorch版本是:1.13.1

查看自己电脑配置,然后支持cuda的版本最大是:12.8,
所以选择了cuda11.6的版本:

命令,
bash
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116

安装pytorch得走国外网络,要挂t子,不然太慢了。
安装ultralytics(yolov8)

✋
从github上下载源码之后,在这个源码文件夹内,执行源码本地安装,也就是安装到python环境里面,(pip源码安装),
bash
pip install -e .

代码可以修改?

学习使用windows的终端

YOLOv8官方文档中文版上线:https://docs.ultralytics.com/zh/
2、YOLOv8 模型预测
模型预测的基本使用

python
from ultralytics import YOLO
yolo = YOLO("./yolov8n.pt",task="detect")
result = yolo(source="./ultralytics/assets/bus.jpg")
常用的参数讲解
参数:
task:做什么任务
mode:预测,训练,还是验证
model:使用哪个模型进行预测
source:对谁进行检测
✋

powershell
yolo detect predict model=./yolov8n.pt source=./ultralytics/assets/bus.jpg
执行成功了,
也可以执行文件运行模型:

⭐️所有可选参数:

save:保存结果,结果存在runs文件夹下,
conf:图片的分数,低于这个分数直接丢弃该框,所以设置得高,检测出来的结果会少
iou:允许框重叠。设置得高,结果会多
- 对预测结果进行处理
📖在vscode里面运行.ipynb的要求:
1、要下载python拓展,jupyter拓展
2、要在yolo虚拟环境中安装ipykernel

命令:
powershell
pip install ipykernel -i https://pypi.tuna.tsinghua.edu.cn/simple
3、ipynb 右上角选对内核,也就是选择ipynb 用的环境
解决了:

查看结果的详细信息:
python
result[0]

- 测试结果 可视化
python
import matplotlib.pyplot as plt
%matplotlib inline
plt.imshow(result[0].plot())

- 调整颜色通道
python
import matplotlib.pyplot as plt
%matplotlib inline
plt.imshow(result[0].plot()[:,:,::-1])

boxes和plot的应用
- 取里面具体的信息
python
result[0].boxes

点击text editor查看完整内容:

- 取具体的信息,并转换成numpy格式
python
result[0].boxes.xywh.cpu().numpy()

注意事项

3、YOLOv8数据集构建
数据准备
博主github地址:https://github.com/zyds
视频在yolov5文件夹里:

- 打开视频
python
# 打开视频文件
video = cv2.VideoCapture("./BVN.mp4")
# 读取一帧
ret, frame = video.read()
ret:是否成功打开
frame:具体的一帧
- 展示结果
python
plt.imshow(frame)

- 转换颜色通道
python
plt.imshow(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))

- 把图片一个个存下去
python
video = cv2.VideoCapture("./BVN.mp4")
num = 0 # 计数器
save_step = 30 # 间隔帧
while True:
ret, frame = video.read()
if not ret:
break
num += 1
if num % save_step == 0:
cv2.imwrite("./demo_images/" + str(num) + ".jpg", frame)
打开文件夹看一下,都截取好了,

labelimg数据集标注
-
拿到图片之后进行标注
-
使用labalimage进行标注

powershell
pip install labelimg
powershell
labelimg
view→auto save mode:打开自动保存,
切换数据集格式为yolo,

🐛一标注就闪退
原因:LabelImg 和当前环境里的 Qt/PyQt 版本不兼容

解决办法:
1️⃣改源代码(不推荐)
2️⃣新建一个labelimg环境,专门做标注
创建环境(因为换了清华源,所以创建时要关掉t子)
⭕️3.10版本python不可以,我下的是3.8的,3.9的应该也可以
powershell
conda create -n labelimg python=3.8
激活环境
powershell
conda activate labelimg
下载labelimg
powershell
pip install labelimg
标注快捷键:
w:框选
d:下一张
a:上一张

make sence数据集标注
- 辅助标注工具

make sense:
https://www.makesense.ai/




结果其实是一样的:

roboflow公开数据集
- 公开数据集
roboflow:
https://public.roboflow.com/object-detection
https://universe.roboflow.com/

- 以叶片病为例




- train:教模型学习(训练用)
- valid:上课随堂测验(训练过程看效果)
- test:期末考试(全部训练完才跑,不参与训练)
4、YOLOv8模型训练
训练前准备
- 数据集准备

✋

image:放train和val的图片
labels:放train和val的标签
新建一个datasets文件夹,把数据集放在里面:
- 数据集描述文件
可以对已有的描述文件改写一下,
从以下目录找到描述文件,随便复制一个进行改写,

改写的参数:
path:文件在哪,从datasets这个文件夹开始写起
train:训练集在哪
val:验证机在哪
test:测试集在哪
name:标注一下类别
✋
yaml
path: bvn
train: images/train
val: images/val
test:
names:
0: mildew
1: rose_P01
2: rose_P02
模型训练与常用参数
powershell
yolo task=detect mode=train model=./yolov8n.pt data=yolo-bvn.yaml epochs=30 worker=1 batch=16
mode:模式
model:哪个模型开始训练起
data:数据集的描述文件
epochs:训练多少轮
workers:(数据加载子进程,Windows 建议设 1)
batch:每批图片数量(根据显卡调整,我这里调整成8)
✋
🐛
报错:missing path 'D:\data\bilibili\yolo\deeplearning\ultralytics‑8.3.163\datasets\bvn\images\val'
解决:修复 yolo‑bvn.yaml,path 必须写完整绝对路径
yaml
path: D:/data/bilibili/yolo/ultralytics-main/datasets/bvn
train: images/train
val: images/val
test:
names:
0: mildew
1: rose_P01
2: rose_P02
训练中:

执行完后会生成一个文件:default_copy.yaml,就可以把覆盖原有参数的地方写进去,
训练时只需执行命令
yolo cfn=default_copy.yaml
- 训练结果
结果保存位置:

最好的模型和最后一轮的模型:

- 试一下效果
在bvn文件夹下放了两张照片:
bash
yolo detect predict model=D:/data/bilibili/yolo/ultralytics-main/runs/detect/train-4/weights/best.pt source=D:/data/bilibili/yolov8/bvn/images/val
三个类别对照:

检测结果:
从网上找了两张玫瑰病害的图片:
bash
image 1/2 D:\data\bilibili\yolov8\bvn\1.webp: 416x640 9 mildews, 9.9ms
image 2/2 D:\data\bilibili\yolov8\bvn\2.jpg: 640x544 1 mildew, 18.1ms


注意事项


