yolov8入门篇

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数据集标注

结果其实是一样的:

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

注意事项

相关推荐
AI视觉网奇4 小时前
拓竹打印机获取相机图片
yolo·3d打印
qq_25294131682 天前
航拍羊群目标检测数据集 | 航拍羊群 智慧畜牧业 动物检测 无人机巡检5010期
人工智能·yolo·目标检测·计算机视觉·无人机·羊群识别·羊群
java1234_小锋2 天前
YOLO26 计算机视觉 - 训练自己的 YOLO26 模型
人工智能·yolo·机器学习·计算机视觉·yolo26
向哆哆2 天前
打击罂粟种植检测数据集分享(适用于YOLO系列深度学习分类检测任务)
深度学习·yolo·目标检测·分类
jay神4 天前
一文讲清楚YOLOv26模型
人工智能·深度学习·yolo·机器学习·计算机视觉
qq_25294131684 天前
无人机目标检测数据集(UAV Detection Dataset)| 无人机检测 反无人机 低空安防5001期
人工智能·yolo·目标检测·计算机视觉·视觉检测·无人机·反无人机
YOLO数据集集合4 天前
蚊子视觉验证数据集 | 蚊虫识别 疟疾防控 病媒生物 细粒度分类 YOLO格式 深度学习数据集
深度学习·yolo·分类·数据集·蚊子分类·蚊虫分类·蚊虫识别
java1234_小锋4 天前
YOLO26 计算机视觉 - YOLO26图片与视频推理 & 摄像头与实时检测
人工智能·yolo·计算机视觉·机器视觉·yolo26
YOLO数据集集合5 天前
蚊子目标检测数据集 | 蚊虫检测 病媒生物 智能硬件 轻量化模型 目标检测 YOLO格式 深度学习数据集9015期
深度学习·yolo·目标检测·计算机视觉·分类·智能硬件·蚊子识别