本文来源公众号“集智书童”,仅用于学术分享,侵权删,干货满满。
原文链接:HGO-YOLO 突破硬件限制 | 仅 4.6MB 参数实现 87.4% 精度+56 FPS 实时检测
导读
准确且实时的目标检测对于异常行为检测至关重要,尤其是在硬件受限的场景中,平衡准确性和速度对于提升检测性能至关重要。本研究提出了一种名为HGO-YOLO的模型,该模型将HGNetv2架构集成到YOLOv8中。这种组合通过GhostConv简化模型复杂性的同时,扩大了感受野并捕捉了更广泛的特征。作者引入了一个轻量级的检测Head,OptiConvDetect,它通过参数共享有效地构建了检测Head。
评估结果表明,所提出的算法在CPU上实现了mAP @0.5 为 87.4% 和召回率为 81.1% 的性能,模型大小仅为4.6 MB,帧率为56 FPS。HGO-YOLO不仅提高了3.0%的准确性,还通过将计算负载减少了51.69%(从8.9 GFLOPs降至4.3 GFLOPs),同时将帧率提高了1.7倍。此外,在Raspberry Pi4和NVIDIA平台上进行了实时测试。这些结果表明,HGO-YOLO模型在异常行为检测中表现出优异的性能。
1. 引言
在当代社会,检测公共场所和私人建筑中的异常行为已经变得普遍,尤其是在摄像头和视频监控系统广泛部署的背景下。这些系统旨在监测异常行为,以识别潜在的威胁或安全隐患,这是维护公共安全的关键方面。然而,传统的监控系统在很大程度上依赖于人工操作。它们需要操作员观看视频流。由于人类特质,如疲劳和注意力分散,这可能导致效率低下。这些因素往往会导致错过事件或反应缓慢。这可能会使及时检测潜在威胁变得困难。同时,这也降低了维护公共安全和安宁的有效性。
智能检测系统已被开发出来以应对这一挑战。这些系统可以自动发现不同类型的异常行为。本文将探讨检测异常行为的三个常见情况:跌倒、斗殴和吸烟[1]。通过帮助快速准确地识别异常行为,这些系统提供了强大的工具。它们可用于监控、安全、医疗保健等领域。这有效地应对了潜在威胁。通过自动化识别过程,这些系统减轻了人工操作者的工作负担。它们还提高了监控系统的速度和准确性。这有助于更好地监控和管理异常行为。这项技术的应用具有巨大潜力。它可以在许多行业中提高公共安全和系统效率[2]。
深度学习技术的兴起极大地拓展了研究机会。深度学习方法能够自动在复杂数据中找到并理解High-Level特征。这种能力有助于检测异常行为。OpenPose[4]是一种专注于人体姿态估计的技术。它通过检测许多关键点,提供了关于人体运动的详细信息。OpenPose在监控姿势变化方面非常出色。它在寻找如跌倒等异常行为方面特别有用,因为它能够捕捉姿势中的微小运动。然而,OpenPose相当复杂,需要大量的硬件资源和计算能力。在视线被阻挡等困难情况下,它可能工作不佳。相比之下,LSTM(长短期记忆)网络[5]是一种循环神经网络。它们被设计用于处理序列数据。这些网络已被广泛用于模拟异常行为随时间的变化。通过使用其长期记忆单元,LSTMs可以保持重要的长期信息。它们在捕捉时间序列数据中的复杂模式方面也表现出色。
然而,LSTM可能会遇到挑战。这些挑战包括梯度消失或爆炸。这种情况通常发生在它们处理长序列时。因此,在异常行为变化快速的情况下,它们的性能可能并不理想[6]。另一方面,YOLO(You Only Look Once)算法提供了高效的目标检测[7]。它通过将图像划分为网格来工作。然后,它同时预测目标。这允许实时处理和获得图像的全局视图。YOLO在速度和适应性方面表现强劲。这使得它能够在实时监控应用中表现出色。然而,它也可能面临挑战。这发生在其定位精度较低时。这个问题通常出现在小目标或密集排列的目标上。本研究选择了YOLO算法,以符合其目标和需求。它实时工作和效率的特点与快速监控异常行为的需求相匹配。此外,其全局感知功能有助于它适应不同的情况和复杂环境。最后,其简单的网络结构有助于降低系统开发所需成本和时间。经过仔细考虑这些因素,作者选择使用YOLO算法作为本研究检测异常行为的主要框架。作者提出的模型HGO-YOLO基于YOLOv8。它的目标是提高检测异常行为的性能和准确性。
本文展示了主要贡献。这些贡献如下:
-
1. HGNetv2架构被用于在 Backbone 网络中进行层次化特征提取,旨在提升其处理复杂图像数据的能力。该架构包含多个具有不同滤波器大小的卷积层,使网络能够捕捉广泛的特征范围,从而提高其整体性能。
-
2. 将卷积操作中的Conv替换为GhostConv不仅有效减少了计算量和参数数量,而且在高效提取特征信息方面也表现出色。
-
3. 设计一个OptiConvDetect检测Head,该检测Head不仅利用了解耦头的优越性能,还降低了模型参数和计算成本,使模型更加轻量化和高效。
2. 相关工作
为了解决多尺度目标和复杂图像背景的挑战,研究行人提出了各种改进算法[8]。为了解决多尺度目标检测问题,一些研究行人专注于重构特征金字塔结构。例如,刘等人[9]基于YOLOv7-tiny开发了PDT-YOLO算法。他们将PANet结构集成到 Head 组件中,结合了自底向上的增强路由和自适应特征池化操作。这种方法允许不同层次的特征之间进行交互和融合。它提高了不同尺寸目标的检测精度。此外,在[10]的研究中,建议使用QAFPN来充分结合来自不同尺寸四层特征的信息。这阻止了信息丢失或变得不那么有用。它还减少了相邻层之间的差异。因此,模型在检测各种尺寸的目标方面变得更加出色。
这些研究通过跨层特征融合和自适应特征池化提高了检测精度。它们还使特征图更具表现力,并帮助模型更有效地检测目标。然而,这些改进也带来了一些缺点。模型变得更加复杂,导致训练和推理过程中的计算成本更高。为了满足实时性能的需求,研究行人通常使用轻量级 Backbone 网络。崔等人[11]将MobileNet与YOLOv4框架相结合。这创建了一个用于特征提取的轻量级 Backbone 。他们设计了多尺度特征融合模块。这些模块增加了更多的特征信息。因此,他们创建了一个轻量级的目标识别模型。该模型支持在不同情况下快速准确地检测目标。类似地,[12]引入了LFF-YOLO。它基于YOLOv3,使用ShuffleNetv2作为 Backbone 。这种方法在参数和推理速度上实现了大幅降低。然而,这些轻量级网络具有有限的层数和参数。这可能会限制它们捕捉复杂特征和细节的能力。因此,可能会导致无法很好地表示复杂模式。
此外,一些研究行人使用了轻量级卷积。这有助于减少参数数量。Qin等人[13]将深度可分离卷积添加到YOLOv3中。这一改动显著减少了参数数量和计算量。重要的是,它在不损失精度的前提下做到了这一点。这使得更深层、更宽的神经网络得以有效使用。同样,[14]引入了DualConv轻量级深度神经网络,将MobileNetV2的参数减少了54%。Zhao等人[15]使用ShuffleNetv2作为提取石榴特征的 Backbone 网络。他们利用分组卷积来降低计算负载,并通过随机通道排序增加通道交互。这些轻量级技术降低了计算和参数数量,提高了处理速度和效率,但它们也可能降低精度并限制特征提取能力。
3. 方法
3.1 YOLOv8算法
YOLO系列算法展现出高度相似性。本研究中使用的YOLOv8模型主要由三个部分组成: Backbone、 Neck 和 Head ,如图1所示。
Backbone负责从输入图像中提取特征信息。YOLOv8采用C2f(带有2个卷积的跨阶段部分网络 Bottleneck )结构以提高特征提取效率,并促进更丰富的梯度流信息,从而在保持轻量级设计的同时提升对图像内容的理解。此外,SPP(空间金字塔池化)机制通过串行和并行修改得到增强,变为SPPF。YOLOv8的 Neck 网络采用与PANet中使用的FPN(特征金字塔网络)相似的架构,有效地整合了不同尺度的特征,尤其在多尺度目标检测任务中表现出色。YOLOv8的 Head 网络负责检测目标和提供检测框的坐标和类别。
为此,它采用了解耦 Head 结构,将回归和预测分支分离。此外,它集成了来自分布Focal Loss策略的积分形式表示,以管理回归分支。这种战略方法通过将坐标预测从确定性单值转换为分布,从而提高了目标检测性能。
3.2 HGO-YOLO
为了提高准确性和便于快速识别异常行为,作者引入了HGO-YOLO方法,其架构如图1所示。主干结构由HGStem、HG_Block、DWConv、Ghost_HGBlock和SPPF模块组成。关于 Head 网络,作者提出了一种名为OptiConvDetect的新型检测Head,通过采用参数共享和PConv卷积层来减少模型参数和计算成本。HGO-YOLO使用MPDIoU损失函数,提升了其性能。
3.2.1 HGNetv2
HGNetv2网络通过在不同尺度上提取特征和聚合信息,捕捉图结构中的多层次信息。它利用图卷积操作来聚合节点之间的关系,自适应调整信息聚合策略,并增强特征表示能力和模型鲁棒性。HGNetv2的结构图如图1所示。
3.3.2 Ghost HGBlock
将ConvBNAct替换为GhostConvBNAct显著提升了网络性能。GhostConvBNAct通过生成主特征和伪特征,增强了捕获多尺度特征的能力,同时降低了计算量和参数数量。这使得网络在处理大规模数据时更加高效。此外,这种结构还提高了特征表达能力和准确性,使其非常适合资源受限的环境,如移动设备或嵌入式系统。
3.2.3 OptiConvDetect
此设计允许模型在处理不同输入大小时自动调整参数,保持高效计算和准确预测。
4. 实验分析与可视化
4.1 数据集描述
本研究使用了由六个公开数据集组成的数据库,具体如下所示:
-
1. 跌倒数据集:包括UR跌倒检测数据集、跌倒检测数据集、多摄像头跌倒数据集以及COCO数据集的片段。
-
2. 打斗数据集:包括监控摄像头打斗数据集、视频自动暴力检测数据集和真实生活暴力场景数据集。
-
3. 吸烟数据集:该数据集包含2912张通过互联网从真实场景中收集的图像。
对于从公共数据集中获取的视频流,作者最初进行了逐帧处理,将视频数据转换为图像。由于在此过程中可能生成大量高度相似的照片,作者实施了数据集过滤以减少冗余数据。这导致了战斗数据集中共有3224张图像,以及跌倒数据集中共有4065张图像。在这些10,201张图像的标注过程中,作者建立了详细的标注标准,并将图像分为四类:跌倒、战斗、烟雾和行人。
随后, Token 数据集按照8:1:1的比例被划分为训练集、验证集和测试集,以评估HGO-YOLO算法的有效性。
4.2 实验设置
为了全面评估HGO-YOLO算法的性能,作者实现了包括YOLO的基本版本(v5、v6、v7、v8、v9、v10、v11)和RT-DTETR算法,所有这些算法都是在PyTorch中开发的。作者对这些算法与改进后的YOLOv8n的性能进行了比较分析。实验设置使用了Intel(R) Xeon(R) Silver 4310 CPU 2.10GHz、NVIDIA A100 80GB PCIe GPU和Ubuntu 20.04.2操作系统。在网络模型训练阶段,作者将训练迭代次数配置为200次,批量大小为32。为确保评估框架的一致性,作者采用了原始仓库中定义的模型和扩展超参数。选择这种方法是为了避免任何混淆,这种混淆可能来自使用不同的超参数设置。通过这种方式,确保实验可以轻松比较,同时也使结果更加可靠。
4.3 评估指标
为了公平地评估HGO-YOLO模型的工作效果,本研究采用了常见的指标。这些指标包括mAP、FPS和GFLOPs。平均精度均值(mAP)是一个重要的衡量标准。它有助于检查目标检测模型的工作效果,尤其是在处理多个类别时。它通过计算每个类别的平均精度(AP)来全面评估模型在不同类别中寻找目标的能力。计算公式见(13)。AP来源于模型创建的精确度-召回率曲线(PR曲线)。该曲线显示了精确度(所有正样本中真正样本的比例)和召回率(所有实际正样本中真正样本的比例)之间的平衡。随着这种平衡的展示,模型的置信度阈值会发生变化。AP的公式如下:
TP代表真正例(True Positives),指模型正确地将这些案例分类为正例的数量。FP代表假正例(False Positives),指模型错误地将某些案例判断为正例,但实际上它们是负例。FN(False Negatives)表示模型错误地将一些实际为正例的案例分类为负例的数量。
GFLOPs代表推理阶段的计算负载。较低的GFLOPs表示推理速度更快,计算需求降低,使模型更加高效,尤其是在需要实时识别或处理的情况下。
4.4 消融研究
4.5 不同尺度下实验结果分析
实验结果总结如下:表2展示了HGO-YOLO模型在整个实验过程中取得的卓越检测mAP结果。结果表明,模型性能的提升与其规模密切相关。较小的模型在参数大小上表现出更显著的改进。以mAP @0.95 为标准,YOLOv8n和YOLOv8s分别提高了3个百分点和3.7个百分点。以 mAP @0.95 为标准,YOLOv8n提高了2.9个百分点。值得注意的是,尽管HGO-YOLOs模型的参数是HGO-YOLOn的三倍,但HGO-YOLOn的性能与HGO-YOLOs相当。在具有136.7百万参数的YOLOv8x模型中也观察到了类似的改进趋势。
表2清晰地说明了以参数数量、浮点运算次数和每秒帧数(FPS)衡量的模型复杂度的增加。得益于HGO-YOLO模型的独创性,模型在不同规模下的三个标准均取得了显著的改进。即使是较大的YOLOv81模型,其性能提升也达到了 89%mAP @0.95 ,展示了HGO-YOLO方法的有效性。为了增强作者研究发现的展示效果,作者对每个模型的性能提升进行了彻底分析。作者旨在通过可视化性能曲线,如图6所示,生动地描绘出在相同条件下不同规模模型之间的性能差异。
4.6 PConv与Conv替换位置分析
尽管PConv在处理遮挡和从特定区域提取特征方面表现出色,但仅依赖它可能会降低模型在不同任务中的灵活性和适应性。另一方面,Conv-Conv模型的整体准确率最低,在任何异常行为上都没有明显的优势。这可能是由于传统的卷积层对所有输入特征同等对待,没有关注输入的更关键部分。
对于需要高精度且计算需求可控的任务,PConv-Conv模型脱颖而出,成为最佳选择。该模型将部分卷积(PConv)用于初始特征提取,结合传统卷积(Conv)以细化和处理特征。PConv在处理不完整数据或注意力机制方面效果显著,而后续的Conv层则增强了特征表示,以实现更好的目标检测。这种混合方法提高了模型在复杂场景中检测和定位目标的能力,同时保持了计算效率。
4.7 与其他方法的比较
为了全面评估HGO-YOLO的性能,作者在数据集上进行了系列实验,并在表4中详细列出了检测结果。实验结果表明,HGO-YOLO在保持56个假阳性(FPs)的优异表现的同时,实现了87.4的mAP值,在两个指标上均领先。
此外,与RT-DETR[18]相比,HGO-YOLO在mAP和检测速度上均有显著提升,mAP提高了6.2,FPS提升了7倍。与YOLOv5n、YOLOv6n、YOLOv7-tiny和YOLOv8n相比,HGO-YOLO分别实现了2.8、3.3、4.2和3的更高mAP分数。在检测速度方面,HGO-YOLO的56 FPS是最高的。值得注意的是,HGO-YOLO在检测跌倒和斗殴等异常行为方面表现最为准确。总体而言,HGO-YOLO在保持相对较快的检测速度的同时,有效地检测了异常行为。
4.8 不同损失函数的实验
本文研究了各种类型的IoU[19]损失函数,并通过实验确定哪种函数能够实现最佳性能。评估了包括DIoU损失[20]、CIoU损失[21]、MPDIoU损失[22]和Inner-CIoU损失[23]在内的几种损失函数。
表5展示了比较结果。当使用MPDIoU作为HGO-YOLO的损失函数时,HGO-YOLO实现了最高的mAP值,达到87.4%。与提到的其他损失函数相比,MPDIoU被确定为更适合HGO-YOLO[24]。
4.9 测试
为了评估改进模型在不同设备上的实时检测能力,作者在树莓派和NVIDIA设备上部署了YOLOv8和HGO-YOLO,并进行了测试。结果如下表所示:
从表中可以看出,HGO-YOLO在两款设备上均优于YOLOv8,尤其是在NVIDIA设备上,其帧率达到33.33FPS,展现了显著的实时检测能力。
4.10 可视化
为了比较HGO-YOLO模型与 Baseline 模型在异常检测数据集上的性能,作者进行了一系列可视化分析。图7展示了YOLOv8n和HGO-YOLO模型在相同验证输入下对跌倒类别的预测结果。很明显,与YOLOv8n相比,HGO-YOLO在准确检测复杂姿态方面表现出更高的置信度,即使在暗光和严重遮挡等具有挑战性的条件下也是如此。这些发现突出了HGO-YOLO为实时检测系统提供更可靠性能的能力。
HGO-YOLO算法在打斗类别上的检测性能如图8所示。在室内昏暗照明和空间受限的场景(a)和(b)中,YOLOv8n的检测结果显示出低置信度和漏检情况。改进的算法不仅提高了检测置信度,还能迅速且准确地识别复杂的人体动作。在描绘拥挤打斗场景的(c)场景中,快速准确地检测打斗行为至关重要。与YOLOv8n相比,HGO-YOLO实现了更高的置信度水平,而YOLOv8n可能会产生误报检测。
图9展示了YOLOv8n与HGO-YOLO在烟雾类别检测结果上的比较。YOLOv8n在检测小目标时会出现误报,而HGO-YOLO表现优异。在图像(c)中,夜间拍摄的照片,低光照对检测器构成了挑战。比较结果表明,HGO-YOLO在检测置信度方面超越了YOLOv8n,且没有误报。HGO-YOLO算法有效地增强了YOLOv8n对小目标的检测能力,提高了对背景噪声的抵抗性,并降低了误报和漏报率。
5. 结论
本研究聚焦于改进的HGO-YOLO模型在实时检测中的应用性能。作者通过对Raspberry Pi和NVIDIA平台进行系统性的性能测试,对HGO-YOLO进行了性能测试。结果表明,HGO-YOLO在两种设备上均优于YOLOv8,尤其是在NVIDIA平台上,它实现了更高的帧率和更低的延迟,展示了其卓越的实时检测能力。然而,尽管HGO-YOLO在各种场景中表现良好,但它也存在某些局限性。例如,在检测小烟雾目标时,其准确性可能会受到影响。
此外,在资源受限的设备上,其性能可能不如在高性能平台上优化得那么理想。因此,未来的研究应着重于进一步优化HGO-YOLO,以增强其在不同应用场景中的稳定性和准确性,同时考虑硬件资源限制。
参考
[1]. HGO-YOLO: Advancing Anomaly Behavior Detection with Hierarchical Features and Lightweight Optimized Detection
THE END !
文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。