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/10/1 11:51:32 阅读更多 →
PE、PB、ROE三大核心财务指标:投资决策的体检报告与实战应用

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

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

2026/9/30 6:13:10 阅读更多 →
人形机器人技术解析:从核心模块到工程实践

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

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

2026/9/29 23:00:18 阅读更多 →

最新新闻

去蜂窝网络:6G时代如何消除小区边界,重塑无线接入

去蜂窝网络:6G时代如何消除小区边界,重塑无线接入

“蜂窝网络”这个词,通信圈的人用了快四十年,早就习以为常。但你有没有想过,我们现在做的每一次切换、每一次小区边缘掉速、每一次基站间握手协调,本质上都是在为“格子”买单。构建一个把小区边界彻底抹掉、让覆盖区域内所有接入…

2026/10/2 22:04:12 阅读更多 →
浏览器端视觉AI实战:Web Worker与WebGL加速推理

浏览器端视觉AI实战:Web Worker与WebGL加速推理

1. 端侧视觉 AI 的工程真相:为什么要把神经网络塞进浏览器标签页 第一次听到“把神经网络塞进浏览器标签页”这个说法,很多人脑子里浮现的画面可能是:打开一个网页,摄像头一开,框框就自动画出来了,全程不联…

2026/10/2 22:04:11 阅读更多 →
浏览器端侧视觉AI实战:模型量化、Web Worker与WebGL加速

浏览器端侧视觉AI实战:模型量化、Web Worker与WebGL加速

1. 为什么要在浏览器里跑神经网络 第一次听到“把神经网络塞进浏览器标签页”这个说法,很多人的第一反应是:这不是自找麻烦吗?服务器上挂一块推理卡,前端发个请求拿结果,多省事。我一开始也是这么想的,直到…

2026/10/2 22:04:11 阅读更多 →
去蜂窝网络:告别小区边界,全域协同的无线接入新架构

去蜂窝网络:告别小区边界,全域协同的无线接入新架构

过去十年,移动通信一直在干一件事:把“蜂窝”这块招牌越擦越亮。从 4G 到 5G,各类天线技术、编码方案、网络优化手段全都围着“小区”这个概念转。但现在业内讨论度迅速升温的去蜂窝网络技术,直接把“格子”给拆了——不划小区&am…

2026/10/2 22:04:11 阅读更多 →
cmid医学数据提取JSON:从源文件解析到结构化输出的完整实践

cmid医学数据提取JSON:从源文件解析到结构化输出的完整实践

简介:这是一个面向医学信息化与科研分析场景的CMID医学数据提取JSON数据文件,适合处理临床信息、电子病历或构建医疗数据接口的数据工程师与研究人员使用。该JSON文件以键值对形式组织,完整呈现患者基本信息、病史记录、检验结果、影像资料等…

2026/10/2 22:04:11 阅读更多 →
DeepSeek Harness桌面端实战:30分钟搭建AI工作流与插件配置指南

DeepSeek Harness桌面端实战:30分钟搭建AI工作流与插件配置指南

1. 为什么我决定花30分钟试一把 DSH 桌面端第一次看到 DeepSeek Harness 这个名字,我下意识以为又是一个套壳聊天客户端。真正让我动手的原因,是那段时间我手头同时压着三件事:一份要整理成结构化笔记的 PDF 技术白皮书、一批需要批量改写的产…

2026/10/2 22:03:11 阅读更多 →

日新闻

从零搭建AI工程化:模型之外的完整闭环

从零搭建AI工程化:模型之外的完整闭环

先搞清楚一件事:从零开始做 AI 工程化,难的从来不是调模型、写提示词,而是把一套原型 Demo 变成长得像是“正经系统”的东西。你手里可能已经有了能跑通的代码,也可能刚读完一些概念,但真到了要把它变成可维护、可观测…

2026/10/2 0:00:20 阅读更多 →
大模型训练显存估计与混合精度训练实战指南

大模型训练显存估计与混合精度训练实战指南

1. 大模型训练显存估计与混合精度训练详解显存不够用,几乎是每个做大模型训练的人都会撞上的第一堵墙。你可能也经历过:模型代码写完了,数据管道跑通了,满心欢喜地按下训练启动脚本,结果几秒钟后终端弹出一行红字——C…

2026/10/2 0:00:20 阅读更多 →
小样本学习数据集选型指南:27个真正可用的高质量数据集

小样本学习数据集选型指南:27个真正可用的高质量数据集

1. 小样本学习的“弹药库”:为什么你总在找数据集,却总找不到真正能用的? 小样本、数据集——这两个词最近半年在我处理的200多个AI项目咨询里,出现频率排进前三。不是模型调不好,不是代码写不对,而是卡在…

2026/10/2 0:00:20 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/2 10:36:31 阅读更多 →
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/2 5:26:06 阅读更多 →
黑夜航拍船只数据集训练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/2 6:09:11 阅读更多 →