跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

YOLO11 无人机航拍小目标检测系统实战与优化

综述由AI生成针对无人机航拍图像中小目标密集且尺度变化大的问题,本项目采用 YOLO11 模型结合 VisDrone 数据集进行训练优化。通过 PyQt6 构建桌面应用,支持图片、视频及摄像头的实时检测与可视化分析。文中详细阐述了数据配置、训练参数调优策略及系统架构,提供了从环境搭建到模型部署的完整流程,旨在提升复杂场景下的交通目标检测精度与效率。

城市逃兵发布于 2026/4/8更新于 2026/5/2313 浏览
YOLO11 无人机航拍小目标检测系统实战与优化

YOLO11 无人机航拍小目标检测系统实战与优化

本项目聚焦于无人机航拍场景下的微小目标检测难题,基于 Ultralytics YOLO11 框架,在 VisDrone 2019 数据集上完成训练与调优。除了核心算法模型,还配套开发了基于 PyQt6 的桌面应用,支持图片、视频及摄像头的实时检测,并内置了训练指标的可视化功能。

项目背景与数据基础

无人机航拍图像通常面临目标尺度极小、分布密集以及多尺度混合的挑战,传统算法往往难以达到理想效果。我们选用 VisDrone 2019-DET 数据集,这是面向无人机视角的大规模基准数据集,由天津大学 AISKYEYE 团队发布,涵盖行人、车辆等 10 类交通相关目标。

数据集概况

子集图像数量说明
训练集 (train)6,471 张用于模型训练
验证集 (val)548 张用于超参数调优与模型选择
测试集 (test-dev)1,610 张含标注,可用于论文实验

该数据集包含超过 260 万个边界框,图像来源覆盖中国 14 个不同城市,场景丰富。其显著特点包括:

  • 小目标特性:大量目标归一化后宽度或高度小于 2%。
  • 密集分布:交通路口等场景遮挡严重。
  • 多尺度混合:同一图像中存在近大远小现象。

目录结构

dataset_visdrone/
├── data.yaml              # YOLO 数据集配置文件
├── data_local.yaml        # 自动生成,含本机绝对路径
├── 数据集介绍.md
└── VisDrone2019-DET-train/
    ├── images/
    └── labels/            # YOLO 格式标签 (.txt)

标注采用 YOLO 标准格式,每行一个目标:<class_id> <x_center> <y_center> <width> <height>,坐标均为归一化值 [0, 1]。

模型训练流程

训练脚本位于项目根目录 train_yolo11.py,支持训练、验证和推理三种模式。实际运行中,建议根据显存情况调整 batch size,并针对小目标优化输入分辨率。

启动与配置

确保 dataset_visdrone/data.yaml 存在后,脚本会自动生成包含本机绝对路径的 data_local.yaml。加载预训练模型即可开始训练,结果默认保存在 runs/train/<实验名称>/ 目录下。

python train_yolo11.py                      # 默认配置训练
python train_yolo11.py --model yolo11m      # 指定模型大小
python train_yolo11.py --epochs 200         # 指定训练轮数
python train_yolo11.py --imgsz 1280         # 提升小目标分辨率
python train_yolo11.py --multi_scale        # 开启多尺度训练
python train_yolo11.py --mode val --weights runs/train/exp/weights/best.pt
python train_yolo11.py --mode predict --weights runs/train/exp/weights/best.pt --source path/to/image

关键参数建议

  • 图像尺寸:建议 ≥ 640,针对小目标推荐 1280。
  • Batch Size:16–32,显存不足时降低。
  • Epochs:VisDrone 收敛较慢,建议 200–300。
  • 数据增强:默认开启 mosaic,最后 10 个 epoch 关闭以稳定收敛。
  • 优化器:SGD,损失权重 box=7.5, cls=0.5, dfl=1.5。

训练指标解读

Ultralytics 会在实验目录下生成丰富的可视化文件,帮助分析模型表现:

  • results.csv / results.png:记录每个 epoch 的损失与指标(mAP、精确率、召回率等)变化曲线。
  • train_batch.jpg / val_batch_pred.jpg**:展示数据增强后的输入及预测结果,直观查看漏检与误检情况。
  • confusion_matrix_normalized.png:归一化混淆矩阵,分析各类别的预测准确性。
  • PR_curve.png / F1_curve.png:评估置信度阈值对性能的影响。

主要列名包括 epoch, train/box_loss, metrics/mAP50(B), val/box_loss 等。

桌面应用系统

为了便于模型验证与日常使用,我们开发了基于 PyQt6 的桌面应用「无人机航拍小目标检测系统」。

核心功能

  • 图片识别:支持 JPG/PNG/BMP 拖拽导入,导出检测结果图片与 CSV。
  • 视频识别:逐帧检测 MP4/AVI/MOV 格式,显示进度条。
  • 摄像头识别:实时调用本地摄像头进行目标检测。
  • 检测历史:查看与管理历史记录,支持筛选与导出。
  • 模型管理:配置模型路径,调整置信度(conf_threshold)、IoU 阈值等参数。
  • 指标展示:集成训练过程可视化图表。

架构与配置

入口为 detection_app/main.py,默认账号 admin/admin123。检测逻辑封装在 utils/detector.py 中,通过 ImageDetectWorker 等线程类调用 Ultralytics YOLO 进行推理。

配置文件 config.json 存储模型路径与检测参数,用户信息与历史记录分别保存在 data/users.json 和 data/history.json。

技术栈与依赖

类别技术选型
GUI 框架PyQt6
深度学习框架Ultralytics (YOLO11)
后端PyTorch
图像处理OpenCV, Pillow
可视化matplotlib, pandas

环境依赖

PyQt6>=6.4.0
ultralytics>=8.0.0
opencv-python>=4.7.0
Pillow>=9.0.0
matplotlib>=3.7.0
numpy>=1.23.0
pandas>=1.5.0
pyyaml

项目结构概览

c124/
├── train_yolo11.py          # YOLO11 训练脚本
├── README.md
├── dataset_visdrone/        # 数据集目录
│   ├── data.yaml
│   └── VisDrone2019-DET-train/
├── detection_app/           # 检测系统应用
│   ├── main.py
│   ├── utils/
│   │   ├── detector.py
│   │   └── storage.py
│   └── pages/               # 各功能页面
└── runs/                    # 训练输出目录

参考文献

如在论文中使用 VisDrone 数据集,建议引用:

@article{zhu2021detection,
  title={Detection and tracking meet drones challenge},
  author={Zhu, Pengfei and Wen, Longyin and Du, Dawei and Bian, Xiao and Fan, Heng and Hu, Qinghua and Ling, Haibin},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  volume={44},
  number={11},
  pages={7380--7399},
  year={2021}
}

本方案通过结合 YOLO11 的高效性与 PyQt6 的交互性,提供了一套完整的无人机小目标检测解决方案。在实际部署中,注意根据具体场景调整输入分辨率与置信度阈值,以获得最佳平衡。

目录

  1. YOLO11 无人机航拍小目标检测系统实战与优化
  2. 项目背景与数据基础
  3. 数据集概况
  4. 目录结构
  5. 模型训练流程
  6. 启动与配置
  7. 关键参数建议
  8. 训练指标解读
  9. 桌面应用系统
  10. 核心功能
  11. 架构与配置
  12. 技术栈与依赖
  13. 环境依赖
  14. 项目结构概览
  15. 参考文献
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 基于飞算 JavaAI 的智能在线考试系统设计与实现
  • AGI 通识与应用开发入门指南
  • 本地 AI 电话机器人:通过 UDP 传输手机通话声音的 Python 脚本
  • VSCode + GitHub Copilot 从安装到 Agent 实战详解
  • GitHub 浏览器插件实现界面中文翻译
  • GitHub 学生开发者认证操作指南
  • 圣光艺苑:基于 Stable Diffusion 的鎏金画框艺术生成工具
  • C++ string 类模拟实现
  • 基于 DeepFace 和 OpenCV 的实时情绪分析器实现
  • 医疗 AI 可信革命全栈实现:向量索引与贝叶斯网络
  • Llama Factory 微调实战:优化截断长度解决显存溢出
  • 前端拖拽交互实现:从原生 API 到专业库
  • Java IO 流进阶:字符流与字节流的深度应用
  • 基于 Verilog FPGA 的双线性插值视频缩放系统实现
  • C++ 类与对象基础(上)
  • MySQL 数据类型详解
  • OpenClaw 多飞书机器人与多 Agent 团队实战复盘
  • 普通行政如何成为 AI 产品专家:从零开发效率工具与游戏的实践
  • GLM-4.7-Flash 实战:构建本地 Copilot 编程助手
  • Spring Boot 实战:基于 WebSocket 的前后端实时匹配系统实现

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online