一种自适应时序移位神经网络时序行为识别方法及系统
技术领域
本发明涉及一种自适应时序移位神经网络时序行为识别方法及系统,涉及一般的图像数据处理或产生G06T领域,尤其涉及G06T 7/20运动分析领域。
背景技术
随着人工智能的发展,对人体行为进行识别受到越来越多的关注。对人体行为进行识别可以应用在安防、人机交互等领域。
行为识别的研究中,一个热点问题就是如何进行时序行为识别。所谓时序行为,指的是无法通过单帧图像来判断,需要通过观察一个时序动作来判断的行为。例如站起来和坐下去,这两个行为就难以通过单帧图像来区分,只有观察一个时序片段才能区分。即使是一些和时序先后顺序不那么强的行为(如拍手,握手等),在引入时序建模之后往往也会有精度的提升。
现有的用于时序移位方法是通过一个时序移位模块来对不同时间点的特征进行建模,对于时序卷积和时序移位方法,其感受野的大小是人为指定的,而这种人为指定的感受野并不适合时序行为识别任务;在时序行为识别中,不同数据库需要不同的感受野,这就导致不同数据库上需要进行大量的调参实验。
发明内容
发明目的:一个目的是提出一种自适应时序移位神经网络时序行为识别方法,以解决现有技术存在的上述问题。进一步目的是提出一种实现上述方法的系统。
技术方案:一种自适应时序移位神经网络时序行为识别方法,包括以下步骤:
步骤1、采集多个时间点的特征并建模;
步骤2、引入自适应时序移位神经网络学习每一层网络所需的感受野。
在进一步的实施例中,所述步骤1进一步包括:建立一个时序移位模型,模型包含时间T和特征通道数C两个维度,特征通道C被分为多份,其中一份向上一时刻移位,另一份向下一时刻移位,其余份不进行移位,经过移位后,新的特征通过线性插值来获得,如下:
式中,
;
,其中T为时序维度,C是特征通道数,N是与时序无关的其他维度;
表示自适应时序移位神经网络中可学习的移位变量,其中i=1,2,3…C,即i的个数与特征通道数一致;v表示移位速率,
表示当前时刻,
表示特征通道C其中的一份向上一时刻移位,
表示特征通道C其中的另一份向下一时刻移位,
表示通过线性插值获得的新的特征。
在进一步的实施例中,步骤1中:
利用卷积神经网络预先提取视频序列的视觉特征,对于视频数据的每一帧图像,将其转化为RGB分布图,并生成对应的光流图:
首先将每1帧图像上的每一像素点取坐标点
,将坐标点
转化为光流
,计算出光流约束方程:
式中,
表示像素点取坐标点
对应的灰度值,
表示目标图像的运动时间,为目标视频的帧率的倒数;
表示的是灰度对时间的变化率,
表示的是灰度值在x方向上的空间梯度,
表示的是灰度值在y方向上的空间梯度,
和v分别代表x方向和y方向上的光流速度;
利用空间流和时间流网络对时序光流特征建模来挖掘序列中的行为一致性:
式中,
表示在建模过程中对应的RGB参数,
表示在建模过程中对应的光流参数;其中z的取值区间为[0,1],
表示sigmoid激活;
表示RGB特征,
表示光流特征,
表示上一时刻的RGB特征对应空间流网络和时间网络的全连接层,
表示上一时刻的光流特征对应空间流网络和时间网络的全连接层;
表示当前时刻的RGB特征对应空间流网络和时间网络的全连接层,
表示当前时刻的光流特征对应空间流网络和时间网络的全连接层;
训练上述移位变量:
式中,
表示神经元的权重向量,
表示对输入向量x进行非线性变换,
表示对神经元的权重向量激活函数转换,将输入向量x赋值为
,n表示神经网络的级数,b表示偏量,
表示经过训练后的移位变量;
式中,
表示与分离超平面垂直的权向量,b表示超平面的偏置向量,
表示第i个输入单元和隐藏单元相关联的权值向量,
表示训练周期。
在进一步的实施例中,步骤2用于进行时序行为识别,并不指定所输入的数据,所输入的数据包括但不限于RGB视频、光流视频、骨骼点视频。
在进一步的实施例中,骨骼点视频的输入进一步包括如下步骤:
步骤2-1、由图像获取模块获取人体骨骼点图像,获取原图像的数据区指针,建立两个缓冲区,缓冲区大小与原图形相同,缓冲区主要用于存储原图像及原图形副本,将两个缓冲区初始化为原图像副本,分别标记为图像1和图像2;
步骤2-2、在每个缓冲区域中单独设置一个用于卷积操作的Krisch模板,然后在两个区域中分别遍历副本图像中的像素,逐一进行卷积操作,计算结果,对比将计算得出的较值存到图像1中,再将图像1复制到缓存图像2中;
步骤2-3、重复步骤2-2,一次设置剩余的六个模板,并进行计算处理,最后得出图像1与图像2中较大灰度值存放在缓冲图像1中;将处理后的图像1复制到原图像数据中,在进行编程实现图像的边缘处理;
步骤2-4、当人体行为特征图像处理完成后,提取模块用于提取图像处理模块处理后图像的骨骼点提取,当图像处理模块处理图像获取模块获取的图像完成后,此时人体边缘图上将按照最接近获取图像行为人体型进行匹配预先录入的骨骼点位置,进而将匹配后的骨骼点进行显示在人体边缘图上。
在进一步的实施例中,所述步骤2-2进一步包括:
在检测图像边缘的时候使用卷积3*3模板,遍历图像中的像素点,逐一考察各个像素点周围邻近区域的像素灰度值,计算其中三个相邻像素灰度的加权与其余五个像素的灰度加权和差值;卷积模板如下:
使用八个卷积模板,依次处理原图像中的所有像素,计算得到其边缘强度,再通过阀值进行检测,提取最后边缘点,完成边缘检测。
在进一步的实施例中,还包括训练可学习的移位变量,对骨骼点数据进行修正:
步骤3-1、选择身体中心点作为根节点,计算所有与根节点直接相连点到根节点的向量,再用每个向量分别处以向量的模长,得到每个向量的方向向量;
步骤3-2、用步骤3-1中方向向量乘以参考骨架中相应向量的长度得到一个向量,再用根节点的坐标加上该向量,得到修正后的某个与根节点直接相连点的坐标,将相连点坐标记录下来,作为归一化后相应骨骼点的坐标值,在按照广度优先搜索算法的顺序,依次更新根节点的坐标值;
步骤3-3、重复步骤1至步骤2直至所有骨骼点的值都得到修正。
在进一步的实施例中,步骤3-2中归一化骨骼点坐标值的方法如下:
第三步;对所有的(
),按照广度优先搜索策略,依次执行;
第七步:返回第三步,知道骨架中的所有的肢体都遍历完成;
输出:集合A中保存的骨骼点坐标即为修正后的坐标;
其中,
的值代表第
个肢体,
代表参考估价中的第
个肢体的长度,
分别表示参考估价中第
个肢体开始节点和结束节点的坐标值,这样将所有的
的值计算出来,即可得到所有修正后的骨骼点坐标,在保证肢体间夹角不变的情况下,进行对估价的尺寸进行缩放。
一种自适应时序移位神经网络时序行为识别系统,其特征在于,包括用于采集多个时间点的特征并建模的时序移位模块;用于引入自适应时序移位神经网络学习每一层网络所需的感受野的神经网络学习模块;以及用于训练可学习的移位变量并对骨骼点数据进行修正的骨骼点修正模块。
在进一步的实施例中,所述时序移位模块进一步用于建立一个时序移位模型,模型包含时间T和特征通道数C两个维度,特征通道C被分为多份,其中一份向上一时刻移位,另一份向下一时刻移位,其余份不进行移位,经过移位后,新的特征通过线性插值来获得,如下:
式中,
;
,其中T为时序维度,C是特征通道数,N是与时序无关的其他维度;
表示自适应时序移位神经网络中可学习的移位变量,其中i=1,2,3…C,即i的个数与特征通道数一致;v表示移位速率,
表示当前时刻,
表示特征通道C其中的一份向上一时刻移位,
表示特征通道C其中的另一份向下一时刻移位,
表示通过线性插值获得的新的特征;
利用卷积神经网络预先提取视频序列的视觉特征,对于视频数据的每一帧图像,将其转化为RGB分布图,并生成对应的光流图:
首先将每1帧图像上的每一像素点取坐标点
,将坐标点
转化为光流
,计算出光流约束方程:
式中,
表示像素点取坐标点
对应的灰度值,
表示目标图像的运动时间,为目标视频的帧率的倒数;
表示的是灰度对时间的变化率,
表示的是灰度值在x方向上的空间梯度,
表示的是灰度值在y方向上的空间梯度,
和v分别代表x方向和y方向上的光流速度;
利用空间流和时间流网络对时序光流特征建模来挖掘序列中的行为一致性:
式中,
表示在建模过程中对应的RGB参数,
表示在建模过程中对应的光流参数;其中z的取值区间为[0,1],
表示sigmoid激活;
表示RGB特征,
表示光流特征,
表示上一时刻的RGB特征对应空间流网络和时间网络的全连接层,
表示上一时刻的光流特征对应空间流网络和时间网络的全连接层;
表示当前时刻的RGB特征对应空间流网络和时间网络的全连接层,
表示当前时刻的光流特征对应空间流网络和时间网络的全连接层;
训练上述移位变量:
式中,
表示神经元的权重向量,
表示对输入向量x进行非线性变换,
表示对神经元的权重向量激活函数转换,将输入向量x赋值为
,n表示神经网络的级数,b表示偏量,
表示经过训练后的移位变量;
式中,
表示与分离超平面垂直的权向量,b表示超平面的偏置向量,
表示第i个输入单元和隐藏单元相关联的权值向量,
表示训练周期;
所述神经网络学习模块进一步由图像获取模块获取人体骨骼点图像,获取原图像的数据区指针,建立两个缓冲区,缓冲区大小与原图形相同,缓冲区主要用于存储原图像及原图形副本,将两个缓冲区初始化为原图像副本,分别标记为图像1和图像2;
在每个缓冲区域中单独设置一个用于卷积操作的Krisch模板,然后在两个区域中分别遍历副本图像中的像素,逐一进行卷积操作,计算结果,对比将计算得出的较值存到图像1中,再将图像1复制到缓存图像2中;
检测图像边缘的时候使用卷积3*3模板,遍历图像中的像素点,逐一考察各个像素点周围邻近区域的像素灰度值,计算其中三个相邻像素灰度的加权与其余五个像素的灰度加权和差值;卷积模板如下:
使用八个卷积模板,依次处理原图像中的所有像素,计算得到其边缘强度,再通过阀值进行检测,提取最后边缘点,完成边缘检测;
一次设置剩余的六个模板,并进行计算处理,最后得出图像1与图像2中较大灰度值存放在缓冲图像1中;将处理后的图像1复制到原图像数据中,在进行编程实现图像的边缘处理;当人体行为特征图像处理完成后,提取模块用于提取图像处理模块处理后图像的骨骼点提取,当图像处理模块处理图像获取模块获取的图像完成后,此时人体边缘图上将按照最接近获取图像行为人体型进行匹配预先录入的骨骼点位置,进而将匹配后的骨骼点进行显示在人体边缘图上;
所述骨骼点修正模块进一步选择身体中心点作为根节点,计算所有与根节点直接相连点到根节点的向量,再用每个向量分别处以向量的模长,得到每个向量的方向向量;用方向向量乘以参考骨架中相应向量的长度得到一个向量,再用根节点的坐标加上该向量,得到修正后的某个与根节点直接相连点的坐标,将相连点坐标记录下来,作为归一化后相应骨骼点的坐标值:第一步:定义
为根节点坐标;第二步:将
赋初始值为
;第三步;对所有的(
),按照广度优先搜索策略,依次执行;第四步:计算
-
;第五步:计算
;第六步:
+
,将
的值保存到集合A中;第七步:返回第三步,知道骨架中的所有的肢体都遍历完成;集合A中保存的骨骼点坐标即为修正后的坐标;
其中,
的值代表第
个肢体,
代表参考估价中的第
个肢体的长度,
分别表示参考估价中第
个肢体开始节点和结束节点的坐标值,这样将所有的
的值计算出来,即可得到所有修正后的骨骼点坐标,在保证肢体间夹角不变的情况下,进行对估价的尺寸进行缩放;最终按照广度优先搜索算法的顺序,依次更新根节点的坐标值。
有益效果:本发明提出了一种自适应时序移位神经网络时序行为识别方法及系统,能够自适应的学习每一层网络所需的感受野,并且能够自适应的学习每种数据集所需的感受野。自适应时序移位神经网络能够针对不同的数据学习出不同的时间移位向量,从而自适应的适应不同的数据分布。通过本发明提出的时序行为识别方法,能够在提高行为检测精度的同时节省计算资源,这种自适应的学习比普通时间卷积的手工调参更加优越。
附图说明
图1为本发明中时序移位模块的结构示意图。
图2为本发明针对骨骼点的移位卷积示意图。
图3为本发明步骤1中建立时序移位模型并提取视觉模型的流程图。
图4为本发明在两个数据库上分别学到的自适应时间移位图。
具体实施方式
申请人认为,现有的用于时序移位方法是通过一个时序移位模块来对不同时间点的特征进行建模,对于时序卷积和时序移位方法,其感受野的大小是人为指定的,而这种人为指定的感受野并不适合时序行为识别任务;在时序行为识别中,不同数据库需要不同的感受野,这就导致不同数据库上需要进行大量的调参实验。
我们这里重点介绍时序移位方法,这种方法是我们所提出的自适应时序移位的主要背景技术知识。时序移位是通过一个时序移位模块来对不同时间点的特征进行建模,如图1所示。对于一个时序特征,其至少包含两个维度:时间T和特征通道数C。在时序移位模块中,特征通道C被分为多份,其中一份向上一时刻移位,另一份向下一时刻移位,其余份不进行移位。这种操作后会紧跟一个特征维度C上的线性变换层(fully-connect layer)。通过移位操作,不同时间点的特征进行拼接,而后的线性变换层可对不同时间的特征进行信息建模。
值得一提的是,本发明涉及的方法用于进行时序行为识别,并不指定所输入的数据,下面提供一种以骨骼点视频作为输入数据的实施例,来对本发明做进一步解释。
为此,本发明提出一种自适应时序移位神经网络时序行为识别方法,具体的方法如下:
步骤1、采集多个时间点的特征并建模:
步骤1-1、建立一个时序移位模型,如图1所示,模型包含时间T和特征通道数C两个维度,特征通道C被分为多份,其中一份向上一时刻移位,另一份向下一时刻移位,其余份不进行移位,经过移位后,新的特征通过线性插值来获得,如下:
式中,
;
,其中T为时序维度,C是特征通道数,N是与时序无关的其他维度;
表示自适应时序移位神经网络中可学习的移位变量,其中i=1,2,3…C,即i的个数与特征通道数一致;v表示移位速率,
表示当前时刻,
表示特征通道C其中的一份向上一时刻移位,
表示特征通道C其中的另一份向下一时刻移位,
表示通过线性插值获得的新的特征;
步骤1-2、利用卷积神经网络预先提取视频序列的视觉特征,对于视频数据的每一帧图像,将其转化为RGB分布图,并生成对应的光流图,如图3所示。
首先将每1帧图像上的每一像素点取坐标点
,将坐标点
转化为光流
,计算出光流约束方程:
式中,
表示像素点取坐标点
对应的灰度值,
表示目标图像的运动时间,为目标视频的帧率的倒数;
表示的是灰度对时间的变化率,
表示的是灰度值在x方向上的空间梯度,
表示的是灰度值在y方向上的空间梯度,
和v分别代表x方向和y方向上的光流速度;
步骤1-3、利用空间流和时间流网络对时序光流特征建模来挖掘序列中的行为一致性:
式中,
表示在建模过程中对应的RGB参数,
表示在建模过程中对应的光流参数;其中z的取值区间为[0,1],表示sigmoid激活;
表示RGB特征,
表示光流特征,
表示上一时刻的RGB特征对应空间流网络和时间网络的全连接层,
表示上一时刻的光流特征对应空间流网络和时间网络的全连接层;
表示当前时刻的RGB特征对应空间流网络和时间网络的全连接层,
表示当前时刻的光流特征对应空间流网络和时间网络的全连接层;
步骤1-4、训练上述移位变量:
式中,
表示神经元的权重向量,
表示对输入向量x进行非线性变换,
表示对神经元的权重向量激活函数转换,将输入向量x赋值为
,n表示神经网络的级数,b表示偏量,
表示经过训练后的移位变量;
式中,
表示与分离超平面垂直的权向量,b表示超平面的偏置向量,
表示第i个输入单元和隐藏单元相关联的权值向量,
表示训练周期。
步骤2、引入自适应时序移位神经网络学习每一层网络所需的感受野,如图2所示:
步骤2-1、由图像获取模块获取人体骨骼点图像,获取原图像的数据区指针,建立两个缓冲区,缓冲区大小与原图形相同,缓冲区主要用于存储原图像及原图形副本,将两个缓冲区初始化为原图像副本,分别标记为图像1和图像2;
步骤2-2、在每个缓冲区域中单独设置一个用于卷积操作的Krisch模板,然后在两个区域中分别遍历副本图像中的像素,逐一进行卷积操作,计算结果,对比将计算得出的较值存到图像1中,再将图像1复制到缓存图像2中;在检测图像边缘的时候使用卷积3*3模板,遍历图像中的像素点,逐一考察各个像素点周围邻近区域的像素灰度值,计算其中三个相邻像素灰度的加权与其余五个像素的灰度加权和差值;卷积模板如下:
使用八个卷积模板,依次处理原图像中的所有像素,计算得到其边缘强度,再通过阀值进行检测,提取最后边缘点,完成边缘检测。
步骤2-3、重复步骤2-2,一次设置剩余的六个模板,并进行计算处理,最后得出图像1与图像2中较大灰度值存放在缓冲图像1中;将处理后的图像1复制到原图像数据中,在进行编程实现图像的边缘处理;
步骤2-4、当人体行为特征图像处理完成后,提取模块用于提取图像处理模块处理后图像的骨骼点提取,当图像处理模块处理图像获取模块获取的图像完成后,此时人体边缘图上将按照最接近获取图像行为人体型进行匹配预先录入的骨骼点位置,进而将匹配后的骨骼点进行显示在人体边缘图上。
步骤3、训练可学习的移位变量,对骨骼点数据进行修正。
步骤3-1、选择身体中心点作为根节点,计算所有与根节点直接相连点到根节点的向量,再用每个向量分别处以向量的模长,得到每个向量的方向向量;
步骤3-2、用步骤3-1中方向向量乘以参考骨架中相应向量的长度得到一个向量,再用根节点的坐标加上该向量,得到修正后的某个与根节点直接相连点的坐标,将相连点坐标记录下来,作为归一化后相应骨骼点的坐标值,在按照广度优先搜索算法的顺序,依次更新根节点的坐标值;归一化骨骼点坐标值的方法如下:
第三步;对所有的(
),按照广度优先搜索策略,依次执行;
第七步:返回第三步,知道骨架中的所有的肢体都遍历完成;
输出:集合A中保存的骨骼点坐标即为修正后的坐标;
其中,
的值代表第
个肢体,
代表参考估价中的第
个肢体的长度,
分别表示参考估价中第
个肢体开始节点和结束节点的坐标值,这样将所有的
的值计算出来,即可得到所有修正后的骨骼点坐标,在保证肢体间夹角不变的情况下,进行对估价的尺寸进行缩放。
步骤3-3、重复步骤1至步骤2直至所有骨骼点的值都得到修正。
我们提出的自适应时序移位神经网络的计算过程是可导的,因此可以通过常见的反向传播算法来训练这C个可学习的移位变量 。自适应时序移位神经网络的参数量只有C个,浮点乘法次数只有2NTC次,并且不同的特征点可以并行计算,因此其计算速度远高于普通时间卷积方法。
我们的大量实验表明,自适应时序移位神经网络可以在C++或CUDA语言上高效实现,从而非常高效地在CPU或GPU上部署,计算速度远高于普通时间卷积方法(见表1)。并且,其行为识别精度也在普通时间卷积之上(见表2),这是由于我们的自适应时序移位神经网络可以自适应的学习网络每一层所需的感受野,这种自适应的学习比普通时间卷积的手工调参更加优越。我们在不同的数据库上进行的实验也表明,自适应时序移位神经网络能够针对不同的数据学习出不同的时间移位向量,从而自适应的适应不同的数据分布(例如,帧数较长的视频数据中学到的时间移位向量较大,而帧数较短的视频数据中学到的时间移位向量较小,见图2),这使得我们的方法在不同数据库上可以自动的学习合适的感受野,而无需人工调参。
表
与传统时间卷积相比,自适应时间移位卷积的加速效果
表2 与传统时间卷积的精度对比
无论传统时间卷积的卷积核取多大,我们的方法的精度始终显著高于传统时间卷积。
见图4,图4展现了在两个数据库上分别学到的自适应时间移位示意图。我们的网络中使用了20个自适应时间移位神经网络,其中每层都有C个时间移位值。我们从输入(bottom)到输出(top)分别可视化每层所学到的移位值。可见,NTU RGB+D数据库学到的移位范围大于NW-UCLA数据库。注意到NTU RGB+D数据的平均帧数比NW-UCLA数据更多,因此我们学到的这种分布是合理的。这体现出我们的方法对不同数据库的自适应性,即可以自适应的学到合适的感受野。