一、环境安装

1.miniconda

mini精简,下载完成后,在conda prompt中创建环境:
conda create -n yolov8 python=3.8
pip配置镜像源:(永久)

python -m pip install --upgrade pip
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

2.pytorch

下载去官网:找历史版本,没有gpu
有gpu: 查NVIDIA的版本:终端输入:nVidia-smi,输出CUDA的版本
cuda版本
注意事项: 16开头的,需要安装cu102的版本,否则出现问题
30或者40开头的显卡,安装cu111以上的版本,否则无法运行

复制安装指令在环境中直接安装

3. ultralytics安装

  • 直接下yolov8的源码: 和yolov5相同,但是结构没有v5清晰,提供了命令行的方式,但是直接用源码是用不了命令行的:https://github.com/ultralytics下载包解压
  • pip源码安装:在上述基础上,终端进入ultralytics-main中输入:pip install -e .,用pip list检验。这样去修改源码之后,就会调用修改之后的代码去做检测。
  • 注:检测的测试可以去yolo的github主页的文档中(yoloV8 Docs–>usage–>CLI–>predict–>‘yolo predict model= yolov8n.pt source =’‘’),寻找一个模型进行下载,然后给予一张检测的图像,在中段运行即可。例如:yolo predict model=yolov8n.pt source="C:\Users\Lsc\Desktop\ultralytics-main\ultralytics-main\ultralytics\assets\zidane.jpg"
    检测范例

4.终端使用

使用cmd或者conda prompt
只要再vscode中配置改成cmd就可以再软件内默认配置文件使用cmd的终端。

二、环境安装

1.基本使用

命令行的方式:yolo task=detect model=./yolov8n.pt source=xx.jpg ,其中task=可以省略。
代码的方式:

from ultralytics import YOLO
yolo = YOLO("./yolov8n.pt",task="detect")
result = yolo(r"C:\Users\Lsc\Desktop\ultralytics-main\ultralytics-main\ultralytics\assets\zidane.jpg")

2.常用参数

常用可以更改的参数位于:C:\Users\Lsc\Desktop\ultralytics-main\ultralytics-main\ultralytics\cfg\default.yaml下
例如:

from ultralytics import YOLO
yolo = YOLO("./yolov8n.pt",task="detect")
result = yolo(source=r"C:\Users\Lsc\Desktop\ultralytics-main\ultralytics-main\ultralytics\assets\1.jpg",save= True)#save=true用于保存检测的结果
#result = yolo(source=0,save= True)#打开摄像头
#result = yolo(source="screen")#检测屏幕

*重点的参数:conf,iou:用于显示检测框的信息,

conf是分数,conf越小,框越多,置信度低
iou越高,框越多,会检测到很多重叠的

3.Boxes和Plot应用

1.可视化

检测的结果保存在result中,result中就包含了boxes等信息
实现检测结果的可视化,在上述的代码上再加上两句

plt.imshow(result[0].plot())
plt.show() 

但是此时的图像是BGR的格式,颜色会很奇怪,如果要修正,转化成RGB,则修改为

plt.imshow(result[0].plot()[:,:,::-1])

2.具体的信息

具体的信息在boxes中,可以直接查看,类似的方法:

print(result[0].boxes.xywh)#张量格式
print(result[0].boxes.xywh.cpu().numpy())#numpy格式

4.注意事项

仅仅在jupyter中存在

三、数据集构建

1.数据准备

图片可以直接标注,视频需要进行抽帧处理,导出图片

2.labelimg数据标注

  • 环境安装:
    pip install labelimg
  • 启动:
    终端输入abelimg
    左边打开 open dir打开图片文件夹,新建一个标注后的图片文件夹
  • 关键设置:
    再view中:auto savemode打开
    模型改为yolo
  • 注意:出现闪退问题,将labelimg升级到最新版本

3.make sense数据标注

地址:https://www.makesense.ai/
可以选择目的是目标检测还是图片分类,提前创建好标签,将annotations改为yolo。标注结束可以在网页上直接下载标注好的图片压缩包。
可以支持在线辅助标注,要把模型先全部上传,只支持yolov5,不支持yolov8

4.roboflow公开数据集

  • https://public.roboflow.com/object-decetion

四、模型训练

1.训练前准备

数据集准备

  • images:存放图片
    • train:训练集图片
    • val :验证集图片
  • labels:存放标签
    • train:训练集标签文件,与训练集图片名称一一对应
    • val :验证集标签文件,与验证集图片名称一一对应

将images和labels均存放在cat中,将cat存放在datasets文件夹下,注意,此处的dataset一定要存在,可以新建在ultralytics-main下。
在写配置文件,在ultralytics-main下创建yolo-cat.yaml文件,可以仿照cfg下的配置文件进行修改:

path: C:\Users\Lsc\Desktop\ultralytics-main\ultralytics-main\datasets\cat  # 改为完整的绝对路径
train: images/train  # 相对于path的路径
val: images/val      # 相对于path的路径
test:                # 测试集(可选)

# Classes
names:
  0: cat1
  1: cat2

2.模型训练与常见参数

  • 以命令行的方式启动:
yolo task=detect mode=train model=C:\Users\Lsc\Desktop\ultralytics-main\ultralytics-main\yolov8n.pt data=C:\Users\Lsc\Desktop\ultralytics-main\ultralytics-main\yolo-cat.yaml epochs=10 workers=1 batch=3

workers要设置为1
注:数据集的路径是由setting.json的dataset_dir和yaml中的path拼接而成,所以要检查是否正确

  • 以代码的方式启动:
from ultralytics import YOLO

#加载模型
model = YOLO('yolov8n.pt')

#训练模型
model.train(data ='yolo-cat.yaml',workers=0,epochs=10,batch=3)

workers要设置为0,我这里设置为1也没有报错。

训练时最好将epochs设置的大一点,这样模型的效果会更好,等待模型训练完成,结果会保存在C:\Users\Lsc\Desktop\ultralytics-main\ultralytics-main\runs\detect\train5路径下
进行预测时,在终端中执行:

yolo detect predict model=C:\Users\Lsc\Desktop\ultralytics-main\ultralytics-main\runs\detect\train5\weights\best.pt source=C:\Users\Lsc\Desktop\ultralytics-main\ultralytics-main\1.jpg show=true    

预测的结果会保存在

C:\Users\Lsc\Desktop\ultralytics-main\runs\detect\predict14

如果要修改预测结果的保存路径,就需要打开setting.json,修改:

  "runs_dir": "C:\\Users\\Lsc\\Desktop\\ultralytics-main\\ultralytics-main\\runs",

3.注意事项

常见问题
以代码方式运行时

  • workers要设置成0,windows

页面文件太小,无法完成操作

  • 调整训练参数中的workers,设置为1
  • 修改虚拟内存,将环境安装位置所在的盘,设置一个较大的参数

数据集描述文件

  • 数据地址从datasets目录里开始写起,且就放在根目录下,会避免很多坑
    调整数据集目录后再次训练
  • 删除~/AppData/Roaming/Ultralytics文件夹下的settings.yaml

整个的工作目录就是
工作目录

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐