APP下载

基于人体关节点的多人吸烟动作识别算法

2021-01-11刘董经典

计算机工程与应用 2021年1期
关键词:关节点周期性吸烟者

刘 婧,杨 旭,刘董经典,牛 强,2

1.中国矿业大学 计算机科学与技术学院,江苏 徐州221116

2.中国矿业大学 教育部矿山数字化工程研究中心,江苏 徐州221116

医学研究表明,吸烟已是造成肺癌、慢性肺病和冠心病等疾病重要因素,世界卫生组织的国际癌症研究机构已将烟草列入致癌物清单。吸烟不仅危害自身的健康,对于吸入二手烟的人群也会造成更大的健康损害。在通风不良的公共场所,如公共汽车和商场的休息区,被迫吸二手烟的情况尤其严重。此外,因吸烟引起火灾而造成的重大财产损失和人员伤亡的事故屡见不鲜。鉴于吸烟的诸多危害,许多国家已明令禁止在公共场所吸烟,因此出现了各种烟雾探测器。基于传感器的烟雾检测是目前使用最广泛的检测方法。但烟雾传感器的检测准确率受到距离限制,当房屋空间较大时,无法及时有效地检测吸烟行为。也有研究人员提出使用Wi-Fi设备进行吸烟识别。Wi-Fi识别的有效性受设备稳定性影响,需要多个无线信号接收器一起工作以确保识别精度。在实际情况下,很难确保一定范围内有多个无线设备。基于Wi-Fi 的动作识别还易受环境噪声的影响,因此在多人环境中识别精度较低。现有的基于图像的吸烟行为识别的工作中,是通过肤色检测方法对头部和手部进行分割的方法进行识别。因光线条件的影响,通过肤色区分人体的方法错误率较高。针对公共场所的吸烟检测问题,文中提出了一种在多人环境下基于人体关节点的周期性动作检测的吸烟动作识别方法。首先进行多人姿势估计并提取人体关节点信息。然后,利用关节点信息跟踪图像中的每个人。通过大量实验分析吸烟行为的周期性特征,并制定了吸烟行为规则。最后,通过检测周期性行为来检测吸烟行为。当系统识别出吸烟行为时,发出警报并标记吸烟者。在实际场景中进行了系统性能测试,结果表明文中的方法可以在多人环境中保持较高的准确性。本文的主要贡献如下:

(1)分析吸烟动作,制定吸烟动作规范,进行周期性动作检测,通过检测到多次周期性动作后,判断是否存在吸烟行为。

(2)首次在公共场景中对多人同时进行吸烟动作的识别。

(3)进行大量的实验,研究整个吸烟的过程中关于时间和动作轨迹的规律性,通过对比实验设定更加有效的参数,规范吸烟的动作。

1 相关工作

如今,动作识别有多种方式[1-2](例如基于人体骨骼[3-5])。基于深度学习的视频动作识别,通过分别训练时间模型与空间模型来模拟时间动态与外观特征。时间网络与空间网络融合后,预测的结果通过SoftMax层输出。早先提出的卷积神经网络的方法专注于端到端重建[6-9]。研究人员不断提出新的深度学习方法,Tran等人[10]提出了一种使用时空特征训练三维卷积网络的特征学习方法。 Hou 等人[11]提出了一种称为Tube Convolutional Neural Network 的端对端深度网络,用于视频中的动作检测。文献[12]提出了分解式的时空卷积网络,也有研究人员使用具有长期时间卷积的神经网络来学习视频表示[13]。Mahajan等人[14]提出了一项关于迁移学习的研究,该迁移学习使用大型卷积网络进行训练,可以预测数十亿社交媒体图像上的主题标签。基于骨骼的动作识别方法需要准确地识别关节点信息[15]。在不断更新的卷积神经网络[16-17]之下,人的姿态估计精度得到了极大的提高。最近的研究工作使用递归神经网络,在这些方法中,都强调了在人体[18-19]中建模的重要性。

现有的吸烟动作识别方法大多使用深度学习,由于整个吸烟动作历时较长,在实验中发现用时间卷积来提取特征并没有很好的效果。现实场景中的应用也会涉及到多人、遮挡等问题。基于深度学习的图像识别方法在多人的情况下存在计算量较大、实时性差等问题。同时还需要对大量数据进行训练来提高识别的准确率。且现存的吸烟动作识别,多是在某个特定的场景应用,如对驾驶舱的司机进行单人正面检测。在多人群密集的公共场所并没有实际应用。由此,本文提出了一种在多人场景中基于人体关节点的周期性动作检测识别吸烟动作的方法。

2 方法设计

以前多数的吸烟动作识别研究仅针对一个人,多人动作识别的实时性较差。文中主要关注多人环境中的吸烟行为识别。通过对现有的姿态估计算法[20-21]研究,实验中使用自下而上的人体姿态估计算法[22]进行多人环境中的实时姿态估计,对多人动作进行周期性检测实现吸烟动作识别。与之前深度学习的方法不同,文中提出的方法无需大量的训练数据集,识别精度仍然稳定。如图1是本文的结构流程图。

图1 吸烟动作识别系统

2.1 多人姿态估计

在自上而下的人体姿态估计工作中,关注整个人体骨架,对图像中每个被检测到的人进行单独的姿态估计。在某些场景中遇到遮挡等问题时,因无法完全检测到某些人导致无法估计其姿态。本文改进文献[23-24]提出的方法,通过关节点组成肢体,肢体匹配后形成个人姿态。

首先需要在置信图中提取关节点。在一个置信图中,像素的值可以表示关节点的置信度。关节点的实际位置是高斯热图(Heatmap)关节点的峰值,通过非最大值抑制(Non-Maximum Suppression,NMS)的方法来计算关节点的像素峰值。置信图中k人肢体j定义为Sj,k,其中P表示在图中位置P,δ控制峰值扩散,Xj,k表示k人的肢体j的实际位置。Sj,k的具体定义如下:

找到每个关节点热图的所有峰值后,选取所有候选峰值中最大的峰值作为关节点信息。Sj表示最终被选取最大峰值的关节点信息:

产生的18个关节点与人体的对应关系如图2所示。

图2 人体18个关节点

然后对产生多个关节点进行肢体配对,匹配时存在大量的组合。为了正确进行关节点配对,使用部分亲和度场(Part Affinity Fields,PAF)的方法来组合肢体。PAF 是每个身体部位的2D 矢量场,对于属于特定肢体区域中的每个像素,2D 矢量编码从肢体的一部分指向另一个部分的方向。因此每个类型的肢体都具有连接其两个关节点相应的PAF,使用PAF 的方法,需要假设两个关节点可能属于在同一个肢体上,通过测量肢体相应的PAF上的线积分对候选的关节点进行评判,确定关节点是否属于这个肢体。如图3所示,黄色圆圈表示检测到的右肩膀关节点,紫色表示要进行匹配的两个候选右手肘关节点,蓝色的箭头表示PAF 的方向,右肩膀与右手肘1存在PAF进行匹配。

图3 关节点之间的亲和度场

最后形成人体姿势时,可以将人的肢体看作是一棵树,使用所有树节点表示关节点,所有枝干都代表肢体。选择最小数量的边来获得人体姿态的生成树。使用二分匹配的方法解决匹配问题,为了解决匹配中的NP 问题,可以将一个三关节点的匹配问题转化为两个双节点的匹配问题,如图4所示。最后将共享相同关节点的候选肢体组装成人体的全身骨架,由此就能实时获取人体姿态信息。

图4 肢体匹配问题

2.2 多人追踪

由于使用自下向上的姿态估计算法,无法实时追踪个人的运动轨迹。文中利用采集到第一帧的关节点信息,对每个人生成一个边界框,对应每个人会储存不同的ID。采集边界框中的人体特征并在下一帧进行特征匹配进而实现对每个人进行追踪。

在设计算法时未设定关于边界框的宽、高和位置的参数,而通过关节点信息决定边界框的位置与宽高。在进行轨迹分析时,对于每条轨迹k都有一个阈值a用于记录轨迹从上一次成功匹配到当前时刻的时间。当该值大于提前设置的阈值Amax则认为该轨迹终止,此时匹配也就终止。在进行人体骨架与轨迹追踪时,考虑到环境中可能存在遮挡的问题[25]使用使用余弦距离进行外观匹配,对于遮挡后的追踪更加有效。通过计算第i个轨迹追踪器的最近100 个成功关联的特征集与当前帧的第j个人的特征向量间的最小余弦距离:

d(i,j)是第j人的第i个轨迹边界框,Ri表示第i个轨迹的100个特征集,rj表示边界框dj特征。将边界框中的表观特征通过一个深度网络得到归一化的128 维特征。在实时目标追踪过程中,提取目标的表观特征进行最近邻匹配,可以改善有遮挡情况下的目标追踪效果,同时也减少了目标ID跳变的问题。

2.3 周期性动作识别

为了更好地进行吸烟动作识别,本研究对一次吸烟过程做了分析,具体如下:(1)点燃烟后用手指夹持准备吸烟,此时手部逐渐贴近脸部;(2)吸入烟雾,在一段时间内手指夹持烟,手部与脸部的距离基本保持不变(最近距离);(3)吸入烟雾后,手部与脸部逐渐远离;(4)呼出烟雾,在一段时间内手指夹持烟,手部与脸部的距离基本保持不变(最远距离)。每次吸烟如同以上步骤。一次吸烟动作的分解如图5所示,吸烟是一种具有节奏性和周期性的行为。虽然不同的吸烟人群的吸烟习惯不同,但在观察分析后发现不同吸烟者的吸烟动作都符合周期性的规律。对于一部分吸烟者习惯吸“肺烟”(即将烟雾吸入到肺部后再呼出),他们的吸烟频率相对较低,吸肺烟人群的一次吸烟的周期较长。也有部分吸烟者习惯将烟雾吸入口腔就呼出,这样的单次吸烟周期比较短。因此,本文提出一种通过检测一段时间内特定周期性动作发生的方法来进行吸烟动作识别。当系统识别到吸烟动作后,可以发出报警并标注吸烟者。同样利用吸烟的规律性来减小误报率。

图5 吸烟过程

根据追踪后的ID将多人实时关节点信息存储。为了判断检测到的动作是否符合规定的吸烟动作,本文将动作轨迹的追踪转化成手部与鼻子之间距离(即手部关节点与鼻子关节点的距离,后同)轨迹的追踪。考虑到吸烟者的惯用手不同,故并行判断左(右)手关节点与鼻子关节点的位置关系。

通过对大量实验数据的分析,设定手将烟递至嘴边时手部与鼻子最大距离的阈值M=28。本文做了坐标归一化的处理,使M的设定不受人与摄像头距离远近影响。若检测到某人手部与鼻子的距离小于等于M时,对此人进行吸烟动作识别。本文设定检测单次吸烟的周期时长为σ=15 s,当检测到一个周期时长大于σ将不再进行下一次的检测。对一人的周期性动作检测进行吸烟识别具体实现如下:用D表示手与鼻子的距离、P表示一次周期性检测的用时,i表示第i次检测。某时刻手与鼻子的距离D小于M,对此人进行周期性动作检测。Pi开始计时,持续观察距离D,当D开始增加,并且之后连续几帧持续增加,直到不再增加时,记手部与鼻子的最远距离di;继续观察,在某时刻D变小且其后连续每帧也持续减小,当D减小到阈值M范围内则第一次周期检测结束,Pi停止计时。Pi小于σ继续进行下一次周期性动作检测。周期性动作检测的具体流程伪代码在算法1中给出。

一次吸烟过程中,时间T和手部与鼻子的距离D变化呈现:随时间呈先增大,再基本不变,最后减小的趋势。变化趋势的曲线与二次函数相似。在这个过程中选取k个点,在每个点分别记录其Tk、Dk。用最小二乘法对其进行拟合,得到关于时间与距离的拟合二次函数:

分别是拟合后的距离与时间,μ、λ、θ均为常数。根据二次函数可以求出一个呼出烟雾后手离鼻子最大距离的区间:

考虑到在整个吸烟过程中距离的浮动几乎保持稳定,故此后的每一个周期中最大距离都应处于距离区间公式(5)中。周期性检测中若检测到di处在区间内,Pi同时满足:

就认为检测到周期性动作一次。当检测到有三次符合规定的周期性动作,判断发生吸烟动作,并发出警报。因关节点的信息是按照每个人不同ID 储存,故多人的吸烟动作识别可以同时进行。

3 实验分析

3.1 实验设计

实验中使用了第七代英特尔酷睿i7-7700,GTX1050Ti独立显存,128 GB+1 TB 双硬盘,8 GB 内存的笔记本电脑作为实验设备,在教学楼的实验室内和楼道内,使用笔记本自带的摄像头进行多人吸烟动作识别进行实验。如图6(a)是在实验室内8人的吸烟动作识别的实景演示,图6(b)是在楼道内4 人的吸烟动作识别的实景演示。每个被检测到姿态的人可以显示其ID以及其吸烟动作发生的次数。当检测到有3次吸烟动作发出吸烟警报。

图6 吸烟动作识别系统

算法1 检测周期性动作

输入:检测次数i,手与鼻子的距离D,每次检测耗时Pi,每次检测到手与鼻子的最远距离di,阈值M,吸烟时长σ;

输出:被检测到的动作有几次满足周期性动作。

1. 初始化i,Pi,di为0;

2. ifD≤Mthen

3. for检测次数do

4.Pi开始计时;

5. if连续3帧D增大then

6. 找到第K帧的D≤第K-1 帧的D;

7. 记di等于第K-1 帧的D;

8. end if

9. if连续3帧D减小then

10. 当D≤M时Pi停止计时;

11. end if

12. ifPi>σthen

13. 结束循环;

14. else

15. 记检测到的动作满足一次周期性动作;

16.i=i+1;

17. end if

18. end for

19. 输出检测到周期性动作的次数

3.2 数据预处理

在进行动作识别时,将视频转换为连续帧的图像。进行姿势估计之前,需要调整图像的大小。对不同人数的图像进行实验分析。根据图像中的人数进行分组,每组包含50个图像。将参数的初始值设置为576×416,使用不同的参数分别进行对比实验。实验发现在人数越多的情况下,为了获取更精确的关节点信息需要增加Resize 的值,但这样也带来了处理时间变长的问题,如表1所示。测试平均准确率,对不同Resize做了对比实验,结果如图7 所示。为均衡计算时间与平均精确度,本文设定Resize参数为432×368。

表1 不同Resize对一张图片进行姿态预测的时间s

图7 不同Resize值下的准确率

3.3 阈值分析

为确定吸入烟雾时手与鼻子之间的距离范围的阈值M,实验中模拟公共场所拍摄了500 张多人吸烟的照片。提取所有吸烟者的手关节和鼻关节的位置信息并计算每个人吸烟时手和鼻子之间的距离。实验结果表明,虽然吸烟者具有不同的吸烟姿势,但不同的吸烟时手和鼻子之间的距离始终保持在一定范围内。在进行姿态估计算法中使用归一化,人与摄像头的距离与方向都不会影响手与鼻子之间的相对距离。如图8所示,距离在20 mm左右的人数最多,绝大多数人在28 mm以内。实验中将阈值M初始设置为26 mm,使用电影中300个吸烟场景作为测试数据。结果显示,测试数据手与鼻子的距离97%可以落入M的范围内。再将阈值设置更改为28 mm 测试中有99.5%可以落在M的范围内。根据对实验结果的分析,最终设定M=28 mm。当检测到人的手和鼻子之间的距离小于M时就对该人进行周期性动作检测。

实验中验证了吸烟行为可以分解为周期性动作。本文将整个吸烟过程的轨迹转换为手和鼻距离的轨迹。在实验中,比较了吸烟者和非吸烟者的关节点的距离轨迹信息。如图9 所示,与非吸烟者的距离轨迹相比,吸烟者的距离轨迹表现出周期性的波动。在吸烟者的轨迹图中,波谷表明吸入烟雾的状态。波谷附近的距离有轻微的漂浮,是因为吸入烟雾的过程需要持续一段时间。图中的峰值表示呼出烟雾手远离头部,此过程也会持续几秒钟,是吸烟者呼出烟雾到下一次吸入烟雾的间隔。

图8 吸烟时手与鼻子的距离

图9 吸烟者与非吸烟者对比

如图10所示,图中有3条阈值线。在波峰处的2条阈值线是为了衡量之后的运动是否符合周期,若第一次后的波峰落在Dmax与Dmin之间就认为此次满足周期性。每周期内轨迹曲线只有在波峰和波谷均处均处于阈值范围内,且时间也符合周期性,则被认为是一次的规律性动作,即发生了一次吸烟动作。满足3次周期性动作,判断发生吸烟行为。实验中对4人吸烟动作轨迹进行提取。如图11 所示,从识别到第一个人吸烟开始计时,多人从不同的时间段开始吸烟,当检测到有人做出3次吸烟动作后标记吸烟者并发出警报。

图10 单人吸烟动作周期性判断

图11 4人吸烟

3.4 准确率分析

表2 不同算法运算时间与准确率对比

实验中,对使用不同的姿态估计模型[16,22]实现吸烟动作识别的算法运算时间和准确率进行分析。对于每种算法,使用相同的图像进行姿态估计,记录对每张图片的多人姿态估计算法运算时间,重复1 000 次后取平均值。再使用不同姿态估计算法进行吸烟动作识别的准确率对比,实验结果如表2所示。吸烟动作识别受到关节点采集(姿态估计)的实时性影响,文中最终选取算法1作为姿态估计算法。

通过调查相关资料,一般常人单次呼吸时间为1.3~2.2 s,每次呼吸之间存在间隔期,大约为1~2 s,故单次呼吸周期时间为2~5 s。吸烟的历时与呼吸时长相关,一次吸烟动作的周期包括吸入烟雾的时间与间隔期,见图12。不同吸烟习惯的吸烟周期时长不同,部分吸烟者习惯将烟雾吸入到口腔就呼出,此时一次吸烟周期时长大致为3~6 s;部分吸烟者习惯吸肺烟(即将烟雾吸入到肺部在呼出),吸肺烟的一次过程相当于进行了一次深呼吸,一次深呼吸的时间大致在9 s左右,吸肺烟的一次吸烟周期时长大致为6~12 s。为验证吸烟周期时长,实验通过观测100组有吸烟动作的视频,计算每次吸烟的时间,时间大致分布在3~12 s之间。之后进行了其他类似的周期性行为(如吃零食)单次动作间隔时间的实验,实验发现每次吃东西时咀嚼的时间比吸入烟雾历时更长。因此为区别于其他周期性行为,在进行关于吸烟周期时间σ的准确率的实验后,如图13,将单次吸烟周期时间σ设置为15 s。当单次周期性行为大于15 s 时,不会再进行吸烟动作的检测。

图12 吸烟周期

图13 σ 取值对准确率的影响

经过坐标归一化处理,对摄像头面向人的不同角度,进行了多组不同人数的正面和侧面吸烟运动检测实验。实验结果证明相机的放置不会影响动作识别的准确性,如图14所示。

图14 正面与侧面的多人识别精确度

本文进行了大量的实验,测试系统识别的准确率。实验中分别选取500 段电影中的吸烟片段,拍摄500 组实际场景吸烟视频作为测试数据。对拍摄500 组实际吸烟场景的实验结果分为4 种情况做吸烟动作识别精确度的判定:(1)TP,吸烟者吸烟,正确的检测到吸烟者;(2)FP,没有吸烟者吸烟,检测到吸烟者;(3)FN,有吸烟者,没有检测到吸烟者;(4)TN,没有吸烟者,没有检测到吸烟者。按照吸烟者的人数进行分组,分为2人、4 人、5 人、多人(大于5 人),分别实验室内与走廊不同环境下进行吸烟动作识别。准确率如图15 所示,图15(a)是在实验室内进行吸烟动作识别的准确率,图15(b)是在走廊中进行吸烟动作识别的准确率。实验证明在不同环境中,本文提出的吸烟动作识别方法的准确率都可以达到91%。

使用Hmdb51[26]数据集对深度学习模型[27]进行训练,训练的参数设置如下:最小批处理大小为32,学习率为0.001,迭代次数为2 500。测试数据集选取了100 个吸烟的视频片段与100 个不吸烟的视频片段进行对比实验,分别测试了本文研究的方法与深度学习模型的准确率。本文提出的方法突破了之前只能对单人的吸烟动作识别实现了多个人实时吸烟行为识别。表3 是本文方法与深度学习方法准确率的比较。

图15 多人吸烟动作识别准确率

表3 不同方法准确率对比%

4 结论

与以往特定场景的单人吸烟动作识别不同,本文提出了一种在多人场景中基于人体关节点检测周期性动作的吸烟动作识别方法。通过实验数据制定吸烟动作规范,进行周期性动作检测后实现了吸烟动作识别,检测到吸烟行为后标记吸烟者。相比深度学习方法,本文的方法无需大量数据集进行训练,在不同环境下对于多个人的吸烟动作识别仍能保持良好的准确率。

猜你喜欢

关节点周期性吸烟者
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
关节点连接历史图与卷积神经网络结合的双人交互动作识别
数列中的周期性和模周期性
吸烟者更易腰腹肥胖
吸烟显著增加患2型糖尿病风险
一类整数递推数列的周期性
搞好新形势下军营美术活动需把握的关节点
No Smoking请勿吸烟
基于扩频码周期性的单通道直扩通信半盲分离抗干扰算法
吸烟会“熏坏”饮食习惯