探索Ultralytics YOLO11在视觉任务上的应用

news2024/10/9 2:14:18

前言

在人工智能持续发展的当下,有一点是确凿无疑的:模型正变得愈发优秀、快捷和智能。就在人们以为YOLO系列已登峰造极之时,Ultralytics推出了最新升级版——YOLO11。需要注意的是,这里不是YOLOv11,他们简化了命名方式,去掉了“v”。这一改变就如同YOLO既做了形象上的精简,又实现了性能的提升。

而在这个简洁的名称背后,是性能的巨大飞跃。YOLO11通过大幅削减参数,实现了更快的处理速度和更高的效率。它在COCO数据集上的平均精度均值(mAP)得分超越了YOLOv8,并且所使用的参数减少了22%,这使得它在保证性能的同时,计算负担更轻。

那么,YOLO11和它的前代版本究竟有何差异呢?让我们深入探究其架构,了解这个模型是怎样从仅仅追求速度转变为超级高效的,从而使其成为实时目标检测领域的佼佼者。
在这里插入图片描述

YOLO11 架构

  1. 骨干网络(Backbone Network)
    • YOLO11的骨干网络堪称模型的核心“大脑”。它采用先进的神经网络架构,例如EfficientNet或CSPNet,用于捕捉图像中的关键细节。这就好比一个人在审视一个场景时,能够敏锐地捕捉到各种重要线索,无论是物体的纹理还是形状等,进而帮助模型更为清晰地“洞察”图像。这种优化极大地提升了YOLO11识别物体的能力,即便处于复杂混乱的环境中,它也能表现出色。
  2. 颈部(Neck)
    • YOLO11的颈部起着连接“大脑”(骨干网络)与系统其他部分的关键作用,它负责收集并整合图像不同区域的信息。这类似于我们在观察环境时,既能关注到近处的物体,也能留意到远处的物体。颈部的作用使得模型能够检测出不同大小的物体,无论是像街道标志这类较小的物体,还是像公共汽车那样的大型物体,它都能准确识别。
  3. 检测头部(Detection Head)
    • 检测头部是YOLO11理解图像的关键部位,它能够识别图像中存在哪些物体、它们的位置在哪里,甚至还能捕捉到它们的一些具体细节,比如身体关节或者物体边缘等信息。正是这一处理过程使得YOLO11具有极快的检测速度。而且,这个版本在这方面有特别的改进,使其在发现小物体方面表现更为出色,而这在以往的版本中可能是容易被遗漏的。
  4. 锚框(Anchor Boxes)
    • 锚框类似于模板,其作用是协助模型识别不同大小和形状的物体。YOLO11对这些模板进行了改进,使其能够更好地适配所检测的物体,从而提高了对常见以及不寻常形状物体识别的准确性。
  5. 损失函数(Loss Functions)
    • 损失函数犹如YOLO11的“教练”,它引导模型从错误中学习。这些函数会指导模型关注那些它处理起来较为困难的领域,比如检测稀有物体或者精确确定物体的位置等。随着YOLO11不断在图像上进行“训练”,它在识别困难物体方面的能力会逐渐提升。

YOLO11 的新特

以下是对YOLO11突出特性的详细阐述:

  1. 增强的特征提取:在复杂环境下实现更优检测

    • YOLO11经过精心设计,具备捕捉图像中复杂模式的能力,这使得它在面临光线不佳或场景杂乱等具有挑战性的情况时,依然能够出色地识别物体。
  2. 更少参数,更高mAP:高效且精准

    • YOLO11实现了更高的平均精度均值(mAP),这是衡量其检测物体效果的关键指标。与此同时,它所使用的参数相较于YOLOv8减少了22%。简而言之,它在保持准确性的前提下,实现了更快的速度和更高的效率。
  3. 更快的处理速度:实时应用的理想之选

    • YOLO11的处理速度比YOLOv10快2%,这一优势使其成为自动驾驶、机器人以及实时视频分析等对实时性要求较高的应用的绝佳选择。
  4. 资源效率:以少胜多的能力

    • 尽管需要处理更为复杂的任务,但YOLO11致力于使用更少的计算资源。这一特性使其非常适合大规模项目以及处理能力有限的系统。
  5. 改进的训练过程:灵活适应各类任务

    • YOLO11的训练过程更为精简,从而能够更高效地适应各种不同的任务。无论是在小型数据集上开展工作,还是面对大型项目,YOLO11都能够根据问题的规模进行相应的调整。
  6. 跨部署的灵活性:适应多种环境

    • YOLO11被设计为能够在云服务器以及边缘设备(如智能手机或物联网设备)上高效运行。这种灵活性使其非常适用于需要在不同环境中工作的应用程序。
  7. 适用于多种应用的多功能性:广泛的应用领域

    • 从自动驾驶、医疗成像,到智能零售以及工业自动化,YOLO11的多功能性使其能够应用于众多领域,从而成为解决计算机视觉难题的有效方案。

实施

  1. 检测:
conda create --name yolo11 python==3.10
conda activate yolo11
pip install ultralytics

   from ultralytics import YOLO
   from PIL import Image
   import requests

   model = YOLO('yolo11n.pt')
   image = Image.open("/content/DOG.png")
   result = model.predict(image, conf=0.25)[0]

CLI 命令:

  yolo task = detect mode=predict model=yolo11n.pt conf=0.25 source="/content/DOG.png" save=True

在这里插入图片描述
在这里插入图片描述

  1. 实例分割:
   from ultralytics import YOLO
   model = YOLO("yolo11n-seg.pt")
   seg_results = model("/content/yogapose.jpg")
   seg_results[0].show()

在这里插入图片描述

  1. 姿态:
   from ultralytics import YOLO
   model = YOLO("yolo11n-pose.pt")
   pose_results = model("/content/yogapose.jpg")
   pose_results[0].show()

在这里插入图片描述

  1. 分类:
from ultralytics import YOLO
model = YOLO("yolo11n-cls.pt")
classi_results = model("/content/cocoimage1.jpg")
classi_results[0].show()

在这里插入图片描述

  1. 旋转目标检测:
   from ultralytics import YOLO
   model = YOLO("yolo11n-obb.pt")
   obb_results = model("/content/vecteezy_busy-traffic-on-the-highway_6434705.mp4", save=True)

进一步改善:

YOLO11虽然带来了显著的进步,但重要的是要认识到需要进一步增强或特定于任务的微调的领域:

  1. 对象分类的微调改进
    尽管 YOLO11在许多一般任务中表现出优越的性能,但是当针对特定任务进行微调时,它的对象分类能力可以进一步提高。例如,在医学成像或工业检查等专业领域,调整模型以关注利基数据集可以显著提高其准确与精密。

例如: 在医疗保健领域,微调 YOLO11以识别医学扫描中的特定异常,比如疾病的早期征兆,可以产生更精确的分类,以适应该领域。

  1. 定向目标检测: 航拍或网格视图
    YOLO11在空中或网格视图等场景中表现出色,在这些场景中,物体通常以特定的方式定向,例如在卫星地图或无人机镜头中。然而,在更为传统的日常视频传输(如监控或交通摄像头)中,由于对特定角度和方向进行了优化,它的效率可能会降低。这意味着,虽然它在某些特定的应用程序中具有很强的能力,但在处理典型的现实视频中看到的对象的不同方向时,它可能不那么有效。

例如: 在一个有标准安全摄像头的零售环境中,YOLO11可能需要额外的调整来处理不同的对象透视图。

结论

YOLO11代表了实时目标检测的一个重大飞跃,以更快的处理速度、更少的参数和更高的精确度推动了边界。它的多功能性使它能够胜任广泛的计算机视觉任务,从自动驾驶到工业自动化。然而,与任何尖端技术一样,任务特定的微调对于在专门应用程序中充分发挥其潜力至关重要。虽然它在像空中目标检测这样的场景中大行其道,但它在传统视频中的表现可能需要额外的优化。

最终,YOLO11的轻量级架构、增强的速度和灵活性使其成为跨不同行业的开发人员和研究人员的强大工具。随着计算机视觉的不断发展,YOLO11为实时检测和分类提供了一个新的基准。

原文地址:https://medium.com/@nandinilreddy/exploring-yolo11-faster-smarter-and-more-efficient-f4243d910d1e

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2197752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

秋季猫咪掉毛严重怎么办?宠物空气净化器到底有没有用?

告别炎热的夏天,秋意随着家里猫咪新一轮的掉毛一起到来。我家两只布偶齐齐发力,疯狂掉毛,家里每个角落无一幸免。衣服上、地板上,肉眼可见家里的毛发量在不断增多,又陷入了日复一日的清理大战。除此之外,对…

erlang学习:Linux命令学习10

从百度网盘下载文件 共享百度网盘获得链接 https://pan.baidu.com/s/1iUOTAWr1SRlL2fBZ7lIV拿到链接之后在浏览器中进行下载,可以查看下载链接 右键这些文件即可得到下载链接 类似于长这样 https://bdbl-cm01.baidupcs.com/file/b02f72906b3d0d07130be625eabc76…

12306积分换的一等座还有零食

“12306积分换的一等座还有零食!”这可真是个意外的惊喜呢!平时积累的小积分,竟然能兑换到如此舒适的一等座车票,而且还附赠了精致的小零食,真是让人倍感贴心与满足。这样的体验,不仅让旅途变得更加惬意&am…

YOLOv8实战TT100K中国交通标志检测【数据集+YOLOv8模型+源码+PyQt5界面】

YOLOv8实战TT100k交通标志识别 文章目录 研究背景资源获取1.前言1.1 YOLO 系列:中国交通标志检测领域的璀璨明星1.2 Transformer与注意力机制:为中国交通标志检测注入新活力1.3 中国交通标志检测技术:迎接挑战,砥砺前行1.4 YOLOv8…

刷题训练之解决 FloodFill 算法

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握解决 FloodFill 算法。 > 毒鸡汤:学习,学习,再学习 ! 学,然后知不足。 > 专栏选自&#…

面试(十)

目录 一. 单元测试 二. FreeRTOS和裸机哪个实时性好? 三. 怎么判断某个程序的运行时间 四. 函数指针 五. 全局变量被线程使用冲突 5.1 使用互斥锁 5.2 使用读写锁 5.3 使用原子操作 六. 局部变量没有初始化是什么值 七. uint_8 n 255 , n等于多少 八. …

利基营销:如何为小众受众制定内容营销策略?AIGC大模型创新思维数字化转型商业模式专家培训讲师谈短视频内容社私域数字经济人工智能

了解利基营销 什么是利基营销? 简单来说,利基营销就是专注于特定范围的潜在客户群,而不是针对广泛的人群。 实际上,利基营销可以比作为拥有露营装备的人而不是所有热爱户外活动的人定制内容。露营爱好者会欣赏专门针对他们的需…

最佳实践(1)

1.Java 集合概览 Java 集合,也叫作容器,主要是由两大接口派生而来:一个是 Collection接口,主要用于存放单一元素;另一个是 Map 接口,主要用于存放键值对。对于Collection 接口,下面又有三个主要…

Windows 11 企业版LTSC 2024正式发布(附链接)

随着微软最新正式发布的Windows 11 24H2,同时也带来了大家翘首以盼的Windows 11企业版 LTSC 2024,我们看到了Windows操作系统在企业级稳定性和个人用户体验上的又一次飞跃。虽然LTSC(长期服务通道)版本主要面向企业用户&#xff0…

RabbitMQ安装(Ubuntu环境)

安装Erlang RabbitMq需要Erlang语⾔的⽀持,在安装rabbitMq之前需要安装erlang # 更新软件包 sudo apt-get update # 安装 erlang sudo apt-get install erlang 查看erlang版本 erl 退出命令 halt( ). 安装RabbitMQ # 更新软件包 sudo apt-get update # 安装 rabbi…

python迭代器和生成器区别是什么

python中迭代器和生成器的区别 1、共同点 生成器是一种特殊的迭代器。 2、不同点 a、语法上: 生成器是通过函数的形式中调用 yield 或()的形式创建的。 迭代器可以通过 iter() 内置函数创建。 b、用法上&#x…

面试题:Redis(一)

1. redis是单线程还是多线程? 2. IO多路复用听说过么? 3. Redis为什么快? 1. Redis是单线程还是多线程? 版本不同,Redis基于的架构也不同,所以单单问是单还是多线程并不严谨 3.x 之前 redis都是单线程 4.x …

Tianrui Green Shield

Tianrui Green Shield,即天锐绿盾,是一款专注于企业数据防泄密的软件系统。以下是对天锐绿盾的详细介绍: 一、基本信息 产品名称:天锐绿盾(又名绿盾信息安全管理软件)公司官网:www.drhchina.co…

VM虚拟机安装 CentOS 7.6 部署宝塔面板实操

一、centos下载 进入centos官网下载页面,选择7.6版本,依次点击 tree-》isos-》x86_64/-》CentOS-7-x86_64-DVD-1810.iso 进行下载。 centos官网下载页面: https://wiki.centos.org/Download.html1、打开下载页面 二、配置CentOS 7的网络 1、…

【Java 并发编程】多线程安全问题(上)

前言 虽然并发编程让我们的 CPU 核心能够得到充分的使用,程序运行效率更高效。但是也会引发一些问题。比如当进程中有多个并发线程进入一个重要数据的代码块时,在修改数据的过程中,很有可能引发线程安全问题,从而造成数据异常。 p…

可视化-最小二乘法拟合直线

目录 1、最小二乘法拟合直线 2、需要用到的公式 3、计算各个参数 ,得到函数表达式 4、可视化-绘画图像 1、最小二乘法拟合直线 double x[15] {29,34,39,44,49,54,59,64,69,74,79,84,89,94,99}; double y[15] { 0.2989,0.3036,0.3084,0.3133,0.3182,0.3231,0.…

【HTML并不简单】笔记3-你不知道的列表元素和html、body

文章目录 无序列表menuol的其他属性typestart和valuereversed 定义列表dl、dt、ddhtml与body关联性overflow 桌面端和移动端的滚动条 《HTML并不简单&#xff1a;Web前端开发精进秘籍》张鑫旭 笔记 无序列表menu <menu>元素可以看成是<ul>元素的平行替代&#xff…

生成正激波表的代码

k1.4 import math import numpy as np import pandas as pd #Ma1到p之比 def Ma2p(Ma1,k):return 2*k*Ma1**2/(k1)-(k-1)/(k1) def Ma2rho(Ma1,k):return (k1)*Ma1**2/(2(k-1)*Ma1**2) def Ma2T(Ma1,k):return 1/Ma1**2*(2/(k1))**2*(k*Ma1**2-(k-1)/2)*(1(k-1)/2*Ma1**2) def…

【陪诊系统】打包问题

使用vite打包后&#xff0c;点击打开index.html是空白的&#xff0c;然后查阅了一些资料&#xff0c;原来是路径问题 【解决办法】&#xff1a;在vite.config.js中去添加base:‘./’ ok,完美解决&#xff0c;再打开打包好后的index.html可以看到界面了

CoppeliaSim和Matlab建立远程连接教程

CoppeliaSim和Matlab建立远程连接教程 Matlab通过调用CoppeliaSim的远程API和库函数实现远程连接,为实现Matlab和CoppeliaSim的联合仿真做准备。 一、获取并查看版本信息 点击 Help 查看版本信息 使用的CoppeliaSim Edu版本为:4.4.0 位数:64bit 二、拷贝API函数和库文件…