一种人体行为识别网络模型及识别方法
技术领域
本发明涉及计算机视觉领域,尤其涉及一种人体行为识别网络模型及识别方法。
背景技术
近年来随着深度学习等相关技术的兴起,深度神经网络在计算机视觉等各领域都取得了突破性的进展;深度学习的特点是采用较深的网络结构并运用大量的训练数据从图像低层的像素中学习到更高层更复杂的信息,以拟合出适用于当前任务的网络。
为了响应国家对于建设“平安城市”、“平安校园”的号召,智能监控再次进入研究热潮。人体行为识别在传统方法中主要是提取局部特征,虽然考虑了表观和运动信息,但是这种信息只局限在单帧中,其中帧的上下文表观及运动信息被忽略,这将导致人体行为识别不够精确,并且传统算法在处理摄像机不同视角、背景杂乱、遮挡等也存在严重问题。如何设计一个高效且高识别率的人体行为识别算法显得尤为重要。
申请号为CN201711054505.6的中国发明专利申请中公布了“人体行为识别模型及其构建方法和人体行为识别方法”,其包括对样本库中人体行为视频进行预处理;采用3D卷积神经网络提取人体行为视频的特征向量;将特征向量输入库伦力场进行聚类,采用损失函数计算特征向量在库伦力场初始位置与最终位置的损失值;当损失值≥设定阈值时,将损失值所代表的误差进行反向传播,并调整分类器参数,直至损失值<设定阈值;将提取的特征向量输入分类器,将分类器输出的分类结果和视频样本的类别标签的差值作为分类器的误差反向传播,并调整分类器的参数,直至误差<设定阈值;当损失值<设定阈值时,记录分类器当前的优化参数和对应的人体行为视频形成人体行为识别模型。通过用3D卷积神经网络实现视频的特征向量提取并再进行聚类;整个网络只有8层,而进行特征提取的卷积网络只有2层,导致提取的特征太底层,很难得到高层复杂的信息,整个网络准确率低。
申请号为CN201810848243.9的中国发明专利申请中公布了“一种人体行为识别方法及系统”,其可以区分背景视频与包含人体行为视频并识别出其种类的网络,通过运用多任务深度学习方法训练3D卷积神经网路,将多种人体行为属性以及背景视频的固定连续帧数的帧块作为网络的输入,经过3D卷积神经网络训练后完成识别任务。本发明不仅提高了提取特征的效率,而且也提高了对包含背景视频的长视频段的识别能力,以便为智能监控等领域提供更好的技术支撑。但是这种方法需要浪费很大的存储空间,训练出的模型很大,不能满足实时性的要求。
申请号为CN201510293654.2的中国发明专利中公布了“一种基于深度神经网络的人体行为识别方法及识别系统”,其包括:获取行为人的原始深度数据流;通过行为人的原始深度数据流提取人体的骨架关节点数据;利用提取到的人体骨架关节点数据所对应的三维坐标,来对整个人体建模;通过对整个人体建模来进行特征提取,将特征数据送入限制波尔兹曼机网络进行预处理,将得到的权值初始化BP神经网络参数,训练出深度神经网络模型,并据此对特征提取的结果进行行为识别;采用多线程并行处理,将提取到的人体骨架关节点数据与实际人体进行重合,并将识别到的行为进行实时显示;建立异常行为模板库并对检测到的异常行为进行报警。本发明能实时的检测人体行为的变化,对人体的异常行为(如跌倒)进行报警;但是其需要人工建立异常行为模板库,且在识别判断时需要先提取人体骨架关键点,过程复杂繁琐,效率低下。
其发明内容
本发明的目的在于克服现有技术的缺点,提供了一种人体行为识别网络模型及识别方法,解决了现有识别方法和识别系统存在的不足。
本发明的目的通过以下技术方案来实现:一种人体行为识别网络模型,它依次包括第一3D卷积层、BN层、relu激活函数层、第一最大池化层、block网络块、全局均值池化层和softmax激活函数层;
所述第一3D卷积层用于将输入的连续视频帧的维度提高然后依次经过所述BN层和relu激活函数层后进入所述第一最大池化层作最大池化操作;
所述block网络块中每个输入通道对应一个3D卷积核用于实现特征的快速提取、降维和最大池化的操作后通过所述全局均值池化层进行处理后输入到所述softmax激活函数层;
所述softmax激活函数层用于输出形态类别。
进一步地,所述block网络块包括有第一block层、第二block层、第三block层、第四block层和第五block层;其中,后面的block层为前面的block层的充分学习提供特征;在每两个block层之间都设置有transition layer过渡层,用于对每个block层的输出进行降维。
进一步地,所述第一block层包括有4个dense block单元,所述第二block层包括有8个dense block单元,所述第三block层包括有16个dense block单元,所述第四block层包括有32个dense block单元,所述第五block层包括有64个dense block单元;通过每层block层中dense block单元数量的依次增多由浅到深的提取特征,实现dense block单元的特征复用。
进一步地,每个block层中的dense block单元中的每个输入通道对应一个3D卷积核以实现进一步减少网络参数和计算量。
进一步地,所述transition layer过渡层包括第二3D卷积层和第二最大池化层,以实现对每个block层的输出进行降维和最大池化处理。
一种人体行为识别网络模型的人体行为识别方法,所述识别方法包括:
将连续的视频序列输入到网络模型中的第一3D卷积层升高维度后依次进入BN层和relu激活函数层;
将所述relu激活函数层的输出输入到block网络块中的第一block层、第二block层、第三block层、第四block层和第五block层进行特征提取、降维和最大池化处理后输入到全局均值池化层;
所述全局均值池化层对输入数据做正则化防止过拟合后输出到softmax激活函数层,最后输出形态类别。
进一步地,在网络模型进行行为识别之前还需要进行网络模型训练测试步骤,其包括以下内容:
采集大量人体行为数据并标注行为类别作为数据训练集,通过标注行为类别让网络学习标注行为的特征,并进行预测;
将数据训练集输入网络模型中,通过提取连续图像帧中的特征进行前向传播得到训练类别,再经损失函数反向传播更新参数;
当损失值满足要求时,停止学习,网络模型训练初步完成,否则继续训练;
选取一定数量人体行为数据作为测试集输入到上述完成训练的网络模型中,通过前向传播得到行为类别,并与原标签进行比对,得到比对结果的正确率;
如果正确率满足要求,则表示此网络模型测试通过,否则更新调节参数后继续对该网络模型进行训练。
本发明的有益效果为:一种人体行为识别网络模型及识别方法,具有准确率高和实时性高的特点,在保持准确率的同时参数量和计算量相比其他模型少;能够识别出给定视频的行为。
附图说明
图1为本发明的模型结构示意图;
图2为本发明的block网络块结构示意图;
图3为本发明方法的流程示意图;
图4为本发明网络模型训练的流程示意图。
具体实施方式
为使本申请实施例的目的、技术方案和有点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的保护范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本发明做进一步的描述。
下面结合附图对本发明做进一步的描述,但本发明的保护范围不局限于以下所述。
实施例1
如图1所示,为发明实施例提供的一种人体行为识别网络模型,它从上到下依次包括设置的第一3D卷积层、BN层、relu激活函数层、第一最大池化层、block网络块、全局均值池化层和softmax激活函数层;
其中,第一3D卷积层用于增加后续特征图的维度,实现将输入的连续视频帧的维度提高然后依次经过所述BN层和relu激活函数层后进入所述第一最大池化层作最大池化操作;block网络块中每个输入通道对应一个3D卷积核用于实现特征的快速提取、降维和最大池化的操作后通过所述全局均值池化层进行处理后输入到所述softmax激活函数层;softmax激活函数层用于输出形态类别。
BN(batch normalization归一化)层用于将每层的输出规范为标准正态分布,使得下层网络能够更好的学习,并能加速训练网络,调高泛化性能。
relu激活函层数进行分线性变换,能够更好的挖掘模型的相关特征,拟合训练数据,更利于行为识别网络模型的训练。
最大池化层用于降低特诊图的分辨率以减少计算量;block网络块用于实现特征复用;全局均值池化层用于减少参数和计算量,并保证位置信息的完整性。
进一步地,如图2所示,block网络块包括有第一block层、第二block层、第三block层、第四block层和第五block层;其中,第一block层包括有4个dense block单元,第二block层包括有8个dense block单元,第三block层包括有16个dense block单元,第四block层包括有32个dense block单元,第五block层包括有64个dense block单元。
本发明设置5个block层的目的在于,因为后面的block层要充分虚线前面block层所提供的特征,而当block层小于4时,整体的网络深度不够,而当block层大于5时,整体的网络层数太多(因为后一个block层中的dense block单元总比前一个block层多)不易网络模型训练,因此将block层设置为5个是最合适的。且通过每层block层中dense block单元数量的依次增多由浅到深的提取特征,实现dense block单元的特征复用。
进一步地,在每两个block层之间都设置有transition layer过渡层,用于对每个block层的输出进行降维每个block层中的dense block单元中的每个输入通道对应一个3D卷积核以实现进一步减少网络参数和计算量的目的。其中,transition layer过渡层包括1*1的第二3D卷积层和第二最大池化层,以实现对每个block层的输出进行降维和最大池化处理。
实施例2
如图3和图4所示,本发明另一种实施例包括一种人体行为识别网络模型的人体行为识别方法,所述识别方法包括:
S1、对实施例1中构建的识别网络模型进行训练;其具体为:
S11、采集大量人体行为数据并标注行为类别作为数据训练集;通过标注行为类别让网络学习标注行为的特征,并进行预测。
其中,一般而言作为数据训练集的图像不少于5000张,为加快训练速度也可根据实际情况进行增加不同行为类型的图像作为训练集。
S12、将数据训练集输入网络模型中,通过提取连续几帧图像中的特征进行前向传播得到训练类别,再经损失函数反向传播更新参数;
S13、当损失值满足要求时,停止学习,网络模型训练初步完成,否则继续训练;其中,网络在训练时要小于设定的阈值,若没有达到就表示欠拟合,还没有完成训练学习。
S14、选取一定数量人体行为数据作为测试集输入到上述完成训练的网络模型中,通过前向传播得到行为类别,并与原标签进行比对,得到比对结果的正确率;
进一步地,为了完成对网络模型的测试,其测试集的数据与训练集数据的比为1:10,当最后比对结果的正确率大于85%时,则说明模量模型正确率满足要求,通过测试。
S15、如果正确率满足要求,则表示此网络模型测试通过,否则更新调节参数后继续对该网络模型进行训练。
S2、将连续的视频序列输入到网络模型中的第一3D卷积层升高维度后依次进入BN层和relu激活函数层;
其中,BN层主要将上层的输出规范到N(0.1)的正态分布中,然后再输入到relu激光函数中。
S3、将所述relu激活函数层的输出输入到block网络块中的第一block层、第二block层、第三block层、第四block层和第五block层进行特征提取、降维和最大池化处理后输入到全局均值池化层;
其中,第一block层包括有4个dense block单元,第二block层包括有8个denseblock单元,第三block层包括有16个dense block单元,第四block层包括有32个denseblock单元,第五block层包括有64个dense block单元。在每两个block层之间都设置有transition layer过渡层,用于对每个block层的输出进行降维每个block层中的denseblock单元中的每个输入通道对应一个3D卷积核以实现特征的快速提取。其中,transitionlayer过渡层包括1*1的第二3D卷积层和第二最大池化层,以实现对每个block层的输出进行降维和最大池化处理。
S4、所述全局均值池化层对输入数据做正则化防止过拟合后输出到softmax激活函数层,最后输出形态类别。
通过全局均值池化层对整个网络在结构上做正则化防止过拟合,直接实现了降维,更重要的是极大地减少了网络的参数,提高了网络模型数据的计算速度和识别效率。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。