基于 YOLOv8 的无人机红外极小目标检测系统
在低空安防、机场净空监测以及反无人机系统中,红外图像下的极小目标检测一直是个挑战。这里分享一个实战项目,包含 8302 张标注数据,涵盖飞机、无人机、直升机和鸟类四类目标,并基于 YOLOv8 搭建了一套完整的 Web 检测系统。
数据集概览
本数据集共包含 8302 张红外图像,采用 YOLO (.txt) 和 PASCAL VOC (.xml) 双格式标注。目标尺寸普遍较小(通常小于 32×32 像素),对模型的特征提取能力提出了较高要求。
| 类别 | 英文标识 | 标注框数量 |
|---|---|---|
| 飞机 | Plane | 2,163 |
| 无人机 | Drone | 3,120 |
| 直升机 | Heli | 2,217 |
| 鸟类 | Bird | 1,958 |
| 总计 | — | 9,458 |
样本展示如下:
- 图 1:典型红外背景下的无人机目标
- 图 2:复杂光照环境中的飞机与鸟类混合场景
系统架构与依赖
系统采用 Flask 提供 Web 服务,结合 Ultralytics YOLOv8 进行推理。整体结构清晰,便于部署到边缘服务器。
目录结构
infrared_small_target_detection_yolov8/
├── data/
│ └── dataset.yaml # 数据集配置
├── models/
│ └── best.pt # 训练好的权重
├── static/
│ ├── uploads/ # 用户上传目录
│ └── results/ # 结果保存目录
├── templates/
│ ├── index.html # 上传界面
│ └── result.html # 结果展示
├── app.py # Flask 主程序
├── detect.py # 核心检测逻辑
├── requirements.txt
└── README.md
环境准备
安装必要的依赖包即可启动:
pip install -r requirements.txt
requirements.txt 内容如下:
ultralytics==8.2.0
flask==2.3.3
opencv-python==4.8.0
numpy==1.24.3
Pillow==9.5.0
matplotlib


