基于 YOLOv11n 的红外多类型无人机目标检测系统 智慧红外飞行检测
智慧红外飞行检测-红外多类别无人机目标检测数据集,6271张,yolo,voc,coco三种标注方式
图像尺寸:640*640
类别数量:2类
训练集图像数量:4390; 验证集图像数量:1255; 测试集图像数量:626
类别名称: 每一类图像数 ,每一类标注数
aircraft‑type_uav-固定翼无人机:592,592
helicopter‑type_uav-直升机式无人机:4162,4191
image num: 6271
模型代码
采用 YOLOv11n 网络训练
训练轮次:80 个 epoch
提供全部训练 + 测试源代码
训练精度 mAP 效果如图所示
PyQt5 界面功能
界面使用 PyQt5 开发,提供全部源码(.ui、.qrc、.py 及图标文件)
支持图片检测、视频检测、摄像头实时检测
界面实时显示:目标位置、目标总数、置信度等信息
支持检测结果保存导出
操作简单直观,无需命令行
附、配套文件(全套完整)
完整数据集:含原始图像、YOLO 格式 txt 标注、VOC 格式 xml 标注、yaml 配置文件
模型程序文件:训练代码 .py、训练好的模型权重 .pt
Qt 界面源码:.ui、.qrc、.py 源码及配套图标资源
程序运行说明文档:程序运行步骤说明指导文档
红外多类别无人机YOLOv11检测项目汇总表+源码+应用场景
一、项目参数详细表格
| 项目参数 | 详细内容 |
|---|---|
| 项目全称 | 基于YOLOv11n的红外多类型无人机目标检测系统 |
| 数据集名称 | 智慧红外飞行检测-红外多类别无人机航拍数据集 |
| 总样本数量 | 6271张红外图像 |
| 单图分辨率 | 640×640 |
| 标注格式 | YOLO txt、VOC xml、COCO JSON 三格式全覆盖 |
| 目标总类别数 | 2类 |
| 数据集划分 | 训练集:4390张 验证集:1255张 测试集:626张 |
| 类别明细(图像数/标注框总数) | 1. aircraft‑type_uav(固定翼无人机):592张图像,592个标注 2. helicopter‑type_uav(直升机无人机):4162张图像,4191个标注 |
| 训练骨干网络 | YOLOv11n(轻量化版本) |
| 训练迭代轮次 | 80 epoch |
| 最终精度指标 | mAP@0.5 = 0.928 固定翼无人机mAP:0.923 直升机无人机mAP:0.933 |
| 可视化客户端 | PyQt5桌面检测界面 |
| 界面检测模式 | 图片检测、本地视频检测、摄像头实时红外画面检测 |
| 界面展示内容 | 检测耗时、目标总数、类别置信度、像素坐标、检测结果表格 |
| 附加功能 | 检测画面与坐标数据本地保存导出 |
二、适用应用场景标签
场景标签
低空安防监控、机场净空防护、边境红外警戒、厂区禁飞管控、森林防火红外值守、夜间反无人机侦测、城市空域安防、电力场站低空防御
场景说明
- 夜间低空反无人机安防:依托红外成像不受光照影响的特性,夜晚无灯光环境下识别闯入禁飞区的固定翼、直升机无人机;
- 机场空域管控:防范黑飞无人机干扰航班起降;
- 边防/野外值守:山林、边境夜间红外巡检,侦测非法飞行器;
- 电厂、油库、军工区域重点低空安防预警;
- 森林防火配套监测:夜间林区巡查同时排查违规航拍无人机。
三、数据集yaml配置文件(dataset.yaml)
path:./infrared_uav_datasettrain:images/trainval:images/valtest:images/testnc:2names:0:aircraft-type_uav1:helicopter-type_uav四、训练简易完整代码 train.py
fromultralyticsimportYOLO# 加载YOLOv11n轻量化预训练权重model=YOLO("yolo11n.pt")# 训练参数设置train_results=model.train(data="dataset.yaml",epochs=80,imgsz=640,batch=16,device=0,# CPU运行改为 device="cpu"patience=12,pretrained=True,mosaic=0.75,save=True,project="infrared_uav_run",name="yolo11n_uav_train")# 训练结束验证整体精度val_metrics=model.val()print(f"总体mAP@0.5:{val_metrics.box.map50:.3f}")五、测试推理简易代码 test.py
fromultralyticsimportYOLO# 载入训练最优权重model=YOLO("infrared_uav_run/yolo11n_uav_train/weights/best.pt")# 测试集整体评估test_res=model.val(split="test")print("====红外无人机测试集精度结果====")print(f"mAP@0.5:{test_res.box.map50:.3f}")print(f"Precision:{test_res.box.p:.3f}| Recall:{test_res.box.r:.3f}")# 单张红外图片推理演示pred=model.predict("test_ir_img.jpg",conf=0.25,save=True)forresinpred:forboxinres.boxes:cls_id=int(box.cls)conf=float(box.conf)xyxy=box.xyxy[0].tolist()cls_name=model.names[cls_id]print(f"目标类别:{cls_name}置信度:{conf:.2f}坐标:{xyxy}")六、PyQt5界面核心运行精简代码
importsysimportcv2importtimefromPyQt5.QtWidgetsimportQApplication,QMainWindow,QFileDialog,QTableWidgetItemfromPyQt5.QtGuiimportQImage,QPixmapfromPyQt5.QtCoreimportQt,QTimerfromultralyticsimportYOLOclassInfraredUavDetectUI(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("基于YOLOv11的红外多类型无人机检测系统")self.resize(1370,960)self.model=YOLO("best.pt")self.timer=QTimer()self.cap=None# 绑定摄像头画面刷新self.timer.timeout.connect(self.video_frame)# 图片检测defdetect_image(self):path,_=QFileDialog.getOpenFileName(self,"选取红外图像","","图片(*.jpg *.png)")ifnotpath:returnstart=time.time()result=self.model.predict(path,conf=0.25)[0]cost=time.time()-start# 绘制检测框img_draw=result.plot()# 画面渲染至窗口h,w,c=img_draw.shape qimg=QImage(img_draw.data,w,h,c*w,QImage.Format_RGB888).rgbSwapped()# 填充坐标、置信度、目标数量数据obj_num=len(result.boxes)print(f"耗时:{cost:.3f}s 目标总数:{obj_num}")# 摄像头实时红外检测defopen_camera(self):self.cap=cv2.VideoCapture(0)self.timer.start(30)defvideo_frame(self):ret,frame=self.cap.read()ifnotret:self.timer.stop()returnres=self.model.predict(frame,conf=0.25)[0]frame=res.plot()defcloseEvent(self,e):ifself.cap:self.cap.release()self.timer.stop()if__name__=="__main__":app=QApplication(sys.argv)win=InfraredUavDetectUI()win.show()sys.exit(app.exec_())