Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >来了,使用YOLOv11目标检测的详细教程

来了,使用YOLOv11目标检测的详细教程

作者头像
小白学视觉
发布于 2025-01-13 04:37:13
发布于 2025-01-13 04:37:13
2K013
代码可运行
举报
运行总次数:13
代码可运行

概述

YOLO11 在 2024 年 9 月 27 日的 YOLO Vision 2024 活动中宣布:https://www.youtube.com/watch?v=rfI5vOo3-_A。

YOLO11 是 Ultralytics YOLO 系列的最新版本,结合了尖端的准确性、速度和效率,用于目标检测、分割、分类、定向边界框和姿态估计。与 YOLOv8 相比,它具有更少的参数和更好的结果,不难预见,YOLO11 在边缘设备上更高效、更快,将频繁出现在计算机视觉领域的最先进技术(SOTA)中。

主要特点

  • 增强的特征提取:YOLO11 使用改进的主干和颈部架构来增强特征提取,以实现更精确的目标检测和复杂任务的性能。
  • 针对效率和速度优化:精细的架构设计和优化的训练流程在保持准确性和性能之间最佳平衡的同时,提供更快的处理速度。
  • 更少的参数,更高的准确度:YOLO11m 在 COCO 数据集上实现了比 YOLOv8m 更高的 mAP,参数减少了 22%,提高了计算效率,同时不牺牲准确度。
  • 跨环境的适应性:YOLO11 可以无缝部署在边缘设备、云平台和配备 NVIDIA GPU 的系统上,确保最大的灵活性。
  • 支持广泛的任务范围:YOLO11 支持各种计算机视觉任务,如目标检测、实例分割、图像分类、姿态估计和定向目标检测(OBB)。

本教程涵盖的步骤

  • 环境设置
  • 准备数据集
  • 训练模型
  • 验证模型
  • 在测试图像上运行推理
  • 结论

环境设置

你需要一个谷歌账户才能使用 Google Colab。我们使用 Colab 进行需要密集计算的任务,比如深度学习。由于我电脑的 GPU 不足,我需要激活 Colab 的 GPU 支持。

这样做之后,我们检查 gpu 活动。

它支持高达 16GB 的内存和 2560 CUDA 核心,以加速广泛的现代应用程序。然后执行此代码以动态确定工作目录并灵活管理文件路径。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os
HOME = os.getcwd()

接下来,你需要下载 Ultralytics 包来加载和处理模型,以及用于数据集的 Roboflow 包。

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

from ultralytics import YOLO
from roboflow import Roboflow

准备数据集

在这个项目中,我使用了 RF100 中包含的寄生虫数据集。我将在这个数据集中训练一个有 8 种不同寄生虫类别的目标检测模型。我将通过 Roboflow 处理标记、分类的图像。我经常在我的个人项目中使用这个开源平台。在处理现成的数据集时,你可以在数据集的健康分析部分快速获取大量关于数据的信息。例如,下面显示的类别平衡部分,我们可以看到 Hymenolepis 类别是代表不足的。

数据集相关链接:

https://universe.roboflow.com/roboflow-100/parasites-1s07h

https://universe.roboflow.com/roboflow-100

https://universe.roboflow.com/roboflow-100/parasites-1s07h/health

为了提高这个类别的准确性,你需要应用增强、过采样或调整类别权重。我们不会在本文中讨论这些主题,不用担心,但如果你对这些任务感兴趣,请随时联系我。如果有足够需求,我也可以分享我关于这些主题的详细工作。你可以下载并使用 Roboflow 环境中的任何开源项目,按照格式使用。在准备或选择数据集后,我们将在 Colab 环境中工作我们切换到 Colab 的原因是它提供免费的 16GB NVIDIA T4 GPU 使用。我在下面提到了这个问题。我们需要使用 Roboflow API 以 YOLOv8 格式导入我们的数据。让我们获取现成的代码片段和数据格式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rf = Roboflow(api_key="your-api-key")
project = rf.workspace("roboflow-100").project("parasites-1s07h")
version = project.version(2)
dataset = version.download("yolov8")
!sed -i '$d' {dataset.location}/data.yaml   # Delete the last line
!sed -i '$d' {dataset.location}/data.yaml   # Delete the second-to-last line
!sed -i '$d' {dataset.location}/data.yaml   # Delete the third-to-last line

!echo 'test: ../test/images' >> {dataset.location}/data.yaml
!echo 'train: ../train/images' >> {dataset.location}/data.yaml
!echo 'val: ../valid/images' >> {dataset.location}/data.yaml

我们需要更新 data.yaml 格式,如下所示,以便以 YOLO11 格式进行训练。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!sed -i '$d' {dataset.location}/data.yaml   # Delete the last line
!sed -i '$d' {dataset.location}/data.yaml   # Delete the second-to-last line
!sed -i '$d' {dataset.location}/data.yaml   # Delete the third-to-last line

!echo 'test: ../test/images' >> {dataset.location}/data.yaml
!echo 'train: ../train/images' >> {dataset.location}/data.yaml
!echo 'val: ../valid/images' >> {dataset.location}/data.yaml

训练模型

让我们在我们的数据集上训练模型 40 个周期。作为这个项目的一部分,我通过 CLI 命令展示了训练。在如下所示的简单命令下定义后,训练开始。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!yolo task=detect mode=train model=yolo11s.pt data={dataset.location}/data.yaml epochs=40 imgsz=640 plots=True

你也可以使用 Python 创建它,以实现更灵活的场景。下面展示了示例 Python 训练代码:

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

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

# Train the model on the COCO8 example dataset for 40 epochs
results = model.train(data="coco8.yaml", epochs=40, imgsz=640)

训练好的模型保存在 /runs/detect/train/weights 文件下的 best.pt。

一旦你的模型完成训练,你可以使用 YOLO11 生成的图表评估训练结果。

性能指标

混淆矩阵

注意:在训练模型时,回顾 Ultralytics 文档中“训练设置”部分的参数是有益的。这部分对您的训练过程至关重要。

验证模型

以下是使用 YOLO11 的 Val 模式的优势:

  • 精度:获取准确的指标,如 mAP50、mAP75 和 mAP50–95,全面评估你的模型。
  • 便利性:利用内置功能记住训练设置,简化验证过程。
  • 灵活性:使用相同或不同的数据集和图像大小验证你的模型。
  • 超参数调整:使用验证指标微调你的模型以获得更好的性能。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!yolo task=detect mode=val model={HOME}/runs/detect/train/weights/best.pt data={dataset.location}/data.yaml

Val 结果

一般评估:

  • 精确度、召回率和 mAP 指标相当高。
  • 尽管不同类别之间存在性能差异,但整体模型性能令人满意。
  • 在速度方面,这是一个有效的模型,推理时间很低。

在测试数据集上运行推理

让我们评估模型的泛化能力,看看它在之前未见过的测试数据集上的预测。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# predict mode for test data
!yolo task=detect mode=predict model={HOME}/runs/detect/train/weights/best.pt conf=0.25 source={dataset.location}/test/images save=True
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# for visualization

latest_folder = max(glob.glob('/content/runs/detect/predict*/'), key=os.path.getmtime)
for img in glob.glob(f'{latest_folder}/*.jpg')[:1]:
    display(IPyImage(filename=img, width=600))
    print("\n")
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于yolov11的手语检测 | 附数据集+代码
YOLO11是Ultralytics YOLO系列实时目标检测器的最新迭代,它重新定义了尖端精度、速度和效率的可能性。在以往YOLO版本的令人印象深刻的进步基础上,YOLO11在架构和训练方法上引入了重大改进,使其成为广泛计算机视觉任务的多功能选择。
小白学视觉
2024/12/09
5690
基于yolov11的手语检测 | 附数据集+代码
实战|YOLOv10 自定义目标检测
由清华大学的研究团队基于 Ultralytics Python 包研发的 YOLOv10,通过优化模型结构并去除非极大值抑制(NMS)环节,提出了一种创新的实时目标检测技术。这些改进不仅实现了行业领先的检测性能,还降低了对计算资源的需求。大量实验结果证明,YOLOv10 在不同规模的模型上都能提供卓越的准确率和延迟之间的平衡。
数据科学工厂
2024/06/21
8670
实战|YOLOv10 自定义目标检测
YOLOv8已至,精度大涨!教你如何在自定义数据集上训练它
丰色 发自 凹非寺 量子位 | 公众号 QbitAI 很快啊—— 目标检测经典模型YOLO的第八个版本就已经发布了。 这次升级不少,包括命令行界面、Python API、backbone结构等,精度相比YOLOv5高了一大截(速度官方还没公布)。 下面是网友实测,几个不同规模的变体在目标检测、实例分割和图像分类三项任务上的涨点最高达到了33.21%。 不知道YOLOv8这一出,v5版本还会“苟”多久? oh我们还发现已经有人用它在自定义数据集上完成了一波训练,效果是这样滴: 这精准度和稳定性,让网友狠
量子位
2023/02/28
4.1K0
YOLOv8已至,精度大涨!教你如何在自定义数据集上训练它
实战 | 使用YOLOv8 Pose实现瑜伽姿势识别
瑜伽是一种古老的运动,近年来由于其对身心健康的众多益处而广受欢迎。随着人们对瑜伽的兴趣日益浓厚,对能够准确分类瑜伽姿势的自动化系统的需求也越来越大。本文中我们将探讨如何使用 YOLOv8 Pose(一种先进的对象检测模型)对图像和视频中的瑜伽姿势进行分类。
Color Space
2024/04/19
1.8K0
实战 | 使用YOLOv8 Pose实现瑜伽姿势识别
YOLOv10的改进、部署和微调训练总结
YOLO模型因其在计算成本和检测性能之间的平衡而在实时目标检测中很受欢迎。前几天YOLOv10也刚刚发布了。我们这篇文章就来看看YOLOv10有哪些改进,如何部署,以及微调。
deephub
2024/06/03
2K0
YOLOv10的改进、部署和微调训练总结
使用Yolov5进行端到端目标检测
最近,Ultralytics推出了YOLOv5,但它的名字却引发了争议。为了了解背景,《YOLO》(你只能看一次)的前三个版本是由约瑟夫·雷蒙(Joseph Redmon)创作的。在此之后,Alexey Bochkovskiy在darknet上创建了YOLOv4,号称比之前的迭代具有更高的平均精度(AP)和更快的结果。
deephub
2020/07/21
1.7K0
使用Yolov5进行端到端目标检测
如何在自定义数据集上训练 YOLOv9
2024 年 2 月 21 日,Chien-Yao Wang、I-Hau Yeh 和 Hong-Yuan Mark Liao 发布了“YOLOv9:Learning What You Want to Learn Using Programmable Gradient Information”论文,介绍了一种新的计算机视觉模型架构:YOLOv9。目前,源代码已开源,允许所有人训练自己的 YOLOv9 模型。
一点人工一点智能
2024/03/12
1.1K0
如何在自定义数据集上训练 YOLOv9
【yolov5目标检测】使用yolov5训练自己的训练集
首先得准备好数据集,你的数据集至少包含images和labels,严格来说你的images应该包含训练集train、验证集val和测试集test,不过为了简单说明使用步骤,其中test可以不要,val和train可以用同一个,因此我这里只用了一个images
叶茂林
2023/10/23
1.3K0
【yolov5目标检测】使用yolov5训练自己的训练集
yolov8训练自定义目标检测模型
首先得准备好数据集,你的数据集至少包含images和labels,严格来说你的images应该包含训练集train、验证集val和测试集test,不过为了简单说明使用步骤,其中test可以不要,val和train可以用同一个,因此我这里只用了一个images
叶茂林
2023/10/19
1.9K0
yolov8训练自定义目标检测模型
YOLOv11 架构改进 & 常见指令
今天我们介绍 YOLOv11,这个系列中的最新成员。YOLO 是一个在目标检测领域几乎无与伦比的算法,它产生了非常成功的结果。这个算法系列在 YOLOv5 之后由 Ultralytics 继续开发,并且每个新模型都带来了更好的性能。
小白学视觉
2024/10/30
9230
YOLOv11 架构改进 & 常见指令
实战 | 本地GPU训练YOLOv8带方向的目标检测
目标检测是指在图像或视频帧内识别和定位物体的任务。定向目标检测具体涉及检测具有定义方向或旋转的物体,例如检测具有不同角度的车辆或检测自然场景中具有不同方向的文本。
Color Space
2024/06/21
1.3K0
实战 | 本地GPU训练YOLOv8带方向的目标检测
使用YOLOv8检测棋盘棋子
本文作为yolov8的手把手教程呈现~ 在本文的基础上,可以为任何目标检测任务训练模型。训练定制YOLO模型可能相当复杂,尤其是对于初学者。训练和测试模型有一些共同的步骤,对于每项任务,这些步骤几乎相同。因此,我们将尽量用最简单的示例介绍一个完整的训练流程。
小白学视觉
2024/12/05
1510
使用YOLOv8检测棋盘棋子
使用YOLOv10进行自定义目标检测
YOLO(You Only Look Once)是一种流行的物体检测算法,以其速度和准确性而闻名。与涉及生成区域提案然后对其进行分类的多阶段过程的传统方法不同,YOLO 将物体检测框架化为单个回归问题,只需一次评估即可直接从完整图像中预测边界框和类别概率。
Color Space
2024/07/25
5531
使用YOLOv10进行自定义目标检测
【AI 进阶笔记】Bird vs Drone【目标检测】
前面我们使用图像分类的方式来进行 drone 与 bird 的判断,这里我打算使用目标检测的方式来进行判断,这里用 YOLOv7。
繁依Fanyi
2025/04/08
2340
使用FastAPI部署Ultralytics YOLOv5模型
YOLO是You Only Look Once(你只看一次)的缩写,它具有识别图像中的物体的非凡能力,在日常应用中会经常被使用。所以在本文中,我们将介绍如何使用FastAPI的集成YOLOv5,这样我们可以将YOLOv5做为API对外提供服务。
deephub
2023/10/31
7870
使用FastAPI部署Ultralytics YOLOv5模型
基于YOLOv8 + BotSORT实现球员和足球检测与跟踪 (步骤 + 源码)
本文主要介绍基于YOLOv8和BotSORT实现球员和足球检测与跟踪 ,并给出步骤和代码。
Color Space
2024/01/11
1.3K0
基于YOLOv8 + BotSORT实现球员和足球检测与跟踪 (步骤 + 源码)
Yolo11实战改进:一文读懂Yolo11到实战
Yolo11是Ultralytics推出的新一代计算机视觉模型,为YOLO家族树立了新的里程碑。它在对象检测、实例分割、图像分类、姿势估计、定向物体检测和对象跟踪等计算机视觉任务上展现了卓越的性能和准确性,相较于YOLOv8有了显著提升。
AI浩
2024/11/18
2.6K0
Yolo11实战改进:一文读懂Yolo11到实战
如何使用Yolov5创建端到端对象检测器?
Ultralytics最近在围绕其名称的争议中推出了YOLOv5。就上下文而言,约瑟夫·雷德蒙(Joseph Redmon)创建了YOLO(您只看一次)的前三个版本。此后,Alexey Bochkovskiy在Darknet上创建了YOLOv4,与以前的迭代相比,它拥有更高的平均精度(AP)和更快的结果。
代码医生工作室
2020/07/13
1.5K0
一份微调YOLOv11的小指南
在一个自动化和实时数据处理日益成为常态的时代,准确检测和识别车辆牌照的能力是非常宝贵的。从交通管理、收费到执法和停车解决方案,车牌识别系统在各种应用中都扮演着关键角色。
小白学视觉
2024/10/25
5660
一份微调YOLOv11的小指南
YOLO11目标检测:从代码实现到Coovally平台无代码快速部署
YOLO(You Only Look Once)是当前最流行的目标检测算法之一,而YOLO11是YOLO家族中的最新版本,具有更高的准确度和效率。
CoovallyAIHub
2025/01/27
2740
YOLO11目标检测:从代码实现到Coovally平台无代码快速部署
相关推荐
基于yolov11的手语检测 | 附数据集+代码
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验