CN112740709B - 一种执行用于视频分析的门控的计算机实现的方法、计算设备及计算机可读介质 - Google Patents

一种执行用于视频分析的门控的计算机实现的方法、计算设备及计算机可读介质 Download PDF

Info

Publication number
CN112740709B
CN112740709B CN201980060091.9A CN201980060091A CN112740709B CN 112740709 B CN112740709 B CN 112740709B CN 201980060091 A CN201980060091 A CN 201980060091A CN 112740709 B CN112740709 B CN 112740709B
Authority
CN
China
Prior art keywords
video
model
frames
gating
implementations
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980060091.9A
Other languages
English (en)
Other versions
CN112740709A (zh
Inventor
莎拉达·拉马斯瓦米
苏里什·乔杜里
约瑟夫·罗特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN112740709A publication Critical patent/CN112740709A/zh
Application granted granted Critical
Publication of CN112740709B publication Critical patent/CN112740709B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/254Fusion techniques of classification results, e.g. of results related to same input data
    • G06F18/256Fusion techniques of classification results, e.g. of results related to same input data of results relating to different input data, e.g. multimodal recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • G06V10/809Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of classification results, e.g. where the classifiers operate on the same input data
    • G06V10/811Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of classification results, e.g. where the classifiers operate on the same input data the classifiers operating on different input data, e.g. multi-modal recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • G06V20/47Detecting features for summarising video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams

Abstract

本文描述的实施方式涉及执行用于视频分析的门控的方法、设备和计算机可读介质。在一些实施方式中,计算机实现的方法包括获得包括多个帧和对应的音频的视频。该方法进一步包括基于目标帧速率来执行采样以选择多个帧的子集,并且提取多个帧的子集中的每个帧的相应的音频频谱图。该方法进一步包括降低多个帧的子集的分辨率。该方法进一步包括将基于机器学习的门控模型应用于多个帧的子集和对应的音频频谱图,并且获得是否分析视频以添加一个或多个视频注释的指示作为门控模型的输出。

Description

一种执行用于视频分析的门控的计算机实现的方法、计算设 备及计算机可读介质
背景技术
用户将图像和视频上传到在线图像管理服务。一些服务执行视频注释。例如,视频注释包括指示上传的视频中的人的面部、对象(例如,生日蛋糕)、移动(例如,跳跃、跑步等)、声音(例如,笑声)等的标签。视频注释是通过使用编程技术分析视频而生成的。
本文提供的背景技术描述是为了一般地呈现本公开的上下文。目前命名的发明人的工作(就在此背景技术部分中对它进行描述来说)以及说明书的在提交时可能无法以其它方式作为现有技术的各方面均未被明确地或隐式地承认为针对本公开的现有技术。
发明内容
本文描述的实施方式涉及确定是否分析视频以添加一个或多个视频注释的方法、设备和计算机可读介质。在一些实施方式中,计算机实现的方法包括获得包括多个帧和对应的音频的视频。该方法进一步包括基于目标帧率来执行采样以选择所述多个帧的子集。在一些实施方式中,所述目标帧速率小于或等于所述视频的帧速率。所述方法进一步包括提取所述多个帧的子集中的每个帧的相应的音频频谱图。所述方法进一步包括降低所述多个帧的子集的分辨率,和在降低所述分辨率之后,将基于机器学习的门控模型应用于所述多个帧的子集和相应的音频频谱图。所述方法进一步包括获得是否分析所述视频以添加一个或多个视频注释的指示作为所述门控模型的输出。
在一些实施方式中,该方法可以进一步包括,在应用所述门控模型之前,将所述视频划分成多个片段,每个片段包括多个帧,并且其中,通过所述多个片段按序列迭代地执行应用所述门控模型,其中在每次迭代时生成所述指示。在一些实施方式中,所述多个片段中的每一片段可与所述多个片段中的另一片段重叠。在一些实施方式中,如果在特定迭代时的所述指示是要分析所述视频,则终止所述门控模型的应用,使得排除所述多个片段中的一个或多个片段。
在一些实施方式中,所述门控模型被训练以确定在提供给所述门控模型的输入视频中是否存在特定特征。在一些实施方式中,所述特定特征包括人脸、对象的类型、移动的类型或音频的类型的至少一个。
在一些实施方式中,应用所述门控模型可以包括:应用确定存在特定特征的似然性的第一模型;以及应用第二模型,所述第二模型接收存在所述特定特征的似然性作为输入并生成是否分析所述视频的所述指示。在一些实施方式中,所述第一模型包括第一卷积神经网络,所述第一卷积神经网络包括经训练以分析视频的多个层;第二卷积神经网络,所述第二卷积神经网络包括经训练以分析音频的多个层;以及包括多个层的融合网络,所述融合网络接收所述第一卷积神经网络和所述第二卷积神经网络的输出作为输入并且向所述第二模型提供存在所述特定特征的似然性。在一些实施方式中,使用启发式、递归神经网络或马尔可夫链分析技术中的一种或多种来实施所述第二模型。在一些实施方式中,所述方法可以进一步包括向所述第二模型提供附加输入。所述附加输入可以包括其中所述特定特征被检测为存在的所述多个帧的子集中的特定帧的一部分的标识、其中所述特定特征出现在所述多个帧的子集中的持续时间、或有关提前终止的启发式中的一个或者多个。在这些实施方式中,所述第二模型利用所述附加输入来生成所述指示。
在一些实施方式中,当所述指示是要分析所述视频时,所述方法可以进一步包括以编程方式分析所述视频以添加所述一个或多个视频注释。所述视频注释可以包括一个或多个标签,所述标签指示面部、特定类型的对象、特定类型的移动或特定类型的音频中的一个或多个在所述视频的存在。
一些实施方式可以包括计算设备,所述计算设备用于分析视频以添加一个或多个视频注释。所述设备可以包括处理器和在其上存储有指令的处理器。所述指令在由所述处理器执行时使所述处理器执行可以包括获得包括多个帧和对应的音频的视频的操作。所述操作可以进一步包括基于小于或等于所述视频的帧速率的目标帧速率来执行采样以选择所述多个帧的子集。所述操作可以进一步包括从所述多个帧的子集中的每个帧的所述音频中提取相应的音频频谱图。所述操作可以进一步包括降低所述多个帧的子集的分辨率。所述操作可以进一步包括:在降低所述分辨率之后,将基于机器学习的门控模型应用于所述多个帧的子集和对应的音频频谱图。所述操作可以进一步包括获得是否分析所述视频以添加一个或多个视频注释的指示作为所述门控模型的输出。
在一些实施方式中,所述存储器可以包括存储在其上的指令,当由所述处理器执行时,所述指令使所述处理器执行进一步的操作,所述操作包括,在应用所述门控模型之前,将所述视频划分成多个片段。每个片段可以包括多个帧。在这些实施方式中,通过所述多个片段按序列迭代地执行应用所述门控模型,并且在每次迭代时生成所述指示。
本文描述的实施方式进一步涉及用于训练基于机器学习的门控模型以生成是否分析视频以添加与特定特征相对应的注释的指示的方法、设备和计算机可读介质。基于机器学习的所述门控模型可以包括第一模型,所述第一模型包括第一卷积神经网络,所述第一卷积神经网络基于视频的视频帧生成在所述视频中存在所述特定特征的似然性;和第二模型,所述第二模型接收在所述视频中存在所述特定特征的似然性作为输入并生成所述指示。在一些实施方式中,计算机实现的方法包括获得包括多个训练视频的训练集。每个训练视频可以包括多个帧。每个训练视频都是对应的高分辨率视频的低分辨率的采样版本。训练集进一步包括多个训练标签。每个训练标签指示所述特定特征在对应于所述多个训练视频中的一个或多个的所述高分辨率视频中的存在。
该方法进一步包括训练门控模型,其包括通过将所述第一模型应用于所述训练视频来生成在所述训练视频中存在所述特定特征的似然性。训练所述门控模型进一步包括通过应用所述第二模型,基于在所述训练视频中存在所述特定特征的所述似然性,生成是否分析所述训练视频以添加与特定特征相对应的注释的指示。训练所述门控模型进一步包括基于与所述对应的高分辨率视频和所述指示相关联的所述训练标签生成反馈数据,和提供所述反馈数据作为所述第一模型的训练输入和所述第二模型的训练输入。可以为所述训练集中的每个训练视频执行训练所述门控模型。
在一些实施方式中,所述特定特征包括人脸、移动的类型或对象的类型中的至少一个。在一些实施方式中,所述训练集中的多个训练视频包括其中存在所述特定特征的至少一个视频和其中不存在所述特定特征的至少一个视频。在这些实施方式中,训练所述门控模型包括自动调整所述第一模型的第一卷积神经网络的一个或多个节点的权重或自动调整所述第一模型的第一卷积神经网络的一对或多对节点之间的连通性中的一个或者多个。
在一些实施方式中,其中所述门控模型的第二模型包括基于启发式的模型、递归神经网络或马尔可夫链分析模型中的一个或多个。在这些实施方式中,训练所述门控模型包括自动调整所述基于启发式的模型、所述递归神经网络或所述马尔可夫链分析模型的一个或多个参数。
在一些实施方式中,训练所述门控模型可以进一步包括将所述训练视频的多个帧划分成多个帧堆栈。每个堆栈可以包括至少一个帧。可以按照有序的序列组织所述多个堆栈。在这些实施方式中,针对多个帧堆栈中的每个帧堆栈顺序地执行训练所述门控模型。在这些实施方式中,所述第二模型被配置成存储针对所述训练视频的每个堆栈的所生成的指示。此外,在这些实施方式中,生成针对特定堆栈的所述指示进一步基于所述有序序列中的一个或多个先前堆栈的相应存储的指示。
在一些实施方式中,所述多个训练视频中的一个或多个训练视频可以包括与所述多个帧相对应的音频频谱图。在这些实施方式中,所述第一模型可以进一步包括第二卷积神经网络,所述第二卷积神经网络被训练以分析音频频谱图;和融合网络,所述融合网络接收所述第一卷积神经网络和所述第二卷积神经网络的输出作为输入,并产生在所述视频中存在所述特定特征的似然性。
附图说明
图1是可以被用于本文所述的一个或多个实施方式的示例网络环境的框图。
图2是图示根据一些实施方式的示例方法200的流程图。
图3图示根据一些实施方式的示例门控模型300的操作。
图4是图示根据一些实施方式的用于训练基于机器学习的门控模型的示例性方法400的流程图。
图5图示示例视频和门控模型的相应输出。
图6是可以被用于本文所述的一个或多个实施方式的示例设备的框图。
具体实施方式
用户使用诸如智能手机或其他设备的相机捕获视频。用户可以将这样的视频存储在客户端设备或服务器,例如,提供视频托管服务的服务器上。可以经由用户的客户端设备和/或服务器来提供应用,该应用使用户能够例如通过使用诸如“约翰的生日”、“玛丽亚的毕业”、“上周末的我的棒球比赛”等等的关键字或关键短语来搜索视频。
为了能够快速搜索用户的视频,该应用可以与用户的视频相关联地生成和存储注释。注释可以是或可以包括标签。例如,注释可以指示视频中描述的特征,例如,人脸的存在(以及该脸是否与特定人相关联)、对象类型(例如,蛋糕、蜡烛、棒球棍等)的存在、移动类型的存在、行为或活动(例如,跑步、跳舞、做运动等)的存在。当用户执行搜索时,分析注释以标识与搜索匹配的视频。例如,响应于搜索“上周末我的棒球比赛”,可以分析注释以确定是否例如“棒球棍”、“棒球帽”、“体育场”等的一个或者多个特定注释与视频相关联以确定视频是否与搜索匹配。如果获得用户同意,则可以自动分析注释,以标识与特定准则匹配的视频以执行特定系统任务,例如,找到要与其自动共享视频的用户,找到在用户设备上呈现的相关视频或其一部分(例如,组合成专题演示或基于诸如所描绘的对象、活动等的视频内容的其他基于图像的创建)等。
分析视频以为该视频添加一个或多个注释可能在计算上是昂贵的。如果注释对应于特定特征,则可能需要分析整个视频,以确定视频中(或视频的一个或多个片段中)是否存在一个或多个特定特征,并且如果特定特征存在则可以将相应的注释添加到视频中。此操作可能是浪费的,例如,如果视频中不存在特定特征,则对视频的分析可能会浪费计算资源和能量。
此外,在某些设备(例如,处理能力有限的设备、功率容量有限的设备(例如,电池供电的设备))上,分析视频以添加注释可能不可行或可能特别昂贵。如果用户具有包括不包括特定特征的多个视频的视频库,则可以针对多个视频中的每个运行分析该视频的计算昂贵的操作。此外,当视频的仅一部分描绘特定特征时,分析整个视频可能浪费计算资源。
一些实施方式包括方法、设备和计算机可读介质,其具有用于执行视频的门控分析的指令。可以通过应用经训练的基于机器学习的门控模型来执行门控分析,该门控模型生成是否分析视频或视频的一个或多个片段以添加一个或多个视频注释的指示。
使用门控模型来生成指示可以提供数个技术优势。例如,与用于分析视频以检测是否存在特定特征并添加相应注释的视频分析技术相比,门控模型可以与实质上更低的计算成本相关联。
例如,门控模型可以应用于视频的帧的低分辨率、采样子集,并且因此,与分析原始高分辨率视频相比,其具有较低计算成本。此外,仅需对其门控模型为其生成肯定指示的此类视频进行分析,从而节省计算成本和功率。
使用门控模型还可以使视频注释能够在具有低计算能力或有限功率的设备上执行。此外,在一些实施方式中,来自门控模型的指示可以包括基于一个或多个片段中存在特定特征的似然性来标识视频的一个或多个片段以进行分析。在这些实施方式中,可以将视频的其他片段从分析中排除以添加视频注释,从而节省计算成本。门控模型可以应用于任何数量的视频。例如,如果用户具有大量视频,例如,一千个视频,则门控模型可以被应用以标识将使用具有高计算成本的技术进行进一步分析以添加注释的视频而不是分析所有视频。在该示例中,门控模型标识以用于进一步分析的视频的子集(例如,一千个视频中的三百个),例如,一百个视频中的十个,被进一步进行分析,而未进一步分析其他视频。总计算成本-即针对一千个视频使用门控模型的计算成本与使用高成本技术进一步分析三百个视频的计算成本之和-低于使用高成本技术分析一千个视频的计算成本。
在一些实施方式中,门控模型可以被实现为两阶段模型,其包括被训练以确定视频中存在特定特征的似然性的第一模型和被训练以利用似然性预测(或例如,似然性预测序列)例如由第一模型的输出作为输入以生成是否分析视频的指示的第二模型。在一些实施方式中,两阶段模型可以包括确定特定特征存在的似然性的多个不同的第一模型以及单个第二阶段模型。
在一些实施方式中,当门控模型被实施为包括第一模型和第二模型两阶段模型时,该第一模型和第二模型可以被彼此独立地训练。例如,可以训练第一模型以确定在视频中存在特定特征(例如,人脸、对象的类型、移动的类型、音频的类型等)的似然性。可以独立于第二模型的训练来执行该训练,例如,通过提供基于与训练视频相关联的训练标签而获得的反馈数据。
例如,可以训练第二模型以利用似然性预测(或似然性预测序列)作为输入来生成关于是否分析视频以添加注释的指示。可以独立于第一模型的训练来执行该训练,例如,通过提供不同的似然值作为输入,并提供训练标签作为反馈数据。在整体上对门控模型的性能(例如,精度、计算成本等)进行了相应的改进的情况下,从而每个模型可以与另一个模型分离地进行评估和训练。
图1中使用相同的附图标记来标识相同的元件。附图标记后的字母(例如“156a”)指示该文本专门指代具有该特定附图标记的元件。文本中不包含下述字母的参考数字(诸如“156”)指代附图中的携带该附图标记的任何或全部元件(例如,本文中的“156”指代附图中的附图标记“156a”和/或“156b”)。
图1图示可以在本文描述的一些实施方式中使用的示例网络环境100的框图。在一些实施方式中,网络环境100包括一个或多个服务器系统,例如,图1的示例中的服务器系统102。例如,服务器系统102可以与网络130进行通信。服务器系统102可以包括服务器设备104和数据库106或者其它存储设备。数据库106可以存储一个或多个图像和/或视频以及与一个或多个图像和/或视频相关联的元数据。在一些实施方式中,服务器设备104可以提供图像管理应用156b。图像管理应用156b可以访问存储在数据库106中的图像106b。
网络环境100还可以包括一个或多个客户端设备,例如,客户端设备120、122、124和126,这些客户端设备可经由网络130与彼此和/或与服务器系统102进行通信。网络130可以是任何类型的通信网络,包括因特网、局域网(LAN)、无线网络、交换机或集线器连接等中的一个或多个。在一些实施方式中,网络130可以包括设备之间的对等通信,例如使用对等无线协议(例如,Wi-Fi Direct等)等。两个客户端设备120和122之间的对等通信的一个示例通过箭头132被示出。
为了便于图示,图1示出用于服务器系统102、服务器设备104以及数据库106的一个框,并且示出用于客户端设备120、122、124和126的四个框。服务器框102、104以及106可以表示多个系统、服务器设备、和网络数据库,并且这些框可按照与所示不同的配置提供。例如,服务器系统102可表示可经由网络130与其它服务器系统进行通信的多个服务器系统。在一些实施方式中,例如,服务器系统102可以包括云托管服务器。在一些示例中,数据库106和/或其它存储设备可以被设置在与服务器设备104分离的服务器系统框中并且可经由网络130与服务器设备104和其它服务器系统进行通信。
可以存在任何数目的客户端设备。每个客户端设备可以是任何类型的电子设备,例如,台式计算机、膝上型计算机、便携式或移动设备、手机、智能手机、平板计算机、电视、TV机顶盒或娱乐设备、可穿戴设备(例如,显示眼镜或护目镜、腕表、头戴式耳机、臂章、珠宝等)、个人数字助理(PDA)、媒体播放器、游戏设备等。一些客户端设备还可以包括类似于数据库106或者其它存储的本地数据库。在一些实施方式中,网络环境100可以不具有所示的所有组件并且/或者可以具有包括其它类型的元件来代替本文描述的那些元件或者除了本文描述的那些元件之外还包括其它类型的元件的其它元件。
在各种实施方式中,终端用户U1、U2、U3和U4可以使用相应的客户端设备120、122、124和126来与服务器系统102和/或彼此进行通信。在一些示例中,用户U1、U2、U3和U4可以经由在服务器系统102上实现的网络服务(例如,社交网络服务、图像托管服务、其它类型的网络服务)经由在相应客户端设备和/或服务器系统102运行的应用彼此交互。例如,相应的客户端设备120、122、124和126可以向且从一个或多个服务器系统(例如,系统102)传达数据。
在一些实施方式中,服务器系统102可以向客户端设备提供适当的数据,使得每个客户端设备可接收上传到服务器系统102和/或网络服务的通信内容或共享内容。在一些示例中,用户U1-U4可经由音频或视频会议、音频、视频或文本聊天、或其它通信模式或应用交互。由服务器系统102实现的网络服务可以包括允许用户执行各种通信、形成链接和关联、上传并发布诸如图像、文本、视频、音频和其它类型的内容这样的共享内容、和/或执行其它功能的系统。例如,客户端设备可显示接收到的数据,诸如发送或者流传输到客户端设备并且经由服务器和/或网络服务从不同的客户端设备(或者直接地从不同的客户端设备)起源或者从服务器系统和/或网络服务起源的内容帖子。在一些实施方式中,客户端设备可例如使用如上所述的客户端设备之间的对等通信来直接地彼此通信。在一些实施方式中,“用户”可以包括一个或多个程序或虚拟实体、以及与系统或网络对接的人。
在一些实施方式中,客户端设备120、122、124和/或126中的任一个可提供一个或多个应用。例如,如图1中所示,客户端设备120可提供相机应用152和图像管理应用156a。客户端设备122-126还可以提供类似的应用。例如,相机应用152可以给相应的客户端设备的用户(例如,用户U1-U4)提供使用它们相应的用户设备的相机来捕获图像的能力。例如,相机应用152可以是在客户端设备120上执行的软件应用。
在一些实施方式中,相机应用152可以提供用户界面。例如,用户界面可以使客户端设备120的用户能够选择图像捕获模式,例如,静态图像(或照片)模式、突发模式(例如,在短时间段内捕获连续数量的图像)、运动图像模式、高动态范围(HDR)模式等等。例如,视频模式可以对应于包括多个帧的视频的捕获,并且可以具有任何长度。此外,视频模式可以支持不同的帧速率,例如,每秒25帧(fps)、30fps、50fps、60fps等。在捕获视频期间可以改变图像捕获的一个或多个参数。例如,用户可以在捕获视频的同时使用客户端设备放大场景或缩小场景。
在一些实施方式中,相机应用152可以(例如,部分地或全部地)实施本文参考图2和图4所描述的方法。在一些实施方式中,图像管理应用156a和/或图像管理应用156b可以(例如,部分地或全部地)实施本文参考图2和图4描述的方法。
可以使用客户端设备120的硬件和/或软件来实现相机应用152和图像管理应用156a。在不同的实施方式中,图像管理应用156a可以是独立的应用,例如,在客户端设备120-124的任何一个上执行,或可以与服务器系统102上设置的图像管理应用156b结合工作。
在用户许可下,图像管理应用156可以执行一个或多个自动功能,诸如存储(例如,备份)图像或视频(例如,到服务器系统102的数据库106)、增强图像或视频、稳定图像或者视频、识别图像中的一个或多个特征,例如面部、身体、对象的类型、移动的类型等。在一些示例中,图像或视频稳定化可以基于来自客户端设备120的加速度计、陀螺仪或其他传感器的输入和/或基于运动图像或视频的多个帧的比较来执行。
图像管理应用156还可以提供图像管理功能,诸如在用户界面中(例如,在包含单个图像的领先(one-up)视图中、在包括多个图像的网格视图中等)显示图像和/或视频、编辑图像和/或视频(例如,调整图像设置、应用滤波器、更改图像焦点、移除运动图像或者视频的一个或者多个帧)、与(例如,客户端设备120-126的)其他用户共享图像、归档图像(例如,存储图像使其不出现在主用户界面中)、生成基于图像的创作(例如,拼贴、相簿、基于运动的制品(诸如动画、故事、视频循环等)。在一些实施方式中,为了生成基于图像的创作,图像管理应用156可以利用与图像或者视频相关联的一个或多个标签。
在一些实施方式中,图像管理应用156可以通过利用对象识别技术以编程方式分析图像或视频以检测图像中的一个或多个特征。在一些实施方式中,图像管理应用156可以将与图像或视频相关联的一个或多个标签存储在客户端设备(未示出)上的数据库106和/或本地数据库中。
数据库106可以存储与图像和/或视频中的一个或多个相关联的标签(例如,内容注释)。例如,标签可以包括特定特征是否出现在图像或视频中的指示。例如,特定特征可以是,例如,人脸、对象的类型(例如,生日蛋糕、运动器材、树木等)、移动的类型(例如,跳跃、滑雪等)、音频的类型(例如,人类言语、笑声、音乐、自然声音)等。标签中的一个或多个还可以包括特定的时间戳,例如,与运动类型相关联的标签的时间戳可以包括开始和结束时间戳记,其分别对应于图像或视频中运动的开始和结束。在一些实施方式中,标签可以指示在图像或视频中描绘的场景的类型,例如,海边日落、滑雪的人、生日场景、婚礼、毕业典礼等。
客户端设备120、122、124和/或126上的用户界面可使得能够显示用户内容和其它内容,包括图像、视频、数据、和其它内容以及通信、隐私设定、通知、和其它数据。可使用客户端设备上的软件、服务器设备上的软件、和/或客户端软件和在服务器设备104上执行的服务器软件的组合(例如,与服务器系统102通信的应用软件或客户端软件)来显示这样的用户界面。用户界面可由客户端设备或服务器设备的显示设备(例如,触摸屏或其它显示屏幕、投影仪等)来显示。在一些实施方式中,在服务器系统上运行的应用可与客户端设备进行通信,以在客户端设备处接收用户输入并且在客户端设备处输出诸如可视数据、音频数据等这样的数据。
在一些实施方式中,服务器系统102和/或一个或多个客户端设备120-126中的任一个可提供通信应用程序。该通信程序可以允许系统(例如,客户端设备或服务器系统)提供用于与其它设备进行通信的选项。该通信程序可提供被显示在与服务器系统或客户端设备相关联的显示设备上的一个或多个关联的用户界面。用户界面可以向用户提供各种选项来选择通信模式、与之进行通信的用户或设备等。在一些示例中,通信程序可以提供选项来发送或广播内容帖子,例如,发送到广播区域,和/或可以输出指示内容帖子已经被设备和例如在帖子的已定义广播区域中的设备接收到的通知。通信程序可例如以各种格式中的任一种显示或者以其它方式输出传送的内容帖子和接收到的内容帖子。内容帖子可以包括,例如,与其它用户共享的图像。
本文描述的特征的其它实施方式可使用任何类型的系统和/或服务。例如,代替社交联网服务或者除了社交联网服务之外,还可使用其它联网服务(例如,连接到因特网)。任何类型的电子设备可利用本文描述的特征。一些实施方式可在与计算机网络断开连接或者间歇地连接到计算机网络的一个或多个客户端或服务器设备上提供本文描述的一个或多个特征。在一些示例中,包括或者连接到显示设备的客户端设备可显示存储在客户端设备本地的存储设备上的数据(例如,内容),例如,先前通过通信网络接收的图像。
图2是图示根据一些实施方式的示例方法200的流程图。在一些实施方式中,方法200可以例如在如图1中所示的服务器系统102上实施。在一些实施方式中,方法200的一些或全部可以在如图1中所示的一个或多个客户端设备120、122、124、126、一个或多个服务器设备、和/或在服务器设备和客户端设备两者上实施。在所描述的示例中,实施系统包括一个或多个数字处理器或处理电路(“处理器”),以及一个或多个存储设备(例如,数据库106或其他存储器)。在一些实施方式中,一个或多个服务器和/或客户端的不同组件可以执行方法200的不同框或其他部分。在一些示例中,第一设备被描述为执行方法200的框。一些实施方式可以具有可以将结果或数据发送到第一设备的一个或多个其他设备(例如,其他客户端设备或服务器设备)执行的方法200的一个或多个框。
在一些实施方式中,方法200或该方法的部分可以由系统自动发起。在一些实施方式中,实施系统是第一设备。例如,该方法(或其部分)可以被周期性地执行,或者基于一个或多个特定事件或条件来执行,例如,视频捕获是由用户使用应用(例如,相机应用152、图像管理应用156等)发起、接收已经新上传到系统或可被系统访问的一个或多个视频、自从方法200的最后一次执行以来预定时间段已到期、和/或在由该方法读取的设置中可以指定的发生的一个或多个其他条件。在某些实施方式中,这样的条件可以由用户的存储的自定义偏好中指定。
在各种实施方式中,客户端设备120可以是独立相机、包括相机的另一设备,例如,智能手机、平板电脑、计算机、诸如智能手表的可穿戴设备、耳机等,或可以接收由其他设备捕获的图像或视频的其它客户端设备。在一些实施方式中,客户端设备120可以是仅捕获的设备,例如,不包括屏幕的相机。在一些实施方式中,客户端设备120可以是仅查看的设备,例如,包括可以在其上显示图像或视频的屏幕但是不具有相机或捕获图像或视频的其他能力的设备。在一些实施方式中,客户端设备120可以具有捕获和查看能力两者。
在一些实施方式中,客户端设备120可以包括单个相机以捕获图像或视频。在一些实施方式中,客户端设备120可以包括多个相机(或镜头)。例如,智能手机或其他设备可以包括一个或多个前置摄像头(与屏幕位于设备的同一侧)和/或一个或多个后置摄像头。在一些实施方式中,一个或多个前置或后置摄像头可以在捕获期间一起操作,例如,第一相机可以捕获深度信息,而第二相机可以捕获图像或视频的图像像素。在一些实施方式中,不同的相机可以用于例如具有不同的缩放水平的不同类型的图像或视频捕获(例如,远摄镜头、广角镜头等)。在一些实施方式中,客户端设备120可以被配置成捕获360度图像或视频。在一些实施方法中,相机或镜头可使用单个图像传感器(例如,CCD或CMOS传感器)或多个传感器来捕获图像。在一些实施方式中,在图像捕获时,其他传感器,例如,深度传感器等可以与一个或多个相机一起使用。
在一些实施方式中,客户端设备120可以将在图像传感器处从一个或多个相机(或镜头)捕获的原始图像数据与从其他传感器(例如,加速度计、陀螺仪、位所传感器、深度传感器等)获得的其他数据进行组合以形成单个图像或者视频。例如,当客户端设备120在捕获多个图像帧的模式(例如,突发模式或快速连续捕获多个帧作为运动图像的运动模式、捕获视频的视频模式、将具有不同曝光量的多个图像组合成单个合成图像的高动态范围模式等)下操作时,可以利用从传感器获得的数据来稳定捕获的图像或视频。例如,加速度计或陀螺仪数据可以被利用以通过对准多个所捕获的帧来补偿例如由于在捕获期间正在捕获的用户的手抖而引起的相机运动。在一些实施方式中,所捕获的图像或视频可以被裁剪以产生例如具有降低的背景运动的稳定版本。
客户端设备120可以使用户能够在不同模式(例如,捕获单个帧的静态图像(或照片)模式、捕获多个帧的突发或运动图像模式、捕获包括多个帧的视频的视频模式等等)下捕获图像。在一些实施方式中,方法200可以在相机配置多个帧时在捕获时、在捕获完成之后、或者在稍后的时间(例如,当客户端设备120未被用户主动使用并且具有充分功率时)例如经由电池或经由耦合到外部电源来执行。
客户端设备120可以使用户能够在不同的用户界面中查看例如由客户端设备120捕获或与该用户相关联的图像或视频。例如,可以提供一种领先模式或幻灯片放映模式,其使用户能够一次查看单个图像或视频。在另一个示例中,可以提供画廊模式,该画廊模式使用户能够同时查看多个图像,例如,作为图像网格。
在一些实施方式中,客户端设备120可以执行方法400。在另一个示例中,客户端设备或服务器设备可以执行方法200。在一些实施方式中,方法200可以由服务器设备来实施。在一些实施方式中,例如,当客户端设备的用户操作相机以捕获视频、将视频下载到客户端设备、将视频上传到服务器等时,方法200可以被自动发起。
本文所指的图像可以包括具有像素的数字图像,所述像素具有一个或多个像素值(例如,颜色值、亮度值等)。图像可以是静态图像(例如,静态照片、具有单个帧的图像等)、或者运动图像(例如,包括多个帧的图像,诸如动画、动画GIF、其中一部分图像包括运动而其它部分是静态的电影胶片等等)。本文所指的视频包括具有或不具有音频的多个帧。在一些实施方式中,可以在视频的捕获期间修改一个或多个相机设置,例如,缩放水平、光圈等。在一些实施方式中,捕获视频的客户端设备可以在视频捕获期间被移动。如本文所指,文本可以包括字母数字字符、表情符号、符号或其他字符。
在框202中,检查在方法200的实现中是否已获得使用用户数据的用户同意(例如,用户许可)。例如,用户数据可以包括用户使用客户端捕获的图像或视频、用户例如使用客户端设备存储或访问的图像或视频、图像/视频元数据、与使用消息传递应用有关的用户数据、用户偏好、用户生物特征信息、用户特性(例如,身份、姓名、年龄、性别、职业等)、有关用户的社交网络和联系人的信息、用户创建或提交的社交和其他类型的行为和活动、内容、评分和意见、用户的当前位所、历史用户数据、用户生成、接收和/或访问的图像、用户查看或共享的图像等。在某些实施方式中,本文所述方法的一个或多个框可以使用这样的用户数据。
如果在方法200中已经从可以使用用户数据的相关用户中获得用户同意,则在框204中,确定可以利用如针对那些块所描述的用户数据的可能使用来实现本文方法的框,并且该方法继续进行到框212。如果未获得用户同意,则在框206中确定要在不使用用户数据的情况下实现框,并且该方法继续进行到框212。在一些实施方式中,如果未获得用户同意,则无需使用用户数据并使用合成数据和/或通用或可公开访问和可公开使用的数据来实施块。在一些实施方式中,如果未获得用户同意,则不执行方法200。例如,如果用户拒绝访问一个或多个视频的许可,则在执行框206之后不执行方法200或将停止方法200。
在框210中,获得视频。例如,视频可以是由用户使用客户端设备120-126中的任何一个捕获的视频。在另一个示例中,视频可以由用户,例如从视频共享网站、社交网络、在线视频库或其他在线资源下载,并存储在客户端设备或服务器设备上。在又一个示例中,视频可以由用户经由例如即时消息传递应用、聊天应用、富通信服务(RCS)应用的消息传递应用来下载。
在一些实施方式中,视频可以包括多个帧和对应的音频。视频的每一帧可以是包括多个像素的静止图像。在一些实施方式中,视频可以排除音频。视频可以具有帧速率,例如,捕获视频的帧速率。例如,帧速率可以是每秒24帧(fps)、25fps、30fps、50fps、60fps、72fps、100fps等。视频的帧速率可以指示视频每秒可用的图像帧数。在一些实施方式中,视频的多个帧中的一个或多个帧可以均与相应的时间戳相关联。
在一些实施方式中,视频可以是特定格式的流视频或视频文件。在一些实施方式中,多个视频帧可以与视频的音频分离地存储。在这些实施方式中,可以在视频中提供同步信息。同步信息可以用于在视频的回放期间将音频与多个视频帧同步。在一些实施方式中,音频可以以压缩格式存储。框210之后可以是框212。
在框212中,执行采样以选择视频的多个帧的子集。在一些实施方式中,可以基于目标帧速率(例如,5fps、6fps、10fps、20fps等)来执行采样。在一些实施方式中,可以在视频上迭代地执行采样,例如,每秒可以对应于一定数量的帧的视频,例如,25fps的视频25个帧,可以在子集中选择帧的相应子集。在一些实施方式中,采样可以包括随机采样,例如,可以每秒从视频中随机选择5个帧以获得目标帧速率下的多个帧的子集。在一些实施方式中,采样可以包括选择每第n帧以获得帧的子集,例如,可以选择25fps视频的每第5帧以获得5fps的目标帧速率。在不同的实施方式中,可以使用其他采样策略。
在一些实施方式中,目标帧速率小于视频的帧速率。与处理整个视频相比,对视频进行采样能够降低针对该方法的处理成本,因为在方法200的后续步骤中仅需要分析帧的子集。在一些实施方式中,当视频具有低帧速率(例如,5fps,6fps)时,目标帧速率可能等于视频的帧速率。框212之后可以是框214。
在框214中,可以针对在框212中选择的多个帧的子集中的每个帧提取相应的音频频谱图。可以从视频的音频中提取音频频谱图。在一些实施方式中,音频频谱图基于来自不仅仅是对应帧(例如,子集中的帧)的时间跨度的音频。例如,特定帧的音频频谱图可以包括与视频帧相对应的音频,该视频帧对应于特定帧之前的0.5秒。在另一示例中,用于特定帧的音频频谱图可以包括与视频帧相对应的音频,该视频帧对应于该特定帧之后的视频的随后0.5秒。在一些实施方式中,特定帧的音频频谱图可以基于特定持续时间(例如,0.5秒,1秒等)的来自先前和随后的视频帧的音频。在不同的实施方式中,针对对应于来自于用于对应于后续帧的音频的先前帧的音频,被用于音频频谱图的音频的特定持续时间可以是相同的(例如,前后0.5秒)或不同(例如,之前1秒、之后0.5秒)。在一些实施方式中,音频频谱图可以是音频的频域表示。在一些实施方式中,音频频谱图可以是梅尔频谱图。框214之后可以是框216。
在框216中,可以降低多个帧的子集的分辨率。例如,如果视频是高清晰度(例如,720p、1080p、2K、4K、8K等)视频,则可以对子集中的每个帧执行下采样以降低每个帧的分辨率。在一些实施方式中,下采样可以包括选择帧的像素的子集。在一些实施方式中,降低的分辨率的视频的分辨率可以是128×128像素。在一些实施方式中,垂直方向(帧的高度)上的像素的数量可以不同于水平方向(帧的宽度)上的像素的数量。例如,基于实现方法200的设备的可用计算能力,可以挑选分辨率降低的帧中的像素数量以优化性能。在一些实施方式中,下采样可以包括一个或多个帧的内插。在一些实施方式中,使用双线性插值来降低分辨率。在一些实施方式中,下采样可以包括内容感知的下采样。例如,与锐利区域或包括边缘的区域相比,图像帧的模糊区域可以更积极地进行下采样。在一些实施方式中,视频帧可以被裁剪。例如,可以将视频帧的分辨率降低到140x140像素,然后进行裁剪以将帧的大小调整为128x128像素。在一些实施方式中,执行裁剪以选择目标分辨率的随机补丁,例如,随机的128x128个像素。随机裁剪会导致原始视频帧的不同部分被包括在帧的子集中。这可以改善对局部遮挡的鲁棒性、视频中的快速主题运动等。降低帧的分辨率可以降低方法200的后续步骤的计算成本。在一些实施方式中,可以在降低多个帧的子集的分辨率之后执行一个或多个其他操作。例如,可以执行图像变换,例如,更改图像帧的色彩空间。例如,图像的色彩空间可以从RGB变成sRGB。框216之后可以是框218。
在框218中,可以将多个帧的子集划分为片段(也称为堆栈)。例如,每个片段或堆栈可以包括特定数量的帧,例如,3个帧、5个帧、10个帧等。这些片段或堆栈可以是序列的。例如,包括与时间戳t-1相对应的帧的第一片段在序列中后面可以是包括与时间戳t相对应的帧的第二片段,其继而在序列中后面可以是包括与时间戳t+1相对应的帧的第三片段。在一些实施方式中,这些片段可以为重叠的片段,例如,特定片段的一或多个帧可以与一个或多个其他片段是公共的。任何数量的帧都可以重叠,少于片段中帧的总数。例如,片段可以包括3个帧,其中一个帧与前一个片段重叠,而一个帧与下一个片段重叠。可以利用滑动窗口技术以将帧的子集划分为多个片段,例如,其中该窗口在第一位置处指定第一片段,该窗口沿方向(向前或向后)移动许多帧到第二位置,窗口在第二位置指定第二片段等。在一些实施方式中,片段可以是不重叠的段。框218之后可以是框220。
在框220中,可以将基于机器学习的门控模型(也称为门控模型)应用于片段。基于机器学习的门控模型可以包括一个或多个神经网络,例如,卷积神经网络、递归神经网络等和/或其他类型的模型,例如,基于启发式的模型、基于马尔可夫链技术的模型等等。可以训练门控模型以生成是否进一步分析视频以添加一个或多个视频注释的指示。例如,在一些实施方式中,门控模型可以接收片段中的帧作为输入,并生成指示作为输出。在另一个示例中,在一些实施方式中,门控模型可以接收片段中的帧和相应的音频频谱图作为输入,并生成指示作为输出。
在一些实施方式中,门控模型可以包括多个机器学习模型。例如,门控模型可以包括第一模型(也称为模型A),该模型包括第一卷积神经网络,其被训练以基于从输入视频中获得的多个视频帧的子集确定在提供给门控模型的输入视频中是否存在特定特征。例如,在一些实施方式中,特定特征可以包括人脸、对象的类型或移动的类型。在另一个示例中,第一模型可以进一步包括第二卷积神经网络,其被训练以基于与从输入视频中获得的多个视频帧的子集相对应的音频频谱图来确定在提供给门控模型的输入视频中是否存在特定特征。例如,在一些实施方式中,特定特征可以包括音频的类型。例如,音频的类型可以包括人类话语、音乐等。
例如,人脸可以是已知的脸部,例如,先前已经在捕捉或以其他方式获得作为输入视频的用户的图像库中的图像和/或视频中描绘的人的脸部。人脸还可以对应于著名人物,诸如演员、电视主持人、政客、名人、运动员等。在另一个示例中,对象的类型可以是任何对象,诸如蛋糕(例如,生日蛋糕)、游泳池、树、花、球拍或其他运动器材等。在又一示例中,运动的类型可以是跳跃、跑步、游泳、跳舞等。在一些实施方式中,人类话语可以基于例如基于用户图像库中的先前视频(如果已经获得用户同意)的已知语音签名的人的话语。在一些实施方式中,人类话语可以包括著名人物(诸如演员、电视主持人、政客、名人、运动员等)的话语。
在一些实施方式中,例如,当第一模型包括第一卷积神经网络和第二卷积神经网络时,第一模型可以进一步包括融合网络,该融合网络组合第一和第二卷积神经网络的输出以确定在提供给第一模型的输入视频中是否存在特定特征。在一些实施方式中,第一卷积神经网络可以包括多个层并且可以被训练以分析视频,例如,视频帧。在一些实施方式中,第二卷积神经网络可以包括多个层,并且可以被训练以分析音频,例如,与视频帧相对应的音频频谱图。在一些实施方式中,融合网络可以包括被训练以接收第一和第二卷积神经网络的输出作为输入并且提供特定特征存在于输入视频中的似然性作为输出的多个层。
在不同的实施方式中,第一模型可以仅包括第一卷积神经网络、仅第二卷积神经网络、第一和第二卷积神经网络两者、或者第一和第二卷积神经网络以及融合网络。在一些实施方式中,可以使用其他类型的神经网络或其他类型的机器学习模型来实施第一模型。
在一些实施方式中,门控模型可以包括第二模型,该第二模型接收存在特定特征的似然性(例如,第一模型的输出)作为输入并生成是否分析视频的指示。在一些实施方式中,可以使用启发式、递归神经网络或马尔可夫链分析技术中的一种或多种来实施第二模型。
在一些实施方式中,可以向门控模型提供一个或多个附加输入。例如,这样的附加输入可以包括代表一个或多个特定图像特征的嵌入,例如,诸如演员、电视主持人、政客、名人、运动员等著名人物的面部、模因、商业视频、动画或者合成视频等等。在另一示例中,这样的附加输入可以包括代表一个或多个特定音频特征的声音嵌入,例如,与诸如演员、电视主持人、政客、名人、运动员等著名人物的声音签名、商业音乐、非人类音频、人类话语等。此类附加输入指示即使在视频中描绘时也不会包括在注释中的特征。例如,如果视频来自用户的个人图像库,则用户可能不仅对描绘用户个人不认识该人的视频感兴趣(例如,与其他用户共享视频、按人搜索视频等),并且如果用户个人不认识该人,则指示人脸存在的注释是没有用的。因此,描绘由已知人(例如,家庭成员)执行的体育活动的视频对于标签很重要,而标记著名运动员的视频则可能没有用。提供代表不包括在注释中的图像特征的附加输入可以使门控模型能够检测到这些特征的存在并生成视频将不被进一步分析的指示。附加输入可以使门控模型能够检测模因、商业视频、动画或合成视频、或描绘著名个性的视频,并生成不需要进一步分析视频的指示。
在一些实施方式中,可以将从片段中的图像帧导出的数据作为附加输入提供给门控模型。例如,这样的数据可以包括图像帧中的能量、图像帧中的颜色分布等。在一些实施方式中,可以将从对应于该片段的音频导出的数据作为附加输入提供给门控模型。例如,这样的数据可以包括在音频中是否检测到人类话语。
在一些实施方式中,如果用户允许,则可以将与视频相关联的元数据作为附加输入提供给门控模型。元数据可能包括用户允许的因素,诸如视频的位所和/或捕获时间;是否经由社交网络、图像共享应用、消息传递应用等共享视频;与一个或多个视频帧相关联的深度信息;捕获视频的相机的一个或多个传感器(例如,加速度计、陀螺仪、光传感器或其他传感器)的传感器值;用户的身份(如果已经获得用户同意)等等。例如,如果通过指向上方的相机在室外位所在夜间捕获到视频,则此类元数据可能指示相机在捕获视频时指向天空,并且因此,该视频不太可能包括诸如人脸的特征。在另一个示例中,如果特定特征是人脸,并且门控模型在40m深度处检测到视频中尺寸为100x100个像素的人脸,则此类元数据可能是该人脸不太可能是真实人脸的指示,而是显示面部的广告牌或屏幕。
在一些实施方式中,可以将附加输入提供给第二模型。在这些实施方式中,附加输入可以包括下述中的一个或者多个:其中检测到该特定特征存在的多个帧的子集的特定帧的部分的标识、该特定特征出现在多个帧的子集中的持续时间、或者关于提前终止的启发式。例如,第二模型可以利用子集的特定帧的部分来确定是否在视频的不同帧(例如,片段或堆栈中的帧序列)中的相同位置处或附近检测到特定特征。例如,如果特定帧的部分是不同的,使得特定特征出现在序列帧中的不同位置处,则这种附加输入可以指示特定特征的假检测。
在另一个示例中,第二模型可以利用特定特征出现在多个帧的子集中的持续时间来确定特定特征是否是瞬态的,并且因此确定检测可能是假的。例如,如果持续时间短,例如,单个帧、两个帧或少量帧,则可以将特定特征视为瞬态的,并且因此,可以将检测视为假的。
在另一示例中,第二模型可以利用与通过门控模型对视频的分析的提前终止有关的启发式。这种提前终止会导致是否进一步分析视频的指示的即时输出。例如,可以基于大量的先前视频来获得这种启发式。例如,启发式可以指示当第一模型的输出指示存在特定特征的高似然性(例如,高于阈值,例如,80%、90%)时,可以从门控模型的分析中排除视频的进一步的片段,并且可以将指示输出作为要进一步分析视频以添加一个或多个视频注释的肯定指示。在另一个示例中,启发式可以指示当第一模型的多个连续片段的输出指示存在特定特征的似然性高(例如,与两个或多个连续片段对应的似然值满足阈值,例如,50%,60%等)时,可以排除视频的进一步的片段,并且可以将指示输出作为要进一步分析视频以添加一个或多个视频注释的肯定指示。
在框222中,评估由门控模型输出的指示,以确定是否分析视频以添加一个或多个视频注释。如果指示是要分析视频,则框222之后是框224。在这种情况下,门控模型不应用于序列中的一个或多个剩余片段(如果有的话)。换句话说,将门控模型应用于多个帧的子集终止,从而从通过门控模型分析排除序列中的一个或多个片段。以这种方式提前终止可以降低方法200的计算成本。如果指示不是要分析视频,则该方法前进到框230。
在框224中,以编程方式分析包括多个帧和对应音频(如果可用)的视频,以向该视频添加一个或多个视频注释。例如,视频注释可以包括一个或多个标签。例如,在一些实施方式中,标签可以指示视频中面部的存在、视频中特定类型的对象的存在、视频中特定类型的运动或活动的存在、或特定类型的音频的存在。以编程方式分析视频可以包括利用一种或多种高成本视频分析技术。例如,这样的技术可以包括应用一个或多个机器学习模型,该机器学习模型被训练为以高精度来检测面部、对象的类型、移动的类型、音频的类型等。这样的技术比门控模型具有更高的计算成本。视频分析技术还可以包括基于启发式的技术、对象识别技术等。在一些实施方式中,一个或多个标签可被存储为视频的一部分,例如,作为视频元数据。在一些实施方式中,一个或多个标签可以与视频相关联地存储在例如存储视频的标签的数据库中。
分析视频以添加一个或多个注释的计算成本可能比应用门控模型高。在一些实施方式中,方法200的总计算成本(包括采样、音频频谱图的提取、降低分辨率、应用门控模型以及获得指示)可以低于使用高成本视频分析技术来分析视频的计算成本。在一些实施方式中,方法200的计算成本可以比进一步分析视频的计算成本低得多,例如,少5倍、少10倍、少20倍、少100倍等。框224之后可以是框210,在框210中可以获得下一个视频。
在框230中,可以确定该序列中是否有一个或多个进一步的片段可用。如果有更多片段可用,则框230之后可以是框220,其中将门控模型应用于下一个片段。如果已经处理了所有片段,则框230之后可以是框210。框220、222和230的序列可以重复一次或多次,例如,直到来自框222的指示是视频将要进一步分析以添加注释,或者直到门控模型已应用于所有片段。
虽然已经参考图2中的各种框描述了方法200,但是可以理解,可以在不执行图2的一些框的情况下执行本公开中描述的技术。在各种实施方式中,可以并行执行或以与图2中所图示顺序不同的顺序执行方法200的框。在各种实施方式中,方法200的一些框可以被多次执行。
例如,在一些实施方式中,当视频具有低帧速率和/或低于阈值数目的帧时,不执行框212,并且帧的子集包括视频的所有帧。在另一示例中,在一些实施方式中,在先前已经提取音频频谱图的情况下,不执行框214,并且可以利用先前提取的音频频谱图。在又一示例中,在一些实施方式中,在视频的低分辨率版本可用(例如,预先计算并存储)的情况下,不执行框216,而是可以利用视频的可用低分辨率版本。在又一个示例中,在一些实施方式中,例如,如果视频持续时间短,则不执行框218,并且可以将门控模型应用于整个视频。在其他示例中,可以与框216和/或框218并行地执行框214。
在一些实施方式中,门控模型可以包括多个门控模型。在这些实施方式中,每个门控模型可以具有对应的目标帧速率。例如,第一门控模型可以具有5fps的第一目标帧速率,并且第二门控模型可以具有20fps的第二目标帧速率。在这些实施方式中,框212可以被执行多次,以基于目标帧速率来获得多个帧的多个不同子集。在这些实施方式中的一个或多个中,可以对应于特定目标帧速率多次执行框214-218,例如,针对多个帧的每个子集执行一次。在一种实施方式中,可以针对视频的所有帧执行框214和216,并且可以执行框212以从在框216中获得的分辨率降低的帧中选择帧的子集,随后是框218。
在一些实施方式中,可以执行方法200的多次迭代,例如,使用具有第一目标帧速率的第一门控模型执行第一迭代,并且使用具有第二目标帧速率的第二门控模型执行第二迭代。第一门控模型和第二门控模型可以是不同的门控模型,针对对应的目标帧速率训练每个门控模型。针对较低的目标帧速率,方法200的计算成本可以比针对较高的目标帧速率的更低。
例如,首先以低目标帧速率(例如,5fps)执行方法200的迭代可能是有利的,并且如果指示不分析视频,则以较高的目标帧速率(例如,20fps)执行方法200的另一迭代。在该示例中,方法200的执行多个视频的门控的计算成本可以更低,例如,比以针对多个视频的更高的目标帧速率执行方法200更低。
在一些实施方式中,如果指示要分析视频,则可以并行执行多个迭代,并终止进行中的迭代。在该示例中,执行多个视频的门控所需的时间可以比顺序地执行多个迭代的时间短。
在一些实施方式中,可以在客户端设备(例如,客户端设备120、122、124或126中的任何一个)上执行方法200。例如,方法200可以在具有执行方法200的计算能力的客户端设备(例如,具有足够计算能力的处理器,或者包括可以用于实现方法的GPU、ASIC或神经网络处理器)上执行。这些实现可以通过降低服务器设备上执行方法200的负载来提供技术优势。
在一些实施方式中,方法200可以在服务器设备(例如,服务器设备104)上执行。例如,如果捕获视频的客户端设备不具有执行方法200的计算能力,或者如果客户端设备电量不足,则可以在服务器设备上执行方法200。这些实施方式可以通过利用服务器设备执行门控技术来提供技术优势,从而降低客户端设备上的功耗。
参考图2所描述的门控技术的各种实施方式可以通过能够仅分析与肯定指示相关联的视频子集并且不分析其他视频,来降低向视频添加注释的总体计算成本。例如,如果注释对应于面部标签,则门控技术可以指示仅针对与基于与人脸存在于视频的子集中的似然性而获得的肯定指示相关联的视频子集执行分析。
图3图示根据一些实施方式的示例门控模型300的操作。门控模型300包括第一模型320(模型A)和第二模型330(模型B)。在一些实施方式中,门控模型300可以与特定目标帧速率(例如,5fps、10fps、20fps等)相关联。
第一模型320包括第一卷积神经网络(CNN)322、第二CNN 324和融合网络326。第一CNN 322、第二CNN 324和融合网络326可以均包括神经网络节点的多个层。
视频帧302的一个或多个堆栈被提供作为第一CNN 322的输入。例如,视频帧的堆栈可以基于多个视频帧的采样子集,其包括分辨率降低(下采样)的视频帧。可以通过基于门控模型的目标帧速率对视频进行采样来获得子集。
在一些实施方式中,可以将代表特定特征的一个或多个嵌入304提供作为第一CNN322的输入。例如,一个或多个嵌入可以是代表一个或者多个特征或者特征类型的的低维学习的矢量表示。可以使用经训练以执行特定任务(例如,将视频归类为描绘特定特征或不描绘特定特征)的神经网络来学习一个或多个嵌入。一个或多个嵌入可以是参数(例如,神经网络的权重)。可以通过最小化特定任务的损失函数来学习嵌入。例如,一个或多个嵌入304可以代表诸如演员、电视主持人、政客、名人、体育明星等著名人物的面部;模因(例如,通过消息传递或社交网络应用广泛散步或经由视频托管网站观看的视频);商业视频(例如,电影、电视、播客或其他视频内容);或动画或合成视频(例如,屏幕截图视频、从视频游戏中获取的视频等)。
第一CNN可以经由多个层的输入层接收视频帧302和嵌入304的堆栈作为输入。输入层可以连接到多个层中的第二层。在一些实施方式中,每个都接收前一层的输出作为输入并将输入提供给下一层的一个或多个附加层可以被包括在第一CNN 322中。第一CNN 322的最后一层可以是输出层。
第一CNN 322可以生成在视频中存在特定特征(例如,人脸、已知面部、移动类型等)的第一概率作为输出。第一CNN的输出可以是概率值、概率值的集合(例如,每个对应于视频帧的特定堆栈)或由第一CNN 322的输出层生成的矢量表示。第一CNN 322的输出被提供作为融合网络326的输入。
提供音频频谱图312的一个或多个堆栈作为第二CNN 324的输入。例如,可以基于多个视频帧的采样子集,例如,基于对应于先前的持续时间和/或随后的持续时间的帧,从音频中提取音频频谱图的堆栈。
在一些实施方式中,可以将代表特定特征的一个或多个嵌入314提供作为第二CNN324的输入。例如,一个或多个嵌入可以是代表一种或者多种类型的特征的低维学习向量表示。可以使用经训练以执行特定任务(例如,将音频归类为描绘特定特征或不描绘特定特征的神经网络)来学习一个或多个嵌入。一个或多个嵌入可以是参数(例如,神经网络的权重)。可以通过最小化特定任务的损失函数来学习嵌入。例如,一个或多个嵌入304可以代表与诸如演员、电视主持人、政客、名人、运动员等的著名人物相对应的已知声音签名、音频模因(例如,经由消息传递或社交网络应用广泛散步或经由音频托管网站收听的音频);商业音频(例如,音乐、播客或其他音频内容);或非人类音频(例如,自然声音、合成生成的声音等)。
第二CNN 324可以经由多个层的输入层接收音频频谱图312和嵌入314的堆栈作为输入。输入层可以连接到多个层中的第二层。在一些实施方式中,每个都接收前一层的输出作为输入并且向下一层提供输入的一个或多个附加层可以被包括在第二CNN 324中。第二CNN324的最后一层可以是输出层。
第二CNN 324可以生成在音频中存在特定特征(例如,人类话语、特定类型的音频等)的第一概率作为输出。第二CNN的输出可以是概率值、概率值集合(例如,每个对应于音频频谱图的特定堆栈)或第二CNN 324的输出层生成的矢量表示。第二CNN 324的输出被提供作为融合网络326的输入。
融合网络326可以包括神经网络节点的多个层。融合网络326可以经由多个层的输入层接收第一CNN 322和第二CNN 324的输出作为输入。输入层可以连接到多个层中的第二层。在一些实施方式中,融合网络326中可以包括一个或多个附加层,每个都接收前一层的输出作为输入并将输入提供给下一层。融合网络326的最后一层可以是输出层。训练融合网络326以基于第一CNN 322和第二CNN 324的输出来生成视频(328)中存在特定特征的似然性。在一些实施方式中,融合网络326可以仅包括两层-输入层和输出层(例如,第二层是输出层)。在一些实施方式中,融合网络326可以包括三层或更多层。将特定特征存在于视频中的似然性提供作为第二模型330的输入。
门控模型300进一步包括第二模型330(模型B)。在一些实施方式中,第二模型330可以包括基于启发式的模型、递归神经网络或马尔可夫链分析模型中的一个或多个。在不同的实施方式中,使用这些技术中的一种或多种来实施第二模型330。在第二模型330中包括两种或更多种类型的模型的实施方式中,第二模型的输出可以基于两种或更多种类型的模型的相应输出的加权组合。在一些实施方式中,可以利用其他合适的技术来实施第二模型330。
第二模型330基于视频中存在特定特征的似然性,生成是否分析视频以添加注释的指示。在一些实施方式中,在第一模型320为视频帧和/或音频频谱图的多个堆栈提供相应的似然性作为序列的情况下,第二模型被配置成以有序序列存储针对每个堆栈的所生成的指示。在这些实施方式中,指示的生成还基于所存储的针对有序序列中的一个或多个先前堆栈的指示。
在一些实施方式中,第二模型330可以确定存在特定特征的似然性(例如,如由第一模型所确定)是否满足阈值概率。在这些实施方式中,如果似然性不满足阈值,则第二模型可以输出否定指示,例如,不对视频进行分析以添加注释的指示。如果似然性满足阈值,则第二模型可以输出肯定指示,例如,用于分析视频以添加注释的指示。例如,阈值可以被设置为例如在第二模型的训练期间获得的启发式确定的概率值。对于不同的特定特征,阈值概率可以是不同的。可以基于第二模型的精度来确定阈值概率,第二模型的精度是基于训练数据来确定的。例如,可以将精度确定为真阳性(第二模型为其提供精确的肯定指示的视频)和假阳性(第二模型为其提供不精确的肯定指示的视频)的比例。可以基于接收器工作特性(ROC)曲线来选择真阳性和假阳性的比例,该曲线用于评估门控模型的特异性和敏感性之间的权衡。阈值的选取可以实现门控模型的执行速度与门控模型的精度之间的折衷。
在一些实施方式中,第二模型也可以利用其他启发式。例如,第二模型可以确定是否在特定时间窗内的至少阈值数目的帧中检测到特定特征。例如,第二模型可以确定是否在帧的堆栈中的至少阈值数目的帧(例如,在3个帧的堆栈中的2个或更多个帧、在5个帧的堆栈中的3个或更多个帧等等)中检测到特定特征。例如,将门控模型解耦成第一模型和第二模型允许适应第二模型,而无需花费计算费用来重新训练第一模型。
在一些实施方式中,第二模型可以确定在帧序列中的至少阈值数量的连续帧中是否检测到特定特征。例如,第二模型可以确定在五个帧的堆栈中的至少两个连续帧、七个帧的堆栈中的至少三个连续帧等中是否检测到特定特征。
在一些实施方式中,第二模型可以基于例如阈值概率、阈值帧数和特定时间窗以及生成指示的连续帧的阈值数目;或基于其中这些因素中的两个因素来利用启发式的组合(例如,加权组合)。
在一些实施方式中,可以在客户端设备120、122、124或126中的一个或多个上实施门控模型300例如作为图像管理应用156a的一部分。在一些实施方式中,门控模型300可以在服务器设备104上被实现例如作为图像管理应用156b的一部分。在一些实施方式中,门控模型300可以在服务器设备104上以及在客户端设备120、122、124或126中的一个或多个上实现。
在一些实施方式中,门控模型300可以被实现为可在通用处理器(例如,设备的中央处理单元(CPU))上执行的软件。在一些实施方式中,门控模型300可以被实现为可在专用处理器上执行的软件,所述专用处理器例如图形处理单元(GPU)、现场可编程门阵列(FPGA)、机器学习处理器等。在一些实施方式中,门控模型300可以被实现为专用硬件,例如,作为专用集成电路(ASIC)。
图4是图示根据一些实施方式的用于训练基于机器学习的门控模型以生成是否分析视频以添加与特定特征相对应的注释的指示的示例性方法400的流程图。在不同的实施方式中,特定特征包括人脸、对象的类型、移动的类型或者音频的类型。例如,方法400可以用于训练门控模型300,参考图3描述。
方法400可以在框402处开始。在框402中,获得训练集。训练集可以包括多个训练视频。每个训练视频可以包括多个帧。每个训练视频可以是对应的高分辨率视频的低分辨率采样版本。例如,高分辨率视频的每个帧可以是360像素宽(对应于标准清晰度)、720或1080像素宽(对应于高清晰度或HD)、2K/4K/8K像素宽(分别对应于2K、4K、以及8K的分辨率)或其他任何分辨率。与高分辨率视频相对应的训练视频可以是高分辨率视频的下采样(降低分辨率)版本,使得训练视频的帧的像素总数可以低于相应的高分辨率视频的像素总数。训练集中的训练视频包括其中存在特定特征的至少一个训练视频和其中不存在特定特征的至少一个训练视频。框402之后可以是框404。
训练数据可以进一步包括多个训练标签。每个训练标签可以指示在对应于多个训练视频中的一个或多个训练视频的高分辨率视频中存在一个或多个特定特征(要针对其训练门控模型)。例如,可以基于使用生成训练标签的视频分析技术以编程方式分析高分辨率视频来生成训练标签。在另一个示例中,可以基于手动用户输入来生成训练标签。
在一些实施方式中,多个训练视频中的一个或多个训练视频可以进一步包括与多个帧相对应的音频频谱图。在这些实施方式中,门控模型可以包括经训练以分析音频声谱图的卷积神经网络。在这些实施方式中,门控模型可以进一步包括融合网络,该融合网络接收第一卷积神经网络和第二卷积神经网络的输出作为输入,并生成在视频中存在特定特征的似然性。
在框404中,将门控模型的第一模型应用于训练集中的每个训练视频,以生成在训练视频中存在特定特征的似然性。框404之后可以是框406。
在框406中,基于训练视频中存在特定特征的似然性来应用门控模型的第二模型,以生成是否分析训练视频以添加与特定特征相对应的注释的指示。在一些实施方式中,门控模型可以生成具有相关联的置信度水平(例如,5%、10%、50%等)的指示。框406之后可以是框408。
在框408中,基于在框406中生成的指示以及与和训练视频相对应的高分辨率视频相关联的训练标签来生成反馈数据。例如,如果指示为负(不分析视频),并且训练标签指示存在特定特征,则反馈数据可以指示门控模型的输出错误(负反馈)。在另一个示例中,如果指示是肯定的(要分析视频),并且训练标签指示不存在特定特征,则反馈数据可以指示门控模型的输出是错误的(负反馈)。在另一示例中,如果指示是肯定的(要分析视频)并且训练标签指示存在特定特征,则反馈数据可以指示门控模型的输出是正确的(正反馈)。在另一个示例中,如果指示是否定的(不分析视频)并且训练标签指示不存在特定的功能,则反馈数据可以指示门控模型的输出正确(正反馈)。
尽管前面将反馈数据描述为正反馈或负反馈,但是可以以其他形式提供反馈数据。例如,在将反馈提供给门控模型之前,可以聚合从多个训练视频生成的反馈数据。例如,聚合可以包括提供指示,该指示是由模型针对特定特征生成的指示(和相关的置信度)具有较高的精度,而对于不同的特征具有较低的精度。例如,反馈数据可以指示当生成针对特征“人脸”和“微笑”的指示时门控模型具有较高的精度,而当生成针对特征“生日蛋糕”、“笑声”、或“跳跃”时门控模型具有较低的精度。
块408之后可以是块410。在块410中,反馈数据被提供作为门控模型的训练输入。在一些实施方式中,框410之后可以是框412。
在框412中,基于反馈数据自动更新门控模型。在一些实施方式中,更新门控模型包括自动调整第一模型的卷积神经网络的一个或多个节点的权重。在一些实施方式中,更新门控模型包括自动调整第一模型的卷积神经网络的一对或多对节点之间的连通性。
在一些实施方式中,每个训练视频的多个帧可以被划分为多个帧(或片段)的堆栈。每个堆栈可以包括一个或多个帧。在一些实施方式中,每个堆栈可以包括至少两个帧。可以以有序序列来组织多个堆栈。可以对多个帧堆栈中的每个帧堆栈顺序地执行训练门控模型。
在一些实施方式中,门控模型可以包括第一模型,该第一模型包括一个或多个卷积神经网络(CNN)。在训练门控模型之前,CNN可以包括组织为多层的多个节点。每层中的节点可以连接到前一层中的节点和随后层中的节点。第一层中的节点可以被配置成接受视频帧或音频频谱图作为输入。每个节点可以是任何类型的神经网络节点,例如,LSTM节点。
在训练之前,可以为每个节点指配初始权重,并且可以初始化神经网络的不同层的节点之间的连接。训练可以包括调整一个或多个节点的权重和/或一个或一对节点之间的连接。
在一些实施方式中,可以在初始训练阶段中排除训练集的子集。可以在初始训练阶段之后提供此子集,并且可以确定预测的精度(指示是否分析视频)。如果精度低于阈值,则可以使用来自训练集中的其他视频执行进一步的训练,以调整模型参数,直到模型正确地预测图像子集的运动分值为止。可以重复进一步的训练(第二阶段)任意次数,例如,直到模型达到令人满意的精度水平为止。在一些实施方式中,可以进一步修改训练后的模型,例如,压缩(以使用更少的节点或层),变换(例如,以在不同类型的硬件上可用)等。在一些实施方式中,例如,可以提供不同版本的模型,则可以优化模型的客户端版本的大小并降低计算复杂度,而可以优化模型的服务器版本的精度。
尽管已经参考图4中的各种框描述了方法400,但是可以理解,可以在不执行图4的一些框的情况下执行本公开中描述的技术。可以单独地执行框412,例如,可以以离线方式来执行对门控模型的更新。在一些实施方式中,图4所图示的一个或多个框可以被组合,例如,框410和412可以被组合,例如,用于在线训练。
此外,尽管已经参考训练集描述训练,但是可以在操作期间训练门控模型。例如,如果用户请求分析特定视频(例如,通过发起基于视频的创建(诸如视频拼贴、具有从多个视频获得的剪辑的故事等)的创作),则可以触发特定视频的视频分析。如果视频分析指示视频中存在特定特征,则可以将这种指示作为反馈数据来提供以训练门控模型。在一些实施方式中,用户可以手动提供注释,例如,将视频的一部分标记为具有特定特征。在用户许可的情况下,一些实施方式可以利用此类注释来训练门控模型。
图5图示示例视频和门控模型(例如,在推理阶段中使用的经训练的门控模型)的相应输出。具体而言,示出示例视频的三个帧堆栈(502、512和522)。三个帧堆栈是视频的多个帧的子集的一部分,并且分别对应于不同的时间点t-1、t和t+1。如在图5中看到的,视频的不同帧描绘人在秋千上(506、516、526)。在视频的捕获期间,如在视频帧502、512和522的堆栈中看到的,该人从后向前骑着秋千并展开他们的腿。这种运动可以由存储在深度图像中的深度数据指示,例如,当使用能够确定深度信息的相机捕获视频时。该视频还包括背景部分(504)。
在运动中,该人说出短语“This is fun(这很有趣)!”,其被存储为视频的音频部分。短语的第一部分(508)包括字词“This(这)”,并且对应于第一帧堆栈(502)。短语的第二部分(518)包括字词“is(是)”,并且对应于第二帧堆栈(512)。短语的第三部分(528)包括字词“fun(有趣)”,并且对应于第二帧堆栈(522)。获得对应于帧的不同堆栈的音频频谱图。视频可以包括在时间t-1之前和继时间t+1之后的其他帧,每个帧都有相应的音频频谱图。
如图5中所图示,将帧堆栈和相应的音频频谱图提供给第一模型540(模型A)。对于每个帧堆栈,第一模型540生成对该堆栈中存在特定特征的似然性的输出预测。在所图示的示例中,特定特征是人脸。如图5中所看到的,第一模型540生成分别对应于堆栈502、512和522的三个概率值(0.5、0.5、0.7)。
由第一模型540生成的似然值被提供作为第二模型542(模型B)的输入。第二模型针对每个帧堆栈生成是否分析视频以添加对应于特定特征的一个或多个注释(例如,“人脸”的标签)的指示。例如,基于堆栈502和512指示为“否”,并且基于堆栈522指示为“是”。例如,指示的生成可以基于启发式。可以通过训练第二模型542来获得启发式。在一些示例中,启发式可以基于单个帧堆栈和/或多个帧堆栈,例如,相邻或连续的堆栈或非连续的堆栈。
在图5中所图示的示例中,可以看到具有特定特征的存在的似然性>0.4的三个连续帧堆栈。在该示例中,针对第二模型542的简单启发式可以是“如果三个或更多连续堆栈与似然性>0.4相关联,则生成指示是,否则生成指示否”。还可以利用其他启发式,例如“如果任何帧堆栈与似然性>0.9相关联,则生成是”,“如果三个连续堆栈中的至少一个堆栈具有似然性<0.5,则生成否”等。在一些实施方式中,第二模型542可以将多个启发式评估为组合(例如,加权组合),并相应地生成指示。在一些实施方式中,第二模型542可以生成对应于不同特定特征的不同指示。例如,在图5中,“跳跃”的指示可以是“否”,而“摇摇摆摆”的指示可以是“是”。
图6是可以用于实现本文描述的一个或多个特征的示例设备600的框图。在一个示例中,设备600可以用于实现客户端设备,例如,图1中所示的客户端设备(120、122、124、126)中的任一个。替换地,设备600可实现服务器设备,例如,服务器104。在一些实施方式中,设备600可以是用于实现客户端设备、服务器设备、或客户端和服务器设备两者。设备600可以是如上所述的任何适合的计算机系统、服务器、或其它电子或硬件设备。
可以在可在任何类型的计算设备上执行的独立程序、在web浏览器上运行的程序、在移动计算设备(例如,手机、智能电话、平板计算机、可穿戴设备(腕表、臂章、珠宝、头饰、虚拟现实护目镜或眼镜、增强现实护目镜或眼镜、头戴式显示器等)、膝上型计算机等)上运行的移动应用(“app”)中运行本文描述的一种或多种方法。在一个示例中,可使用客户端/服务器架构,例如,移动计算设备(作为客户端设备)向服务器设备发送用户输入数据并且从服务器接收最终输出数据以进行输出(例如,以进行显示)。在另一示例中,可在移动计算设备上的移动app(和/或其它apps)内执行所有计算。在另一示例中,可在移动计算设备和一个或多个服务器设备之间拆分计算。
在一些实施方式中,设备600包括处理器602、存储器604和输入/输出(I/O)接口606以及相机616。处理器602可以是用于执行程序代码并且控制设备600的基本操作的一个或多个处理器和/或处理电路。“处理器”包括处理数据、信号或其它信息的任何适合的硬件系统、机制、或组件。处理器可以包括具有带一个或多个核心(例如,在单个核心、双核心、或多核心配置中)的通用中央处理单元(CPU)、多个处理单元(例如,在多处理器配置中)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、复杂可编程逻辑器件(CPLD)、用于实现功能性的专用电路、用于实现基于神经网络模型的处理的专用处理器、神经电路、针对矩阵计算(例如,矩阵乘法)而优化的处理器的系统、或其它系统。在一些实施方式中,处理器602可以包括实现神经网络处理的一个或多个协处理器。在一些实施方式中,处理器602可以是处理数据以产生概率输出的处理器,例如,由处理器602产生的输出可以是不精确的或者可以在距预期输出的范围内是准确的。处理不必限于特定地理位置或者具有时间限制。例如,处理器可以“实时地”、“离线”、在“批处理模式”等下执行其功能。可以通过不同的(或相同的)处理系统来在不同的时间并在不同的位置处执行处理的多个部分。计算机可以是与存储器通信的任何处理器。
存储器604通常被设置在设备600中以供由处理器602访问,并且可以是适合于存储由处理器执行的指令并被定位为与处理器602分开和/或与其集成在一起的任何适合的处理器可读存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、电可擦除只读存储器(EEPROM)、闪速存储器等。存储器604可存储由处理器602在服务器设备600上操作的软件,包括操作系统608、机器学习应用630、其它应用612、和应用数据614。其它应用612可以包括例如相机应用、图像库、图像库应用、数据显示引擎、、web托管引擎、图像显示引擎、通知引擎、社交网络引擎等等。在一些实施方式中,机器学习应用630和其它应用612可各自包括使得处理器602能够执行本文描述的功能(例如,图2和图4的方法中的一些或全部)的指令。
其他应用612可以包括例如相机应用、图像库应用、图像管理应用、图库应用、媒体显示应用、通信应用、web托管引擎或应用、地图绘制应用、媒体共享应用等等。本文公开的一种或多种方法可在若干环境和平台中操作,例如,作为可在任何类型的计算设备上运行的独立计算机程序、作为具有web页面的web应用、作为在移动计算设备上运行的移动应用(“app”)等。
在各种实施方式中,机器学习应用630可以利用贝叶斯分类器、支持向量机、神经网络或其它学习技术。在一些实施方式中,机器学习应用630可以包括训练模型634、推理引擎636、和数据632。在一些实施方式中,训练模型634可以是门控模型并且可以包括一个或多个模型。
在一些实施方式中,数据632可以包括训练数据,例如,用于生成训练模型634的数据。例如,训练数据可以包括任何类型的数据,诸如文本、图像、音频、视频等。例如,训练数据可以包括训练集,该训练集包括多个训练视频和相应的标签。可以从任何源获得训练数据,所述任何源例如具体地标记用于训练已提供许可以便用作用于机器学习的训练数据的数据等的数据储存库。在一个或多个用户许可使用他们相应的用户数据来训练机器学习模型(例如,训练模型634)的实施方式中,训练数据可以包括这种用户数据。在用户许可使用他们相应的用户数据的实施方式中,数据632可以包括许可的数据,诸如图像/视频或图像/视频元数据(例如,视频、与其他用户共享视频的数据、与视频相关联的标签、是否从视频生成了基于视频的创作(诸如视频拼贴、故事等)等)、通信(例如,电子邮件;诸如文本消息、语音、视频等这样的聊天数据)、文档(例如,电子表格、文本文档、演示文稿等)。
在一些实施方式中,训练数据可以包括为了训练目的而生成的合成数据,诸如不基于正被训练的上下文中的用户输入或活动的数据,例如,从模拟或者计算机生成的视频等生成的数据。在一些实施方式中,机器学习应用630排除数据632。例如,在这些实施方式中,可以例如在不同的设备上生成训练模型634,并且训练模型634被提供作为机器学习应用630的一部分。在各种实施方式中,训练模型634可以被提供作为包括模型结构或形式(例如,其定义了神经网络节点的数量和类型、节点之间的连通性以及节点组织成多层)和关联的权重的数据文件。推理引擎636可以读取用于训练模型634的数据文件并且基于在训练模型634中指定的模型结构或形式来实现具有节点连接、层、和权重的神经网络。
机器学习应用630还包括训练模型634。在一些实施方式中,训练模型可以包括一个或多个模型形式或结构。例如,模型形式或结构可包括任何类型的神经网络,诸如线性网络、实现多个层(例如,输入层与输出层之间的“隐藏层”,其中每个层是线性网络)的深度神经网络、卷积神经网络(例如,将输入数据拆分或分割多个部分或拼贴,使用一个或多个神经网络层来分别处理每个拼贴,并且聚合来自每个拼贴的处理的结果)、序列到序列神经网络(例如,接收顺序数据(诸如句子中的单词、视频中的帧等)作为输入并且产生结果序列作为输出的网络)等。
模型形式或结构可以指定各种节点之间的连接以及节点到层中的组织。例如,第一层(例如,输入层)的节点可以接收数据作为输入数据632或应用数据614。例如,当训练模型被用于例如包括多个帧的视频的分析时,这种数据可包括例如每节点一个或多个像素。后续中间层可以接收在模型形式或结构中指定的每连接的前一层的节点的输出作为输入。这些层也可以被称为隐藏层。最后层(例如,输出层)产生机器学习应用的输出。例如,输出可以是是否以编程方式分析视频以向视频添加一个或多个注释(例如,标签集)的指示。在一些实施方式中,模型形式或结构还指定每个层中的节点的数目和/或类型。
在不同的实施方式中,训练模型634可以包括一个或者多个模型。该模型中的一个或者多个可以包括被按照模型结构或形式布置成层的多个节点。在一些实施方式中,节点可以是没有存储器的计算节点,例如,被配置成处理输入的一个单元以产生输出的一个单元。由节点执行的计算可以包括例如将多个节点输入中的每一个乘以权重、获得加权和、并且利用偏置或截距值来调整加权和以产生节点输出。在一些实施方式中,由节点执行的计算还可包括将阶跃/激活函数应用于调整后的加权和。在一些实施方式中,阶跃/激活函数可以是非线性函数。在各种实施方式中,这种计算可以包括诸如矩阵乘法这样的操作。在一些实施方式中,可以并行执行由多个节点进行的计算,例如,使用多核心处理器的多个处理器核心、使用GPU的各个处理单元、或专用神经电路。在一些实施方式中,节点可以包括存储器,例如,可以能够在处理后续输入时存储并使用一个或多个较早的输入。例如,具有存储器的节点可以包括长短期记忆(LSTM)节点。LSTM节点可以使用存储器来维护许可节点像有限状态机(FSM)一样行动的“状态”。具有此类节点的模型在处理顺序数据(例如,句子或段落中的单词、视频中的帧、语音或其它音频等)时可以是有用的。例如,在门控模型中使用的基于启发式的模型可以存储一个或多个先前生成的指示,该指示与来自视频帧的堆栈的序列的先前帧堆栈相对应。
在一些实施方式中,训练模型634可以包括用于各个节点的嵌入或权重。例如,可以将模型作为像通过模型形式或结构所指定的那样组织成层的多个节点来启动。在初始化时,可以将相应的权重应用于按照模型形式连接的每对节点(例如,神经网络的连续层中的节点)之间的连接。例如,相应的权重可以被随机地指派或者初始化为默认值。然后可以例如使用数据632来训练模型,以产生结果。
例如,训练可以包括应用监督学习技术。在监督学习中,训练数据可包括多个输入(例如,视频集)和针对每个输入的对应预期输出(例如,用于每个视频的一个或多个标签)。基于模型的输出与预期输出的比较,例如以增加模型在被提供类似的输入时产生预期输出的概率的方式自动地调整权重的值。
在一些实施方式中,训练可以包括应用无监督学习技术。在无监督学习中,可以提供仅输入数据并且可以训练模型以区分数据,例如,以将输入数据聚类成多个组,其中每个组包括以某种方式类似的输入数据。例如,可以训练模型以确定是否要分析视频以添加一个或多个注释。
在各种实施方式中,训练模型包括与模型结构相对应的一组权重或嵌入。在省略了数据632的实施方式中,机器学习应用630可以包括基于在先训练(例如,由机器学习应用630的开发者、由第三方等进行)的训练模型634。在一些实施方式中,训练模型634可以包括固定的(例如,从提供权重的服务器下载的)一组权重。
机器学习应用630还包括推理引擎636。推理引擎636被配置成将训练模型634应用于数据,诸如应用数据614(例如,视频),以提供推理。在一些实施方式中,推理引擎636可以包括要由处理器602执行的软件代码。在一些实施方式中,推理引擎636可以指定使得处理器602能够应用训练模型的电路配置(例如,用于可编程处理器、用于现场可编程门阵列(FPGA)等)。在一些实施方式中,推理引擎636可以包括软件指令、硬件指令、或组合。在一些实施方式中,推理引擎636可以提供可由操作系统608和/或其它应用612使用来调用推理引擎636的应用编程接口(API),例如,以将训练模型634应用于应用数据614来生成推理。
分析例如具有高源分辨率并且具有特定持续时间的视频可能在计算上昂贵。如果注释对应于特定特征,则可能需要分析整个视频以确定视频(或视频的一个或多个片段)中是否存在一个或多个特定特征,并且可以将相应注释添加到视频中。例如,如果不存在特定特征,则该操作可能是浪费的。此外,在某些设备上,例如,在处理能力有限的设备、功率能力有限的设备(例如,电池供电的设备)上,该操作可能不可行或可能特别昂贵。此外,如果用户具有包括不包括特定特征的多个视频的视频库,则可以针对多个视频中的每个来运行这种昂贵操作。此外,当视频的仅一部分描绘特定特征时,分析整个视频可能浪费计算资源。
在这种情况下,机器学习应用630可以提供数个技术优势。例如,当训练模型634是应用于视频的门控模型时,该模型可以提供是否分析视频以添加一个或多个视频注释的指示。门控模型可以应用于视频的帧的低分辨率采样子集,其可以具有比分析原始的高分辨率视频更低的计算成本。然后,仅需要对门控模型为其生成肯定指示的此类视频进行分析,从而节省计算成本和功率。门控模型的使用还可以使视频注释能够在具有低计算能力或有限功率的设备上执行。此外,在一些实施方式中,来自门控模型的指示可以包括基于一个或多个片段中存在特定特征的似然性来标识视频的一个或多个片段以进行分析。在这些实施方式中,可以将视频的其他片段从分析中排除以添加视频注释,从而节省计算成本。
在一些实施方式中,当门控模型被实施为包括第一模型和第二模型的两阶段模型时,第一模型和第二模型可以被训练相互独立的。例如,可以训练第一模型以检测视频中存在特定特征的似然性。可以独立于第二模型的训练来执行该训练,例如,通过提供基于与训练视频相关联的训练标签而获得的反馈数据。例如,可以训练第二模型以生成是否分析视频以添加注释的指示。可以独立于第一模型的训练来执行该训练,例如,通过提供不同的似然值作为输入,并提供训练标签作为反馈数据。因此,可以整体上对每个模型与另一个模型分离进行评估和训练,并对门控模型的性能(例如,精度、计算成本等)进行相应的改进。
在一些实施方式中,可以以离线方式实现机器学习应用630。在这些实施方式中,训练模型634可以在第一阶段中被生成,并且作为机器学习应用630的一部分被提供。在一些实施方式中,可以以在线方式实现机器学习应用630。例如,在此类实施方式中,调用机器学习应用630的应用(例如,操作系统608、其它应用612中的一个或多个等)可以利用由机器学习应用630产生的推理,例如,将推理提供给用户,并且可以生成系统日志(例如,如果被用户许可,则为由用户基于推理采取的动作;或者如果被用作进一步处理的输入,则为进一步处理的结果)。系统日志可以被定期性地(例如,每小时、每月、每季度等)产生,并且可以在用户许可情况下用于更新训练模型634,例如,更新用于训练模型634的嵌入。
在一些实施方式中,可以以可适于在其上执行机器学习应用630的设备600的特定配置的方式实现机器学习应用630。例如,机器学习应用630可以确定利用可用计算资源(例如,处理器602)的计算图。例如,如果机器学习应用630作为分布式应用被实现在多个设备上,则机器学习应用630可以确定要以优化计算的方式在各个设备上执行的计算。在另一示例中,机器学习应用630可以确定处理器602包括具有特定数目的GPU核心(例如,1000个)的GPU并且相应地(例如,作为1000个各个进程或线程)实现推理引擎。
在一些实施方式中,机器学习应用630可以实现训练模型的集合。例如,训练模型634可以包括各自适用于相同的输入数据的多个训练模型。在这些实施方式中,机器学习应用630可以例如基于可用计算资源、具有先验推理的成功率等来选取特定训练模型。在一些实施方式中,机器学习应用630可以执行推理引擎636,使得多个训练模型被应用。在这些实施方式中,机器学习应用630可以组合来自应用各个模型的输出,例如,使用对来自应用每个训练模型的各个输出进行评分的投票技术或者通过选取一个或多个特定输出。另外,在这些实施方式中,机器学习应用可以应用用于应用各个训练模型的时间阈值(例如,0.5ms)并且仅利用在该时间阈值内可用的那些各个输出。可以不利用(例如,丢弃)在时间阈值内未接收到的输出。例如,当在例如通过操作系统608或一个或多个应用612调用机器学习应用的同时指定了时间限制时,此类方法可以是适合的。
例如,门控模型可以被实现为训练模型的集合,其中每个模型具有不同的目标帧速率和相关的计算成本。例如,门控模型可以实现针对5fps、10fps和20fps的帧速率训练的模型,其中与具有较低帧速率的模型相比,具有帧速率较高的模型与更高的计算成本相关联。在另一个示例中,门控模型可以实现用片段或堆栈中的不同数量的帧训练的模型,例如,包括3个帧的堆栈、包括5个帧的堆栈、包括10个帧的堆栈等。在一些实施方式中,通过具有大量的帧的堆栈训练的模型可以与通过较少数量的帧的堆栈建模的更大的计算成本相关联。如果计算成本低的模型以高置信度生成指示,则总体中的其他模型可能不会应用于特定视频,如果并行执行,或者可能会终止。
在一些实施方式中,机器学习应用630可以基于由调用应用指定的格式来产生输出,例如,操作系统608或一个或多个应用612。在一些实施方式中,调用应用可以是另一机器学习应用。例如,此类配置可以被用在生成对抗网络中,其中使用来自机器学习应用630的输出来训练调用机器学习应用并且反之亦然。
存储器604中的软件中的任一个可替换地被存储在任何其它适合的存储位置或计算机可读介质上。此外,存储器604(和/或其它连接的存储设备)可存储一个或多个消息、一个或多个分类法、电子百科全书、词典、同义词库、知识库、消息数据、语法、用户偏好、和/或本文描述的特征中使用的其它指令和数据。存储器604和任何其它类型的存储装置(磁盘、光盘、磁带、或其它有形介质)可被认为是“存储装置”或“存储设备”。
I/O接口606可提供用于使得能够将服务器设备600与其它系统和设备对接的功能。对接设备可作为设备600的一部分被包括或者可以是分开的并与设备600进行通信。例如,网络通信设备、存储设备(例如,存储器和/或数据库106)、和输入/输出设备可经由I/O接口606通信。在一些实施方式中,I/O接口可连接到接口设备,诸如输入设备(键盘、指点设备、触摸屏、麦克风、相机、扫描仪、传感器等)和/或输出设备(显示设备、扬声器设备、打印机、电机等)。
可连接到I/O接口606的对接设备的一些示例可包括一个或多个显示设备620,所述显示设备620可用于显示内容,例如,图像、视频、和/或如本文所描述的输出应用的用户界面。显示设备620可经由本地连接(例如,显示总线)和/或经由联网连接来连接到设备600并且可以是任何适合的显示设备。显示设备620可包括任何适合的显示设备,诸如LCD、LED、或等离子体显示屏幕、CRT、电视、监视器、触摸屏、3-D显示屏幕、或其它视觉显示设备。例如,显示设备620可以是在移动设备上提供的平板显示屏幕、在护目镜或头戴式耳机设备中提供的多个显示屏幕、或用于计算机设备的监视器屏幕。
I/O接口606可与其它输入和输出设备对接。一些示例包括可捕获图像的一个或多个相机。一些实施方式可提供用于捕获声音(例如,作为捕获的图像、话音命令等的一部分)的麦克风、用于输出声音的音频扬声器设备、或其它输入和输出设备。
相机616可以是可以捕获包括多个帧的视频的任何类型的相机。如本文所使用的相机可以包括任何图像捕获设备。在一些实施方式中,相机616可以包括具有不同能力的多个镜头,例如,正面对背面、不同的缩放水平、捕获的图像的图像分辨率等。在一些实施方式中,设备600可以包括一个或多个传感器,诸如深度传感器、加速计、位置传感器(例如,GPS)、陀螺仪等。在一些实施方式中,一个或多个传感器可以与相机一起操作以获得与使用相机拍摄的视频的不同帧对应的传感器读数。
为了便于图示,图6示出了用于处理器602、存储器604、I/O接口606、相机616、和软件框608、612和630中的每一个的一个框。这些框可以表示一个或多个处理器或处理电路、操作系统、存储器、I/O接口、应用、和/或软件模块。在其它实施方式中,设备600可以不具有所示的所有组件并且/或者代替本文所示的那些元件或者除了本文所示的那些元件之外还可以具有包括其它类型的元件的其它元件。虽然一些组件被描述为执行如本文的一些实施方式中所描述的框和操作,但是环境100、设备600、类似的系统的组件中的任何适合的组件或组合、或与这样的系统相关联的任何适合的一个或多个处理器可以执行所描述的框和操作。
本文描述的方法可通过可在计算机上执行的计算机程序指令或代码来实现。例如,代码可由一个或多个数字处理器(例如,微处理器或其它处理电路)实现并且可被存储在包括非暂时性计算机可读介质(例如,存储介质)的计算机程序产品上,所述非暂时性计算机可读介质诸如磁、光学、电磁、或半导体存储介质,包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、硬磁盘、光盘、固态存储器驱动器等。程序指令还可被包含在电子信号中并作为电子信号被提供,例如以从服务器(例如,分布式系统和/或云计算系统)递送的软件即服务(SaaS)的形式提供。替换地,一种或多种方法可用硬件(逻辑门等)或者用硬件和软件的组合加以实现。示例硬件可以是可编程处理器(例如,现场可编程门阵列(FPGA)、复杂可编程逻辑器件)、通用处理器、图形处理器、专用集成电路(ASIC)等。可将一种或多种方法作为在系统上运行的应用的一部分或组件、或者作为与其它应用和操作系统相结合地运行的应用或软件来执行。
尽管已相对于说明书的特定实施方式描述了说明书,但是这些特定实施方式仅仅是说明性的,而不是限制性的。示例中图示的概念可以被应用于其它示例和实施方式。
在这里讨论的某些实施方式可以收集或使用关于用户的个人信息的情况下(例如,用户数据、关于用户的社交网络的信息、用户位所和在该位所的时间、用户的生物特征信息、用户的活动和人口统计信息),为用户提供一个或多个机会以控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何收集、存储和使用有关用户的信息。即,本文所讨论的系统和方法特别是在接收到来自相关用户要这样做的显式授权后收集、存储和/或使用用户个人信息。
例如,向用户提供对程序或特征是否收集关于该特定用户或与程序或特征相关的其他用户的用户信息的控制。向要为其收集个人信息的每个用户呈现一个或多个选项,以允许控制与该用户有关的信息收集,以提供关于是否收集信息以及信息的哪些部分要被收集的许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。另外,在存储或使用某些数据之前,可能会以一种或多种方式处理某些数据,使得移除个人可识别信息。作为一个示例,可以处理用户的身份,使得不能确定个人可识别信息。作为另一示例,用户的地理位所可以被概括为更大的区域,使得不能确定用户的特定位所。
注意的是,如将为本领域的技术人员所知的那样,可以将本公开中描述的功能块、操作、特征、方法、设备和系统集成或者划分到系统、设备和功能块的不同组合中。可以使用任何适合的编程语言和编程技术来实现特定实施方式的例行程序。可以采用不同的编程技术,例如过程的或面向对象的。例行程序可以在单个处理设备或多个处理器上执行。尽管可以以具体次序呈现步骤、操作或计算,但是可以在不同的特定实施方式中改变该次序。在一些实施方式中,可以同时执行在本说明书中示出为有顺序的多个步骤或操作。

Claims (20)

1.一种执行用于视频分析的门控的计算机实现的方法,所述方法包括:
获得包括多个帧和对应的音频的视频;
基于小于或等于所述视频的帧速率的目标帧速率来执行采样以选择所述多个帧的子集;
提取所述多个帧的所述子集中的每个帧的相应的音频频谱图;
降低所述多个帧的所述子集的分辨率;
在降低所述分辨率之后,将所述视频划分成多个片段,每个片段包括多个帧;
将基于机器学习的门控模型应用于所述多个帧的所述子集和对应的音频频谱图,其中,在所述多个片段上按序列迭代地执行应用所述门控模型;以及
获得是否分析所述视频以添加一个或多个视频注释的指示作为所述门控模型的输出,其中,在每次迭代时生成所述指示,并且其中,如果在特定迭代时的所述指示是要分析所述视频,则终止所述门控模型的应用,使得排除所述多个片段中的一个或多个片段。
2.根据权利要求1所述的计算机实现的方法,其中,所述多个片段中的每一片段与所述多个片段中的另一片段重叠。
3.根据权利要求1所述的计算机实现的方法,其中,所述门控模型被训练以确定在提供给所述门控模型的输入视频中是否存在特定特征。
4.根据权利要求3所述的计算机实现的方法,其中,所述特定特征包括人脸、对象的类型、移动的类型或音频的类型中的至少一个。
5.根据权利要求1所述的计算机实现的方法,其中,应用所述门控模型包括:
应用确定存在特定特征的似然性的第一模型;和
应用第二模型,所述第二模型接收存在所述特定特征的似然性作为输入并生成是否分析所述视频的所述指示。
6.根据权利要求5所述的计算机实现的方法,其中,所述第一模型包括:
第一卷积神经网络,所述第一卷积神经网络包括经训练以分析视频的多个层;
第二卷积神经网络,所述第二卷积神经网络包括经训练以分析音频的多个层;以及
包括多个层的融合网络,所述融合网络接收所述第一卷积神经网络和所述第二卷积神经网络的输出作为输入并且向所述第二模型提供存在所述特定特征的似然性。
7.根据权利要求5所述的计算机实现的方法,其中,所述第二模型是使用启发式、递归神经网络或马尔可夫链分析技术中的一种或多种来实施的。
8.根据权利要求5所述的计算机实现的方法,进一步包括向所述第二模型提供附加输入,其中所述附加输入包括下述中的一个或者多个:
其中所述特定特征被检测为存在的所述多个帧的子集中的特定帧的一部分的标识;
其中所述特定特征出现在所述多个帧的子集中的持续时间;或
有关提前终止的启发式,
并且其中,所述第二模型利用所述附加输入来生成所述指示。
9.根据权利要求1所述的计算机实现的方法,进一步包括:当所述指示是要分析所述视频时,以编程方式分析所述视频以添加所述一个或多个视频注释,其中所述视频注释包括一个或多个标签,所述一个或多个标签指示面部、特定类型的对象、特定类型的移动或特定类型的音频中的一个或多个在所述视频中的存在。
10.一种执行用于视频分析的门控的计算设备,所述计算设备包括:
处理器;和
存储器,具有存储在所述存储器上的指令,所述指令在由所述处理器执行时使所述处理器执行包括下述的操作:
获得包括多个帧和对应的音频的视频;
基于小于或等于所述视频的帧速率的目标帧速率来执行采样以选择所述多个帧的子集;
提取所述多个帧的所述子集中的每个帧的相应的音频频谱图;
降低所述多个帧的所述子集的分辨率;
在降低所述分辨率之后,将所述视频划分成多个片段,每个片段包括多个帧;
将基于机器学习的门控模型应用于所述多个帧的所述子集和对应的音频频谱图,其中,在所述多个片段上按序列迭代地执行应用所述门控模型;以及
获得是否分析所述视频以添加一个或多个视频注释的指示作为所述门控模型的输出,其中,在每次迭代时生成所述指示,并且其中,如果在特定迭代时的所述指示是要分析所述视频,则终止所述门控模型的应用,使得排除所述多个片段中的一个或多个片段。
11.根据权利要求10所述的计算设备,其中,执行将所述视频划分成多个片段的操作,使得所述多个片段中的每一片段与所述多个片段中的另一片段重叠。
12.根据权利要求10所述的计算设备,其中,所述门控模型被训练以确定在提供给所述门控模型的输入视频中是否存在特定特征。
13.根据权利要求12所述的计算设备,其中,所述特定特征包括人脸、对象的类型、移动的类型或音频的类型中的至少一个。
14.根据权利要求10所述的计算设备,其中,应用所述门控模型包括:
应用确定存在特定特征的似然性的第一模型;和
应用第二模型,所述第二模型接收存在所述特定特征的似然性作为输入并生成是否分析所述视频的所述指示。
15.根据权利要求14所述的计算设备,其中,所述第一模型包括:
第一卷积神经网络,所述第一卷积神经网络包括经训练以分析视频的多个层;
第二卷积神经网络,所述第二卷积神经网络包括经训练以分析音频的多个层;以及
包括多个层的融合网络,所述融合网络接收所述第一卷积神经网络和所述第二卷积神经网络的输出作为输入并且向所述第二模型提供存在所述特定特征的似然性。
16.一种其上存储有指令的非暂时性计算机可读介质,所述指令在由计算机执行时使所述计算机执行包括下述的操作:
获得包括多个帧和对应的音频的视频;
基于小于或等于所述视频的帧速率的目标帧速率来执行采样以选择所述多个帧的子集;
提取所述多个帧的所述子集中的每个帧的相应的音频频谱图;
降低所述多个帧的所述子集的分辨率;
在降低所述分辨率之后,将所述视频划分成多个片段,每个片段包括多个帧;
将基于机器学习的门控模型应用于所述多个帧的所述子集和对应的音频频谱图,其中,在所述多个片段上按序列迭代地执行应用所述门控模型;以及
获得是否分析所述视频以添加一个或多个视频注释的指示作为所述门控模型的输出,其中,在每次迭代时生成所述指示,并且其中,如果在特定迭代时的所述指示是要分析所述视频,则终止所述门控模型的应用,使得排除所述多个片段中的一个或多个片段。
17.根据权利要求16所述的非暂时性计算机可读介质,其中,执行将所述视频划分成多个片段的操作,使得所述多个片段中的每一片段与所述多个片段中的另一片段重叠。
18.根据权利要求16所述的非暂时性计算机可读介质,其中,所述门控模型被训练以确定在提供给所述门控模型的输入视频中是否存在特定特征。
19.根据权利要求16所述的非暂时性计算机可读介质,其中,应用所述门控模型的操作包括:
应用确定存在特定特征的似然性的第一模型;和
应用第二模型,所述第二模型接收存在所述特定特征的似然性作为输入并生成是否分析所述视频的所述指示。
20.根据权利要求19所述的非暂时性计算机可读介质,其中,所述第一模型包括:
第一卷积神经网络,所述第一卷积神经网络包括经训练以分析视频的多个层;
第二卷积神经网络,所述第二卷积神经网络包括经训练以分析音频的多个层;以及
包括多个层的融合网络,所述融合网络接收所述第一卷积神经网络和所述第二卷积神经网络的输出作为输入并且向所述第二模型提供存在所述特定特征的似然性。
CN201980060091.9A 2019-03-13 2019-09-27 一种执行用于视频分析的门控的计算机实现的方法、计算设备及计算机可读介质 Active CN112740709B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/352,605 2019-03-13
US16/352,605 US10984246B2 (en) 2019-03-13 2019-03-13 Gating model for video analysis
PCT/US2019/053501 WO2020185256A1 (en) 2019-03-13 2019-09-27 Gating model for video analysis

Publications (2)

Publication Number Publication Date
CN112740709A CN112740709A (zh) 2021-04-30
CN112740709B true CN112740709B (zh) 2023-08-29

Family

ID=68296667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980060091.9A Active CN112740709B (zh) 2019-03-13 2019-09-27 一种执行用于视频分析的门控的计算机实现的方法、计算设备及计算机可读介质

Country Status (6)

Country Link
US (2) US10984246B2 (zh)
EP (1) EP3735777A1 (zh)
JP (1) JP7228682B2 (zh)
KR (1) KR102297393B1 (zh)
CN (1) CN112740709B (zh)
WO (1) WO2020185256A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210201124A1 (en) * 2018-08-27 2021-07-01 Neuralmagic Inc. Systems and methods for neural network convolutional layer matrix multiplication using cache memory
US10984246B2 (en) 2019-03-13 2021-04-20 Google Llc Gating model for video analysis
US11363315B2 (en) * 2019-06-25 2022-06-14 At&T Intellectual Property I, L.P. Video object tagging based on machine learning
CN110543943B (zh) * 2019-09-10 2022-03-25 北京百度网讯科技有限公司 一种网络融合方法及装置、电子设备、存储介质
US11455531B2 (en) * 2019-10-15 2022-09-27 Siemens Aktiengesellschaft Trustworthy predictions using deep neural networks based on adversarial calibration
US20210329306A1 (en) * 2020-04-15 2021-10-21 Nvidia Corporation Video compression using neural networks
SG10202006357UA (en) * 2020-07-01 2020-09-29 Alipay Labs Singapore Pte Ltd A Document Identification Method and System
US11776273B1 (en) * 2020-11-30 2023-10-03 Amazon Technologies, Inc. Ensemble of machine learning models for automatic scene change detection
CN114581966A (zh) * 2020-11-30 2022-06-03 伊姆西Ip控股有限责任公司 用于信息处理的方法、电子设备和计算机程序产品
CN112528109B (zh) * 2020-12-01 2023-10-27 科大讯飞(北京)有限公司 一种数据分类方法、装置、设备及存储介质
US20220253990A1 (en) * 2021-02-10 2022-08-11 Adobe Inc. Media enhancement using discriminative and generative models with feedback
US11748988B1 (en) 2021-04-21 2023-09-05 Amazon Technologies, Inc. Shot contras five self-supervised learning of a plurality of machine learning models for video analysis applications
EP4089574A1 (en) * 2021-05-14 2022-11-16 Fyma OÜ A method and system for gathering information of an object moving in an area of interest
KR102401955B1 (ko) 2021-05-20 2022-05-25 (주)에어패스 Fsm 특성을 활용한 ar 스포츠 게임 콘텐츠 제공시스템
US11671551B2 (en) * 2021-05-24 2023-06-06 Sony Group Corporation Synchronization of multi-device image data using multimodal sensor data
US20230164389A1 (en) * 2021-11-19 2023-05-25 Qualcomm Incorporated Analyzing Content Of A Media Presentation
US11804245B2 (en) * 2022-01-21 2023-10-31 Kyndryl, Inc. Video data size reduction
WO2023243754A1 (ko) * 2022-06-17 2023-12-21 주식회사 엔씨소프트 지정된 모션이 캡쳐된 시점을 추출하는 전자 장치 및 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101311746A (zh) * 2007-05-24 2008-11-26 李世雄 可示意障碍物距离的车用障碍物检测装置
US9176987B1 (en) * 2014-08-26 2015-11-03 TCL Research America Inc. Automatic face annotation method and system
CN107632961A (zh) * 2017-07-12 2018-01-26 天津大学 基于全相位谱分析的多频内插迭代频率估计方法及估计器
CN107960125A (zh) * 2015-06-24 2018-04-24 谷歌有限责任公司 选择视频的代表性视频帧
CN109218622A (zh) * 2018-11-01 2019-01-15 华勤通讯技术有限公司 照片的生成方法和设备
CN109389055A (zh) * 2018-09-21 2019-02-26 西安电子科技大学 基于混合卷积和注意力机制的视频分类方法

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8706655B1 (en) * 2011-06-03 2014-04-22 Google Inc. Machine learned classifiers for rating the content quality in videos using panels of human viewers
US9118886B2 (en) * 2012-07-18 2015-08-25 Hulu, LLC Annotating general objects in video
TWI490827B (zh) * 2013-05-13 2015-07-01 Univ Nat Cheng Kung 即時影片註記學習系統及其方法
US20150032449A1 (en) * 2013-07-26 2015-01-29 Nuance Communications, Inc. Method and Apparatus for Using Convolutional Neural Networks in Speech Recognition
US9620169B1 (en) * 2013-07-26 2017-04-11 Dreamtek, Inc. Systems and methods for creating a processed video output
EP2833325A1 (en) 2013-07-30 2015-02-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for resource-adaptive object detection and tracking
US9330171B1 (en) * 2013-10-17 2016-05-03 Google Inc. Video annotation using deep network architectures
US10467287B2 (en) * 2013-12-12 2019-11-05 Google Llc Systems and methods for automatically suggesting media accompaniments based on identified media content
US20160080835A1 (en) * 2014-02-24 2016-03-17 Lyve Minds, Inc. Synopsis video creation based on video metadata
US9646227B2 (en) 2014-07-29 2017-05-09 Microsoft Technology Licensing, Llc Computerized machine learning of interesting video sections
US10303768B2 (en) 2015-05-04 2019-05-28 Sri International Exploiting multi-modal affect and semantics to assess the persuasiveness of a video
US10299017B2 (en) * 2015-09-14 2019-05-21 Logitech Europe S.A. Video searching for filtered and tagged motion
US10733979B2 (en) * 2015-10-09 2020-08-04 Google Llc Latency constraints for acoustic modeling
US20170140260A1 (en) 2015-11-17 2017-05-18 RCRDCLUB Corporation Content filtering with convolutional neural networks
US20170178346A1 (en) 2015-12-16 2017-06-22 High School Cube, Llc Neural network architecture for analyzing video data
US10381022B1 (en) * 2015-12-23 2019-08-13 Google Llc Audio classifier
US10390082B2 (en) * 2016-04-01 2019-08-20 Oath Inc. Computerized system and method for automatically detecting and rendering highlights from streaming videos
CN107273782B (zh) * 2016-04-08 2022-12-16 微软技术许可有限责任公司 使用递归神经网络的在线动作检测
US9830516B1 (en) * 2016-07-07 2017-11-28 Videoken, Inc. Joint temporal segmentation and classification of user activities in egocentric videos
US20180018970A1 (en) * 2016-07-15 2018-01-18 Google Inc. Neural network for recognition of signals in multiple sensory domains
EP3767547A1 (en) * 2016-09-06 2021-01-20 Deepmind Technologies Limited Processing sequences using convolutional neural networks
US10152637B2 (en) * 2016-09-14 2018-12-11 Canon Kabushiki Kaisha Temporal segmentation of actions using context features
US10430661B2 (en) 2016-12-20 2019-10-01 Adobe Inc. Generating a compact video feature representation in a digital medium environment
US10445582B2 (en) * 2016-12-20 2019-10-15 Canon Kabushiki Kaisha Tree structured CRF with unary potential function using action unit features of other segments as context feature
US11044520B2 (en) * 2016-12-29 2021-06-22 Telefonaktiebolaget Lm Ericsson (Publ) Handling of video segments in a video stream
US20180204064A1 (en) * 2017-01-19 2018-07-19 Adrienne Rebecca Tran Method and system for annotating video of test subjects for behavior classification and analysis
EP3625677A4 (en) 2017-05-14 2021-04-21 Digital Reasoning Systems, Inc. SYSTEMS AND METHODS FOR QUICKLY CREATING, MANAGING AND SHARING LEARNING MODELS
US20180373980A1 (en) * 2017-06-27 2018-12-27 drive.ai Inc. Method for training and refining an artificial intelligence
US10509988B2 (en) * 2017-08-16 2019-12-17 Microsoft Technology Licensing, Llc Crime scene analysis using machine learning
US10628486B2 (en) * 2017-11-15 2020-04-21 Google Llc Partitioning videos
US10740394B2 (en) * 2018-01-18 2020-08-11 Oath Inc. Machine-in-the-loop, image-to-video computer vision bootstrapping
US10846522B2 (en) * 2018-10-16 2020-11-24 Google Llc Speaking classification using audio-visual data
EP3654249A1 (en) * 2018-11-15 2020-05-20 Snips Dilated convolutions and gating for efficient keyword spotting
US11636681B2 (en) * 2018-11-21 2023-04-25 Meta Platforms, Inc. Anticipating future video based on present video
CN109740670B (zh) * 2019-01-02 2022-01-11 京东方科技集团股份有限公司 视频分类的方法及装置
US10984246B2 (en) * 2019-03-13 2021-04-20 Google Llc Gating model for video analysis
US11151386B1 (en) * 2020-03-04 2021-10-19 Amazon Technologies, Inc. Automated identification and tagging of video content
CN111797771B (zh) * 2020-07-07 2022-09-09 南京理工大学 一种基于迭代学习的弱监督视频行为检测方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101311746A (zh) * 2007-05-24 2008-11-26 李世雄 可示意障碍物距离的车用障碍物检测装置
US9176987B1 (en) * 2014-08-26 2015-11-03 TCL Research America Inc. Automatic face annotation method and system
CN107960125A (zh) * 2015-06-24 2018-04-24 谷歌有限责任公司 选择视频的代表性视频帧
CN107632961A (zh) * 2017-07-12 2018-01-26 天津大学 基于全相位谱分析的多频内插迭代频率估计方法及估计器
CN109389055A (zh) * 2018-09-21 2019-02-26 西安电子科技大学 基于混合卷积和注意力机制的视频分类方法
CN109218622A (zh) * 2018-11-01 2019-01-15 华勤通讯技术有限公司 照片的生成方法和设备

Also Published As

Publication number Publication date
WO2020185256A1 (en) 2020-09-17
US20210216778A1 (en) 2021-07-15
KR20210031756A (ko) 2021-03-22
US10984246B2 (en) 2021-04-20
JP2022523606A (ja) 2022-04-26
KR102297393B1 (ko) 2021-09-02
JP7228682B2 (ja) 2023-02-24
US11587319B2 (en) 2023-02-21
EP3735777A1 (en) 2020-11-11
CN112740709A (zh) 2021-04-30
US20200293783A1 (en) 2020-09-17

Similar Documents

Publication Publication Date Title
CN112740709B (zh) 一种执行用于视频分析的门控的计算机实现的方法、计算设备及计算机可读介质
US11231838B2 (en) Image display with selective depiction of motion
US11949848B2 (en) Techniques to capture and edit dynamic depth images
US11641445B2 (en) Personalized automatic video cropping
US20220053195A1 (en) Learning-based image compression setting
CN110678861A (zh) 图像选择建议
US20240126810A1 (en) Using interpolation to generate a video from static images
JP7483089B2 (ja) パーソナライズされた自動ビデオクロッピング

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant