首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Yolo11实战改进:一文读懂Yolo11到实战

Yolo11实战改进:一文读懂Yolo11到实战

作者头像
AI浩
发布于 2024-11-18 12:19:33
发布于 2024-11-18 12:19:33
3.5K00
代码可运行
举报
文章被收录于专栏:AI智韵AI智韵
运行总次数:0
代码可运行

摘要

Yolo11是Ultralytics推出的新一代计算机视觉模型,为YOLO家族树立了新的里程碑。它在对象检测、实例分割、图像分类、姿势估计、定向物体检测和对象跟踪等计算机视觉任务上展现了卓越的性能和准确性,相较于YOLOv8有了显著提升。

创新点:

  1. 无与伦比的速度和精度:Yolo11的设计旨在实现快速运行而不牺牲精度。其优化的模型架构提供了快速的推理时间,适用于自动驾驶、安全系统和工业自动化等实时应用。Yolo11在速度和准确性之间取得了平衡,满足了需要快速决策的场景需求。
  2. 高级物体检测功能:Yolo11在复杂环境中的物体检测能力得到了显著提升。它能够容忍遮挡并更好地区分重叠物体,这对于城市监控或事件监控等拥挤环境中的应用至关重要。
  3. 应用多功能性:Yolo11不仅擅长对象检测,还具备实例分割、姿势估计和跟踪等高级功能。这种多功能性使其可应用于从医疗保健到农业的各个领域,提供了广泛的适用性。
  4. 增强的设计和计算效率:Yolo11在YOLOv9和YOLOv10的基础上进行了扩展,集成了卓越的架构框架、精炼的特征提取方法和优化的训练协议。它使用更少的参数实现了更高的平均精度(mAP)得分,提高了计算效率。同时,Yolo11的处理速度也有所提高,使其更适合实时应用。
  5. 高效的部署能力:Yolo11的处理能力极其高效,适合在云端和边缘设备上部署。它提供了灵活性,可适应各种计算机视觉挑战,包括自动驾驶、监控、医疗成像、智能零售和工业用例等。

Yolo11以其出色的速度、精度、多功能性和计算效率,成为了Ultralytics迄今为止开发的最熟练的模型之一,为计算机视觉领域带来了新的突破。

关键特性:

1、增强的特征提取:采用改进的主干网络和颈部架构,提高了特征提取能力,以实现更精确的目标检测和更复杂的任务性能。 2、优化效率和速度:引入了精细的架构设计和优化的训练流程,提供了更快的处理速度,并在准确性和性能之间保持了最佳平衡。 3、参数更少,精度更高:凭借模型设计的进步,在数据集上实现了更高的平均精度均值(),同时使用的参数比少,从而在不影响精度的前提下提高了计算效率。 4、跨环境适应性:可以无缝部署在各种环境中,包括边缘设备、云平台和支持 GPU的系统,确保了最大的灵活性。 5、支持的任务范围广泛:无论是目标检测、实例分割、图像分类、姿态估计还是定向目标检测(),都旨在应对各种计算机视觉挑战。

支持的任务和模式

YOLO11支持的计算机视觉任务的概述:

  • 对象检测:识别并精确定位图片或视频帧中的对象,用边界框勾勒出它们,用于监控、自动驾驶和零售分析等用途。
  • 实例分割需要在像素级别识别和勾勒出图像中的离散对象。它对医学成像和制造业缺陷识别等应用大有裨益。
  • 图像分类:将整张照片分配到已建立的类别,使其适用于电子商务中的产品分类或野生动物监视等应用。
  • 姿势估计:识别图像或视频帧中的某些重要点以监控运动或姿势,有利于健身追踪、运动分析和医疗保健应用。
  • 定向物体检测:(OBB)识别具有特定方向角的物体,有助于更准确地定位旋转物体,特别有利于航空成像、机器人和仓库自动化应用。
  • 对象跟踪:观察并追踪连续视频帧中对象的动作,这对于众多实时应用来说至关重要。

模型

文件名

任务

推理

验证

训练

导出

yolo11n.pt yolo11s.pt yolo11m.pt yolo11l.pt yolo11x.pt

检测

yolo11n-seg.pt yolo11s-seg.pt yolo11m-seg.pt yolo11l-seg.pt yolo11x-seg.pt

实例分割

yolo11n-pose.pt yolo11s-pose.pt yolo11m-pose.pt yolo11l-pose.pt yolo11x-pose.pt

姿态/关键点检测

yolo11n-obb.pt yolo11s-obb.pt yolo11m-obb.pt yolo11l-obb.pt yolo11x-obb.pt

定向检测

yolo11n-cls.pt yolo11s-cls.pt yolo11m-cls.pt yolo11l-cls.pt yolo11x-cls.pt

分类

此表概述了模型的各种变体,展示了它们在特定任务中的适用性以及与推理、验证、训练和导出等操作模式的兼容性。这种灵活性使适用于计算机视觉领域的广泛应用,从实时检测到复杂的分割任务。

Yolo11模型架构

Yolo11l的结构图:从结构图中可以看出,核心增加了两个模块,一个是C3k2,一个是C2PSA模块。

C3K2与C2PSA模块总结

C3K2模块:

C3K2模块是YOLO11在backbone部分引入的一种更快速的CSP(Cross Stage Partial Networks)模块变体。CSP模块是一种网络结构设计,旨在通过跨阶段的部分连接来增强特征学习能力,同时减少计算量。C3K2在C3模块的基础上进行了优化,通过指定参数为2,实现了两个C3k(可能是指具有某种特定配置的C3模块变体)的串联,从而进一步提升了特征提取的效率和能力。这种设计使得C3K2能够在保持模型稳定性的同时,提高模型的运行速度,并可能通过增加特征提取的深度来间接提升精度。

C3K2有两种状态,一种是c3k=False为False的时候,这时候就是C2f模块。结构图如下:

一种是c3k=True为False的时候,这时候就是C3K2模块,结构图:

C3k模块延续了以前的C3模块。结构图:

C2PSA模块:

C2PSA模块是YOLO11在backbone部分新增的一个具有注意力机制的特征提取和处理模块。它支持一个可以多次叠加的PSA(金字塔切片注意力)模块,该模块是在SE(Squeeze-and-Excitation)注意力机制的基础上进行叠加和改进的。SE注意力机制通过显式地建模特征通道间的相关性,自适应地重新校准通道特征响应,从而提升模型的表示能力。而PSA模块则通过引入金字塔切片的概念,进一步增强了注意力机制的效果,使其能够更精细地捕捉特征间的依赖关系。C2PSA模块将PSA模块作为独立组件插入到模型中,通过替换原有的部分结构,显著增强了模型的特征提取能力,进而提升了模型的精度和mAP(平均精度均值)。这种结构详见:https://arxiv.org/pdf/2105.14447。PSA结构如下:

C2PSA结构图:

在这里插入图片描述

训练、验证、以及测试

训练

训练代码以及参数详解

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from ultralytics import YOLO

if __name__ == '__main__':
    # 加载模型
    model = YOLO(model="ultralytics/cfg/models/11/yolo11l.yaml")  # 从头开始构建新模型
    print(model)
    # Use the model
    results = model.train(data="VOC.yaml",patience=0, epochs=2, device='0', batch=8, seed=42,imgsz=[640,640])  # 训练模

参数

说明

lr0

(float) 初始学习率(例如SGD=0.01, Adam=0.001)

lrf

(float) 最终学习率(lr0 * lrf)

momentum

(float) SGD动量/Adam的beta1

weight_decay

(float) 优化器权重衰减(0.0005或5e-4)

warmup_epochs

(float) 预热周期(可以是小数)

warmup_momentum

(float) 预热初始动量

warmup_bias_lr

(float) 预热初始偏置学习率

model

(str, 可选) 模型文件路径,例如 yolov8n.pt, yolov8n.yaml

data

(str, 可选) 数据文件路径,例如 coco8.yaml

epochs

(int) 训练的总轮数

time

(float, 可选) 训练的小时数,如果提供则覆盖 epochs

patience

(int) 早期停止训练的轮数(无显著改进时等待的轮数)

batch

(int) 每批次的图像数量(-1 为自动批量)

imgsz

(int or list) 训练和验证模式的输入图像尺寸(int),或预测和导出模式的列表[h,w]

save

(bool) 是否保存训练检查点和预测结果

save_period

(int) 每 x 轮保存一次检查点(<1 时禁用)

cache

(bool) True/ram, disk 或 False。用于数据加载的缓存

device

(int 、str、 list, 可选) 运行设备,例如 cuda device=0 或 device=0,1,2,3 或device='0,1,2,3 '或 device=cpu

workers

(int) 数据加载的工作线程数(如果使用 DDP,则为每个 RANK)

project

(str, 可选) 项目名称

name

(str, 可选) 实验名称,结果保存在 'project/name' 目录中

exist_ok

(bool) 是否覆盖现有实验

pretrained

(bool、str) 是否使用预训练模型(bool)或从字符串路径加载权重的模型

optimizer

(str) 使用的优化器,选项=[SGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, auto]

verbose

(bool) 是否打印详细输出

seed

(int) 用于可重复性的随机种子

deterministic

(bool) 是否启用确定性模式

single_cls

(bool) 将多类数据训练为单类

rect

(bool) 如果 mode='train' 则进行矩形训练,如果 mode='val' 则进行矩形验证

cos_lr

(bool) 使用余弦学习率调度器

close_mosaic

(int) 在最后几个轮次中禁用马赛克增强(0 以禁用)

resume

(bool) 从上一个检查点恢复训练

amp

(bool) 自动混合精度(AMP)训练,选项=[True, False],True 运行 AMP 检查

fraction

(float) 用于训练的数据集比例(默认为 1.0,即训练集中的所有图像)

profile

(bool) 在训练期间为记录器分析 ONNX 和 TensorRT 速度

freeze

(int 、 list, 可选) 在训练期间冻结前 n 层或冻结层索引列表

multi_scale

(bool) 训练期间是否使用多尺度

overlap_mask

(bool) 在训练期间将对象掩码合并到单个图像掩码中(仅分段训练)

mask_ratio

(int) 掩码下采样比例(仅分段训练)

dropout

(float) 使用 dropout 正则化(仅分类训练)

box

(float) 框损失增益

cls

(float) 类别损失增益(按像素比例缩放)

dfl

(float) DFL损失增益

pose

(float) 姿态损失增益

kobj

(float) 关键点对象损失增益

label_smoothing

(float) 标签平滑(比例)

nbs

(int) 名义批量大小

hsv_h

(float) 图像HSV-色调增强(比例)

hsv_s

(float) 图像HSV-饱和度增强(比例)

hsv_v

(float) 图像HSV-亮度增强(比例)

degrees

(float) 图像旋转角度(±度)

translate

(float) 图像平移(±比例)

scale

(float) 图像缩放(±增益)

shear

(float) 图像剪切(±度)

perspective

(float) 图像透视(±比例),范围0-0.001

flipud

(float) 图像上下翻转(概率)

fliplr

(float) 图像左右翻转(概率)

bgr

(float) 图像BGR通道交换(概率)

mosaic

(float) 图像马赛克(概率)

mixup

(float) 图像混合(概率)

copy_paste

(float) 段落复制粘贴(概率)

copy_paste_mode

(str) 复制粘贴增强的方法(flip, mixup)

auto_augment

(str) 分类任务的自动增强策略(randaugment, autoaugment, augmix)

erasing

(float) 分类训练期间随机擦除的概率(0-0.9),0表示不擦除,必须小于1.0

crop_fraction

(float) 分类任务的图像裁剪比例(0.1-1),1.0表示不裁剪,必须大于0

cfg

(str, 可选) 用于覆盖defaults.yaml的自定义配置文件

tracker

(str) 跟踪器类型,选项=[botsort.yaml, bytetrack.yaml]

加载预训练模型的写法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from ultralytics import YOLO


if __name__ == '__main__':
    # 加载模型
    model = YOLO(model="ultralytics/cfg/models/11/yolo11l.yaml").load("yolo11l.pt")  # 从头开始构建新模型
    print(model)
    # Use the model
    results = model.train(data="VOC.yaml",patience=0, epochs=2, device='0', batch=8, seed=42,imgsz=[640,640])  # 训练模

在这里插入图片描述

多GPU训练

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python -m torch.distributed.launch --nproc_per_node=2 train.py

断点训练

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from ultralytics import YOLO

# Load a model
model = YOLO("path/to/last.pt")  # load a partially trained model

# Resume training
results = model.train(resume=True)

使用苹果电脑训练

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model with MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

测试结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Starting training for 2 epochs...

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
        1/2      5.83G      3.784       5.47      4.073         59        640: 100%|██████████| 259/259 [00:45<00:00,  5.72it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 15/15 [00:01<00:00,  8.32it/s]
                   all        230       1412      0.413     0.0451    0.00809    0.00277

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
        2/2      5.82G      2.808      4.106      3.118         88        640: 100%|██████████| 259/259 [00:52<00:00,  4.91it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 15/15 [00:02<00:00,  6.34it/s]
                   all        230       1412      0.219       0.12     0.0292      0.011

2 epochs completed in 0.029 hours.
Optimizer stripped from runs\detect\train\weights\last.pt, 51.2MB
Optimizer stripped from runs\detect\train\weights\best.pt, 51.2MB

Validating runs\detect\train\weights\best.pt...
WARNING ⚠️ validating an untrained model YAML will result in 0 mAP.
Ultralytics 8.3.28 🚀 Python-3.12.4 torch-2.4.1 CUDA:0 (NVIDIA GeForce RTX 4090 Laptop GPU, 16376MiB)
YOLO11l summary (fused): 464 layers, 25,303,984 parameters, 0 gradients
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 15/15 [00:02<00:00,  6.43it/s]
                   all        230       1412      0.219      0.119     0.0293      0.011
                   c17         40        131     0.0664      0.443      0.063     0.0211
                    c5         19         68     0.0407     0.0735     0.0133    0.00487
            helicopter         13         43     0.0797     0.0698     0.0473     0.0236
                  c130         20         85     0.0273      0.518      0.028     0.0117
                   f16         11         57     0.0181      0.544     0.0295    0.00771
                    b2          2          2          0          0          0          0
                 other         13         86     0.0424      0.279     0.0501     0.0118
                   b52         21         70     0.0446      0.129     0.0256    0.00872
                  kc10         12         62     0.0225     0.0323     0.0263    0.00977
               command         12         40          0          0    0.00341    0.00134
                   f15         21        123     0.0834     0.0407     0.0204    0.00636
                 kc135         24         91      0.181      0.418       0.17     0.0749
                   a10          4         27          0          0   0.000874    0.00035
                    b1          5         20          0          0          0          0
                   aew          4         25     0.0193       0.04     0.0143    0.00699
                   f22          3         17          1          0    0.00307   0.000307
                    p3          6        105          0          0    0.00188     0.0008
                    p8          1          1          1          0          0          0
                   f35          5         32          1          0     0.0905     0.0421
                   f18         13        125      0.123      0.476      0.104     0.0363
                   v22          5         41    0.00524     0.0244    0.00604     0.0026
                 su-27          5         31      0.127     0.0968     0.0655      0.019
                 il-38         10         27       0.02      0.037     0.0208    0.00529
                tu-134          1          1          1          0          0          0
                 su-33          1          2          0          0          0          0
                 an-70          1          2          1          0          0          0
                 tu-22          8         98          0          0    0.00616     0.0023

加载预训练的测试结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Starting training for 2 epochs...

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
        1/2      5.76G      1.239      2.468      1.111         56        640: 100%|██████████| 259/259 [01:13<00:00,  3.53it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 15/15 [00:02<00:00,  7.09it/s]
                   all        230       1412      0.589      0.575      0.619      0.429
  0%|          | 0/259 [00:00<?, ?it/s]
      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
        2/2      5.85G      1.072      1.183      1.035        109        640: 100%|██████████| 259/259 [00:59<00:00,  4.36it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 15/15 [00:02<00:00,  7.50it/s]
                   all        230       1412      0.757      0.774      0.841      0.601

2 epochs completed in 0.039 hours.
Optimizer stripped from runs\detect\train2\weights\last.pt, 51.2MB
Optimizer stripped from runs\detect\train2\weights\best.pt, 51.2MB

Validating runs\detect\train2\weights\best.pt...
WARNING ⚠️ validating an untrained model YAML will result in 0 mAP.
Ultralytics 8.3.28 🚀 Python-3.12.4 torch-2.4.1 CUDA:0 (NVIDIA GeForce RTX 4090 Laptop GPU, 16376MiB)
YOLO11l summary (fused): 464 layers, 25,303,984 parameters, 0 gradients
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 15/15 [00:02<00:00,  6.80it/s]
                   all        230       1412      0.757      0.775      0.841      0.601
                   c17         40        131      0.852      0.939      0.959      0.727
                    c5         19         68       0.94      0.618      0.864      0.713
            helicopter         13         43      0.571      0.884      0.915      0.529
                  c130         20         85      0.932      0.972      0.983      0.649
                   f16         11         57      0.595      0.826      0.759      0.482
                    b2          2          2      0.526        0.5      0.528      0.313
                 other         13         86      0.933      0.484      0.812      0.446
                   b52         21         70      0.663      0.957      0.963      0.731
                  kc10         12         62      0.826      0.903      0.938      0.745
               command         12         40      0.945      0.862      0.958      0.718
                   f15         21        123      0.851      0.838      0.929      0.578
                 kc135         24         91      0.612      0.945      0.916        0.6
                   a10          4         27      0.208     0.0784      0.166     0.0556
                    b1          5         20      0.708       0.85      0.885      0.644
                   aew          4         25      0.731      0.981      0.942      0.743
                   f22          3         17      0.363      0.941      0.455      0.335
                    p3          6        105      0.898      0.971      0.992      0.761
                    p8          1          1          1          0      0.995      0.597
                   f35          5         32      0.817      0.438      0.665      0.328
                   f18         13        125      0.847      0.976      0.983      0.764
                   v22          5         41          1      0.961      0.995      0.565
                 su-27          5         31       0.97          1      0.995      0.777
                 il-38         10         27      0.719          1      0.995      0.803
                tu-134          1          1      0.806          1      0.995      0.895
                 su-33          1          2          1          0      0.137     0.0824
                 an-70          1          2      0.155          1      0.995      0.895
                 tu-22          8         98      0.974       0.99      0.994      0.745

验证

验证代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from ultralytics import YOLO

if __name__ == '__main__':
    # Load a model
    # model = YOLO('yolov8m.pt')  # load an official model
    model = YOLO('runs/detect/train/weights/best.pt')  # load a custom model


    # Validate the model
    metrics = model.val(split='val')  # no arguments needed, dataset and settings remembered

参数

说明

val

(bool) 在训练过程中进行验证/测试

split

(str) 用于验证的数据集划分,例如 'val'、'test' 或 'train'

save_json

(bool) 是否将结果保存到 JSON 文件

save_hybrid

(bool) 是否保存标签的混合版本(标签+附加预测)

conf

(float, 可选) 检测的对象置信度阈值(默认为 0.25(预测时),0.001(验证时))

iou

(float) 非极大值抑制(NMS)的交并比(IoU)阈值

max_det

(int) 每张图像的最大检测数量

half

(bool) 是否使用半精度(FP16)

dnn

(bool) 是否使用 OpenCV DNN 进行 ONNX 推理

plots

(bool) 在训练/验证过程中是否保存图表和图像

验证结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 15/15 [00:03<00:00,  4.62it/s]
                   all        230       1412      0.757      0.775      0.841      0.604
                   c17         40        131      0.852      0.939      0.959      0.729
                    c5         19         68      0.942      0.618      0.864      0.713
            helicopter         13         43      0.571      0.884      0.916       0.53
                  c130         20         85      0.932      0.973      0.983      0.648
                   f16         11         57        0.6       0.84      0.758      0.478
                    b2          2          2      0.527        0.5      0.528      0.312
                 other         13         86      0.919      0.477      0.811      0.449
                   b52         21         70      0.663      0.957      0.963      0.733
                  kc10         12         62      0.826      0.903      0.938      0.745
               command         12         40      0.945      0.862      0.958       0.72
                   f15         21        123      0.857      0.837       0.93      0.579
                 kc135         24         91      0.612      0.945      0.915      0.601
                   a10          4         27      0.206     0.0774      0.152      0.054
                    b1          5         20      0.706       0.85      0.884      0.628
                   aew          4         25      0.732      0.982       0.94      0.741
                   f22          3         17      0.371      0.941      0.455      0.326
                    p3          6        105      0.898      0.971      0.992      0.757
                    p8          1          1          1          0      0.995      0.697
                   f35          5         32      0.819      0.438      0.667      0.324
                   f18         13        125      0.846      0.976      0.983      0.767
                   v22          5         41          1      0.962      0.995      0.569
                 su-27          5         31      0.969          1      0.995      0.781
                 il-38         10         27      0.719          1      0.995      0.803
                tu-134          1          1      0.805          1      0.995      0.895
                 su-33          1          2          1          0      0.137     0.0824
                 an-70          1          2      0.155          1      0.995      0.895
                 tu-22          8         98      0.973       0.99      0.994      0.745

测试

测试代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from ultralytics import YOLO

if __name__ == '__main__':
    # Load a model
    # model = YOLO('yolov8m.pt')  # load an official model
    model = YOLO('runs/detect/train2/weights/best.pt')  # load a custom model
    results = model.predict(source="ultralytics/assets", device='0')  # predict on an image
    print(results)

参数

说明

source

(str 、 Path 、int、PIL.Image、 np.ndarray、 torch.Tensor 、 List 、 Tuple) 图像或视频的源目录,用于预测的图像源。接受多种类型,包括文件路径、URLs、PIL图像、numpy数组、torch张量,以及列表或元组(这些列表或元组可以包含上述任何类型的组合)。

vid_stride

(int) 视频帧率的步长

stream_buffer

(bool) 缓冲所有流式帧(True)或返回最新帧(False)

visualize

(bool) 可视化模型特征

augment

(bool) 对预测源应用图像增强

agnostic_nms

(bool) 使用类别无关的非极大值抑制(NMS)

classes

(int 、list[int], 可选) 按类别筛选结果,例如 classes=0 或 classes=[0,2,3]

retina_masks

(bool) 使用高分辨率分割掩码

embed

(list[int], 可选) 从给定层返回特征向量/嵌入

show

(bool) 如果环境允许,显示预测的图像和视频

save_frames

(bool) 保存预测的单个视频帧

save_txt

(bool) 将结果保存为 .txt 文件

save_conf

(bool) 保存带有置信度分数的结果

save_crop

(bool) 保存带有结果的裁剪图像

show_labels

(bool) 显示预测标签,例如“person”

show_conf

(bool) 显示预测置信度,例如“0.99”

show_boxes

(bool) 显示预测框

line_width

(int, 可选) 边界框的线宽。如果为 None,则根据图像大小进行缩放

模型导出

Yolo11支持的模型导入有:

Model

Filenames

Task

Inference

Validation

Training

Export

YOLO11

yolo11n.pt yolo11s.pt yolo11m.pt yolo11l.pt yolo11x.pt

Detection

YOLO11-seg

yolo11n-seg.pt yolo11s-seg.pt yolo11m-seg.pt yolo11l-seg.pt yolo11x-seg.pt

Instance Segmentation

YOLO11-pose

yolo11n-pose.pt yolo11s-pose.pt yolo11m-pose.pt yolo11l-pose.pt yolo11x-pose.pt

Pose/Keypoints

YOLO11-obb

yolo11n-obb.pt yolo11s-obb.pt yolo11m-obb.pt yolo11l-obb.pt yolo11x-obb.pt

Oriented Detection

YOLO11-cls

yolo11n-cls.pt yolo11s-cls.pt yolo11m-cls.pt yolo11l-cls.pt yolo11x-cls.pt

Classification

参数详解

参数

类型

默认参数

Description (Chinese)

format

str

'torchscript'

导出模型的目标格式,如'onnx'、'torchscript'、'tensorflow'等,定义了与各种部署环境的兼容性。

imgsz

int or tuple

640

模型输入所需的图像大小。可以是整数(表示正方形图像)或元组(高度,宽度)(表示特定尺寸)。

keras

bool

False

启用导出到Keras格式的TensorFlow SavedModel,提供与TensorFlow serving和API的兼容性。

optimize

bool

False

在导出到TorchScript时,为移动设备应用优化,可能减小模型大小并提高性能。

half

bool

False

启用FP16(半精度)量化,减小模型大小,并可能在支持的硬件上加快推理速度。

int8

bool

False

激活INT8量化,进一步压缩模型,并在几乎不损失精度的情况下加快推理速度,主要用于边缘设备。

dynamic

bool

False

允许ONNX、TensorRT和OpenVINO导出具有动态输入大小,提高了处理不同图像尺寸的灵活性。

simplify

bool

True

使用onnxslim简化ONNX导出的模型图,可能提高性能和兼容性。

opset

int

None

指定ONNX opset版本,以确保与不同的ONNX解析器和运行时兼容。如果未设置,则使用最新支持的版本。

workspace

float

4.0

设置TensorRT优化的最大工作区大小(以GiB为单位),以平衡内存使用量和性能。

nms

bool

False

在CoreML导出中添加非极大值抑制(NMS),对于准确且高效的检测后处理至关重要。

batch

int

1

指定导出模型的批量推理大小或在预测模式下并发处理的图像的最大数量。

device

str

None

指定导出时使用的设备:GPU(device=0)、CPU(device=cpu)、Apple silicon的MPS(device=mps)或NVIDIA Jetson的DLA(device=dla:0或device=dla:1)。

导出代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")

CLI命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yolo export model=yolo11n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

int8量化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from ultralytics import YOLO

model = YOLO("yolo11n.pt")  # Load a model
model.export(format="engine", int8=True)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI智韵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
AJAX跨域请求JSONP 原
JSONP(JSON with Padding)是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。
tianyawhl
2019/04/04
1.1K0
第113天:Ajax跨域请求解决方法
第五步:在监听函数中,判断readyState=4&&status=200表示请求成功
半指温柔乐
2018/09/11
1.7K0
解决ajax跨域请求 (总结)
ajax跨域请求,目前已用几种方法实现: 1)用原生js的xhr对象实现。                var url="http://freegeoip.net/json/";                //创建xhr对象                function createCORSXhr(url,method){                     var xhr=new XMLHttpRequest();                     if("withCred
欲休
2018/03/15
1K0
解决ajax跨域请求  (总结)
剖析跨域问题始末及其解决方案——前端必备交叉知识(一)
在前端开发的旅程中,跨域问题无疑是一道难以逾越的高山。无论是初入职场的新手,还是经验丰富的老手,都可能在这座山前止步不前。跨域问题不仅在调试阶段频繁出现,更在正式环境的部署中如影随形,让开发人员头疼不已。今天,就让我们一起深入探讨跨域问题的根源,剖析其表现形式,并逐一攻克常见的跨域难题。希望这篇文章能成为你的指南,帮助你全面理解跨域及其解决方案,提升解决实际问题的能力。
watermelo37
2025/02/02
2200
剖析跨域问题始末及其解决方案——前端必备交叉知识(一)
ajax跨域解决方案domain_js解决跨域问题
JSON是一种轻量级的数据传输格式,被广泛应用于当前Web应用中。JSON格式数据的编码和解析基本在所有主流语言中都被实现,所以现在大部分前后端分离的架构都以JSON格式进行数据的传输。
全栈程序员站长
2022/09/23
2.8K0
ajax跨域解决方案domain_js解决跨域问题
ajax跨域的解决办法_java如何解决跨域问题
大家好,又见面了,我是你们的朋友全栈君。 什么是跨域问题? 跨域问题来源于JavaScript的”同源策略”,即只有 协议+主机名+端口号 (如存在)相同,则允许相互访问。也就是说JavaScrip
全栈程序员站长
2022/09/23
7980
JQuery的Ajax跨域请求的
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115609.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/10
8970
ajax跨域,这应该是最全的解决方案了
前端爱好者的知识盛宴 嗨 这里是IMWEB 一个想为更多的前端人 享知识  助发展 觅福利 有情怀有情调的公众号 欢迎关注转发 让更多的前端技友一起学习发展~ 前言 从刚接触前端开发起,跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了,16年时也整理过一篇相关文章,但是感觉还是差了点什么,于是现在重新梳理了一下。 个人见识有限,如有差错,请多多见谅,欢迎提出issue,另外看到这个标题,请勿喷~ 提纲 关于跨域,有N种类型,本文只专注于ajax请求跨域(,ajax跨域
用户1097444
2022/06/29
8490
ajax跨域,这应该是最全的解决方案了
Django之跨域请求
同源策略 首先基于安全的原因,浏览器是存在同源策略这个机制的,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性。 而如果我们要跳过这个策略,也就是说非要跨域请求,那么就需要通过JSONP或者CORS来实现了。 JSONP 什么是JSONP 首先提一下JSON这个概念,JSON是一种轻量级的数据传输格式,被广泛应用于当前Web应用中。JSON格式数据的编码和解析基本在所有主流语言中都被实现,所以现在大部分前后端分离的架构都以JSON格式进行数据的传输。 那么JSONP是什么呢?  首先抛
人生不如戏
2018/05/30
1.5K0
ajax跨域的基本流程
创建XMLHttpRequest对象,也就是创建一个异步调用对象;判断XHR对象属性;创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息;设置响应HTTP请求状态变化的函数;发送HTTP请求;获取异步调用返回的数据;使用JavaScript和DOM实现局部刷新。
行云博客
2020/07/13
1.1K0
ajax cors跨域_jquery跨域
Jsonp 的实现原理就是:创建一个回调函数,然后在远程服务上调用这个函数并且将 JSON 数据形式作为参数传递,完成回调。
全栈程序员站长
2022/09/23
3.1K0
ajax跨域问题以及解决方案_js跨域请求的三种方法
鼠标离开用户名输入框时,检查是否符合要求,如果为空,则给提示,如果不为空,则异步查询数据库,后返回结果;
全栈程序员站长
2022/09/23
3.7K0
ajax跨域问题以及解决方案_js跨域请求的三种方法
什么是跨域跨域解决方法_500错误原因解决方法
出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)
全栈程序员站长
2022/08/02
2.2K0
什么是跨域跨域解决方法_500错误原因解决方法
跨域请求的常用方式及解释
同源策略 首先基于安全的原因,浏览器是存在同源策略这个机制的,同源策略阻止从一个域加载的脚本去获取另一个域上的文档属性。也就是说,受到请求的 URL 的域必须与当前 Web 页面的域相同。这意味着浏览器隔离来自不同源的内容,以防止它们之间的操作。 js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。 只要协议、域名、端口有任何一个不同,都被当作是不同的域。 下面介绍几种常用的跨域请求方式 默认端口为:8080
柴小智
2018/04/10
1.5K0
跨域请求的常用方式及解释
js ajax 跨域问题 解决方案[通俗易懂]
跨域问题来源于JavaScript的”同源策略”,即只有 协议+主机名+端口号 (如存在)相同,则允许相互访问。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对JS和ajax的,html本身没有跨域问题。
全栈程序员站长
2022/09/25
1.9K0
js ajax 跨域问题 解决方案[通俗易懂]
AJAX跨域完全讲解
AJAX跨域完全讲解 今天在慕课网上学习了AJAX跨域完全讲解:https://www.imooc.com/learn/947 我在收集AJAX面试题的时候其实就已经有过AJAX跨域的问题的了,当时候
Java3y
2018/03/15
8320
AJAX跨域完全讲解
ajax跨域问题-web开发必会
ajax跨域问题 跨域 同源策略限制 同源策略阻止从一个域上加载的脚本获取或操作另一个域上的文档属性。也就是说,受到请求的 URL 的域必须与当前 Web 页面的域相同。这意味着浏览器隔离来自不同源的内容,以防止它们之间的操作。 解决方式 通常来说,比较通用的有如下两种方式,一种是从服务器端下手,另一种则是从客户端的角度出发。二者各有利弊,具体要使用哪种方式还需要具体的分析。 服务器设置响应头 服务器代理 客户端采用脚本回调机制。 方式一 Access-Control-Allow-Origin 关键字只有在
Java帮帮
2018/03/19
1.8K0
ajax跨域问题-web开发必会
网站跨域的五种解决方式
等带有src属性的标签可以从不同的域加载和执行资源。其他插件的同源策略:flash、java applet、silverlight、googlegears等浏览器加载的第三方插件也有各自的同源策略,只是这些同源策略不属于浏览器原生的同源策略,如果有漏洞则可能被黑客利用,从而留下XSS攻击的后患
云扬四海
2019/06/05
1.4K0
跨域问题
测试URL为 http://localhost:80/home/allProductions 可以直接在浏览器console中执行
微醺
2019/01/17
1.6K0
ajax跨域解决方案_java如何解决跨域问题
从刚接触前端开发起, 跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了,16年时也整理过一篇相关文章,但是感觉还是差了点什么,于是现在重新梳理了一下。
全栈程序员站长
2022/09/23
1.2K0
ajax跨域解决方案_java如何解决跨域问题
相关推荐
AJAX跨域请求JSONP 原
更多 >
LV.1
这个人很懒,什么都没有留下~
目录
  • 摘要
    • 创新点:
    • 支持的任务和模式
  • Yolo11模型架构
    • C3K2与C2PSA模块总结
      • C3K2模块:
      • C2PSA模块:
  • 训练、验证、以及测试
    • 训练
    • 训练代码以及参数详解
      • 多GPU训练
      • 断点训练
      • 使用苹果电脑训练
      • 测试结果
      • 加载预训练的测试结果
    • 验证
      • 验证代码
      • 验证结果
    • 测试
      • 测试代码
  • 模型导出
    • 参数详解
    • 导出代码
    • CLI命令
      • int8量化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档