Py学习  »  机器学习算法

NABNet:基于深度学习的物联网异常颈部行为检测警报系统

计算机视觉研究院 • 4 月前 • 83 次点击  

点击蓝字


关注我们

关注并星标

从此不迷路

计算机视觉研究院

公众号ID计算机视觉研究院

学习群扫码在主页获取加入方式

https://pmc.ncbi.nlm.nih.gov/articles/PMC11360098/

计算机视觉研究院专栏

Column of Computer Vision Institute

长期过度使用电子设备已导致久坐人群出现颈部疼痛和压迫性损伤等问题。如果不能及早发现并纠正,这些问题会对身体健康造成严重风险。通用目标检测器无法充分捕捉这种细微的颈部行为,从而导致漏检。

PART/1

     概述   

在本文中,我们探索了一种基于深度学习的颈部异常行为检测解决方案,提出了一个名为NABNet的模型,该模型结合了基于YOLOv5s的目标检测和基于轻量级OpenPose的姿态估计。NABNet从全局到局部提取颈部的详细行为特征,并通过分析数据的角度来检测异常行为。我们将NABNet部署在云和边缘设备上,以实现远程监控和异常行为报警。最后,我们将基于NABNet的物联网系统应用于异常行为检测,以评估其有效性。实验结果表明,我们的系统能够有效检测颈部异常行为并在云平台上发出警报,最高准确率达94.13%。


PART/2

     背景   

如今,由于对手机、电脑等电子产品的高度依赖,久坐生活方式在年轻人中十分常见。不正确的坐姿是颈部疾病的表现之一。对异常行为的早期检测和监控可以提高久坐人群的生活质量,同时减轻医疗资源的压力,并具有显著的商业价值。异常行为可定义为人们可能面临危险的动作。在本文中,我们将长期头部倾斜和低头识别为颈部异常行为。传统方法依赖环境设备来获取环境数据和人体数据,以进行异常行为监控。这种方法对环境噪声敏感,且缺乏灵活性。近年来,关于异常行为检测的研究表明,基于卷积神经网络(CNN)的计算机视觉在检测方面具有较高的鲁棒性和准确性。虽然基于目标检测的方法适用于跌倒、重复活动等全身异常行为,但对于涉及较小局部运动的颈部异常行为检测却无效。在本文中,我们提出了一种针对室内场景颈部异常行为的智能检测与监控解决方案,称为颈部异常行为网络(NABNet)。NABNet旨在检测头部倾斜和低头事件。首先,NABNet使用YOLOv5s从输入中提取特征,以检测和跟踪目标。为了提高小目标检测的准确性,我们将坐标注意力(CA)机制添加到YOLOv5s中。其次,我们使用轻量级OpenPose获取人体的关键点和关节信息。通过身体方向判断、角度计算和修正来检测异常行为事件。现有基于CNN的模型计算开销大,在保持良好实时性的同时,难以在边缘端物联网设备上运行。因此,我们构建了所提出的基于NABNet的物联网警报系统,以快速且低成本地部署在边缘设备上。颈部异常行为被实时检测,从而可以向医疗专业人员或护理人员发送警报。

我们的主要贡献总结如下:

1.本文提出了一种基于深度学习的解决方案,用于监控和检测久坐人群的颈部异常行为;具体而言,所提出的NABNet可检测头部倾斜和低头事件。

2.充分考虑了颈部异常行为的固有特征,以减少误报。NABNet结合YOLOv5s和CA机制来增强目标检测的鲁棒性,然后利用OpenPose引导的骨骼和角度关系信息来判断颈部位置。

基于NABNet的检测系统被部署在边缘端物联网设备上,并在实际场景中测试了其性能。我们的实验结果证明了NABNet在检测颈部异常行为方面的有效性。

目标检测

近年来,基于神经网络算法的目标检测方法在工业领域得到了广泛应用,尤其是在智能监控系统中。当前主流的目标检测算法主要分为两阶段和单阶段方法。前一种方法会生成一系列候选框样本,然后使用CNN对样本进行分类。两阶段方法包括R-CNN、fasterR-CNN、R-FCN和LibraR-CNN等网络。后一种方法无需生成候选框,而是直接将目标框定位问题转化为回归问题。单阶段方法包括YOLO、SSD和RetinaNet等网络。单阶段算法在速度方面更具优势,在实际检测应用中得到了越来越多的应用,包括医学癌细胞检测、人脸检测、产品检测等。然而,它们的检测准确率略低于两阶段算法,且不擅长检测小目标。

因此,这些最先进的目标检测器在检测颈部异常行为时效果不佳,因为它们无法捕捉颈部旋转等细微的特征差异,而这些差异对于颈部异常行为的分类和定位至关重要。在本文中,通过结合目标检测和姿态估计来学习颈部行为特征,以获得更好的异常行为检测结果。

异常行为检测

当前的异常行为检测方法大致可分为三类:基于环境设备的方法、基于可穿戴设备的方法和基于计算机视觉的方法。基于环境设备的方法和基于可穿戴传感器的方法需要专用设备来收集环境数据(例如地面压力、声音、振动)或物体运动数据(例如速度、加速度)。然而,基于环境设备的方法对环境噪声敏感,导致误报率较高。Ma,C等人使用压力传感器来检测人们的异常行为,通过模糊推理系统评估运动和姿势转换的强度。基于压力传感器、被动红外(PIR)传感器等,Arifoglu,D等人识别了老年人的遗忘或重复等异常行为。Tokas,P等人使用微软Kinect传感器检测正常和异常的坐姿,结合随机森林和支持向量机分类器,最高准确率达到92.85%。基于可穿戴设备的方法要求个体佩戴传感器,这可能会造成不适和不便。另一方面,基于计算机视觉的方法通常使用摄像头捕获图像,克服了基于可穿戴设备方法固有的设备固定放置的局限性,并且可以同时对多个事件进行可见捕获。

得益于摄像头监控的普及以及深度学习强大的特征提取能力,许多基于图像的异常行为识别研究应运而生。异常行为检测的核心技术是识别摄像头监控所捕获图像中异常行为的类别和位置。越来越多的研究将异常行为检测作为目标检测的子任务展开。Alruwaili,M.等人提出了一种基于Yolov5的实时检测与跟踪模型,用于针对瘫痪、肢体缺陷及其他疾病患者。WangL.等人提出了一种基于注意力的时空网络,用于识别老年人的异常活动行为和位置,例如多次上厕所、忘记洗碗等。Fang,M-T.等人提出了一种使用改进YOLOv3的实时异常行为检测方法。这些方法试图通过基于深度学习和时间监控信息的改进通用目标检测方法来处理异常行为检测问题。

此外,许多方法会根据具体场景尝试预先定义不同类型的异常行为。Mehmood,A.等人将人体跌倒、某些类型的可疑行为和暴力行为定义为异常活动。他们提供了一个轻量级框架,以有效表示并区分正常事件和异常事件。Fu,Y.等人提出了一种基于YOLOv7的轻量级GD-YOLO网络,用于检测包括吸烟和使用手机在内的异常行为。在本文中,基于办公场景中的行为,我们将头部倾斜和低头姿势定义为颈部的异常行为。我们专注于检测颈部关节的异常行为,并结合目标检测和姿态估计以更好地检测异常行为。

PART/3

     新算法框架解析   

本文提出了一种名为NABNet的异常行为检测网络,该网络基于YOLOv5s和轻量级OpenPose,用于检测室内场景中久坐人群的头部倾斜姿势。此外,我们还提出了一个基于NABNet的物联网系统,该系统利用训练好的NABNet和硬件设备,如图1所示。

图1

摄像头采集视频,在边缘设备上进行处理以检测异常行为,结果上传至云端以发出警报。该系统的主要组件包括视频采集、图像传输与处理以及基于NABNet的检测部分。基于YOLOv5s目标检测网络和轻量级OpenPose姿态估计网络,NABNet从全局到局部提取头颈部的详细行为特征,以检测头部倾斜和低头的异常行为。

目标检测与跟踪

YOLOv5s是一种基于CNN的目标检测模型,由骨干网络、颈部网络和头部网络组成。输入经过骨干网络(CSPDarknet53)进行特征提取,颈部网络进行特征融合,头部网络进行目标预测。骨干网络采用Focus、CBL、CSP和SPP结构,在不降低准确率的前提下减少计算量。颈部网络采用自上而下的FPN和自下而上的PAN模块进行特征融合。最后,我们采用GIOU损失来监督该网络。CA机制被嵌入到YOLOv5s的骨干网络结构中,以增强特征提取和目标注意力能力,如图2所示。
图2

与其他通过二维全局池化将网络提取的特征转换为单一特征向量的机制不同,CA机制将通道注意力分解为两个一维特征编码过程,然后分别沿两个空间方向聚合特征;一个空间方向捕获长距离依赖关系,另一个保留精确的位置信息。通过应用激活函数,得到具有特定空间依赖关系的两个特征图,增强了对感兴趣目标的注意力。

我们根据目标的运动模式对其进行跟踪,以分析行为类别。为此,我们设计了一种基于扩展卡尔曼滤波器的跟踪器,如图3所示。跟踪过程分为初始化和跟踪两部分:在本文中,将YOLOv5s检测失败的帧作为跟踪器的第三帧,而前两帧作为跟踪器的初始状态。初始化后,计算先验状态和误差协方差矩阵,并在先前状态附近创建多个候选区域。使用差异哈希将候选区域与前一帧的跟踪结果进行匹配,以选择最佳匹配的候选区域。将匹配值与阈值进行比较,如果超过该阈值,则使用最佳匹配的候选区域作为观测值来更新系统;否则,认为匹配失败,需要等待检测器再次检测目标。

传统卡尔曼滤波器假设高斯分布和线性关系;然而,由于目标变形和环境变化,人体目标跟踪具有非线性特性。扩展卡尔曼滤波器可通过泰勒展开解决非线性问题。扩展卡尔曼滤波器的状态方程和观测方程如下:

其中,xk xk-1分别表示第k帧和第k-1帧的状态向量,f()是状态转移函数,wk-1是过程噪声,假设其服从均值为0、协方差矩阵为Q的多元正态分布。过程噪声源于实际场景中的不确定因素,例如突然加速、减速和转弯。此外,zk是观测向量,h()是状态观测函数,用于将状态空间转换为观测空间,vk是观测噪声,假设其服从均值为0、协方差矩阵为R的多元正态分布。

颈部异常行为检测

由于颈部运动细微,直接使用目标检测方法无法实现,因为它只能基于剧烈运动做出判断(参见3.2节)。受MajiD.等人的启发,本文采用YOLOv5s目标检测模型结合轻量级OpenPose姿态估计方法来判断颈部状态。该方法的优势如下:

(1)与单独使用轻量级OpenPose相比,将YOLOv5s与轻量级OpenPose结合可提高模型对遮挡的鲁棒性——单独使用轻量级OpenPose时,若关键点和关节信息丢失会导致检测错误;

(2)让轻量级OpenPose仅处理YOLOv5s提取的目标,有助于其忽略无关目标,从而减少计算量并提升实时性能。

我们根据颈部角度判断异常行为。低头状态的评估标准是颈部到鼻尖的向量与颈部到单侧肩部的向量的比值。头部倾斜状态的评估标准是颈部与肩部的夹角。当摄像头不在目标正前方位置时,检测到的角度与颈部实际角度存在差异,如图4所示。
4
为解决这一问题,我们首先确定人体朝向,然后通过摄像头标定获取二维与三维目标的映射关系,最后通过计算欧拉角得到目标与摄像头的夹角。随后,通过仿射变换进行角度修正,以降低角度的偏差,如图5所示。
5

仿射变换如下:

该系统通过摄像头监控捕获室内视频,并将其传输到边缘设备,利用NABNet进行分析。即使未检测到异常行为事件,边缘设备也会持续跟踪目标。一旦检测到异常,系统就会与云端交互并发出警报。

基于NABNet的物联网警报系统

我们构建了一个基于NABNet的物联网异常行为检测警报系统,用于识别头部倾斜和低头姿势。该系统的结构如图6所示。边缘设备必须处理摄像头采集的视频,以跟踪目标并判断异常行为,这需要相应的计算能力。所选边缘设备还必须具备可扩展性,以增强系统的可用性。我们选择树莓派3B作为控制终端。树莓派3B以其紧凑的尺寸和强大的功能而闻名,广泛应用于智能家居、媒体设备和工业控制等领域,其主要参数详见表1。我们选择了DF200摄像头,其分辨率为1280×1080P,帧率为每秒30帧。该系统通过摄像头监控捕获室内视频,并将其传输到边缘设备,利用NABNet进行分析。即使未检测到异常行为事件,边缘设备也会持续跟踪目标。一旦检测到异常,系统就会与云端交互并发出警报。


PART/4

     实验及可视化   

实验设置

我们开展了实地实验来评估我们方法的有效性,实验设备包括摄像头、1.7米支架、嵌入式设备和一台计算机,如图7所示。


图7


我们选取了80名参与者,其中男性60人,女性20人,年龄在24至30岁之间,身高在1.55米至1.85米之间。参与者在距离摄像头0.5米和0.75米的位置分别做出阳性姿势(头部倾斜或低头)和阴性姿势(正面姿势)。我们使用精确率(Precision)、召回率(Recall)和准确率(Accuracy)来评估所提模型的性能:

其中,TP是正确检测到的阳性样本数量,FN是错误检测的阴性样本数量,FP是被错误分类为阴性的阳性样本数量,TN是正确检测到的阴性样本数量。

基于NABNet的物联网系统评估

参与者面向摄像头,在正面位置、右旋转30°、左旋转30°、右旋转60°和左旋转60°的情况下做出阳性和阴性姿势,如图8所示。


图8


样本数量为160(80人×两种姿势)。

2

2中的实验结果表明,正面位置和旋转30°时的检测准确率高于旋转60°时的检测准确率。总体而言,随着旋转角度的增加,检测准确率逐渐降低。

9

9展示了我们的多节点系统获得的颈部异常行为检测结果;(a)显示对照组中参与者站立时被系统正确检测的结果,而(b)显示参与者部分被遮挡时的结果。在后一种情况下,系统仍然能够检测到颈部的异常行为。多节点检测和最终结果显示在监控视频上方,最终结果是对多节点检测结果的综合判断。云平台上的远程监控数据显示在监控视频下方,表明是否发生异常行为事件以及是否实现了警报。

PART/5

     结论   

本文聚焦颈部异常姿势的局部行为,提出了一种基于目标检测和姿态估计的异常行为检测网络NABNet。为适配计算能力有限的设备,我们还开发了一个基于NABNet的边缘设备物联网检测与警报系统,可在云平台上实现监控和早期警报。我们的实验结果证明了所提方法的有效性。

与大多数研究一样,当前研究的设计存在局限性。由于缺乏专门针对颈部异常行为的大规模公共数据集,我们尚未在该类数据集上验证我们方法的有效性,这凸显了该领域进一步研究的必要性。未来,我们将考虑增加关键点数量,并将NABNet与其他姿态估计模型结合,以提高其检测多种异常行为的能力。

有相关需求的你可以联系我们!

END



转载请联系本公众号获得授权


计算机视觉研究院学习群等你加入!


ABOUT

计算机视觉研究院

计算机视觉研究院主要涉及深度学习领域,主要致力于目标检测、目标跟踪、图像分割、OCR、模型量化、模型部署等研究方向。研究院每日分享最新的论文算法新框架,提供论文一键下载,并分享实战项目。研究院主要着重”技术研究“和“实践落地”。研究院会针对不同领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

往期推荐 

🔗

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/190141