YOLOv8无人机视角火灾烟雾识别 多模态火灾可见光-红外火点和烟雾检测数据集红外可见光配对 双模态输入(多模态)无人机红外可见光火灾烟雾数据集的训练评估及推理
使用 YOLOv8 进行训练无人机视角的可见光-红外配对火点和烟雾检测数据集 双模态输入多模态无人机红外可见光火灾烟雾数据集的训练评估及推理以下文字及代码可供参考。仅供参考。文章目录使用 YOLOv8 进行训练无人机视角的可见光-红外配对火点和烟雾检测数据集 双模态输入多模态无人机红外可见光火灾烟雾数据集的训练评估及推理**1. 环境搭建****2. 数据准备****2.1 数据格式转换COCO 到 YOLO****3. 数据划分****4. 数据配置****5. 模型训练****6. 模型推理****单张图片推理****批量推理****7. 性能评估****8. 多模态数据融合可选****8.1 图像融合****8.2 修改 YOLO 输入****总结**无人机视角可见光-红外配对的火点烟雾检测数据集1200余对可见光-红外图像拍摄森林火灾情况yolo标注1基于无人机视角的可见光-红外配对火点和烟雾检测数据集的详细处理流程。同学使用 YOLOv8 进行训练并附带完整的代码实现。1. 环境搭建确保安装了 Python 和必要的依赖库。推荐使用conda创建虚拟环境。# 安装 conda如果未安装wgethttps://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shbashMiniconda3-latest-Linux-x86_64.sh# 创建虚拟环境conda create-nyolov8_envpython3.9conda activate yolov8_env# 安装 PyTorch 和 torchvisionpipinstalltorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118# CUDA 11.8# 如果没有 GPU可以使用 CPU 版本# pip install torch torchvision torchaudio# 安装 ultralytics (YOLOv8 的官方库)pipinstallultralytics# 其他依赖库pipinstallopencv-python matplotlib numpy只是假设2. 数据准备假设你的数据集已经标注为 YOLO 格式txt 文件每张图片对应一个 txt 文件内容如下class_id x_center y_center width height如果你的数据集是其他格式如 Pascal VOC 或 COCO需要先将其转换为 YOLO 格式。2.1 数据格式转换COCO 到 YOLO如果数据集是 COCO 格式可以使用以下脚本将其转换为 YOLO 格式importosimportjsondefconvert_coco_to_yolo(coco_json,output_dir):os.makedirs(output_dir,exist_okTrue)withopen(coco_json,r)asf:datajson.load(f)images{img[id]:imgforimgindata[images]}annotationsdata[annotations]foranninannotations:img_idann[image_id]img_infoimages[img_id]img_w,img_himg_info[width],img_info[height]bboxann[bbox]# [x_min, y_min, width, height]# 转换为 YOLO 格式x_center(bbox[0]bbox[2]/2)/img_w y_center(bbox[1]bbox[3]/2)/img_h widthbbox[2]/img_w heightbbox[3]/img_h class_idann[category_id]txt_fileos.path.join(output_dir,os.path.splitext(img_info[file_name])[0].txt)withopen(txt_file,a)asf_txt:f_txt.write(f{class_id}{x_center:.6f}{y_center:.6f}{width:.6f}{height:.6f}\n)# 示例调用convert_coco_to_yolo(path/to/coco_annotations.json,path/to/yolo_labels)3. 数据划分按照 8:1:1 的比例划分训练集、验证集和测试集。importosimportrandomimportshutildefsplit_dataset(image_dir,label_dir,output_dir,train_ratio0.8,val_ratio0.1):os.makedirs(os.path.join(output_dir,images/train),exist_okTrue)os.makedirs(os.path.join(output_dir,images/val),exist_okTrue)os.makedirs(os.path.join(output_dir,images/test),exist_okTrue)os.makedirs(os.path.join(output_dir,labels/train),exist_okTrue)os.makedirs(os.path.join(output_dir,labels/val),exist_okTrue)os.makedirs(os.path.join(output_dir,labels/test),exist_okTrue)imagesos.listdir(image_dir)random.shuffle(images)train_splitint(len(images)*train_ratio)val_splitint(len(images)*(train_ratioval_ratio))train_imagesimages[:train_split]val_imagesimages[train_split:val_split]test_imagesimages[val_split:]forimgintrain_images:shutil.copy(os.path.join(image_dir,img),os.path.join(output_dir,images/train,img))shutil.copy(os.path.join(label_dir,os.path.splitext(img)[0].txt),os.path.join(output_dir,labels/train,os.path.splitext(img)[0].txt))forimginval_images:shutil.copy(os.path.join(image_dir,img),os.path.join(output_dir,images/val,img))shutil.copy(os.path.join(label_dir,os.path.splitext(img)[0].txt),os.path.join(output_dir,labels/val,os.path.splitext(img)[0].txt))forimgintest_images:shutil.copy(os.path.join(image_dir,img),os.path.join(output_dir,images/test,img))shutil.copy(os.path.join(label_dir,os.path.splitext(img)[0].txt),os.path.join(output_dir,labels/test,os.path.splitext(img)[0].txt))# 示例调用split_dataset(path/to/images,path/to/labels,path/to/split_data)4. 数据配置创建data.yaml文件定义数据集路径和类别信息train:path/to/split_data/images/trainval:path/to/split_data/images/valtest:path/to/split_data/images/testnc:2# 类别数量火点和烟雾names:[fire,smoke]# 类别名称5. 模型训练使用ultralytics库进行模型训练。fromultralyticsimportYOLO# 加载预训练模型modelYOLO(yolov8n.pt)# 可选择其他模型yolov8s.pt, yolov8m.pt# 配置超参数并训练model.train(datapath/to/data.yaml,epochs100,batch16,imgsz640,device0)# 使用 GPU6. 模型推理训练完成后可以加载模型进行推理。单张图片推理fromultralyticsimportYOLO# 加载训练好的模型modelYOLO(runs/detect/train/weights/best.pt)# 推理单张图片resultsmodel(path/to/image.jpg)# 可视化结果results.show()批量推理fromultralyticsimportYOLO# 加载训练好的模型modelYOLO(runs/detect/train/weights/best.pt)# 批量推理resultsmodel([path/to/image1.jpg,path/to/image2.jpg])# 保存结果fori,rinenumerate(results):r.save(filenamefresult_{i}.jpg)7. 性能评估使用验证集评估模型性能。fromultralyticsimportYOLO# 加载训练好的模型modelYOLO(runs/detect/train/weights/best.pt)# 评估模型metricsmodel.val()# 自动使用验证集print(metrics.box.map)# mAP0.5print(metrics.box.map50)# mAP0.5:0.958. 多模态数据融合可选如果需要结合可见光和红外图像进行多模态学习可以尝试以下方法8.1 图像融合将可见光和红外图像进行特征级或像素级融合importcv2importnumpyasnpdeffuse_images(rgb_image_path,ir_image_path,output_path):rgb_imagecv2.imread(rgb_image_path)ir_imagecv2.imread(ir_image_path,cv2.IMREAD_GRAYSCALE)# 将红外图像转为伪彩色ir_colorcv2.applyColorMap(ir_image,cv2.COLORMAP_JET)# 图像融合fused_imagecv2.addWeighted(rgb_image,0.7,ir_color,0.3,0)# 保存融合图像cv2.imwrite(output_path,fused_image)# 示例调用fuse_images(path/to/rgb.jpg,path/to/ir.jpg,path/to/fused.jpg)8.2 修改 YOLO 输入在训练时可以通过修改输入通道数从 3 改为 6来支持双模态输入。总结从数据准备到模型训练、推理和评估的完整流程。同学你可以根据具体需求调整超参数或数据增强策略以进一步提升模型性能。对于多模态数据建议探索更复杂的融合方法例如深度学习中的多流网络架构。以上文章仅供参考。

相关新闻

WPS修订模式下字体颜色显示异常的解决方案

WPS修订模式下字体颜色显示异常的解决方案

1. 问题现象描述与复现最近在使用WPS文字处理时发现一个影响工作效率的显示问题:在修订模式下修改字体颜色时,虽然实际颜色已经改变,但界面仍然显示为修订状态下的红色标记。这个bug会导致用户在协作编辑文档时产生视觉混淆,无法直…

2026/8/13 5:11:34 阅读更多 →
PE、PB、ROE三大核心财务指标:投资决策的体检报告与实战应用

PE、PB、ROE三大核心财务指标:投资决策的体检报告与实战应用

1. 从三个指标说起:为什么它们是投资的“体检报告”如果你刚开始接触股票投资,面对满屏的数字和图表,可能会觉得无从下手。财报太厚,新闻太多,小道消息又真假难辨。这时候,你需要一套简单、直接、经过时间检…

2026/8/13 5:11:34 阅读更多 →
人形机器人技术解析:从核心模块到工程实践

人形机器人技术解析:从核心模块到工程实践

人形机器人这个赛道,最近有点“冰火两重天”的意思。一边是海外明星公司融资困难、裁员、项目停滞的消息不断;另一边,一份最新的市场报告却显示,2023年全球人形机器人出货量中,中国厂商的占比达到了惊人的97%。这个数字…

2026/8/13 5:10:34 阅读更多 →

最新新闻

从万能密码到SQL注入:原理、靶场实战与安全防御全解析

从万能密码到SQL注入:原理、靶场实战与安全防御全解析

1. 从“万能密码”说起:一个经典的网络安全入门案例如果你刚开始接触网络安全,尤其是Web安全方向,那么“万能密码”几乎是一个绕不开的起点。我第一次在本地靶场里输入admin or 11并成功登录后台时,那种感觉既兴奋又后怕。兴奋的是…

2026/8/13 6:10:49 阅读更多 →
C# Socket通信系统构建:从心跳机制到粘包处理的完整实践

C# Socket通信系统构建:从心跳机制到粘包处理的完整实践

1. 项目概述:从零构建一个健壮的C# Socket通信系统最近在做一个需要设备间稳定通信的项目,Socket编程这个老话题又被我重新捡了起来。虽然现在各种RPC框架、消息队列满天飞,但当你需要处理底层网络字节流、追求极致的可控性和性能&#xff0c…

2026/8/13 6:10:49 阅读更多 →
SmartGit(Git管理工具)

SmartGit(Git管理工具)

链接:https://pan.quark.cn/s/b508cc9d2ae2SmartGit是一款图形化的Git客户端,支持 GitHub、Bitbucket 和 GitLab。该客户端软件允许您以最少的努力访问在线存储库、进行更改和推送新的提交。Git 是一种广泛使用的修订控制系统,它允许程序员有…

2026/8/13 6:10:49 阅读更多 →
C# Socket通信框架实战:心跳机制、异步模型与粘包处理

C# Socket通信框架实战:心跳机制、异步模型与粘包处理

1. 项目概述:从零构建一个健壮的C# Socket通信系统在分布式系统、物联网设备对接或者简单的进程间通信场景里,Socket编程是绕不开的基础。很多朋友一提到Socket,可能立刻想到的是“粘包”、“断线”、“并发”这些让人头疼的问题。确实&#…

2026/8/13 6:10:49 阅读更多 →
Takin全链路压测平台核心架构解析:从Web控制台到大数据模块的协同实战

Takin全链路压测平台核心架构解析:从Web控制台到大数据模块的协同实战

1. 项目概述:Takin平台的核心协同架构最近在排查一个线上压测任务失败的问题时,我再次深刻体会到,对于一个像Takin这样集成了压测引擎、数据采集、实时监控和智能分析于一体的全链路压测平台,理解其内部各核心组件的协同工作机制是…

2026/8/13 6:10:49 阅读更多 →
数学建模竞赛机理驱动建模:从物理原理到数值求解的实战指南

数学建模竞赛机理驱动建模:从物理原理到数值求解的实战指南

1. 赛题核心:从“数据驱动”到“机理驱动”的范式跃迁 2025年的全国大学生数学建模竞赛C题,不出意外地再次成为了赛后的焦点话题。作为一名参与过多次建模竞赛指导、也看过无数优秀论文的“老油条”,我今年对C题的感受尤为深刻。如果说前几年…

2026/8/13 6:09:49 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者,或者正准备踏入这个领域,那么Visual Studio(后面简称VS)绝对是你绕不开的伙伴。但有时候,这个伙伴会跟你开一个不大不小的玩笑:你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →