发明内容
有鉴于此,本发明的目的在于提供一种递归神经网络的训练方法、识别方法、装置及处理设备,可以对动作之间的时序转换关系进行学习,从而对动作进行更细粒度,更准确的动作识别。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种递归神经网络的训练方法,所述方法包括:获取训练样本,所述训练样本包括视频的多帧图像序列及所述视频对应的动作标识;对所述多帧图像序列进行特征提取,得到图像序列特征,所述图像序列特征包括每帧图像的特征;将所述图像序列特征输入递归神经网络进行动作分类,获得所述每帧图像的动作分类概率;其中,动作分类包含无动作类;基于所述动作分类概率,根据连接时序分类方法计算损失函数;通过对所述损失函数进行反向传播以训练递归神经网络。
进一步,所述对所述多帧图像序列进行特征提取,得到图像序列特征的步骤,包括:将所述多帧图像序列输入卷积神经网络进行空间特征提取;将提取得到的空间特征输入长短期记忆模块进行时间特征提取;将提取得到的时间特征作为图像序列特征。
进一步,所述将所述图像序列特征输入递归神经网络进行动作分类,获得所述每帧图像的动作分类概率的步骤,包括:将所述每帧图像的特征输入递归神经网络的Softmax层,得到每个时间所述每帧图像的动作分类概率。
进一步,所述基于所述动作分类概率,根据连接时序分类方法计算损失函数的步骤,包括:将所述动作分类概率乘以所述动作分类概率对应的时间,计算所述多帧图像序列的分类概率;对所述多帧图像序列的分类概率通过动态规划方式,使用连接时序分类方法计算动作标识错误率;将所述动作标识错误率作为损失函数。
进一步,对所述多帧图像序列的分类概率通过动态规划方式,使用连接时序分类方法计算动作标识错误率的步骤,包括:基于所述多帧图像序列的分类概率,通过前向模块计算到第k个动作标识所能对应的在先动作标识的第一概率;基于所述多帧图像序列的分类概率,通过后向模块计算从第k+1动作标识开始所能对应的后续动作标识的第二概率;结合所述第一概率和所述第二概率得到动作标识错误率。
第二方面,本发明实施例提供了一种应用第一方面及其各可能的实施方式中任一项获得的递归神经网络进行动作识别的方法,包括:获取待识别视频,并提取所述待识别视频的图像序列;所述图像序列包括至少两帧按时间排序的图像;将所述图像序列输入所述递归神经网络;其中,所述递归神经网络是基于连接时序分类方法进行训练得到的;通过所述递归神经网络对每帧所述图像进行分类,得到每帧所述图像的动作标识;根据每帧所述图像的动作标识确定所述待识别视频的动作标识。
进一步,所述通过所述递归神经网络对每帧所述图像进行分类,得到每帧所述图像的动作标识的步骤,包括:通过所述递归神经网络确定每帧所述图像的分类概率;根据最大的所述分类概率对每帧所述图像进行分类,得到每帧所述图像的动作标识。
进一步,所述根据每帧所述图像的动作标识确定所述待识别视频的动作标识的步骤,包括:如果所述图像的动作标识为无动作标识,去掉所述无动作标识;如果至少两帧连续的所述图像的动作标识重复,去掉重复的所述动作标识;将得到的简化结果确定为所述待识别视频的动作标识。
第三方面,本发明实施例提供了一种递归神经网络的训练装置,所述装置包括:样本获取模块,用于获取训练样本,所述训练样本包括视频的多帧图像序列及所述视频对应的动作标识;特征提取模块,用于对所述多帧图像序列进行特征提取,得到图像序列特征,所述图像序列特征包括每帧图像的特征;动作分类模块,用于将所述图像序列特征输入递归神经网络进行动作分类,获得所述每帧图像的动作分类概率;其中,动作分类包含无动作类;损失函数模块,用于基于所述动作分类概率,根据连接时序分类方法计算损失函数;反向传播模块,用于通过对所述损失函数进行反向传播以训练递归神经网络。
第四方面,本发明实施例提供了一种应用第一方面及其各可能的实施方式中任一项获得的递归神经网络进行动作识别的装置,包括:获取模块,用于获取待识别视频,并提取所述待识别视频的图像序列;所述图像序列包括至少两帧按时间排序的图像;输入模块,用于将所述图像序列输入所述递归神经网络;其中,所述递归神经网络是基于连接时序分类方法进行训练得到的;分类模块,用于通过所述递归神经网络对每帧所述图像进行分类,得到每帧所述图像的动作标识;识别模块,用于根据每帧所述图像的动作标识确定所述待识别视频的动作标识。
第五方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面及第二方面任一项所述的方法的步骤。
第六方面,本发明实施例提供了一种具有处理器可执行的程序代码的计算机可读介质,所述程序代码使所述处理器执行第一方面及第二方面任一项所述的方法的步骤。
本发明实施例提供了一种递归神经网络的训练方法、识别方法、装置及处理设备,通过CTC方法基于图像序列对动作进行更准确的识别,同时对无动作帧进行学习和区分,对动作之间的连接关系进行更好的学习,对于时间序列的动作预测更为准确,从而可以对动作进行更细粒度,更准确的动作识别。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在视频结构化的诸多应用中,对于动作行为的分析对于使机器真正做到认知至关重要,特别是对于人的动作识别在智能零售、安防等众多领域起着核心作用。
考虑到现有的多帧图像识别方法仅能输出单独的动作分类标签,将一个图像序列分为一个动作,无法进行逐帧的动作识别预测,且未考虑无动作标签,与真实应用不符,为改善此问题,本发明实施例提供的一种递归神经网络的训练方法、识别方法、装置及处理设备,以下对本发明实施例进行详细介绍。
实施例一:
首先,参照图1来描述用于实现本发明实施例的动作识别方法、装置及处理设备及其存储介质的示例电子系统100。
如图1所示的一种电子系统的结构示意图,电子系统100包括一个或多个处理设备102、一个或多个存储装置104。可选地,图1所示电子系统100还可以包括输入装置106、输出装置108以及数据采集装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子系统100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子系统也可以具有其他组件和结构。
所述处理设备102可以是网关,也可以为智能终端,或者是包含中央处理单元(CPU)、图像处理单元(GPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子系统100中的其它组件的数据进行处理,还可以控制所述电子系统100中的其它组件以执行期望的功能。
所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理设备102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理设备实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
所述数据采集装置110可以采集待识别视频等,并且将所采集的视频存储在所述存储装置104中以供其它组件使用。示例性地,该数据采集装置110可以为摄像头。
示例性地,用于实现根据本发明实施例的动作识别方法、装置及处理设备及其存储介质的示例电子系统中的各器件可以集成设置,也可以分散设置,诸如将处理设备102、存储装置104、输入装置106和输出装置108集成设置于一体,而将数据采集装置110分离设置。
示例性地,用于实现根据本发明实施例的递归神经网络的训练方法、识别方法、装置及处理设备的示例电子设备可以被实现为诸如智能手机、平板电脑、计算机等智能终端。
实施例二:
根据本发明实施例,提供了一种动作识别方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例中使用的递归神经网络,是基于CTC(动态规划方法连接时序分类方法,Connectionist temporal classification)损失函数的动作识别网络训练方法进行训练的,参见图2所示的递归神经网络训练方法的流程图,该方法具体包括如下步骤:
步骤S202,获取训练样本。训练样本包括多帧图像序列及多帧图像序列对应的动作标识。其中动作标识可以使用动作标签表示每帧图像对应的动作,在此需要说明的是,如果某帧图像无动作则其动作标签为无动作标签。上述动作标识已进行过简化操作包括去空和去重操作。
步骤S204,对多帧图像序列进行特征提取,得到图像序列特征。
对多帧图像序列先进行空间信息提取,再进行时间信息提取,可以按照以下步骤执行:
(1)将多帧图像序列输入卷积神经网络进行空间特征提取,即进行空间信息的特征提取。(2)将提取得到的空间特征输入长短期记忆模块进行时间特征提取,即时间信息初步学习。(3)将提取得到的时间特征作为图像序列特征。
步骤S206,将图像序列特征输入递归神经网络进行动作分类,获得每帧图像的动作分类概率。其中,动作分类包含无动作类。
对上述每帧图像的时间特征,输入递归神经网络的Softmax层,得到每帧图像的动作分类概率。CTC模型可以连接在RNN网络的最后一层用于序列学习。对于一段长度为T的序列来说,每个样本在RNN网络的最后一层都会输出一个softmax向量,表示预测概率,连接CTC模型之后,就可以正确预测出序列的动作标签。
步骤S208,基于上述动作分类概率,根据连接时序分类方法计算损失函数。
可以先通过T(时间)乘以P(概率)计算上述多帧图像序列的分类概率,其中T表示截止到时间点T,将该时间乘以下一时刻的概率就得到一个标注图像序列的概率。再通过动态规划方式,使用连接时序分类方法计算动作标识错误率,将动作标识错误率作为损失函数。例如,基于上述概率,通过前向模块计算到第k个动作标识所能对应的在先标识的第一概率,并通过后向模块计算从第k+1动作标识开始所能对应的后续标识的第二概率,再结合第一概率和第二概率可得到动作标识错误率。
其中,标签错误概率由前向模块和后向模块组成。前向模块计算到第k个动作标签所能对应的全部可能的所有标签的概率的和。后向模块计算从k+1标签开始能对应上视频的标签的所有后续标签的概率的和。将所有可能的概率加起来得到基于当前概率分布的标签错误率。
参见图3所示的前后向算法的示意图,由于需要计算很多条路径的概率,因此引入了前后向算法来计算该概率值。例如一个视频包括50帧的图像帧,该视频被分类为ab(标签真值),a和b分别是两个不同的动作标签。动态规划方法时将所有可能的情况总结起来,计算简化后为正确标签(即ab)的概率。前向是指到时刻t,简化后的标签和标注的标签真值相同,后向是指从时刻t往后的所有标签简化后和标注的标签真值相同的概率。两者通过动态规划求解。
例如在t=0时,真值是a,则aaaaaa----aaaaa和真值a即相同,但是aaaaaab即不同,动态规划可以把所有的正确情况找出来,并对所有的正确情况的概率求和,训练的目标即该概率和最大。
步骤S210,通过对损失函数进行反向传播以训练递归神经网络。
对损失函数进行反向传播训练递归神经网络,可以采用现有的反向传播训练方式,不再赘述。
上述动作识别网络的训练方法,通过CTC方法基于图像序列对动作进行更准确的识别,同时对无动作帧进行学习和区分,对动作之间的连接关系进行更好的学习,对于时间序列的动作预测更为准确,从而可以对动作进行更细粒度,更准确的动作识别
图4是根据本发明实施例的一种动作识别方法的流程图,该识别方法应用上述方法训练获得的递归神经网络进行识别。如图4所示,该方法包括如下步骤:
步骤S402,获取待识别视频,并提取待识别视频的图像序列。该图像序列包括至少两帧按时间排序的图像。本实施例基于多帧图像识别方法对待识别视频进行动作识别,需要提取至少两帧按时间排序的图像,并将提取的图像作为图像序列进行识别检测。其中,可以提取视频中的所有帧组成图像序列,也可以根据实际需要提取部分帧组成图像序列,例如采用固定时间间隔均匀提取部分帧。
步骤S404,将图像序列输入上述递归神经网络。
其中,递归神经网络是基于上述连接时序分类方法进行训练得到的。在训练过程中,可以通过对训练样本依次提取空间特征和时间特征并进行动作分类,获得每帧图像的动作分类概率,并通过动态规划方法连接时序分类方法CTC计算动作标签错误率。将该动作标签错误率作为损失函数,并使用该损失函数进行反向传播训练递归神经网络,直到损失函数满足预设的训练结束条件。上述训练样本包括多帧图像序列及多帧图像序列对应的动作标识,上述动作分类中包含无动作类,表示该图像为无任何动作,或者动作为空。基于CTC损失函数的动作识别网络训练方法,可以对动作之间的连接关系进行更好的学习,对于时间序列的动作预测更为准确。
步骤S406,通过递归神经网络对每帧图像进行分类,得到每帧图像的动作标识。
使用上述递归神经网络确定上述每帧图像的分类概率,并根据最大的分类概率对每帧图像进行分类,将最大的分类概率的类别对应的动作标识作为该帧图像的动作标识。
步骤S408,根据每帧图像的动作标识确定待识别视频的动作标识。
由于在上述待识别视频提取的图像中,存在识别分类得到的动作标识为无动作或者重复的图像,需要对图像的动作标识进行简化操作,包括去空和去重操作。如果图像的动作标识为无动作标识,则去掉该无动作标识;如果至少两帧图像的动作标识重复,则去掉重复的动作标识,或者将相邻的重复的动作标识进行合并,仅保留一个动作标识;最终将得到的简化结果确定为待识别视频的动作标识,该动作标识即可表示待识别视频中包括的动作。
本发明实施例提供的上述动作识别方法,通过递归神经网络对图像序列进行分类,该递归神经网络是基于连接时序分类方法进行训练得到的,得到每帧图像的动作标识,再根据每帧图像的动作标识确定待识别视频的动作标识,可以对动作之间的连接关系进行更好的学习,从而可以对序列的动作进行更为准确的预测,基于图像序列对动作进行更细粒度、更准确的识别。
实施例三:
对应实施例二中所提供的递归神经网络的训练方法,本发明实施例提供了一种递归神经网络的训练装置,参见图5所示的一种递归神经网络的训练装置的结构框图,包括:
样本获取模块502,用于获取训练样本,训练样本包括视频的多帧图像序列及视频对应的动作标识;
特征提取模块504,用于对多帧图像序列进行特征提取,得到图像序列特征,图像序列特征包括每帧图像的特征;
动作分类模块506,用于将图像序列特征输入递归神经网络进行动作分类,获得每帧图像的动作分类概率;其中,动作分类包含无动作类;
损失函数模块508,用于基于动作分类概率,根据连接时序分类方法计算损失函数;
反向传播模块510,用于通过对损失函数进行反向传播以训练递归神经网络。
本发明实施例提供的递归动作识别网络的训练装置,通过CTC方法基于图像序列对动作进行更准确的识别,同时对无动作帧进行学习和区分,对动作之间的连接关系进行更好的学习,对于时间序列的动作预测更为准确,从而可以对动作进行更细粒度,更准确的动作识别。
在一种实施方式中,该特征提取模块还用于:将多帧图像序列输入卷积神经网络进行空间特征提取;将提取得到的空间特征输入长短期记忆模块进行时间特征提取;将提取得到的时间特征作为每帧图像的特征。
在另一种实施方式中,该动作分类模块还用于:将每帧图像的特征输入递归神经网络的Softmax层,得到每个时间每帧图像的动作分类概率。
在另一种实施方式中,该损失函数模块还用于:将动作分类概率乘以动作分类概率对应的时间,计算多帧图像序列的分类概率;对多帧图像序列的分类概率通过动态规划方式,使用连接时序分类方法计算动作标识错误率;将动作标识错误率作为损失函数。
在另一种实施方式中,该损失函数模块还用于:基于多帧图像序列的分类概率,通过前向模块计算到第k个动作标识所能对应的在先动作标识的第一概率;基于多帧图像序列的分类概率,通过后向模块计算从第k+1动作标识开始所能对应的后续动作标识的第二概率;结合第一概率和第二概率得到动作标识错误率。
对应实施例二中所提供的动作识别方法,本发明实施例提供了一种动作识别装置,参见图6所示的一种动作识别装置的结构框图,包括:
获取模块602,用于获取待识别视频,并提取待识别视频的图像序列;图像序列包括至少两帧按时间排序的图像;
输入模块604,用于将图像序列输入递归神经网络;其中,递归神经网络是基于连接时序分类方法进行训练得到的;
分类模块606,用于通过递归神经网络对每帧图像进行分类,得到每帧图像的动作标识;
识别模块608,用于根据每帧图像的动作标识确定待识别视频的动作标识。
本发明实施例提供的上述动作识别装置,通过递归神经网络对每帧图像进行分类,该递归神经网络是基于连接时序分类方法进行训练得到的,得到每帧图像的动作标识,再根据每帧图像的动作标识确定待识别视频的动作标识,可以对动作之间的连接关系进行更好的学习,基于图像序列对动作进行更细粒度、更准确的识别。
在一种实施方式中,该分类模块还用于:通过递归神经网络确定每帧图像的分类概率;根据最大的分类概率对每帧图像进行分类,得到每帧图像的动作标识。
在另一种实施方式中,该识别模块还用于:如果图像的动作标识为无动作标识,去掉无动作标识;如果至少两帧连续的图像的动作标识重复,去掉重复的动作标识;将得到的简化结果确定为待识别视频的动作标识。
本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例还提供了一种处理设备,包括存储器和处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例提供的方法的步骤。可选地,该电子设备还可以包括图像采集装置或指纹传感器。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
进一步,本实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述前述方法实施例所提供的方法的步骤。
本发明实施例所提供的递归神经网络的训练方法、识别方法、装置及处理设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中提供的方法,具体实现可参见方法实施例,在此不再赘述。
本实施例还提供了一种计算机程序,该计算机程序可以存储在云端或本地的存储介质上。在该计算机程序被计算机或处理器运行时用于执行前面方法实施例中提供的方法,并且用于实现根据本发明实施例的基于身份识别的管理装置中的相应模块。具体实现可参见方法实施例,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
本申请的各个装置实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些模块的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。例如,本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
本申请的上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。