发明内容
为了改善上述问题,本发明提供了一种时序特征编码方法、装置、电子设备及存储介质。
本发明实施例的第一方面,提供了一种时序特征编码方法,所述方法包括:
将待估计的图像序列输入图像姿态估计模型,得到每帧图像的初始预测热图;
依次在每张所述初始预测热图上分别提取多个峰值点作为引导点;
编码得到引导点的引导特征序列;
对所述引导特征序列进行时序融合得到时序特征编码;
将所述时序特征编码应用于下游的人体理解相关任务中。
可选地,所述在每张所述初始预测热图上分别提取多个峰值点作为引导点的步骤,具体包括:
取出当前热图上的最大峰值点,加入到引导点集合里;
将取出点周围P×P的区域都掩盖掉,使其响应值变为0;P为预先设置的正整数数值;
重复上述两个步骤,直到完成N个引导点的采样或者所述初始预测热图上已经不存在有响应的峰值点。
可选地,所述编码得到引导点的引导特征序列的步骤,具体包括:
对于表示引导点集合的引导点向量,分别进行图像特征编码和几何特征编码,得到图像特征和几何特征;
将所述几何特征映射到与所述图像特征频率相近的表示空间
将图像特征与几何特征拼接到一起得到引导特征序列。
可选地,所述对所述引导特征序列进行时序融合得到时序特征编码的步骤,具体包括:
确定时序特征的序列长度以及使用的引导特征;
将所述引导特征序列输入到L层的Transformer编码器当中,通过注意力机制,将每个时间步输入的引导特征融合来自其他时间步的引导特征的信息,得到时序特征编码。
可选地,所述确定时序特征序列长度以及使用的引导特征的步骤,具体包括:
采用以下四种方式中的一种构建时序特征序列:
方式一:Keypoint Single:S=T,关键点互相独立,在时序特征序列里只包含每帧的一个引导点的引导特征;
方式二:PoseSingle:S=T×K,时序特征序列中同时包含所有关键点,互相之间可以交换信息,根据其他关键点的引导点来优化对某个关键点的预测,时序特征序列里只包含一个引导点的引导特征;
方式三:Keypoint Multi:S=T×N,关键点互相独立,时序特征序列里包含当前关键点在每一帧的所有的引导点的引导特征;
方式四:Pose Multi:S=T×K×N,时序特征序列里包含所有的关键点,即每个采样的引导点的引导特征;
其中,S是序列长度,T是表示对应多少帧图片的时间步,K是关键点的种类,N是每个关键点对应的引导点数量。
可选地,所述人体理解相关任务包括人体姿态估计、动作识别。
可选地,所述将所述时序特征编码应用于下游的人体理解相关任务中的步骤,具体包括:
对属于同一帧图像的多个引导点的时序特征编码进行聚合得到当前帧的特征表示;
根据人体理解相关任务的内容,将当前帧的特征表示输入到对应的下游应用网络中。
本发明实施例的第二方面,提供了一种时序特征编码装置,所述装置包括:
初始预测单元,用于将待估计的图像序列输入图像姿态估计模型,得到每帧图像的初始预测热图;
引导点提取单元,用于依次在每张所述初始预测热图上分别提取多个峰值点作为引导点;
引导特征编码单元,用于编码得到引导点的引导特征序列;
时序特征编码单元,用于对所述引导特征序列进行时序融合得到时序特征编码;
下游应用单元,用于将所述时序特征编码应用于下游的人体理解相关任务中。
本发明实施例的第三方面,提供了一种电子设备,其特征在于,包括:
一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如第一方面所述的方法。
本发明实施例的第四方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行如第一方面所述的方法。
综上所述,本发明提供了一种时序特征编码方法、装置、电子设备及存储介质,在基于时序上下文进行编码时,只对图像上“有信息量”的区域进行编码,由于这些区域是非常稀疏的,从而大大减少了运算量、提高了编码效率。得到的时序特征编码可以应用于多种人体理解相关的下游任务中,包括但不限于人体姿态估计、动作理解等。当应用于人体姿态估计任务时,得到的时序特征编码可以有效消除初始预测中的歧义现象(多峰值点)、提升时序一致性,在模糊、遮挡情况下有提升姿态估计算法准确率的效果。
具体实施方式
近年来,视频人体姿态估计是计算机视觉领域的一个重要问题,旨在检测视频上人体的关键点位置。视频人体姿态估计具有很高的学术价值和应用前景,被广泛地应用于智慧健身、人机交互等多个领域中。然而,在视频场景中频繁出现的运动模糊、遮挡等问题对算法的鲁棒性有着极高的挑战,需要姿态估计算法具备有效利用时序上下文的能力,来保持在视频帧之间的预测连续性。目前视频姿态估计领域存在的一些问题,其中一个主要问题是,由于图像序列的维度较高,如何高效地联合编码时序上下文中的图像和位置信息是一个很大的挑战。
因此,如何提供一种效率更高的编码方法,是目前亟待解决的问题。
鉴于此,本发明设计者设计了一种时序特征编码方法、装置、电子设备及存储介质,在基于时序上下文进行编码时,只对图像上“有信息量”的区域进行编码,由于这些区域是非常稀疏的,从而大大减少了运算量、提高了编码效率。得到的时序特征编码可以有效消除初始预测中的歧义现象(多峰值点)、提升时序一致性,在模糊、遮挡情况下有提升姿态估计算法准确率的效果。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,术语“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例
如图1所示,为本发明一实施例提供的时序特征编码方法,该方法包括:
步骤S101,将待估计的图像序列输入图像姿态估计模型,得到每帧图像的初始预测热图。
在本实施中,在本实施中,待估计的图像序列是基于视频图像经过裁剪得到的,对于从视频图像获得图像序列的方式,不做具体的限定,可以采用任何目前已经公开的算法模型实现,作为优选的,可以采用Faster R-CNN的网络结构。同样的,图像姿态估计模型可以采用任何任何目前已经公开的自顶向下的图像姿态估计算法,作为优选的,可以使用Simple Baseline作为图像姿态估计骨干网络。
步骤S102,依次在每张所述初始预测热图上分别提取多个峰值点作为引导点。
本实施例中,从初始预测热图上采样N个点,作为引导点,其定义为
其中,x、y分别为引导点在热图上的横纵坐标,c为热图上该点的响应值,即初始预测的置信度。作为优选的,将(x,y)归一化到[-1,1]之间,即热图左上角的点为(-1,-1)。
引导点的作用有以下几个方面:(1)作为最终预测结果的候选点,之后的优化网络将对其做一个重打分,选出最优的候选点;(2)作为待优化的初始预测结果,优化网络将对引导点的坐标做一个局部的微调,以减少热图降升采样过程中导致的量化误差;(3)在时序上下文中提供更丰富的信息,如果上下文只采样最大值点,容易将之前帧的预测错误累积到当前帧;(4)作为一种数据增强手段,通过采样不同的位置,可以模拟初始预测网络的错误分布,训练后面的优化网络从这些错误中恢复。
作为本发明实施例的优选实施方式,步骤S102具体包括:
取出当前热图上的最大峰值点,加入到引导点集合里;
将取出点周围P×P的区域都掩盖掉,使其响应值变为0;P为预先设置的正整数数值;
重复上述两个步骤,直到完成N个引导点的采样或者所述初始预测热图上已经不存在有响应的峰值点。
为了避免在同一个峰附近采样多个点,而忽略了其他的峰,在采样Gkm时使用了非极大抑制算法,Gkm表示从热图极值点上采样的引导点。首先,取出当前热图上的最大值点Gargmax,加入到引导点集合里;接着,将Gargmax周围P×P的区域都掩盖掉,使其响应值变为0;重复该过程,直到采样完Nsample个引导点或是热图上已经不存在有响应的点。需要注意的是,当采样的点的个数不足Nsample个时,用G=(-1,-1,-1)来填充,同时在后面的优化网络中不监督这些用于填充的点。
步骤S103,编码得到引导点的引导特征序列。
作为本发明实施例的优选实施方式,编码得到引导点的引导特征序列的具体方法为:
对于表示引导点集合的引导点向量,分别进行图像特征编码和几何特征编码,得到图像特征和几何特征;
将所述几何特征映射到与所述图像特征频率相近的表示空间;
将图像特征与几何特征拼接到一起得到引导特征序列。
对每帧图像的每个关键点热图采样的Nsample个引导点后,本发明实施例得到T×K×Nsample×3维的引导点向量。对于每个引导点,本发明实施例都相应地提取出对应位置的引导特征,
Fguide={Fguidet,n|t∈[1,T],n∈[1,Nsample]}
引导特征的选取,有几个可选的方案。Graph-PCNN中使用的是引导点对应位置的图像特征。TCN等工作在优化初始预测时使用了引导点的几何特征,即2D坐标和置信度。然而,只使用图像特征或几何特征都是次优的选择。只使用图像特征,当两块区域表面纹理接近时对应的图像特征也会很相似,于是模型在对称的关键点、或是穿同样服装的不同人体实例上容易混淆。只使用几何特征,模型实际上学习到的是一个参数化的平滑滤波函数,容易受到序列中离群点的干扰,当两帧预测结果偏差过大时,模型倾向于取平均值,而完全忽略了图像上的信息。为了解决上述问题,本发明实施例提出了一种联合图像和坐标特征的引导点特征。
对于图像特征编码,在姿态估计骨干网络的基础上,增加了一个与热图解码器分支对称的图像解码器分支,在图像解码器预测的图像特征图上网格采样引导点位置的特征,作为图像特征。
作为本发明实施例的优选实施方式,使用图像编码器ResNet中间层提取的图像特征,这样带来的好处是两方面的:一是不引入额外的参数量,二是可以使用在ImageNet上预训练的ResNet权重,这样就可以利用预训练时的大量数据,得到的好的图像特征表示。
具体地,能为了利用不同尺度的信息,本发明实施例使用了多尺度的图像特征。对于ResNet上的conv1-conv4共4层特征图,分别网格采样得到引导点对应的特征
它们分别编码了从低到高、从高分辨率到低分辨率的图像特征。通过一个1X1的卷积将不同尺度的图像特征映射到相同的维度
后,将
拼接在一起,通过一次全连接层不同尺度的特征加权,将它们映射到256维,得到最终的图像特征。
对于几何特征编码,编码几何特征的最朴素的方式是直接使用(x,y,c)∈R
3作为几何特征。然而,由于神经网络倾向于学习更低频的函数,当低维且高频的几何特征表示与高维且低频的图像特征放到一起时,模型倾向于关注低频的图像特征,而忽略了几何位置信息。为了解决频率不一致的问题,本发明实施例使用NeRF中提出的编码方式,通过高频函数γ将每一维几何特征R映射到高维空间R
2L中,其中γ的定义如下式所示。本发明实施例对几何特征的每一维独立地做映射,其中对于坐标向量(x,y)取L
coords=10,对于置信度取L
conf=1,最终得到编码后的几何特征
γ(p)=(sin(20πp),cos(20πp),...,sin(2L-1πp),cos(2L-1πp))
将几何特征映射到与图像特征频率相近的表示空间之后,本发明实施例将图像特征与几何特征拼接到一起得到引导特征:
Fguide=Concat(Fimage,Fgeo)
步骤S104,对所述引导特征序列进行时序融合得到时序特征编码。
在融合时空特征上,本实施例使用的是基于自注意力机制的Transformer编码器。本实施例将每一个引导点作为序列中的一个标志(引导点),除了步骤S102的引导点的图像特征和几何特征,本实施例还将每个引导点对应的关键点的类别做了编码,得到d
in维的输入特征。通过L层的Transformer编码层,序列中每个引导点都会接收并融合来自其他时间步的引导点的信息,最终得到编码了时空上下文的时序特征编码
作为本发明实施例的优选实施方式,步骤S104具体包括:
确定时序特征的序列长度以及使用的引导特征;
将所述引导特征序列输入到L层的Transformer编码器当中,通过注意力机制,将每个时间步输入的引导特征融合来自其他时间步的引导特征的信息,得到时序特征编码。
其中,在时间序列的构建上,如图5所示,本实施例可以采用以下四种方式中的一种构建时序特征序列,四种不同的方式,对应的序列长度S也不同。
方式一:KeypointSingle:S=T,关键点互相独立,在时序特征序列里只包含每帧的一个引导点的引导特征;
方式二:PoseSingle:S=T×K,时序特征序列中同时包含所有关键点,互相之间可以交换信息,根据其他关键点的引导点来优化对某个关键点的预测,时序特征序列里只包含一个引导点的引导特征;
方式三:KeypointMulti:S=T×N,关键点互相独立,时序特征序列里包含当前关键点在每一帧的所有的引导点的引导特征;
方式四:PoseMulti:S=T×K×N,时序特征序列里包含所有的关键点,即每个采样的引导点的引导特征;
其中,S是序列长度,T是表示对应多少帧图片的时间步,K是关键点的种类,N是每个关键点对应的引导点数量。
上述四种方式,存在不同的优势和区别。
具体地,关键点互相独立vs序列中包含所有关键点:前者只利用当前关键点的时空上下文来优化对当前点的预测,而后者则是对整个姿态做优化,在可利用的信息增加的同时,也对模型的表示能力提出了更高的要求。为了区分不同的关键点,本实施例在使用Multi的设置时会额外增加一个关键点类型嵌入层Lembed。该嵌入层的权重为一个K×dtype的矩阵W,对于第k个关键点,通过查表的方式可以将其类别坐标k映射到连续的向量Wk∈Rdtype。关键点类型向量与图像、几何向量拼接到一起,构成Multi设置下的输入特征。
序列中只包含一个引导点vs序列中包含多个引导点:当序列中只包含一个引导点时,为了避免每次都将响应值最大的引导点分到一组,导致模型学习到偏置,本实施例在输入时序优化网络之前,会将引导点随机打散。相比于只包含一个引导点的序列构建方式,包含多个引导点的设置下,优化网络不仅可以利用一个关键点的时序上下文,还可以利用同一帧上不同引导点的信息,为最终选出最优候选点提供支撑。
在确定了序列长度以及使用的特征后,本文将引导点序列输入到L层的Transformer编码器当中,输出同样长度的编码后的特征序列Ftemp={Ftemp,t|t=1,2,...,T}。通过注意力机制,每个时间步的输入特征都充分融合了来自其他时间步的信息,将时序上下文编码进当前的表示里;通过结合图像和几何特征,并参考其他引导点的特征,将空间上下文编码进当前的特征表示里。最终得到编码了时空上下文的引导点特征Ftemp,即时序特征编码。
在本实施例中,选择用Transformer编码器来处理序列,而不是循环神经网络RNN和卷积神经网络CNN,这是因为相比于后两种经典的神经网络架构,Transformer更加适用于编码这种复杂的长序列。与RNN相比,Transformer可以并行处理输入的序列,而不是在每个时间步上循环迭代,因此推理速度更快;同时,Transformer使用的注意力机制,使得序列中任意时间步i可以通过一跳的连接来获取序列中任意时间步j的信息,RNN需要的跳跃数则是与i、j之间的距离成线性增长的;RNN的训练比Transformer困难,由于RNN在不同的时间步上权重共享,循环迭代多次,因此容易出现梯度爆炸或消失;RNN的模型容量比Transformer小,由于层数叠高时RNN的训练困难,一般都只有2层的RNN,而Transformer因为使用的是前馈网络的堆叠,通过层归一化(Layer Normalization,LN)有效地缓解了梯度不稳定的问题。与CNN相比,Transformer的注意力机制使一层内任意的位置i都可以处理来自任意的位置j的信息,而CNN的卷积核大小有限,由此导致一层的感受野是有限的,如果想获得较大的感受野就需要堆叠多层卷积层,从而导致训练的困难。
步骤S105,将所述时序特征编码应用于下游的人体理解相关任务中。
需要注意的是,本发明实施例得到的时序特征编码,可以应用于下游的多项人体理解相关的预测任务,包括但不限于人体姿态估计、动作识别等。
作为本发明实施例的优选实施方式,步骤S105具体包括:
对属于同一帧图像的多个引导点的时序特征编码进行聚合得到当前帧的特征表示;
根据人体理解相关任务的内容,将当前帧的特征表示输入到对应的下游应用网络中。
应用深度学习中的池化层,通过特征聚合层,对多个属于同一帧图像的多个引导点的时序特征编码进行聚合得到当前帧的特征表示。在根据具体的任务接入对应的应用网络中。例如对于人体姿态估计,可以接一个回归网络,对于动作识别,可以接一个分类网络。通过将特征表示输入到不同的下游应用网络中,执行不同类型的人体理解相关任务。
综上所述,本实施例提供的时序特征编码方法,在基于时序上下文进行编码时,只对图像上“有信息量”的区域进行编码,由于这些区域是非常稀疏的,从而大大减少了运算量、提高了编码效率。得到的时序特征编码可以应用于多种人体理解相关的下游任务中,包括但不限于人体姿态估计、动作理解等。当应用于人体姿态估计任务时,得到的时序特征编码可以有效消除初始预测中的歧义现象(多峰值点)、提升时序一致性,在模糊、遮挡情况下有提升姿态估计算法准确率的效果。
如图2所示,本发明实施提供的时序特征编码装置,所述装置包括:
初始预测单元110,用于将待估计的图像序列输入图像姿态估计模型,得到每帧图像的初始预测热图;
引导点提取单元120,用于依次在每张所述初始预测热图上分别提取多个峰值点作为引导点;
引导特征编码单元130,用于编码得到引导点的引导特征序列;
时序特征编码单元140,用于对所述引导特征序列进行时序融合得到时序特征编码;
下游应用单元150,用于将所述时序特征编码应用于下游的人体理解相关任务中。
本发明实施例提供的时序特征编码装置,用于实现上述时序特征编码方法,因此具体实施方式与上述方法相同,在此不再赘述。
如图3所示,本发明实施例提供的一种电子设备300的结构框图。该电子设备300可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备300。本申请中的电子设备300可以包括一个或多个如下部件:处理器310、存储器320、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器320中并被配置为由一个或多个处理器310执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器310可以包括一个或者多个处理核。处理器310利用各种接口和线路连接整个电子设备300内的各个部分,通过运行或执行存储在存储器320内的指令、程序、代码集或指令集,以及调用存储在存储器320内的数据,执行电子设备300的各种功能和处理数据。可选地,处理器310可以采用数字信号处理(DigitalSignal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器310可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器310中,单独通过一块通信芯片进行实现。
存储器320可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器320可用于存储指令、程序、代码、代码集或指令集。存储器320可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
如图4所示,本发明实施例提供的一种计算机可读存储介质400的结构框图。该计算机可读介质中存储有程序代码410,所述程序代码410可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质400可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质400包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质400具有执行上述方法中的任何方法步骤的程序代码410的存储空间。这些程序代码410可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码410可以例如以适当形式进行压缩。
综上所述,本发明提供了一种时序特征编码方法、装置、电子设备及存储介质,在基于时序上下文进行编码时,只对图像上“有信息量”的区域进行编码,由于这些区域是非常稀疏的,从而大大减少了运算量、提高了编码效率。得到的时序特征编码可以应用于多种人体理解相关的下游任务中,包括但不限于人体姿态估计、动作理解等。当应用于人体姿态估计任务时,得到的时序特征编码可以有效消除初始预测中的歧义现象(多峰值点)、提升时序一致性,在模糊、遮挡情况下有提升姿态估计算法准确率的效果。
在本申请所公开的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。