通过稀疏时间池化网络的弱监督动作定位的制作方法

文档序号:20012759发布日期:2020-02-22 04:35阅读:407来源:国知局
通过稀疏时间池化网络的弱监督动作定位的制作方法

优先权要求

本申请基于并要求于2017年11月14日提交的美国临时申请62/586,078的权益,其通过引用并入本文。

本公开总体上涉及视频动作检测和定位。更具体地,本公开涉及未修剪的视频的弱监督时间动作定位模型。



背景技术:

视频中的动作识别是高级别视频理解的关键问题之一,包括事件检测、视频摘要和视频中的视觉问题解答。在过去的十年中,许多研究人员一直在广泛地研究该问题。动作识别中的主要挑战是缺乏合适的视频表示方法。与卷积神经网络(cnn)在与图像有关的许多视觉识别问题中几乎立竿见影的成功相反,由于存在许多问题,包括数据固有的复杂结构、大文件大小以及缺乏对时间信息建模的知识,将深度神经网络应用于视频数据并不是一件容易的事。因此,基于来自深度学习的表示的技术并没有比依靠手工制作的视觉特征的方法更好。结果,许多现有算法试图通过结合手工制作和学习/训练的特征来实现最先进的性能。

另一个问题是,大多数现有技术都将修剪的视频用于视频级文本分类,或者需要对动作间隔进行注释以进行时间定位。由于未修剪的视频通常包含大量与视频级类别标签直接相关的不相关帧,因此,视频表示学习和动作分类可能无法从原始视频中提取必要的信息。另一方面,对大规模数据集进行动作定位的注释非常昂贵且耗时,因此,更需要开发一种在运行时无需此类时间注释的有竞争力的算法。



技术实现要素:

本公开的实施例的方面和优点将在以下描述中部分地阐述,或者可以从描述中获悉,或者可以通过实施例的实践来获知。

本公开的一个示例方面涉及一种用于在视频中在时间上定位目标动作的计算机实现的方法。该计算机实现的方法可以包括将包含rgb串流的视频输入到稀疏时间池化网络中。稀疏时间池化网络可以包括第一弱监督时间动作定位模型和第二弱监督时间动作定位模型。该计算机实现的方法还可以包括通过稀疏时间池化网络确定视频的光流串流。该计算机实现的方法还可以包括通过第一弱监督时间动作定位模型分析rgb串流以确定包括时域中的一维特定于类别的激活图的rgb加权的时间类别激活图。该计算机实现的方法还可以包括通过第二弱监督时间动作定位模型分析光流串流,以确定包括时域中的一维特定于类别的激活图的流加权的时间类别激活图。该计算机实现的方法还可以包括至少部分地基于rgb加权的时间类别激活图或加权的时间类别激活图通过稀疏时间池化网络确定目标动作在视频中的时间位置。

本公开的另一个示例方面涉及一种训练弱监督时间动作定位模型的计算机实现的方法。该计算机实现的方法可以包括将未修剪的视频输入到弱监督时间动作定位模型中。该计算机实现的方法还可以包括通过弱监督时间动作定位模型分析未修剪的视频以确定动作分类的预测得分。该计算机实现的方法还可以包括至少部分地基于预测得分确定损失函数。损失函数可以包括稀疏损失和分类损失。该计算机实现的方法还可以包括至少部分地基于损失函数训练弱监督时间动作定位模型。

本公开的另一方面涉及计算系统。计算系统可以包括至少一个处理器、稀疏时间池化网络,和存储指令的至少一个有形的非暂时性计算机可读介质,当所述指令被至少一个处理器执行时,使得至少一个处理器执行操作。稀疏时间池化网络可以包括第一弱监督时间动作定位模型和第二弱监督时间动作定位模型。第一弱监督时间动作定位模型可以被训练为接收包括rgb串流的视频,且响应于接收到rgb串流,输出rgb加权的时间类别激活图,其包括时域中的一维特定于类别的激活图。第二弱监督时间动作定位模型可以训练为接收视频的光流串流,且响应于接收到光流串流,输出流加权的时间类别激活图,其包括时域中的一维特定于类别的激活图。操作可以包括获取视频。操作还可以包括至少部分地基于rgb串流生成光流串流。操作还可以包括将rgb串流输入到第一弱监督时间动作定位模型中。操作还可以包括,作为第一弱监督时间动作定位模型的输出,接收rgb加权的时间类别激活图。操作可以包括将光流串流输入到第二弱监督时间动作定位模型中。操作还可以包括,作为第二弱监督时间动作定位模型的输出,接收流加权的时间类别激活图。操作可以包括至少部分地基于rgb加权的时间类别激活图或流加权的时间类别激活图确定目标动作在视频中的时间位置。

本公开的附加方面涉及各种模型、计算机实现的方法、计算装置、系统、设备、非暂时性计算机可读介质、用户界面和电子装置。

参考以下描述和所附权利要求,将更好地理解本公开的各种实施例的这些和其他特征、方面和优点。并入本说明书中并构成其的一部分的附图示出了本公开的示例实施例,并且与说明书一起用于解释相关原理。

附图说明

在说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,其中参考了附图,其中:

图1描绘了根据本公开的示例方面的示例稀疏时间池化网络的框图;

图2描绘了根据本公开的示例方面的示例弱监督时间动作定位模型的框图;

图3描绘了使用根据本公开的示例方面的一个或多个示例模型的示例地面实况动作及相应的注意权重和时间类别激活图输出的图示;

图4a描绘了使用根据本公开的示例方面的一个或多个示例模型的示例地面实况动作实例以及预测和相应的加权的时间类别激活图;

图4b描绘了使用根据本公开的示例方面的一个或多个示例模型的包含来自不同类别的地面实况动作实例的示例视频以及预测和相应的加权的时间类别激活图;

图4c描绘了使用根据本公开的示例方面的一个或多个示例模型的示例地面实况动作实例以及预测和相应的加权的时间类别激活图;

图5描绘了示出根据本公开的示例方面的一个或多个示例模型对于不同架构选择的性能的图表;

图6描绘了示出根据本公开的示例方面的一个或多个示例模型对于不同特征选择的性能的图表;

图7a描绘了根据本公开的示例方面的执行动作分类和/或定位的示例计算系统的框图;

图7b描绘了根据本公开的示例方面的执行动作分类和/或定位的示例计算装置的框图;

图7c描绘了根据本公开的示例方面的执行动作分类和/或定位的示例计算装置的框图;

图8描绘了根据本公开的示例方面的示例动作分类器/定位模型的框图;

图9描绘了根据本公开的示例方面的执行动作定位和/或分类的示例方法的流程图;

图10描绘了根据本公开的示例方面的在视频中在时间上定位目标动作的示例方法的流程图;以及

图11描绘了根据本公开的示例方面的训练弱监督时间动作定位模型的示例方法的流程图。

在多个附图中重复的附图标记旨在标识各种实现方式中的相同特征。

具体实施方式

i.概述

通常,本公开的示例方面涉及用于使用深度神经网络在视频中定位动作的模型、计算机实现的方法、计算装置、非暂时性计算机可读介质、系统和方法。本公开的示例模型、系统、方法和装置可以允许在未修剪的视频中在时间上定位动作,而无需利用训练期间的动作的任何时间信息。可以基于各个视频的视频级文本标签来学习/训练本公开的示例模型、系统、方法和装置。为此,网络模型(例如,深度神经网络)可以选择可用于动作识别的帧子集,其中损失函数可以度量每个视频的分类误差和帧选择的稀疏性。对于定位,可以使用时间类别激活映射(temporalclassactivationmapping)(t-cam)来生成一维时间动作建议,从其可以在时域中定位目标动作。在图1中示出了根据本公开的方面的示例稀疏时间池化网络的概述。

如图1所示,根据本公开的示例方面的示例稀疏时间池化网络100可以包括两个弱监督时间动作定位模型130/140。稀疏时间池化网络100可以接收视频110的两串流输入,并同时执行动作分类170和定位160。对于定位160,可以通过弱监督的时间定位模型130/140从两个串流115/120计算出加权的t-cam135/145,并用于生成一维时间动作建议150,从之可以在时域中定位(在160)目标动作。

本文描述的系统和方法可以提供许多技术效果和益处。例如,图1中描绘的用于对于未修剪的视频110的弱监督动作识别和定位的原理性深度神经网络架构可以允许用稀疏的帧子集来检测动作。此外,本公开的示例方面提供了一种技术,其使用学习/训练过的网络100来对目标动作进行定位,以计算加权的t-cams135/145和时间动作建议150。此外,本公开的示例方面在thumos14上显示了最新的性能,并已在activitynet1.3上进行了测试,以备将来参考。

可能需要适当的视频数据集来训练用于动作检测和识别的模型。例如,现有的各种动作识别数据集包括ucf101、sports-1m、hmdb51、ava和kinetics。但是,此类训练视频数据集可能仅包含修剪的视频,其中目标动作出现在视频内的所有帧中,和/或可能提供与动作相关联的边界框。此外,此类视频训练数据集可能包含背景帧,其带有关于哪些帧与目标动作相关的注释。

动作识别旨在标识每个视频的单个或多个动作,这通常被表述为简单的分类问题。这个问题由来已久,在深度学习开始被积极使用之前,基于改进的密集轨迹的算法在许多算法中都表现出出色的性能。卷积神经网络在许多计算机视觉问题中都非常成功,并且已经应用于动作识别问题。有几种算法专注于视频的表示学习,并将习得的表示应用于动作识别。例如,两串流网络和3d卷积神经网络(c3d)是视频表示的流行解决方案,这些技术及其变体已被广泛用于动作识别。近来,已经提出了将两串流网络和3d卷积相结合的方法,称为i3d,作为通用的视频表示方法。另一方面,许多算法开发了基于现有表示方法来学习动作的技术。

但是,动作检测和定位是与动作识别稍有不同的问题,因为其需要提取包含目标动作的时间体或时空体(spatio-temporalvolume)。用于该任务的大多数算法都基于监督学习,并采用动作的时间或时空定位注释。现有许多基于深度学习的算法,其例如包括,结构化细分网络、通过学习上下文关系来定位动作、多阶段cnn、帧级动作检测的时间关联、以及使用递归神经网络的技术。为了处理动作检测和定位问题,许多算法都依赖动作建议,这是图像中对象建议的扩展。

仅有少数几种基于弱监督学习的方法,这些方法依赖于视频级标签来定位时空中的动作。例如,untrimmednets首先提取建议以识别和检测动作,其中获得密集时间注意权重,并通过阈值化将softmax函数应用于建议以获得时间动作定位。在建议中使用softmax函数对检测多个实例无效。hide-and-seek将相同的技术(隐藏随机区域以强制注意学习)应用于弱监督对象检测和动作定位。此方法在空间定位中表现很好,但在时域中无效。两种算法都受到最近在弱监督对象定位方面取得成功的推动;特别地,untrimmednets的构想在很大程度上依赖于对象检测。

本公开的示例方面涉及仅基于视频级动作标签的弱监督时间动作定位模型200。这是通过基于稀疏的帧子集设计用于视频分类的深度神经网络并标识与目标类别相关的时间间隔来实现的。

例如,动作可以由一系列的原子动作组成,并且可以通过标识视频中与原子动作相对应的一系列的关键帧来标识。根据本公开的示例方面的示例模型可以提供一种深度神经网络,以使用针对动作的代表性的且唯一的帧的子集来预测每个视频的类别标签,可以从输入视频中自动选择这些帧。根据本公开的示例方面的示例模型可以被设计用于分类,但是可以具有度量每个帧在预测分类标签中的重要性的能力。在每个视频中找到相关类别后,可以通过计算各个帧的时间注意、生成时间动作建议并聚合相关建议,来估计与标识的动作相对应的时间间隔。本公开仅依赖于视频级类别标签来执行时间动作定位,并且提出了一种原理性方法来提取关键帧并确定与目标动作相对应的适当的时间间隔。因此,可以使用本公开的示例方面来识别和定位单个视频中的多个动作。在图2中示出了根据本公开的示例方面的示例弱监督时间动作定位模型200的总体架构。在一些实现方式中,弱监督时间动作定位模型200可以是独立的稀疏时间池化网络,例如图1所示的稀疏时间池化网络100。

如图所示,可以使用一个或多个经预训练的模型210a-n(例如,深度神经网络,比如卷积神经网络)从一组均匀采样的视频片段205a-n中提取特征表示215a-n。(多个)注意模块220a-n可以生成对应于各个表示215a-n的注意权重230a-n,其可以用于通过时间加权平均池化(在240)来计算视频级表示245。可以将视频级表示245提供给分类模块250/255,并且可以将l1损失置于注意权重向量232上以实施稀疏性约束。

为了估计每个视频的类别标签,本公开的示例方面可以首先从输入视频(例如,未修剪的视频110)对一组视频片段205a-n进行采样,并使用模型210a-n(例如,卷积神经网络)从每个片段205a-n提取特征表示215a-n。然后,可以将这些表示215a-n中的每一个馈送给注意模块220,注意模块220由两个完全连接的(“fc”)层222/226以及位于两个fc层222/226之间的修正线性单元224(“relu”)层构成。可以将第二fc层226的输出提供给sigmoid函数228,以强制将生成的注意权重230a-n归一化为0和1之间。这些注意权重230a-n然后可以用于调制时间平均池化。具体而言,每个注解权重230a-n都可以乘以(在235a-n处)其相应的特征向量215a-n。然后可以对这些特征向量进行平均(在240)以创建视频级表示245。然后,该表示可以通过完全连接层250和sigmoid层255以获得类别得分。

例如,xt∈rm可以是从以时间t为中心的视频片段205a-n中提取的m维特征表示215a-n,且λt是相应的注意权重230a-n。由x-表示的视频级表示245可以对应于注意加权的时间平均池化,其可以由等式(1)给出:

其中λ=(λ1,...,λt)可以sigmoid函数228的标量输出的向量232以归一化激活的范围,t可以是一起考虑以进行分类的视频片段205a-n的数量。注意权重向量λ(232)可以以类别不可知的方式用稀疏约束265来习得。如本文所公开的,这对于标识与任何动作有关的帧和估计动作候选者的时间间隔可以是有用的。

提出的模型200中的损失函数可以由两个项组成,分类损失260和稀疏损失265,其可以由等式(2)给出:

其中表示在视频级上计算的分类损失260,可以是稀疏损失265,且β可以是控制两个项之间权衡的常数。分类损失260可以基于地面实况和x-之间的标准交叉熵损失确定(在通过图2所示的几个层250/255之后),而稀疏损失265可以通过确定注意权重||λ||1上的l1范数来确定。sigmoid函数228可以应用于每个注意权重λt(230a-n),且所有的注意权重230a-n可能因l1损失而具有接近0-1的二进制值。请注意,整合稀疏损失265表示可以用视频中的关键帧的稀疏子集识别动作。

为了标识对应于目标动作的时间间隔,可以提取足够数量的候选者。可以导出时域中的一维类别激活映射,其可以称为时间类别激活映射(t-cam)。由wc(k)表示,分类参数中的第k个元素w对应于类别c。类别c的最终sigmoid层255的输入可以由等式(3)给出:

t-cam,由表示t,可以指示时间步长t处的各个类别的表示的相关性,其中类别c(c=1,…,c)的每个元素由等式(4)给出:

图3示出了使用本公开的示例方面的示例模型100/200的视频序列330中的注意权重310和t-cam输出320的示例。如图所示,区别的时间区域可以由注意权重310和t-cam320有效地突出显示。注意,一些注意权重310在与目标动作不对准的时间区域处可能较大,这可能意味着这些帧呈现其他动作。这是可以预期的,因为每个注意权重310都呈现片段的一般动作,而不是特定动作的可能性。

i3d特征可用于计算帧级表示。使用多个信息串流(例如rgb流和光流)已成为动作识别和检测的标准做法,因为它通常可以显著提高性能。i3d也基于两串流网络,且我们可以训练/学习两个相同的动作识别网络130/140,如图1所示;一个用于rgb串流115,另一个用于光流120。可以从rgb串流计算光流串流120。请注意,无需任何微调即可将i3d网络用作特征提取机。可以将两个单独训练的网络130/140融合在一起,以在输入视频110中定位动作。

例如,可以基于本文描述的模型(例如,深度神经网络)的视频级分类得分来标识输入视频110的相关类别标签170。时间建议150(例如一维时间间隔)可以与其类别标签和置信度得分一起生成。时间建议150可以对应于潜在地包围目标动作的视频片段,并且可以在本文描述的示例模型中使用t-cam来检测。使用例如图1所示的两串流模型(例如,卷积神经网络),可以使用等式(4)计算两个串流的t-cam,其可以由表示,从之可以导出加权的t-cam,由表示,如等式5和6所示:

请注意,λt是稀疏向量λ(232)的元素,且乘以λt可以解释为从以下sigmoid函数中对值的软选择。加权的可以被阈值化以分割信号,且时间建议150可以是从每个串流提取的一维连接的分量。与原始的基于cam的边界框建议不同,该建议仅保留最大的边界框,而可以保持所有通过预定义阈值的连接分量。在一些实现方式中,可以在阈值化之前在采样的片段之间线性地内插加权的t-cam来以最小量的计算加法(computationaddition)来提高建议150的时间分辨率。然后,每个建议150,由[tstart;tend]表示,可以给出每个类别c的得分,其由建议内的所有帧的加权平均t-cam给出,如等式(7)所给出的:

其中*∈{rgb,flow},且α是控制两个模态信号的幅度的参数。该值对应于类别c的每个串流中的时间建议分数。最后,每个类别的时间建议之间的非极大值抑制可以独立执行,以移除高度重叠的检测。

根据本公开的示例方面的示例模型可以通过分别估计通用和特定动作的稀疏注意权重和t-cam来定位时域中未修剪的视频中的动作。这种方法是新颖的,因为它具有独特的模型架构(例如,深度神经网络),其具有分类损失和稀疏损失和完全不同的动作定位过程–通过使用t-cam的特定于类别的动作建议,而不是弱监督的对象检测技术。

本文公开的模型、方法和系统是在两个热门的动作检测基准数据集thumos14和activitynet1.3上进行评估的。这两个数据集都是未修剪的,这意味着视频中存在不包含目标动作的帧,也没有利用训练期间的动作定位的时间注释。在一些情况下,单个视频甚至单个帧中可能存在多个动作。

thumos14数据集具有用于动作检测的20个类别。根据本公开的示例方面的示例模型100/200是使用由200个未修剪的视频组成的验证集来训练的,其中存在更多注释有动作标签及其时间边界的动作实例。但是,请注意,训练是在不使用提供的时间注释的情况下进行的,并且用213个视频在测试集上进行了评估。该数据集具有挑战性,因为某些视频相对较长(例如,高达26分钟),并且包含许多动作实例(例如,高达213个实例)。数据集中的动作的长度从几秒钟到几分钟变化很大。

activitynet数据集是最近引入的基准,用于未修剪的视频中的动作识别和检测。使用activitynet1.3进行评估,其中包括用于训练的10024个视频、用于验证的4926个视频和用于测试200个活动类别的5044个视频。该数据集包含大量自然视频,这些自然视频将各种人类活动纳入了语义分类法(semantictaxonomy)。

为了进行评估,遵循标准评估协议,该协议基于在交并比(intersectionoverunion,iou)阈值的几个不同级别上的map值。这两个数据集都为activitynet的时间动作定位任务提供了基准代码。通过将结果提交给评估服务器来获得activitynet1.3的测试集的准确性。

在kinetics数据集上训练的两串流i3d用于从单个视频片段205中提取特征215。对于rgb串流(例如,图1中的115),将帧的最小尺寸重新缩放为256,并执行了224x224大小的中心裁剪。可以类似地使用其他合适的输入大小。对于光流(例如,图1中的120),应用tv-l1光流算法,并且将像素值截断为在[-20,20]中。可以类似地使用其他合适的像素值。全部为0的第三个通道已添加到光流图像中。i3d的输入是16个(rgb或光流)帧的堆栈。为了节省空间和处理时间,对视频以每秒钟10帧(fps)进行了二次采样。使用adam优化器对网络进行训练,起始学习率为1x10-5。分类损失和稀疏损失之间的平衡参数β被设置为1x10-5。训练过程在150k次迭代后停止。在训练期间,作为数据增强的形式,从单个视频中随机选择了片段的多个集合。然而,在测试期间,选择了视频中跨越相等时间距离的固定数量的片段。在所有实验中,一次使用了400个片段以进行训练和测试。在tensor-flow中实现了根据本公开的示例方面的示例模型。

表1总结了过去两年中所有已发布的动作定位方法在thumos14数据集上的结果。表格中包括了完全监督和弱监督两种方法,两种方法之间的区别在于监督的水平,尤其是在时域中对动作间隔的注释;弱监督方法仅依赖于视频级动作类别标签来在时间上定位动作实例。如图所示,根据本公开的示例方面的示例模型优于基于弱监督学习的其他两种技术。即使在监督水平上存在显著差异,与许多最新的完全监督的方法相比,本文公开的模型仍具有竞争优势。

表1

如表1所示,将本公开与在thumos14数据库上测试的其他技术进行比较。这些技术基于监督水平分为两组,并按时间顺序从旧技术到新技术进行分类。本公开呈现了在弱监督设定下的最新性能,逼近了许多完全监督方法的性能。

还使用activitynet1.3数据集的验证和测试集评估了根据本公开的示例方面的示例模型。该验证集和测试集的结果分别在表2和3中示出。

表2

如表2所示,将本公开在activitynet1.3验证集上与其他技术进行了比较。

表3

如表3所示,将本公开在activitynet1.3测试集上与其他技术进行了比较。

activitynet数据集上大多数可用的动作识别结果来自activitynetchallenge提交(submission),而且似乎没有很多直接可比的技术。此外,相信本公开提出了首次尝试来评估在该数据集上的弱监督动作定位性能。结果以报告的结果作为基线,以备将来参考。

两个数据集的定性结果如图4所示。如本文所述,thumos14数据集中的视频通常很长,并且包含许多动作实例,包括来自不同类别的动作实例。图4a示出了本公开的示例模型的示例,其具有许多动作实例410a以及地面实况420a,检测(例如,定位的目标动作)430a,以及对应的加权的t-cam440a信号。

图4b示出了包含来自不同类别的动作实例410b的视频的示例。从外观上看,掷铁饼(420b-440b)和推铅球(450b-470b)这两个涉及的动作类在其外观上(绿草地,穿着蓝色衬衫的人,站在灰色的平台上)和动作模式(圆形投掷)相似。尽管存在一些短期假阳性,但是根据本公开的示例方面的模型不仅能够定位目标动作,而且能够成功地对动作类别进行分类。

图4c描绘了标枪投掷(javelinthrow)动作410c的教学视频。本公开的示例模型能够检测视频内的大多数地面实况动作420c实例;但是,可能会生成一些假阳性。通过进一步的目视检查,发现了误报的两个原因。图4c中的多个帧包含标枪投掷的场景,但是经常缺少相应的地面实况420c,这使真正的检测430c算作假阳性。假阳性的第二来源与指导者展示标枪投掷的片段有关,但此类动作只有一部分在片段中可见。这些片段在外观和动作上都类似于真正的标枪投掷动作。

此外,研究了根据本公开的示例方面的示例弱监督模型中的几个分量的贡献以及实现方式变型。所有这些实验都是在thumos14数据集上进行的。

调查评估了视频中稀疏的帧子集是否可以识别动作。当训练根据本公开的示例方面的稀疏时间池化网络模型时,采用了两个损失项-分类损失和稀疏损失。基线是没有注意模块的架构。图5示出了本公开的基线与完整模型之间的比较。稀疏损失和注意加权的池化都被认为对性能改善做出了实质性贡献。如图5所示,由于允许根据本公开的示例方面的示例模型专注于输入视频的重要部分上,因此注意模块被示出为是有用的。例如,经由稀疏损失加强动作识别中的稀疏性可以显著提高性能。

如本文所述,每个帧的表示基于两串流i3d网络,该网络使用两个信息源;一个来自rgb图像,另一个来自光流。图6显示了每种模态及其组合的有效性。作为单个特征,光流串流提供了比rgb串流更强的性能。类似于动作识别,这些模态的组合提供了显著的性能改进。例如,对于动作定位,光流提供了比rgb更强的线索(cue),并且两种特征的结合带来了显著的改进。

根据本公开的示例方面的示例模型提供了弱监督动作定位模型和技术,其可以基于具有分类损失和稀疏损失的深度神经网络。可以通过评估由帧级特征的稀疏加权平均值给出的视频级表示来执行分类,其中稀疏系数是通过稀疏损失习得的。对于弱监督的动作定位,可以首先提取一维动作建议,并且可以选择目标类别的相关建议来呈现动作的时间间隔。本文公开的示例模型比以前的模型更具原理性。例如,本文提供的模型将探索式(heuristic)分量最小化以改善定量性能。所提出的方法在thumos14数据集上达到了最新的准确性,并且在acitivitynet1.3数据集上也得到了新的结果。

示例装置和系统

图7a描绘了根据本公开的示例方面的执行动作分类和/或定位的示例计算系统700的框图;系统700包括通过网络780通信地耦接的用户计算装置702、服务器计算系统730和训练计算系统750。

用户计算装置702可以是任何类型的计算装置,例如,个人计算装置(例如,膝上型计算机或台式机)、移动计算装置(例如,智能电话或平板计算机)、游戏控制台或控制器、可穿戴计算装置,嵌入式计算装置或任何其他类型的计算装置。

用户计算装置702包括一个或多个处理器712和存储器714。一个或多个处理器712可以是任何合适的处理装置(例如,处理器内核、微处理器、asic、fpga、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器714可以包括一种或多种非暂时性计算机可读存储介质,例如ram、rom、eeprom、eprom、闪存装置、磁盘等,以及它们的组合。存储器714可以存储由处理器712执行的数据716和指令718,以使用户计算装置702执行操作。

在一些实现方式中,用户计算装置702可以存储或包括一个或多个机器学习模型720。例如,机器学习模型720可以是或可以包括各种机器学习模型,例如神经网络(例如,深度神经网络)或其他类型的机器学习模型,包括非线性模型和/或线性模型。神经网络可以包括前馈神经网络、递归神经网络(例如长短期记忆递归神经网络)、卷积神经网络或其他形式的神经网络。参考图1-2对示例机器学习模型720进行了讨论,并且机器学习模型720可以包括稀疏时间池化网络,该稀疏时间池化网络包括两个弱监督时间动作定位模型,如本文所公开的。

在一些实现方式中,可以通过网络780从服务器计算系统730接收一个或多个机器学习模型720,将其存储在用户计算装置存储器714中,然后由一个或多个处理器712使用或以其他方式实现。在一些实现方式中,用户计算装置702可以实现单个机器学习模型720的多个并行实例(例如,以执行并行动作分类和/或定位)。

更具体地说,一个或多个机器学习模型720可以包括一个或多个动作分类和/或定位模型。例如,一个或多个机器学习模型720可以包括一个或多个弱监督时间动作定位模型,其配置为对未修剪的视频中的动作进行定位和/或分类,如本文所述。在一些实现方式中,一个或多个模型可以包括一个或多个两串流cnn模型,诸如用于rgb串流和光流串流的两串流稀疏时间池化网络模型,如本文所述。

附加地或替代地,一个或多个机器学习模型740可以被包括在服务器计算系统730中或以其他方式由其存储和实现,该服务器计算系统730根据客户端-服务器关系与用户计算装置702进行通信。例如,机器学习模型740可以由服务器计算系统740实现为web服务的一部分(例如,视频动作分类和/或定位服务)。因此,可以在用户计算装置702处存储和实现一个或多个模型720和/或可以在服务器计算系统730处存储和实现一个或多个模型740。

用户计算装置702还可以包括接收用户输入的一个或多个用户输入组件722。例如,用户输入组件722可以是对用户输入对象(例如,手指或手写笔)的触摸敏感的触敏组件(例如,触敏显示屏或触摸板)。触敏组件可以用来实现虚拟键盘。其他示例用户输入组件包括麦克风、传统键盘或用户可通过其提供用户输入的其他手段。

服务器计算系统730包括一个或多个处理器732和存储器734。一个或多个处理器732可以是任何合适的处理装置(例如,处理器内核、微型处理器、asic、fpga、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器734可以包括一种或多种非暂时性计算机可读存储介质,例如ram、rom、eeprom、eprom、闪存装置、磁盘等,以及它们的组合。存储器734可以存储由处理器732执行的数据736和指令738,以使服务器计算系统730执行操作。

在一些实现方式中,服务器计算系统730包括一个或多个服务器计算装置或以其他方式由其实现。在服务器计算系统730包括多个服务器计算装置的情况下,这样的服务器计算装置可以根据顺序计算架构、并行计算架构或其一些组合来操作。

如上所述,服务器计算系统730可以存储或以其他方式包括一个或多个机器学习模型740。例如,模型740可以是或可以包括各种机器学习模型。示例机器学习模型包括神经网络或其他多层非线性模型。示例神经网络包括前馈神经网络、深度神经网络、递归神经网络和卷积神经网络。参考图1-2对示例模型740进行了讨论。

用户计算装置702和/或服务器计算系统730可以经由与通过网络780通信耦接的训练计算系统750的交互来训练模型720和/或740。训练计算系统750可以与服务器计算系统730分离,或者可以是服务器计算系统730的一部分。

训练计算系统750包括一个或多个处理器752和存储器754。一个或多个处理器752可以是任何合适的处理装置(例如,处理器内核、微处理器、asic、fpga、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器754可以包括一种或多种非暂时性计算机可读存储介质,例如ram、rom、eeprom、eprom、闪存装置、磁盘等,以及它们的组合。存储器754可以存储由处理器752执行的数据756和指令758,以使训练计算系统750执行操作。在一些实现方式中,训练计算系统750包括一个或多个服务器计算装置或以其他方式由其实现。

训练计算系统750可以包括模型训练器760,其使用各种训练或学习技术(例如,错误的向后传播)来训练存储在用户计算装置702和/或服务器计算系统730处的机器学习模型720和/或740。在一些实现方式中,执行错误的向后传播可以包括随着时间的推移执行截断的反向传播。模型训练器760可以执行多种泛化技术(例如,权重衰减、丢弃等),以提高被训练模型的泛化能力。

特别地,模型训练器760可以基于训练数据762的集合来训练机器学习模型720和/或740。训练数据762可以包括例如视频训练数据集,例如thumos14验证集,如本文所述。可以类似地使用其他合适的训练数据集。例如,训练数据可以包括包含目标动作类别的未修剪的视频,该目标动作类别已用视频级动作分类标签进行了标记。

在一些实现方式中,如果用户提供了同意,则训练示例可以由用户计算装置702提供。因此,在这样的实现方式中,可以由训练计算系统750对从用户计算装置702接收的用户特定数据来训练提供给用户计算装置702的模型720。在一些实例中,此过程可以称为个性化模型。

模型训练器760包括用于提供期望功能的计算机逻辑。模型训练器760可以用控制通用处理器的硬件、固件和/或软件来实现。例如,在一些实现方式中,模型训练器760包括存储在存储装置上、加载到存储器中并由一个或多个处理器执行的程序文件。在其他实现方式中,模型训练器760包括一组或多组计算机可执行指令,其存储在有形的计算机可读存储介质中,例如ram、硬盘、或者光或磁介质。

网络780可以是任何类型的通信网络,例如局域网(例如,内部网)、广域网(例如,互联网)或其组合,并且可以包括任意数量的有线或无线链路。通常,通过网络780的通信可以经由任何类型的有线和/或无线连接、使用多种通信协议(例如,tcp/ip、http、smtp、ftp)、编码或格式(例如,html、xml),和/或保护方案(例如,vpn、安全http、ssl)来执行。

图7a示出了可用于实现本公开的一个示例计算系统。也可以使用其他计算系统。例如,在一些实现方式中,用户计算装置702可以包括模型训练器760和训练数据集762。在这样的实现方式中,模型720可以在用户计算装置702处本地地训练和使用。在一些这样的实现方式中,用户计算装置702可以实现模型训练器760以基于用户特定的数据来个性化模型720。

图7b描绘了根据本公开的示例方面执行的示例计算装置710的框图。计算装置710可以是用户计算装置或服务器计算装置。

计算装置710包括多个应用程序(例如,应用程序1至n)。每个应用程序都包含自己的机器学习库和(多个)机器学习模型。例如,每个应用程序可以包含机器学习模型。示例应用程序包括文本消息收发应用程序、电子邮件应用程序、听写应用程序、虚拟键盘应用程序、浏览器应用程序等。

如图7b所示,每个应用程序可以与计算装置的许多其他组件进行通信,例如,一个或多个传感器、上下文管理器、装置状态组件和/或其他组件。在一些实现方式中,每个应用程序都可以使用api(例如公共api)与每个装置组件进行通信。在一些实现方式中,每个应用程序使用的api特定于该应用程序。

图7c描绘了根据本公开的示例方面执行的示例计算装置770的框图。计算装置770可以是用户计算装置或服务器计算装置。

计算装置770包括多个应用程序(例如,应用程序1至n)。每个应用程序都与中央智能层进行通信。示例应用程序包括文本消息收发应用程序、电子邮件应用程序、听写应用程序、虚拟键盘应用程序、浏览器应用程序等。在一些实现方式中,每个应用程序都可以使用api(例如,跨越应用程序的通用api)与中央智能层(及其中存储的(多个)模型)进行通信。

中央智能层包括多个机器学习模型。例如,如图1c所示,可以为每个应用程序提供相应的机器学习模型(例如,模型),并由中央智能层进行管理。在其他实现方式中,两个或多个应用程序可以共享单个机器学习模型。例如,在一些实现方式中,中央智能层可以为所有应用程序提供单个模型(例如,单个模型)。在一些实现方式中,中央智能层包含在计算装置770的操作系统中或以其他方式由其实现。

中央智能层可以与中央装置数据层通信。中央装置数据层可以是计算装置770的集中式数据存储库。如图1c所示,中央装置数据层可以与计算装置的许多其他组件进行通信,例如,一个或多个传感器、上下文管理器、装置状态组件和/或其他组件。在一些实现方式中,中央装置数据层可以使用api(例如私有api)与每个装置组件进行通信。

示例模型布置

图8描绘了根据本公开的示例方面的示例机器学习模型800的框图。在一些实现方式中,机器学习模型800被训练为接收描述视频(例如,未修剪的视频)的输入数据804的集合,并且由于接收到输入数据804而提供定位和/或分类一个或多个动作的输出数据806。因此,在一些实现方式中,机器学习模型800可以包括一个或多个弱监督时间动作定位模型802,其可操作为对这样的(多个)动作进行时间定位和/或分类,如本文所述。在一些实现方式中,机器学习模型800可以是两串流稀疏时间池化网络,其可以包括两个弱监督时间动作定位模型802,如本文所述。

示例方法

图9描绘了根据本公开的示例方面的在时间上定位目标动作的示例方法的流程图。尽管图9出于图示和讨论的目的描绘了以特定顺序执行的步骤,但是本公开的方法不限于特定图示的顺序或布置。在不脱离本公开的范围的情况下,可以以各种方式省略、重新布置、组合,和/或改编方法900的各个步骤。

在902,可以将视频输入到包括一个或多个弱监督时间动作定位模型的机器学习模型中。在一些实现方式中,视频可以包括rgb串流。在一些实现方式中,机器学习模型可以是稀疏时间池化网络,其可以包括两个弱监督时间动作定位模型。机器学习模型可以在计算系统上实现,且视频可以是指示视频的数据。例如,在一些实现方式中,用户可以使用用户计算装置702来选择要提供给机器学习模型720的视频。在一些实现方式中,机器学习模型720可以存储在用户计算装置702上,而在其他实现方式中,机器学习模型740可以存储在远离用户计算装置702的计算系统730上。该数据可以是例如指示未修剪的视频的数据。

在904,计算系统可以通过一个或多个弱监督时间动作定位模型来分析视频以确定一个或多个加权的时间类别激活图。例如,机器学习模型可以包括一个或多个弱监督时间动作定位模型和/或一个稀疏时间池化网络。在一些实现方式中,机器学习模型可以是两串流模型,其中第一流是rgb串流,第二流是光流串流。机器学习模型可以是配置为接收视频并输出加权的时间类别激活图的机器学习模型。

在906,计算系统可以至少部分地基于一个或多个加权的时间类别激活图确定目标动作在视频中的时间位置。例如,可以对一个或多个时间类别激活图进行阈值化,以确定一个或多个时间建议,如本文中所提供的。在一些实现方式中,第一加权的时间类别激活图可以与第二加权的时间类别激活图进行比较,如本文中所提供的。在一些实现方式中,输出可以包括指示动作分类和/或动作定位的数据。例如,机器学习模型的输出可以在时间上定位动作和/或分类视频中存在的一个或多个目标。在一些实现方式中,机器学习模型的输出可以包括动作的时间定位以及动作分类。

图10描绘了根据本公开的示例方面的在视频中在时间上定位目标动作的示例方法的流程图。视频可以例如是未修剪的视频。尽管图10出于图示和讨论的目的描绘了以特定顺序执行的步骤,但是本公开的方法不限于特定图示的顺序或布置。在不脱离本公开的范围的情况下,可以以各种方式省略、重新布置、组合,和/或改编方法1000的各个步骤。如本文所公开的,方法1000可以由诸如一个或多个计算装置的计算系统来实现。

在1002,方法1000可以包括获得包括rgb串流的视频。例如,可以在计算系统上实现包括第一弱监督时间动作定位模型和第二弱监督时间动作定位模型的稀疏时间池化网络。用户可以将视频提供给稀疏时间池化网络,例如通过将视频输入到稀疏时间池化网络中。

在1004,方法1000可以包括至少部分地基于rgb串流来产生光流串流。例如,稀疏时间池化网络可以配置为通过对rgb串流执行光流算法来从rgb串流生成光流串流。

在1006,方法1000可以包括将rgb串流输入到第一弱监督时间动作定位模型中。例如,稀疏时间池化网络可以是两串流网络,且rgb串流可以输入到第一弱监督时间动作定位模型中。

在1008,方法1000可以包括接收rgb加权的时间类别激活图作为第一弱监督时间动作定位模型的输出。例如,可以训练第一弱监督时间动作定位模型来分析rgb串流,以确定rgb加权的时间类别激活图。rgb加权的时间类别激活图可以包括时域中的一维特定于类别的激活图。

在1010,方法1000可以包括将光流串流输入到第二弱监督时间动作定位模型中。例如,稀疏时间池化网络可以是两串流网络,且光流串流可以输入到第二弱监督时间动作定位模型中。

在1012,方法1000可以包括接收流加权的时间类别激活图作为第二弱监督时间动作定位模型的输出。例如,可以训练第二弱监督时间动作定位模型来分析光流串流,以确定流加权的时间类别激活图。流加权的时间类别激活图可以包括时域中的一维特定于类别的激活图。

在1014,方法1000可以包括至少部分地基于rgb加权的时间类别激活图或流加权的时间类别激活图确定目标动作在视频中的时间位置。例如,稀疏时间池化网络可以配置为针对rgb串流和光流串流中的每一个生成一个或多个特定于类别的时间建议。每个特定于类别的时间建议可以包括从rgb串流或光流串流提取的一维连接的分量。

在一些实现方式中,通过稀疏时间池化网络可以针对rgb串流和光流串流中的每一个生成一个或多个特定于类别的时间建议,方法是阈值化rgb加权的时间类别激活图以划分rgb串流或阈值化流加权的时间类别激活图以划分光流串流。在一些实现方式中,一个或多个特定于类别的时间建议可以通过线性内插rgb加权的时间类别激活图或流加权的时间类别激活图来生成。例如,可以在阈值化之前在采样的片段之间进行线性内插。

在一些实现方式中,至少部分地基于rgb加权的时间类别激活图或流加权的时间类别激活图确定目标动作在视频中的时间位置可以包括,从rgb串流或光流串流中的任一个选择特定的时间间隔的第一特定于类别的时间建议,并从其他串流确定是否存在对应的时间间隔的第二特定于类别的时间建议。例如,可以从rgb串流选择特定的时间间隔的第一时间建议,且稀疏时间池化网络可以确定存在对应的时间间隔的来自光流串流的第二时间建议。如果不是,则可以至少部分基于第一特定于类别的时间建议在特定的时间间隔处检测目标动作的时间位置。如果存在来自其它串流的对应的时间间隔的第二特定于类别的时间建议,则稀疏时间池化网络可以通过比较第一特定于类别的时间建议和第二特定于类别的时间建议确定目标动作在视频中的时间位置。

例如,可以至少部分地基于相应的特定于类别的时间建议内的所有一维连接的分量的加权平均时间类别激活图为每个第一特定于类别的时间建议和第二特定于类别的时间建议确定目标动作的相应的得分。然后可以至少部分地基于相应的得分确定目标动作的时间位置。例如,可以对相应的得分进行排名,得分较高的时间建议可以用于确定目标动作的时间位置。在一些实现方式中,目标类别的相应的得分可以至少部分地基于模态参数来确定。例如,模态参数可以控制rgb加权的时间类别激活图和流加权的时间类别激活图的幅度。

在一些实现方式中,确定目标动作在视频中的时间位置可以包括在目标类别的特定于类别的时间建议之间执行非极大值抑制以移除重叠的检测。

在一些实现方式中,稀疏时间池化网络可以首先通过分析视频以确定一个或多个视频级分类得分,从而确定一个或多个相关的目标动作类别。例如,一个或多个视频级分类得分可以确定视频中存在哪些相关目标动作,并且可以对相关目标动作执行目标动作定位。

在一些实现方式中,可以使用包括分类损失和稀疏损失的损失函数训练稀疏时间池化网络的弱监督时间动作定位模型。例如,可以至少部分地基于视频级分类得分和地面实况分类之间的比较来确定分类损失。例如,可以在地面实况视频级动作分类和动作分类的预测得分之间执行多标签交叉熵损失。在一些实现方式中,稀疏损失可以至少部分地基于确定注意权重参数的l1(也称为l1)范数来确定。

图11描绘了根据本公开的示例方面的训练弱监督时间动作定位模型的示例方法的流程图。尽管图11出于图示和讨论的目的描绘了以特定顺序执行的步骤,但是本公开的方法不限于特定图示的顺序或布置。在不脱离本公开的范围的情况下,可以以各种方式省略、重新布置、组合,和/或改编方法1100的各个步骤。如本文所公开的,方法1100可以由诸如一个或多个计算装置的计算系统来实现。

在1102,方法1100可以包括将未修剪的视频输入到弱监督时间动作定位模型中。

在1104,方法1100可以包括通过弱监督时间动作定位模型来分析未修剪的视频以确定动作分类的预测得分。

例如,在一些实现方式中,分析未修剪的视频可以包括从未修剪的视频中采样多个片段。在一些实现方式中,多个片段的大小可以一致。然后可以使用一个或多个预训练的卷积神经网络来分析多个片段,以确定相应的特征表示。

在一些实现方式中,然后可以将每个相应的特征表示输入到注意模块中以确定相应的注意权重。例如,在一些实现方式中,注意模块可以包括两个完全连接层、两个完全连接层之间的修正线性单元层、以及sigmoid层。每个特征表示可以被输入到注意模块中,且相应的注意权重可以从sigmoid层接收。

在一些实现方式中,注意加权的时间平均池化可以至少部分地基于注意权重来确定。例如,注意加权的时间平均池化可以是特征表示的加权总和乘以相应的注意权重。

在一些实现方式中,动作分类的预测得分可以至少部分地基于注意加权的时间平均池化来确定。例如,注意加权的时间平均池化可以被输入到加权参数完全连接层中,且加权参数完全连接层的输出可以被输入到sigmoid层中。然后可以从sigmoid层接收动作分类的预测得分。

在1106,方法1100可以包括至少部分地基于预测得分确定包括稀疏损失和分类损失的损失函数。例如,在一些实现方式中,分类损失可以至少部分地基于动作分类的预测得分和地面实况视频级动作分类之间的比较来确定。例如,可以使用地面实况视频标签和动作分类的预测得分之间的多标签交叉熵损失来确定分类损失。在一些实现方式中,稀疏损失可以至少部分地基于从注意模块接收的一个或多个注意权重的l1范数(也称为l1)来确定。

在1108,方法1100可以包括至少部分地基于损失函数训练弱监督时间动作定位模型。

例如,在一些实现方式中,弱监督时间动作定位模型的加权参数完全连接层可以至少部分地基于分类损失来训练。在一些实现方式中,注意模块可以至少部分地基于稀疏损失来训练。例如,注意模块的两个完全连接层可以至少部分地基于稀疏损失来确定。

附加公开

本文讨论的技术涉及服务器、数据库、软件应用程序和其他基于计算机的系统,以及在此类系统中采取的动作、向此类系统发送的信息和从其接收的信息。基于计算机的系统的固有灵活性允许在组件之间进行多种可能的配置、组合以及任务和功能的划分。例如,本文讨论的过程可以使用单个装置或组件或组合工作的多个装置或组件来实现。数据库和应用程序可以在单个系统上实现,也可以分布在多个系统上。分布的组件可以顺序或并行运行。

尽管已经针对本主题的各种特定示例方面对本主题进行了详细描述,但是每个示例都是作为说明而非限制本公开而提供的。本领域技术人员在理解了前述内容之后,可以容易地产生对这些方面的改变、变化和等同形式。因此,本公开并不排除包括对本领域普通技术人员而言显而易见的对本主题的这些修改、变型和/或添加。例如,作为一个实施例的一部分示出或描述的特征可以与另一个实施例一起使用以产生另外的实施例。因此,本公开旨在覆盖这样的改变、变化和等同形式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1