【无标题】如何使用yolo-v8 实现自定义目标检测

如何使用yolo-v8 实现自定义目标检测

训练数据集准备

在kaggle平台或者其他数据集的平台搜索相应的数据集,也可以自己拍摄大量的照片整理成数据集。

整理数据集的时候要注意数据标签的各式,必须是yolo-v8对应的格式,如果下载的数据集中自带的数据标签不是yolo-v8的格式(例如pascal voc),需要我们将数据格式转化为yolo-v8的格式

搭建环境

安装anaconda

复制代码
下载anaconda,清华源下载链接:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
在下载目录下找到对应版本(linux、mac、windows)的anaconda软件进行下载,下载之后按照常规的安装步骤将软件安装到主机上。

配置python虚拟环境

打开anaconda 的"anaconda prompt"命令行窗口

创建python3.8的虚拟环境:conda create -n myenv python=3.8

激活创建的虚拟环境:conda activate myenv

退出创建的虚拟环境:conda deactivate

安装yolo-v8以及labelimg图片标注工具

打开"anaconda prompt"命令行窗口,进入虚拟环境:

conda activate myenv

切换镜像源到清华源:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/

pip config set install trusted-host pypi.tuna.tsinghua.edu.cn

安装yolo-v8:

pip install ultralytics

安装labelimg图片标注工具:

pip install labelimg

编写配置文件和训练脚本文件

编写yaml配置文件(文件名为dataset.yaml)

yaml 复制代码
# 训练数据路径
train: E:\Mypro\*****
# 验证数据路径
val: E:\Mypro\*****
# 测试数据路径
test: E:\Mypro\*****
# 目标种类数目
nc: 10
# 目标名称
# dog
# cat
# horse
names: ['dog','cat','horse']

编写模型训练代码(文件名称为yolotrain.py

python 复制代码
from ultralytics import YOLO  # 导入yolo模块
model = YOLO('yolov8n.pt')  # 用于加载yolo-v8的通用预训练模型
model.train(data='dataset.yaml',epochs=100)		# 加载上步编写的yaml配置文件,获取其中配置参数内容
model.val()		# 使用验证集验证效果

运行训练数据集获得模型

运行yolotrain.py开始训练模型,大概需要稍长时间具体由数据集大小而定,训练完成后会在当前目录下产生一个runs/detect/train目录,目录中weights目录中保存了训练好的模型文件best.pt和last.pt,一般使用best.pt进行目标识别应用。

测试训练好的数据模型

编写测试代码(文件名称yolotest.py

python 复制代码
from ultralytics import YOLO # 导入yolo模块
model = YOLO('best.pt')		# 加载训练好的模型
# 识别图片或者视频中的目标
model = predict('001.jpg',save=True)
model = predict('002.mp4', save=True)
# 只识别自己指定的0,1类别的目标,line_width表示识别框字体大小
model = predict('003.jpg',save=True,classes = [0,1],line_width = 30)
model = predict('004.mp4',save=True,classes = [0,1],line_width = 30)

运行测试程序获取结果

运行yolotest.py,识别结果保存在在当面目录下的runs/detect/predict中,打开图片或者视频文件就可以看到圈出来目标的图片或者视频文件。

相关推荐
程序员脚趾11 小时前
GPT-5.6 上线:当 GPT 与 Codex 走向融合,AI 正从“回答问题”走向“完成工作”
人工智能
thubier(段新建)11 小时前
owtb 3pl 面向城市配送物流企业需求V0.2
大数据·人工智能
Token炼金师11 小时前
模型的防线:Prompt 注入防御、越狱攻击与对齐、红队测试、价值观对齐、对抗样本鲁棒性、安全评测与边界 —— 模型安全六防
人工智能·红队测试·prompt 注入防御·越狱攻击与对齐·价值观对齐·对抗样本鲁棒性·安全评测与边界
嘘神秘用12 小时前
布:AI 驱动的 Redis 客户端,更快、更直观
数据库·人工智能·redis
黒亱中旳12 小时前
Java AI 框架三国杀:Solon AI vs Spring AI vs LangChain4j 深度对比
java·人工智能·spring
小和尚同志12 小时前
前端 AI 单元测试思考与落地
前端·人工智能·aigc
alxraves12 小时前
医用超声远程会诊系统:会诊平台的核心架构与功能解析
java·人工智能·架构
jinggongszh13 小时前
智能硬件对接与系统落地:开发岗在制造现场的经验沉淀
大数据·人工智能
ZeekerLin13 小时前
AI 原生团队协作机制:角色、分工与工程文化变化
大数据·人工智能
城中南小13 小时前
零基础认识大语言模型(LLM)工作原理(5.Transformer的FFN模块到底是什么?)
人工智能·语言模型·transformer