目录
1. Yolov8环境配置
1.1 安装Anaconda
进入官网下载即可,也可以下载Miniconda,Miniconda是Anaconda的简化版,对于一般需求而言就够用了。具体安装教程大家可以搜一下。
下载并安装后,配置下载镜像源,因为有的库的服务器在国外,我们直接安装会很慢,这时候需要国内源进行下载;有两种方式:一种是一劳永逸的方法,直接配置.condrac配置文件就行;另外一种是在安装命令之后直接跟国内源地址。
配置和下载网址:anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
1.2 安装PyCharm
进入PyCharm官网下载即可,具体教程大家可以搜一下。
1.3 创建虚拟环境
YOLOv8所需要python>=3.8,博主之前用的是3.7,配置到最后发现python3.7对应的numpy最高是1.21,而YOLOv8要求的numpy最低是1.22.2,因此需要创建一个虚拟环境
conda create -n yolov8 python=3.8
创建成功后,以下面命令激活进入创建的虚拟环境
conda activate yolov8
1.4 下载源码和权重文件
源码地址:
下载完整代码后,并把下面的YOLOv8n下载到上面项目文件的目录下,它是模型的预训练权重文件,官方提供了5个模型训练权重,也可把其他文件也下载本地,进行对比。
1.5 安装基础运行依赖
让虚拟环境进入yolov8项目目录
yolov8源代码中已经把requirements.txt删掉了,官方把代码都整合到了ultralytics包里面,只需安装这一个库就可以了,里面封装了环境所需库,执行下面命令
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple
1.6 加载项目,设置虚拟环境
选择虚拟环境
File -> Settings -> Project:yolov5 -> Python Interpreter -> add -> Conda Enviroment -> Existing Enviroment -> 选择你的虚拟环境路径 -> ok
2. Yolov8模型运行测试
2.1 预测测试
1.首先测试算法预测,用自带的yolov8n模型,在终端输入下面命令
yolo predict model=yolov8n.pt source='ultralytics/assets'
打开文件夹 ./ultralytics-main/runs/detect/predict
就可以看到预测文件
2.2 训练测试
1.训练测试数据集先使用coco128样本。下载链接
https://github.com/ultralytics/assets/releases/download/v0.0.0/coco128.zip
2.存放路径
下载完成后存放在根目录下的 datasets
文件夹中./ultralytics-main/datasets
3.训练命令,选择yolov8n模型,利用coco128数据进行训练,如果没有事先下载这个数据集,会通过coco128.yaml配置文件进行下载,但是会很慢。
yolo train model = yolov8n.pt data = coco128.yaml epochs = 10 imgsz = 640
执行过程一些图片
打开文件夹 ./ultralytics-main/runs/detect/train
就可以看到预测文件
2.3 验证测试
1.验证测试命令
yolo val model = yolov8n.pt data = coco128.yaml
打开文件夹 ./ultralytics-main/runs/detect/val
就可以看到预测文件
3. Yolov8分割、跟踪、姿态估计
3.1 Yolov8分割
执行以下命令,也可换成其他权重
yolo task=segment mode=predict model=yolov8n-seg.pt source='ultralytics/assets/bus.jpg' show=True
打开文件夹 ./ultralytics-main/runs/segment/predict
就可以看到分割文件
3.2 Yolov8跟踪
执行以下命令,也可换成其他权重
yolo track model=yolov8n.pt source='ultralytics/assets/bus.jpg'
打开文件夹 ./ultralytics-main/runs/detect/track
就可以看到跟踪文件
3.3 Yolov8姿态估计
执行以下命令,也可换成其他权重
yolo pose predict model=yolov8n-pose.pt source='ultralytics/assets' show=True save=True
打开文件夹 ./ultralytics-main/runs/pose/predict
就可以看到姿态估计文件
3.4 集成运行
(1)检测、跟踪和分割
yolo pose predict track model=yolov8n-seg.pt source='ultralytics/assets' show=True save=True
(2)检测、跟踪和姿态估计
yolo pose predict track model=yolov8n-pose.pt source='ultralytics/assets' show=True save=True
(3)集成
把以上代码整合到main.py文件里,可同时进行检测+跟踪+分割方便运行,也可单独运行推理、训练、验证、分割、跟踪、姿态估计,想用哪个直接免去注释即可
from ultralytics import YOLO
if __name__ == '__main__':
# Load a model
# 直接使用预训练模型创建模型
# model = YOLO('yolov8n.pt')
# model.train(**{'cfg':'ultralytics/cfg/default.yaml', 'data':'ultralytics/models/yolo/detect/mydata/traffic.yaml'}, epochs=10, imgsz=640, batch=32)
# #使用yaml配置文件来创建模型,并导入预训练权重
#model = YOLO('ultralytics/cfg/models/v8/yolov8n.yaml') # build a new model from YAML
#model.load('yolov8n.pt')
#model.train(**{'cfg': 'ultralytics/cfg/default.yaml', 'data': 'ultralytics/models/yolo/detect/mydata/traffic.yaml'},
# epochs=10, imgsz=640, batch=32, name='train') # name:是此次训练结果保存的文件夹 数据集是我自己的数据集
# # # 模型验证:用验证集
# model = YOLO('runs/detect/train/weights/best.pt')
# model.val(**{'data':'ultralytics/models/yolo/detect/mydata/traffic.yaml', 'name':'val', 'batch':32}) #模型验证用验证集
# model.val(**{'data':'ultralytics/models/yolo/detect/mydata/traffic.yaml', 'split':'test', 'iou':0.9}) #模型验证用测试集
# # 推理:
'''model = YOLO('yolov8n.pt')
model.predict(source='ultralytics/assets', show=True, save=True)'''
# model.predict(source='ultralytics/assets', name='predict', **{'save':True}) # 写法二
# 分割:
''''model = YOLO('yolov8n-seg.pt')
model.predict(source='ultralytics/assets', name='predict', **{'save': True})'''
# 跟踪:
'''model = YOLO('yolov8n.pt')
model.track(source="ultralytics/assets", show=True, save=True)'''
# 姿态估计:
'''model = YOLO('yolov8n-pose.pt')
model.predict(source="ultralytics/assets", show=True, save=True)'''
# 检测、跟踪、分割:
'''model = YOLO('yolov8n-seg.pt') # 加载一个官方的分割模型
model.track(source="ultralytics/assets", show=True, save=True)'''
# 检测、跟踪、姿态估计:
'''model = YOLO('yolov8n-pose.pt') # 加载一个官方的分割模型
model.track(source="ultralytics/assets", show=True, save=True)'''
#results = model.track(source="ultralytics/assets", show=True, tracker="bytetrack.yaml") # 使用ByteTrack追踪器进行追踪
至此,你的Yolov8工具已经搭建好了!!!可以专注于学习了。