在人工智能这个不断进化的世界中,有一件事我们可以肯定:模型不断变得更好、更快、更智能。就在你以为 YOLO 系列已经达到顶峰时,Ultralytics 推出了最新升级——YOLO11。没错,不是 YOLOv11——他们通过去掉“v”变得简约了。这就像 YOLO 同时理了个发并得到了晋升。
但在这个名字简化的背后,是性能的显著飞跃。YOLO11 通过显著减少参数,带来了更快的处理速度和提高的效率。它拥有比 YOLOv10 快 2% 的推理时间,使其成为实时应用的绝佳选择。
更值得一提的是,YOLO11m 在 COCO 数据集上实现了更高的平均精度均值(mAP)得分,同时比 YOLOv8m 少用了 22% 的参数,使其在不牺牲性能的情况下计算更轻量。这种速度和精度的结合,使 YOLO11 成为任何计算机视觉任务的强大工具。
那么,YOLO11 与它的前辈们有何不同呢?让我们探索它的架构,看看这个模型是如何从仅仅快速变为超高效,使其成为实时目标检测的超级英雄。
YOLO11 架构
() 骨干网络:YOLO11 的大脑
YOLO11 的骨干就像模型的大脑。它使用先进的神经网络,如 EfficientNet 或 CSPNet,来捕捉图像中的重要细节。想象一下,这就像一个人扫描一个场景并捕捉重要线索——无论是物体的纹理还是形状——帮助模型更清晰地“看”图像。这种改进增强了 YOLO11 识别物体的能力,即使是在棘手或杂乱的环境中。
(2) 颈部:视觉与行动之间的桥梁
YOLO11 的颈部将大脑(骨干)与系统的其余部分连接起来,收集和组合来自图像不同部分的信息。类似于我们如何聚焦于近处和远处的物体,颈部帮助模型检测不同大小的物体,无论是像路标这样的小物体,还是像公共汽车这样的大物体。
(3) 检测头:YOLO11 的眼睛
检测头是 YOLO11 理解图像的地方,识别出图像中存在哪些物体、它们的位置,甚至它们的具体细节(如身体关节或物体边缘)。这一步骤过程使 YOLO11 非常快速。这个版本中的特别改进还使其更擅长发现小物体,这些是以前版本可能会错过的。
(4) 锚框:塑造目标检测
锚框就像模板,帮助模型识别不同大小和形状的物体。YOLO11 改进了这些模板,使其更好地适应它检测的物体,提高了识别常见和不寻常形状的准确性。
(5) 损失函数:YOLO11 的学习教练
损失函数就像 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) 检测:
%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
自定义训练
无论是使用自定义图像还是从 Roboflow 下载:
from roboflow import Roboflow
rf = Roboflow(api_key="ROBOFLOW_API_KEY")
project = rf.workspace("project-fish-eqo9c").project("fish-species-identification")
version = project.version(3)
dataset = version.download("yolov11")
使用 CLI 进行训练:
!yolo task=detect mode=train model=yolo11s.pt data="/content/Fish-Species-Identification--3/data.yaml" epochs=10 imgsz=640 plots=True
(2) 分割:
from ultralytics import YOLO
model = YOLO("yolo11n-seg.pt")
seg_results = model("/content/yogapose.jpg")
seg_results[0].show()
(3) 姿态:
from ultralytics import YOLO
model = YOLO("yolo11n-pose.pt")
pose_results = model("/content/yogapose.jpg")
pose_results[0].show()
(4) 分类:
from ultralytics import YOLO
model = YOLO("yolo11n-cls.pt")
classi_results = model("/content/cocoimage1.jpg")
classi_results[0].show()
(5) 定向目标检测:
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 进行微调以识别医学扫描中特定的异常,如疾病的早期迹象,可以产生更适合该领域的更准确分类。
(2) 定向目标检测:空中或网格视图
YOLO11 在空中或网格视图等场景中表现出色,这些场景中的物体通常以特定方式定向,如卫星图像或无人机镜头。然而,在更传统的日常视频源中——如监控或交通摄像头——由于其针对特定角度和方向的优化,它可能表现出降低的效率。这意味着虽然它在某些专业应用中非常有能力,但在处理典型真实世界视频中物体的多样化方向时可能不够有效。
示例:在标准安全摄像头的零售环境中,YOLO11 可能需要额外的调整来处理各种物体视角。
结论
YOLO11 代表了实时目标检测的重大飞跃,通过更快的处理速度、更少的参数和提高的准确性,推动了界限。它的多功能性使其能够在从自动驾驶到工业自动化的广泛计算机视觉任务中表现出色。然而,与任何尖端技术一样,针对特定任务的微调对于在专业应用中解锁其全部潜力至关重要。虽然它在像空中目标检测这样的场景中蓬勃发展,但其在传统视频中的表现可能需要额外的优化。
最终,YOLO11 的轻量级架构、增强的速度和灵活性使其成为跨各行各业的开发者和研究人员的强大工具。随着计算机视觉的不断发展,YOLO11 为实时检测和分类的可能性设定了新的基准。
参考资料:
- Github 代码:https://github.com/NandiniLReddy/yolo11Review
- Ultralytics 博客文章:https://www.ultralytics.com/blog/ultralytics-yolo11-has-arrived-redefine-whats-possible-in-ai
- Roboflow 博客姿态:https://blog.roboflow.com/yolov11-how-to-train-custom-data/
- Ultralytics Github:https://github.com/ultralytics/ultralytics