无人驾驶飞行器监测资料库
anti-uav数据集(已标注yolo格式)包含可见光(RGB)和红外(IR)的无人驾驶飞行器检测数据,两组资料在时间上相互对应。每种模式分别有5104张训练图像、2209张验证图像及2203张测试图像。该数据集来源于公开视频格式资料集anti-uav。资料已从视频中抽取帧并转化为图像,并转换为yolo格式,可以直接用于YOLO模型的训练。
以下是
Anti-UAV 无人驾驶飞行器检测数据集
(可见光 + 红外双模态,YOLO 格式)的数据结构描述:
???
Anti-UAV 双模态无人机检测资料库信息表
项目
内容
资料集名称
Anti-UAV(Visible + Infrared)无人驾驶飞行器检测数据集
资料来源
公开视频资料集
Anti-UAV Challenge
(官方竞赛资料)
模态类型
? 可见光(RGB)图像
? 红外(IR)图像
? 两种模式
时间严格对齐
(每帧同步)
总图像数量(单模态)
9,516 张
(每个模态独立统计)
数据划分(各模态相同)
- 训练集(Train):5,104 张
- 验证集(Val):2,209 张
- 测试集(Test):2,203 张
目标类别
1 类:
?
drone
(小型/微型无人机,含悬浮、飞行、远距离等状态)
标注格式
? YOLO 格式(
.txt
)
? 每张图像对应一个标签文件
? 标注内容:
0 x_center y_center width height
(归一化坐标)
图像预处理
- 视频已抽帧成静态图像
(PNG/JPG)
- 保持原始比例分辨率(常见如 1920×1080、1280×720)
- 标签经过人工校验,定位精确
场景特点
复杂背景:天空、建筑、树林、城市、郊区
小目标为主(多数无人机占图像面积 < 0.5%)
包含运动模糊、低对比度、遮挡、远距离等挑战
红外图像突出热特性,可见光图像依赖纹理与形状
适用任务
单模态无人驾驶飞行器检测(RGB 或 IR)
多模态融合检测(RGB+IR 联合推理)
小目标检测算法研究
边缘设备部署(如无人机反制系统、安防监控)
???
推荐目录结构(双模态)
AntiUAV_Dataset/
├── visible/ # 可见光图像
│ ├── images/
│ │ ├── train/
│ │ ├── val/
│ │ └── test/
│ └── labels/
│ ├── train/
│ ├── val/
│ └── test/
├── infrared/ # 红外图像(结构同上)
│ ├── images/
│ └── labels/
└── antiuav.yaml # YOLO 配置文件(可分别用于 RGB/IR)
???
YOLO 配置文件示例(
antiuav.yaml
)
# antiuav.yaml (适用于可见光或红外任一模态)
path: ./AntiUAV_Dataset/visible # 或 ./infrared
train: images/train
val: images/val
test: images/test
nc: 1
names: ['drone']
此数据集是目前无人驾驶飞行器视觉检测领域最具挑战性和代表性的一个基准数据集,特别适合用于开发高稳定、小目标敏感的检测模型,并已在多个安防与反无人机系统中验证了其有效性。

1

训练指标具体如图(map50-95为0.657的是红外,map50-95为0.713的是可见光)
红外

? 一、完整 YOLOv8 训练代码(Anti-UAV 数据集)
1. 项目结构
AntiUAV_Training/
├── antiuav.yaml
├── train_antiuav.py
├── dataset/
│ ├── visible/
│ │ ├── images/
│ │ └── labels/
│ └── infrared/
└── requirements.txt
2.
requirements.txt
ultralytics==8.2.0
torch>=1.10.0
torchvision>=0.11.0
opencv-python>=4.6.0
numpy>=1.21.0
安装:
pip install -r requirements.txt
3.
antiuav.yaml
(YOLO 配置文件)
# antiuav.yaml
path: ./dataset/visible
train: images/train
val: images/val
test: images/test
nc: 1
names: ['drone']
???? 可替换为
infrared
路径以训练红外模态。
4.
train_antiuav.py
(训练脚本)
# train_antiuav.py
from ultralytics import YOLO
import torch
def main():
device = 'cuda' if torch.cuda.is_available() else 'cpu'
print(f"???? 使用设备: {device}")
# 加载预训练模型(推荐 yolov8s 或 yolov8m)
model = YOLO('yolov8s.pt') # 或 'yolov8m.pt'
# 开始训练
results = model.train(
data='antiuav.yaml',
epochs=100,
imgsz=640, # 输入尺寸
batch=16, # 批次大小(根据 GPU 调整)
name='anti_uav_yolov8s',
device=device,
patience=20, # 早停
save=True,
plots=True,
exist_ok=False,
workers=8,
optimizer='AdamW',
lr0=0.01,
lrf=0.01
)
# 在测试集评估
metrics = model.val(data='antiuav.yaml', split='test')
print(f"\n? 测试集 mAP@0.5: {metrics.box.map50:.4f}")
print(f"? 准确率: {metrics.box.mp:.4f}")
print(f"? 召回率: {metrics.box.mr:.4f}")
if __name__ == '__main__':
main()
运行:
python train_antiuav.py
5. 模型导出(用于部署)
# export_model.py
from ultralytics import YOLO
model = YOLO('runs/detect/anti_uav_yolov8s/weights/best.pt')
model.export(format='onnx', imgsz=640) # 支持 Jetson/RKNN/AI芯片
二、如何出现如此高的 mAP@0.5 = 0.960?
? 正常情况下的高精度原因分析
原因
说明
1. 数据质量优秀
Anti-UAV 数据集标注精细,背景清晰,目标明确,无严重遮挡或模糊
2. 小目标集中
无人机多为远距离小目标,但数据中多数场景下目标清晰可辨,未出现极端模糊
3. 模型性能强
YOLOv8 + 预训练权重(如
yolov8s.pt
)对小目标有良好的泛化能力
4. 数据划分合理
训练/验证/测试集来自不同的视频片段,避免了时间序列泄露
5. 标注一致性佳
同一无人机在连续帧中标注一致,减少噪声
可见光



? 一、完整 YOLOv8 训练代码(Anti-UAV 数据集)
1. 项目结构
AntiUAV_Training/
├── antiuav.yaml
├── train_antiuav.py
├── dataset/
│ ├── visible/
│ │ ├── images/
│ │ └── labels/
│ └── infrared/
└── requirements.txt
2.
requirements.txt
ultralytics==8.2.0
torch>=1.10.0
torchvision>=0.11.0
opencv-python>=4.6.0
numpy>=1.21.0
安装:
pip install -r requirements.txt
3.
antiuav.yaml
(YOLO 配置文件)
# antiuav.yaml
path: ./dataset/visible
train: images/train
val: images/val
test: images/test
nc: 1
names: ['drone']
???? 可替换为
infrared
路径以训练红外模态。
4.
train_antiuav.py
(训练脚本)
# train_antiuav.py
from ultralytics import YOLO
import torch
def main():
device = 'cuda' if torch.cuda.is_available() else 'cpu'
print(f"???? 使用设备: {device}")
# 加载预训练模型(推荐 yolov8s 或 yolov8m)
model = YOLO('yolov8s.pt') # 或 'yolov8m.pt'
# 开始训练
results = model.train(
data='antiuav.yaml',
epochs=100,
imgsz=640, # 输入尺寸
batch=16, # 批大小(根据 GPU 调整)
name='anti_uav_yolov8s',
device=device,
patience=20, # 早停
save=True,
plots=True,
exist_ok=False,
workers=8,
optimizer='AdamW',
lr0=0.01,
lrf=0.01
)
# 在测试集评估
metrics = model.val(data='antiuav.yaml', split='test')
print(f"\n? 测试集 mAP@0.5: {metrics.box.map50:.4f}")
print(f"? 准确率: {metrics.box.mp:.4f}")
print(f"? 召回率: {metrics.box.mr:.4f}")
if __name__ == '__main__':
main()
运行:
python train_antiuav.py
5. 模型导出(用于部署)
# export_model.py
from ultralytics import YOLO
model = YOLO('runs/detect/anti_uav_yolov8s/weights/best.pt')
model.export(format='onnx', imgsz=640) # 支持 Jetson/RKNN/AI芯片