无人机航拍违禁植物识别数据集|低空禁毒巡检|安防监管视觉训练集

智慧安防无人机数据集|野外违禁品监测|AI目标识别深度学习样本库

低空安全巡检数据集|野外违禁植株识别|安防视觉模型训练数据


禁毒安防与野外安全监管常态化升级,偏远山地、农田、林区等区域违禁植株巡查面临范围广、地形险、人工巡查效率低、隐蔽性强等难题。无人机低空巡检具备全域覆盖、快速排查、远程安全作业等优势,但野外环境复杂、目标小、与杂草混淆度高,通用数据集无法支撑高精度识别需求。本文按 GitHub 开源项目规范,完整开放无人机安防违禁植株专项检测数据集,配套 YOLO 训练、推理、部署全流程工程代码,开箱即用,快速落地低空安全智能巡检系统。
在这里插入图片描述
在这里插入图片描述


📁 项目总览

  • 项目领域:计算机视觉|目标检测|智慧安防|无人机低空巡检
  • 核心任务:无人机航拍视角下违禁植株高精度识别与定位
  • 数据规模:610 张高清野外航拍图像,专用场景数据集
  • 配套资源:完整数据集文件 + 预训练适配模型,开箱可测
  • 格式支持:图像 JPG/PNG + 标注 YOLO TXT / VOC XML
  • 适配算法:YOLOv5/v7/v8/v10/v11 全系列,小目标增强优化
  • 应用场景:禁毒巡查、野外安防监管、区域安全巡检、违禁植株识别

🧾 数据集核心信息

信息项 详情
任务类型 计算机视觉 · 目标检测
标注类别 违禁植株单类别精准标注
数据总量 610 张无人机野外航拍图像
数据格式 图像文件 + 模型配置,支持平台上传直接测试
场景特点 野外山地、农田、杂草丛生、小目标、远距离、高隐蔽性
配套资源 专用数据集 + 预训练模型,完整“数据-模型”支撑链

✨ 核心优势

  • 安防场景专属:聚焦违禁植株识别,无多余类别干扰,识别精度更高
  • 野外环境适配:覆盖山地、农田、杂草区等真实巡查场景
  • 小目标专项优化:大量远距离、小尺寸样本,提升低空巡检召回率
  • 工程化就绪:数据集+模型配套,无需从零训练,快速部署上线
  • 细分领域高效:规模适中,在安防垂直场景下训练快、泛化稳定
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

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

drone-safety-det/
├── images/                # 航拍巡检图像
│   ├── train/
│   ├── val/
│   └── test/
├── labels/                # YOLO格式标注
│   ├── train/
│   └── val/
├── scripts/               # 工具脚本
│   ├── split_dataset.py   # 数据集划分
│   ├── voc2yolo.py        # 标注格式转换
│   └── vis_label.py       # 标注可视化校验
├── data.yaml              # YOLO数据集配置
├── train.py               # 模型训练脚本
├── predict.py             # 实时推理脚本
├── README.md              # 项目说明
└── model.pt               # 预训练权重

🧪 深度学习实战代码(带安防巡检场景经验注释)

1. data.yaml(无人机违禁植株检测专用配置)

# 场景注释:无人机低空安防巡检·违禁植株小目标检测
# 野外杂草多、目标小、易混淆,建议 imgsz=640/800 提升细节
path: ./drone-safety-det
train: images/train
val: images/val
test: images/test

nc: 1                         # 单类别违禁植株检测
names: ['poppy']              # 目标名称

# 野外小目标调参经验:
# 1. imgsz=640/800 增强远距离小目标召回
# 2. 开启hsv、mosaic增强,适应复杂杂草背景
# 3. conf=0.25 降低隐蔽目标漏检率

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=10,          # 早停防止过拟合
        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="safety_poppy_det"
    )

3. predict.py(无人机安防巡检推理)

from ultralytics import YOLO
import cv2

# 场景注释:安防巡检专用·隐蔽小目标低漏检推理
def safety_predict():
    # 加载训练完成模型
    model = YOLO("./runs/detect/safety_poppy_det/weights/best.pt")

    # 单张航拍图推理
    img_path = "drone_safety.jpg"
    results = model.predict(
        source=img_path,
        conf=0.25,
        iou=0.45,
        agnostic_nms=True    # 抑制杂草干扰误检
    )

    # 保存检测结果
    res_img = results[0].plot()
    cv2.imwrite("safety_result.jpg", res_img)

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

if __name__ == "__main__":
    safety_predict()

4. 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 = ["poppy"]
    voc_to_yolo("./labels/voc", "./labels/yolo", classes)

🎯 落地应用方向

  1. 禁毒智能巡查:无人机全域排查,自动识别违禁植株并定位
  2. 野外安防监管:偏远区域安全巡检,降低人工风险
  3. 重点区域防控:农田、山林、荒地常态化智能监测
  4. 执法取证辅助:自动抓拍、定位、留存可疑目标证据
  5. 低空安全治理:构建智能化、立体化安防巡查体系

📌 标签

#无人机安防数据集 #违禁植株识别 #低空巡检 #智慧禁毒 #无人机目标检测 #小目标检测 #YOLO安防 #计算机视觉 #深度学习数据集 #安防AI #野外监测 #智能巡检

Logo

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

更多推荐