Yolov8的基本使用
一、引言
1.1 声明
声明:
本文章仅供学习交流使用,不提供完整代码,严禁用于商业用途和非法用途,否则由此产生的一切后果均与本人无关,请各位自觉遵守相关法律法规。
本文章未经许可禁止转载,禁止任何二次修改(加工)后的传播;若有侵权,联系删除。
交流、合作请留言,24小时内回复!
1.2 简介
yolov8的安装与基本使用
1.3 代办
由于时间有限,本文目前只描述了思路和自己实际用到的部分代码,未完成所有内容的撰写,后续有时间再补充。
二、Yolov8安装部署
2.1 环境依赖
英文不好的,可看 gitee之readme.md文档 ,此处的环境要求:Python>=3.8 and PyTorch>=1.8。
2.1.1 Python>=3.8
这个好弄,本机有3.10的主环境,也有虚拟环境的管理工具,直接再生成一个3.10的虚拟环境使用即可。
mkvirtualenv --python="D:\Program Files\Python310\python.exe" yolo8310
2.1.2 PyTorch>=1.8
建议先将GPU的驱动更新至最新版本
进入任务管理器,查看自己GPU的型号
官网下载 对应型号的驱动 https://www.nvidia.cn/Download/index.aspx?lang=cn
下载完成后,开始安装。安装位置、安装选项等等安装默认即可(过程忘记截图了)。
打开终端,输入nvidia-smi
命令,查看CUDA Driver的版本,本机为 CUDA Version:12.3
那么选择CUDA Runtime时,要选择小于12.3的最大版本。
去Pytorch 官网 https://pytorch.org/ 选择适合自己的Pytorch进行下载安装。
下载速度还可以,就不切换源了,下载较慢的可以修改其他下载源试试效果。
数分钟安装完毕,查看pytorch包是否可用
import torch
print("版本:",torch.__version__,"\tGPU是否可用:",torch.cuda.is_available(),"\tGPU个数:",torch.cuda.device_count())
2.2 ultralytics(yolov8)安装
前面的环境配置好之后,可以开始安装yolov8了。
上图所示:官网中介绍了多种安装方式,基础较弱的可以选择 pip install ultralytics 这种方式,本文选择 Git clone方式。
2.2.1 pip install -e . 可编辑模式安装
以下命令copy自官网,若不想配置git,可以绕过第一步的clone命令,手动打开github地址,下载项目的zip压缩包,然后解压。
# Clone the ultralytics repository
git clone https://github.com/ultralytics/ultralytics
# Navigate to the cloned directory
cd ultralytics
# Install the package in editable mode for development
pip install -e .
安装完之后pip list查看一下,通过pip install -e 模式安装的包,后面会有一个路径显示。
2.2.2 测试效果
- 可以直接在命令行界面(CLI)运行yolo命令。
下图中的命令含义是:使用yolo的yolov8n.pt模型对bus.jpg这张图进行预测。yolov8n.pt模型不存在的话,会自动下载,但是可能下载速度比较慢
预测结果为: 4 persons, 1 bus, 1 stop sign。
标记图片保存在:项目目录下的 runs\detect\predict 文件夹内,名称同source。
- 也可以在python中使用
from ultralytics import YOLO
# 从头开始创建新的YOLO模型
model = YOLO('yolov8n.yaml')
# 加载预先训练的YOLO模型(建议用于训练)
model = YOLO('yolov8n.pt')
# 使用coco128.yaml数据集对模型进行3轮的训练
results = model.train(data='coco128.yaml', epochs=3)
# 评估模型在验证集上的性能
results = model.val()
# 使用模型对图像执行对象检测
results = model('https://ultralytics.com/images/bus.jpg')
# 将模型导出为ONNX格式
success = model.export(format='onnx')
加载预先训练的YOLO模型
使用coco128.yaml数据集对模型进行3轮的训练,会有一些过程输出。
Results saved to runs\detect\train2
识别图片,结果输出。results.names可以看到训练集只有80个分类,所以使用此数据集也仅仅只能识别这80个分类中的物品
自己训练的模型,最终只识别到了1个人,效果暂时不论,现在已经能够把流程跑通了,后续就可以尝试训练自己需要的模型了。
三、数据标注工具
当我们想要自己训练模型时,就需要自己准备数据集,前期的数据标注工作就很重要,这时就得先选择一个合适的标注工具。
3.1 labelImg
一种常用的矩形标注工具,常用于目标识别和目标检测。labelimg是使用Python语言编写,界面用Qt设计的,因此需要先安装pyqt5。
pip install pyqt5
pip install labelimg
labelimg # 命令行启动即可
安装完之后,在命令行输入labelimg启动。
使用方式可以参考下面的截图注释
终端里也能看到保存日志输出。