基于YOLOv8算法和跟踪算法的改进型室内危险场景检测方法

文档序号:36508189发布日期:2023-12-29 00:30阅读:36来源:国知局
基于

本发明涉及计算机视觉及各种传感器领域,具体涉及基于yolov8算法和跟踪算法的改进型室内危险场景检测方法。


背景技术:

1、室外场景下的智能监控系统已经广泛应用了yolov8算法以及跟踪算法,以实现诸如停车场管理和其他安全监控应用的高效检测与跟踪功能。这些技术的应用在室外环境中已经取得了显著的成功,并在提高公共安全和资源管理方面发挥了关键作用。

2、然而,在室内环境中,特别是在商场、学校或办公场所等室内空间中,存在着新的挑战和潜在的安全威胁。突发危险场景,如火灾、烟雾、爆炸等,可能对人员和财产造成严重的危害。迅速准确地检测和识别这些室内危险场景至关重要,但迄今为止,室内火灾等危险事件的自动识别和响应技术尚未达到与室外场景监控相媲美的水平。

3、现有技术在室内环境中的应用受到一系列限制:首次,室内环境的复杂性和多样性增加了检测和识别危险场景的难度。室内可能存在各种光照条件、视角问题以及遮挡物。其次,相对于室外场景,室内的监控数据通常较少,这导致了训练和改进模型的挑战。最后,在室内危险场景中,实时响应至关重要。因此,需要一种高效的检测和识别系统,以最小化响应时间。


技术实现思路

1、针对上述存在的技术不足,本发明的基于yolov8算法和跟踪算法的改进型室内危险场景检测方法。

2、为解决上述技术问题,本发明采用如下技术方案:基于yolov8算法和跟踪算法的改进型室内危险场景检测方法,至少包括以下步骤:

3、步骤一:数据收集,通过从多个来源收集包含商场,学校,办公场所等地的危险场景和非危险场景图像的图像和视频,包括社交媒体、新闻网站、专用相机或传感器,建立大型数据集。

4、步骤二:数据准备:对数据进行标记、去重和拆分,以创建用于训练和测试的数据集,并确保数据集平衡,包含相同数量的危险场景和非危险场景图像。

5、步骤三:模型选择:选择对象检测算法,包括yolov8和deepsort,以学习和检测火灾等危险场景的特定特征,提高探测的准确性和时效性。

6、步骤四:模型训练:在标记的数据集上使用深度卷积神经网络(cnn)对所选算法进行多轮训练,以适应不同室内危险场景,并使用数据增强技术来减少过度拟合。

7、步骤五:实时检测:使用yolov8算法的实时性能和deepsort算法的跟踪性能,实现对火灾等危险的实时检测,并跟踪危险场景的发展情况和持续时间。

8、步骤六:多功能性:适应不同室内公共场所,包括安全隐患检测、煤气泄漏检测、火灾、踩踏和行人流量监测等。

9、步骤七:误报减少:通过深度学习减少误报,提高火灾探测系统的准确性。

10、步骤八:成本效益:实现成本效益,使用低成本摄像机和硬件,降低系统部署成本。

11、其中,在步骤一中包含以下步骤:

12、1、确定数据收集目标:在开始数据收集之前,明确定义数据集的目标,包括要收集的场景类型(商场、学校、办公场所)、检测目标(火灾、烟雾、人流拥挤)以及所需的图像和视频数量。

13、2、数据来源和渠道选择:由于限制和隐私问题,无法获取市场数据,所以选择合适的数据来源和渠道,包括社交媒体、新闻网站、专用相机、传感器等。确保数据来源广泛,以涵盖不同场景和条件。

14、3、数据采集工具和设备准备:获取适当的数据采集工具和设备,如网络爬虫、相机、传感器等。确保这些工具能够捕获高质量的图像和视频,特别是在不同光照和环境条件下。

15、4、数据采集和存储:开始采集数据,包括拍摄图像和录制视频。数据需要按照场景类型(火灾、烟雾、人流拥挤)和条件(室内、室外、不同光照)进行组织和存储。确保数据的完整性和准确性。

16、5、数据标注和分类:对采集的图像和视频进行标注和分类。标注包括识别是否存在火灾、烟雾,以及是否存在人流拥挤。同时,可以添加额外的信息,如时间戳、地点等,以帮助后续的数据分析和模型训练。

17、6、数据集划分:将数据集划分为训练集和测试集,确保模型的评估是可靠的。根据需要,还可以考虑将数据集划分为验证集,以进行模型的超参数调优。

18、其中,在步骤二中包含以下步骤:

19、1、标记数据:使用labelimg等工具或手动在图像和视频中绘制边界框,标记出火灾等危险场景的位置和范围,并给每个边界框分配一个类别标签(如火灾、烟雾等)。

20、2、去重数据:检查数据集中是否有重复的图像或视频,如果有,删除其中一个,以避免数据冗余。

21、3、拆分数据:将数据集划分为训练集和测试集,按照一定的比例(如80%和20%)分配数据,以便用于训练和测试模型的性能。

22、4、预处理数据。对图像和视频进行一些必要的预处理步骤,如调整大小、裁剪、旋转、翻转、灰度化、归一化等,以提高数据的质量和多样性,并减少计算量。

23、5、平衡数据:确保训练集和测试集中包含相同数量的危险场景和非危险场景图像,以防止模型偏向一类图像。如果某一类图像过多,可以删除一些或者使用数据增强技术(如随机噪声、模糊、对比度调整等)来生成更多的另一类图像。

24、其中,在步骤三中包含以下步骤:

25、1、了解对象检测算法。研究不同的对象检测算法,如yolov8,faster r-cnn和ssd,了解它们的原理、优点和缺点,以及在不同的数据集和任务上的性能。

26、2、比较对象检测算法。使用一些标准指标,如平均精度(map),平均召回率(mar),每秒帧数(fps)等,来比较不同的对象检测算法在收集的数据集上的效果,以及它们在处理不同的火灾等危险场景时的鲁棒性和准确性。

27、yolov8模型已经在数据集上使用迁移学习进行了训练,其中我们在coco数据集上使用预先训练好的权重初始化了模型,并在我们的数据集上进行了微调。我们使用批量大小为16,在初始学习率为0.01的情况下训练了300个时间点的模型。

28、3、选择对象检测算法。根据室内危险场景探测系统的性能和要求,选择一个或多个合适的对象检测算法来训练危险场景探测模型。考虑到速度和准确性的平衡,本发明选择yolov8算法作为基础模型。

29、yolov8模型是无锚的。这意味着它不是预测一个物体到已知锚框的距离,而是明确地估计物体的中心。无锚检测降低了框预测的数量,从而加速了非最大抑制(nms),这是一种具有挑战性的后处理程序,可对推理后的潜在检测进行排序。在识别、分割和分类方面,分别有5种模型(yolov8n、yolov8s、yolov8m、yolov8l和yolov8x)。yolov8x是它们中最精确但速度最慢的,yolov8 nano是最快和最小的。与yolov5的区别如下:

30、1)c2f模块代替c3模块。

31、2)改变骨干网的初始6×6conv为3×3conv。

32、3)从yolov5配置中删除convs编号10和14。

33、4)将瓶颈中的初始1×1conv更改为3×3conv。

34、5)使用解耦头移除对象步骤。

35、基本构建块被改变,c2f取代了c3,并且茎的初始6×6conv被3×3取代。cbs是由conv、batchnorm和silu组成的块。初始卷的内核维度从1×1调整为3×3。在骨干架构中,yolov8使用基于跨阶段部分(csp)的c2f模块,而yolov5使用的是c3模块。csp的架构增强了cnn的学习能力,减少了模型的计算工作量。c2f模块由两个conv模块和n个瓶颈组成,通过split和concat连接。骨干公园的其余部分与yolov5相同。在骨干的最后一层,使用sppf模块。

36、4、了解deepsort算法。研究deepsort算法,了解它是如何使用深度特征和卡尔曼滤波器来实现多目标跟踪的,以及它在不同的数据集和任务上的性能。

37、5、结合deepsort算法。将deepsort算法与yolov8算法结合起来,形成一个带有deepsort算法的yolov8模型,以提高危险场景探测的准确性和时效性。具体而言,使用yolov8模型来检测图像中的火灾等危险场景,并生成边界框和类别标签;然后使用deepsort模型来跟踪视频中的火灾等危险场景,并生成唯一的身份标识。

38、其中,在步骤四包含以下步骤:

39、1、加载数据集。使用torchvision.datasets.imagefolder等函数,将训练集和测试集的图像文件加载到内存中,并将它们转换为pytorch张量(tensor)格式。

40、2、定义模型结构。使用torch.nn.module等类,定义yolov8模型的结构,包括卷积层(convolutional layer),池化层(pooling layer),激活层(activation layer),全连接层(fully connected layer)等,并指定它们的参数和超参数,如卷积核大小(kernelsize),步长(stride),填充(padding),激活函数(activation function)等。

41、3、定义损失函数和优化器。使用torch.nn.bceloss等类,定义模型的损失函数(loss function),用于衡量模型的预测结果和真实标签之间的差异,并使用torch.optim.adam等类,定义模型的优化器(optimizer),用于更新模型的权重和偏置,以减少损失函数的值。

42、4、训练模型。使用torch.utils.data.dataloader等类,将训练集的数据分批(batch)输入模型,并在每个批次后计算损失函数的值,并使用优化器更新模型的参数。同时使用数据增强技术(data augmentation),如随机裁剪(random crop),随机翻转(randomflip),随机旋转(random rotation)等,对输入的图像进行一些变换,以增加数据的多样性和模型的泛化能力。重复这个过程多轮(epoch),直到模型达到预期的性能或满足停止条件。

43、其中,在步骤五包含以下步骤:

44、1、评估模型。使用torchvision.models.detection.evaluation等函数,计算模型在测试集上的各种指标(如准确性、精度、召回率和f1分数),以评估模型在识别危险场景和非危险场景方面的表现,并与其他对象检测算法进行比较。

45、召回百分比和精确百分比平均值之间的加权平均值称为fm评分。因此,该评分同时考虑了假阳性和假阴性。虽然调频比精度更普遍,但精度并不是立刻就能简单理解的。当假阳性和假阴性的成本相当时,准确性表现良好。如果假阳性和假阴性的代价不同,最好同时考虑召回和准确性。就阳性结果而言,精确度是指准确预测的观察结果占所有预测的阳性结果的比例。召回率是真阳性预测占所有实际阳性预测的比例。其计算方法如下。

46、

47、精确度是真阳性预测占所有阳性预测的比例。计算公式如下

48、

49、tp代表真阳性,fp代表假阳性,tn代表真阴性,fn代表假阴性。计算f-measure时考虑精度和召回率,简称fm,计算公式如下:

50、

51、2、调整模型。根据评估结果,分析模型的优点和缺点,以及可能存在的问题,如过度拟合(overfitting)或欠拟合(underfitting)。如果模型的性能不理想,尝试调整模型的超参数(hyperparameters),如学习率(learning rate),批次大小(batch size),权重衰减(weight decay)等,或者添加更多的训练数据,以提高模型的性能和泛化能力。

52、在yolov8中,置信度被描述为pr(对象)×iou,其中pr(对象)表示对象存在的概率,iou表示交集over union(iou),即推断和地面真实之间的重叠区域。每个网格单元生成5个预测(x、y、w、h和一个置信度评分)。此外,每个网格产生p个条件类概率,表示为pr(类|对象)。下面的公式演示了在测试阶段为每个框获得类特定的置信度分数的方法。

53、

54、最后的层同时预测它们的边界框的坐标和它们相关的类概率。然后,将边界框标准化,使其落在0到1之间。除最后一层采用线性激活函数外,其余各层均采用漏整改线性激活函数增加非线性,如下式所示:

55、

56、3、实时检测。使用torchvision.models.detection.transform等函数,将实时输入的图像或视频转换为适合模型输入的格式,并使用yolov8模型和deepsort模型对其进行实时检测和跟踪。使用torchvision.utils.draw_bounding_boxes等函数,将检测和跟踪的结果可视化为边界框和标签,并实时显示在屏幕上。同时记录危险场景的发展情况和持续时间,并在发现危险场景时发出警报。

57、其中,在步骤六包含以下步骤:

58、1、选择部署平台。根据实时系统的需求和资源,选择一个合适的部署平台,如计算机、服务器、云端服务等,以运行经过训练的模型,并处理来自相机的实时视频流。部署平台应具有高计算能力和gpu支持,以保证模型的实时性能和效率。

59、2、加载模型。使用torch.load等函数,将经过训练的模型文件(如.pth或.pkl)加载到内存中,并将其转换为评估模式(evaluation mode),以关闭梯度计算和随机性,并提高模型的推理速度。

60、3、检测和跟踪视频流。使用yolov8模型和deepsort模型对视频流中的每一帧进行检测和跟踪,并生成边界框、标签、置信度和身份标识等信息,以表示视频中的危险场景和非危险场景。

61、4、设置阈值和警报。根据实时系统的要求,设置一个阈值(threshold),用于确定模型检测危险场景所需的最低置信度(confidence),低于此阈值的检测将作为误报(falsepositive)丢弃。同时设置一个警报(alarm),用于在检测到危险场景时发出声音或视觉信号,以提醒人员注意并采取措施。

62、5、显示和记录结果。使用opencv等库,将检测和跟踪的结果可视化为边界框和标签,并实时显示在屏幕上。同时使用torchvision.utils.save_image等函数,将检测和跟踪的结果保存为图像文件,并记录危险场景的发展情况和持续时间。

63、其中,步骤七中包含以下步骤:

64、1、选择集成系统。根据室内危险场景检测模型的目的和功能,选择一些合适的系统来与其集成,如火灾报警器、自动喷水灭火系统和应急响应系统,以提高火灾等室内探测和处理的效率和安全性。

65、2、实现集成方案。使用网络协议、接口定义、编程语言,实现集成方案,并将室内危险场景检测模型与其他系统连接起来,形成一个完整的火灾探测和处理系统。

66、3、测试和验证集成系统。使用测试用例和数据,对集成系统进行测试和验证,检查是否存在任何问题或错误,并评估集成系统的性能和效果,如准确性、实时性、稳定性等,并与其他探测系统进行比较。

67、4、优化集成系统。根据测试和验证的结果,分析集成系统的优点和缺点,以及可能存在的改进空间,优化集成系统的各个方面,减少误报、提高响应速度、降低成本。

68、其中,步骤八中包含以下步骤:

69、1、选择低成本摄像机和硬件。根据室内危险场景检测模型的需求和资源,选择一些低成本但高效的摄像机和硬件,以降低系统部署和运营的成本。

70、2、部署模型到摄像机和硬件。使用工具和技术,如tensorrt,onnx等,将经过训练的模型文件转换为适合摄像机和硬件运行的格式,并将其部署到摄像机和硬件上,以实现实时检测和跟踪。

71、3、更新模型。使用迁移学习(transfer learning),增量学习(incrementallearning),定期使用新数据更新模型,以适应新数据和场景的变化,以维护系统的长期有效性和性能。

72、4、测试模型。使用测试用例和数据,定期测试模型在摄像机和硬件上的性能和效果,检查是否存在任何问题或错误,并评估模型的准确性、实时性、稳定性等,并与其他探测系统进行比较。

73、5、维护摄像机和硬件。定期检查摄像机和硬件的状态和功能,确保它们正常工作,并及时修复或更换任何损坏或故障的部件。

74、本发明的有益效果在于:本发明介绍了基于yolov8算法和跟踪算法的改进型室内危险场景检测方法,该模型利用深度学习的优势实时检测火灾等危险场景的特定特征。与传统的探测方法相比,该模型的方法有可能提高火灾等室内场景的探测的准确性,减少误报,并且具有成本效益。它还可以检测室内外其他感兴趣的对象,例如燃气泄漏或洪水。该方法具有多种潜在应用,包括公共区域的消防安全管理、森林火灾监测和智能安全系统。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1