****摘要:****本研究针对火灾早期预警检测需求,采用在Kaggle平台获取数据、采用云计算部署的方式,以YOLOv11构建模型,使用云计算服务器训练模型。经训练,box loss从约3.5降至1.0,cls loss从约4.0降至1.0,dfl loss从约4.0降至0.2,精确率达0.8,召回率近1.0,mAP@0.5为0.875,表明模型性能良好,可用于火灾早期检测并为相关安防领域提供借鉴,发生火灾时火焰能够被及时检测到,最大限度地保障人员生命和财产安全。
****关键词:****火灾检测;YOLOv11;云计算;大数据;目标检测
更多人工智能项目,专栏介绍与说明:
目录
[1.1 问题重述](#1.1 问题重述)
[1.2 问题分析](#1.2 问题分析)
[1.2.1 火灾的危害与早期检测的重要性](#1.2.1 火灾的危害与早期检测的重要性)
[1.2.2 现有火灾探测技术手段的分析](#1.2.2 现有火灾探测技术手段的分析)
[1.2.3 基于深度学习的火焰检测方法的研究热点](#1.2.3 基于深度学习的火焰检测方法的研究热点)
[2.1 研究点假设](#2.1 研究点假设)
[2.1.1 数据集假设](#2.1.1 数据集假设)
[2.1.2 云计算平台假设](#2.1.2 云计算平台假设)
[2.1.3 模型假设](#2.1.3 模型假设)
[2.2 符号定义](#2.2 符号定义)
[2.2.1 与模型性能评估相关的符号](#2.2.1 与模型性能评估相关的符号)
[2.2.2 与模型训练和损失函数相关的符号](#2.2.2 与模型训练和损失函数相关的符号)
[3.1 研究点建立的依据](#3.1 研究点建立的依据)
[3.2 研究方法及过程](#3.2 研究方法及过程)
[3.2.1 大数据获取](#3.2.1 大数据获取)
[3.2.2 项目工程建立](#3.2.2 项目工程建立)
[3.2.3 数据集载入](#3.2.3 数据集载入)
[3.2.3 云计算部署](#3.2.3 云计算部署)
[3.2.4 模型训练](#3.2.4 模型训练)
[3.3 简要的计算方法](#3.3 简要的计算方法)
[3.3.1 损失函数计算](#3.3.1 损失函数计算)
[3.3.2 性能指标计算](#3.3.2 性能指标计算)
[4.1 模型训练指标分析](#4.1 模型训练指标分析)
[4.2 精确率-召回率曲线分析](#4.2 精确率-召回率曲线分析)
[4.3 结果带入原问题分析](#4.3 结果带入原问题分析)
[4.4 引申分析](#4.4 引申分析)
一、问题的提出及分析
1.1 问题重述
火灾是一种极具危险性的灾害,其发生往往伴随着严重的人员伤亡和巨大的财产损失。在火灾发生的早期阶段,如果能够迅速且准确地检测到火焰的出现,对于及时采取灭火措施、保障生命财产安全至关重要。目前,虽然已经存在多种火灾检测方法,但在实际应用中都存在一定的局限性。如何利用云计算与大数据技术,提高火灾火焰目标检测的准确性和时效性,成为一个亟待解决的问题。
1.2 问题分析
1.2.1 火灾的危害与早期检测的重要性
火灾具有突发性,往往在毫无征兆的情况下发生。一旦起火,火势会以极快的速度蔓延,这是由于火灾现场通常存在大量易燃物,而且火焰燃烧产生的热量会加速周围物质的燃烧。例如,在一些大型商场、仓库等场所,一旦发生火灾,几分钟内就可能蔓延到整个区域。
破坏性强是火灾的另一个显著特点。除了直接烧毁建筑物、设备和货物等物质财富外,火灾产生的浓烟还会对人体造成严重伤害,如导致呼吸道灼伤、中毒甚至窒息。据统计,在许多火灾事故中,因浓烟导致的伤亡人数占总伤亡人数的很大比例[1]。
正是因为火灾的这些特性,所以在早期阶段检测到火焰并及时报警和扑救,能够大大降低火灾造成的损失。早期检测可以为人员疏散争取时间,也能让消防人员在火势较小的时候更容易控制火势。
1.2.2 现有火灾探测技术手段的分析
基于环境物理、化学参数变化的探测方法。这种方法主要是通过各种传感器来探测火灾发生时周围环境产生的物理和化学变化[2]。例如,烟雾探测器通过检测空气中的烟雾颗粒浓度来判断是否发生火灾;温度探测器则是感知环境温度的异常升高;一氧化碳探测器则是针对火灾中产生的一氧化碳气体进行监测;红外火焰探测器和紫外火焰探测器是利用火焰产生的特定波段的红外或紫外辐射来识别火焰[3]。这些探测器在许多场所都有广泛应用,如家庭、办公楼、工厂等。然而,这种探测方法存在诸多缺点。首先,它受周围环境影响极大。例如,在厨房等容易产生烟雾的环境中,烟雾探测器可能会因为烹饪产生的烟雾而误报警;在高温环境下,温度探测器可能会出现误判。其次,这种方法的误报率较高,除了环境因素导致误报外,探测器本身的故障也可能导致误报。此外,由于这种探测方式需要等到环境参数发生一定程度的变化才能报警,所以报警速度相对较慢[4]。
基于深度学习的视频图像火焰识别方法。该方法是基于深度学习算法,尤其是卷积神经网络(CNN)[5]。其基本原理是通过对大量带有火焰标注的视频图像数据进行学习,让模型能够自动提取火焰的特征,如火焰的颜色、形状、纹理等,进而对视频中的火焰进行识别。这种方法的优点非常明显,检测速度快,能够在短时间内对视频中的火焰进行判断;精准度高,相比传统方法,它能够更准确地识别火焰;不易受环境干扰,因为它是基于火焰本身的视觉特征进行识别,而不是环境参数[6]。而且,这种方法可以很好地与现有的视频监控系统集成,实现火灾检测的智能化,例如在城市的监控系统中应用,可以对大面积区域进行实时的火灾监测。尽管基于深度学习的视频图像火焰识别方法具有诸多优势,但在实际应用中也面临一些问题。一方面,深度学习模型的性能很大程度上依赖于训练数据的质量和数量。如果训练数据不能很好地涵盖各种实际火灾场景,模型的泛化能力就会受到影响[7]。另一方面,这种方法对硬件有一定的要求。模型的训练和运行需要大量的计算资源,包括强大的CPU、GPU以及足够的内存等。在一些硬件条件较差的场所,可能无法实现这种方法的有效应用。
1.2. 3 基于深度学习的火焰检测方法的研究热点
近年来,随着计算机硬件性能的不断提升,目标检测算法得到了快速发展。在火焰检测领域,YOLO系列算法受到了广泛关注。例如,YOLOv3、YOLOv4、YOLOv4 - tiny 以及它们的改进版本在火焰检测中都取得了一定的成果[8]。这些算法不断在网络结构、特征提取、损失函数等方面进行优化,以提高火焰检测的性能。研究人员通过采用不同的策略来改进YOLO系列算法,如采用新的网络结构(如DenseNet结构)、引入新的模块(如空洞卷积模块、注意力机制等)、对主干网络进行优化(如利用MobileNetv3改进)等,目的都是在提高检测精度的同时,降低模型的复杂度和内存占用,提高检测速度,以满足实际应用的需求[9]。
通过对以上问题的深入分析,可以明确本研究的方向和重点,即利用云计算的强大计算能力和大数据的丰富数据资源,优化基于深度学习的火焰检测方法,克服现有技术在火灾早期检测中的不足,提高火焰检测的准确性和时效性。
二、 研究点假设和符号定义
2.1 研究点假设
2.1.1 数据集假设
假设所选用的火灾火焰数据集具有代表性。这意味着数据集中的图像能够涵盖实际火灾场景中火焰可能出现的各种情况,包括不同的火焰大小、颜色、形状,以及在不同环境背景下的火焰图像。例如,涵盖室内、室外,白天、夜晚等不同场景下的火焰情况。这样的假设是为了确保基于该数据集训练出来的模型能够在实际应用中对各种火焰进行准确识别,避免因数据集的偏差导致模型的泛化能力不足。
假设数据集中的标注信息准确无误。在数据集中,每张火焰图像都有对应的标注,这些标注标明了火焰在图像中的位置和类别等信息。准确的标注信息对于模型的训练至关重要,因为模型是基于这些标注来学习火焰的特征。如果标注存在错误,那么模型在训练过程中就会学习到错误的信息,从而影响模型的性能。
2.1.2 云计算平台假设
假设云计算平台在整个研究过程中能够稳定运行。在基于云计算进行模型训练和数据处理时,平台的稳定性直接关系到研究的顺利进行。例如,不会出现因硬件故障(如服务器死机、硬盘损坏等)或网络问题(如网络中断、网络延迟过高)导致的数据丢失、模型训练中断等情况。只有在云计算平台稳定运行的前提下,才能保证研究的高效开展和结果的可靠性。
假设云计算平台的计算资源能够满足研究需求。本研究涉及到大量数据的处理和复杂模型的训练,需要云计算平台提供足够的CPU、GPU计算能力以及内存等资源。例如,在训练基于YOLOv11的火灾火焰检测模型时,需要足够的GPU资源来加速模型的训练过程,确保训练能够在合理的时间内完成。
2.1. 3 模型假设
假设YOLOv11算法在本研究中具有适用性。YOLOv11作为一种先进的目标检测算法,虽然在很多领域取得了良好的效果,但不同的应用场景对算法的要求不同[10]。在此假设YOLOv11算法能够很好地适应火灾火焰检测这一任务,其网络结构和参数能够有效地提取火焰的特征,实现准确的火焰目标检测。
假设模型在训练过程中能够收敛。模型收敛意味着在经过一定轮数的训练后,模型的损失函数能够逐渐减小并趋于稳定,模型的性能指标(如精确率、召回率等)能够达到一个较好的水平。如果模型不能收敛,可能是由于模型结构不合理、超参数设置不当或者数据集存在问题等,这将导致无法得到有效的火灾火焰检测模型。
2.2 符号定义
2.2.1 与模型性能评估相关的符号
(1)精确率(Precision)定义[11]为在所有被预测为火焰的样本中,真正是火焰的样本所占的比例。用公式表示为:
其中TP(True Positive)表示真阳性,即实际是火焰且被模型正确预测为火焰的样本数量;FP(False Positive)表示假阳性,即实际不是火焰但被模型错误预测为火焰的样本数量。精确率主要用于衡量模型预测结果的准确性,避免模型产生过多的误报。
(2)召回率(Recall)定义[12]为在所有实际为火焰的样本中,被正确预测为火焰的样本所占的比例。其计算公式为:
其中FN(False Negative)表示假阴性,即实际是火焰但被模型错误预测为非火焰的样本数量。召回率反映了模型能够检测出的火焰样本的比例,避免模型遗漏火焰的情况。
(3)平均精度均值(mAP)[13]这是综合衡量模型在不同召回率下的平均精度的指标。在目标检测任务中,通常通过计算不同类别目标在不同召回率下的精度,然后求平均值得到mAP。它能够全面地评估模型的性能,mAP值越高,说明模型在检测火焰目标时的综合性能越好。
2.2.2 与模型训练和损失函数相关的符号
(1)train/box_loss:在模型训练过程中,用于表示目标框定位损失[14]。该损失反映了模型预测的火焰目标框与实际火焰目标框之间的差异程度。例如,在训练基于YOLOv11的模型时,随着训练的进行,train/box_loss的值会逐渐减小,表明模型对火焰目标框的定位越来越准确。
(2)train/cls_loss:代表训练过程中的分类损失[15]。它衡量了模型对火焰类别判断的准确程度。当模型在训练过程中对火焰和非火焰的分类能力不断提升时,train/cls_loss的值会不断降低。
(3)train/dfl_loss:表示模型训练中的另一种损失,它与模型的某些特定功能或特征相关(具体取决于模型的设计和实现)。在训练过程中,train/dfl_loss的优化有助于提高模型的整体性能。
(4)val/box_loss、val/cls_loss、val/dfl_loss:这些符号分别表示在模型验证过程中的目标框定位损失、分类损失和与dfl相关的损失。与训练损失类似,验证损失的变化可以反映模型在未参与训练的数据上的性能表现,帮助判断模型是否过拟合或欠拟合。
三、 研究点建立和计算
3.1 研究点建立的依据
火灾火焰目标检测在保障公共安全方面具有至关重要的意义。随着云计算与大数据技术的发展,利用这些先进技术来提高火焰检测的效率和准确性成为可能。YOLO(You Only Look Once)系列算法在目标检测领域表现出高效、快速的优势,而YOLOv11作为其最新版本,理论上具备更先进的架构和性能。通过在云计算平台上结合大数据集训练YOLOv11模型进行火灾火焰检测,能够充分利用云计算的强大算力和大数据的丰富信息,实现更精准、更快速的火焰检测,因此本研究选择建立基于云计算与大数据的YOLOv11火灾火焰目标检测方法这一研究点。
3.2 研究方法及过程
3.2.1 大数据 获取
首先获取火灾火焰大数据,在Kaggle平台获取到火灾火焰的数据集,Kaggle平台是机器学习竞赛、托管数据库、编写和分享代码的平台。Kaggle拥有海量的数据集,这些数据集来自不同的渠道。有些是由企业提供的真实业务数据,例如电商公司提供的用户购买行为数据、金融机构提供的客户信用数据等。还有些是由研究机构发布的用于学术研究的数据,如天文学研究中的星系图像数据、生物学研究中的基因序列数据等。数据集的规模也各不相同,有小型数据集适合初学者用于快速实验和学习基本的数据处理技术,也有超大型数据集用于应对复杂的工业级数据挖掘和分析任务。
图3-1 Kaggle平台
3.2.2 项目 工程 建立
然后在YOLOv11官网下载程序工程,在github平台获取Ultralytics团队开源的YOLOv11程序工程。2024年9月30日,Ultralytics在其活动YOLOVision中正式发布了YOLOv11。YOLOv11是YOLO的最新版本,由美国和西班牙的Ultralytics团队开发。YOLO是一种用于基于图像的人工智能的计算机模型。
图3-2 YOLO11官网
3.2.3 数据集载入
在YOLOv11工程里新建datasets文件夹,将下载后的火灾火焰数据集,包括训练集、验证集、测试集的图像数据和标签分别载入到YOLOv11工程的datasets文件夹对应的文件夹里。
图3-3 数据集载入
3.2.3 云计算部署
本研究基于云计算进行火灾火焰目标检测方法的研究,本研究使用的云计算平台是蓝耘算力云平台,该平台是一个现代化的、基于Kubernetes的云平台,专为大规模GPU加速工作负载而构建。将YOLOv11工程压缩包(YOLOv11_fire.zip)上传到该云计算平台,如下图3-4所示。
图3-4 云计算平台
然后打开云计算平台的命令行终端,切换到压缩包路径,在该路径下输入命令unzip yolo11_fire.zip对YOLOv11工程压缩包进行解压,如下图3-5所示。
unzip yolo11_fire.zip
图3-5 工程解压缩
然后使用命令conda create -n fire python=3.11.9创建名为fire的conda环境。conda是用于管理环境、包等的命令行工具。create是conda命令的一个子命令,其主要作用就是创建新的 Conda 环境。-n(或--name)是一个选项,后面跟着要创建的环境的名称,在这个命令中环境名称就是fire。python=3.11.9则指定了在新建的这个fire环境中要安装的 Python 版本为 3.11.9。这样在进入该环境后,运行python命令时,对应的就是这个指定版本的 Python 解释器了,如下图3-6所示。
conda create -n fire python=3.11.9
或者使用python=3.8.18
conda create -n Archie_yolo11 python=3.8.18
图3-6 创建conda环境
conda允许创建多个相互独立的环境,每个环境可以安装不同版本的Python以及各种不同的Python包等。通过conda create命令创建好一个环境后,需要使用conda activate命令来激活它,使得后续执行的python命令以及安装包等操作都是在这个激活的环境下进行的,这样就可以避免不同项目之间因为Python版本或包的依赖等问题产生冲突。如下图3-7所示进行激活conda环境。
conda activate fire
图3-7 激活conda环境
接下来使用Conda安装PyTorch及其相关库的命令conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia。安装的PyTorch库的版本为2.0.1。torchvision版本为0.15.2是PyTorch官方提供的用于计算机视觉任务的库。torchaudio版本为2.0.2是针对音频处理相关的库,同样隶属于PyTorch生态系统。pytorch-cuda的为11.7版本,CUDA是NVIDIA推出的一种并行计算平台和编程模型,通过它可以利用GPU的强大计算能力加速深度学习模型的训练和推理。
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
图3-8 安装PyTorch及其相关库
接着在命令行终端输入指令pip install -e . 。该指令为Python项目的开发调试过程提供了很大的便利,能让开发者更高效地对自己开发的Python库等项目进行迭代优化。
pip install -e .
图3-9 安装和管理Python包
以上就完成了工程在云计算平台的部署工作,接下来打开mydataset.yaml文件,修改数据集的路径,确定训练集和验证集图像数据集的文件夹路径无误,并写上标签类别为fire,如下图3-10所示。
图3-10 数据集路径和标签类别
3.2.4 模型训练
在main.py文件里设置训练模型的相关参数,使用GPU进行训练,优化器optimizer设置为auto,训练的轮数epochs设置为300轮,batch设置为16(每次训练16张进行权重的更新),输入数据大小设置为640,指定的模型配置文件是ultralytics/cfg/models/11/yolo11.yaml,如下图3-11所示。
图3-11 main.py文件
然后在命令行终端输入指令python main.py进行模型的训练,使用Ultralytics库(版本8.3.41)进行目标检测(task=detect)模型训练,运行在 Python 3.8.18 环境下,搭配PyTorch 2.0.1且启用了CUDA 11.8,使用的GPU设备是 NVIDIA GeForce RTX 3090,显存为24253MiB,表明可以利用GPU进行加速训练,如下图3-12所示。
python main.py
图3-12 训练模型
如下图3-13所示是工程的训练过程中,train.batch2.jpg可视化训练数据批次(batch)相关信息的图像,第二个批次的训练数据可视化。展示在训练过程中每个批次的数据特征,图像的内容、标注框信息。
图3-13 train.batch2.jpg
如下图3-14所示val_batch2_pred.jpg,在模型验证阶段,对第二个批次(batch)的验证数据进行预测后生成的可视化图像。展示了模型对验证数据的预测结果,在目标检测中,会显示模型预测出的火灾火焰的位置(用框表示)、类别和置信度信息。
图3-14 val_batch2_pred.jpg
3.3 简要的计算方法
3.3.1 损失函数计算
train/box_loss、val/box_loss:在训练和验证过程中,box_loss 主要用于衡量模型预测的火焰目标框与实际目标框之间的差异。通过计算预测框和真实框在位置、大小等方面的误差,采用合适的数学公式(例如基于交并比 - IoU 的损失函数计算方法)来量化这种差异,随着训练的进行,不断优化模型参数,使 box_loss 逐渐减小。
train/cls_loss、val/cls_loss:分类损失函数用于评估模型对火焰类别判断的准确程度。基于模型预测的类别概率分布与实际类别标签之间的差异进行计算(如使用交叉熵损失函数),在训练过程中促使模型更好地学习火焰的特征,从而准确区分火焰和非火焰类别,使 cls_loss 不断降低。
train/dfl_loss、val/dfl_loss:这一损失与模型中的特定功能或特征相关,根据 YOLOv11 模型的内部机制和设计(例如涉及到对某些特征的预测或处理),采用相应的计算方法来量化这部分损失,并在训练过程中进行优化。
3.3.2 性能指标计算
精确率(Precision):根据模型预测结果和实际标签,按照公式计算精确率。其中,在每次训练或验证迭代后,统计实际是火焰且被正确预测为火焰的样本数量(TP)以及实际不是火焰但被预测为火焰的样本数量(FP),进而得到精确率。
召回率(Recall):通过公式计算召回率。在计算过程中,需要统计实际是火焰且被正确预测为火焰的样本数量(TP)以及实际是火焰但被错误预测为非火焰的样本数量(FN)。
平均精度均值(mAP):综合考虑不同召回率下的精度值,通过在多个召回率点上计算精度,并对这些精度值进行平均,得到mAP。这一过程涉及到对整个数据集上的预测结果进行细致的分析和统计。
四、 研究点分析和检验
4.1 模型训练指标分析
从训练过程中的各项指标变化趋势图,如图4-1可以看出:
在train/box_loss中,初始box loss约为3.5,随着训练的推进逐渐下降至接近1.0。这表明模型在不断学习的过程中,对火焰目标框的定位准确性逐步提升。在训练初期,模型对火焰位置和范围的判断较为模糊,随着更多数据的输入和参数的调整,其预测的目标框与实际火焰目标框之间的差异越来越小,这符合目标检测模型在训练过程中对定位精度提升的预期规律。
train/cls_loss从约4.0逐渐降低至接近1.0,意味着模型对火焰类别的判别能力在增强。开始时,模型可能难以准确区分火焰与其他相似物体或场景,但经过多轮训练,通过对火焰图像特征的深入学习,如火焰的颜色、形状、纹理等独特特征,模型能够更精准地判断图像中是否存在火焰,从而使分类损失不断减少。
train/dfl_loss从约4.0大幅下降到接近0.2,显示模型在相关特定特征学习与处理方面的显著优化,进一步提升了模型整体性能,尽管其具体含义与YOLOv11内部特定设计相关,但整体下降趋势表明模型在该方面的学习效果良好。
metrics/precision (B) 从接近0逐步上升至接近0.8,这说明模型正确预测火焰且避免误报的能力在不断提高。在早期训练阶段,模型可能会错误地将许多非火焰物体预测为火焰,导致精确率较低。随着训练的深入,模型学会了更精准地识别火焰特征,减少了错误预测,使得精确率逐渐上升,这对于火灾预警系统来说至关重要,因为低精确率可能会导致不必要的警报和资源浪费。
metrics/recall (B) 从接近0上升到接近 1.0,表明模型能够检测到的实际火焰样本比例在不断增加。起初,模型可能会遗漏一些火焰样本,但随着训练,模型对火焰的敏感度提高,能够更全面地检测出图像中的火焰,确保火灾发生时尽可能不被漏检,提高了火灾预警的可靠性。
图4-1 results.png
4.2 精确率-召回率曲线分析
如下图4-2所示是实验的精确率-召回率曲线(Precision - Recall Curve)图,横轴表示召回率,纵轴表示精确率。曲线越靠近右上角(精确率和召回率都接近 1.0),表明模型性能越好。本实验中mAP@0.5值为0.875,这一较高的平均精度均值进一步证实了模型的良好性能。在实际应用场景中,较高的精确率可以减少误报,避免因虚假警报而引起的不必要恐慌和资源调配浪费;而较高的召回率则能确保真正发生火灾时火焰能够被及时检测到,最大限度地保障人员生命和财产安全。例如,在大型仓库或森林等大面积区域的火灾监测中,该模型能够在众多复杂环境因素干扰下,较为准确地检测出火焰的存在,并且在检测到火焰时,能够以较高的可信度确定其为火灾,从而及时触发报警系统并通知相关部门采取灭火和救援行动。
图4-2 PR_curve.png
4.3 结果带入原问题分析
将上述模型的训练和验证结果带入原火灾火焰目标检测问题中,可以发现模型在各项指标上的表现能够有效满足火灾早期预警对准确性和时效性的要求。模型对火焰目标框定位损失的降低、分类损失的减少以及精确率和召回率的提升,都表明其能够在火灾发生的早期阶段,快速且准确地检测到火焰的存在。例如,在城市监控系统集成该模型后,一旦有火灾发生,系统能够迅速捕捉到火焰图像,准确识别火焰位置和范围,并及时发出警报,为消防部门的响应争取宝贵时间。
4.4 引申分析
从更广泛的角度来看,本研究基于云计算与大数据的火灾火焰目标检测方法不仅在当前火灾预警领域具有重要应用价值,还为相关领域的发展提供了有益的借鉴和思路。在未来的智能安防领域,类似的目标检测技术可以进一步拓展应用到其他危险物品或异常行为的检测中。例如,在危险化学品泄漏检测方面,可以通过收集大量的危险化学品泄漏图像数据,利用云计算平台训练目标检测模型,实现对危险化学品泄漏的快速识别和定位,及时采取应对措施,降低危害程度。同时,随着技术的不断发展,数据量的不断增加和计算能力的进一步提升,这种基于云计算与大数据的目标检测方法还可以不断优化和完善。例如,通过更广泛地收集不同地区、不同季节、不同环境下的火灾火焰数据,进一步提高模型的泛化能力;或者利用更先进的云计算架构和算法优化技术,提高模型的训练速度和检测效率,以适应更加复杂和大规模的应用场景需求。
参考文献
- 孙剑,张数数.基于改进YOLOv5s的火焰烟雾检测方法[J/OL].信阳师范学院学报(自然科学版),1-7[2024-12-10].http://kns.cnki.net/kcms/detail/41.1107.N.20241206.0829.002.html.
- 刘成明,吴凡,李学相.基于改进YOLOv7的火灾火焰检测模型[J/OL].郑州大学学报(理学版),1-8[2024-12-10].https://doi.org/10.13705/j.issn.1671-6841.2024041.
- 钱伟,杨潇,刘全义,等.融合注意力机制的YOLOv8火焰目标检测算法[J/OL].安全与环境学报,1-12[2024-12-10].https://doi.org/10.13637/j.issn.1009-6094.2024.0533.
- 王驰,赵柔君,王耀荣.基于YOLOv7的储能电站烟雾与火焰目标检测[J].高科技与产业化,2024,30(10):48-50.
- 李帅帅,王涛.基于背景差分与目标检测的视频火焰检测算法[J].滁州学院学报,2024,26(05):52-57.
- 邓力,周进,刘全义.基于改进YOLOv8的火焰与烟雾检测算法[J/OL].清华大学学报(自然科学版),1-9[2024-12-10].https://doi.org/10.16511/j.cnki.qhdxxb.2024.27.036.
- 陈义鑫,王婷,杨万扣.基于轻量化的神经网络火焰检测算法研究[J].计算机技术与发展,2024,34(11):200-206.DOI:10.20165/j.cnki.ISSN1673-629X.2024.0256.
- 战乃岩,张晓禾,姜泽旭,等.改进YOLOX-m的火焰检测方法研究[J/OL].计算机测量与控制,1-11[2024-12-10].http://kns.cnki.net/kcms/detail/11.4762.tp.20240712.1706.027.html.
- 肖博炜.基于深度学习的火焰烟雾检测方法研究[D].西北师范大学,2024.
- 张晓禾.基于计算机视觉技术的火焰检测算法研究[D].吉林建筑大学,2024.
- 周仿荣,马仪,文刚,等.融合多特征的火焰和烟雾深度视觉检测模型研究[J].云南电力技术,2024,52(03):30-35.
- 张冬梅,宋子涛,范皓鑫.融合多点注意力机制的YOLOv7火焰目标检测算法研究[J].软件工程,2024,27(06):39-43.DOI:10.19644/j.cnki.issn2096-1472.2024.006.009.
- 骈璐璐.基于深度学习的烟雾火焰检测算法研究[D].中北大学,2024.DOI:10.27470/d.cnki.ghbgc.2024.001336.
- 刘科国.基于改进YOLOv8的火灾检测算法研究[D].中北大学,2024.DOI:10.27470/d.cnki.ghbgc.2024.000294.
- 刘忠意.基于改进YOLOv5s的火焰烟雾检测方法研究[D].长江大学,2024.DOI:10.26981/d.cnki.gjhsc.2024.000578.
附录
main.py文件:
from ultralytics import YOLO
if __name__ == '__main__':
x = input("请输入执行的操作,y:训练,n:测试 ")
if x == 'y' or x == 'Y':
yolo = YOLO(r'ultralytics/cfg/models/11/yolo11.yaml')
# yolo.train(data=r'mydataset.yaml',
# workers=8, epochs=300, batch=16, resume=True, project='runs/detect/Archie')
yolo.train(data=r'mydataset.yaml',
project='runs/detect/Archie',
device='0',
optimizer="auto",
epochs=300, # 训练过程中整个数据集将被迭代多少次
batch=16, # 一次看完多少张图片才进行权重更新
workers=8,
verbose=True,
half=True,
amp=False,
dynamic=False,
simplify=False,
resume=True, # 从之前中断的训练状态恢复训练
imgsz=640
)
elif x== 'c':
# Load a model
model = YOLO(r'D:\lenovo\Archie\ultralytics-main\ultralytics-main\runs\detect\Archie\train13\weights\best.pt') # load an official model
# model = YOLO('path/to/best.pt') # load a custom trained
# pt--onnx--ncnn
# Use the model
# success = model.export(format="onnx",simplify=True,opset=12)
model.export(format="onnx", imgsz=320, half=True, opset=12, optimize=True)
# model.export(format="onnx", opset=12, simplify=True)
else:
model = YOLO(r'runs/detect/Archie/YOLO11/weights/best.pt')
metrics = model.val(
data=r'mydataset.yaml',
split='val',
project='runs/detect/VisDrone'
)
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # 包含每个类别的map50
Mydataset.yaml文件:
# Ultralytics YOLO ��, AGPL-3.0 license
# VisDrone2019-DET dataset https://github.com/VisDrone/VisDrone-Dataset by Tianjin University
# Example usage: yolo train data=VisDrone.yaml
# parent
# ├── ultralytics
# └── datasets
# └── VisDrone ← downloads here (2.3 GB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: /root/lanyun-tmp/yolo11_fire/datasets/tooth # dataset root dir
train: /root/lanyun-tmp/yolo11_fire/datasets/tooth/images/train # train images (relative to 'path') 6471 images
val: /root/lanyun-tmp/yolo11_fire/datasets/tooth/images/val # val images (relative to 'path') 548 images
test: images/test # test images (optional) 1610 images
# Classes
names:
0: fire
# yolo detect train data=datasets/visdrone/visdrone.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 batch=4 lr0=0.01 resume=True
工程源码下载链接
可自愿选择付费下载我的工程文件。整理思路,写文档与程序、调试耗费了时间精力,感谢支持。包含完整工程资料文件等。