YOLOV11使用方法

1 代码下载到本地

建议:Utuban系统

命令行指令:

下载:Git clone GitHub - ultralytics/ultralytics: Ultralytics YOLO11 🚀

打开:code ultralytics

注:后续流程不依赖requirements.txt安装依赖包

2 新建虚拟环境

conda create -n py39 python=3.9 anaconda

注:末尾+anaconda会自动装额外的科学计算的包,比较好。

注:数据集的格式,YOLO、COCO、VOC、json等,可以相互转换。

3 torch的安装

查看CUDA版本:nvidia-smi,如下:

下载conda时,版本一定要小于等于下图的版本。

Pytorch官网:https://pytorch.org/get-started/previous-versions/

比如下载V2.3.0版本的Conda:

# CUDA 12.4

conda install pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 pytorch-cuda=12.4 -c pytorch -c nvidia

注:如果遇到conda下载比较慢的时候,可以直接把下载链接复制到浏览器下载,然后直接pip安装下载好的包名字:

pip install torch-2.3.0+cu121-cp310-cp310-linux x86 64.wh1

pip挂代理:

搜索pip proxy

指令:pip install -r requirements.txt --proxy=代理服务器IP:端口号

比如:

4 opencv的安装

指令:pip install opencv-python seaborn --proxy=代理服务器IP:端口号

data.yaml

train、val、test:地址使用images,运行时程序会自动将images替换为labels来寻找标签。

其他包:

pip install thop

5 路径:(推荐使用绝对路径)

比如:data.yaml

方法1:

train: E:/Datasets/Cats/train/images

val: E:/Datasets/Cats/val/images

test: E:/Datasets/Cats/test/images

方法2:

path: E:/Datasets/Cats/

train: train/images

val: val/images

test: test/images

6 bili代码

6.1 新建train.py

from ultralytics import YOLO

if __name__ == ‘__main__’:

model = YOLO(“ultralytics/cfg/models/11/yolo11s.yaml”)   # 模型配置

       # model.load(‘yolov11n.pt’)  # 加载预训练权重。可以不用

        model.train(

               data = ’data.yaml’,

               imgsz = 640,

                epochs = 50,

                batch = 16,

                close_mosaic = 0,

                optimizer = ‘SGD’,

                project = ‘runs/train’,  #保存根目录

                name = ‘exp’,  #保存名字

                )

即可开始训练。

注:虽然原版文件中没有yolo11s.yaml,不用管,可以直接使用,程序会自动下载。

注:如果使用预训练权重,程序运行时会出现一行代码:

Trasferred ???/499 items from pretrained weights.

6.2 新建val.py

import warnings

warnings.filterwarning(‘ignore’)

from ultralytics import YOLO

if __name__ == ‘__main__’

        model = YOLO(“runs/train/exp/weights/best.pt”)   # 模型配置

        model.val(

               data = ’/root/datasets/belt/data.yaml’,

               split = ‘val’,

               imgsz = 640,

                # iou = 0.7,

                # rect = False,

                # save_json = True,  # if you need cal coco metrics

                project = ‘runs/train’,  #保存根目录

                name = ‘exp’,  #保存名字

                )

即可开始验证。

6.3 新建detect.py

import warnings

warnings.filterwarning(‘ignore’)

from ultralytics import YOLO

if __name__ == ‘__main__’

        model = YOLO(“runs/train/exp/weights/best.pt”)   # 模型配置

        model.predict(

               source = ’datasets/images/test’,  # 源图片路径

                project = ‘runs/detect’,  # 保存根目录

                name = ‘exp’,  #保存名字

                save = True,

                # conf = 0.2,

                # iou = 0.7,

                # agnostic_nms = True,

                # visualize = True,  # visualize model features maps

                # line_width = 2,

                # show_conf = False,  # show prediction confidence

                # show_labels = True,  # show prediction labels

                # save_txt = True,  # save result as .txt file

                # save_crop = True,  # save cropped images with results

                )

检测模型框架:

Detection (COCO)

OBB (DOTAv1)

7 Ultralytics (github源码)

7.1 Train

在自定义数据集上训练YOLO11 模型。在该模式下,模型使用指定的数据集和超参数进行训练。训练过程包括优化模型参数,使其能够准确预测图像中物体的类别和位置。

从零开始:

from ultralytics import YOLO

model = YOLO("yolo11n.yaml")

results = model.train(

    data="coco8.yaml",  # path to dataset YAML

    epochs=100,  # number of training epochs

    imgsz=640,  # training image size

    device="cpu",  # device to run on, i.e. device=0 or device=0,1,2,3 or device=cpu

     )

来自预训练模型:

from ultralytics import YOLO

model = YOLO("yolo11n.pt")  # pass any model type

results = model.train(

    data="coco8.yaml",  # path to dataset YAML

    epochs=100,  # number of training epochs

    imgsz=640,  # training image size

    device="cpu",  # device to run on, i.e. device=0 or device=0,1,2,3 or device=cpu

)

7.2 Val

用于在YOLO11 模型训练完成后对其进行验证。在该模式下,模型在验证集上进行评估,以衡量其准确性和泛化性能。该模式可用于调整模型的超参数,以提高其性能。

Train之后的Val:

from ultralytics import YOLO

# Load a YOLO11 model

model = YOLO("yolo11n.yaml")

# Train the model

model.train(data="coco8.yaml", epochs=5)

# Validate on training data

model.val()

在另一个数据集上Val:

from ultralytics import YOLO

# Load a YOLO11 model

model = YOLO("yolo11n.yaml")

# Train the model

model.train(data="coco8.yaml", epochs=5)

# Validate on separate data

model.val(data="path/to/separate/data.yaml")

7.3 Predict

模型从检查点文件加载,用户可以提供图像或视频来执行推理。模型会预测输入图像或视频中物体的类别和位置。

import cv2

from PIL import Image

from ultralytics import YOLO

model = YOLO("model.pt")

# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam

results = model.predict(source="0")

results = model.predict(source="folder", show=True)  # Display preds. Accepts all YOLO predict arguments

# from PIL

im1 = Image.open("bus.jpg")

results = model.predict(source=im1, save=True)  # save plotted images

# from ndarray

im2 = cv2.imread("bus.jpg")

results = model.predict(source=im2, save=True, save_txt=True)  # save predictions as labels

# from list of PIL/ndarray

results = model.predict(source=[im1, im2])

# show results

results[0].show()

# Export the model to ONNX format

path = model.export(format="onnx") #return path to exported model 返回导出模型的路径

<think>好的,用户想知道如何在YOLOv8中设置图像尺寸参数以及这个参数对模型的影响。我需要先回忆一下YOLOv8的相关知识,特别是关于图像尺寸的部分。 首先,记得YOLOv8在处理输入图像时,通常会将图像调整为统一的尺寸,这有助于模型处理不同大小的输入。这个尺寸参数可能是在配置文件中设置的,或者在训练时通过参数指定。用户提供的引用[2]中提到了image size的代码部分,里面提到了检查imgsz的代码,以及gs的计算方式,这可能涉及到模型的步长(stride)。可能需要解释这段代码的作用,比如gs是网格大小,基于模型的最大步长,然后调整imgsz确保符合要求。 接下来,用户可能想知道如何设置这个参数。根据引用[1]中的示例,训练时使用的data参数是coco128.yaml,可能在这个YAML文件中有关于图像尺寸的设置,或者在训练命令中直接指定imgsz参数。例如,在CLI中可能使用`imgsz=640`这样的参数,或者在Python代码中设置args.imgsz的值。 然后,关于图像尺寸对模型的影响,较大的尺寸可能会提高检测小物体的能力,但会增加计算量和内存消耗,可能会影响训练速度和推断时间。较小的尺寸则相反。另外,YOLO模型通常要求图像尺寸是32的倍数,因为下采样步长的关系,比如32倍,这样可以确保特征图的大小合适,避免尺寸不匹配的问题。引用[2]中的代码也提到了检查imgsz是否符合stride的要求,这里gs是最大步长,可能默认是32,所以imgsz需要是gs的倍数。 还需要提到在训练和推理时的图像尺寸设置是否一致,以及导出模型时是否固定图像尺寸。比如,导出为ONNX或TensorRT格式时可能需要固定输入尺寸,这时候在导出命令中指定imgsz参数可能很重要。引用[3]中提到了导出模式的重要性,这里可能需要说明导出时图像尺寸的影响。 另外,用户可能想知道如何验证设置的图像尺寸是否有效,或者如何查看当前的设置。可能需要指导用户查看配置文件或打印args.imgsz的值,或者通过模型的结构来确认。 最后,需要总结设置image size的步骤,以及不同场景下的建议值,比如常用的640x640,以及调整时的注意事项,比如必须是32的倍数,根据硬件条件调整等。</think>### YOLOv8图像尺寸设置方法及影响分析 #### 一、图像尺寸设置方法YOLOv8中,图像尺寸(`imgsz`)可通过以下两种方式设置: 1. **配置文件定义** 在数据配置文件(如`coco128.yaml`)中,设置默认输入尺寸: ```yaml # data/coco128.yaml train: ../train/images val: ../val/images # 输入尺寸设置 imgsz: 640 # 标准尺寸,也可用(640,640)格式 ``` 2. **运行时参数指定** 在训练/推理时通过`imgsz`参数动态设置: ```python from ultralytics import YOLO model = YOLO("yolov8n.pt") # 训练时设置 model.train(data="coco128.yaml", imgsz=640, epochs=100) # 推理时设置 results = model.predict(source="input.jpg", imgsz=320) ``` #### 二、核心验证机制 YOLOv8通过以下代码确保尺寸有效性: ```python gs = max(int(self.model.stride.max()), 32) # 计算网格基准(通常为32的倍数) self.args.imgsz = check_imgsz(imgsz, stride=gs, floor=gs, max_dim=1) ``` 该算法会强制将`imgsz`调整为`gs`(通常为32)的整数倍,保证特征图尺寸匹配网络结构[^2]。 #### 三、尺寸参数的影响 | 尺寸类型 | 优势 | 劣势 | 适用场景 | |---------|------|------|---------| | **大尺寸**(如1280) | 小目标检测精度↑,特征细节保留↑ | 显存占用↑,推理速度↓ | 高分辨率图像处理 | | **标准尺寸**(640) | 精度与速度平衡 | 中等资源消耗 | 通用检测任务 | | **小尺寸**(320) | 推理速度↑,显存占用↓ | 小目标漏检率↑ | 移动端/边缘设备 | #### 四、工程实践建议 1. **硬件适配原则** 建议根据GPU显存选择最大可行尺寸,例如: - 8GB显存:推荐≤640 - 16GB显存:可尝试896 - 32GB显存:可测试1280 2. **多尺度训练优化** 在训练阶段启用多尺度增强: ```python model.train(imgsz=(320, 640), scale=True) # 随机缩放范围设置 ``` 这能提升模型对不同尺寸目标的适应能力。 3. **导出部署注意** 使用导出功能时需固定输入尺寸: ```python model.export(format="onnx", imgsz=640) # 固化输入尺寸为640x640 ``` 导出后模型将无法动态调整输入尺寸[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值