前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >YOLOv11 架构改进 & 常见指令

YOLOv11 架构改进 & 常见指令

作者头像
小白学视觉
发布于 2024-10-30 08:23:52
发布于 2024-10-30 08:23:52
91400
代码可运行
举报
运行总次数:0
代码可运行

今天我们介绍 YOLOv11,这个系列中的最新成员。YOLO 是一个在目标检测领域几乎无与伦比的算法,它产生了非常成功的结果。这个算法系列在 YOLOv5 之后由 Ultralytics 继续开发,并且每个新模型都带来了更好的性能。

YOLOv11 是 Ultralytics 开发的最新 YOLO 模型。这个模型在执行实时目标检测时,继续平衡准确性和效率。在之前的 YOLO 版本基础上,YOLO11 在架构和训练上提供了显著的改进。在保持速度的同时提高性能的最重要的架构变化是增加了 C3K2 块、SPFF 模块和 C2PSA 块。

  • C3K2 块:这是在以前版本中引入的 CSP(Cross Stage Partial)块的增强。该模块使用不同的核大小(例如 3x3 或 5x5)和通道分离策略来优化更复杂特征的提取。
  • SPFF(Spatial Pyramid Pooling Fusion)模块:它是 YOLO 版本中使用的 SPP(Spatial Pyramid Pooling)模块的优化版本。该模块允许模型通过捕获不同尺度的物体属性来更好地执行。
  • C2PSA 块:这个块通过结合通道和空间信息提供更有效的特征提取。它还与多头注意力机制一起工作,从而实现对物体更准确的感知。它优化了前一层的特征图,并用注意力机制丰富它们,以提高模型的性能。这种结构使得在复杂场景中更精确的检测成为可能,并提高了 YOLOv11 的准确性。

除了这些架构变化,YOLOv11 像 YOLOv8 一样具有多模型能力。得益于其多模型特性,YOLOv11 可以执行以下任务:

  • 目标检测:在图像中识别和定位物体。
  • 实例分割:检测物体并确定它们的边界。
  • 分类:将图像分类到预定义的类别中。
  • 姿态估计:检测和跟踪人体上的标志点。
  • 定向目标检测(OBB):检测旋转物体以提高灵敏度。

在我们开始使用之前,让我们谈谈新 YOLO 版本带来的特性。

  • 现有的主干结构已经被 C3K2 块替换,以提高特征提取能力。
  • 颈部结构已经用 SPFF 模块改进,以捕获不同大小的物体并更好地检测小物体。
  • 增加了 C2PSA 块,专注于更小或部分遮挡物体中的重要区域。
  • 通过多模型能力增加了任务数量。
  • 更容易适应各种环境,包括边缘设备。
  • 得益于其优化的架构和高效的处理能力,它可以部署在边缘设备、云平台和支持 NVIDIA GPU 的系统上。

由于这些优化和创新,YOLOv11 在实时应用中提供了性能提升。模型运行更快、更准确,提高了目标检测、样本分割和姿态估计等任务的效率。此外,兼容性得到了改善,使模型可以轻松地在不同的平台和硬件上运行(例如云或边缘设备)。在 Ultralytics (详见官网:https://docs.ultralytics.com/models/yolo11/)页面上,当他们评估 YOLOv11 与以前版本相比的性能时,他们发表了以下评论。

随着模型设计的改进,YOLO11m 在使用比 YOLOv8m 少 22% 参数的情况下,在 COCO 数据集上实现了更高的平均精度均值(mAP),使其在不牺牲准确性的情况下具有计算效率。

然而,尽管 YOLOv11 模型的性能很好并且提供了广泛的范围,但在目标检测方面,它并不像 YOLOv10 那样成功。尽管 YOLOv10 有更多的参数,YOLOv11 只实现了微小的差异(+0.1-0.5)的更好性能。在这种情况下,YOLOv10 可能仍然是我们的偏好,因为参数的过剩导致速度损失和成本。

使用 YOLOv11

使用 PyTorch 构建 YOLOv11 模型及其与其他模式的使用简要如下。

步骤 1:首先,我们需要下载 Ultralytics 库。有了这个库,我们可以运行从 YOLOv3 到 YOLOv11 的所有模型。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install ultralytics

步骤 2:如果你只想在一个训练好的模型中进行预测。以下代码就足够了。否则你可以跳过它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yolo predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'py

步骤 3:如果你说不,我想训练我的模型,你可以选择你想要的模型并下载 .pt 文件。

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

# Load a COCO-pretrained YOLO11n model
model = YOLO("yolo11n.pt")

步骤 4:然后你需要选择训练数据、训练epoch、图像大小和你的设备。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
train_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
)

步骤 5:你需要用验证数据评估和测试模型。它将验证数据从训练数据本身中分离出来,对于测试,你只需要提供你想要测试的图像的路径。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
metrics = model.val()

results = model("path/to/image.jpg")
results[0].show()

步骤 6:在最后一步,我们可以导出你的模型,以便以后再次使用。如果你想用你自己的模型进行预测,只需使用步骤-2。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
path = model.export(format="onnx")

YOLOv11 常用操作指令

用你自己的数据训练你的目标检测模型,具有特定的学习率和epoch:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yolo train data=coco8.yaml model=yolo11n.pt epochs=10 lr0=0.01

对于模型验证:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yolo val model=yolo11n.pt data=coco8.yaml batch=1 imgsz=640

在 YouTube 视频上测试模型的结果,图像大小为 320:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yolo predict model=yolo11n.pt source='https://youtu.be/LNwODJXcvt4' imgsz=320

使用预训练的分割模型在 YouTube 视频上预测,图像大小为 320:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yolo segment predict model=yolo11n-seg.pt source='https://youtu.be/LNwODJXcvt4' imgsz=320

将你特别训练的模型导出为 .pt 扩展名:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yolo export model=path/to/best.pt format=onnx
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白学视觉 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
【CSS】318- CSS实现宽高等比自适应容器
在最近开发移动端页面,遇到这么一个情况:当页面宽度 100% 时,高度为宽度一半,并随手机宽度变化依然是一半。
pingan8787
2019/08/19
1.5K0
【复习】CSS实现宽高等比自适应容器
在最近开发移动端页面,遇到这么一个情况:当页面宽度 100% 时,高度为宽度一半,并随手机宽度变化依然是一半。
pingan8787
2019/08/15
1.8K0
面试官:CSS如何实现固定宽高比?
对于这个问题,你可能还没有过相关需求,或者还没有在面试的时候被问到过,但是歪马相信你终将有需要。
歪马
2020/04/07
8.2K0
面试官:CSS如何实现固定宽高比?
[老法新用]使用padding-top:(percentage)实现响应式背景图片
处理响应式布局中背景图片的简单方法是等比例缩放背景图片。我们知道宽度设为百分比的  <img> 元素,其高度会随着宽度的变化自动调整,且其宽高比不变。如果想在背景图片中实现同样的效果,我们必须先解决如何保持HTML元素的宽高比。
Jace
2018/08/01
1.4K0
[老法新用]使用padding-top:(percentage)实现响应式背景图片
理解CSS3中的background-size(对响应性图片等比例缩放)[通俗易懂]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说理解CSS3中的background-size(对响应性图片等比例缩放)[通俗易懂],希望能够帮助大家进步!!!
Java架构师必看
2022/02/10
3.3K0
理解CSS3中的background-size(对响应性图片等比例缩放)[通俗易懂]
css设计中的不变与可变
如果重构分里子与面子的话,那么html应该是负责里子的,而css就是负责面子了。在上篇html结构的拆与合说了html之后,我们继续来说下css,这次我们从可变与不变的角度分析。
IMWeb前端团队
2019/12/03
7460
css设计中的不变与可变
现代图片性能优化及体验优化指南 - 缩放精细化展示及避免布局偏移、拉伸
图片资源,在我们的业务中可谓是占据了非常大头的一环,尤其是其对带宽的消耗是十分巨大的。
Sb_Coco
2023/03/01
1.3K0
现代图片性能优化及体验优化指南 - 缩放精细化展示及避免布局偏移、拉伸
移动端重构实战系列6——icon与图片
IMWeb前端团队
2018/01/08
9090
Hugo 图片懒加载和自适应 CSS 图片占位
对于未对中国大陆优化的博客站点而言,图片懒加载几乎是必备的功能,它能够有效提高页面的首屏速度。静态站点的懒加载方案有很多,但都必然会带来布局偏移的问题,影响页面的 CLS 分数。
Shiroka
2022/05/29
2.2K0
Hugo 图片懒加载和自适应 CSS 图片占位
【移动端网页布局】移动端网页布局基础概念 ⑥ ( 背景图像缩放 | 不等比例拉伸 - 同时设置宽高值 | 等比例拉伸 - 设置宽度 / cover / contain 值 )
盒子模型 的 背景图片尺寸 是通过 background-size 属性 设置的 , 语法如下 :
韩曙亮
2023/04/24
1.1K0
【移动端网页布局】移动端网页布局基础概念 ⑥ ( 背景图像缩放 | 不等比例拉伸 - 同时设置宽高值 | 等比例拉伸 - 设置宽度 / cover / contain 值 )
uni-app&微信小程序图片组件的等比例缩放和自适应裁切显示
微信小程序的组件和普通的 HTML 有所不同,比如 HTML 的 div 在小程序里面是 view ,HTML 的 span 在小程序里是 text 。
德顺
2021/03/23
6.8K0
Android Material UI控件之ShapeableImageView
你有使用过Material中的UI控件吗?为什么要使用它们,相对于原来的控件优势在哪里?   相信你看到这篇文章也会有所疑问,第一个问题就不用说了,那么从第二问题开始回答,Android官方为开发者提供了许多丰富的UI控件,Material 组件就是包含了这些控件的一套工具,多数时候使用它可以满足我们日常开发UI的需求,提高效率。优势就在于它比原来的控件更加的强大,比如说我们平时要是像显示一个圆形的头像,需要怎么做呢?你可能会使用第三方库,Glide或者CircleImageView等一些开源库,或者你会自定义ImageView来实现,那么如果我告诉你Material 中的ImageView可以不需要自定义和使用第三方库就能够实现圆形图片或其他一些形状的图片呢?这样是否证明它更强大?是否能提高你的开发效率呢?听了这么多的废话远不如实践得劲,其实我也是这么想的,但是我得让你知道为什么才行,这才是写文章的目的。下面是正文了。
晨曦_LLW
2020/10/26
2.4K0
Android Material UI控件之ShapeableImageView
使用css设置div等比例缩放高宽
在响应式开发中,有一些元素需要按等比例进行显示,比如说一个上传图片的区域,我们需要严格限制上传区域的比例为3:1,上传完成后的预览图宽高均为100%,才能保证用户上传后看到上传的图片是否合乎比例,是否在实际应用时会产生变形或裁剪的问题。那么此时就需要在适应不同宽度的屏幕中进行等比例缩放div区域。
OECOM
2020/07/01
4.6K0
H5活动宣传页通用布局技术解决方案
IMWeb前端团队
2018/01/08
1.8K0
H5活动宣传页通用布局技术解决方案
49个常用的CSS代码片段,建议整理收藏
text-shadow 为网页字体添加阴影,通过对text-shadow属性设置相关的属性值。
前端达人
2021/07/16
2.2K0
图像裁剪库Cropper.js的学习使用
Cropper.js 是一个轻量级的 JavaScript 插件,用于在网页中实现图像裁剪功能。它提供了一个用户友好的界面,允许用户选择和裁剪图像,支持多种配置选项和功能。以下是一些关键特点:
心安事随
2024/08/05
8970
图像裁剪库Cropper.js的学习使用
web图片响应式自适应结合懒加载的最佳方案
在响应式布局中,通常图片自适应是没法带上宽度和高度的,或者是需要使用JavaScript来计算出它的合适宽高,而且在使用懒加载时,我们会默认给一个占位图片,一个占位图片在各种不同宽高的图片里面,是会严重变形,有没有更好的处理方法呢?
前端开发博客
2020/11/04
1.3K0
web图片响应式自适应结合懒加载的最佳方案
九宫格布局
高考活动页面需要在一个页面容器中,实现一个两行三列宽度自适应缩放,且图片等比例缩放,随着浏览器宽度进行自适应缩放的布局。 中间的图片需要自适应,随着页面宽度的变化,三等分缩放,图片等比例缩放。页面地址
Tiffany_c4df
2019/09/04
1.8K0
九宫格布局
【面试题】CSS知识点整理(附答案)
css引入伪类和伪元素概念是为了格式化文档树以外的信息。伪类和伪元素是用来修饰不在文档树中的部分。
木子星兮
2020/07/17
1.6K0
【面试题】CSS知识点整理(附答案)
多栏布局与JS实现瀑布流
css3属性之多栏布局与JS实现瀑布流    背景:之前打算自己总结一下flex布局的知识点,发现自己无从下手,原因在何处:我反思了一下,其实原因很简单,使用的次数少,更多的时间使用了百分比,浮
okaychen
2018/01/05
3K0
多栏布局与JS实现瀑布流
推荐阅读
相关推荐
【CSS】318- CSS实现宽高等比自适应容器
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档