APP下载

基于YOLOv8的景区异常目标检测系统的设计与实现

2025-03-05李佳颖张墉唐家杰林心雨许良武

电脑知识与技术 2025年3期
关键词:目标检测

关键词: 异常识别;目标检测;YOLOv8;监控预警;智慧景区

中图分类号:TP18 文献标识码:A

文章编号:1009-3044(2025)03-0016-05 开放科学(资源服务) 标识码(OSID) :

0引言

随着生活水平的提高,越来越多的人选择旅行,但这也带来了景点管理上的挑战[1]。主要问题包括游客过多导致的拥挤和安全事故、游客分布不均影响体验,以及潜在的安全风险,如游客进入禁止区域、火灾、山体滑坡和儿童失踪等[2]。为了解决这些问题,开发了智慧景区监控预警系统。该系统利用摄像头等设备实时监测景区内的风险情况,能够在第一时间检测人员分布、判断是否有人员进入危险区域的行为以及景点是否发生意外事故。一旦发现相关迹象,系统会自动触发报警,通知相关部门进行紧急处理,从而大大提高对异常行为的救援效率。

近年来,基于视频的异常监控已成为国内外学者的重要研究领域,并取得了一些成果。柴等人[3]在YOLOv8[4]的基础上,针对异常行为目标检测中存在的目标分布密集、尺度变化范围较大、检测背景较为复杂等问题,将注意力机制CA引入主干网络部分的C2f 模块,从而增强网络在复杂背景下对目标的关注能力;高等人[5]基于YOLO网络结构,结合行人在图像中呈现宽高比小的特点,聚类选取合适的候选框数量和规格,调整候选框在X、Y轴方向的分布密度,构建了适用于行人检测的网络结构;Chen 等人[6] 引入CFG_SI_YOLO模型进行道路标线缺陷检测,该模型通过多通道的CoordConv模块,根据道路标线缺陷的分布特点,增强了网络对细微细节的关注能力,有效避免了模型压缩和池化操作造成的道路标线信息丢失。由此可见,国内外学者通过优化不同的结构模型,提高了异常检测的准确性和效率。

本文提出了一种基于YOLOv8的景区异常目标检测系统,并构建了视频监控与告警联动的闭环管理系统,有效提升了景区安全管理效能。

1 系统框架结构设计

本系统设计基于YOLOv8算法,主要分为三个模块:服务器模块、AI推理服务模块和后台管理模块。示意图如图1所示。服务器模块负责将监控采集到的视频传递给异常识别接口进行推理分析和异常检测,并将最终的处理结果传送到后台管理模块。

1.1 服务器模块

系统采用阿里云服务器,服务器模块通过建立网络连接接收客户端发送的视频数据流,并对其进行解码处理。有时还会存储数据,以供进一步分析或使用。

1.2 AI 推理服务模块

LOv8A目I推标理检服测务模模块块、目包标括追视踪频模数块据和预行处为理识模别块模、Y块O。⁃首先,视频在服务器上进行预处理,确定检测目标,并调整检测框的大小和帧率。随后,通过YOLOv8进行目标检测、追踪并识别异常行为。当异常行为发生时,启用目标追踪模块,追踪异常行为发生的位置,并进行行为识别。处理结果传回服务器,若检测到异常,则发送警告,由管理中心进行处理。

1.3 后台管理模块

终端通过电脑和手机实时监控景区的异常情况。当识别到异常情况时,客户端界面会发出警告并自动标记异常位置。异常信号会传送至管理中心,管理中心模块包括数据存储与管理模块、报警处理模块和系统运行管理模块,这三个模块互不干扰。

1) 数据存储与管理模块负责存储和管理视频数据处理结果,便于快速查看。

2) 报警处理模块在YOLOv8检测与追踪发现异常行为后触发报警,提醒管理人员立即处理。

3) 系统运行管理模块负责系统日常运行的维护,包括日志记录和参数配置,以保障系统的运行效率和稳定性。

2 关键技术的实现

2.1 YOLO 目标检测

常见的目标检测算法主要有两种,分别是One- stage算法[7]和Two-stage算法[8]。其中,One-stage算法(如YOLO[9]和SSD[10]) 直接在图像上预测目标的位置和类别,无须生成候选框。这些算法将目标检测问题转化为回归问题,通过在图像上预测目标的位置和类别完成检测。

YOLO系列是一种快速目标检测算法,自2015年推出以来,经过多个版本的迭代不断优化。该算法通过将目标检测简化为回归问题来提高检测速度,但在检测小目标和复杂场景时可能存在准确度不足的问题。此外,YOLO算法因其快速处理能力,广泛应用于视频监控、自动驾驶、医学图像分析和工业自动化等领域,在实时目标识别和检测任务中发挥了重要作用。

该算法将输入图像划分为网格单元,每个单元负责预测落入其中的目标框。通过端到端的方式,直接在整幅图像上预测目标的位置和类别,并使用非最大抑制(NMS) 筛选出最终的检测结果。具体工作流程为:YOLO网络将待检测图像划分为n×n的网格,每个网格负责跟踪和识别物体中心位置落在该网格中的目标边界和类别。这种端到端的检测方法速度较快,每秒可检测几十帧图像[11]。

2.2 YOLOv8算法

YOLOv8是YOLO系列的改进版本,该算法不断引入新功能和优化,以满足不同任务的需求。本系统选择使用YOLOv8进行目标检测。YOLOv8通过单个神经网络同时预测边界框和类别概率,相较于传统目标检测算法,具有更快的运行速度和更高的检测效率。

YOLOv8的整体网络结构主要由三个模块组成:Head(输入端) 、Backbone(主干模块) 和Neck(中间特征提取模块) ,其主要网络结构如图2所示。

2.2.1 输入端(Head)

首先,输入要求为640×640的图像,对其进行图像预处理、归一化、通道转换和维度调整等操作。

① 检测头:包含一系列卷积层和反卷积层,用于生成检测结果。这些层负责预测每个锚框的边界框回归值和目标存在的置信度。

②分类头:采用全局平均池化(Global Average Pooling)对每个特征图进行分类,通过减少特征图的维度,输出每个类别的概率分布。分类头的设计使得YOLOv8能够有效处理多类别分类任务。

③ Anchor-free机制:减少了锚框的超参数设置,通过直接预测目标的中心点来简化训练过程。

④ 自适应NMS(Non-Maximum Suppression) :改进了传统的NMS算法,通过自适应调整阈值,减少误检和漏检,提高检测精度。

⑤自动混合精度训练(Automatic Mixed Precision Training) :通过在训练过程中动态调整计算精度,加快训练速度,同时减少显存占用。

2.2.2 Backbone模块

Backbone模块负责特征提取,采用了一系列卷积和反卷积层,同时使用了残差连接和瓶颈结构来减小网络的大小并提高性能。该模块由多个C2f模块和空间金字塔池化(SPPF) 模块组成。其中,C2f模块是一种用于融合局部特征和全局特征的技术,能够在特征提取阶段将不同层级的特征图进行融合,从而提高特征的丰富性和多样性。通过C2f模块,网络可以更全面地提取特征,从而提升模型的性能和准确性。此外,Backbone模块还包括一些常见的改进技术,如深度可分离卷积(Depthwise Separable Convolution) 和膨胀卷积(Dilated Convolution) ,以进一步增强特征提取能力。

Backbone中的卷积模块(Conv) 是神经网络中最常见的一种层,用于提取输入数据的特征。卷积操作通过滑动一个滤波器(卷积核) 在输入数据上,在不同位置进行加权和求和操作,从而得到输出特征图。卷积操作能够有效提取输入数据的局部特征,是深度神经网络中至关重要的组成模块。

此外,SPPF 模块被应用于特征提取网络(Back⁃ bone) 和颈部网络(Neck) 之间。特征提取网络负责提取输入图像的特征信息,而颈部网络则负责将这些特征信息进行融合和整合。SPPF模块基于一种空间金字塔池化技术,该技术可以处理不同尺度的特征图,并允许网络在多个尺度下对特征图进行池化操作,实现局部特征和全局特征的融合,从而提高特征表达能力和网络的泛化能力。通过SPPF模块,网络能够更好地捕捉输入数据的局部结构和全局信息,从而提升特征提取能力。面对不同的任务需求,SPPF模块还可以通过调整池化层的数量和尺寸来适应。

2.2.3 Neck模块

在YOLOv8模型中,Neck模块负责对来自Back⁃ bone的特征进行进一步处理和融合,以提高目标检测的准确性。它通过引入不同的结构和技术,将多尺度的特征图进行融合,从而更好地捕捉不同尺度目标的信息。

YOLOv8的Neck模块采用了PAN-FPN结构,但不同于YOLOv5 中的PAN-FPN 结构,YOLOv8 删除了PAN-FPN上采样阶段中的卷积结构,同时将C3模块替换为C2f模块。PAN-FPN结构将特征金字塔网络(FPN) 与路径聚合网络(PAN) 相结合,以提高目标检测的准确性和效率。其中,FPN结构通过在不同层级上建立特征金字塔,使模型能够在不同尺度上进行目标检测。它通过上采样和下采样操作,将低层级的细节特征与高层级的语义特征进行融合,以获取更全面和丰富的特征。而PAN用于跨网络的不同层聚合这些特征,这使得网络能够检测不同大小和分辨率的目标。

YOLOv8模型采用C2f结构,通过多尺度特征融合和注意力机制解决了FPN在特征融合过程中可能存在的信息丢失和不完整问题。

3实验及结果分析

3.1数据集

本系统采用两类图像数据:一部分是从COCO128 数据集中提取的,专注于“person”类别的图像;另一部分来源于网络图片,涵盖了火灾、溺水和山体滑坡等紧急场景。所有图像均以JPG格式保存。

考虑到不同类别样本数量的差异可能会影响模型的识别效果,本系统对火灾、溺水、山体滑坡等样本数不足的类别,通过翻转、随机旋转、裁剪等数据增强手段增加了样本数量,使各类样本数达到基本平衡。最终构建了包含4963张图像的数据集,其中包括了person、火灾、溺水、山体滑坡等类别。

3.2训练方法

迁移学习是一种通过利用在一个相关领域上训练得到的模型知识,加速在另一个不同但相关领域上的训练过程的方法。即使在目标领域数据较少的情况下,迁移学习也能获得较好的性能。它基于源领域和目标领域之间的相似性,使源领域学习到的特征表示能够对目标任务有所帮助。

迁移学习通常包括以下步骤:1) 选择一个在相关任务上预训练的模型,提取或利用该模型学习到的特征表示;2) 根据新任务的需求调整模型结构;3) 冻结模型的某些层以保留已学习的特征;4) 微调其他层以适应新任务;5) 在目标任务的数据上进行训练,以优化模型对新任务的适应性;6) 最终评估并迭代模型性能。

在选择预训练模型时,应考虑以下因素:模型与目标任务在特征和结构上的相似性、预训练数据集与目标数据集的一致性、模型在源任务上的性能表现、所需的计算资源以及模型的通用性,以确保模型能够有效地将源任务中学到的知识迁移到目标任务中。

冻结参数:通过设置参数的requires_grad属性为False,可以防止这些参数在训练过程中更新。这通常适用于模型的早期层,因为它们捕获的是更通用的特征。

微调参数:对于模型的后期层,特别是那些与特定任务相关的层,可以设置requires_grad为True,以便在训练过程中更新这些参数。

本次迁移学习将COCO128数据集作为源域,训练YOLOv8n模型,使模型充分学习复杂特征。随后,将自制的数据集作为目标域,继续训练YOLOv8n模型,使其具备识别人、火灾、溺水和山体滑坡的能力。迁移学习流程图如图3所示。

3.3实验平台

本文实验采用的操作系统为64位Windows 11家庭中文版,使用Pytorch 2.1.2+cu118深度学习框架开发环境,并在NVIDIA GeForce RTX 3060 Ti(16GB 显存) 显卡上进行训练。使用的编程语言为Python和C#。

3.4 评价指标

实验基于混淆矩阵[12],采用精确率(Precision) 、召回率(Recall) 和平均精确度均值(mAP) (本文采用mAP@0.5) 来评估模型性能。

其中,TP 表示将正例预测为正例,FP表示将负例预测为正例,FN表示将正例预测为负例。

mAP@0.5是一种衡量目标检测模型性能的指标,它表示在 IoU(交并比) 阈值设为0.5时,模型在各个类别上的平均精度的平均值。具体而言,当预测框与真实框的重叠度达到或超过 50%时,计算模型的平均精度,然后取所有类别的平均值,从而得到模型整体性能的综合评估。mAP@0.5的评估结果具有平衡性、通用性和标准化的特点。

3.5实验结果

3.5.1 消融实验

消融实验是一种采用模块化方法的实验设计,通过自动化脚本对基线模型的不同组件进行排列组合测试,全面评估每个模块对性能的影响,并在多场景下验证其适用性,以指导模型优化。本实验选择数据集规模、学习率和迭代次数三个主要影响因子分别进行消融试验。

数据集规模直接影响模型的泛化能力,不同规模的数据集能够提供不同程度的样本多样性。学习率作为控制模型权重更新步长的参数,决定了模型收敛的速度和稳定性。迭代次数则影响模型学习的充分性。

实验共得到了27组训练结果,如表1所示。

在表1的实验中,使用了3种不同规模的数据集。包含900张训练图像的数据集被命名为ds900 数据集;从ds900数据集中随机选择400张图像组成ds400 数据集;再从ds400数据集中随机选择200张图像组成 ds200数据集。三个数据集的验证集均相同。

为了对比不同的学习率,实验采用了3组不同的学习率值,分别为0.001、0.005和 0.01。同样地,实验还采用了3组不同的迭代次数,分别为50、70和90。通过组合这些不同的参数,共得到了27组不同的实验结果。

3种影响因子对模型效果的影响分析如下所示。

1) 数据集规模对模型效果的影响。实验组21(大数据集) 在90轮训练后,mAP@0.5(B) 值仅比实验组12(小数据集) 高出0.05621。尽管两者的数据集规模差异显著,但模型性能的提升并不明显。

2) 学习率对模型效果的影响。如图4所示,9组实验均采用ds200数据集。学习率为0.01的实验(编号7-9) 表现较差,mAP@0.5(B) 值显著低于学习率为0.001和0.005的实验(编号1-6) 。实验结果表明,过高的学习率可能导致模型性能下降和收敛问题。因此,合理调整学习率对于确保模型稳定收敛和提升性能至关重要。

3) 迭代次数对模型效果的影响。表1数据显示,增加迭代次数并不总是能够提升模型性能,有时甚至会导致性能下降。迁移学习已赋予模型基础特征,适度微调(如实验组25、26、27) 即可获得良好效果。实验显示,50轮训练后的 mAP@0.5(B) 值与70轮或90 轮训练相近,表明模型已基本收敛。过度训练(如实验组 13、14、15)可能导致过拟合,特别是实验组14的 mAP@0.5(B) 值比实验组13降低了0.06957,进一步验证了这一点。

3.5.2对比试验

为验证YOLOv8n的性能和推理准确率,本文对比了YOLOv5n、YOLOv7-Tiny和 YOLOv8n三个当前最经典的模型版本。通过在相同条件下的对比,有助于突显YOLOv8n在检测精度、处理速度和资源效率方面的优势。

以上模型的训练方式与表1中编号为27的实验组一致,使用ds900数据集进行训练,迭代次数为90,学习率为0.01。对比结果如表2所示。

如表2所示,YOLOv8n模型具有最高的召回率,达到了0.65495,mAP@0.5(B)值为0.63822。与YO-LOv5n 和YOLOv7-Tiny模型相比,YOLOv8n模型的mAP@0.5(B)值分别增加了0.11368和0.08770。

尽管YOLOv5n模型的大小最小,但其mAP@0.5(B)值并不高。由此可见,YOLOv8n在检测精度和性能上超越了其他版本的YOLO模型。YOLOv8n的目标检测效果图如图5所示。

实验结果表明,YOLOv8在提高检测速度和准确性方面具有显著优势,特别适合实时目标检测。实验过程中,不足之处在于对小目标的识别能力有限,泛化能力在复杂场景中仍需增强。此外,模型的计算复杂度较高以及对训练数据的依赖性也构成了性能瓶颈。未来的改进方向包括优化网络结构以降低资源消耗,提升小目标检测能力和复杂环境的适应性,以及应用数据增强和迁移学习以提高泛化能力。

本系统使用完整的数据集(4 963张原始图像) 进行训练,并完成部署。训练过程中设置迭代次数为60,学习率为0.01。训练和验证损失及准确率曲线如图6所示。

box_loss为定位损失,是评估预测框与真实框误差的指标,常用GIoU衡量,值越低表示定位越精确。图5显示,模型在训练集和验证集上均表现良好,误差持续减少。

cls_loss为分类损失,用于衡量分类准确性,通常使用交叉熵损失函数,其值越小表示分类越准确。由图5可见,模型在训练集上的表现较好,而在验证集上的表现一般,损失值先下降但最终有所上升。

dfl_loss为置信度损失,用于衡量模型对目标置信度的准确性,通常使用二元交叉熵损失函数,其值越小表示模型判断目标的能力越准确。由图5可见,模型在训练集和验证集上的损失值均呈下降趋势。

Precision(B) 评估模型正确预测为正例的比例,Recall(B) 衡量模型识别所有正例的能力,mAP综合反映模型在不同精度和召回率下的性能。由图6可见,训练过程中模型的相关指标均有所上升,表现出了较好的识别效果。最终异常检测效果图如图7所示,图8为具体的可视化大屏实时检测结果界面。

4结束语

本文针对景区安全管理需求,提出了一种基于YOLOv8的异常目标检测系统。该系统不仅利用了先进的深度学习技术,还结合迁移学习方法,实现了对多种异常行为的实时识别,并在实验中取得了良好的效果。实验结果表明,该系统具有较高的识别准确率和较快的推理速度,能够有效提升景区安全管理的效能。

未来的研究可聚焦于集成更复杂的网络结构、引入创新的注意力机制、融合多模态数据以及优化超参数调优策略,以进一步提高模型的精度和鲁棒性。同时,将系统应用于实际场景时需考虑模型的轻量化、硬件兼容性、实时性能和用户界面友好性,确保技术能够在资源受限的环境和多样化的应用需求中稳定运行。

猜你喜欢

目标检测
多视角目标检测与跟踪技术的研究与实现
视频中目标检测算法研究
行为识别中的人体运动目标检测方法
移动机器人图像目标识别
基于视频监控的运动图像检测算法研究
基于背景建模法的运动目标检测
基于P3电位的目标检测研究
智能视频技术在电力系统领域的应用
相关K分布杂波中扩展目标积累检测性能分析
基于连通域标记的目标检测算法设计与实现