YOLOv11马匹皮肤病目标检测数据集

YOLOv11马匹皮肤病目标检测数据集

📊 数据集基本信息

  • 目标类别'allergic_dermatitis', 'dermatitis', 'good horse', 'mange', 'ringworm'
  • 中文类别'过敏性皮炎', '皮炎', '健康马', '疥癣', '环形皮肤病'
  • 训练集:784 张
  • 验证集:98 张
  • 测试集:98 张
  • 总计:980 张

📄 data.yaml 配置信息

该数据集提供了data.yaml文件,内容如下:

yaml 复制代码
train: ../train/images
val: ../valid/images
test: ../test/images

nc: 5
names: ['allergic_dermatitis', 'dermatitis', 'good horse', 'mange', 'ringworm']

🖼️ 标注可视化

📝 数据集分析

YOLOv11马匹皮肤病目标检测数据集

该数据集专注于马匹常见皮肤病的识别与分类,通过高精度标注为农业养殖、兽医诊断及动物健康管理提供了可靠的数据支持。数据集涵盖了多种典型皮肤病类型,包括过敏性皮炎、皮炎、疥癣和环形皮肤病,并包含健康的马匹作为对比样本,具有明确的应用价值。

数据集整体分布合理,训练集784张、验证集98张、测试集98张,总计980张。这种划分比例能够充分满足模型训练、调优和性能评估的需求,确保模型在不同场景下的泛化能力。同时,各类别样本数量分布均衡,有效避免了类别不平衡问题对模型性能的影响。

该数据集的标注工作严谨规范,所有皮肤病病灶均采用精确的矩形框标注,且标注名称与实际观察到的病变特征高度一致。标注人员专业性强,确保了每一张图像的标注质量,为后续的模型训练奠定了坚实基础。

该数据集可广泛应用于畜牧业疫病防控、兽医临床诊断辅助以及智能农业系统开发等领域。特别是在规模化马匹养殖场中,可用于实时监测马匹健康状况,及时发现并处理皮肤病问题,提升养殖效率和动物福利水平。

YOLOv11训练步骤

一、环境安装

bash 复制代码
pip install ultralytics
# 依赖要求:Python≥3.8,PyTorch≥1.8。安装完成后可通过 `yolo checks` 验证环境。

二、数据集准备(YOLO格式)

1. 目录结构

数据集必须严格按以下结构组织:

复制代码
dataset/
├── train/
│   ├── images/          # 训练图片(jpg/png)
│   └── labels/          # YOLO格式标注(txt)
├── val/
│   ├── images/
│   └── labels/
└── data.yaml            # 数据集配置文件
2. YOLO标注格式

每个 *.txt 文件对应一张图片,每行格式为:

复制代码
class_id center_x center_y width height

所有数值均为相对于图片宽高的归一化值(0~1)。

3. data.yaml 配置文件
yaml 复制代码
# data.yaml
path: ../dataset          # 数据集根目录(相对或绝对路径)
train: train/images       # 训练集图片路径
val: val/images           # 验证集图片路径
test: test/images         # 测试集图片路径(可选)

# 类别信息
nc: 2                     # 类别数量
names: ['class1', 'class2']  # 类别名称列表

三、模型选择

YOLO11 提供 5 种尺度,官方命名规则为 yolo11{n/s/m/l/x}.pt

模型 参数量 适用场景
yolo11n 2.6M 边缘设备、速度优先
yolo11s 9.4M 平衡精度与速度
yolo11m 20.1M 常规GPU训练
yolo11l 25.3M 高精度需求
yolo11x 56.9M 极致精度、算力充足

四、模型训练

方式1:Python API(推荐)

创建 train.py

python 复制代码
from ultralytics import YOLO

def main():
    # 加载预训练模型(推荐:基于COCO预训练权重微调)
    model = YOLO("yolo11m.pt")

    # 训练参数
    train_params = {
        'data': 'data.yaml',           # 数据集配置文件
        'epochs': 100,                 # 训练轮次
        'imgsz': 640,                  # 输入图像尺寸
        'batch': 16,                   # 批次大小(根据显存调整)
        'device': '0',                 # GPU设备号,'cpu'表示CPU训练
        'workers': 8,                  # 数据加载线程数
        'optimizer': 'SGD',            # 优化器:SGD/Adam/AdamW
        'lr0': 0.01,                   # 初始学习率
        'patience': 50,                # 早停耐心值
        'save': True,                  # 保存模型
        'project': 'runs/train',       # 项目保存路径
        'name': 'exp',                 # 实验名称
        'single_cls': False,           # 单类别检测设为True
        'close_mosaic': 10,            # 最后N轮关闭马赛克增强
    }

    # 开始训练
    results = model.train(**train_params)

    # 输出最佳模型路径
    print(f"Best model saved at: {results.best}")

if __name__ == '__main__':
    main()

三种模型加载方式对比:

python 复制代码
# 方式A:从YAML构建全新模型(从头训练,适合网络结构改进)
model = YOLO("yolo11m.yaml")

# 方式B:加载预训练权重(最常用,推荐)
model = YOLO("yolo11m.pt")

# 方式C:构建新模型并迁移预训练权重(改进网络后使用)
model = YOLO("yolo11m.yaml").load("yolo11m.pt")
方式2:命令行 CLI
bash 复制代码
# 基础训练
yolo detect train data=data.yaml model=yolo11m.pt epochs=100 imgsz=640 batch=16 device=0

# 多GPU训练
yolo detect train data=data.yaml model=yolo11m.pt epochs=100 device=0,1

# 从YAML+预训练权重训练
yolo detect train data=data.yaml model=yolo11m.yaml pretrained=yolo11m.pt epochs=100

五、关键训练参数说明

参数 说明 建议值
epochs 训练总轮次 100~300
imgsz 输入尺寸 640(标准)
batch 批次大小 8/16/32(根据显存)
device 训练设备 0(单GPU)、0,1(多GPU)、cpumps(Apple芯片)
workers 数据加载线程 8~16(Windows建议≤8)
optimizer 优化器 SGD(默认)、AdamAdamW
lr0 / lrf 初始/最终学习率 0.01 / 0.01
momentum SGD动量 0.937
weight_decay 权重衰减 0.0005
single_cls 单类别模式 True/False
resume 恢复中断训练 True需指定last.pt
amp 自动混合精度 True(默认开启,省显存)

六、模型验证

创建 val.py

python 复制代码
from ultralytics import YOLO

def main():
    # 加载训练好的最佳权重
    model = YOLO('runs/train/exp/weights/best.pt')

    # 验证
    metrics = model.val(
        data='data.yaml',
        split='val',              # 验证集:'val' 或 'test'
        imgsz=640,
        batch=16,
        iou=0.6,                  # NMS IoU阈值
        device='0',
        save_json=False,          # 是否保存COCO格式JSON
    )

    # 输出关键指标
    print(f"mAP50-95: {metrics.box.map}")   # mAP@0.5:0.95
    print(f"mAP50: {metrics.box.map50}")    # mAP@0.5
    print(f"mAP75: {metrics.box.map75}")    # mAP@0.75

if __name__ == '__main__':
    main()

CLI 方式:

bash 复制代码
yolo detect val model=runs/train/exp/weights/best.pt data=data.yaml

七、模型推理/预测

创建 predict.py

python 复制代码
from ultralytics import YOLO
import cv2

def main():
    model = YOLO('runs/train/exp/weights/best.pt')

    # 单张图片推理
    results = model.predict(
        source='test_images/',    # 图片路径、文件夹、URL或摄像头索引(0)
        imgsz=640,
        conf=0.25,                # 置信度阈值
        iou=0.45,                 # NMS IoU阈值
        device='0',
        save=True,                # 保存结果图
        show=False,               # 是否弹窗显示
    )

    # 遍历结果
    for result in results:
        boxes = result.boxes      # 检测框
        masks = result.masks      # 分割掩码(如使用分割模型)
        probs = result.probs      # 分类概率

        # 获取坐标、置信度、类别
        for box in boxes:
            x1, y1, x2, y2 = box.xyxy[0].tolist()
            conf = box.conf[0].item()
            cls = int(box.cls[0].item())
            print(f"Class: {cls}, Conf: {conf:.2f}, Box: [{x1:.1f}, {y1:.1f}, {x2:.1f}, {y2:.1f}]")

if __name__ == '__main__':
    main()

CLI 方式:

bash 复制代码
yolo detect predict model=runs/train/exp/weights/best.pt source=test_images/ save=True

## 数据集下载>     小郭AI日志
相关推荐
AIGS0011 小时前
本体语义:企业AI从“答得对“走向“懂业务“的关键一跃
人工智能
IT_陈寒1 小时前
Python的GIL让我以为CPU跑满了,结果...
前端·人工智能·后端
一孤程1 小时前
AI辅助测试用例生成实战——用大模型把测试设计效率提升300%
人工智能·测试工具·ai·aigc·测试用例·测试·测试覆盖率
We0 AI1 小时前
ChatGPT Work 替代工具推荐:We0 AI、Framer、Webflow、Wix AI 哪个更适合网站增长?
人工智能·chatgpt
chenyulin45451 小时前
企业微信API:海量会话存档数据的高性能检索与Elasticsearch索引设计
大数据·人工智能·安全·企业微信
小保CPP1 小时前
OCR C++ Tesseract按单词识别字符
c++·人工智能·ocr·模式识别·光学字符识别
cany10001 小时前
Other -- 智能取景和智能跟踪
人工智能
来自内蒙古的田园蒙牛1 小时前
WebStorm 接入 Ollama:使用 Qwen2.5-Coder 在本地运行 AI 编程助手
ide·人工智能·webstorm
冷小鱼1 小时前
AI Agent 的核心算法:多智能体协作(Multi-Agent Systems)
前端·人工智能·算法·multi-agent·多智能体协作·systems