news 2026/9/7 8:18:04

yolov8入门篇

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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安装


✋创建环境:

conda create-nyolov8python=3.8

🐛访问不到国外的网站

配置清华源试试:

conda config--addchannels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main

然后:

conda config--addchannels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r

再:

conda config--setshow_channel_urlsyes

把默认源移除:

conda config--removechannels defaults

最后检查:

conda config--showchannels

解决了,

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

配置源:

pytorch安装



选择安装的pytorch版本是:1.13.1

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

命令,

pipinstalltorch==1.13.1+cu116torchvision==0.14.1+cu116torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116


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

安装ultralytics(yolov8)



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

pipinstall-e.


代码可以修改?

学习使用windows的终端

YOLOv8官方文档中文版上线:https://docs.ultralytics.com/zh/

2、YOLOv8 模型预测

模型预测的基本使用

fromultralyticsimportYOLO yolo=YOLO("./yolov8n.pt",task="detect")result=yolo(source="./ultralytics/assets/bus.jpg")

常用的参数讲解

参数:
task:做什么任务
mode:预测,训练,还是验证
model:使用哪个模型进行预测
source:对谁进行检测


yolo detect predict model=./yolov8n.pt source=./ultralytics/assets/bus.jpg

执行成功了,
也可以执行文件运行模型:

⭐️所有可选参数:

save:保存结果,结果存在runs文件夹下,
conf:图片的分数,低于这个分数直接丢弃该框,所以设置得高,检测出来的结果会少
iou:允许框重叠。设置得高,结果会多

  • 对预测结果进行处理

📖在vscode里面运行.ipynb的要求:
1、要下载python拓展,jupyter拓展
2、要在yolo虚拟环境中安装ipykernel

命令:

pip install ipykernel-i https://pypi.tuna.tsinghua.edu.cn/simple

3、ipynb 右上角选对内核,也就是选择ipynb 用的环境
解决了:

查看结果的详细信息:

result[0]

  • 测试结果 可视化
importmatplotlib.pyplotasplt%matplotlib inline plt.imshow(result[0].plot())

  • 调整颜色通道
importmatplotlib.pyplotasplt%matplotlib inline plt.imshow(result[0].plot()[:,:,::-1])

boxes和plot的应用

  • 取里面具体的信息
result[0].boxes


点击text editor查看完整内容:

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

注意事项

3、YOLOv8数据集构建

数据准备

博主github地址:https://github.com/zyds

视频在yolov5文件夹里:

  • 打开视频
# 打开视频文件video=cv2.VideoCapture("./BVN.mp4")# 读取一帧ret,frame=video.read()

ret:是否成功打开
frame:具体的一帧

  • 展示结果
plt.imshow(frame)

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

  • 把图片一个个存下去
video=cv2.VideoCapture("./BVN.mp4")num=0# 计数器save_step=30# 间隔帧whileTrue:ret,frame=video.read()ifnotret:breaknum+=1ifnum%save_step==0:cv2.imwrite("./demo_images/"+str(num)+".jpg",frame)

打开文件夹看一下,都截取好了,

labelimg数据集标注

  • 拿到图片之后进行标注

  • 使用labalimage进行标注

pip install labelimg
labelimg

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

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

解决办法:
1️⃣改源代码(不推荐)
2️⃣新建一个labelimg环境,专门做标注
创建环境(因为换了清华源,所以创建时要关掉t子)
⭕️3.10版本python不可以,我下的是3.8的,3.9的应该也可以

conda create-n labelimg python=3.8

激活环境

conda activate labelimg

下载labelimg

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:标注一下类别

path:bvntrain:images/trainval:images/valtest:names:0:mildew1:rose_P012:rose_P02

模型训练与常用参数

yolo task=detect mode=train model=./yolov8n.ptdata=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 必须写完整绝对路径

path:D:/data/bilibili/yolo/ultralytics-main/datasets/bvntrain:images/trainval:images/valtest:names:0:mildew1:rose_P012:rose_P02

训练中:


执行完后会生成一个文件:default_copy.yaml,就可以把覆盖原有参数的地方写进去,

训练时只需执行命令yolo cfn=default_copy.yaml

  • 训练结果

结果保存位置:

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

  • 试一下效果

在bvn文件夹下放了两张照片:

yolo detect predictmodel=D:/data/bilibili/yolo/ultralytics-main/runs/detect/train-4/weights/best.ptsource=D:/data/bilibili/yolov8/bvn/images/val

三个类别对照:

检测结果:
从网上找了两张玫瑰病害的图片:

image1/2 D:\data\bilibili\yolov8\bvn\1.webp: 416x6409mildews,9.9ms image2/2 D:\data\bilibili\yolov8\bvn\2.jpg: 640x5441mildew,18.1ms

注意事项

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 5:05:37

Ollama 桌面体验升级:GTK 原生聊天客户端替代终端与 Web UI

在 Linux 上装好 Ollama、拉好模型之后,很多人会突然发现自己回到了一个很尴尬的处境:想和本地模型聊天,要么用命令行一行一行敲,要么临时起一个 Web 服务,然后在浏览器里开个页面。命令行不方便,网页又总觉…

作者头像 李华
网站建设 2026/9/3 13:02:27

Mechanistic Exploration of Backdoored Large Language Model Attention Patterns

文章总结与翻译 一、文章主要内容 本文聚焦大型语言模型(LLMs)中的后门攻击问题,通过机械可解释性方法,探究被植入“潜伏代理”的后门模型与干净模型在内部结构上的差异,旨在为后门攻击的检测与缓解提供依据。 1. 研究背景与问题 后门攻击威胁:攻击者通过在训练数据中…

作者头像 李华
网站建设 2026/9/4 8:21:46

美团2023校招笔试编程题全解析:真题拆解与备战策略

每年到了校招季,总会有大量同学来问我同一个问题:“美团笔试到底考什么?该怎么准备?”说实话,美团2023校招笔试第1场编程题的难度在各大厂里属于中坚水平——没有字节那种动不动就上困难题的压力测试,也没有…

作者头像 李华
网站建设 2026/9/6 5:05:36

美团校招笔试编程题攻略:高频考点、答题策略与避坑指南

1. 美团校招编程题考什么:先把考场规则摸清 说实话,美团2023校招技术岗的笔试,尤其是到了第四场这个时间节点,题目已经不像第一场那样偏"摸底"性质了。前三场把常见的题型基本覆盖了一遍,第四场的题目风格会…

作者头像 李华
网站建设 2026/9/6 10:00:41

从恒生笔试题看开发岗基本功:并发、数据结构与底层能力

前几天整理旧资料,翻出一份恒生公司2015年秋招开发类的笔试题。10年前的笔试题放到今天看,很多考点依然眼熟——手写链表反转、String比较、SQL优化、Linux查日志。这年头大家张口闭口都是agent开发、AI应用开发,好像不会点新框架就不好意思投…

作者头像 李华