工厂场景中的异常行为检测

2024-02-21 06:00郭育恒陈骅桂
软件导刊 2024年1期
关键词:关键点分类器人体

赵 廉,周 雷,郭育恒,陈骅桂

(1.上海理工大学 健康科学与工程学院,上海 200093;2.上海应用技术大学 计算机科学与信息工程学院,上海 201418)

0 引言

随着人工智能的发展和工厂产业化升级,将计算机与机器人融入工业生产中,打造“智慧工厂”模式成为近年来国内外智能制造领域的主流趋势[1],借助人工智能技术保障安全生产的智慧安全方向是其中重要的一环[2-3]。在传统工业生产中,主要依靠管理者人眼观察或人工审查视频的方式,发现生产中出现的异常情况,该模式的缺点在于需要耗费额外人力,容易出现漏检现象,因此有必要通过人工智能方法设计一种自动化识别异常的框架,实现在工业场景中的自动化异常检测。

本文主要针对工业场景中监控摄像头拍摄的人员情况,提出一种异常行为检测框架,使用深度学习和人体关键点识别技术对生产中影响安全的行为(工人睡觉、发生跌倒)设计检测模型。具体为采取以人体姿态识别网络获取关键点特征,使用关键点特征进行分类模式,以检测当前场景中是否存在异常情况。为了比较各种分类方法的优缺点,使用在工厂场景中表现较优的随机森林(RF)[4]、逻辑回归(LR)[5]、支持向量机(SVM)[6]、K 最邻近(KNN)[7]等多种线性和非线性分类器及使用由4 种分类器构成的集成学习模型,在工厂数据集上进行比较实验。

1 相关工作

目前,通常采取人体行为识别技术检测工厂生产中出现的睡觉、跌倒等异常情况[8]。人体行为识别是近年来机器学习领域的热点问题之一,国内外已有相当多的成熟方法和技术路线可供选择。早期,行为识别通常借助硬件传感器或可穿戴设备实现,特别在跌倒检测领域已有大量应用[9]。Clemente 等[10]设计由放置于地板上传感器组成的系统,通过多个传感器相互协作,实时检测房间中关门、物体掉落、人员跌倒等事件。Baghdadi 等[11]设计可穿戴设备记录人的步态,预测使用者当前的疲劳程度。这些设备的优点在于识别准确率高,部分设备具有实时传输数据功能,缺点在于使用不便、器材成本较高,因此不适用于工业场景中。

人体姿态识别作为计算机视觉的重要应用,使用视频或图像手段分析人体姿态是目前普遍做法,包含使用深度相机或红外相机进行人体行为识别,利用Openpose[12]、Hrnet[13]等开源人体检测模型在普通RGB 图片中得到关键点,进而进行行为识别操作。对于前者而言,张浩[14]设计了基于深度相机的三维重建方法,在较大空间范围内捕捉人与物体的交互过程,通过动静模型的混合体素分配机制,最终实现了人与场景的联合实时三维重建。任丹彤等[15]利用红外相机设计了可见光—红外光双光融合算法,使用YOLO 模型对车间6 类异常行为进行检测,具有良好的实时性和准确性。对于后者而言,Chen 等[16]利用Openpose 提取人体关键点,通过计算髋关节中心的下降速度、人体中心线与地面的夹角等指标来检测跌倒,识别准确率达到97%。后者相较于前者具有两个优点:成本较低,不依赖除计算机外的其他外部设备;可处理场景中多个目标、多种行为,应用范围更广泛,在工厂场景中优势更为明显。

综合分析国内外研究现状发现,在工业场景中进行异常行为检测时,考虑到数据大多为监控视频,因此本文以普通RGB 图片为研究主体,使用人体姿态检测模型进行实验更符合实际情况和成本需求。

2 研究方法

2.1 异常行为检测算法

如图1所示,本文所提算法分为3个步骤。

Fig.1 Overall algorithm process图1 算法整体流程

步骤1:以工业场景中的人物图片或视频作为模型输入。

步骤2:使用关键点检测模型(本文使用High-Resolution Net,HRNet)从图中检测人物关键点,并输出处理图像。

步骤3:基于步骤2 得到的17 个关键点特征,训练分类器并进行集成,完成异常行为检测。

需要注意的是,该框架不依赖HRNet 网络,可替换为任何具有人体关键点检测的网络模型(Openpose、Alpha-Pose[17]),因此具有良好的可拓展性,更适合部署到一些现有的工业机器人或工厂智慧助手当中[18]。关键点检测的目的是将目标图片中的图像特征转变为人体关键点特征向量,进而使用分类器或分类规则进行分类。

2.2 关键点检测方法

HRNet 网络(High-Resolution Net)是针对2D 图像单人姿态估计的开源方法,网络结构如图2 所示。该网络由并行的高分辨率和低分辨率子网络组成,在多分辨率子网络间重复信息交换,图2 顶端为主干高分辨率子网,在整个网络中始终保持较大的特征图,避免因特征图放缩导致人体关键点位置信息丢失,其余各支路为多分辨率子网,随着网络的深入层数不断增加,网络分辨率从上往下依次降为原来的一半,对应的通道数翻倍。

Fig.2 Structure of HRNet attitude estimation model图2 HRNet姿态估计模型结构

多分辨率子网可得到不同尺度的特征图,同时每隔一层卷积层就会在现有多尺度网络间进行信息交换(主要采取通道合并concat 操作实现),达到多尺度融合的目的。该结构保证无论何种目标均能在网络传递的主干网络中始终保持较大的特征图,相较于传统的编码器—解码器(Encoder-Decorder)结构,避免了由于上/下采样操作导致特征图大小改变而引起的信息丢失问题,因此在关键点识别中具有较高的准确性。

本文选用以coco 数据集预训练HRNet 模型,使其具备检测人体17 个关键点的能力。按照coco 数据集定义,17个关键点对应的人体部位为鼻子、左眼、右眼、左耳、右耳、左肩、右肩、左手肘、右手肘、左手腕、右手腕、左胯、右胯、左膝、右膝、左脚踝、右脚踝,如图3所示。

Fig.3 17 key points of human body图3 人体17个关键点

以单人图片为输入,当HRNet 捕捉到人体时首先检测关键点,同时记录17 个关键点在图上两个维度的坐标值(x,y)及每个关键点的置信度评分,相当于每个人共有17×3=51 项特征。为了使关键点特征不受输入图片大小影响,将关键点图上坐标转换为相对位置坐标(x',y')。

式中:(x,y)为关键点原始坐标;w、h分别为图片的宽和高,相除后可使(x',y')的横纵坐标处于[0,1]范围;置信度分数s为百分率,处于[0,1],每个关键点都有相对位置的(x',y')坐标和当前关键点置信度分数s这3个特征。

2.3 异常行为检测方法

在获得关键点特征后,下一项任务是利用关键点特征判断人物当前状态。本文主要检测的异常行为是根据工业生产中实际需要,检测人员睡觉和跌倒行为。两项检测应用场景有所不同,睡觉主要在办公区域内,而跌倒则在生产区域内,无法设计单一模型对两种情况进行检测,因此本文分别设计了两套独立的模型用于两个不同区域。在分类方法选择上,以关键点检测得到的51 项特征为基础,选择机器学习领域,特别是姿态识别研究中常用的几种线性和非线性分类器建立预测模型。

2.3.1 支持向量机

支持向量机在深度学习出现前是表现最出色的算法之一,其思想是在训练样本的学习中构建一个超平面使数据线性可分,距离超平面最近的点为支持向量,以构建超平面作为决策曲面,现已广泛用于分类问题及回归问题。

2.3.2 逻辑回归

逻辑回归与线性回归思想类似,概念上是一种广义的线性回归分析模型,主要用于解决二分类问题,优点在于可直观分析各变量贡献程度,可解释性较好;缺点则是对线性不可分数据需要进行高维转化等操作,求解较为困难。假设x、y表示样本的特征和类别,y可取0 或1,那么y取1的概率为:

式中:θ为回归系数;hθ(x)为sigmoid 函数,输出值在0~1 之间,通常情况下hθ(x) ≥0.5 时属于1 类,hθ(x) <0.5时属于0类。

2.3.3 K最近邻

K 最近邻通常用于文本分类,将样本映射到特征空间中,通过计算不同特征值间的距离进行分类。对于一个新输入的样本,寻找训练集中与其距离最近的K 个样本,通过它们的类别来判断该样本属于哪类。由于所有样本均已确定类别,因此算法无需训练,但新输入样本要与所有训练样本进行计算,时间复杂度由样本数量所决定。在应用中可根据数据集情况,灵活选择K 值及不同的距离度量方法,例如欧氏距离等。

2.3.4 随机森林

随机森林是一种采用集成学习思想,由多颗决策树共同构建的分类模型。在训练阶段,树被随机创造,每个树的训练样本均来自整体特征的随机子集,树与树之间相互独立。在预测阶段,利用所有树的结果进行决策以决定最终的结果。

2.3.5 XGBoost

XGBoost[19]是梯度提升决策树(Gradient Boosting Decision Tree,GBDT)的改良版本,采用集成学习思想,通过梯度提升方法进行加法训练。该模型以树为基分类器,将多个弱分类器组合成一个集成分类器,以提升预测速度与精度,与随机森林算法的不同之处在于其弱分类器间并非独立,而采用串行结构将前一个分类器的的预测作为下一分类器的输入,由最后一个分类器输出结果。

为了便于在后续实验中比较各算法在异常行为检测中的优劣,在超参数的设置上尽量选用其默认值,具体参数如表1 所示。为了发挥各模型在分类方面的优势,进一步提升异常检测的准确率,除了单独使用以上5 种模型外,本文还组合多种分类器提出一种集成学习模型,采用软投票方法决定最终预测结果。软投票以前4 种分类器预测样本属于异常的平均概率作为输入,根据结果预测该样本是否属于异常行为。

Table 1 Setting of hyperparameters for each model表1 各模型超参数设置

式中:xi表示输入的第i各样本;k为分类器的数量,本文设置为4;fk表示第k个模型对样本的预测结果;yi代表第i个样本的最终预测值,后续通过设定阈值等方式,将yi转变为分类结果。

3 实验结果与分析

3.1 实验环境与数据集

实验环境CPU 为i7-9700,显卡为NVIDIA GeForce GTX 1080Ti,对所有数据采用五折交叉验证方法,每折取全部数据的80%进行训练,20%用于测试,每折测试数据不重复,取5 次结果的平均值。数据集来自攀钢集团有限公司提供的7 段监控视频,共2 863 张图片,采用检测算法进行预处理得到视频中的人物图片并人工标注睡觉和正常的标签。其中,睡觉检测数据集共2 863 张图片,睡觉数据215 张,正常数据2 648 张;跌倒检测数据集中跌倒数据451张,正常数据954张。数据集示例如图4所示。

Fig.4 Sleep behavior samples in the factory dataset图4 工厂数据集中的睡觉行为样本

首先将这些图片送入HRNet 进行关键点识别,每张图片经HRNet 处理后得到51 项特征,然后将51 项特征单独存为一个csv 文件,即每张图片对应一个csv 数据,便于后续实验。

3.2 评价指标

本文通过准确率、精确率、召回率和F1 分数指标评估模型的性能,计算公式如式(4)—式(7)所示。同时,为了保证测试结果的稳定性,采用五折交叉验证方式划分数据集,将数据集按类别抽样并等分为5 份,每次选取其中1 份作为测试集,其余4 份作为训练集,尽可能消除由选取测试集导致的实验误差。

式中:TP 代表预测为异常行为的结果中真实出现异常的数量(真阳性);TN 代表预测为正常行为的结果中真实正常的数量(真阴性);FP 代表预测为异常行为的结果中实际为正常行为的数量(假阳性);FN 代表预测为正常行为的结果中实际为异常行为的数量(假阴性)。

3.3 跌倒检测结果

在跌倒检测数据集中,首先对图片使用关键点识别网络进行检测,如图4 所示。表2 中展示了6 种模型4 个评价指标的平均值,括号内为5 次结果的标准差,其中每个指标的最优值已加粗。图5 为AUC-ROC 曲线,以衡量在不同阈值下各分类器的指标,右下角AUC 为曲线下面积,在一定程度上反映了分类器的强弱。结合表2 结果可知,表现最优秀的模型为集成学习(Soft-Vote),准确率、精确率、F1 得分分别为92.86%、87.58%、88.69%,证明了集成学习策略的有效性,结合多分类器的效果相较于单一分类器更优。

Table 2 Fall detection experiment results表2 跌倒检测实验结果

Fig.5 AUC curves of fall behavior samples in the factory dataset图5 工厂数据集中的跌倒行为样本的AUC曲线

整体上,除逻辑回归模型外,各分类器的准确率、召回率、精确率及F1 分数指标均达到80%以上,AUC>0.9,属于效果较好的分类器,证明了使用关键点特征进行跌倒行为的异常检测的可靠性。

3.4 睡觉检测结果

睡觉检测采取与跌倒检测类似的方法,但由于睡觉数据仅为215 例,而正常数据为1 125 例,存在一定程度的类别不平衡现象。因此,在训练阶段对睡觉数据进行过采样,重复抽样睡觉类数据以平衡正负样本,优化训练过程。值得注意的是,所有过采样均在训练过程中使用,在测试过程中没有对测试集进行任何调整。

表3 展示了睡觉异常检测的实验结果,图6 为各分类器在睡觉行为检测中的AUC-ROC 曲线。由此可知,使用软投票的集成学习模型最优,准确率、召回率、精确率、F1分别为98.51%、94.97%、95.81%,95.38%,除精确率外,其他3 项指标在5 种方法中最优,进一步证明了组合策略的优势。随机森林与XGBoost的总体指标与软投票法非常接近,在五折交叉验证中的某些折中方法中相较于软投票法更优,且两种算法的AUC 指标甚至超过了集成学习模型,原因可能为随机森林与XGBoost是由多颗决策树通过串行或并行方式组合而成,自身也是一种集成学习方法。

Table 3 Sleep detection experiment results表3 睡觉检测实验结果

Fig.6 AUC curves of sleep behavior samples in the factory dataset图6 工厂数据集中的睡觉行为样本的AUC曲线

4 结语

本文针对工业场景中工人可能出现的异常行为,提出了一种异常检测模型框架。通过HRNet 识别人体关键点,将关键点信息输入分类模型,同时使用4 种分类器与一种集成分类模型进行分类,以区分正常行为和异常行为样本。实验结果表明,所提模型在跌倒检测、睡觉检测数据集上的准确率分别为92.86%、98.51%。

该框架相较于人眼识别的优势在于节约了人力开销,无需额外的硬件设备,但需要同时使用关键点识别和异常检测模型,无法进行端到端训练。此外,跌倒检测和睡觉检测所使用的模型较为简单,后期可选择性能更强的机器学习模型来进一步提升模型的识别准确性。未来,可对以上内容进行整合和轻量化,在保证检测准确率的基础上进一步减小模型规模。

猜你喜欢
关键点分类器人体
人体“修补匠”
聚焦金属关键点
人体冷知识(一)
肉兔育肥抓好七个关键点
排便顺畅,人体无毒一身轻
奇妙的人体止咳点
BP-GA光照分类器在车道线识别中的应用
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
医联体要把握三个关键点