王佳铖,鲍劲松,刘天元,李志强
(东华大学 机械工程学院,上海 201600)
车间内人员复杂、工序与工种繁多、行为不规范、操作流程错乱等都易引发安全事故,降低生产效率,给实际生产带来巨大损失。因此对车间内员工的作业行为进行监控显得尤为重要。传统依靠人工肉眼观察的方式已经难以适应现今复杂的车间环境,深度学习方法的出现和不断发展为车间行为监控提供了更为有效的途径,也是未来车间制造和管理模式向数字化、智能化转型升级的重要使能技术。
国内外学者对基于深度学习的车间行为监控进行了初步的探索研究,其研究方法可分为基于图像识别[1-3]和基于骨架识别[4-6]两类。在基于图像的行为识别研究中,Wang等[1]分析了视频序列中像素的变化,并使用稠密光流方法进行行为识别;Wang等[2]结合时空轨迹和卷积神经网络(Convolution Neural Network, CNN),提出利用CNN对轨迹进行特征提取与分类;Ji等[3]使用3D卷积对视频序列进行三维的卷积,进而判断动作类别。基于图像的方法能有利用图片的全部信息提取更多的行为特征,但要求以完整图像或完整图像序列作为输入,所构建的模型会因为关注图像的背景、光线等信息而造成输入信息的过分冗余,以至于识别效率严重受阻,且识别精度受图像冗余部分影响大。在基于骨架的行为识别研究中,Ke等[4]考虑人体关节之间的距离生成灰度图片,进而使用CNN分类;刘庭煜等[5]通过深度相机采集关节信息,并合成时空特征RGB图像,进而使用CNN进行车间行为的分类;Li等[6]提出将人体关节分为5部分,分别送入子网提取特征并融合成高层特征进行关节序列的分类。基于关节骨架信息的算法准确率一般要高于基于图像信息的算法,但是该方法仅考虑了人体的动作,以至于输入信息过于单一,无法进一步提升人体行为识别准确率。对于两个相似的动作输入,若仅从人体关节信息考虑很难区分其差别。
车间作业行为具有以下特点:①工人的行为多是固定的流程化的,工人的各种行为间存在着顺序关系;②工人的行为大多使用工具对工件或设备进行操作。因此,工件的特征对于判别工人的行为具有极其重要的辅助作用。针对以往车间作业行为在线识别过程存在的问题及车间作业行为的特点,提出一种融合工件注意力于人体关节序列的车间作业行为在线识别方法。该方法的整体实现框架如图1所示。该方法捕捉监控画面后,使用轻量化设计的人体关节估计模型提取人体关节信息,并使用SG(savitzky-golay)滤波器[7]平滑处理,按时间顺序依次放入时序网络中,同时原图像画面使用预训练过的卷积神经网络抽取特征,该特征与时序网络的输入输出融合,并形成注意力机制作最终的预测。对于两个相似的动作输入,使用传统的识别方法仅从人体关节信息考虑很难区别,而使用基于工件特征的识别方法,通过对工件语义特征的分析,不同的语义对分类结果有明显的导向作用,能更好地辅助行为的识别。实验结果表明,该方法能进行在线的行为识别并具有较好的准确率,能有效判断工人行为是否符合规范。
Openpose是一个用于多人实时的人体关节提取框架[8],拥有优秀的准确率与实时性,适合于对RGB图像提取人体关节。如图2所示,Openpose对图片中每一个可识别的人体共计18个关节(按照COCO数据集标准[9])进行检测,分别为:0-鼻子,1-颈部,2-右肩,3-右肘,4-右腕,5-左肩,6-左肘,7-左腕,8-右胯,9-右膝,10-右脚踝,11-左胯,12-左膝,13-左踝,14-左眼,15-右眼,16-左耳,17-右耳。
官方的Openpose采用VGG网络[10]提取底层特征,模型较大且对显卡要求较高。为了保证模型的实时性能,本文使用轻量化的Openpose[11],使用更小的Mobile网络提取底层信息重新训练,在满足精度要求的同时,可将模型大小降低一半以上,且能够使用CPU实时运行。表1所示为相同电脑配置下的模型对比。
表1 Openpose轻量化前后对比
从表1可以看出,在按照标准数据集COCO中的精度指标AP进行计算后,轻量化的Openpose在COCO数据集中AP下降了18.7,而对于车间内的工人识别,因为车间环境单一,工人相对于环境具有较强的对比度,同时工人往往按工位分配,很少出现聚集现象,所以对工人关节的识别相对于自然环境更加容易,在自建数据集上的AP只下降了11.2,并保持在一个较高的识别率75.4。
由于Openpose是一种基于图像的人体关节估计方法,在视频处理过程中,其关节位置存在跳动、跑飞等不稳定现象,不利于模型的训练。时序网络梯度极其敏感,这样的数据会导致损失函数的突然增长,如图3所示,在迭代到1 300次左右时,由于数据集对某张图片的检测效果不佳,导致大量零数据的出现,在损失函数迭代过程中出现了大幅度的波动,影响了模型的收敛。
为解决该问题,本文采用SG滤波算法用于关节数据在时域上的平滑处理。SG滤波算法是一种用于数据流平滑处理的算法,常在光谱的预处理[12]中用于平滑与降噪。对于以x=0为中心的2M+1个数据,使用N阶多项式
(1)
进行拟合,使真实值与拟合值的差值平方和
(2)
达到最小。
滤波器依次在时序长度上使用滑动窗口对其进行平滑。针对视频中提取的每一个关节坐标,基于时间生成时序序列,再通过SG滤波器处理。处理后的关节序列相对于不处理的关节序列具有更好的平滑性,同时也减少了关节检测突然跑飞对数据的影响。经平滑处理后的关节数据具有更好的时序连续性,同时能保证模型训练过程中的稳定性。
本文采用的整体模型结构如图4所示。对于视频流中的每一张图片:①经Openpose提取人体关节坐标,得到长度为36的向量,分别代表18个关节点的x,y坐标;②使用预训练的实例分割模型对图片提取工件语义信息,并经两层不同的全连接层提取不同的信息分别作为输入输出的注意力信息;③通过一层全连接层将36维关节向量映射到256维高维空间;④在高维空间中融合工件注意力信息,再将其输入到2层256维的门控循环单元时序网络,时序网络接受当前时刻输入的同时也保存着之前时刻单元的信息,通过对当前与之前信息的分析运算输出结果;⑤将时序网络的输出与注意力信息融合后,再经过Softmax激活函数输出各类别的概率。
传统的循环神经网络(Recurrent Neural Network, RNN)[13]采用与传统神经网络相似的输入层再到隐藏层到输出层的结构,不同的是,其隐藏层的神经元不仅受到当前输入的影响,还受到上一时刻该神经元单元状态的影响。RNN能有效地保留时域信息,但在反向传播过程中容易产生梯度消失等问题,导致参数的更新缓慢。因此,本文采用门控循环单元(Gated Reurrent Unit, GRU)[14]搭建时序模型,该模型通过重置门和更新门控制记忆的去留,能有效地解决梯度消失问题。其单元结构如图5所示。
对于当前时刻的输入xt,与上一时刻的单元状态ht-1,有:重置门接收当前输入与上一时刻单元状态,经过一个参数矩阵wr变换和激活函数得到重置门结果rt,该结果大小决定着多大程度上对历史信息进行擦除:
rt=σ(Wr·[ht-1,xt])。
(3)
更新门与重置门类似,采用不同的参数矩阵wz,生成重置门的结果zt,该结果决定着更新单元状态的比例:
zt=σ(Wz·[ht-1,xt])。
(4)
从而得到当前单元状态:
(5)
(6)
将单元信息再经过一个参数矩阵wo与激活函数即得到当前输入的输出结果:
yt=σ(Wo·ht)。
(7)
车间内工人的行为与自然场景下的普通行为不同,工人行为与车间环境、使用工具等的关系更为紧密,因为工人的行为都是为了完成某种特定工作而对环境或物体进行的操作,例如给一个工件安装螺丝,打开一个机器的开关等。而这些物理环境因素往往决定着工人的行为意图,对这些因素进行特征提取从而对人体关节数据形成注意力机制[15-17],能更好地对工人的行为进行识别,例如图6中的操作动作,若由于被操作物体的存在,对其行为的识别应偏向于受双手手部关节位置序列的影响,同时不同的物体也对行为的最终判断有着至关重要的影响,若检测出工人手附件存在螺丝刀,根据该工件的语义信息,其进行安装螺丝的行为应有更大的概率。
基于此,本文根据车间行为的特点,在原有GRU时序网络中引入工件注意力。要获取图像中存在的例如螺丝刀、扳手等车间中常见物体的特征,需要应用语义分割网络进行针对性的训练。采用全卷积网络模型,其结构如图7所示,由上采样层与下采样层组成,下采样层通过卷积层与池化层提取图像中的特征同时缩小图像大小。上采样层通过反卷积与卷积提取特征同时恢复图像大小直至与原图大小相同完成像素级别的语义分割。训练完成的模型拥有对工件工具的特征提取能力。
在推理过程中,仅使用模型的下采样部分(固定参数)进行特征提取,将下采样的结果经过额外的卷积层与两路不同全连接网络生成两个最终的特征向量,也就是一个维度为N×1的矩阵,这里的N取决于最后一层神经网络的单元个数。在与骨骼向量融合时,N设为256(与骨骼向量的高维表示长度一致),在与时序网络输出结果融合时,N设为4(4种行为类别)。额外的卷积层与全连接参与行为识别模型的训练,对时序网络的训练提供注意力支持[17]。融合方法采用的是典型的注意力机制(如图7),即对原始向量与注意力向量进行对应元素点积,其结果与原始向量拼接成新向量作为下一层网络的输入。具体来说,对于关节坐标向量
Pcoordinate=(x1,y1,x2,y2,…,xn,yn),
(8)
特征向量
Vfeature=(v1,v2,…,v2n),
(9)
有注意力参数
Wattention=Pcoordinate⊙Vfeature。
(10)
其中⊙表示按元素点乘。该结果与坐标数据拼接形成拼接矩阵Pconcat=[Wattention,Pcoordinate],拼接矩阵再通过一个线性层转成GRU模型的输入,如图8所示。时序网络输出处的注意力机制采用相似结构,使神经网络原始输出收到特征向量的影响从而实现由特征向量导向的作用,最后经过Softmax层输出各个类别的概率。
实验硬件环境为CPU Intel i7 8 700(6核心12线程),内存容量16 GB,显卡为RTX2060,使用CUDA加速运算操作系统为Ubuntu16.04,编程环境为Python3.5。
为验证所提算法的可靠性及泛化能力,本文分别在自建车间动作数据集以及INRIA Xmas Motion Acquisition Sequences(IXMAS)数据集[18]上进行实验。如图9所示,自建样本数据的场景模拟零件装配过程主要包括安装螺丝,紧固,切割3类动作,每段序列中各动作按一定顺序多次出现。共计200组动作序列,逐帧进行类别标注,其中训练集150组,验证集50组。
IXMAS数据集的数据格式为连续的图片序列,每个序列包含14个常见动作(看表,叉手,挠头,坐下,起身,转身,走动,挥手,击拳,踢腿,指点,扔,从头顶抛物,从下面抛物),由11位参与者每人做3遍,同时使用5个不同角度的摄像头进行录制,图片序列均有动作分类标签。由于头顶角度的摄像头所获取的画面难以识别人体的各个关节,仅采用前4个摄像头数据,共132组动作序列,1 848个动作,其中训练集100组,测试机32组。
为展示所提算法的优越性能,拟在自建样本数据上将基于骨架结合工件注意力的模型与基于图像的模型、基于骨架的模型进行全面对比。训练结果如图11所示。由图11中可以看出,在训练过程中,融合注意力的GRU模型在收敛速度上快于普通GRU模型,同时收敛值更小,这说明注意力机制能更好地促进收敛。而在测试集中,随着模型的训练,其准确率先是快速上升,而后逐渐平稳,并在一定范围内上下振荡。这是由于训练过程并不以测试集作为参照,针对训练集的参数调优结果并不一定总是使模型在测试集上的泛化性能优化,同时可以看到融合注意力的GRU模型相对于普通GRU模型具有更好的泛化性能,其测试集准确率仍能维持在80%左右,而GRU模型只能达到60%的准确率。由此可以看出,GRU中的注意力机制能有效地提升识别的准确率,同时增强模型的泛化性能。
此外,将时序样本分类真实值与测试值延时间线进行动作分类的堆叠,得到如图12所示结果。可以看到,DNN模型由于缺少时序信息,其结果不稳定,存在许多细小片段,这将极大地影响其准确率与回归率。GRU模型由于考虑到动作的上下文关系,其结果具有更好的连续性,而加入工件注意力机制后其性能得到进一步提升,预测结果整体来说能较好地反应真实值,但相对于真实值具有小幅度的延迟。同时,动作衔接过程,即更换工具时易出现分类的错误,究其原因是因为更换工具时,即将出现的各类动作具有相同的概率,在对真实值进行标注时的动作划分长短也将对实验结果产生一定的干扰。
由于工程应用中更关注动作类别的召回率以及精确率,即是否检测出所有的动作类别,以及检测出的动作类别是否都是正确的。本文采用一种序列交并比(temporal Intersection over Union, tIoU)方法进行召回率与准确率的计算,其计算方式如图13所示。
对于预测出的某一序列Tpred,若存在与该预测相符合的真实值片段Ttruth,则
(11)
若不存在,则tIoU=0。当tIoU>0.5,判定该预测正确并对真实值进行召回。
对各个模型的识别结果进行计算得到如表2所示结果。可以看到,由于DNN存在大量零碎片段,其召回率和准确率相对于时序模型都极低,而GRU在加入注意力机制后,对召回率与准确率都有较明显的提升,特别是准确率提高了32%,这得益于注意力机制对结果的导向作用,使模型能更好地区别易混淆的输入。处理速度方面,DNN由于不需要分析时序信息,其处理速度最快,且其时间主要用于人体关节的识别。加入注意力机制后,由于特征提取网络分支的存在,其处理速度相对于普通GRU有所下降,但仍能维持在单帧320 ms的速度。
表2 各模型在自建样本数据中性能指标
使用未经针对性训练的相同结构的模型在IXMAS数据集上进行实验得到如图14和表3所示结果。总体来看,所提方法在收敛速度、识别准确率、识别时间、泛化性能等方面的优越性与自建样本数据上的测试结果类似,相对于DNN和普通GRU仍具有较大的提升。但相比于自建数据集,该结果中引入注意力机制带来的准确率提升没有自建数据集大,这是因为该模型在原始图像分割任务的数据集上进行训练,网络学到的特征的空间层次结构可以有效地作为视觉世界的通用模型。因此,在IXMASI数据上进行特征提取时仍能提取到部分有效的非肉眼可观测的特征,这些特征从一定程度上也对网络具有一定的提升。另一方面,额外的特征输入提升了模型的容量,在数据集充足时理应提高模型的性能。速度上,由于采用相同的模型与相同的输入图片大小,检测速度与自建数据集实验基本一致,此处不再列出。
表3 各模型在IXMAS数据集检测指标
车间内工人的行为大多是对工件或设备进行操作,本文针对这一规律,提出一种基于工件注意力机制的可用于在线监控车间作业人员的行为识别方法。该方法融合关节序列信息与工件特征信息,并使用GRU模型作为基础时序模型。在自建数据样本以及公共数据集上进行了实验,验证了该方法的有效性,尤其是在自建数据样本中对工具进行预训练之后使模型性能得到了较大的提升。该方法可用于对车间内作业流程的动作监管,保证作业顺序,防止危险动作的发生,保障车间的安全高效生产。未来,可在此研究基础上,使用手部关节进行更加精细的动作推理或使用不同的特质融合机制对工件特质与人体特质进行融合。另外,也可将该方法融入人机协作或是作业行为评估领域。