YOLOv11来了,使用YOLOv11训练自己的数据集和预测 (保姆级无代码操作版)


前言

YOLOv11是由Ultralytics团队于2024年9月30日发布的,它是YOLO(You Only Look Once)系列中的最新成员。YOLOv11在之前版本的YOLO基础上引入了新功能和改进,以进一步提高性能和灵活性。这使得YOLOv11成为目标检测和跟踪、实例分割、图像分类和姿态估计等多种计算机视觉任务的理想选择。
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


性能表现

YOLOv11在性能上相比前代模型有显著提升,特别是在平均精度均值(mean Average Precision, mAP)和计算效率方面。它实现了更快的推理速度和更高的准确度,超越了YOLO系列中的其他模型。
在这里插入图片描述
官网源码下载地址:https://github.com/ultralytics/ultralytics
但你可以直接省略这个步骤直接在Coovally官网下载另存为我的模型,即刻存储在账号。
在这里插入图片描述
另存后即可在“我的模型列表”安装使用

数据集准备

1.数据标注

数据集需要提前标注好,上传样本集后开始标注。下面是标注界面:

在这里插入图片描述
点击保存按钮或(快捷键:Ctrl + S),保存所有标注改动。
在这里插入图片描述

2.数据标签转换

标签格式支持voc、coco、yolo格式互转,而且标注完成后,数据集列表会自动出现,点击标签转换即可完成想要的标签类型。
在这里插入图片描述

YOLO模型训练教程

1.模型安装

Coovally 内置开源模型平台,只要将YOLO11n模型“另存为我的模型”,即可安装使用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.YOLO11 模型训练

输入任务名称,选择模型配置模版,设置实验E-poch次数,训练次数等信息,即可开始训练。
在这里插入图片描述
在这里插入图片描述
config:包含模型训练所有相关参数的文件。用于指导整个训练流程,确保模型按照预定的设置进行训练。
weights:权重,指的是模型中各个神经元的连接权重。决定了模型在训练前是否使用预训练的权重。如果使用预训练权重,可以加快收敛速度,提高模型性能。
batch-size:批量大小,指的是在每次迭代中用于训练模型的数据样本数量。较小的batch-size可以减少内存需求,但可能导致训练过程不稳定。较大的batch-size可以加快训练速度,提高内存利用效率,但可能会降低模型的泛化能力。
learning-rate:学习率,指的是在优化过程中,权重更新的步长大小。较高的学习率可能会导致训练过程不稳定,甚至发散。较低的学习率可以保证训练稳定性,但可能会使训练过程变得缓慢。学习率的调整策略(如学习率衰减)对于模型训练的成功至关重要。

模型训练仅需45分钟就完成,而且还可以下载权重文件和日志。
在这里插入图片描述
而且还可以直观的看到各项训练损失与精确度指标等;
在这里插入图片描述
train/box_loss:边界框损失(Bounding Box Loss),用于衡量预测的边界框与实际边界框之间的位置误差。
train/cls_loss:分类损失(Classification Loss),用于衡量预测的类别与实际类别之间的误差。
train/dfl_loss:分布预测损失(Distribution Focal Loss),在YOLOv4和YOLOv5等模型中使用,用于改善边界框坐标的预测精度。它通过预测边界框坐标相对于网格单元的分布来减少定位误差。
metrics/precision(B):精确度(Precision)指标,它表示在所有模型预测为正类的边界框中,实际上为正类的比例。
metrics/recall(B):召回率(Recall)指标,它表示在所有实际为正类的边界框中,被模型正确预测为正类的比例。
metrics/mAP50(B):平均精度(mean Average Precision)指标,通常是在IOU(Intersection over Union)阈值为0.5时的评价。mAP50表示的是在所有类别上的平均精度,用于衡量模型在特定IOU阈值下的性能。
metrics/mAP50-95(B):mAP指标在IOU阈值从0.5到0.95变化范围内的平均值。这个指标可以更全面地评价模型在不同IOU阈值下的性能。
val/box_loss:验证集上的边界框损失。与train/box_loss相似,但它是在模型对验证集进行预测时的表现,用于评估模型在未见数据上的泛化能力。
val/cls_loss:验证集上的分类损失(Classification Loss)。它衡量模型在验证集上预测类别标签时的误差。与训练集上的分类损失(train/cls_loss)类似,val/cls_loss 通常使用交叉熵损失(Cross-Entropy Loss)来计算。分类损失的低值意味着模型在验证集上能够较好地预测类别。
val/dfl_loss:验证集上的分布预测损失(Distribution Focal Loss)。在YOLO系列目标检测模型中,分布预测损失用于优化边界框坐标的预测。它通过预测边界框相对于网格单元的位置分布来减少定位误差。与训练集上的分布预测损失(train/dfl_loss)相似,val/dfl_loss 反映了模型在验证集上对边界框位置预测的准确性。

3.YOLO11 预测结果

目标检测结果预测如下:
在这里插入图片描述
在这里插入图片描述


总结

YOLO11在Coovally平台可以流畅且高效的进行训练与效果预测!下期你们还想看什么最新、最热模型,欢迎底下留言,我来帮你一探究竟!

关于YOLOv11模型预测输出的数据结构或格式的信息并未直接提供于现有参考资料中。然而,可以根据先前本的YOLO系列模型推测其可能的形式。 ### YOLOv11 预测输出数据结构解释 #### 输出张量维度 通常情况下,YOLO架构会输出一个多维张量,该张量包含了检测框的位置信息、类别概率以及置信度分数。对于YOLOv11而言,假设网络配置保持一致,则输出形状可能是(batch_size, num_anchors * (num_classes + 5), grid_height, grid_width)[^1]。这里`batch_size`表示批次大小;`num_anchors`代表每个网格单元使用的先验框数量;`num_classes`指代目标分类数目加背景类;而最后两个参数则定义了特征图的空间尺寸。 #### 数据字段说明 - **bbox coordinates**: 每个边界框由四个数值描述(x_center, y_center, width, height),它们分别指示中心坐标及其宽高比例。 - **objectness score**: 表达存在物体的概率估计值,在训练阶段用于计算IoU损失函数的一部分。 - **class probabilities**: 对应各个候选区域属于不同种类的可能性分布向量。 ```python import numpy as np def parse_yolov11_output(output_tensor): """ 解析来自YOLOv11模型的原始输出 参数: output_tensor (numpy.ndarray): 形状为[B,H,W,A*(C+5)] 的浮点数数组 返回: list of dict: 含有bounding box坐标的列表 [{'box': [x,y,w,h], 'conf': conf_score, 'cls_conf': cls_prob}] """ batch_size, _, h, w = output_tensor.shape[:4] anchors_per_cell = int((output_tensor.size / (h*w)) - 5) results = [] for b in range(batch_size): boxes = [] for i in range(h): for j in range(w): anchor_data = output_tensor[b,:,i,j].reshape(-1, 5 + anchors_per_cell) xywhs = sigmoid(anchor_data[:, :4]) # 坐标转换 obj_scores = sigmoid(anchor_data[:, 4]) class_probs = softmax(anchor_data[:, 5:], axis=-1) for k in range(len(obj_scores)): box_info = { "box": xywh_to_xyxy(xywhs[k]), "conf": float(obj_scores[k]), "cls_conf": class_probs[k], } boxes.append(box_info) results.append(boxes) return results def sigmoid(z): """Sigmoid activation function""" return 1/(1 + np.exp(-z)) def softmax(x, axis=None): e_x = np.exp(x - np.max(x)) return e_x / e_x.sum(axis=axis, keepdims=True) def xywh_to_xyxy(bbox): """Convert bounding box from center-size representation to corner-point form.""" x_c, y_c, w, h = bbox half_w, half_h = w/2., h/2. return [x_c-half_w, y_c-half_h, x_c+half_w, y_c+half_h] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值