当前位置: 首页 > news >正文

黄山网站设计公司珠海网站建设工程

黄山网站设计公司,珠海网站建设工程,wordpress菜单图标特效,泰安高品质网站建设第一章#xff1a;计算机视觉中图像的基础认知 第二章#xff1a;计算机视觉#xff1a;卷积神经网络(CNN)基本概念(一) 第三章#xff1a;计算机视觉#xff1a;卷积神经网络(CNN)基本概念(二) 第四章#xff1a;搭建一个经典的LeNet5神经网络(附代码) 第五章#xff1…第一章计算机视觉中图像的基础认知 第二章计算机视觉卷积神经网络(CNN)基本概念(一) 第三章计算机视觉卷积神经网络(CNN)基本概念(二) 第四章搭建一个经典的LeNet5神经网络(附代码) 第五章计算机视觉神经网络实战之手势识别(附代码) 第六章计算机视觉目标检测从简单到容易(附代码) 第七章MTCNN 人脸检测技术揭秘原理、实现与实战(附代码) 第八章探索YOLO技术目标检测的高效解决方案 第九章计算机视觉主流数据集整理 第十章生成对抗网络(GAN)从概念到代码实践(附代码) 第十一章计算机视觉经典数据格式(VOC、YOLO、COCO)解析与转换(附代码) 第十二章计算机视觉YOLOv11遥感图像目标检测(附代码) 一、YOLO 简介 YOLOYou Only Look Once 是一种用于计算机视觉任务的对象检测系统它由Joseph Redmon等人于2015年提出于2016年发布YOLOv1并在随后的几年中经历了多次迭代和改进目前最新的版本是2024年9月发布的YOLO11。YOLO的目标是实现实时对象检测同时保持较高的准确率。 “You Only Look Once”强调的是YOLO算法的高效性——对于每一张输入图片只需要一次完整的神经网络推理即可完成所有的目标检测任务一次性输出所有检测到的对象的位置和类别信息。无需反复查看或分析图像的不同部分。 “You Only Look Once”不仅仅是一个名字它概括了YOLO算法的本质特征简洁、快速且有效。这一特性使得YOLO成为许多实际应用中的首选目标检测解决方案。 1.1 YOLO可以做什么 实时对象检测YOLO能够在视频流或实时摄像头输入中快速识别并定位多种类型的对象。多对象分类不仅可以检测出对象的存在还可以对其进行分类如区分人、车、动物等不同种类的对象。位置估计除了识别对象类别外还能给出每个对象在图像中的精确位置通常以边界框的形式表示。应用场景广泛可用于自动驾驶汽车、智能安防监控、零售分析等多个领域。 1.2 YOLO的优点 速度快由于YOLO采用单次前向传播即可完成目标检测因此具有极高的检测速度。 全局推理与滑动窗口和基于候选区域的技术不同YOLO在整个图像上进行训练和测试这使得它能够利用上下文信息来提高检测精度。 泛化能力强YOLO模型对新领域或意外输入有较好的适应性因为它学习到了目标的一般表示形式。 易于优化作为一个端到端的系统YOLO可以直接在检测性能上进行优化简化了训练流程。 多尺度预测特别是从YOLOv2开始引入了多尺度预测的概念允许模型更好地捕捉不同大小的目标。 支持多种设备部署YOLO提供了多种版本的模型可以根据需要选择适合特定硬件配置的版本从而实现高效的部署。 二、YOLO与同类算法对比 目标检测算法对比表这个表格从网络搜集资料整理而来具体数字没有可参考性主要是看整体的表现。 算法检测速度FPS模型大小MB检测精度COCO mAP核心改进/特点适用场景YOLOv11120-180GPU3.5-240分版本55-65%Anchor-free、可逆网络优化、动态标签分配、支持开放词汇检测实时多类别检测自动驾驶、安防监控RT-DETR30-60GPU150-30068-72%Transformer架构、全局注意力机制、端到端检测高精度静态图像分析医疗影像、工业质检Faster R-CNN5-15GPU200-35050-70%两阶段检测、区域提议网络RPN、高定位精度非实时高精度需求学术研究、精密测量RetinaNet20-40GPU180-30045-55%Focal Loss解决类别不平衡、单阶段检测中的精度标杆长尾分布数据集罕见物体检测MobileNet-SSD50-100CPU2-1525-35%轻量化设计、适用于移动端部署移动端/嵌入式实时检测手机应用、IoT设备 从表格里看虽然具体的数字没有可参考性但是也能看出一个整体情况在模型选择上可以有一个参考 工业级实时检测YOLO或MobileNet-SSD。高精度静态分析RT-DETR或Faster R-CNN。 三、Ultralytics与YOLO Ultralytics与YOLO之间的关系非常紧密。Ultralytics是一家致力于开发和推广先进计算机视觉算法的公司而YOLO是一种广泛使用的目标检测算法。 YOLO的发展YOLO最初由Joseph Redmon等人开发并经历了多个版本的迭代YOLOv1到YOLOv3。然而在YOLOv4之后由于Redmon退出了计算机视觉领域官方YOLO的发展似乎有所停滞。 Ultralytics的角色Ultralytics接手了YOLO的进一步发展尤其是在YOLOv5及后续版本中Ultralytics通过其优化和改进使得这一系列成为了非常流行且实用的目标检测工具。 四、安装与环境搭建 运行YOLO通常需要满足一定的硬件和软件要求以确保模型能够顺利执行并达到预期的性能。以下是一般运行要求 4.2 硬件要求 处理器推荐使用高性能的多核CPU尤其是对于训练任务来说更强大的CPU可以显著减少训练时间。内存至少需要8GB RAM但为了处理较大的数据集或进行模型训练建议配置16GB或更多的内存。GPU虽然不是必须的但对于加速训练过程和提高推理速度而言拥有一个兼容CUDA的NVIDIA GPU是非常有益的。存储空间取决于具体需求如数据集大小、预训练模型等至少需要几十GB的硬盘空间。 4.2 软件要求 操作系统YOLO可以在多种操作系统上运行包括Windows、macOS以及各种Linux发行版。Python环境需要安装Python 3.8或更高版本并建议创建虚拟环境来管理依赖项。PyTorchYOLO基于PyTorch框架构建因此需要安装适合您系统和硬件配置的PyTorch版本。如果使用GPU加速需确保安装了正确的CUDA和cuDNN库。其他依赖库根据具体的实现可能还需要安装额外的Python包例如numpy, opencv-python, matplotlib等这些通常可以通过项目的requirements.txt文件一次性安装。开发工具Jupyter、PyCharm、 VSCode等可以帮助编写和调试代码。 安装过程可以到ultralytics的官网上去看看安装过程很简单。Ultralytics 提供了多种安装方法包括 pip、conda 和 Docker。 YOLO 通过 ultralytics pip 软件包的最新稳定版本或通过克隆 Ultralytics GitHub 存储库 获取最新版本。可以使用 Docker 在隔离的容器中执行软件包避免本地安装。 一、安装前的准备 查看电脑状况 检查 Mac 电脑的硬件配置包括 CPU、内存、显卡等信息确保电脑能够满足 YOLO 的运行要求。安装所需软件 Anaconda 用于创建和管理虚拟环境方便安装和管理 Python 包。可以从 Anaconda 官网下载安装包进行安装。开发工具Jupyter、PyCharm、 VSCode任选一款常用的 Python 集成开发环境IDE方便编写和调试代码。 二、安装环境 安装python最新的版本是python3.12 打开 命令行终端输入以下命令创建一个名为 yolov11 的虚拟环境Python 版本为 3.12 conda create -n yolov11 python3.12创建完成后激活虚拟环境 conda activate yolov11安装 PyTorch 打开PyTorch的官网会告诉你安装的命令 Compute Platform: 选中的是Default其他都带有删除线表示没有 GPU就只有 CPU安装命令 pip3 install torch torchvision torchaudio安装 ultralytics 库 打开官网进入快速入门有安装指导。 输入以下命令安装 ultralytics 库该库包含了运行 YOLOv11 所需的大部分环境 # Install the ultralytics package from PyPI pip install ultralytics三、下载 YOLOv11 源码及使用环境 下载 YOLOv11 源码 从 YOLOv11 官网或 GitHub 仓库下载源码解压后放置在合适的目录下。 PyCharm 导入环境 在 PyCharm 中打开 YOLOv11 的源码目录配置虚拟环境为之前创建的 yolov11 环境确保代码能够正确运行。 四、验证环境 运行测试代码 在 YOLOv11 的源码目录中找到测试代码或示例代码运行代码查看是否能够正常输出结果。 检查依赖库版本 确保安装的 PyTorch、ultralytics 等库的版本与 YOLOv11 要求的版本一致避免出现兼容性问题。 五、图像分类任务 在ultralytics的官网上针对每种任务类型有简单的案例。 图像分类是三项任务中最简单的一项涉及将整幅图像归入一组预定义类别中的某一类。 图像分类器的输出是单一类别标签和置信度分数。当你只需要知道图像属于哪一类而不需要知道该类对象的位置或确切形状时图像分类就非常有用。 5.1 预训练分类模型介绍 YOLO11 这里显示的是经过预训练的分类模型。是在ImageNet数据集上预先训练的。 首次使用时模型会自动从最新的Ultralytics 版本下载。 第一列是模型的不同杯型YOLO11n-clsn代表的是YOLO11最小参数量的模型YOLO11x-clsx代表的是YOLO11最大参数量的模型后面的 cls 表示这是一个图像分类模型。 尺寸是指的输入图片的像素大小输入到模型中的图像将被调整缩放和/或填充到224x224像素的大小。acc值是指模型在ImageNet数据集验证集上的准确性。acc top1和acc top5是两个常用的指标。 Acc Top1Top-1 Accuracy这是指模型预测概率最高的那一类即置信度最高的类别是否正确匹配了实际标签。换句话说对于给定的一张图片如果模型认为最有可能的那个类别正好是这张图片的真实类别则该预测被认为是正确的。Top-1准确率直接反映了模型对每个样本的最佳猜测是否准确。Acc Top5Top-5 Accuracy相比之下Top-5准确率则更为宽松一些。它指的是真实类别是否出现在模型给出的前五个可能性最大的类别之中。也就是说如果一个模型为一张图片提供了五个最可能的标签预测只要其中包含了正确的那个标签即使不是概率最高的那个也视为预测正确。这在多类别分类问题中尤其有用因为有时候几个类别之间的差异可能很小或者图像可能包含多个相关但不完全相同的对象。Top-1准确率更适合用于评估那些需要精确识别单一类别的情况。Top-5准确率则可以作为一种补充度量尤其是在处理具有挑战性的分类任务或当存在较高不确定性时它可以提供额外的信息来判断模型的整体表现如何。 速度是在ImageNet验证图像上使用Amazon EC2 P4d实例平均得出的。Amazon EC2 P4d实例是亚马逊云服务AWS提供的一种高性能计算实例。params通常指的是模型参数的数量单位通常是百万M代表Million。例如当提到YOLO的一个变体有1.6M或28.4M参数时这意味着该模型包含了160万或2840万个学习参数。这些参数包括但不限于卷积层中的权重、偏置项等。参数数量直接影响到模型的复杂度、表达能力和所需的计算资源。一般来说 更多的参数意味着模型具有更高的容量去拟合训练数据有可能提高模型的性能特别是在处理复杂任务时。然而过多的参数也可能导致过拟合问题尤其是在训练数据集不够大时。此外参数越多模型所需的存储空间越大推理速度也可能越慢。 FLOPs表示 浮点运算次数用于衡量模型的计算复杂度或算法执行所需的计算量用于评估不同模型架构之间的相对效率。较低的FLOPs值通常意味着模型运行更快、消耗的能量更少这对于移动设备或其他资源受限环境非常重要。 (B) 中的 B 代表 Billion十亿即该模型的浮点运算次数以十亿为单位。例如5B FLOPs 表示 50 亿次浮点运算。at 640 通常指输入图像的尺寸为 640×640 像素表示在此分辨率下模型的计算量16。 在选择YOLO模型版本时需要根据具体的任务需求如精度要求、速度要求、硬件限制等来权衡模型大小。例如对于实时性要求高的应用可能会倾向于选择参数较少的版本而对于追求最高准确性的应用场景则可能愿意接受更大的模型。 5.2 模型训练 官方给出的示例使用Ultralytics的YOLO库来加载、配置和训练一个分类模型。 # 导入Ultralytics提供的YOLO类可以利用YOLO的各种功能包括加载预训练模型、从配置文件构建新模型以及训练模型等。 from ultralytics import YOLO # 这里有三种不同的方式来初始化YOLO模型对象 # 从YAML文件新建模型 # 这行代码基于指定的yolo11n-cls.yaml文件定义的新架构创建一个YOLO模型。该文件通常包含了网络结构的配置信息。 model YOLO(yolo11n-cls.yaml) # 加载预训练模型 # 直接加载一个已经训练好的模型权重文件.pt文件这种方式推荐用于继续训练或直接进行推理因为它可以节省大量时间并且提供了一个较好的起点。 model YOLO(yolo11n-cls.pt) # 从YAML文件构建并加载权重 # 首先根据YAML文件构建模型架构然后从给定的.pt文件中加载权重。这种方法适用于当你想要修改模型架构但还想保留原有的部分权重时使用。 model YOLO(yolo11n-cls.yaml).load(yolo11n-cls.pt) # 这行代码开始训练过程 results model.train(datamnist160, epochs100, imgsz64)训练接受以下参数 datamnist160指定数据集配置文件路径或名称。这里假设是一个名为mnist160的数据集配置它定义了训练和验证数据的位置、类别信息等。epochs100设置训练周期数为100意味着整个训练集会被完整地遍历100次。imgsz64设置输入图像的尺寸大小为64x64像素。这个参数会影响模型输入层的设计以及预处理步骤中的图像缩放操作。 最终train()方法会返回一个包含训练结果的对象如损失值、准确率等指标的变化情况便于后续分析和可视化。 要训练一个图像分类模型数据集需要遵循一定的规则查看官方的分类数据集的介绍。 YOLO 分类任务的数据集结构 对于 Ultralytics YOLO 分类任务数据集必须以特定的分割目录结构组织起来置于 root 目录以便于进行适当的培训、测试和可选的验证过程这里说的root目录不是指的操作系统的文件根目录而是我们自己指定的数据集的总目录比如下面案例的cifar-10。该目录结构包括单独的培训目录 (train和测试test)阶段以及一个可选的验证目录 (val). 每个目录应包含数据集中每个类别的一个子目录。子目录以相应类别命名包含该类别的所有图像。确保每个图像文件都有唯一的名称并以 JPEG 或 PNG 等通用格式存储。 文件夹结构示例 以 CIFAR-10 数据集为例。CIFAR-10一个包含 60K 幅 32x32 彩色图像的数据集分为 10 类每类 6K 幅图像。文件夹结构应如下所示 cifar-10-/ | |-- train/ | |-- airplane/ | | |-- 10008_airplane.png | | |-- 10009_airplane.png | | |-- ... | | | |-- automobile/ | | |-- 1000_automobile.png | | |-- 1001_automobile.png | | |-- ... | | | |-- bird/ | | |-- 10014_bird.png | | |-- 10015_bird.png | | |-- ... | | | |-- ... | |-- test/ | |-- airplane/ | | |-- 10_airplane.png | | |-- 11_airplane.png | | |-- ... | | | |-- automobile/ | | |-- 100_automobile.png | | |-- 101_automobile.png | | |-- ... | | | |-- bird/ | | |-- 1000_bird.png | | |-- 1001_bird.png | | |-- ... | | | |-- ... | |-- val/ (optional) | |-- airplane/ | | |-- 105_airplane.png | | |-- 106_airplane.png | | |-- ... | | | |-- automobile/ | | |-- 102_automobile.png | | |-- 103_automobile.png | | |-- ... | | | |-- bird/ | | |-- 1045_bird.png | | |-- 1046_bird.png | | |-- ... | | | |-- ...5.3 模型验证 上面的模型训练完成之后需要验证模型的效果使用评价指标看看模型训练的情况使用Ultralytics的YOLO库来加载一个已经训练好的分类模型并对其进行验证以评估其在特定数据集上的准确性。 from ultralytics import YOLO# 这里有两种方式来加载YOLO模型对象 # 加载官方预训练模型 # 加载一个名为yolo11n-cls.pt的预训练模型文件。这个模型文件包含了模型的架构和权重信息。 model YOLO(yolo11n-cls.pt) # 加载自定义模型 # 如果你有一个自己训练好的模型文件例如通过训练得到的最佳模型可以通过指定该文件的路径来加载它。 model YOLO(path/to/best.pt) # 验证模型的性能 # no arguments needed, dataset and settings remembered metrics model.val() metrics.top1 # top1 accuracy metrics.top5 # top5 accuracy验证模型的性能 model.val()调用此方法对模型进行验证。由于模型在训练时保存了数据集和设置参数作为属性因此这里不需要传递任何额外参数。 注意这意味着之前训练时使用的数据集配置如mnist160以及相关的超参数如图像大小、批次大小等会被自动应用到验证过程中。metrics.top1 和 metrics.top5这两个属性分别表示模型在验证集上的Top-1准确率和Top-5准确率。 Top-1 Accuracy指预测概率最高的那一类是否正确匹配了实际标签。Top-5 Accuracy指真实类别是否出现在模型给出的前五个可能性最大的类别之中。 5.4 模型预测 下面展示如何使用Ultralytics的YOLO库加载一个已经训练好的分类模型并利用该模型对图像进行预测。 from ultralytics import YOLO# 有两种方式来加载YOLO模型对象 # 加载官方预训练模型 # 加载一个名为yolo11n-cls.pt的预训练模型文件。这个文件包含了模型的架构和权重信息适用于直接开始预测或进一步训练。 model YOLO(yolo11n-cls.pt) # 如果你有一个自己训练好的模型文件例如通过训练得到的最佳模型可以通过指定该文件的路径来加载它。 model YOLO(path/to/best.pt) # 加载自定义模型 results model(https://ultralytics.com/images/bus.jpg) # predict on an image使用加载的模型对一张图片进行预测 model(https://ultralytics.com/images/bus.jpg)这里直接调用了model对象传入了一张图片的URL作为输入。YOLO库支持多种输入格式包括图片文件路径、URL、甚至是图像数据本身。 在这个例子中给定的是一张网络上的图片URL指向一张公交车的图片。YOLO模型将下载这张图片并对其进行处理以识别图片中的对象类别。results这是模型预测的结果通常包含每个检测到的对象的信息如类别标签、置信度分数、边界框坐标等。具体的内容取决于模型的类型如目标检测还是图像分类以及输出设置。 5.5 模型导出 将 YOLO11n-cls 模型导出为不同格式如ONNX、CoreML 等。 from ultralytics import YOLO# 2种不同的加载模型方式 # 加载官方的模型 model YOLO(yolo11n-cls.pt) # 加载自己训练的模型 model YOLO(path/to/best.pt) # 导出模型 model.export(formatonnx)可用的 YOLO11-cls 导出格式如下表所示。可以使用 format 参数导出到任何格式例如 formatonnx 或 formatengine。可以在导出的模型上直接进行预测或验证例如 yolo predict modelyolo11n-cls.onnx。 六、目标检测任务 物体检测是一项涉及识别图像或视频流中物体的位置和类别的任务。物体检测器的输出是一组包围图像中物体的边框以及每个边框的类标签和置信度分数。 6.1 预训练检测模型介绍 YOLO11 这里显示的是经过预训练的检测模型。是在COCO数据集上预先训练的。首次使用时模型会自动从最新的Ultralytics 版本下载。 mAP val 值是指在COCO val2017数据集上单模型单尺度的结果。mAP即mean Average Precision平均精度均值它用于衡量模型在检测不同类别对象时的准确性。速度 是在COCO验证图像上使用Amazon EC2 P4d实例平均得出的。 6.2 模型训练 下面是如何使用Ultralytics的YOLO库来加载一个模型并在COCO8数据集上进行训练。 from ultralytics import YOLO# 加载模型这里有三种不同的方式来初始化YOLO模型对象 # 1.从YAML文件新建模型 # 基于指定的yolo11n.yaml文件定义的新架构创建一个YOLO模型。 # 该文件通常包含了网络结构的配置信息。 model YOLO(yolo11n.yaml) # 2. 加载预训练模型 # 直接加载一个已经训练好的模型权重文件.pt文件这种方式推荐用于继续训练或直接进行推理 # 因为它可以节省大量时间并且提供了一个较好的起点。 model YOLO(yolo11n.pt) # 3.从YAML文件构建并加载权重 # 首先根据YAML文件构建模型架构然后从给定的.pt文件中加载权重。 # 这种方法适用于当你想要修改模型架构但还想保留原有的部分权重时使用。 model YOLO(yolo11n.yaml).load(yolo11n.pt) # 训练模型 results model.train(datacoco8.yaml, epochs100, imgsz640)训练过程接受以下参数 datacoco8.yaml指定数据集配置文件路径或名称。这里假设是一个名为coco8.yaml的数据集配置文件它定义了训练和验证数据的位置、类别信息等。epochs100设置训练周期数为100意味着整个训练集会被完整地遍历100次。imgsz640设置输入图像的尺寸大小为640x640像素。这个参数会影响模型输入层的设计以及预处理步骤中的图像缩放操作。 6.3 模型验证 这段代码演示如何使用Ultralytics的YOLO库加载一个已经训练好的模型并在COCO8数据集上进行验证以评估其准确性。 from ultralytics import YOLO# 有两种方式来加载YOLO模型对象 # 1.加载官方预训练模型 # 加载一个名为yolo11n.pt的预训练模型文件。 # 这个文件包含了模型的架构和权重信息适用于直接开始验证或进一步训练。 model YOLO(yolo11n.pt) # 2.加载自定义模型 # 如果你有一个自己训练好的模型文件例如通过训练得到的最佳模型可以通过指定该文件的路径来加载它。 model YOLO(path/to/best.pt) # 验证模型 # 这行代码调用val()方法对模型进行验证。 # 由于模型在训练时保存了数据集和设置参数作为属性因此这里不需要传递任何额外参数。 # 这意味着之前训练时使用的数据集配置如COCO8以及相关的超参数如图像大小、批次大小等会被自动应用到验证过程中。 metrics model.val() metrics.box.map # map50-95 metrics.box.map50 # map50 metrics.box.map75 # map75 metrics.box.maps # a list contains map50-95 of each category解析验证结果具体含义如下 metrics.box.map这是mAPmean Average Precision值计算的是IoUIntersection over Union阈值从0.5到0.95之间的平均值步长为0.05。它提供了模型在整个IoU范围内的整体表现。metrics.box.map50这是IoU阈值为0.5时的mAP值通常称为map50。较高的IoU阈值意味着模型需要更精确地定位物体才能被认为是正确的检测。metrics.box.map75这是IoU阈值为0.75时的mAP值通常称为map75。这个指标更加严格要求更高的定位精度。metrics.box.maps这是一个列表包含每个类别在IoU阈值从0.5到0.95之间的mAP值。这对于分析模型在不同类别上的表现特别有用。 上面代码提供一种简单而有效的方法来评估YOLO模型在特定数据集这里是COCO8上的性能。通过解析metrics对象的不同属性可以全面了解模型的表现从而为进一步的优化和调整提供依据。这种方式不仅节省了手动配置的时间还确保了验证条件与训练条件的一致性。 IoU怎么理解 全称为Intersection over Union交并比是目标检测任务中广泛使用的一种评估指标。它用于衡量预测边界框与真实边界框之间的重叠程度从而评估模型定位的准确性。 计算步骤为 计算两个边界框的重叠部分的面积。计算两个边界框合并后的总面积。将重叠面积除以合并后的总面积得到 IoU 值。 IoU 的值范围在 0 到 1 之间 IoU 0表示两个边界框完全不重叠。IoU 1表示两个边界框完全重合。 示例 假设有一个真实边界框和一个预测边界框 真实边界框坐标(x1100, y1100, x2200, y2200)预测边界框坐标(x1120, y1120, x2220, y2220) 首先计算重叠区域的坐标 重叠区域左上角坐标(max(100, 120), max(100, 120)) (120, 120)重叠区域右下角坐标(min(200, 220), min(200, 220)) (200, 200) 然后计算重叠区域和合并区域的面积 重叠区域面积 (200 - 120) * (200 - 120) 80 * 80 6400真实边界框面积 (200 - 100) * (200 - 100) 100 * 100 10000预测边界框面积 (220 - 120) * (220 - 120) 100 * 100 10000合并区域面积 真实边界框面积 预测边界框面积 - 重叠区域面积 10000 10000 - 6400 13600 最后计算 IoU IoU 6400 / 13600 ≈ 0.47 6.4 模型验证 下面这段代码展示如何使用Ultralytics的YOLO库加载一个已经训练好的模型并利用该模型对图像进行预测。 from ultralytics import YOLO# 有两种方式来加载YOLO模型对象 # 加载官方预训练模型 # 加载一个名为yolo11n.pt的预训练模型文件。 # 这个文件包含了模型的架构和权重信息适用于直接开始预测或进一步训练。 model YOLO(yolo11n.pt) # 加载自定义模型 # 如果你有一个自己训练好的模型文件例如通过训练得到的最佳模型可以通过指定该文件的路径来加载它。 model YOLO(path/to/best.pt) # 使用模型进行预测 # 这里直接调用了model对象传入了一张图片的URL作为输入。 # YOLO库支持多种输入格式包括图片文件路径、URL、甚至是图像数据本身。 # YOLO模型将下载这张图片并对其进行处理以识别图片中的对象类别。 results model(https://ultralytics.com/images/bus.jpg) # 访问预测结果 for result in results:xywh result.boxes.xywh # center-x, center-y, width, heightxywhn result.boxes.xywhn # normalizedxyxy result.boxes.xyxy # top-left-x, top-left-y, bottom-right-x, bottom-right-yxyxyn result.boxes.xyxyn # normalizednames [result.names[cls.item()] for cls in result.boxes.cls.int()] # class name of each boxconfs result.boxes.conf # confidence score of each box访问和解析预测结果 xywh边界框的中心点坐标 (center-x, center-y) 以及宽度和高度 (width, height)。xywhn归一化的 xywh 值范围在 [0, 1] 之间相对于图像的尺寸。xyxy边界框的左上角坐标 (top-left-x, top-left-y) 和右下角坐标 (bottom-right-x, bottom-right-y)。xyxyn归一化的 xyxy 值范围在 [0, 1] 之间相对于图像的尺寸。names每个检测框对应的类别名称。通过 result.names[cls.item()] 获取每个类别ID对应的名称。confs每个检测框的置信度分数表示模型对该检测框内存在目标的确信程度。 6.5 模型导出 将 YOLO11n 模型导出为不同格式如ONNX、CoreML 等。 from ultralytics import YOLO# 2种不同的加载模型方式 # 加载官方的模型 model YOLO(yolo11n.pt) # 加载自己训练的模型 model YOLO(path/to/best.pt) # 导出模型 model.export(formatonnx)可用的 YOLO11 导出格式如下表所示。可以使用 format 参数导出到任何格式例如 formatonnx 或 formatengine。可以在导出的模型上直接进行预测或验证例如 yolo predict modelyolo11n.onnx。 七、实例分割任务 实例分割比物体检测更进一步它涉及识别图像中的单个物体并将它们与图像的其他部分分割开来。 实例分割模型的输出是一组勾勒出图像中每个物体的遮罩或轮廓以及每个物体的类标签和置信度分数。当你不仅需要知道物体在图像中的位置还需要知道它们的具体形状时实例分割就非常有用了。 YOLO11 分割模型使用 -seg 后缀例如 yolo11n-seg.pt并且这些模型是在 COCO 数据集上预训练的。 7.1 预训练分割模型介绍 YOLO11 预训练分割模型这些模型专门用于图像分割任务并且已经在COCO数据集上进行了预训练。首次使用时这些模型会自动从最新的Ultralytics版本中下载。 模型性能表 模型尺寸 (像素)mAPbox 50-95mAPmask 50-95CPU ONNX 推理时间 (ms)T4 TensorRT10 推理时间 (ms)参数量 (M)FLOPs (B)YOLO11n-seg64038.932.065.9 ± 1.11.8 ± 0.02.910.4YOLO11s-seg64046.637.8117.6 ± 4.92.9 ± 0.010.135.5YOLO11m-seg64051.541.5281.6 ± 1.26.3 ± 0.122.4123.3YOLO11l-seg64053.442.9344.2 ± 3.27.8 ± 0.227.6142.2YOLO11x-seg64054.743.8664.5 ± 3.215.8 ± 0.762.1319.0 关键指标解释 尺寸 (pixels)输入图像的尺寸这里是640x640像素。mAPbox 50-95边界框的平均精度mean Average Precision计算的是IoU阈值从0.5到0.95之间的平均值。mAPmask 50-95分割掩码的平均精度同样计算的是IoU阈值从0.5到0.95之间的平均值。CPU ONNX 推理时间 (ms)在CPU上使用ONNX格式模型进行推理的时间毫秒。T4 TensorRT10 推理时间 (ms)在NVIDIA T4 GPU上使用TensorRT10格式模型进行推理的时间毫秒。参数量 (M)模型的参数数量百万。FLOPs (B)模型执行一次前向传播所需的浮点运算次数十亿次。 7.2 模型训练 使用Ultralytics的YOLO库加载一个分割模型并在COCO8-seg数据集上进行训练。 from ultralytics import YOLO# 3种方式加载模型 # 1.根据yaml文件加载模型 model YOLO(yolo11n-seg.yaml) # 2.加载YOLO预训练好的模型 model YOLO(yolo11n-seg.pt) # 3.从YAML文件构建并加载权重 model YOLO(yolo11n-seg.yaml).load(yolo11n.pt) # 训练模型 results model.train(datacoco8-seg.yaml, epochs100, imgsz640)训练过程并接受以下参数 datacoco8-seg.yaml指定数据集配置文件路径或名称。这里假设是一个名为coco8-- seg.yaml的数据集配置文件它定义了训练和验证数据的位置、类别信息等。epochs100设置训练周期数为100意味着整个训练集会被完整地遍历100次。imgsz640设置输入图像的尺寸大小为640x640像素。这个参数会影响模型输入层的设计以及预处理步骤中的图像缩放操作。 数据集格式 YOLO分割数据集的格式可以在《数据集指南》中找到详细的说明。如果你现有的数据集是其他格式如COCO等可以使用Ultralytics提供的JSON2YOLO工具将其转换为YOLO格式。 COCO8-seg是一个小型数据集适合快速测试和调试模型。对于更全面的评估和实际应用则需要转向更大规模的数据集如完整的COCO数据集。 7.3 模型验证 使用Ultralytics的YOLO库加载一个已经训练好的分割模型并在COCO8-seg数据集上进行验证以评估其准确性。 from ultralytics import YOLO# Load a model model YOLO(yolo11n-seg.pt) # load an official model model YOLO(path/to/best.pt) # load a custom model# Validate the model metrics model.val() # no arguments needed, dataset and settings remembered metrics.box.map # map50-95(B) metrics.box.map50 # map50(B) metrics.box.map75 # map75(B) metrics.box.maps # a list contains map50-95(B) of each category metrics.seg.map # map50-95(M) metrics.seg.map50 # map50(M) metrics.seg.map75 # map75(M) metrics.seg.maps # a list contains map50-95(M) of each category代码调用val()方法对模型进行验证。由于模型在训练时保存了数据集和设置参数作为属性因此这里不需要传递任何额外参数。这意味着之前训练时使用的数据集配置如COCO8-seg以及相关的超参数如图像大小、批次大小等会被自动应用到验证过程中。 解析验证结果具体含义如下 边界框Box相关指标 metrics.box.map这是mAPmean Average Precision值计算的是IoUIntersection over Union阈值从0.5到0.95之间的平均值步长为0.05。这里的(B)表示这是针对边界框的评估。metrics.box.map50这是IoU阈值为0.5时的mAP值通常称为map50。metrics.box.map75这是IoU阈值为0.75时的mAP值通常称为map75。metrics.box.maps这是一个列表包含每个类别在IoU阈值从0.5到0.95之间的mAP值。 分割掩码Segmentation Mask相关指标 metrics.seg.map这是针对分割掩码的mAP值同样计算的是IoU阈值从0.5到0.95之间的平均值。这里的(M)表示这是针对分割掩码的评估。metrics.seg.map50这是IoU阈值为0.5时的分割掩码mAP值。metrics.seg.map75这是IoU阈值为0.75时的分割掩码mAP值。metrics.seg.maps这是一个列表包含每个类别在IoU阈值从0.5到0.95之间的分割掩码mAP值。 7.4 模型预测 使用Ultralytics的YOLO库加载一个已经训练好的分割模型并利用该模型对图像进行预测。 from ultralytics import YOLO# Load a model model YOLO(yolo11n-seg.pt) # load an official model model YOLO(path/to/best.pt) # load a custom model# Predict with the model results model(https://ultralytics.com/images/bus.jpg) # predict on an image# Access the results for result in results:xy result.masks.xy # mask in polygon formatxyn result.masks.xyn # normalizedmasks result.masks.data # mask in matrix format (num_objects x H x W)访问和解析预测结果 xy每个检测到的对象的分割掩码以多边形顶点坐标的形式表示。这对于可视化或者进一步处理掩码形状非常有用。xyn归一化的多边形顶点坐标范围在 [0, 1] 之间相对于图像的尺寸。这种形式方便于跨不同分辨率的图像进行比较或应用。masks每个检测到的对象的分割掩码以矩阵二维数组的形式表示。每张图像的掩码矩阵大小为 (num_objects x H x W)其中 num_objects 是检测到的对象数量H 和 W 分别是图像的高度和宽度。这种格式适合用于后续的图像处理操作比如计算面积、提取特定区域等。 7.5 模型导出 和分类模型、检测模型类似可以直接参考 from ultralytics import YOLO# 加载模型 # 加载官方的预训练模型 model YOLO(yolo11n-seg.pt) # 加载自定义的模型 model YOLO(path/to/best.pt) # 导出模型 model.export(formatonnx)八、数据集介绍 在计算机视觉CV领域数据集的质量和多样性对于推动算法创新和技术进步至关重要。本文 整理当前最流行且最具影响力的数据集涵盖目标检测、图像分类、语义分割、姿态估计等多个关键方向。 8.1 ImageNet数据集 ImageNet是一个大规模的图像数据库主要用于训练和评估机器学习模型特别是那些用于图像分类任务的模型。以下是关于ImageNet数据集的一些关键点 起源与发展ImageNet项目始于2007年由李飞飞等人发起旨在构建一个大规模的、高质量的图像数据集并通过众包的方式为每个类别标注大量的图片。“众包的方式”意味着项目团队通过在线平台邀请广大网络用户参与图像的分类与标注工作。每个参与者会被分配一定数量的图片并要求根据指示为这些图片打上相应的标签即识别出图片中的主要物体属于哪个或哪些类别。 规模与内容截至2010年代中期ImageNet包含了超过1400万张手工标注的图像这些图像被分配到了大约21,000个类别中。这些类别覆盖了从动物、植物到人造物品等各种对象。 ILSVRC竞赛ImageNet最著名的应用之一是其关联的年度竞赛——ImageNet大规模视觉识别挑战赛ILSVRC。该竞赛自2010年开始举办吸引了全球的研究人员参与促进了深度学习技术的发展尤其是卷积神经网络CNNs的进步。 对AI领域的影响由于其庞大的规模和多样性ImageNet成为了开发和测试新的计算机视觉算法的重要资源。许多现代深度学习模型包括AlexNet、VGG、ResNet等在它们的研究初期都是在ImageNet数据集上进行训练和验证的这大大推动了图像识别技术的发展。 “Classify”模型在ImageNet数据集上预先训练意味着该模型已经在一个广泛且多样化的图像集合上进行了学习从而获得了强大的泛化能力这对于解决各种实际问题非常有帮助。ImageNet数据集的配置文件ImageNet.yaml 8.2 COCO数据集 COCO数据集是一个广泛用于计算机视觉任务特别是目标检测、分割、关键点检测和图像字幕生成等领域的大型数据集。它由微软资助并由一群研究人员共同创建。以下是样例图片 主要特点 规模 COCO 数据集包含超过 33 万张图像。其中有超过 20 万张标注了对象边界框适用于目标检测任务。约 16 万张图像标注了实例分割适合于更精细的对象识别任务。还有大约 25 万张图像标注了人物的关键点可用于人体姿态估计。 类别 数据集覆盖了 80 个不同的对象类别从常见的“人”、“车”到较为具体的“叉子”、“飞盘”等。每个类别都包含了大量实例确保了模型学习的多样性和鲁棒性。 上下文信息 与许多其他数据集不同的是COCO 强调对象在具体场景中的位置和相互关系这使得它非常适合研究如何理解和处理复杂的视觉场景。提供了丰富的语义信息如每张图片的描述性文字caption有助于进行图像理解的研究。 数据格式 图像通常以高分辨率JPEG格式提供。标注文件采用 JSON 格式包含了详细的对象边界框、分割掩码、类别标签以及关键点坐标等信息。 子集划分 数据集被划分为训练集train、验证集val和测试集test。常用的版本包括 train2017, val2017, 和 test2017这些版本的数据量和用途各有侧重方便研究人员根据需要选择合适的子集进行实验。 应用场景 目标检测识别图像中所有对象的位置和类型。实例分割精确地描绘出每个对象的轮廓。关键点检测定位人体上的特定部位如眼睛、肩膀等。图像字幕生成为图像自动生成描述性的文本。 使用示例 在使用COCO数据集进行模型训练或评估时通常会参考其官方提供的配置文件如 .yaml 文件这些文件定义了数据集的位置、类别映射以及其他相关信息。例如在YOLO框架中可以这样加载COCO数据集 from ultralytics import YOLO# Load a model model YOLO(yolo11n.yaml) # 或者加载预训练模型# Train the model on COCO dataset results model.train(datacoco.yaml, epochs100, imgsz640)这里的 coco.yaml 是一个配置文件指定了COCO数据集的具体路径和其他必要的参数。 COCO数据集由于其广泛的覆盖面、详细的标注以及丰富的应用场景支持成为了计算机视觉领域内最为重要的基准之一。 8.3 COCO8数据集 COCO8 是一个小型但功能齐全的数据集专门设计用于测试和调试目的。它是从更大的 COCOCommon Objects in Context数据集中提取出来的子集包含来自 COCO train 2017 数据集的前 8 张图像并分为训练集和验证集。以下是样例图片 主要特点 规模COCO8 包含总共 8 张图像其中 4 张用于训练另外 4 张用于验证。用途这个数据集非常适合用来快速测试新的检测方法、实验不同的模型配置或进行代码调试因为它足够小可以迅速处理同时又足够多样化以揭示潜在的问题。类别尽管是小规模的数据集COCO8 保留了原始 COCO 数据集中的丰富类别信息。具体来说它包含了从 ‘person’ 到 ‘toothbrush’ 的 80 个类别。格式遵循 YOLO 所需的标准格式包括图像文件以及相应的标注文件通常为 .txt 文件每个标注文件对应一张图像并列出所有对象的位置边界框坐标和类别标签。下载与使用可以通过提供的 YAML 文件 (coco8.yaml) 轻松地将其集成到 Ultralytics YOLO 框架中。该 YAML 文件定义了数据集路径、类别名称以及其他相关信息。 示例 YAML 配置 (coco8-seg.yaml) # Ultralytics YOLO , AGPL-3.0 license # COCO8-seg dataset (first 8 images from COCO train2017) by Ultralytics path: ../datasets/coco8-seg # dataset root dir train: images/train # train images (relative to path) 4 images val: images/val # val images (relative to path) 4 images test: # test images (optional) # Classes names: 0: person 1: bicycle ... 79: toothbrush download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-seg.zip使用场景 由于其小巧的体积COCO8 特别适合以下情况 快速迭代开发过程中对新想法进行初步验证。在大规模训练之前检查管道是否存在基本错误。教育和学习目的帮助新手理解如何准备和使用目标检测数据集。 虽然 COCO8 对于最终的产品级模型评估并不适用但它是一个非常有用的工具可以帮助研究人员和开发者在投入更多资源之前确保他们的算法和实现是正确的。对于更全面的评估则需要转向更大规模的数据集如完整的 COCO 数据集或其他类似的大型数据集合。
http://www.dnsts.com.cn/news/115946.html

相关文章:

  • 安庆网站建设郑州比较大的软件公司
  • 企业网站建设规划ppt阿里云网站建设里云官网模版
  • 网页设计与网站建设中的热点是什么中国网页设计师网站
  • 建网站的小软件网站搜索优化
  • 网上购物网站开发的目的在线网站建设教程
  • H5建网站上海自贸区注册公司有什么好处
  • 汇款账号 网站建设贵南网站建设
  • 网站设计排行推荐家居网站建设
  • 2019网站建设深圳办公楼设计
  • 如何查看网站是否降权创建网站域名
  • 无锡建设信息中心网站wordpress文章图片保存到本地
  • 网站模板 兼容ie8注册规划师报考条件2022
  • 东莞市网站建设分站企业wordpress有插件怎么用
  • 请打开123720的网站百度宁波建设工程学校网站
  • 一个网站可以有几个关键词aws的永久免费服务
  • 网站建设培训ppt苏州高端网站制作官网
  • 单页淘宝客网站模板微博推广的优势
  • 棋盘游戏类网站开发苏州网站制作的公司
  • 网站开发目前用的是什么语言高端品牌手机
  • 网站制作软件都是什么阿里云服务器安装wordpress
  • ssh蒙语网站开发风格网站
  • 爱站网反链分析站长工具seo综合查询关键词
  • 建设网站2013道路定额宣威市住房与城乡建设局网站
  • 挂机宝做网站城乡建设局的官方网站
  • 网页制作与设计元素是什么移动端网站如何优化
  • 丹东谁做微网站大连企业网站模板建站
  • 花垣县建设局网站百度seo快速排名
  • 阿里云网站开发工具h5页面制作免费平台
  • 南通技嘉做网站wordpress主题左目录
  • 哈尔滨模版建站公司推荐设计中国北京官网