智能检测小目标无人机、飞机、直升机检测数据集、摄像头视频图片检测、低空安防数据集、反无人机数据集小目标检测、无人机检测、飞机检测、直升机检测、低空目标识别、安防目标检测、飞行器检测数据集

发布时间:2026/7/17 22:52:37
智能检测小目标无人机、飞机、直升机检测数据集、摄像头视频图片检测、低空安防数据集、反无人机数据集小目标检测、无人机检测、飞机检测、直升机检测、低空目标识别、安防目标检测、飞行器检测数据集 智能检测小目标无人机、飞机、直升机检测数据集11998张yolo和voc两种标注方式图像尺寸:512*512类别数量:3类训练集图像数量:10799; 验证集图像数量:603 测试集图像数量:596类别名称: 每一类图像数 每一类标注数AirPlane: 2535,2535Drone: 4728,4812Helicopter: 2523,2628image num: 11998一、数据集信息表格1.1 基础信息表项目详细内容数据集名称小目标无人机、飞机、直升机检测数据集总图像数量11998 张图像分辨率512×512标注格式YOLO、VOC 双格式类别总数3 类训练集10799 张验证集603 张测试集596 张适配模型YOLOv11n轻量模型推荐训练轮数50 epoch运行环境Python 3.8、OpenCV、PyTorch、PyQt5模型代码提供全部训练及测试源代码模型训练使用yolov11n训练50个epoch训练结果map如描述图所示。qt界面运行界面采用pyqt5编写 提供全部源代码支持图片、视频及摄像头进行检测: 界面可实时显示目标位置、目标总数、置信度等信息: 支持检测结果保存;本项目已经训练好模型配置好环境后可直接使用运行效果见描述图像系统环境python3.8 opencv-python PyQt5 torch文件1.完整的数据集文件包括图像yolo格式的txt文件、yaml文件voc格式的xml文件等2.模型代码完整程序文件.py .pt等)3.qt界面源文件、图标.ui、.qrc、.py等1.2 类别标注明细序号英文类别中文类别含该类别图像数标注框总数0AirPlane固定翼飞机253525351Drone无人机472848122Helicopter直升机252326281.3 YOLO 类别列表names[AirPlane,Drone,Helicopter]二、应用场景低空安防监测园区、机场、军事区域、重要场馆低空目标预警识别违规无人机、飞行器。空域管控城市空域、机场净空区智能巡检自动统计飞行器数量、类型。视觉算法研发小目标检测算法训练、对比实验、学术研究、竞赛使用。嵌入式/边缘部署安防摄像头、无人机反制设备、便携巡检终端本地检测。可视化检测系统搭配PyQt界面做成桌面客户端用于日常巡检、演示、项目落地。三、YOLOv11n 全套训练代码3.1 环境依赖# Python 3.8 环境执行pipinstallultralytics torch opencv-python PyQt5 numpy pillow3.2 数据集配置文件aircraft.yamlpath:./aircraft_datasettrain:images/trainval:images/valtest:images/testnc:3names:0:AirPlane1:Drone2:Helicopter3.3 训练代码train.py固定 50 epochfromultralyticsimportYOLOdeftrain_aircraft():# 加载YOLOv11n轻量化模型modelYOLO(yolov11n.yaml)# 训练参数model.train(dataaircraft.yaml,epochs50,imgsz512,batch16,device0,# CPU运行改为 devicecpuworkers4,patience10,ampTrue,mosaic1.0,projectruns/train,nameaircraft_det,exist_okTrue)print(训练完成最优模型已保存至 runs/train/aircraft_det/weights/best.pt)if__name____main__:train_aircraft()3.4 纯模型推理代码predict.pyfromultralyticsimportYOLO# 加载训练好的权重modelYOLO(runs/train/aircraft_det/weights/best.pt)# 单张图片检测# res model(test.jpg, saveTrue, conf0.25)# 图片文件夹批量检测# res model(./test_imgs/, saveTrue, conf0.25)# 视频检测# res model(test.mp4, saveTrue, conf0.25)# 本地摄像头实时检测resmodel(0,saveTrue,conf0.25)3.5 数据集目录结构aircraft_dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ ├── labels/ # YOLO txt 标注文件 │ ├── train/ │ ├── val/ │ └── test/ ├── voc_labels/ # VOC xml 标注文件 └── aircraft.yaml四、PyQt5 可视化检测界面完整代码4.1 UI 布局简化版可自行用Qt Designer编辑.ui文件4.1.1 主界面代码ui_main.pyimportsysimportcv2importosfromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QPushButton,QLabel,QFileDialog,QTextEdit,QVBoxLayout,QWidget,QHBoxLayout)fromPyQt5.QtGuiimportQImage,QPixmapfromPyQt5.QtCoreimportQt,QThread,pyqtSignalfromultralyticsimportYOLO# 推理子线程防止界面卡顿classDetectThread(QThread):signal_imgpyqtSignal(object)signal_infopyqtSignal(str)def__init__(self,model,source,save_path):super().__init__()self.modelmodel self.sourcesource self.save_pathsave_path self.runningTruedefrun(self):ifnotos.path.exists(self.save_path):os.makedirs(self.save_path)idx0# 视频/摄像头推理capcv2.VideoCapture(self.source)whileself.running:ret,framecap.read()ifnotret:breakresultsself.model(frame,conf0.25)res_frameresults[0].plot()# 统计目标cls_count{}forboxinresults[0].boxes.cls:cls_nameself.model.names[int(box)]cls_count[cls_name]cls_count.get(cls_name,0)1totalsum(cls_count.values())info_textf目标总数{total}| 类别统计{str(cls_count)}self.signal_img.emit(res_frame)self.signal_info.emit(info_text)# 保存结果save_nameos.path.join(self.save_path,fres_{idx}.jpg)cv2.imwrite(save_name,res_frame)idx1cap.release()defstop_thread(self):self.runningFalse# 主窗口classMainWindow(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle(飞行器目标检测系统)self.resize(1200,800)# 加载训练好的模型self.modelYOLO(runs/train/aircraft_det/weights/best.pt)self.detect_threadNoneself.save_dir./detect_result# 布局main_widgetQWidget()self.setCentralWidget(main_widget)main_layoutQHBoxLayout(main_widget)# 左侧显示区域self.img_labelQLabel()self.img_label.setAlignment(Qt.AlignCenter)self.img_label.setStyleSheet(background-color:#000;)main_layout.addWidget(self.img_label,3)# 右侧控制区域right_widgetQWidget()right_layoutQVBoxLayout(right_widget)self.btn_imgQPushButton(打开图片检测)self.btn_videoQPushButton(打开视频检测)self.btn_cameraQPushButton(开启摄像头)self.btn_stopQPushButton(停止检测)self.info_textQTextEdit()self.info_text.setReadOnly(True)# 绑定事件self.btn_img.clicked.connect(self.detect_image)self.btn_video.clicked.connect(self.detect_video)self.btn_camera.clicked.connect(self.detect_camera)self.btn_stop.clicked.connect(self.stop_detect)right_layout.addWidget(self.btn_img)right_layout.addWidget(self.btn_video)right_layout.addWidget(self.btn_camera)right_layout.addWidget(self.btn_stop)right_layout.addWidget(QLabel(检测信息))right_layout.addWidget(self.info_text)main_layout.addWidget(right_widget,1)defshow_frame(self,frame):rgbcv2.cvtColor(frame,cv2.COLOR_BGR2RGB)h,w,chrgb.shape bytes_per_linech*w qt_imgQImage(rgb.data,w,h,bytes_per_line,QImage.Format_RGB888)self.img_label.setPixmap(QPixmap.fromImage(qt_img).scaled(self.img_label.size(),Qt.KeepAspectRatio))defshow_info(self,text):self.info_text.append(text)defstart_thread(self,source):self.stop_detect()self.detect_threadDetectThread(self.model,source,self.save_dir)self.detect_thread.signal_img.connect(self.show_frame)self.detect_thread.signal_info.connect(self.show_info)self.detect_thread.start()defdetect_image(self):path,_QFileDialog.getOpenFileName(self,选择图片,,Image Files(*.jpg *.png *.jpeg))ifpath:imgcv2.imread(path)resself.model(img,conf0.25)res_imgres[0].plot()self.show_frame(res_img)# 统计信息cls_count{}forboxinres[0].boxes.cls:cls_nameself.model.names[int(box)]cls_count[cls_name]cls_count.get(cls_name,0)1totalsum(cls_count.values())self.info_text.append(f图片检测 | 目标总数{total}|{cls_count})# 保存ifnotos.path.exists(self.save_dir):os.makedirs(self.save_dir)cv2.imwrite(os.path.join(self.save_dir,img_result.jpg),res_img)defdetect_video(self):path,_QFileDialog.getOpenFileName(self,选择视频,,Video Files(*.mp4 *.avi))ifpath:self.start_thread(path)defdetect_camera(self):self.start_thread(0)defstop_detect(self):ifself.detect_threadandself.detect_thread.isRunning():self.detect_thread.stop_thread()self.detect_thread.quit()self.detect_thread.wait()defcloseEvent(self,event):self.stop_detect()event.accept()if__name____main__:appQApplication(sys.argv)winMainWindow()win.show()sys.exit(app.exec_())五、项目文件清单数据集文件11998张 512×512 图像YOLO 格式.txt标签、VOC 格式.xml标签数据集配置aircraft.yaml模型代码文件train.py训练脚本predict.py推理脚本训练完成权重best.pt/last.ptPyQt5 界面文件ui_main.py主程序代码可选.ui界面文件、图标资源.qrc环境说明运行环境Python 3.8 torch ultralytics opencv-python PyQt5支持系统Windows、LinuxCPU版本