基于 YOLOv11 红外空中小目标检测系统 红外图像下极小目标检测数据集
红外图像下极小目标检测数据集8302张部分图像存在噪声增强提供yolo和voc两种标注方式4类标注数量Plane:飞机 2163Drone:无人机 3120Heli:直升机 2217Bird:鸟类 1958image num: 83022.模型代码模型训练使用yolov11n训练30个epoch训练结果map如描述图所示。3.qt界面运行界面采用pyqt编写本项目已经训练好模型配置好环境后可直接使用运行效果见描述图像基于YOLOv11 红外空中小目标检测系统完整代码PyQt界面对应你图片项目Drone、Plane、Heli、Bird四类1、环境安装pipinstallultralytics opencv-python pyqt5 numpy pillow2、数据集配置文件ir_air_target.yamlpath:./ir_datasettrain:images/trainval:images/valtest:images/testnames:0:Drone1:Plane2:Heli3:Bird3、模型训练脚本train.pyfromultralyticsimportYOLOif__name____main__:modelYOLO(yolo11n.pt)resultsmodel.train(datair_air_target.yaml,epochs80,imgsz640,batch8,device0,conf0.25)4、PyQt5主程序main.pyimportsysimportcv2fromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QFileDialog,QMessageBox,QTableWidgetItem)fromPyQt5.QtGuiimportQPixmap,QImagefromPyQt5.QtCoreimportQtfromultralyticsimportYOLOfromui_mainimportUi_MainWindowclassIRDetectWindow(QMainWindow,Ui_MainWindow):def__init__(self):super().__init__()self.setupUi(self)self.modelYOLO(runs/detect/train/weights/best.pt)self.result_imgNone# 绑定按钮self.btn_img.clicked.connect(self.open_image)self.btn_video.clicked.connect(self.open_video)self.btn_save.clicked.connect(self.save_result)defopen_image(self):file_path,_QFileDialog.getOpenFileName(self,选择红外图片,,图片(*.jpg *.png *.jpeg))ifnotfile_path:returnsrccv2.imread(file_path)resself.model(src)[0]self.show_result(res,src,file_path)defshow_result(self,res,src_img,file_path):self.result_imgres.plot()rgbcv2.cvtColor(self.result_img,cv2.COLOR_BGR2RGB)h,w,crgb.shape qimgQImage(rgb.data,w,h,c*w,QImage.Format_RGB888)self.label_img.setPixmap(QPixmap.fromImage(qimg).scaled(self.label_img.size(),Qt.KeepAspectRatio))self.tableWidget.setRowCount(0)forboxinres.boxes:cls_idint(box.cls)cls_nameself.model.names[cls_id]conffloat(box.conf)x1,y1,x2,y2map(int,box.xyxy[0])rowself.tableWidget.rowCount()self.tableWidget.insertRow(row)self.tableWidget.setItem(row,0,QTableWidgetItem(str(row1)))self.tableWidget.setItem(row,1,QTableWidgetItem(file_path))self.tableWidget.setItem(row,2,QTableWidgetItem(cls_name))self.tableWidget.setItem(row,3,QTableWidgetItem(f{conf:.3f}))self.tableWidget.setItem(row,4,QTableWidgetItem(f[{x1},{y1},{x2},{y2}]))# 右侧面板赋值self.le_xmin.setText(str(x1))self.le_ymin.setText(str(y1))self.le_xmax.setText(str(x2))self.le_ymax.setText(str(y2))self.le_conf.setText(f{conf*100:.2f}%)self.le_count.setText(str(len(res.boxes)))defopen_video(self):QMessageBox.information(self,提示,支持红外视频流推理可自行接入红外相机)defsave_result(self):ifself.result_imgisNone:QMessageBox.warning(self,警告,无检测结果)returnsave_path,_QFileDialog.getSaveFileName(self,保存结果图,,*.jpg)ifsave_path:cv2.imwrite(save_path,self.result_img)QMessageBox.information(self,完成,图片保存成功)if__name____main__:appQApplication(sys.argv)winIRDetectWindow()win.show()sys.exit(app.exec())5、UI界面代码ui_main.pyfromPyQt5importQtCore,QtGui,QtWidgetsclassUi_MainWindow(object):defsetupUi(self,MainWindow):MainWindow.setObjectName(MainWindow)MainWindow.resize(1300,900)self.centralwidgetQtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName(centralwidget)# 图片显示区self.label_imgQtWidgets.QLabel(self.centralwidget)self.label_img.setGeometry(QtCore.QRect(20,60,750,600))self.label_img.setStyleSheet(background:#fff;border:1px solid #666)# 文件导入分组self.groupBox_fileQtWidgets.QGroupBox(self.centralwidget)self.groupBox_file.setGeometry(QtCore.QRect(820,50,420,220))self.groupBox_file.setTitle(文件导入)self.btn_imgQtWidgets.QPushButton(self.groupBox_file)self.btn_img.setGeometry(QtCore.QRect(20,30,160,30))self.btn_img.setText(选择图片)self.btn_videoQtWidgets.QPushButton(self.groupBox_file)self.btn_video.setGeometry(QtCore.QRect(20,70,160,30))self.btn_video.setText(选择视频文件)# 检测结果分组self.groupBox_resQtWidgets.QGroupBox(self.centralwidget)self.groupBox_res.setGeometry(QtCore.QRect(820,300,420,320))self.groupBox_res.setTitle(检测结果)# 目标数量self.label_countQtWidgets.QLabel(self.groupBox_res)self.label_count.setGeometry(QtCore.QRect(20,30,120,25))self.label_count.setText(目标数目)self.le_countQtWidgets.QLineEdit(self.groupBox_res)self.le_count.setGeometry(QtCore.QRect(130,30,100,25))# 置信度self.label_confQtWidgets.QLabel(self.groupBox_res)self.label_conf.setGeometry(QtCore.QRect(20,70,100,25))self.label_conf.setText(置信度)self.le_confQtWidgets.QLineEdit(self.groupBox_res)self.le_conf.setGeometry(QtCore.QRect(100,70,120,25))# 坐标self.label_xminQtWidgets.QLabel(self.groupBox_res)self.label_xmin.setGeometry(QtCore.QRect(20,110,60,25))self.label_xmin.setText(xmin:)self.le_xminQtWidgets.QLineEdit(self.groupBox_res)self.le_xmin.setGeometry(QtCore.QRect(80,110,80,25))self.label_yminQtWidgets.QLabel(self.groupBox_res)self.label_ymin.setGeometry(QtCore.QRect(180,110,60,25))self.label_ymin.setText(ymin:)self.le_yminQtWidgets.QLineEdit(self.groupBox_res)self.le_ymin.setGeometry(QtCore.QRect(240,110,80,25))self.label_xmaxQtWidgets.QLabel(self.groupBox_res)self.label_xmax.setGeometry(QtCore.QRect(20,150,60,25))self.label_xmax.setText(xmax:)self.le_xmaxQtWidgets.QLineEdit(self.groupBox_res)self.le_xmax.setGeometry(QtCore.QRect(80,150,80,25))self.label_ymaxQtWidgets.QLabel(self.groupBox_res)self.label_ymax.setGeometry(QtCore.QRect(180,150,60,25))self.label_ymax.setText(ymax:)self.le_ymaxQtWidgets.QLineEdit(self.groupBox_res)self.le_ymax.setGeometry(QtCore.QRect(240,150,80,25))self.btn_saveQtWidgets.QPushButton(self.groupBox_res)self.btn_save.setGeometry(QtCore.QRect(30,200,140,35))self.btn_save.setText(保存)self.btn_exitQtWidgets.QPushButton(self.groupBox_res)self.btn_exit.setGeometry(QtCore.QRect(190,200,140,35))self.btn_exit.setText(退出)# 底部结果表格self.tableWidgetQtWidgets.QTableWidget(self.centralwidget)self.tableWidget.setGeometry(QtCore.QRect(20,680,1220,180))self.tableWidget.setColumnCount(5)self.tableWidget.setHorizontalHeaderLabels([序号,文件路径,类别,置信度,坐标位置])MainWindow.setCentralWidget(self.centralwidget)self.menubarQtWidgets.QMenuBar(MainWindow)MainWindow.setMenuBar(self.menubar)self.statusbarQtWidgets.QStatusBar(MainWindow)MainWindow.setStatusBar(self.statusbar)QtCore.QMetaObject.connectSlotsByName(MainWindow)6、单独推理脚本 predict.pyfromultralyticsimportYOLO modelYOLO(runs/detect/train/weights/best.pt)resmodel.predict(sourcetest_ir.jpg,saveTrue)标题YOLOv11红外空中小目标检测数据集4分类Drone/Plane/Heli/Bird带PyQt可视化界面mAP0.50.855正文红外远距离空中小目标检测数据集包含无人机Drone、飞机Plane、直升机Heli、鸟类Bird四类目标图片为红外灰度图大量远距离弱小目标、云雾噪声、建筑背景干扰。标注YOLO TXTVOC XML双标注YOLOv11n训练80epoch整体mAP0.50.855Bird类精度最高0.928。配套完整工程训练代码、推理代码、训练权重、PyQt5可视化检测软件支持图片检测自动输出目标类别、置信度、坐标信息一键保存带框结果图输出PR曲线评估图。适用场景低空安防、远距离红外预警、反无人机监测、毕业设计、算法研发。适用人群计算机视觉算法工程师、安防项目、高校学生。

相关新闻

BTK抑制剂在B细胞恶性肿瘤治疗中的演进与优化

BTK抑制剂在B细胞恶性肿瘤治疗中的演进与优化

1. 靶向治疗时代的BTK抑制剂演进在B细胞恶性肿瘤治疗领域,布鲁顿酪氨酸激酶(BTK)作为B细胞受体信号通路的关键调控分子,已成为血液肿瘤靶向治疗的重要靶点。第一代BTK抑制剂伊布替尼的问世改变了套细胞淋巴瘤(MCL&…

2026/10/18 5:29:23 阅读更多 →
北洛秘境:地质奇观与生态旅游全攻略

北洛秘境:地质奇观与生态旅游全攻略

1. 北洛秘境的地理奇观与生态价值北洛秘境最引人注目的莫过于其独特的地貌组合——碧蓝海湾与陡峭悬崖的强烈对比。这种地质构造在海岸线中实属罕见,据地质学家考证,其形成可追溯至第四纪冰川运动时期。当冰川消退后,海平面上升侵蚀了较软的沉…

2026/10/18 12:27:55 阅读更多 →
文本检测前的方向矫正:提升OCR鲁棒性的关键预处理

文本检测前的方向矫正:提升OCR鲁棒性的关键预处理

1. 为什么一张图拍歪了,文本检测就“认不出字”?你有没有试过用手机随手拍一张发票、一张手写笔记、一张超市小票,然后丢进某个OCR工具里——结果返回一片空白,或者只识别出左上角几个字?不是模型不行,也不…

2026/10/18 13:58:45 阅读更多 →

最新新闻

微信小程序AI聊天源码:流式输出与LLM对接实战

微信小程序AI聊天源码:流式输出与LLM对接实战

简介:这份资源是一套微信小程序AI聊天页面的完整前端源码,面向希望快速上手小程序对接大语言模型的开发者与学习者,尤其适合想体验AI对话能力、验证人设设定效果的入门到中级人员。压缩包共6个文件,约386KB,包含wxml页…

2026/10/18 23:26:29 阅读更多 →
artcraft:降低创作门槛的数字化工具技术路线与实战经验

artcraft:降低创作门槛的数字化工具技术路线与实战经验

1. 从“artcraft”这个名字说起:它到底想解决什么问题第一次看到“artcraft”这个词,我脑子里蹦出来的第一反应是“艺术”加“手艺”的组合。这不是一个随便拼凑的名字,它背后指向的是一类非常具体的需求:把艺术创作和手工制作这两…

2026/10/18 23:26:29 阅读更多 →
酒店评论情感分析系统:基于逻辑回归与XGBoost的Flask应用

酒店评论情感分析系统:基于逻辑回归与XGBoost的Flask应用

简介:这是一份面向计算机相关专业学生和开发者的酒店评论情感分析系统项目,可用于毕业设计或课程作业。项目基于机器学习与自然语言处理技术,内置Flask Web应用程序,用户输入评论文本即可获得情感预测结果,同时提供了逻…

2026/10/18 23:26:29 阅读更多 →
Cursor 怎样设置中文:把界面语言改到 TaoToken 的完整配置与验证

Cursor 怎样设置中文:把界面语言改到 TaoToken 的完整配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 23:26:29 阅读更多 →
电商评论情感分析:Python实战笔记,从数据清洗到模型调优

电商评论情感分析:Python实战笔记,从数据清洗到模型调优

简介:基于Python的电商买家评论情感分析课程设计项目,包含源码、模型、数据集与完整注释,专为计算机相关专业学生、教师及企业人员设计,适合课程作业、毕业设计及项目初期演示。代码已测试可稳定运行,答辩平均分达94.5…

2026/10/18 23:25:28 阅读更多 →
AI编码安全边界:从Git Hook到CI的防护规则设计

AI编码安全边界:从Git Hook到CI的防护规则设计

我最近做代码评审,看到一份非常典型的 AI 生成 MR:支付回调里加了日志,逻辑挑不出大毛病,但它顺手把整个 header 对象打了出来。如果合入,access token 会跟着日志一起流进日志系统。这不是个例,而是 AI 编…

2026/10/18 23:25:28 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →