opencv+yolov8n图像模型训练和推断完整代码
#加载与训练模型
#安装三方库:ultralytics
#导包:from ultralytics import YOLO
from numpy.__config__ import show
from ultralytics import YOLO
#1.'加载模型
#2.检测目标
#加载预训练模型
#官方提供的基础测试和训练模型
#首次运行自动下载。
a1 = YOLO('yolov8n.pt')
#2.检测目标
#show=True 显示检测结果
#save=True,保存检测结果
a1('2.jpg',show = True,save = True)
#检测网络图片
from ultralytics import YOLO
a1 = YOLO('yolov8n.pt')
a1('mv.jpg',show = True,save = True)
#准备数据集结构文件
#跟目标创建1个文件夹(可自定义名称)
#下面创建再2个文件夹(images和labels)
#images和labels 下再分别创建2个文件夹(train和val)
#images下的train和val 芳入训练图片(png,jpg)
#labels下的train和val 放入图片标注(txt)
数据训练和标注
#准备数据集配置文件
#创建1个yaml格式的文件(可自定义名称)
#配置数据集信息、用于训练模型
path: C:\Users\HR0432\source\repos\robot\robot\xun #数据集根目录
train: images/train #训练集图片路径
val: images/val #验证集图片路径
nc: 3 #类别数量
names: ['正常','发黑','爆点'] #类别名称
#开始模型训练
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
from ultralytics import YOLO
import matplotlib
matplotlib.use('Agg') # 寮哄埗浣跨敤闈炰氦浜掑紡鍚庣
#加载预训练模型
a1 = YOLO('yolov8n.pt')
#开始训练
a1.train(
data='data.yaml', #数据集配置文件路径
epochs=300, #训练轮次 官方推荐500
imgsz=640, #输入图片尺寸 官方推荐640
batch=16, #每次训练的批量 官方推荐16/32
device='cpu' , #GPU=0 CPU= 'cpu'
workers=4 # 数据加载线程数
)
print('**********************************')
print('**********************************')
print('**********************************')
print('**************SUCCESS*************')
print('**************SUCCESS*************')
print('**************SUCCESS*************')
print('**********************************')
print('**********************************')
print('**********************************')
#检测模型结果
from ultralytics import YOLO
#模型训练完毕自动保存到C:\Users\HR0432\source\repos\robot\robot\runs\detect\train2\weights
#best.pt是训练好的最优模型(适用于最终应用)
#last.pt是训练的最后一轮模型(适用于训练继续)
#加载自己训练好的模型
a1 = YOLO(r'C:\Users\HR0432\source\repos\robot\robot\runs\detect\train16\weights\best.pt')
#目标检测
a1('3.jpg',show = True,save = True)