赵 鑫,陈 平
(中北大学 信息探测与处理山西省重点实验室,山西 太原 030051)
人员异常行为检测在机器人视觉、 智能监控、 公共安全等领域的运用日趋普遍[1]. 异常行为是指相对于历史轨迹发生偏离的运动目标. 如何在复杂的视频中自动检测识别异常行为是近年来智能视频处理的研究热点.
目前,国内外学者主要根据不同场景中不同的异常行为识别任务,提出了多种不同的检测方法. 已有的异常行为分析方法大致可以分为以下4类: ① 基于时空特征的模式分析方法,针对视频序列在时空维度提取特征判断行为类别[2],该类方法依赖于图片信息提取的视觉运动特征[3],存在输入信息冗余、 模型自适应能力差等缺点,并且对人类行为的刻画能力有限,局限于若干种简单的单人行为,不易扩展到多人间的复杂行为. ② 基于运动轨迹的方法,通过位置匹配和目标关联来提取运动轨迹,构建网络对目标轨迹的速度、 加速度、 轨迹长度等信息进行训练[4]. 该类方法主要对轨迹数据建模,然而,由于图片中的目标之间存在重叠、 遮挡等问题,难以精确跟踪目标轨迹. ③ 基于行为预测分析方法,通过构建预测未来时间段内人类行为的网络模型,对人员在运动时可能触发危险的行为发出及时警告[5-9]. 目前,人类行为视频预测方法是在像素空间中递归生成未来帧来进行行为判断[10],但预测模型缺乏视觉特征与真实运动事件语义的可解释性,且预测效果容易受预测容量和环境因素影响. ④ 基于人体骨架姿态预测的方法,采用目标检测和人体模型提取图片中人体骨架,利用骨架随时间的变化来描述行为[11-12]. 基于骨架预测的方法强调异常行为的可预测性,采用预测人体骨架运动轨迹的方式,但骨架关键点提取不准确时,会直接影响异常预测结果.
人员异常行为识别是集成目标检测、 目标跟踪、 行为预测等多个模块的智能识别系统,单个神经网络不能直接用于异常的识别和判断,而单独运用较深的网络会使计算处理速度较慢,研究人员提出了使用多网络级联的思想,应用于异常行为识别[13-15]. 通过级联神经网络模块逐级细化人员特征,构建行为规则模型对视频中人员异常进行判断. 但是基于多网络级联的检测识别效果,仍取决于各个模块的检测效果与精度. 在场景复杂、 多目标遮挡的人员异常行为分析中,现有的多网络级联的识别方法在识别精度和鲁棒性上存在局限性.
因此,针对该问题,基于多网络级联思想,重点围绕复杂场景下多目标跟踪与行为识别,分析改进级联网络中各个网络模块的实现途径. 主要采用实例分割模型检测人体位置,提取人体骨架关键点作为行为语义特征,辅助理解人类行为信息,并通过运动分解获得运动特征. 在预测过程中,以目标检测框和关键点坐标信息作为中间特征,同时利用全局和局部预测网络来捕捉不同分量的人体运动信息,从而实现多目标下高质量的行为预测和识别.
异常行为识别主要研究视频人员的行为,使用人体骨架关键点作为行为特征,利用骨架关键点坐标表示人体整个结构以及肢体结构间的关系,可精确反映人体运动变化并表示对应的行为状态. 本文基于上海交通大学卢策吾团队提出的自顶向下的骨架关键点检测算法Alpha Pose[16],使用通用实例分割架构Mask RCNN[17]用作人体检测,其不仅能输出目标的具体类别和目标框,也可以在保证检测速度的情况下,对场景复杂、 多目标遮挡下的人体进行精确分割,网络结构如图1 所示.
图1 骨架关键点提取网络结构
骨架关键点检测的基本步骤: ① 采取Mask RCNN作为人体检测网络,提取图像中的候选框和可视化掩膜. ② 使用空间变换网络(Spatial Transformer Networks,STN)对人体检测候选框进行空间变换,提取出高质量的单人区域. 然后使用单人姿态检测(Singal Person Pose Estimation, SPPE)对得到的单人区域进行骨架关键点检测,并将检测结果映射到原图中. ③ 利用参数化姿态非最大抑制(Parametric Pose Non-Maximum Suppression,Pose NMS)来消除检测器产生的冗余骨架. 另外,空间反变换网络(Spatial De-Transformer Network, SDTN)为STN的逆变换,用于反向修正骨架关键点,姿态引导区域框生成器(Pose-Guided Proposals Generator, PGPG)的作用是来增强训练样本,作用于目标检测和SPPE的训练,提高训练的精度. 如图2 所示,将人体结构简化为17个人体骨架关键点坐标的模型. 人体骨架关键点标注信息以COCO数据集形式存储.
图2 人体关键点模型Fig.2 Human body key point model
在固定相机监控场景下,行人的移动速度也较为缓慢,在高帧率相机的采样下,人体运动时位置坐标信息连续性强,不易出现人体动作行为的瞬态变化. 为了跟踪人体的运动情况,本文采用融合稀疏光流的骨架关键点跟踪方法. 稀疏光流是对指定关键点进行跟踪,基于亮度恒定假设、 相邻帧关键点小范围运动假设、 空间一致假设,计算运动物体在像素平面上的瞬时速度,跟踪运动目标在连续图片中的位置.
根据1.1中骨架提取模型,依次输出人员骨架关键点坐标和目标矩形框坐标信息,以人员中心为原点将人体检测的感兴趣区域(region of interest, ROI)扩大20%,确保放大的边界框为关键点在下一帧的可能区域.
使用Lucas-Kanade算法计算关键点坐标的光流,当dt足够短时,依据光流恒定原则,关键点的变化保持不变,即
G(x+dx,y+dy,t+dt)=G(x,y,t),
(1)
式中:G(·)表示不同时刻的骨架关键点;x,y分别表示骨架关键点的坐标;t表示时刻; dt表示运动时间; dx,dy分别表示dt足够短时的坐标变化量.
由于相邻帧时间足够短,使得物体运动较小,则
(2)
建立光流方程,使用最小二乘法,可得光流的近似解
(3)
通过光流可生成关键点从起始位置到当前位置时的坐标
(4)
比较稀疏光流生成的骨架关键点是否会落入可能区域内,对于检测和跟踪一致的每个关键点,标定为1分,否则标定出0.
(5)
式中:ROIexpand表示扩大的感兴趣区域;m表示匹配分数.
将前后帧的骨架坐标以及骨架匹配分数联立成为效益矩阵,利用匈牙利算法[18]对前后帧的关键点进行指派,按照空间一致性和姿势一致性约束条件进行筛选,得到匹配成功的目标关键点. 逐帧更新骨架关键点,完成对视频流中的人体骨架姿态跟踪.
在监控视频中,人体骨架运动变化取决于位置和姿态的变化. 人体与监控摄像头的距离会导致个体运动状态的差异,对于近场的人体,运动主要受局部姿态因素的影响. 在远场情况下,运动由全局运动支配. 现有的分解方法仅利用了人体关键点所表征的全局运动模式信息,而忽略了它背后所蕴含的人体局部区域的细节外观信息,而局部信息的缺失导致预测和重建人员在行为细节上存在一定的困难.
在1.2节中跟踪骨架关键点坐标的基础上,将人体的骨架运动分解为“全局”分量和“局部”分量两部分. 全局分量为目标人体的绝对位置,包括有关人体边界框的坐标,刚性运动的信息等; 局部分量为骨架关节点相对于边界框的位置,用于描述骨架的内部形变. 上述分解过程由公式(6)来描述.
(6)
图3 人体运动分解模型Fig.3 Human body motion decomposition model
xl,i=xi-xg;yl,i=yi-yg,
(7)
式中:xg,yg表示人体边界框左下角的坐标;xi,yi代表第i个关键点在相应分量的坐标.
本文使用门控循环单元(GRU)组成双循环递归编解码器模型,解决循环神经网络中参数随时间反向传播时发生梯度消失的问题,并且该模型结构简单、 计算量较少,可应用于提取视频运动信息和时间特征.
双循环递归编解码器模型由编码器、 重建解码器和预测解码器组成,其中,全局分量和局部分量的轨迹信息输入到两个交互的分支,其中一个分支用于学习目标全局分量下轨迹特征的时间关联性,另一个分支用于学习目标局部分量下轨迹特征的时间关联性,网络结构如图4 所示.
图4 双向递归编解码网络结构Fig.4 Two-way recursive encoding and decodingnetwork structure
使用滑动窗口策略从人体骨架轨迹中提取片段,编码器过程中设置GRU的隐状态为空,通过跨分支信息传递机制传递各分量下的参数信息,学习各分量单独组件下的动态坐标信息. 解码过程时设置GRU的隐状态与编码器输出相同,使用重建解码器对学习的人体骨架坐标进行重建,预测解码器预测其未来帧的动态骨架信息. 编码器输入长度为6帧,重建解码器和预测解码器的长度为6帧. 输出真实骨架关键点坐标距离与预测骨架信息的损失误差为
(8)
收集骨架异常得分: 经过训练的模型预测人体在未来时间尺度上的姿势轨迹. 使用表决机制计算预测误差
(9)
式中:St表示从重建和预测中包含的已解码段的集合. 对于每段姿态轨迹,在测试期间将与阈值进行比较. 如果超过阈值,则将时刻t标记为异常.
本文采用如图5 所示的多网络级联预测的异常行为识别网络,采用Mask-RCNN模型提取人体位置,利用提取骨架与稀疏光流相结合,完成视频中人体骨架的跟踪,通过运动分解,精确描述人体全局运动信息和局部区域细节信息,在预测过程中以目标检测框和关键点坐标信息作为中间特征,同时利用全局和局部预测网络来捕捉不同分量的人体运动信息,从而实现多目标下高质量的行为预测和识别.
图5 网络结构图
本文的实验环境为: windows 10; 处理器为Intel(R)Core(TM) i7-6700 CPU @ 3.4 GHz; 内存32 G; 显卡为GTX1080; 编程环境为python3.7; 开发工具为PyCharm 2018; 使用TensorFlow框架进行网络搭建、 训练和测试.
为了验证所提算法的可靠性及泛化能力,本文分别在实验室自建模拟场景数据集以及ShanghaiTech Campus公开数据集[19]进行训练和测试. 公开数据集结合了上海科技大学校园13个不同场景的视频信息,包含330个训练视频和107个测试视频,视频分辨率为856×480,包括摔倒、 推打、 追逐、 骑行、 翻越栏杆等多种行为. 数据实例如图6 的所示.
图6 ShanghaiTech Campus数据集
自建样本数据使用布置于室内的DS-IPC-B12H枪式摄像机采集,相机焦距为8 mm,具备720P/1080高清广角画面功能,多台摄像机分布式安装于实验楼内侧走廊,走廊长约25 m,监控摄像机与人员平均距离约7 m. 摄像机及安装位置如图7 所示.
图7 摄像机及安装位置
自建样本数据为模拟行人异常可疑行为,主要有摔倒、 聚集、 剧烈运动、 奔跑等行为,每段序列中各动作按一定顺序多次出现. 图8为自建数据集实例,共计200组动作序列,其中训练集150组,测试集50组.
图8 自建样本数据
使用本文方法对公开数据集中测试视频进行实验,在异常行为可视化的同时,屏蔽与人员无关的背景,采用热图的方式呈现图片,异常分数较高使用深色表示异常人员,异常分数较低时采用浅色表示. 引入参数AUC和AP作为评价标准,AUC定义为接收者操作特征曲线(Receiver Operating Characteristic ,ROC)下与坐标轴围成的面积,其值小于等于1,AUC值越大说明检测越好. AP定义为精确召回曲线(Precision-Recall,PR)下与坐标轴围成的面积,是召回率与精确度的一种统一化平均,AP值越接近1,表示检测效果越好.
针对ShanghaiTech Campus数据集,去除与人类行为无关的异常行为,为了直观地显示异常行为检测效果,对比本文方法与其他算法在异常情况发生时和非异常情况的效果,实验结果如图9 和图10 所示.
图9 不同算法非异常情况比较Fig.9 Comparison of non-abnormal situations ofdifferent algorithms
图10 不同算法异常情况识别结果Fig.10 Recognition results of abnormal conditions ofdifferent algorithms
图9 中(a)~(c)为使用Morais R方法测试,正常人员在场景中被人员遮挡时,提取骨架具有与正常下半身“相似”的移动模式,预测网络补充上半身肢体坐标点,导致局部分量下坐标信息发生异常,从而对于正常行为误报警; 图9 中(e)~(f)为本文方法,消除非异常标注.
图10 为公开数据集中异常情况标注结果,通过融合实例分割的方法,提取人体关键点,并调整编码器输入图片为6张,使用滑动窗口算法,从连续图片中提取人体骨架轨迹信息,输入网络进行判断. 图10 中(a)~(c)为使用Morais R方法测试; 图10 中(e)~(f)为本文方法,消除非异常标注,可以更有效地预测动态骨架信息且保留细节信息,提供了更好的视觉性能.
表 1 为本文方法在ShanghaiTech Campus数据集与现有技术的性能比较. Liu和Conv-AE等基于图像的方法所构建的模型会因为关注图像的背景、 光线等信息,造成输入信息的过分冗余,具有较大的局限性. Rodrigues使用提取人体姿态信息表征人体的整体运动模型,使提取的特征更加精细,使得指标有所提升. 本文算法获得了更为优越的识别效果,AUC达到了0.774 2,AP达到0.702 7,由于精确提取人体关键点,并作为行为语义特征,避免了场景中图像的背景、 光线等不相关噪声信息的干扰. 并将运动动态信息分解,能够精确描述人体关节点内部的异常行为,可对更加复杂的行为进行识别.
表 1 公开数据集下现有技术的性能比较Tab.1 Performance comparison of existing technologiesunder public datasets
使用ShanghaiTech Campus数据集预训练网络模型,将模型迁移学习到自建数据集上并调整网络. 异常行为检测结果如图11 所示,图11(a)表示输入图片中人员挥舞手掌、 异常行进、 剧烈运动、 摔倒状态; 图11(b)为重建骨架图,可以看出人员在异常行为发生时的真实骨架状态; 图11(c) 为人员预测骨架和重建骨架的图示,收集骨架异常分数进行判断异常; 图11(d)为异常行为可视化标注.
图11 自建数据集异常行为检测结果
将自建测试集中50组视频分解为图像帧,共计样本6 727帧,选择其中异常事件的3 851帧图像测试,异常跳跃样本数为478,摔倒样本数为1 531,剧烈运动样本数为596,原地异常样本数为457,加速奔跑样本数为789. 异常检测结果如表 2 所示.
表 2 自建数据异常行为检测结果Tab.2 Self-built data abnormal behavior detection results
本文针对人员在正常运动具有规律性且异常事件和违规操作具有连续性的问题,提出了多网络级联异常行为预测分析方法,不同于传统端到端异常行为检测的方法,使用实例分割模型提取目标位置,提取骨架关键点作为行为特征,利用提取骨架与稀疏光流相结合,完成视频中骨骼的跟踪,通过双向递归编解码网络预测动态骨架信息,将骨架异常分数与阈值对比判断行为异常. 在ShanghaiTech Campus公开数据集和自建数据集进行实验,实验结果表明,本文模型在不同场景、 不同异常行为下都有较高的检测精度.