手把手教你使用 YOLOv11 训练自己的数据集

在这里插入图片描述

视频教程地址:bilibili

  1. 安装 VSCodeVisual Studio Code - Code Editing. Redefined
  2. 安装 VSCode 插件,Remote-SSHChinese (Simplified)
  3. 领取 50元算力券(24小时4090显卡),无需认证!

    博主粉丝福利,限量领取
    https://cloud.lanyun.net/#/registerPage?promoterCode=5f738eaf90

  4. 租显卡设备
  5. 上传数据集

    数据集链接:https://pan.baidu.com/s/14Gw_jymmUxQAWv3JNvgwqw

    提取码:df66
    或 : https://download.csdn.net/download/weixin_43694096/88369997

  6. 解压数据集到指定位置:unzip -d /root/VOC2007/ /root/lanyun-fs/VOC2007.zip
  7. 下载代码:
    source /etc/network_turbo # 开启代理
    git clone https://github.com/ultralytics/ultralytics --branch v8.3.12
  8. 初始化 conda init
  9. 新建conda环境:conda create --name yolov8 python=3.10 -y
  10. 激活conda环境:conda activate yolov8
  11. 安装环境:
    unset http_proxy && unset https_proxy # 关闭代理
    pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
  12. 下载权重 wget https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n.pt
  13. 推理模型:
from ultralytics import YOLO

if __name__ == '__main__':
    # 加载模型
    model = YOLO(r'yolov8n.pt')  # YOLOv8n模型
    model.predict(
        source=r'ultralytics/assets/bus.jpg',
        save=True,  # 保存预测结果
        project='runs/predict',  # 项目名称(可选)
        name='exp',  # 实验名称,结果保存在'project/name'目录下(可选)
    )
  1. 编写数据集 yaml 文件
  2. 训练模型:
from ultralytics import YOLO

if __name__ == '__main__':
    # 加载模型
    model = YOLO('yolov11.yaml', task="detect")  # 不使用预训练权重训练 | detect, segment, classify, pose, obb
    # model = YOLO(r'yolov11.yaml').load("yolov11n.pt")  # 使用预训练权重训练
    # 训练参数 ----------------------------------------------------------------------------------------------
    model.train(
        data='coco128.yaml',
        epochs=100,  # (int) 训练的周期数
        patience=50,  # (int) 等待无明显改善以进行早期停止的周期数
        batch=32,  # (int) 每批次的图像数量(-1 为自动批处理)
        imgsz=640,  # (int) 输入图像的大小,整数或w,h
        save=True,  # (bool) 保存训练检查点和预测结果
        save_period=-1,  # (int) 每x周期保存检查点(如果小于1则禁用)
        cache=True,  # (bool) True/ram、磁盘或False。使用缓存加载数据
        device='',  # (int | str | list, optional) 运行的设备,例如 cuda device=0 或 device=0,1,2,3 或 device=cpu
        workers=8,  # (int) 数据加载的工作线程数(每个DDP进程)
        project='runs/train',  # (str, optional) 项目名称
        name='exp',  # (str, optional) 实验名称,结果保存在'project/name'目录下
        pretrained=True,  # (bool | str) 是否使用预训练模型(bool),或从中加载权重的模型(str)
        optimizer='SGD',  # (str) 要使用的优化器,选择=[SGD,Adam,Adamax,AdamW,NAdam,RAdam,RMSProp,auto]
        verbose=True,  # (bool) 是否打印详细输出
        seed=0,  # (int) 用于可重复性的随机种子
        close_mosaic=0,  # (int) 在最后几个周期禁用马赛克增强
        resume=False,  # (bool) 从上一个检查点恢复训练
        amp=False,  # (bool) 自动混合精度(AMP)训练,选择=[True, False],True运行AMP检查
    )
  1. 评估模型:
from ultralytics import YOLO

if __name__ == '__main__':
    # 加载模型
    model = YOLO(r'yolov8n.pt')  
    # 验证模型
    metrics=model.val(
        data=r'coco128.yaml',
        split='val',  # (str) 用于验证的数据集拆分,例如'val'、'test'或'train'
        batch=1,  # (int) 每批的图像数量(-1 为自动批处理)
        imgsz=640,  # 输入图像的大小,可以是整数或w,h
        device=0,  # 运行的设备,例如 cuda device=0 或 device=0,1,2,3 或 device=cpu
        workers=8,  # 数据加载的工作线程数(每个DDP进程)
        iou=0.6,  # 非极大值抑制 (NMS) 的交并比 (IoU) 阈值
        project='runs/val',  # 项目名称(可选)
        name='exp',  # 实验名称,结果保存在'project/name'目录下(可选)
    )
    print(f"mAP50-95: {metrics.box.map}") # map50-95
    print(f"mAP50: {metrics.box.map50}")  # map50
    print(f"mAP75: {metrics.box.map75}")  # map75
    speed_metrics = metrics.speed
    total_time = sum(speed_metrics.values())
    fps = 1000 / total_time
    print(f"FPS: {fps}") # FPS

YOLOv11(You Only Look Once Version 11)是一种先进的实时目标检测算法,它在最新的版本中引入了多项改进,如更大的网络规模、更强的特征提取能力以及更精细的锚点设计。下面是使用YOLOv11进行自定义数据集训练和推理的基本步骤: 1. **获取YOLOv11模型**: 首先,你需要下载YOLOv11的预训练权重,通常可以在GitHub或者其他开源资源上找到。官方可能会提供预训练模型和配置文件。 2. **准备数据集**: 对于训练,你需要准备标注好的图片数据集。每个图像应包含对应的目标框及其类别标签。数据集应该按照YOLO的要求组织,包括图片路径和对应的XML或CSV标签文件。 3. **数据预处理**: 使用YOLO提供的工具(如Darknet中的yolov5-preprocess.py)对你的数据进行预处理,这通常涉及尺寸标准化、颜色归一化等操作。 4. **修改配置文件**: 找到YOLOv11的主配置文件(例如darknet.yaml),根据需要调整超参数,如学习率、批大小、训练轮数等。同时,指定你的数据集路径。 5. **训练模型**: - 运行命令行脚本(如darknet detect或train)开始训练过程。训练会逐步优化模型参数,使其适应你的特定任务。 6. **验证与保存**: 定期验证模型性能,检查是否过拟合或欠拟合。当达到满意的精度后,可以保存模型以便后续推理。 7. **推理阶段**: - 对新的未标记图像使用训练好的模型进行预测。同样,需要使用预先设置好的输入规格,并可能进行后处理,比如非极大值抑制(NMS)。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值