无人机航拍智慧牧业数据集|草原牲畜监测|牛群识别计数深度学习训练集

智慧牧业无人机巡检数据集|牧场牲畜检测|航拍视觉识别模型样本库

草原畜牧智能监测数据集|无人机牲畜计数|智慧农业视觉训练数据


智慧牧业与数字牧场快速普及,无人机已成为草原、山地、大型牧场牲畜盘点、健康监测、走失预警、围栏管理的核心装备。但牧区地形开阔、牲畜分散、目标偏小、光照与遮挡复杂,通用数据集难以适配真实航拍场景,导致计数不准、漏检严重、模型泛化差。本文严格遵循GitHub开源项目规范,完整开放一套无人机智慧牧业牲畜专用检测数据集,配套YOLO训练、计数、推理全流程工程代码,开箱即用,快速构建高精度牧场智能监测系统。
在这里插入图片描述


📁 项目总览

  • 项目领域:计算机视觉|目标检测|智慧牧业|无人机低空巡检
  • 核心任务:无人机航拍视角下牛只精准检测、自动计数、群体监测
  • 数据规模:4639 张高清航拍图像,8个子数据集,场景全覆盖
  • 标注类别:单类别「cow/牛」纯净标注,无多余类别干扰
  • 格式支持:图像 JPG/PNG + 标注 YOLO TXT / VOC XML / COCO JSON
  • 适配算法:YOLOv5/v7/v8/v10/v11 全系列,小目标与密集群体验证优化
  • 应用场景:草原牧场盘点、牲畜计数、健康监测、走失预警、智慧牧业管理
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

🧾 数据集核心信息

信息项 详情
任务类型 计算机视觉 · 目标检测
标注类别 仅「牛」单类别,专项优化检测精度与计数准确率
数据总量 4639 张无人机航拍图像,8个子数据集覆盖多环境
数据格式 图像:JPG/PNG;标注:YOLO‑TXT、VOC‑XML、COCO‑JSON
场景特点 草原/山地/牧场、俯视/斜侧视、远距离小目标、密集群、光照多变
配套资源 数据集划分、格式转换、训练/推理/自动计数全套代码

在这里插入图片描述

✨ 核心优势

  • 牧业场景专属:纯牧区航拍视角,匹配无人机真实巡检航线与高度
  • 标注纯净高效:单类别无干扰,模型收敛更快、计数更准
  • 数据规模充足:4.6k+图像+8个子集,充分支撑模型训练与泛化验证
  • 小目标/密集优化:覆盖远距离、分散、扎堆、遮挡样本,牧区鲁棒性强
  • 工程化就绪:原生兼容YOLO,一键训练、一键推理、一键统计存栏量

📂 标准目录结构(GitHub 规范)

drone-livestock-det/
├── images/                # 航拍图像
│   ├── train/
│   ├── val/
│   └── test/
├── labels/                # YOLO格式标注
│   ├── train/
│   └── val/
├── scripts/               # 工具脚本
│   ├── split_dataset.py   # 训练/验证集划分
│   ├── voc2yolo.py        # VOC转YOLO标注
│   └── vis_label.py       # 标注可视化校验
├── data.yaml              # YOLO数据集配置
├── train.py               # 牲畜检测训练
├── predict.py             # 航拍图/视频推理
├── count_cattle.py        # 牛只自动统计
└── README.md              # 项目说明

🧪 深度学习实战代码(带智慧牧业场景经验注释)

1. data.yaml(无人机牛群检测专用配置)

# 场景注释:智慧牧业·无人机草原牛群检测配置
# 牧区目标小、分散、扎堆多,建议 imgsz=640,降低conf减少漏检
path: ./drone-livestock-det
train: images/train
val: images/val
test: images/test

nc: 1                         # 仅牛单类别
names: ['cow']                # 类别名称

# 牧区小目标+密集群调参经验:
# 1. imgsz=640/800 提升远距离牛只召回
# 2. 开启 mosaic、mixup 增强光照与姿态鲁棒性
# 3. conf=0.25,iou=0.45,平衡密集扎堆不漏检、不误检

2. train.py(YOLOv8 智慧牧业牛群训练)

from ultralytics import YOLO

# 场景注释:无人机草原巡检·牛群小目标+密集扎堆训练参数
# 兼顾牧区开阔环境、小目标、遮挡、姿态多变特性
if __name__ == "__main__":
    model = YOLO("yolov8s.pt")  # 轻量中精度,适合机载/边缘部署

    model.train(
        data="data.yaml",
        epochs=120,            # 小目标+复杂场景适当加轮数
        imgsz=640,            # 高分辨率捕捉牛只细节
        batch=16,
        device=0,
        patience=12,          # 早停防过拟合
        lr0=0.01,
        lrf=0.01,
        momentum=0.937,
        weight_decay=0.0005,
        warmup_epochs=3,
        cos_lr=True,
        augment=True,         # 强数据增强
        hsv_h=0.015,
        hsv_s=0.7,
        hsv_v=0.4,            # 适应草原强光/阴影
        close_mosaic=10,
        name="cattle_detection"
    )

3. predict.py(无人机牧场巡检推理)

from ultralytics import YOLO
import cv2

# 场景注释:牧区航拍推理·支持图片/视频/实时流,低漏检配置
def cattle_predict():
    model = YOLO("./runs/detect/cattle_detection/weights/best.pt")

    # 牧区低置信度+高IOU,减少分散/遮挡牛只漏检
    img_path = "drone_grassland.jpg"
    results = model.predict(source=img_path, conf=0.25, iou=0.45)

    # 保存可视化结果
    res_img = results[0].plot()
    cv2.imwrite("cattle_result.jpg", res_img)

    # 视频/实时流巡检
    # model.predict(source="drone_flight.mp4", save=True, stream=True)

if __name__ == "__main__":
    cattle_predict()

4. count_cattle.py(牛只存栏自动统计)

from ultralytics import YOLO

# 场景注释:智慧牧业核心功能·航拍图自动统计牛群数量
def count_livestock():
    model = YOLO("cattle_detection.pt")
    img_path = "drone_pasture.jpg"
    results = model.predict(source=img_path, conf=0.25)

    cow_count = 0
    for result in results:
        for box in result.boxes:
            if int(box.cls) == 0:
                cow_count += 1

    print(f"🐄 本场航拍统计牛只数量:{cow_count} 头")

if __name__ == "__main__":
    count_livestock()

5. voc2yolo.py(标注格式转换)

import os
import xml.etree.ElementTree as ET
from pathlib import Path

# 场景注释:VOC转YOLO,保证牧区小目标牛只框归一化准确
def voc_to_yolo(voc_dir, yolo_dir, class_names):
    os.makedirs(yolo_dir, exist_ok=True)
    for xml_file in Path(voc_dir).glob("*.xml"):
        tree = ET.parse(xml_file)
        root = tree.getroot()
        img_w = int(root.find("size/width").text)
        img_h = int(root.find("size/height").text)
        txt_path = os.path.join(yolo_dir, f"{xml_file.stem}.txt")

        with open(txt_path, "w") as f:
            for obj in root.findall("object"):
                cls_name = obj.find("name").text
                if cls_name not in class_names:
                    continue
                cls_id = class_names.index(cls_name)
                bndbox = obj.find("bndbox")
                xmin = float(bndbox.find("xmin").text)
                ymin = float(bndbox.find("ymin").text)
                xmax = float(bndbox.find("xmax").text)
                ymax = float(bndbox.find("ymax").text)

                # YOLO归一化坐标
                cx = (xmin + xmax) / 2 / img_w
                cy = (ymin + ymax) / 2 / img_h
                w = (xmax - xmin) / img_w
                h = (ymax - ymin) / img_h
                f.write(f"{cls_id} {cx:.6f} {cy:.6f} {w:.6f} {h:.6f}\n")

if __name__ == "__main__":
    classes = ["cow"]
    voc_to_yolo("./labels/voc", "./labels/yolo", classes)

🎯 落地应用方向

  1. 牧场自动盘点:无人机单次巡航,快速统计存栏量,替代人工盘点
  2. 牲畜健康监测:识别掉队、卧地不起等异常状态,及时预警
  3. 围栏安全管理:监测越界、冲撞围栏,降低走失与损失风险
  4. 牧区生态监测:结合分布密度,辅助草场承载量评估
  5. 智慧牧业平台:对接管理系统,实现数字化、可视化、智能化运维

📌 标签

#无人机智慧牧业 #牲畜检测 #牛群识别 #无人机牧场 #智慧农业 #目标检测 #YOLO畜牧 #低空视觉 #草原巡检 #计算机视觉 #深度学习数据集 #牲畜计数 #数字牧场

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐