YOLO11 语句整理

简介: 本内容介绍基于YOLOv11模型的开发流程,涵盖模型下载、安装依赖库、训练与推理、模型转换为OpenVINO格式及部署。通过Ultralytics工具包实现模型加载、训练和预测,并使用OpenVINO优化推理性能。此外,提供数据集划分方法,按指定比例生成训练集、验证集和测试集,确保数据准备规范化,提升模型训练效果与实用性。

SDK模型下载

pip install ultralyticsFrom modelscope import snapshot_download
Model_dir = snapshot_download(‘yolo_master/YOLO11’)

库安装

pip install openvino

拷贝字体文件

cp Arial.Unicode.ttf /root/.config/Ultralytics

加载、训练模型

from ultralytics import YOLO
model = YOLO("yolo11s.pt")
model.train(data="coco128.yaml", epochs=200, imgsz=640, worker=8)

模型运行

from ultralytics import YOLO
model = YOLO("best2.pt")
results = model("0.jpg")
results[0].show()

模型转换OPENVINO

from ultralytics import YOLO
model = YOLO("best.pt")
model.export(format="openvino")

部署OPENVINO

from ultralytics import YOLO
from pathlib import Path
import torch,time
import openvino as ov
import cv2

model_path = Path(r"./best_openvino_model/best.xml")
image_path = r"./0.jpg"

用Ultralytics工具包API实现yolov11模型推理程序

yolo11 = YOLO("best.pt", task="detect")
yolo11(image_path)

使用OpenVINO实现推理计算

core = ov.Core()
device = "CPU"
config = {"PERFORMANCE_HINT": "LATENCY"}

编译模型到CPU上

compiled_model = core.compile_model(model_path, device, config)

替代yolov11的原生推理计算方法

def ov_infer(*args):
result = compiled_model(args)
return torch.from_numpy(result[0])

yolo11.predictor.inference = ov_infer

执行基于OpenVINO的推理计算, 并复用YOLOV11的原生前后处理程序

img = cv2.imread(image_path)
img = cv2.resize(img, (640, 640))
yolo11.predict(img)

time.sleep(6)

第二部分: 将数据集随机划分为训练集和验证集,测试集

import os
import random
import shutil

from tqdm import tqdm

image_path = r"./Images//" # 源图片文件夹路径
mask_path = r"./Labels//" # 标签文件夹路径

train_images = r"./datasets2/images/train" # 划分后训练集图片的保存路径
train_labels = r"./datasets2/labels/train"
val_images = r"./datasets2/images/val"
val_labels = r"./datasets2/labels/val"

if not os.path.exists(train_images):
os.makedirs(train_images)
if not os.path.exists(train_labels):
os.makedirs(train_labels)
if not os.path.exists(val_images):
os.makedirs(val_images)
if not os.path.exists(val_labels):
os.makedirs(val_labels)

train_rate = 0.8 # 自定义抽取图片的比例,比方说100张抽10张,那就是0.1
val_rate = 0.2
test_rate = 0.0

求训练集

pathDir = os.listdir(image_path) # 取图片的原始路径
print('数据集总共有图片:', len(pathDir))
print(
'划分比例如下:训练集:{},验证集:{},测试集:{}'.format(int(len(pathDir) train_rate), int(len(pathDir) val_rate),
int(len(pathDir) test_rate)
)) # ,测试集:{} int(len(pathDir)
test_rate)
picknumber = int(len(pathDir) * train_rate) # 按照rate比例从文件夹中取一定数量图片
train_sample = random.sample(pathDir, picknumber) # 随机选取picknumber数量的样本图片
print('训练集的大小为:', len(train_sample))

复制为训练集

for name in tqdm(train_sample):
if os.path.isfile(image_path + name):
shutil.copy(image_path + name, train_images + "//" + name)
shutil.copy(mask_path + name[:-3] + "txt", train_labels + "//" + name[:-3] + "txt")

求出原数据集不含训练集

all_images = os.listdir(image_path)
val_sample = []
for file in all_images:
if file not in train_sample:
val_sample.append(file)
print('验证集的大小为:', len(val_sample))

复制为验证集

for file in tqdm(val_sample):
shutil.copy(image_path + file, val_images + "/" + file)
shutil.copy(mask_path + file[:-3] + "txt", val_labels + "/" + file[:-3] + "txt")

相关文章
Pyside6-第四篇-QCheckBox复选框
Pyside6-第四篇-QCheckBox复选框
1867 0
Pyside6-第四篇-QCheckBox复选框
|
5月前
|
机器学习/深度学习 人工智能 编解码
抽烟行为检测数据集(约3000张图片已标注)| YOLO训练数据集 AI视觉检测
本数据集含约3000张多场景抽烟行为图像,YOLO格式标注(单类“smoke”),覆盖室内外、不同光照与人群姿态,支持YOLOv5/v8直接训练。适用于智慧安防、禁烟监管及AI行为识别研究,助力实时检测与自动告警。
抽烟行为检测数据集(约3000张图片已标注)| YOLO训练数据集 AI视觉检测
|
人工智能 API 开发工具
YOLOV11 使用流程
本内容整理了YOLO V11的常用代码语句,涵盖YOLO模型下载、数据集划分、模型训练与推理优化等关键步骤,适用于目标检测任务。
|
机器学习/深度学习 人工智能 算法
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
本文介绍了如何使用 Python 和 YOLO v8 开发专属的 AI 视觉目标检测模型。首先讲解了 YOLO 的基本概念及其高效精准的特点,接着详细说明了环境搭建步骤,包括安装 Python、PyCharm 和 Ultralytics 库。随后引导读者加载预训练模型进行图片验证,并准备数据集以训练自定义模型。最后,展示了如何验证训练好的模型并提供示例代码。通过本文,你将学会从零开始打造自己的目标检测系统,满足实际场景需求。
16075 1
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
|
XML 机器学习/深度学习 数据格式
YOLOv8训练自己的数据集+常用传参说明
YOLOv8训练自己的数据集+常用传参说明
27596 3
|
编解码 算法 计算机视觉
YOLOv11改进策略【Head】| 增加针对 大目标 的检测层 (四个检测头)
YOLOv11改进策略【Head】| 增加针对 大目标 的检测层 (四个检测头)
2755 7
|
机器学习/深度学习 资源调度 算法
YOLOv11改进策略【损失函数篇】| 引入Soft-NMS,提升密集遮挡场景检测精度,包括GIoU-NMS、DIoU-NMS、CIoU-NMS、SIoU-NMS、 EIou-NMS
YOLOv11改进策略【损失函数篇】| 引入Soft-NMS,提升密集遮挡场景检测精度,包括GIoU-NMS、DIoU-NMS、CIoU-NMS、SIoU-NMS、 EIou-NMS
5148 6
|
Ubuntu Python
全网最简约的Vscode配置Anaconda环境(百分百成功)
全网最简约的Vscode配置Anaconda环境(百分百成功)
39524 0
全网最简约的Vscode配置Anaconda环境(百分百成功)
|
XML JSON 数据可视化
数据集学习笔记(六):目标检测和图像分割标注软件介绍和使用,并转换成YOLO系列可使用的数据集格式
本文介绍了labelImg和labelme两款图像标注工具的安装、使用、数据转换和验证方法,适用于目标检测和图像分割任务,支持YOLO等数据集格式。
6644 2
数据集学习笔记(六):目标检测和图像分割标注软件介绍和使用,并转换成YOLO系列可使用的数据集格式