【yolo部署】

【yolo部署】

yolo功能

Task

Detection 检测目标
Instance Segmentation 轮廓
Classification 分类
Pose/Keypoints 关键点检测

Mode

训练(生成:模型)->验证->预测/推理->导出部署

指令运行

task
mode
model
source

$ yolo task='detect' mode='predict' model='yolo11n.pt' source='detect-footage.jpg'

Python脚本运行

from ultralytics import YOLO
yolo = YOLO(model='yolo11n.pt',task='detect')
result = yolo(source='imgs/zyj.jpg',save=True)

.\ultralytics\cfg\default.yaml包含所有参数

# source='screen' 检测屏幕
# source=0 检测摄像头
# save=True 结果检测完存到run里
# conf=0.05 置信区间

关于结果result

print(result[0].boxes)
image
xywh 中心点+宽高
xyxy 左上角 右上角
n 归一化

数据集标注

labelimg
改为yolo格式
View-Auto Save mode

dataset结构

|__datasets
     |__icon
         |__images  # 存放图片
		 	|__test
			|__train  # 需要被训练的图片
         |__labels  # 存放标注信息
			|__test
			|__train

快捷键
image

保存信息 data.yaml

#dataset path
train: ./images/train
val: ./images/test
test: ./images/test

#number of classes
nc: 1

#class names
names: ['nailong']

训练模型

train.py

from ultralytics.models import YOLO
import os

os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'

if __name__ == '__main__':
	# 模型配置文件路径(一般都是这个)
    model = YOLO(model='ultralytics/cfg/models/11/yolo11.yaml')
    model.train(data='./data.yaml', epochs=2, batch=1, device='0', imgsz=640, workers=2, cache=False,
                amp=True, mosaic=False, project='runs/train', name='exp')

train参数

data: 数据集配置文件(.yaml)路径
epochs=100: 训练轮数
time: 最大训练时间
batch=16: 每轮批量大小
imgsz=640: 用于训练的目标图像大小(所有图像在进入模型时都会调整到这个尺寸)
save=True: 是否保存
workers=8: 工作线程数
cache=Flase: 在内存、磁盘上启用/禁用数据集图像的缓存
			通过减少I/O来提高训练速度,代价是内存使用量增加
project: 保存训练输出时项目目录名称
name: 训练运行的名称 project/name
exist_ok=False: 若为True->允许覆盖现有project/name
pretrained=True: 是否从预先训练的模型开始训练 (布尔值/模型路径字符串)
optimizer=auto: 用于训练的优化器
verbose=False: 训练过程中启用详细输出

训练结束后会生成文件

posted @ 2025-04-14 21:49  White_ink  阅读(14)  评论(0)    收藏  举报