CN116997938A - 用于整体视频理解的视频模型的自适应使用 - Google Patents
用于整体视频理解的视频模型的自适应使用 Download PDFInfo
- Publication number
- CN116997938A CN116997938A CN202280022436.3A CN202280022436A CN116997938A CN 116997938 A CN116997938 A CN 116997938A CN 202280022436 A CN202280022436 A CN 202280022436A CN 116997938 A CN116997938 A CN 116997938A
- Authority
- CN
- China
- Prior art keywords
- video
- model
- machine learning
- learning model
- features
- 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.)
- Pending
Links
- 230000003044 adaptive effect Effects 0.000 title description 3
- 238000010801 machine learning Methods 0.000 claims abstract description 212
- 238000000034 method Methods 0.000 claims abstract description 209
- 238000012545 processing Methods 0.000 claims abstract description 134
- 230000000153 supplemental effect Effects 0.000 claims description 196
- 238000013527 convolutional neural network Methods 0.000 claims description 140
- 239000013598 vector Substances 0.000 claims description 86
- 238000013528 artificial neural network Methods 0.000 claims description 85
- 230000002123 temporal effect Effects 0.000 claims description 41
- 239000000284 extract Substances 0.000 claims description 20
- 230000008569 process Effects 0.000 abstract description 127
- 238000000605 extraction Methods 0.000 description 198
- 238000012549 training Methods 0.000 description 65
- 230000006870 function Effects 0.000 description 62
- 238000011176 pooling Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 23
- 230000004913 activation Effects 0.000 description 22
- 238000001994 activation Methods 0.000 description 22
- 230000009471 action Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 19
- 230000033001 locomotion Effects 0.000 description 19
- 230000011664 signaling Effects 0.000 description 18
- 230000003287 optical effect Effects 0.000 description 14
- 230000009021 linear effect Effects 0.000 description 11
- 230000003068 static effect Effects 0.000 description 10
- 238000012935 Averaging Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000002474 experimental method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000001939 inductive effect Effects 0.000 description 4
- 239000013589 supplement Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000001976 improved effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 244000025254 Cannabis sativa Species 0.000 description 1
- 241000289619 Macropodidae Species 0.000 description 1
- 208000031481 Pathologic Constriction Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000009022 nonlinear effect Effects 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 208000037804 stenosis Diseases 0.000 description 1
- 230000036262 stenosis Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/41—Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing 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/7715—Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/87—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using selection of the recognition techniques, e.g. of a classifier in a multiple classifier system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/46—Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/48—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
- G10L25/51—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
- G10L25/57—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination for processing of video signals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Signal Processing (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
- Studio Devices (AREA)
Abstract
提供了用于执行整体视频理解的系统和技术。例如,一种过程可以包括:获得第一视频;以及使用机器学习模型决策引擎从机器学习模型集合确定第一机器学习模型,以用于处理该第一视频的至少一部分。该第一机器学习模型可以基于该第一视频的至少该部分的一个或多个特性来被确定。该过程可以包括:使用该第一机器学习模型处理该第一视频的至少该部分。
Description
技术领域
本公开总体涉及用于理解视频内容的模型。在一些示例中,本公开的各方面涉及用于基于视频内容的特性来选择机器学习模型的系统和技术。
背景技术
许多机器学习模型可用于分析和归类被包含在视频数据(或图像帧序列)中的信息。为了获得对被包含在视频数据中的信息的整体理解,应当跨各种类别(诸如动作、属性、事件、对象、场景等)来理解视频数据。经训练以检测动作的机器学习模型(例如,三维(3D)卷积神经网络(CNN)、光流神经网络等)在应用于包含极少动作的视频数据时可能在计算上过于密集。另一方面,非常适合于检测静态视频场景中的对象的计算有效的机器学习模型可能无法充分地检测包含显著运动的视频中的动作。在一些情况下,期望具有一种机器学习模型,其能够以尽可能有效的方式跨多个类别执行对视频的整体理解。
发明内容
在一些示例中,描述了用于在用于整体视频理解的视频处理模型之间进行自适应选择的系统和技术。根据至少一个说明性示例,提供了一种处理视频数据的方法。该方法包括:获得第一视频;使用机器学习模型决策引擎从机器学习模型集合确定第一机器学习模型,该第一机器学习模型基于该第一视频的至少一部分的一个或多个特性来被确定;以及使用该第一机器学习模型处理该第一视频的至少该部分。
在另一示例中,提供一种用于处理视频数据的装置,该装置包括:存储器,被配置为存储至少一个视频或视频的一部分;以及一个或多个处理器(例如,以电路形式实施),其被耦合到该存储器。该一个或多个处理器被配置为并且能够:获得第一视频;使用机器学习模型决策引擎从机器学习模型集合确定第一机器学习模型,该第一机器学习模型基于该第一视频的至少一部分的一个或多个特性来被确定;以及使用该第一机器学习模型处理该第一视频的至少该部分。
在另一示例中,提供了一种其上存储有指令的非暂时性计算机可读介质,该指令在由一个或多个处理器执行时使得该一个或多个处理器:获得第一视频;使用机器学习模型决策引擎从机器学习模型集合确定第一机器学习模型,该第一机器学习模型基于该第一视频的至少一部分的一个或多个特性来被确定;以及使用该第一机器学习模型来处理该第一视频的至少该部分。
在另一示例中,提供了一种用于处理视频数据的装置。该装置包括:用于获得第一视频的部件;用于使用机器学习模型决策引擎从机器学习模型集合确定第一机器学习模型的部件,该第一机器学习模型基于该第一视频的至少一部分的一个或多个特性来被确定;以及用于使用该第一机器学习模型处理该第一视频的至少该部分的部件。
在一些方面,上述方法、装置和计算机可读介质还包括:基于使用该第一机器学习模型处理该第一视频的至少该部分来确定该第一视频的至少该部分的分类。
在一些方面,上述方法、装置和计算机可读介质还包括:使用该第一机器学习模型从该第一视频的至少该部分提取第一一个或多个特征;使用第一补充模型处理该第一一个或多个特征;以及基于使用该第一补充模型处理该第一一个或多个特征来确定该第一视频的至少该部分的第一分类。在一些情况下,该第一补充模型包括神经网络。在一些情况下,该第一补充模型包括一维卷积神经网络。在这种情况下,该第一一个或多个特征包括:基于该第一视频的至少该部分的第一帧的第一特征矢量以及基于该第一视频的至少该部分的第二帧的第二特征矢量。在这种情况下,该第一补充模型从至少该第一特征矢量和该第二特征矢量生成该第一视频的至少该部分的时间信息。在一些情况下,该第一补充模型包括多层感知器。在一些情况下,该第一补充模型包括图形卷积网络。
在一些方面,上述方法、装置和计算机可读介质还包括:使用该机器学习模型决策引擎从该机器学习模型集合确定第二机器学习模型,该第二机器学习模型基于该第一视频的至少另一部分的一个或多个特性来被确定;以及使用该第二机器学习模型处理该第一视频的该至少另一部分。在一些方面,该第二机器学习模型包括神经网络。
在一些方面,上述方法、装置和计算机可读介质还包括:使用该第二机器学习模型从该第一视频的该至少另一部分提取第二一个或多个特征;使用第二补充模型处理该第二一个或多个特征;以及基于使用该第二补充模型处理该第二一个或多个特征来确定该第一视频的该至少另一部分的第二分类。
在一些方面,该第一机器学习模型包括神经网络。在一些方面,该第一机器学习模型包括二维卷积神经网络。在一些情况下,该二维卷积神经网络在两个空间维度中从该第一视频的至少该部分提取第一一个或多个特征。
在一些方面,该第一机器学习模型包括三维(3D)CNN。在一些情况下,该3D CNN在两个空间维度和一个时间维度中从该第一视频的至少该部分提取第一一个或多个特征。
在一些方面,上述方法、装置和计算机可读介质还包括:获得第二视频;使用该机器学习模型决策引擎从机器学习模型集合确定第二机器学习模型,该第二机器学习模型基于该第二视频的至少一部分的一个或多个特性来被确定;以及使用该第二机器学习模型处理该第二视频的至少该部分。
在一些方面,该机器学习模型决策引擎与该第一机器学习模型共享公共神经网络。在一些方面,上述方法、装置和计算机可读介质还包括:与从该机器学习模型集合确定该第一机器学习模型以用于处理该第一视频的至少该部分并行地,使用该第一机器学习模型从该第一视频的至少该部分提取第一一个或多个特征。
在一些方面,该第一视频的至少该部分的该一个或多个特性包括空间和时间特性。
在一些方面,该第一视频的至少该部分的该一个或多个特性包括音频特性。
在一些方面,上述装置中的一个或多个可以包括以下或为以下的一部分:移动设备(例如,移动电话或所谓的“智能电话”或其它移动设备)、可佩戴设备、扩展现实设备(例如,虚拟现实(VR)设备、增强现实(AR)设备、或混合现实(MR)设备)、车辆(例如,车辆的计算设备)、个人计算机、膝上型计算机、服务器计算机、或者其它设备。在一些方面,一种装置包括:用于捕获一个或多个图像的一个或多个相机。在一些方面,该装置还包括:用于显示一个或多个图像、通知和/或其他可显示数据的显示器。在一些方面,该装置可以包括:一个或多个传感器,其可以被用于确定该装置的位置和/或姿势、该装置的状态、和/或用于其他目的。
本发明内容不旨在标识所要求保护的主题的关键或必要特征,也不旨在孤立地用于确定所要求保护的主题的范围。应当通过参考本专利的整个说明书的适当部分、任何或所有附图和每个权利要求来理解主题。
在参考以下说明书、权利要求书和附图时,前述连同其它特征和实施例将变得更加显而易见。
附图说明
以下参考以下附图详细描述本申请的说明性实施例:
图1是图示根据一些示例的示例整体视频理解系统的框图;
图2A-图2D是图示根据一些示例的一维卷积滤波器的示例操作的示图;
图3是图示根据一些示例的整体视频理解系统的示例的框图;
图4是图示根据一些示例的整体视频理解系统的另一示例的框图;
图5是图示根据一些示例的整体视频理解系统的另一示例的框图;
图6是图示根据一些示例的整体视频理解系统的另一示例的框图;
图7是图示根据一些示例的整体视频理解系统的另一示例的框图;
图8是图示根据一些示例的示例整体视频理解系统的性能的曲线图;
图9是图示根据一些示例的用于处理视频数据的过程的示例的流程图;
图10是图示根据一些示例的深度学习网络的示例的框图;
图11是图示根据一些示例的卷积神经网络的示例的框图;以及
图12是图示用于实施本文所描述的某些方面的计算系统的示例的示图。
具体实施方式
以下提供本公开的某些方面和实施例。这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以组合应用,这对于本领域技术人员是显而易见的。在以下描述中,出于解释的目的,阐述了具体细节以便提供对本申请的实施例的透彻理解。然而,显而易见,可以在没有这些具体细节的情况下实践各种实施例。附图和说明并不旨在是限制性的。
随后的描述仅提供示例实施例,并且不旨在限制本公开的范围、适用性或配置。相反,示例实施例的随后描述将向本领域技术人员提供用于实现示例实施例的使能描述。应当理解,在不脱离所附权利要求中阐述的本申请的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
机器学习模型可以被用于处理和/或分析视频数据。使用机器深度学习系统的视频理解在许多情况下是具有挑战性的。例如,视频数据包括大量互连的信息类别,诸如对象、动作、事件、属性、概念和场景。这些类别可以高度互连,这使得机器学习模型难以执行某些功能。例如,机器学习模型可能无法在不识别对象的情况下执行动作分类,因为动作常常涉及对象。例如,机器学习模型可以被用于区分演奏钢琴与演奏吉他。演奏的运动取决于对象的类型而改变(例如,区分弹奏吉他与敲击琴键),其表明动作和对象是互连的。对于任何特定视频,与视频相关联的一个或多个类别对于理解视频内容可能比其它类别更重要。在一个示例中,在描绘静态场景的视频中,识别对象可能比检测动作更重要。在另一示例中,在描绘了具有跟随动作的运动相机的体育事件的视频中,识别动作以及在对象移动时识别对象可能同样重要。
机器学习模型可以具有机器学习模型将处理的视频数据集中存在的重要类别的先验知识。基于先验知识,可以专门设计机器学习模型以有效地处理该数据集。例如,在检测具有动态内容的各种类型的视频(例如,体育比赛、音乐会等的视频)中的动作时,可以使用这样的先验知识来优化在两个空间维度和时间维度上分析视频的三维(3D)卷积神经网络(CNN)以降低计算成本。然而,通过3D CNN来处理描绘静态场景的视频可能引入大量的计算成本(例如,大量的浮点运算(FLOP)),这在给定内容的情况下可能是不必要的。这种额外的计算成本可能是由于3D卷积网络同时在多个帧上执行某些功能(例如,卷积),当场景中的对象不在帧之间移动时可能不需要这些功能。
二维(2D)CNN可以基于单个视频帧来识别视频中的对象,而不是同时跨多个帧执行功能,并且因此可以更有效地识别一个或多个视频帧中的对象。然而,因为2D CNN不对在不同时间捕获的多个帧进行操作,所以2D CNN将不返回指示场景内的对象如何随时间移动的任何时间信息。例如,2D CNN自身可能不太适合于检测动作(例如,跨多个视频帧发生)。
可以使用各种方法来克服2D CNN仅产生单个帧的空间信息的限制。在一个示例中,一维(1D)卷积可以用作2D CNN的补充模型。1D卷积可以被用于从由2D CNN跨连续帧生成的特征来生成时间信息。在另一示例中,具有前向跳过(forward skip)的非本地神经网络可以被用于检测由2D CNN跨非连续帧生成的特征之间的时间关系。在另一示例中,图形卷积网络可以被用作2D CNN的补充模型。图形卷积网络可以被用于基于由2D CNN生成的空间特征来生成视频中的概念之间的关系。
如果对于特定的视频数据集已知最重要的类别,则设计专门针对该特定类别的机器学习模型(例如,神经网络)可能是有效的。然而,为了分析包括具有不同特性并且在其中包含不同类别的信息的各种视频的视频数据集,依赖于单个模型可能导致过度的计算工作量(例如,在模型执行尝试检测样本视频中不存在的类别的计算的情况下)、较差的准确度(例如,在模型不很适合于检测样本视频中存在的一个或多个类别的信息的情况下)、或两者。当遇到不适合该模型的新数据集时(例如,因为没有训练该模型来理解新数据集中的内容类型),可以开发新的目标模型来解决由新数据集呈现的新问题。然而,就必须不断地开发新模型而言,开发新模型可能是昂贵的。开发新模型实际上也可能没有解决整体视频理解的问题,诸如当新开发的模型被设计为解决狭窄的问题或理解包含一个或多个不同类别的信息的视频时。
下面的表1示出了以平均精度(mean Average Precision,mAP)为单位表示的五种不同视频理解模型的相对性能。表1中的内容提供了示出为视频选择一个模型而不是选择另一模型的结果的示例。在表1中,针对动作、属性、概念、事件、对象和场景的类别示出了五种不同机器学习模型(模型1-5)的mAP值。在一些示例中,机器学习模型可以应用特定的感应偏置(bias),这可以是通过限制模型的搜索空间来限制模型函数的先验假设。在表1中,在每个类别中具有最高mAP的一个或多个模型(例如,对于类别“事件”,模型2和模型4具有相似的值)被加下划线。如图所示,在所有类别中没有单个模型具有最高的准确度。结果,将表1中的任何一个模型固定地应用于包含涵盖多个相关类别的视频数据的视频数据集将不能实现该视频数据集的最佳准确度。
模型 | 平均 | 动作 | 属性 | 概念 | 事件 | 对象 | 场景 | 感应偏置 |
1 | 39.6 | 50.1 | 33.8 | 26.5 | 39.2 | 33.1 | 55.2 | - |
2 | 51.5 | 51.1 | 44.0 | 51.8 | 57.3 | 51.3 | 53.5 | 非本地注意力 |
3 | 52.0 | 51.8 | 45.7 | 51.9 | 56.1 | 53.2 | 53.4 | 1D卷积 |
4 | 52.2 | 51.8 | 45.3 | 52.2 | 57.4 | 52.4 | 54.0 | 图形卷积 |
5 | 46.7 | 63.5 | 35.3 | 44.8 | 50.3 | 42.7 | 43.4 | 3D卷积 |
表1
在一个说明性示例中,第一模型是如在2020年的Ali Diba等人的“大规模整体视频理解(Large scale holistic video understanding)”中所描述的HATNet,其全部内容通过引用并入本文并用于所有目的。在另一说明性示例中,第二、第三和第四模型共享共同的2D CNN作为第一阶段,其建立在Resnet-50神经网络架构上,诸如在2016年的Kaiming He等人的“用于图像识别的深度残差学习(Deep residual learning for imagerecognition)”中所描述的,其全部内容通过引用并入本文以用于所有目的。Resnet-50 2DCNN生成空间特征。对于第二、第三和第四模型中的每个模型,空间特征由补充模型进一步处理。对于第二模型,将非本地补充模型应用于由2D CNN生成的特征。对于第三模型,可以将1D卷积应用于由2D CNN生成的特征,以从在多个帧上评估的空间特征(其由2D CNN生成)生成时间信息。可以将1D卷积应用于由2DCNN跨多个帧生成的特征,以生成关于时间维度(随时间)中的特征的时间信息。对于第四模型,可以将图形卷积应用于由2D CNN生成的特征。图形卷积的应用可以导致从由2D CNN生成的空间特征到神经网络被训练分类的可用类的关系信息的生成。在一个说明性示例中,第五模型可以是使用在2019年的ChristophFeichtenhofer等人的“用于视频识别的慢速网络(Slowfast networks for videorecognition)”中描述的Slowfast模型的3D CNN。
本文描述了用于执行整体视频理解的系统、装置、过程(也称为方法)和计算机可读介质(统称为“系统和技术”)。如本文所使用的,整体视频理解是指在视频中包含的许多相互关联的数据类别上理解视频的内容。在一些示例中,本文将系统和技术描述为理解、分析和/或分类视频。然而,本文描述为理解、分析和/或分类视频的系统和技术可以被应用于帧或图像的任何序列。
如下文更详细描述的,整体视频理解系统可以包括一个或多个模型决策引擎(其可以是机器学习模型或机器学习系统)、特征提取机器学习模型(或机器学习系统)、以及补充机器学习模型(或机器学习系统)。可以训练一个或多个模型决策引擎来对输入视频数据进行分类,以确定使用哪些特征提取模型来处理特定视频或视频的一部分(例如,基于特征提取模型结合可用于选择的补充模型的计算效率和准确度的组合)。在一个说明性示例中,可以训练模型决策引擎以选择最准确的模型,同时保持每个视频或视频的一部分的平均计算低于40千兆FLOP(gigaFLOP,GFLOP)。视频的一部分可以包括视频片段(例如,如下所描述的视频片段υij)。在推断期间(在已经训练了一个或多个模型决策引擎之后),由模型决策引擎输出的分类可以被用于确定神经网络中的哪个或哪些特征提取模型将被用于处理输入视频或视频部分。在一些情况下,还可以训练模型决策引擎以学习与输入视频或输入视频的帧相关联的特征。在一些示例中,可以使用视频帧和标签作为训练数据来训练模型决策引擎,诸如使用一个或多个监督或半监督训练技术。在推断期间(例如,在模型决策引擎已经被训练以提取特征之后),模型决策引擎可以确定在某些情况下,在分类过程期间它生成的特征将被提供给补充模型并且随后被用于分类输入视频,而不需要使用任何其它可用的特征提取模型。
在一些示例中,模型决策引擎是神经网络或多个神经网络架构的组合。在一些示例中,模型决策引擎是2D CNN或任何其他合适的轻量级神经网络架构。如上所述,2D CNN是轻量级的,因为它可以基于单个视频帧来识别视频中的对象,而不是跨多个帧同时执行功能(例如,卷积)。将轻量级神经网络架构用于模型决策引擎可以降低整体视频理解系统中利用模型决策引擎所引入的计算复杂度。将包括模型决策引擎的计算成本保持为最小(例如,通过使用轻量级神经网络架构)可以导致计算效率的总体增加,这是由于能够为一些输入视频选择轻量级特征生成模型的计算节省。在一个说明性示例中,模型决策引擎的神经网络包括MobileNetV2神经网络架构,诸如在2019年的Mark Sandler人的“MobileNetV2:反向残差和线性瓶颈(MobileNetV2:Inverted Residuals and Linear Bottlenecks)”中描述的,其全部内容通过引用并入本文并且用于所有目的。在另一说明性示例中,模型决策引擎的神经网络包括Resnet-50神经网络架构,诸如在2016年的Kaiming He等人的“用于图像识别的深度残差学习(Deep residual learning for image recognition)”中所描述的,其全部内容通过引用并入本文以用于所有目的。
在一些示例中,如下所描述,可以在端到端过程中与特征提取模型和任何补充模型一起训练模型决策引擎。在一些示例中,如下所描述,可以在三阶段过程的最后阶段中训练模型决策引擎。例如,三阶段过程可以包括:训练特征提取模型直到达到某个准确度水平的第一步骤;使用来自具有冻结权重的经训练的特征提取模型的特征来训练补充模型的第二步骤(例如,其中经训练的特征提取模型的权重不改变);以及使用经训练的特征提取模型和具有冻结权重的补充模型来训练模型决策引擎的第三步骤。在一些情况下,使用具有伪标签的监督学习来训练决策引擎,该伪标签告诉决策引擎什么模型是最准确的。在训练迭代期间,决策引擎尝试最大化挑选最准确的模型的准确度,其中基于所确定的损失在每次迭代中调谐参数(例如,权重、偏置等)。
在一个说明性示例中,如以下更详细描述的,三阶段过程的第二步骤可以包括使用交叉熵损失(表示为)或二进制交叉熵损失(表示为/>)来训练模型决策引擎,并且第三步骤可以包括使用以下损失来训练模型决策引擎:其中/>是交叉熵(CE)损失(或Softmax损失),是均匀损失,并且/>是FLOP损失。BCE损失/>训练决策引擎以最大化基于二进制交叉熵获得正确分类的准确度。FLOP损失/>更频繁地训练决策引擎以选择有效模型,因为最小化将使用的预期(例如,训练数据之上的平均值)FLOP是有益的。可以基于来自决策引擎的决策aV来计算将使用的FLOP。贝塔(β)参数控制或调谐准确度与复杂度或计算效率(例如,由FLOP测量)之间的折衷。例如,如果β被设置为0,结果是决策引擎将学习使用最准确的模型。将β参数设置为高的值(例如,接近1,诸如0.75、0.80、0.85等)将导致选择在计算上最便宜的模型的决策引擎。可以使用均匀损失/>来确保模型决策引擎不总是选择提供某种折衷的相同模型。阿尔法(α)参数被用于调谐均匀损失。最佳平衡的一个示例是通过选择平均低于40GFLOPS的最准确模型。
通过在用于处理视频数据的一个或多个机器学习模型之间进行自适应选择,本文描述的系统和技术可以提供更准确和有效的整体视频理解。例如,如上所述,许多视频理解系统应用单个固定机器学习模型来分析所有视频,而不管被包括在特定输入视频中的数据类别是否非常适合于由固定机器学习模型进行分析。通过基于正被分析的特定视频或视频部分的特性来在多个不同机器学习模型之间自适应地选择以执行视频理解,该系统和技术可以通过非常适合于特定视频或其部分的特性(例如,被包含在视频或其部分内的数据的类别)的模型来分析每个视频或视频的部分。此外,通过避免对视频或其部分中不存在的类别优选的计算上昂贵的模型进行不必要的计算,执行视频理解技术的设备的计算和功率资源可以被保留以用于其它操作。
虽然本文描述了用于将视频分类到特定分类(例如,弹钢琴、儿童踢足球等)中的示例,但是本文描述的整体视频理解系统和技术可以被用于生成未具体列出的其它分类。在一些示例中,本文描述的整体视频理解系统和技术可以被用于确定其它类别和分类中的人或对象的活动,诸如坐在计算机前面的桌子处的人,持有移动设备的人,工厂环境中的机器人设备,和/或任何其它动作、事件、属性、概念和/或场景。
下面将参照附图讨论本文所描述技术的各个方面。图1是图示整体视频理解系统100的示例的框图。整体视频理解系统100包括被用于处理视频数据(例如,一个或多个视频)并且检测或识别信息类别(例如,对象、动作、事件、属性、概念和场景)的各种组件。如图所示,整体视频理解系统100的组件包括视频检索器102、存储设备104、模型决策引擎106、特征提取模型108、补充模型110和输出分类器112。
整体视频理解系统可以包括以下或作为以下的一部分:移动或固定电话手持机(例如,智能电话、蜂窝电话等)、服务器计算机(例如,与车辆计算系统通信)、车辆(例如,车辆的驾驶员监控系统(DMS))、台式计算机、膝上型或笔记本计算机、平板计算机、机顶盒、电视机,相机、显示设备、数字媒体播放器、视频流设备、或者任何其他合适的电子设备。在一些示例中,整体视频理解系统100可以包括用于无线通信的一个或多个无线收发器(或单独的无线接收器和发送器),无线通信诸如为蜂窝网络通信、802.11Wi-Fi通信、无线局域网(WLAN)通信、蓝牙或其他短距离通信、其任何组合、和/或其他通信。在一些实施方式中,整体视频理解系统100的组件(例如,视频检索器102、存储设备104、模型决策引擎106、特征提取模型108、补充模型110和输出分类器112)可以是相同计算设备的一部分。在一些实施方式中,整体视频理解系统100的组件可以是两个或更多个单独的计算设备的一部分。在一些情况下,整体视频理解系统100可以被实施为图12所示的计算系统1200的一部分。
虽然整体视频理解系统100被示为包括某些组件,但是本领域普通技术人员将理解,整体视频理解系统100可以包括比图1所示的组件更多或更少的组件。在一些情况下,整体视频理解系统100的附加组件可以包括软件、硬件、或者软件和硬件的一个或多个组合。例如,在一些情况下,整体视频理解系统100可以包括未在图1中示出的一个或多个传感器(例如,一个或多个相机、惯性测量单元(IMU)、雷达、光检测和测距(LIDAR)传感器、音频传感器等)、一个或多个显示设备、一个或多个其他处理引擎、一个或多个其他硬件组件、以及/或者一个或多个其他软件和/或硬件组件。在一些实施方式中,整体视频理解系统100的附加组件可以包括电子电路或其他电子硬件和/或可以使用电子电路或其他电子硬件来实施,该电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如,数字信号处理器(DSP)、微处理器、微控制器、图形处理单元(GPU)、中央处理单元(CPU)、其任何组合、和/或其他合适的电子电路),和/或可以包括计算机软件、固件或其任何组合,和/或可以使用计算机软件、固件或其任何组合来实施,以执行本文描述的各种操作。软件和/或固件可以包括被存储在计算机可读存储介质上并且能够由实施整体视频理解系统100的电子设备的一个或多个处理器执行的一个或多个指令。
视频检索器102可以从存储设备104中检索帧(例如,视频帧、图像等)。存储设备104可以包括任何合适类型的存储装置(例如,下面关于图12中的存储设备1230描述的任何类型的存储装置)。由视频检索器102检索的视频可以包括帧序列。例如,帧序列可以包括一组连续捕获的图像或其它帧序列。在一个说明性示例中,帧可以包括红-绿-蓝(RGB)图像,亮度、色度-蓝、色度-红(YCbCr或Y'CbCr)图像,单色图像,和/或任何其他合适类型的图像。在一些情况下,由视频检索器102检索的视频还可以从存储设备104接收音频分量。
在一些方面,视频检索器102可以将从存储设备104检索的视频分割成均匀间隔的部分或片段(例如,每个片段可以包括相同数目的帧)。下面描述视频片段υij的示例。在一些示例中,视频检索器还可以将音频数据分割为单个音频段,使得音频数据匹配与视频的一部分的对应帧序列相关联的时间。在一些方面,视频可以作为视频部分或片段被存储在存储设备104内,并且视频检索器可以从存储设备104检索片段,而非检索整个视频。在一些方面,视频检索器102可以从存储设备104检索完整的视频。在这些方面,完整的视频可以在整体视频理解系统100内的其他地方被划分为部分或片段(例如,在被输入到模型决策引擎106之前)。在一些方面,该部分可以包括视频帧的子集,诸如两个帧、三个帧、五个帧或任何合适数目的帧。在一些示例中,该部分可以是重叠的(例如,该部分可以共享来自帧序列的彼此共同的帧)。在其中每个视频部分包括三个帧的一个说明性示例中,第一视频的第一部分可以包括视频的第一、第二和第三帧,而第一视频的第二部分可以包括该视频的第二、第三和第四帧。
由视频检索器102检索的帧可以作为输入被提供给模型决策引擎106。在一些示例中,所检索视频的帧可以具有比模型决策引擎106的输入层(未图示)的维度更大的维度。在此类情况下,可以将具有较大维度的每个输入帧归一化到与模型决策引擎106被配置为处理的输入维度或分辨率相匹配的分辨率。例如,模型决策引擎106(或整体视频理解系统100的其它组件)可以通过对每个帧进行下采样或按比例缩小来将具有较大维度的每个帧归一化到模型决策引擎106的输入维度或分辨率。在一个说明性示例中,可以通过将所检索的视频帧的最小维度调整大小为224并且提取中心剪裁(例如,视频帧的中心部分)来调整视频部分的大小以匹配224×224的输入分辨率(模型决策引擎106被配置为处理该输入分辨率)。在一些示例中,下采样的、减小大小的、或以其他方式调整大小的帧可以被存储在存储设备104中,以由整体视频理解系统100的后续阶段使用。
在一些示例中,可以训练模型决策引擎106来确定来自特征提取模型108的集合的哪个模型或哪些模型用于处理输入视频或输入视频的一部分。在一些情况下,可以基于特征提取模型108与补充模型110的计算效率和准确度的组合来训练模型决策引擎106以确定使用哪个模型或哪些模型,补充模型110也可由模型决策引擎106进行选择。例如,可以训练模型决策引擎106在第一机器学习模型与第二机器学习模型(来自特征提取模型108和/或补充模型110)之间进行选择,以用于处理输入视频。在一些示例中,可以训练模型决策引擎106来确定使用哪“N”个特征提取模型108的集合来处理输入视频,其中“N”是大于或等于一的整数。可以使得特征提取模型108的数目包括与给定应用所需数目一样多的机器学习模型。一些示例特征提取模型108可以包括2D CNN、3D CNN、音频处理模型、光流网络、以及可以用于处理视频数据的任何其他神经网络架构。在一些示例中,模型决策引擎106可以包括分类神经网络,其被训练为能够对等于特征提取模型108的数目的N个输出类进行分类。例如,模型决策引擎106可以处理视频数据,并且可以基于视频数据来确定针对N个类的概率。模型决策引擎106可以从N个类中选择与具有最高概率值的类相关联的给定模型(来自特征提取模型108)。在一些示例中,模型决策引擎106的神经网络可以包括从输入视频帧生成一个或多个特征矢量的内部层以及将一个或多个特征矢量的特征组合成N个类的全连接层。下面提供训练模型决策引擎106的示例。
在推断期间(一旦模型决策引擎106已经被训练),模型决策引擎106可以从视频检索器102和/或从存储设备104接收表示输入视频或视频部分的一个或多个视频帧。在一些示例中,表示由模型决策引擎106从视频检索器102和/或存储设备104接收的输入视频或视频部分的视频的一个或多个帧是输入视频的部分,如上文所描述。在一些示例中,模型决策引擎106可以生成输入视频或视频部分的分类(例如,在N个类中具有最高概率的类)。在一些情况下,模型决策引擎106可以依序处理输入视频或视频部分的每个帧以生成针对每个输入视频、视频部分或视频帧的分类。在一些实施方式中,模型决策引擎106可以从输入视频或视频部分的多个顺序帧生成分类(例如,通过对来自多个顺序帧的特征进行平均,并且使用多层感知器(MLP)、全连接层或其他神经网络组件来处理经平均的特征以生成分类)。
在一些示例中,由模型决策引擎生成的分类可以被用于确定特征提取模型108中的哪一个用于进一步处理输入视频(例如,整个输入视频)。在一些示例中,分类可以被用于确定来自特征提取模型108的哪个模型用于进一步处理输入视频的一部分(例如,输入视频的一个或多个帧),其中视频的每个部分可以接收与视频的其他部分分开的分类。例如,视频的前90个帧可以包含静态场景,并且动作可以在视频的最后150个帧期间在视频中开始。在此示例中,模型决策引擎106可以确定(基于模型决策引擎106所确定的一个或多个分类)使用2D CNN来处理前90个帧,以及可以确定使用3D CNN来处理最后150个帧。在一些示例中,模型决策引擎106输出的分类可以被存储在存储设备104中。
在一些示例中,除了生成分类之外,模型决策引擎106还可以基于输入视频或视频部分来生成特征。例如,模型决策引擎106可以包括从输入视频生成特征的2D CNN。该特征随后可以被输入到模型决策引擎106的层(例如,全连接层或其它层)中以生成分类(例如,指示应当使用哪个特征提取模型108来处理输入视频或其部分,如上文所描述)。在一些示例中,在模型决策引擎106内生成的特征也可以被存储在存储设备104中。由模型决策引擎106生成的特征可以被一个或多个补充模型110用作输入以进行附加处理,或者可以被直接用于在输出分类器112处对视频进行分类。在一些示例中,由模型决策引擎106生成的特征可以被存储在存储设备104中。
可以训练特征提取模型108以学习与输入视频或视频部分相关联的特征。在一些示例中,特征提取模型108可以包括模型决策引擎106能够从中选择的至少两个特征提取模型。在一些示例中,特征提取模型108可以各自具有使用不同神经网络架构从视频数据提取特征的不同神经网络骨架(backbone)。例如,来自特征提取模型108的一个特征提取模型可以包括2D CNN,其可以被训练以从各个视频帧(或者不是视频的一部分的图像)提取空间特征。来自特征提取模型108的另一特征提取模型可以包括3D CNN,其可以被训练以从帧序列提取空间和时间特征。在一些示例中,可以训练3D CNN以通过在包括三个帧、五个帧或任何其他数量的帧的视频的一部分上执行卷积来生成空间和时间特征,其为3D CNN生成的特征提供时间分辨率和计算成本之间的期望折衷。在一些情况下,来自特征提取模型108的另一特征提取模型可以是能够被训练以从与输入视频相关联的音频信息提取特征的音频模型。来自特征提取模型108的另一特征提取模型可以包括能够被训练以检测对象或特征(例如,边缘、形状)跨多个视频帧的运动的光流模型。在一些示例中,来自特征提取模型108的两个或更多个特征提取模型可以使用类似的模态(例如,2D CNN、3D CNN、或其他CNN)但以不同的架构来操作。不同的架构可以具有不同的计算成本。例如,特征提取模型108中的两个可以都包括2D CNN架构,其中第一2D CNN在生成空间特征方面具有较低的准确度,而且相对于第二2D CNN具有较低的计算成本。特征提取模型108可以被用于提取随后能够用于对输入视频进行分类的特征。下面提供训练特征提取模型108的示例。
在推断期间(一旦已经训练了特征提取模型108),经选择的特征提取模型108(例如,由模型决策引擎106选择)可以从视频检索器102、存储设备104和/或模型决策引擎106接收一个或多个帧。如上所描述,可以基于由模型决策引擎106生成的分类来激活经选择的特征提取模型108。在一些示例中,模型决策引擎106可以直接激活经选择的特征提取模型108(例如,通过发出指示经选择的特征提取模型108开始的命令或信号)。在一些示例中,特征提取模型108可以从模型决策引擎106(例如,直接从模型决策引擎106、从存储设备104等)检索分类输出。由经选择的特征提取模型108提取的特征可以作为输入被提供给补充模型110。
取决于由模型决策引擎106选择的模型的类型,经选择的特征提取模型108可以连续地处理一个或多个帧中的每个帧(例如,每次一帧)、或同时地处理多个帧。例如,当从特征提取模型108选择2D CNN时,2D CNN可以从每个帧提取空间特征(例如,基于单独地处理该帧)。在另一示例中,当从特征提取模型108选择3D CNN时,3D CNN可以从多个连续帧提取空间和时间特征(例如,基于同时处理多个帧)。在一些情况下,选择2D CNN可能是有利的。例如,与3D CNN或其他模型相比,2D CNN可以具有相对低的计算成本(例如,通过使用模型生成特征所需的浮点运算(FLOP)的数目来测量)。在一些示例中,2D CNN与3D CNN之间的计算成本的比率可以是由3D CNN同时处理的视频帧的数目K的函数,其中K可以等于3D CNN内核在时间维度中的深度。在一些情况下,选择3D CNN可能是有利的。例如,3D CNN可以提供用于理解特定视频或视频部分中的动作的强时间偏置。在一个示例中,当正被分析的视频或视频的一部分描绘静态场景(例如,来自壁挂式相机)并且在场景中存在很少或不存在运动时,2D CNN可以由模型决策引擎106选择。在此示例中,模型决策引擎106可以确定视频(例如,静态场景)的特性使得2D CNN应当被用于该视频。在另一示例中,当被分析的视频或视频的一部分描绘动态场景(例如,由包括诸如体育事件的移动对象的静态或移动相机拍摄的场景)时,可以由模型决策引擎106选择3DCNN。在此示例中,模型决策引擎106可以确定视频(例如,场景内的移动)的特性使得2D CNN应当被用于该视频。3D CNN通过从跨多个帧的视频数据同时提取特征来检测动作的能力可以导致相对于每次只能从一个帧提取特征的两个2D CNN而言更准确地理解视频内容。
在一些情况下,来自特征提取模型108的特征提取模型的输出可以包括表示从每个帧或从帧序列提取的特征的特征矢量(或其它特征表示)。在一些情况下,可以从一个输入帧提取单个特征矢量,其中特征矢量表示输入帧的特征(例如,对于生成每帧空间特征的2D CNN)。从输入帧提取的特征(例如,被表示为特征矢量)提供帧的表示,包括被包含在输入帧内的信息。在一些情况下,可以从多个输入帧提取单个特征矢量,其中特征矢量包含与多个输入帧的特征相关联的所有信息(例如,对于在多个帧之上生成空间和时间特征的3DCNN或光流网络)。在一个说明性示例中,由特征提取模型每帧或针对多个帧生成的特征矢量可以是1x2048矢量(指示该特征矢量是具有2048个值的长度的一维特征矢量)。在一些示例中,存储设备104可以被用于存储由特征提取模型108从输入视频或视频部分提取的特征(例如,通过存储针对每个帧或帧组被提取的特征矢量)。在一些情况下,可以使用除特征矢量之外的特征表示,诸如张量或其它表示。
可以训练补充模型110以利用能够用于对视频进行分类的附加信息来补充由特征提取模型108提取的特征。在推断期间(例如,在训练了补充模型110之后),补充模型110可以接收由特征提取模型108输出的特征,并且可以提供进一步的处理。在一些示例中,可以在特征提取模型108与补充模型110之间包括全连接层(未示出)。在一个示例中,如上所述,利用2D CNN的特征提取模型可以在其生成的特征中具有强空间偏置,但是可以不包含跨多个帧的任何时间信息,因为2D CNN每次仅对单个视频帧进行操作。在一些示例中,可以将来自补充模型110的补充模型应用于由2D CNN针对多个帧生成的特征,以便生成跨多个帧的时间信息。在一个示例中,补充模型可以包括1D卷积神经网络,其可以被应用于由2D CNN(从特征提取模型108中选择)为多个帧生成的特征,以生成针对该多个帧的时间信息。下面参考图2A-图2D描述1D卷积网络的说明性示例(作为补充模型的示例)。
图2A-图2C图示了可以被用作补充模型110的示例卷积操作,该补充模型110被应用于由图1的整体视频理解系统100中的特征提取模型108生成的特征。图2A-图2C图示了组合的特征矢量,包括组合的特征矢量210(图2A中)、组合的特征矢量212(图2B中)和组合的特征矢量214(图2C中)。包括来自由2D CNN特征提取模型输出的五个连续帧的五个1×2048特征矢量的组合,如上面关于图1所描述。所得到的组合的特征矢量210、212和214各自具有5×2048的维度(指示每个组合的特征矢量210、212和214包括来自从2D CNN输出的五个连续帧的特征)。在图2A-图2C的图示示例中,组合的特征矢量210、212和214中的每个立方体(无论是黑色还是白色)表示组合的特征矢量的一个值。图2A-图2D的组合的特征矢量210、212、214和216的立方体中的黑色阴影示出了可以被应用于组合的特征矢量的不同卷积滤波器(其中卷积滤波器随时间在数据上移动)。在图2A的示例中,经选择的卷积滤波器211是跨越时间维度中的所有五个值和跨越三个通道(在由箭头221指示的方向上)的5×3内核。在图2A的示例中,内核沿通道维度移动(如箭头221所示)以执行卷积。
在图2B的示例中,经选择的卷积滤波器213是跨越时间维度中的三个值和通道维度中的一个值的3×1内核。3×1内核沿时间和通道维度移动(如通道维度中的箭头223和时间维度中的箭头225所示)。在一些情况下,3×1内核首先在时间维度中为每个通道在时间维度中每次移动一个“列”(对应于步长值为一),以生成针对第一通道的三个新卷积输出值。在一些情况下,3×1内核然后移动到组合的特征矢量的通道维度中的下一个“行”(对应于步长值为一)。然后,3×1内核可以重复在时间维度中移动的三个卷积,以生成针对第二通道的三个附加的新卷积输出值。在一些示例中,该过程可以对通道维度中的每个“行”重复,以生成3×2048卷积输出。在一些情况下,附加的神经网络层可以被用于从3x2048卷积输出生成1x2048输出。在一个说明性示例中,可以将每次沿通道维度移动一个“行”(对应于步长值为一)的附加卷积(例如,使用3×1内核)应用于3×2048卷积输出,以产生1×2048组合的特征矢量。图2B所示的卷积滤波器可以被认为是2D卷积,因为内核沿着时间和通道维度两者移动。
在图2C的示例中,经选择的卷积滤波器215是跨越时间维度中的三个值和通道维度中的所有2048个值的3×2048滤波器内核。第一3×2048内核沿着时间维度移动(如箭头227所示),诸如一次一个立方体、一次两个立方体等。在一个说明性示例中,第一3×2048内核基于第一位置中的3×2048特征的卷积来创建第一卷积输出值。在这样的示例中,第一3×2048内核可以在时间维度中一次移动一个“列”,并且为总共3×1卷积输出值生成两个附加值。在这样的示例中,可以用2047个附加的3×2048内核来重复该过程,以生成3×2048组合的卷积输出矢量。在一些示例中,附加的神经网络层(例如,卷积层)可以被用于从3x2048卷积输出生成1x2048输出。在一些实施方式中,图2C中描述的卷积滤波器215可以被用于从组合的特征矢量214捕获存在于数据的时间维度中的重现图样(pattern)。图2C中所示的卷积可以被认为是1D卷积,因为每个内核只沿着时间维度移动。
图2D图示了图2A所示的1D卷积的输出的示例。卷积滤波器211(如组合的特征矢量210中的黑色立方体所示)可以被用于生成维度为1×2048的新特征矢量216。如图所示,新特征矢量216的第一元素(如黑色立方体217所示)是基于被应用于组合的特征矢量210的前三个“行”(在时间维度中)的5×3卷积滤波器内核来被生成的。类似地,可以通过将5×3卷积滤波器前进一行(例如,沿箭头221的方向)并且将卷积应用于组合的特征矢量210的各个元素来生成新特征矢量216的第二元素。随着滤波器内核在通道维度中移动(如箭头221所示),可以基于应用5×3卷积滤波器来生成新特征矢量216的每个后续元素。得到的新特征矢量216可以具有维度1×2048,如上所述,其中新特征矢量216的每个元素表示应用于组合的特征矢量210的卷积滤波器的结果。通过使用该技术组合来自多个帧的特征,可以生成关于该特征的时间信息,尽管原始特征从单个帧被提取而没有任何时间信息。这种技术提供了包括时间信息的优点,以便更全面地理解输入视频,而不引入执行三维卷积的全部计算成本。
应当理解,尽管以上关于图2A-图2D的示例是根据从2D CNN输出的组合的特征矢量来描述的,但是图2A-图2D中描述的卷积滤波器可以被应用于任何特征矢量,而不论其源自的神经网络的类型如何。此外,尽管图2A-图2C的示例图示了具有5×2048维度的组合的特征矢量,但是本领域普通技术人员将理解,所描述的滤波器可以被应用于具有不同维度的特征矢量。例如,仅表示特征数据的三个帧的组合的特征矢量可以具有3×2048的维度。在另一示例中,表示特征数据的5个帧的组合的特征矢量可以具有更少的特征,诸如1024个特征,并且在该情况下组合的特征矢量可以具有5×1024的维度。
回到图1,如上所述,可以提供附加的补充模型110以进一步处理来自特征提取模型108的特征。在一些示例中,应用于由特征提取模型108生成的特征的补充模型(来自补充模型110)可以不向特征提取模型108的输出应用附加的感应偏置。例如,如上关于图2D所描述,当视频不包含运动(例如,静态场景)或包含不足以受益于3D CNN的增加的计算工作量的少量运动时,1D卷积补充模型(从补充模型110选择)可以被用于基于由2D CNN特征提取模型(从特征提取模型108)提取的视频的特征来生成视频的时间信息。作为示例,当输入视频包含静态场景时,可以选择1D卷积补充模型,该静态场景诸如为来自指向固定位置的IP相机的场景,在该固定位置处可能存在场景内的要分析的对象或人的偶然移动。这种方法可以减少计算工作量,因为可以从由2D CNN提取的视频帧的空间特征来处理时间信息,而不是直接从视频帧同时提取空间和时间信息(例如,利用3D CNN),这可能需要处理显著更多的数据。
补充模型的另一示例是非本地模型(也被称为注意力模型或非本地注意力模型)。非本地模型可以通过将来自每个视频帧的特征与来自视频帧集合中的一个或多个其他视频帧(例如,每隔一个视频帧)的特征进行比较,来从由2D CNN特征提取模型所提取的特征提取时间信息。例如,对于五个视频帧的集合,可以将第一帧特征与第二、第三、第四和第五帧中的每个帧的特征分开地进行比较,以确定远离的帧(例如,第一和第五帧、第一和第四帧、第二和第五帧、第二和第四帧等)中的事件或动作是否相关。对于大量的帧,非本地补充模型的比较次数可能变得很大。非本地模型的益处在于其可以检测仅分析来自紧密分组的帧(例如,连续帧)的信息的模型未检测到的关系。例如,与1D卷积补充模型相反,非本地模型的感应偏置不一定假设相关动作将在时间上分组在一起。通过尝试确定视频中的这些类型的非本地关系,整体视频理解系统100可以基于在视频内的较宽范围内(例如,在时间上分离的更多帧上)分析特性的能力而变得更加整体。其中非本地补充模型110可能是有用的的说明性示例是多米诺坠落(dominos falling)的视频,其中在第一帧中的多米诺坠落在最后的多米诺上的效果直到大量帧之后才可能见到。第一个与最后的多米诺坠落之间的关系可以不由3D CNN或由1D卷积补充的2D CNN来检测,而是可以由非本地模型补充的2D CNN来检测。
可以被应用于由2D CNN特征提取模型108提取的特征的另一示例补充模型是图形卷积网络。在一些示例中,图形卷积网络可以被用作(补充模型110的)补充模型,以利用将由分类器112应用的最终分类器的知识将来自(来自特征提取模型108的)特征提取模型的特征与某些概念相关联。在一些示例中,图形卷积网络将概念或关系偏置应用于其接收的特征。在一个示例中,图形卷积网络可以能够基于由特征提取模型生成的特征(例如,球、儿童、草等)的存在来推断分类“儿童踢足球”应用于视频或视频部分。在一些实施方式中,这可以通过将特征与概念和/或输出分类器或分类相关联来完成。在一些情况下,补充模型可以不向由特征提取模型生成的特征施加任何附加的感应偏置。例如,补充模型可以用作将由特征提取模型生成的特征连接到输出分类器112被训练以分类的类之一的目的。在一个说明性示例中,其中来自特征提取模型108的特征提取模型是3D CNN,补充模型110可以是多层感知器(MLP)或全连接层。例如,模型决策引擎106可以基于包含大量运动的视频或视频部分(例如,相机也在运动中的体育事件的视频)来从具有MLP补充模型110的特征提取模型108选择3D CNN。在一些示例中,补充模型110的输出可以被存储在存储设备104中。
可以训练输出分类器112以利用一个或多个分类对输入视频或视频部分(或与输入视频或视频部分相关联的特征)进行分类。包括示例视频和分类标签的训练数据集可以被用于训练输出分类器112,诸如使用关于图10和图11描述的技术。在推断期间(例如,在输出分类器112已被训练之后),输出分类器112可以接收来自补充模型110的输出,并且可以使用该输出来对输入视频或视频部分进行分类。示例分类可以包括“弹钢琴”、“儿童踢足球”、以及输出分类器112被训练来分类的任何其他分类。
在一些情况下,包括模型决策引擎106、特征提取模型108、补充模型110和输出分类器112的系统可以在单个端到端训练序列中被训练。在端到端训练序列的一个实施方式中,Gumbel Softmax层(也被称为Gumbel层)可以促进端到端训练。Gumbel层可以允许模型决策引擎106做出离散决策,同时仍然是可微分的,使得可以执行反向传播训练过程。在一些示例中,可以执行反向传播训练过程以调整每个神经网络(例如,模型决策引擎106、特征提取模型108、补充模型110和输出分类器112)的节点的权重(以及在一些情况下的其他参数,诸如偏置)。如关于图10更详细地描述的,反向传播可以包括前向传递、损失函数、后向传递和权重更新。可以针对每次训练迭代(例如,针对来自训练集的每批数据或针对整个训练数据集)执行前向传递、损失函数、后向传递和参数更新。可以对每个训练数据集合重复反向传播过程一定数目的迭代,直到模型决策引擎106、特征提取模型108、补充模型110和输出分类器112的参数的权重被准确地调谐。在一些示例中,在端到端训练过程中使用的损失函数可以包括交叉熵(CE)损失、二进制交叉熵(BCE)损失、FLOP损失、均匀损失、其任何组合、或者任何其他合适的损失函数。在一些示例中,在端到端训练过程中使用的损失函数可以包括多个损失函数的加权组合(例如,具有不同权重的BCE损失和FLOP损失的组合)。
在一些情况下,可能难以利用整个整体视频理解系统100使用端到端训练过程来训练模型决策引擎106。例如,模型决策引擎106可以基于特征提取模型108、补充模型110和分类器112的过去统计来预测要选择哪个模型,并且这些模型在训练的每次迭代期间由于训练的端到端性质而改变。在一些示例中,可以利用三阶段训练过程,而不是端到端地训练整体视频理解系统100。例如,在三阶段训练过程的第一阶段期间,可以训练特征提取模型108。类似于上述端到端训练过程,可以执行反向传播训练过程以调整每个特征提取模型108的节点的权重(并且在一些情况下调整其他参数,诸如偏置)。损失函数可以被用于分析特征提取模型108的输出中相对于已知输出或基本事实(ground truth)(例如,基于与训练数据相关联的基本事实标签)的误差。在一个说明性示例中,可以使用交叉熵损失函数。在某些情况下可以使用其他损失函数。在训练了特征提取模型108之后,可以固定(或“冻结”)特征提取模型108的权重(以及在某些情况下的其它参数,诸如偏置)。
在一些示例中,可以在三阶段训练过程的第二阶段中使用由训练的特征提取模型108提取的特征来训练补充模型110。在一些情况下,可以使用与针对特征提取模型108描述的过程类似的反向传播训练过程来训练补充模型。在训练之后,可以固定或冻结补充模型110的权重(以及在一些情况下的其他参数,例如偏置)。在一些示例中,在训练了特征提取模型108和补充模型110之后,可以在三阶段训练过程的最后阶段中训练模型决策引擎106。在一些情况下,在三阶段训练过程期间,可以训练模型决策引擎106以学习应当选择固定模型集合(例如,特征提取模型108和补充模型110)中的哪个或哪些模型来处理输入视频或视频部分。在一些示例中,相同的数据集可以被用于三阶段训练过程中的所有三个训练阶段。下面参考图3的描述提供了训练整体视频理解系统的附加细节,包括可以被用于训练模型决策引擎106的示例损失函数。
图3是图示整体视频理解系统300的另一示例的示图。如图所示,整体视频理解系统300的组件包括模型决策引擎306,视频处理模型313A、313B到313M,以及分类器312。图3的整体视频理解系统300的一个或多个组件可以类似于图1的整体视频理解系统100的类似组件并且执行类似的操作。例如,模型决策引擎306和分类器312可以与图1的模型决策引擎106和输出分类器112类似并且执行类似的操作。视频处理模型313A、313B到313M是图1的特征提取模型108的示例。
在一些示例中,模型决策引擎306可以被训练以确定来自视频处理模型313A、313B到313M的哪个模型或哪些模型用于处理输入视频302或视频部分(如下文所描述的视频片段υij)。在一些情况下,可以训练模型决策引擎306,以基于视频处理模型313A、313B到313M在处理输入视频302中的计算效率和准确度的组合来确定使用哪个模型或哪些模型。在一些示例中,模型决策引擎306可以包括分类神经网络,其被训练以分类等于视频处理模型313A、313B到313M的数目的N个类。例如,模型决策引擎306可以处理视频数据,并且可以基于处理视频数据来确定针对N个类的概率。模型决策引擎306可以从N个类中选择与具有最高概率值的类相关联的视频处理模型(从视频处理模型313A、313B到313M中)。在一些示例中,模型决策引擎306的神经网络可以包括从输入视频302或视频部分生成一个或多个特征矢量的内部层。在一些情况下,模型决策引擎306的神经网络还可以包括将一个或多个特征矢量的特征组合成N个类的全连接层。
在推断期间(在训练模型决策引擎306之后),模型决策引擎306可以确定视频处理模型313A、313B到313M中的哪一个或哪多个用于处理输入视频302或视频部分。返回参考图1,在一些实施方式中,模型决策引擎306可以从视频检索器102和/或从存储设备104接收输入视频302或视频部分。在一些示例中,可以将输入视频分解成J个大小相等的部分vij。返回参考图1,在一些情况下,视频处理模型313A、313B到313M各自可以包括一个特征提取模型(来自特征提取模型108)和对应的补充模型(来自补充模型110)。如上所述,基于处理输入视频302或视频部分,模型决策引擎306可以生成表示视频处理模型313A、313B至313M中的每个可用模型将为特定输入视频302或视频部分产生最佳输出的概率的分类(例如,N个类)(例如,基于准确度与计算工作量的组合)。在一些示例中,模型决策引擎306可以选择单个视频处理模型(例如,与N个类中具有最高概率的类相关联的视频处理模型)来处理输入视频302或视频部分。在一些情况下,由模型决策引擎306产生的分类可以是单热(one-hot)表示,其中经选择的模型具有值1,而未经选择的模型具有值0。在一个说明性示例中,对于包括两个视频处理模型的整体视频理解系统300,分类矢量[1 0]可以指示模型决策引擎306已经从视频处理模型313A、313B到313M选择第一视频处理模型以处理输入视频302或视频部分vij。
在一些示例中,模型决策引擎306可以从视频处理模型313A、313B到313M选择两个或两个以上视频处理模型以处理输入视频302。例如,当从视频处理模型313A、313B到313M没有明显的最佳选择模型时,模型决策引擎306可以选择两个或更多个视频处理模型来处理输入视频302或视频部分。在一些示例中,在分类器312对输入视频302或视频部分进行最终分类之前,可以组合来自视频处理模型313A、313B至313M中的两个或更多个经选择的视频处理模型的输出。在一个说明性示例中,可以通过求平均来组合两个经选择模型的输出。在一些情况下,分类器312可以从视频处理模型313A、313B到313M接收经选择的视频处理模型的输出(或来自两个或更多个经选择的视频处理模型的组合输出)。使用该输出,分类器312可以对输入视频302或视频部分进行分类。示例分类包括“弹钢琴”、“儿童踢足球”、“制作三明治”和“听古典音乐”。参照图1,存储设备104可以被用于存储由从视频处理模型313A、313B到313M选择的一个(或多个)视频处理模型从视频302的帧提取的特征。
在图3的整体视频理解系统300的训练过程的一个说明性示例中,包含V个视频的数据集D可以被用于训练过程。对于数据集D,υij(其可以对应于图3中的输入视频302)表示来自视频V(其中视频被表示为υi∈V)的视频的J个均匀间隔的(并且可能重叠的)片段。视频片段υij被用作可以由整体视频理解系统300处理的输入视频302的部分(例如,每个视频片段υij包括一部分)的示例。术语表示可以供模型决策引擎306选择的神经网络(例如,图3中的视频处理模型313A、313B到313M)。对于特定的视频片段υij,经选择的神经网络(从视频处理模型313A、313B到313M)可以提供预测/>在一些情况下,可以用交叉熵(CE)损失单独地训练每个单独的神经网络/>如下:
其中是期望值,并且在数据集D之上针对所有的片段υij和相关联的标签yi.迭代地评估损失函数。在一些情况下,可以使用二进制交叉熵(BCE)损失函数来训练每个单独的神经网络/>在一些方面,BCE损失函数可以被用于训练神经网络/>以将多个分类标签应用于单个视频。
在一个说明性示例中,所有的模型可以利用初始学习速率为1e-4的Adam优化器训练十个纪元(epoch)。纪元是整个数据集通过给定模型的一次通过(one pass)。在这样的示例中,模型/>可以分别在纪元二和纪元七被调低到1e-5和1e-6。在一个说明性示例中,如上所描述,在将输入视频302的最小大小调整为224并且提取中央剪裁之后,视频片段υij的输入分辨率是224×224。在该说明性示例中,在训练期间,每个视频处理模型313A至313M可以以分类层结束,该分类层包括具有(p=0.5)的丢弃层和针对特定数据集的类的线性层。
如上所描述,在三阶段训练过程中,可以在第一阶段单独训练特征提取模型108。一旦训练了各个特征提取模型108,就可以在第二阶段中使用具有固定或冻结权重的经训练的特征提取模型108来训练补充模型110。回到图3,在一些示例中,视频处理模型313A、313B至313M可以结合特征提取模型108和补充模型110,如图1所描述。在这样的示例中,第一训练阶段可以被应用于特征提取模型,而第二训练阶段可以被应用于使用上述交叉熵损失的结合在视频处理模型313内的补充模型。在第三阶段中,可以训练模型决策引擎306来预测将哪个神经网络(例如,视频处理模型313A、313B至313M中的哪个)应用于特定视频片段。模型决策引擎306可以由函数π(υij)数学地表示。在一些实施方式中,模型决策引擎306选择使用哪个模型来处理视频或视频部分,其中决策引擎306的选择可以由aij=π(υij)来定义。来自决策引擎306的选择aij(例如,经选择的模型m)的预测可以由以下表示:/>
其中是指示符函数,并且/>是模型m的输出分类。
模型决策引擎306的基本事实标签yi可以通过神经网络运行数据集D的视频片段υij来推断。模型决策引擎306的准确度可以通过以下交叉熵(CE)损失函数(也称为Softmax损失)来评估:
在一些示例中,argmaxm返回具有最大负交叉熵的神经网络(从神经网络选择)的值为1的单热表示。
除了上述CE损失之外,可以应用附加的损失函数来优化模型决策引擎306的决策。例如,也可以使用均匀损失项。均匀损失项迫使模型决策在平均意义上在总数M个可用神经网络(例如,图3的视频处理模型313A、313B到313M)当中选择每个神经网络/>相等数目的次数,如下所表示:
最后,可以使用解决整个系统的效率的损失函数,其中可以优化由FLOP的总数表示的计算工作量。这种损失函数(称为FLOP损失)的示例如下:
组合上述三个损失函数的总损失函数可以被用于训练模型决策引擎106。总损失函数可以被数学地表示如下:
其中α和β是可以被应用于调谐总损失函数的权重。例如,增加β可以增加FLOP损失中的总损失函数因子的程度,而β设置为零将导致总损失函数忽略FLOP损失。
图4是图示整体视频理解系统400的示例的示图。如图所示,整体视频理解系统400的组件包括模型决策引擎406、特征提取模型408、补充模型410和分类器412。在图4的示例中,特征提取模型包括特征提取部分429(其在一些情况下可以是模型决策引擎406的一部分)、第一特征提取模型431和第二特征提取模型433。补充模型410包括第一补充模型435、第二补充模型437和第三补充模型439。由模型决策引擎306处理的输入视频402可以是全视频或视频部分(例如,从图1的视频检索器102和/或存储设备104检索的)。
图4的整体视频理解系统400的一个或多个组件可以类似于图1的整体视频理解系统100和/或本文描述的整体视频理解系统的任何其它示例的类似组件,并且执行类似的操作。例如,补充模型410和分类器412可以与图1的补充模型110和输出分类器112类似并且执行类似的操作。图4的特征提取模型408可以类似于图1的整体视频理解系统的类似组件并且执行类似部分,除了如下所描述的。
与上述类似,可以训练模型决策引擎406来确定来自特征提取模型408的哪个特征提取模型用于处理输入视频402或视频部分。还可以训练模型决策引擎406以从输入视频402或视频部分提取特征。在推断期间(例如,在模型决策引擎406已被训练之后),模型决策引擎可以从输入视频402或视频部分提取特征作为分类过程中的步骤,该分类过程确定使用来自特征提取模型408的哪个特征提取模型来处理输入视频402或视频部分。在一些示例中,当与来自特征提取模型408的其他模型的特征相比时,模型决策引擎406可以确定由来自特征提取模型408的给定模型生成的特征提供最佳的期望结果(例如,准确度和计算工作量的最佳组合)。如上所述,在一些实施方式中,特征提取部分429可以是模型决策引擎406的一部分,并且可以被认为是特征提取模型408之一。如图4所示,包括模型决策引擎406的特征提取部分429的每个特征提取模型408可以与如上关于图1所描述的补充模型410相关联。
在整体视频理解系统400的一个说明性示例中,模型决策引擎406包括MobilenetV2神经网络,模型431包括Resnet-50神经网络,并且模型433包括Slowfast神经网络。在这样的说明性示例中,补充模型435和补充模型437可以各自包括1D卷积网络(例如,如以上关于图2A和图2D所描述的1D卷积网络)。继续相同的示例,补充模型439可以包括MLP。MobileNetV2和Resnet-50网络是从各个视频帧提取空间特征的2D CNN。来自MobileNetV2和Resnet-50网络的空间特征可以利用来自补充1D卷积网络的时间信息来补充。Slowfast网络包括3D CNN,其提取包括多个视频帧的3D卷积中的空间和时间信息的特征。在这样的示例中,MobileNetV2网络(模型决策引擎406)可以是计算强度最小的,Resnet-50网络(模型431)可以比MobileNetV2计算强度更大但小于Slowfast,而Slowfast(模型433)可以是计算强度最大的。模型决策引擎406可以选择可用特征提取模型(例如,特征提取部分429以及第一和第二特征提取模型431和433)中的每一个的情况(例如,基于输入视频402或其部分中的内容类型)的示例在上面参考图1描述。
图5是图示整体视频理解系统500的示图。如图所示,整体视频理解系统500的组件包括模型决策引擎506、特征提取模型508、补充模型510、组合器511和分类器512。图5的整体视频理解系统500的一个或多个组件可以类似于图1的整体视频理解系统100和/或本文描述的整体视频理解系统的任何其它示例的类似组件,并且执行类似的操作。例如,特征提取模型508、补充模型510和分类器512可以与图1的特征提取模型108、补充模型110和输出分类器112类似并且执行类似的操作。输入视频502可以由模型决策引擎506处理。参考图1作为示例,可以从视频检索器102或从存储设备104检索输入视频502。如图4所示,示例整体视频理解系统400包括特征提取模型408与补充模型410之间的一对一(1:1)关系。图5的整体视频理解系统500示出了一种配置,其中特征提取模型508的每个特征提取模型可以具有与补充模型510的1对多(1:多)或多对多(多:多)关系。
在一些示例中,可以训练模型决策引擎506以确定将使用哪个(些)特征提取模型508来处理输入视频502或视频部分。还可以训练模型决策引擎506以确定将来自补充模型510的哪个(些)补充模型应用于由特征提取模型(选自特征提取模型508)生成的特征以实现目标目的。目标目的的一个示例是实现效率与准确度之间的最佳平衡。在一些示例中,经选择的特征提取模型(来自特征提取模型508)与经选择的补充模型(来自补充模型510)的每个配对可以类似于图3的视频处理模型313A、313B至313M中的一者。
可以使用上述三步训练过程来训练整体视频理解系统500。例如,如上所描述,可以在特征提取模型508和补充模型510被训练(在训练之后具有固定或冻结权重)之后的第三步中训练模型决策引擎506。在推断期间(例如,在模型决策引擎506已被训练之后),模型决策引擎506可以基于输入视频502或输入视频502的一部分(例如,输入视频502的片段υij)来确定将使用来自特征提取模型508的哪个(些)特征提取模型和来自补充模型510的哪个(些)补充模型来处理输入视频502或视频部分。
在一些实施方式中,模型决策引擎506可以输出允许选择与来自补充模型510的一个或多个补充模型配对的单个特征提取模型508的分类。在一个示例中,模型决策引擎可以选择O个(其中O是一个或多个、两个或更多、或其他数目)补充模型来处理来自特征提取模型508的特征提取模型的输出。在这样的示例中,来自补充模型510的O个补充模型中的每一个可以接收由来自特征提取模型508的经选择的特征提取模型提取的特征。O个补充模型中的每个补充模型可以处理特征并且可以产生输出,从而从O个补充模型产生O个总输出(例如,特征矢量)。在一些示例中,组合器511可以接收O个输出并且可以将O个输出组合成单个输出(例如,单个特征矢量)。在一个说明性示例中,组合器511可以对O个输出进行平均以将O个输出组合成单个输出,该单个输出可以被提供给分类器512以用于对输入视频502或视频部分进行分类。在一个说明性示例中,组合器511可以级联O个输出以将O个输出组合成单个输出,然后可以将其提供给分类器512以对输入视频502或视频部分进行分类。
图5突出了模型决策引擎506从特征提取模型508选择单个特征提取模型(例如,特征提取模型541)的说明性情况。来自经选择的特征提取模型541的特征由来自补充模型510的两个经选择的补充模型(例如,补充模型543和补充模型545)接收。此外,在这样的说明性示例中,经选择的补充模型543的输出547和经选择的补充模型545的输出549由组合器511接收。如上所描述,组合器511可以组合两个输出547和549(例如,通过平均与输出547和549相关联的特征矢量的值、通过级联与输出547相关联的特征矢量的值和与输出549相关联的特征矢量的值、或者以其他方式组合输出547和549)。
在一些示例中,模型决策引擎506可以输出用于处理输入视频502的单热分类(例如,选择与单个补充模型510配对的单个特征提取模型508)。在一些实施方式中,当来自补充模型510的仅一个补充模型产生输出时,组合器511可以将输出直接(不改变输出)传递到分类器512以用于分类。
图6是图示整体视频理解系统600的另一示例的示图。如图所示,整体视频理解系统600的组件包括模型决策引擎606、特征提取模型、补充模型610、组合器611、分类器612和第二补充模型决策引擎651。如图所示,特征提取模型包括第一特征提取模型608A和第二特征提取模型608B。补充模型610包括第一补充模型653、第二补充模型655、第三补充模型657和第四补充模型659。图6的整体视频理解系统600的一个或多个组件可以类似于图1的整体视频理解系统100和/或本文描述的整体视频理解系统的任何其它示例的类似组件,并且执行类似的操作。例如,模型决策引擎606、特征提取模型608A和608B、补充模型610和分类器612可以与图1的特征提取模型108、补充模型110和输出分类器112类似并且执行类似的操作。在一些情况下,图6的整体视频理解系统600的组合器611可以类似于图5的整体视频理解系统500的组合器511并且执行类似的操作。
输入视频602可以由模型决策引擎606处理。参考图1作为示例,可以从视频检索器102或存储设备104检索输入视频602或视频部分。图6介绍了次级模型决策引擎651的概念,其可以被设置在特征提取模型608A和608B与补充模型610之间。如图所示,次级模型决策引擎651可以从第一特征提取模型608A接收特征。可以训练次级模型决策引擎651以确定来自与第一特征提取模型608A耦合的补充模型610(例如,补充模型653、655和657)中的哪个(些)补充模型用于处理由第一特征提取模型608A生成的特征。在一些情况下,可以训练模型决策引擎651以基于计算效率和准确度的期望组合来确定使用补充模型653、655和657中的哪个来进一步处理第一特征提取模型608A的特征。
在推断期间(在次级模型决策引擎651已经被训练之后),次级模型决策引擎651可以基于模型决策引擎606的决策来从第一特征提取模型608A接收特征。在一个示例中,基于从第一特征提取模型608A接收的特征的特性,次级模型决策引擎651可以确定应该使用补充模型653、655和/或657中的哪一个或哪多个来进一步处理来自第一特征提取模型608A的特征。在一些示例中,次级模型决策引擎651可以选择补充模型653、655和/或657中的两个或更多个。在一个说明性示例中,次级模型决策引擎651可以选择补充模型653和655。在这样的示例中,经选择的补充模型653和655中的每一个都可以接收由第一特征提取模型608A从输入视频602提取的特征,处理所接收的特征,并且将相应的输出提供给组合器611。组合器611可以组合从补充模型653和655接收的输出(例如,通过平均输出、级联输出、或以其他方式组合输出)。组合器611可以将组合的输出传递到分类器612以用于视频或视频部分的分类。
在模型决策引擎606选择第二特征提取模型608B以从输入视频602或视频部分提取特征的另一示例中,模型决策引擎651可以不对输入视频602或视频部分执行动作。在这样的示例中,由第二特征提取模型608B生成的特征可以被输出到补充模型659以用于进一步处理。补充模型659可以将其输出提供给组合器611。组合器611然后可以将输出转发到分类器612,以对输入视频602或视频部分进行分类。
本领域技术人员应当理解,利用次级模型决策引擎651的原理不限于两个特征提取模型608A和608B的特定拓扑,其中三个补充模型653、655、657被配置为接收来自第一特征提取模型608A的输入,并且一个补充模型659被耦合以接收来自第二特征提取模型608B的输入。可以结合模型决策引擎651使用任何其他合适的配置。例如,在一些情况下,次级模型决策引擎651可以被用于任何配置中,其中存在至少两个可以用于处理由特征提取模型608A和608B之一生成的特征的补充模型。在一些示例中,可以使用多个次级模型决策引擎651,其中特征提取模型608A和608B中的多于一个被耦合到两个或更多个补充模型610。
图7是图示整体视频理解系统700的备选配置的示图。如图所示,整体视频理解系统700的组件包括特征提取模型、补充模型710、组合器711和分类器712。特征提取模型包括第一特征提取模型708A和第二特征提取模型708B。补充模型710包括第一补充模型753、第二补充模型755、第三补充模型757和第四补充模型759。图7的整体视频理解系统700的组件可以与图6的整体视频理解系统600和/或本文所描述的整体视频理解系统的任何其它示例的类似组件类似,并且执行类似的操作。例如,整体视频理解系统700的每个组件可以与图6的对应组件类似并且执行类似的操作。图7的整体视频理解系统700不包括模型决策引擎(例如,模型决策引擎606)或次级模型决策引擎(例如,次级模型决策引擎651),而是利用可用的特征提取模型708A和708B以及对应的补充模型753、755、757和759来处理输入视频702或视频部分。
输入视频702可以由第一特征提取模型708A和第二特征提取模型708B处理。参考图1作为示例,可以从视频检索器102或存储设备104检索输入视频702。补充模型753、755和757可以处理由第一特征提取模型708A输出的特征(例如,一个或多个特征矢量)。补充模型759可以处理由第一特征提取模型708B输出的一个或多个特征(例如,特征矢量)。在图7的示例中,组合器711组合(例如,通过平均、级联等)补充模型753、755、757和759的所有输出,并且将组合的输出提供给分类器712。分类器712可以基于来自组合器711的输出(例如,组合的特征矢量)来对输入视频702或视频部分进行分类。
在图7的配置中,不管输入视频的特性如何,都发生通过所有可用路径(例如,通过所有特征提取模型和所有补充模型710)来处理输入视频702。与将单个固定模型应用于输入视频702相比,图7所示的整体视频理解系统700在可以应用多个特征提取模型(例如,特征提取模型708A和特征提取模型708B)和多个补充模型710(其可以各自应用如上面关于图1所描述的不同的感应偏置)的意义上是整体的。
下面的表2示出了比较两种配置的实验结果,该两种配置利用了上面表1中所示并且随后描述的四个模型2-5。表2将使用模型决策引擎在模型之间选择的潜在性能(以mAP测量)与对来自多个模型的结果求平均的策略进行比较。例如,表2的第一行示出了类似于图7的整体视频理解系统700的配置的实验结果,其同时通过所有四个模型2-5处理输入视频。图7的组合器711平均四个模型2-5的输出。在实验中,组合的输出由图7的分类器712分类。
表2
表2的第二行示出了用于选择最佳模型或模型子集的实验结果,所述最佳模型或模型子集用于基于关于哪个(哪些)模型提供最佳准确度的实验数据来处理每个输入视频或视频部分。通过为每个输入视频或视频部分选择在行1中平均的一个或多个模型来获得表2的第二行中的值。如表2的第二行所示,相对于第一行所示的平均,平均准确度和跨各个类别(例如,动作、概念、事件、对象和场景)的准确度得到改善。表2示出了利用如本公开中描述的模型决策引擎(例如,图1中的模型决策引擎106)可以相对于挑选所有模型并对结果求平均的方法提高准确度。
图8图示了与仅使用固定模型的方法和在处理路径之间随机选择的方法(例如,每个路径可以表示特征提取模型和补充模型的配对)相比,使用参考图6的模型决策引擎606的整体视频理解系统600的相对性能的实验图。将实验结果的mAP绘制在竖直轴上,并且将以每片段GFLOP测量的计算工作量绘制在水平轴上。在与图8中的曲线相关联的实验中,使用MobileNetV2来实施模型决策引擎106。在实验中,使用相同的视频数据集测试本文描述的每个配置。使用Resnet-50实施的2D CNN被用作第一特征提取模型608A。第二模型决策引擎651被设置为将所有三个补充模型653、655和657应用于第一特征提取模型608A的输出。例如,每当模型决策引擎106选择第一特征提取模型608A来处理视频(或视频的一部分,诸如视频片段υij)时,通过补充模型653、655和657中的所有三个来处理由特征提取模型608A生成的特征。组合器611组合来自三个补充模型的输出(例如,通过平均、级联或以其他方式组合来自补充模型的特征)。组合器611将组合输出提供给分类器612以用于分类。在实验中,在时间维度上的1D卷积(如关于图2A和图2B所描述的)被用于补充模型653,非本地时间模型被用于补充模型655,并且图形卷积被用于补充模型657。使用Slowfast模型实施的3DCNN被用于第二特征提取模型608B,而MLP被用作补充模型659。在实验中,每当模型决策引擎606选择第二特征提取模型608B来处理视频(或视频的一部分)时,第二特征提取模型608B的特征被输入到补充模型659中,组合器611不执行任何操作(因为仅单个结果被传递到其输入),并且补充模型659的输出由分类器612分类。
图8的曲线图中的数据点836A和836G示出了使用模型决策引擎106在第一特征提取模型608A与第二特征提取模型608B之间进行选择的结果。例如,数据点836A表示模型决策引擎606总是选择第一特征提取模型608A的结果,而数据点836G表示模型决策引擎106总是选择第二特征提取模型608B的结果。该组数据点836A、836B、836C、836D、836E、836F和836G分别表示根据比例[0.0,0.1,0.3,0.5,0.7,0.9,1.0]在第一特征提取模型608A与第二特征提取模型608B之间随机选择的结果,其中0.0表示总是选择第一特征提取模型608A,并且1.0表示总是选择第二特征提取模型608B。如图所示,数据点830的mAP超过数据点836A和836G,表明使用模型决策引擎106比只使用第一特征提取模型608A或第二特征提取模型608B提高了准确度。基于平均提高的准确度,图8中的曲线图示出了模型决策引擎106基于视频的视觉或时间特征来挑选模型。
如上所述,本文描述的整体视频理解系统(例如,整体视频理解系统100、300、400、500和/或600)和相关技术可以允许系统在视频处理机器学习模型中自适应地选择,以跨多个类别(例如,动作、属性、事件、对象和场景)高效并且准确地对视频内容进行分类。例如,使用整体视频理解系统100,包含静态场景的第一视频部分可以由2D CNN分析以从第一视频部分提取用于检测场景中的对象的空间特征,并且包含体育事件的第二视频部分可以由3D CNN分析以从第二视频部分提取空间和时间特征以检测对象和与这些对象相关联的动作。通过利用模型决策引擎106(从特征提取模型108)选择适合于相关视频部分的特性(例如,相关视频部分的信息类型、运动等)并且比其他可用特征提取模型108计算强度更低的特征提取模型,系统(例如,计算系统)的计算和功率资源可以被节省以用于其他操作。除了节省系统的计算和功率资源之外,包括具有不同感应偏置的各种补充模型110可以通过提供专门用于识别更广泛种类的模型来使整体视频理解系统100更加整体化。相比较而言,当被分析的视频包含固定模型被优化以检测的数据类别时,包括用于所有输入视频的固定模型的系统可以表现良好,但是当被分析的视频包含不同类别的信息时,可能损失准确度和/或耗费不必要的计算工作量。
图9是图示根据一些示例的使用整体视频理解系统来处理视频的过程900的示例的流程图。在块902处,过程900包括:获得第一视频。在一些示例中,过程900可以从存储设备获得第一视频。在一个说明性示例中,存储设备包括图1所示的存储设备104和/或图12所示的存储设备1230。
在块904处,过程900包括:使用机器学习模型决策引擎从机器学习模型集合确定第一机器学习模型(例如,以用于处理该第一视频的至少一部分)。该第一机器学习模型可以基于该第一视频的至少该部分的一个或多个特性来被确定。在一个说明性示例中,模型决策引擎包括图1所示的模型决策引擎106。在一些示例中,该模型决策引擎包括神经网络(例如,MobileNetV2神经网络和/或Resnet-50神经网络)。在一个说明性示例中,该机器学习模型集合包括图1所示的特征提取模型108。在另一说明性示例中,该机器学习模型集合包括图3所示的模型313A、313B至313M。
在一些示例中,该第一机器学习模型包括卷积神经网络(CNN),如上所描述。例如,在一些示例中,该CNN包括二维CNN(例如,MobileNetV2或Resnet-50)、三维CNN(例如,Slowfast)、或其它CNN。在一些情况下,该第一机器学习模型可以包括第一类型的CNN,其不同于被包括在该机器学习模型集合中的至少一些其它机器学习模型中的CNN。在一些示例中,该第一视频的至少该部分的该一个或多个特性包括空间、时间和/或音频特性。
在块906处,过程900包括:使用该第一机器学习模型处理该第一视频的至少该部分。如本文所描述,处理该第一视频的至少该部分可以包括:从该第一视频的至少该部分提取特征,使用一个或多个补充模型处理特征,以及将第一视频的至少该部分分类等。
在一些示例中,过程900可以包括:基于使用该第一机器学习模型处理该第一视频的至少该部分来确定该第一视频的至少该部分的分类。在一些示例中,在分类期间被确定的类可以包括踢足球、弹小提琴、听音乐等。在一个说明性示例中,图1所示的输出分类器112确定该分类。在一些示例中,过程900包括:确定识别被包括在该第一视频的至少该部分中的多个类的分类,如上所描述。
在一些示例中,过程900包括:使用该第一机器学习模型从该第一视频的至少该部分提取第一一个或多个特征。在一些情况下,第一机器学习模型包括神经网络,诸如二维(2D)CNN。在这种情况下,该2D CNN可以在两个空间维度中从该第一视频的至少该部分提取第一一个或多个特征。在一些实施方式中,该第一机器学习模型包括3D CNN。在这样的实施方式中,该3D CNN可以在两个空间维度和一个时间维度中从该视频视频的至少该部分提取第一一个或多个特征。
过程900可以包括:使用第一补充模型处理由该第一机器学习模型从该第一视频的至少该部分提取的该第一一个或多个特征。在一个说明性示例中,该第一补充模型包括被包括在图1所示的补充模型110中的补充模型。在一些情况下,该第一补充模型包括神经网络,诸如一维(1D)CNN。例如,当该第一补充模型包括1D CNN时,该第一一个或多个特征可以包括:基于该第一视频的至少该部分的第一帧的第一特征矢量以及基于该第一视频的至少该部分的第二帧的第二特征矢量。在这种情况下,该1D CNN可以从至少该第一特征矢量和该第二特征矢量生成该第一视频的至少该部分的时间信息。在一个说明性示例中,该1DCNN执行图2D中所示和上面所描述的卷积。在一些情况下,该第一补充模型包括多层感知器。在一些实施方式中,该第一补充模型包括图形卷积网络。在一些情况下,该第一补充模型包括非本地模型。在一些示例中,过程900包括基于使用该第一补充模型处理该第一一个或多个特征来确定第一视频的至少该部分的第一分类。
在一些示例中,过程900包括:使用该机器学习模型决策引擎从该机器学习模型集合确定第二机器学习模型(例如,以用于处理该第一视频的至少另一部分)。该第二机器学习模型可以基于该第一视频的至少另一部分的一个或多个特性来被确定。在一些情况下,过程900包括:使用该第二机器学习模型处理该第一视频的该至少另一部分。在一个方面,该第二机器学习模型可以包括与该第一机器学习模型的一个或多个神经网络(例如,CNN)不同的神经网络(例如,CNN)。在一些情况下,过程900包括:使用该第二机器学习模型从该第一视频的该至少另一部分提取第二一个或多个特征。过程900可以包括:使用第二补充模型处理由该第二机器学习模式从该第一视频的该至少另一部分提取的该第二一个或多个特征。在一些示例中,过程900可以基于来自该第二补充模型的该一个或多个特征来确定该第一视频的该至少另一部分的第二分类。
在一些示例中,过程900可以获得第二视频。过程900可以确定第二机器学习模型(例如,以用于处理该第二视频的至少一部分)。该第二机器学习模型可以基于第二视频的至少该部分的一个或多个特性来被确定。在一些示例中,过程900可以从存储设备获得该第二视频。在一个说明性示例中,该存储设备包括图1所示的存储设备104和/或图12所示的存储设备1230。过程900可以使用该第二机器学习模型处理该第二视频的至少该部分。
在一些示例中,过程900包括:与从该机器学习模型集合确定该第一机器学习模型以用于处理该第一视频的至少该部分并行地,使用该第一机器学习模型从该第一视频的至少该部分提取第一一个或多个特征。在一些情况下,该机器学习模型决策引擎与该第一机器学习模型共享公共神经网络。在一个说明性示例中,与该第一机器学习模型共享公共神经网络的该模型决策引擎可以包括如图4所示的模型决策引擎406和特征提取组件429。
在一些示例中,本文描述的过程(例如,过程900和/或本文描述的其他过程)可以由计算设备或装置来执行。在一个示例中,一个或多个过程可以由图1的整体视频理解系统100执行。在另一示例中,一个或多个过程可以由图12所示的计算系统1200执行。例如,具有图12所示的计算系统1200的计算设备可以包括整体视频理解系统100的组件,并且可以实施图9的过程900和/或本文所描述的其它过程的操作。
计算设备可以包括任何合适的设备,诸如移动设备(例如,移动电话)、台式计算设备、平板计算设备、可穿戴设备(例如,VR头戴式耳机、AR头戴式耳机、AR眼镜、网络连接的手表或智能手表、或其它可穿戴设备)、车辆或车辆的计算设备(例如,车辆的驾驶员监控系统(DMS))、服务器计算机、机器人设备、电视、和/或具有执行本文所描述过程(包括过程900和/或本文描述的其他过程)的资源能力的任何其它计算设备。在一些情况下,计算设备或装置可以包括各种组件,诸如一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机、一个或多个相机、一个或多个传感器、和/或被配置为执行本文所描述过程的步骤的其它组件。在一些示例中,计算设备可以包括显示器、被配置为通信和/或接收数据的网络接口、其任何组合、和/或其它组件。网络接口可以被配置为通信和/或接收基于互联网协议(IP)的数据或其它类型的数据。
计算设备的组件可以在电路中实施。例如,组件可以包括电子电路或其他电子硬件和/或可以使用电子电路或其他电子硬件来实施,电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)、和/或其他合适的电子电路),和/或可以包括计算机软件、固件或其任何组合和/或使用计算机软件、固件或其任何组合来实施,以执行本文所描述的各种操作。
过程900被图示为逻辑流程图,其操作表示可以在硬件、计算机指令或其组合中实施的操作序列。在计算机指令的上下文中,操作表示被存储在一个或多个计算机可读存储介质上的计算机可执行指令,当由一个或多个处理器执行时,该计算机可执行指令执行所记载的操作。通常,计算机可执行指令包括执行特定功能或实施特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不意在被解释为限制性的,并且可以以任何顺序和/或并行地组合任何数目的所描述的操作以实施过程。
另外,过程900和/或本文描述的其他过程可以在被配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以被实施为在一个或多个处理器上、通过硬件或其组合共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。如上所述,代码可以例如以包括能够由一个或多个处理器执行的多个指令的计算机程序的形式被存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂时性的。
如上所述,本公开的各个方面可以使用机器学习模型或系统。图10是可以被用于实施上述整体视频理解系统的深度学习神经网络1000的说明性示例。输入层1020包括输入数据。在一个说明性示例中,输入层1020可以包括表示输入视频帧的像素的数据。神经网络1000包括多个隐藏层1022a、1022b到1022n。隐藏层1022a、1022b到1022n包括“n”个隐藏层,其中“n”是大于或等于一的整数。可以使隐藏层的数目包括给定应用所需的尽可能多的层。神经网络1000还包括输出层1021,其提供由隐藏层1022a、1022b到1022n执行的处理产生的输出。在一个说明性示例中,输出层1021可以为输入视频帧中的对象提供分类。分类可以包括标识活动类型(例如,踢足球、弹钢琴、听钢琴、弹吉他等)的类。
神经网络1000是互连节点的多层神经网络。每个节点可以表示一条信息。与节点相关联的信息在不同的层之间共享,并且每层在信息被处理时保留信息。在一些情况下,神经网络1000可以包括前馈网络,在这种情况下没有反馈连接,其中网络的输出被反馈到自身中。在一些情况下,神经网络1000可以包括递归神经网络,其可以具有允许在读入输入时跨节点携带信息的循环。
可以通过各层之间的节点到节点互连在节点之间交换信息。输入层1020的节点可以激活第一隐藏层1022a中的节点集合。例如,如图所示,输入层1020的每个输入节点被连接到第一隐藏层1022a的每个节点。第一隐藏层1022a的节点可以通过对输入节点信息应用激活函数来变换每个输入节点的信息。从转换导出的信息然后可以被传递到并且可以激活下一个隐藏层1022b的节点,该节点可以执行它们自己的指定功能。示例功能包括卷积、上采样、数据变换和/或任何其他合适的功能。然后,隐藏层1022b的输出可以激活下一个隐藏层的节点,等等。最后隐藏层1022n的输出可以激活输出层1021中提供输出的一个或多个节点。在一些情况下,虽然神经网络1000中的节点(例如,节点1026)被示出为具有多条输出线,但是节点具有单个输出,并且被示为从节点输出的所有线表示相同的输出值。
在一些情况下,每个节点或节点之间的互连可以具有权重,该权重是从神经网络1000的训练导出的一组参数。一旦训练了神经网络1000,就可以将其称为经训练的神经网络,其可以被用于对一个或多个活动进行分类。例如,节点之间的互连可以表示关于互连节点学习的一条信息。互连可以具有可调谐的数字权重,该数字权重可以被调谐(例如,基于训练数据集),从而允许神经网络1000自适应于输入并且能够随着越来越多的数据被处理而学习。
神经网络1000被预训练以使用不同的隐藏层1022a、1022b到1022n处理来自输入层1020中的数据的特征,以便通过输出层1021提供输出。在神经网络1000用于在帧中识别驾驶员正在执行的活动的示例中,可以使用包括帧和标签的训练数据来训练神经网络1000,如上所描述。例如,可以将训练帧输入到网络中,其中每个训练帧具有指示帧中的特征的标签(用于特征提取机器学习系统)或指示每个帧中的活动的类的标签。在出于说明性目的使用对象分类的一个示例中,训练帧可以包括数字2的图像,在这种情况下,图像的标签可以是[0 0 1 0 0 0 0 0 0 0]。
在一些情况下,神经网络1000可以使用称为反向传播的训练过程来调整节点的权重。如上所描述,反向传播过程可以包括前向传递、损失函数、后向传递和权重更新。对一次训练迭代执行前向传递、损失函数、后向传递和参数更新。可以对每个训练图像集合重复该过程一定次数的迭代,直到神经网络1000被足够好地训练,使得层的权重被准确地调谐。
对于在帧中识别对象的示例,前向传递可以包括通过神经网络1000传递训练帧。在训练神经网络1000之前,最初将权重随机化。作为说明性示例,帧可以包括表示图像的像素的数字阵列。阵列中的每个数字可以包括描述阵列中该位置处的像素强度的、从0到255的值。在一个示例中,该阵列可以包括具有28行和28列像素以及3个颜色分量(例如,红色、绿色和蓝色,或者亮度和两个色度分量等)的28×28×3数字阵列。
如上所述,对于神经网络1000的第一训练迭代,输出将可能包括由于在初始化时随机选择的权重而不优先于任何特定类的值。例如,如果输出是具有对象包括不同类的概率的矢量,则每个不同类的概率值可以相等或者至少非常相似(例如,对于十个可能的类,每个类可以具有0.1的概率值)。利用初始权重,神经网络1000不能确定低级特征,因此不能准确确定对象的分类可能是什么。损失函数可以被用于分析输出中的误差。可以使用任何合适的损失函数定义,诸如交叉熵损失。损失函数的另一示例包括均方误差(MSE),定义为可以将损失设置为等于Etotal的值。
第一训练图像的损失(或误差)将很高,因为实际值将与预测输出有很大不同。训练的目标是最小化损失量,使得预测的输出与训练标签相同。神经网络1000可以通过确定哪个输入(权重)对网络的损失贡献最大来执行后向传递,并且可以调整权重,使得损失减小并且最终最小化。可以计算损失相对于权重的导数(表示为dL/dW,其中W是特定层的权重),以确定对网络损失贡献最大的权重。在计算导数之后,可以通过更新滤波器的所有权重来执行权重更新。例如,可以更新权重,使得它们在梯度的相反方向上改变。权重更新可以被表示为其中w表示权重,wi表示初始权重,并且η表示学习速率。学习速率可以被设置为任何合适的值,其中高的学习速率包括较大的权重更新,而较低的值指示较小的权重更新。
神经网络1000可以包括任何合适的深度网络。一个示例包括卷积神经网络(CNN),其包括输入层和输出层,在输入层与输出层之间具有多个隐藏层。CNN的隐藏层包括一系列卷积、非线性、池化(用于下采样)和全连接层。神经网络1000可以包括除了CNN之外的任何其他深度网络,诸如自动编码器、深度信念网络(DBN)、递归神经网络(RNN)等。
图11是卷积神经网络(CNN)1100的说明性示例。CNN 1100的输入层1120包括表示图像或帧的数据。例如,数据可以包括表示图像的像素的数字阵列,其中阵列中的每个数字包括描述阵列中该位置处的像素强度的、从0到255的值。使用来自上文的先前示例,该阵列可以包括具有28行和28列像素以及3个颜色分量(诸如红色、绿色和蓝色,或者亮度和两个色度分量等)的28×28×3的数字阵列。图像可以通过卷积隐藏层1122a、可选的非线性激活层、池化隐藏层1122b和全连接隐藏层1122c,以在输出层1124处获得输出。虽然在图11中仅示出了每个隐藏层中的一个,但是普通技术人员将理解,在CNN 1100中可以包括多个卷积隐藏层、非线性层、池化隐藏层和/或全连接层。如前所描述,输出可以指示对象的单个类,或者可以包括最好地描述图像中的对象的类的概率。
CNN 1100的第一层是卷积隐藏层1122a。卷积隐藏层1122a分析输入层1120的图像数据。卷积隐藏层1122a的每个节点被连接到被称为感受野(receptive field)的输入图像的节点(像素)的区域。卷积隐藏层1122a可以被认为是一个或多个滤波器(每个滤波器对应于不同的激活或特征映射),其中滤波器的每个卷积迭代是卷积隐藏层1122a的节点或神经元。例如,滤波器在每次卷积迭代处覆盖的输入图像的区域将是滤波器的感受野。在一个说明性示例中,如果输入图像包括28×28阵列,并且每个滤波器(以及相应的感受野)是5×5阵列,则在卷积隐藏层1122a中将有24×24个节点。节点与用于该节点的感受野之间的每个连接都会学习权重,并且在某些情况下,还会学习整体偏置,使得每个节点学习分析其在输入图像中的特定本地感受野。隐藏层1122a的每个节点将具有相同的权重和偏置(称为共享权重和共享偏置)。例如,滤波器具有权重(数字)阵列和与输入相同的深度。对于视频帧示例,滤波器将具有3的深度(根据输入图像的三个颜色分量)。滤波器阵列的说明性示例大小为5×5×3,对应于节点的感受野的大小。
卷积隐藏层1122a的卷积性质是由于卷积层的每个节点被应用于其对应的感受野。例如,卷积隐藏层1122a的滤波器可以在输入图像阵列的左上角开始,并且可以围绕输入图像卷积。如上所述,滤波器的每个卷积迭代可以被认为是卷积隐藏层1122a的节点或神经元。在每次卷积迭代时,滤波器的值乘以图像的对应数量的原始像素值(例如,5×5滤波器阵列乘以输入图像阵列的左上角处的输入像素值的5×5阵列)。可以将来自每个卷积迭代的乘法相加在一起以获得该迭代或节点的总和。接下来,根据卷积隐藏层1122a中的下一节点的感受野,在输入图像中的下一位置继续该过程。例如,可以将滤波器移动一步量(称为步长)到下一感受野。步长可以被设置为1或其他合适的量。例如,如果将步长设置为1,则滤波器将在每次卷积迭代时向右移动1个像素。在输入卷的每个唯一位置处处理滤波器产生表示该位置的滤波器结果的数字,从而为卷积隐藏层1122a的每个节点确定总和值。
从输入层到卷积隐藏层1122a的映射被称为激活映射(或特征映射)。激活映射包括表示输入体积的每个位置处的滤波结果的每个节点的值。激活映射可以包括阵列,该阵列包括由滤波器在输入体积上的每次迭代产生的各个总和值。例如,如果5×5滤波器被应用于28×28输入图像的每个像素(步长为1),则激活映射将包括24×24阵列。卷积隐藏层1122a可以包括若干激活映射,以便标识图像中的多个特征。图11所示的示例包括三个激活映射。使用三个激活映射,卷积隐藏层1122a可以检测三种不同类型的特征,其中每个特征在整个图像上是可检测的。
在一些示例中,可以在卷积隐藏层1122a之后应用非线性隐藏层。非线性层可以用于将非线性引入到已经计算线性操作的系统。非线性层的一个说明性示例是整流线性单元(ReLU)层。ReLU层可以将函数f(x)=max(0,x)应用于输入体积中的所有值,这会将所有负激活改变为0。因此,在不影响卷积隐藏层1122a的感受野的情况下,ReLU可以增加CNN 1100的非线性属性。
可以在卷积隐藏层1122a之后(以及在使用时在非线性隐藏层之后)应用池化隐藏层1122b。池化隐藏层1122b用于简化来自卷积隐藏层1122a的输出中的信息。例如,池化隐藏层1122b可以获取从卷积隐藏层1122a输出的每个激活映射,并且使用池化函数生成经压缩激活映射(或特征映射)。最大池化是由池化隐藏层执行的功能的一个示例。池化隐藏层1122a可以使用其它形式的池化函数,诸如平均池化、L2范数池化或其它合适的池化函数。池化函数(例如,最大池化滤波器、L2范数滤波器或其它合适的池化滤波器)被应用于被包括在卷积隐藏层1122a中的每个激活映射。在图11所示的示例中,三个池化滤波器被用于卷积隐藏层1122a中的三个激活映射。
在一些示例中,可以通过将具有步长(例如,等于滤波器的维度,诸如步长2)的最大池化滤波器(例如,具有2×2的大小)应用于从卷积隐藏层1122a输出的激活映射来使用最大池化。来自最大池化滤波器的输出包括滤波器围绕其卷积的每个子区域中的最大数字。使用2×2滤波器作为示例,池化层中的每个单元可以汇总先前层中的2×2节点的区域(其中每个节点是激活映射中的值)。例如,激活映射中的四个值(节点)将在滤波器的每次迭代中由2x2最大池化滤波器进行分析,其中四个值中的最大值作为“max(最大)”值输出。如果这种最大池化滤波器被应用于来自具有24×24节点维度的卷积隐藏层1122a的激活滤波器,则来自池化隐藏层1122b的输出将是12×12节点的阵列。
在一些示例中,也可以使用L2范数池化滤波器。L2范数池化滤波器包括计算激活映射的2×2区域(或其他合适的区域)中的值的平方和的平方根(而不是如在最大池化中所做的那样计算最大值),并且使用所计算的值作为输出。
直观地,池化功能(例如,最大池化、L2范数池化或其它池化功能)确定是否在图像区域中的任何地方找到给定特征,并且丢弃精确的位置信息。这可以在不影响特征检测结果的情况下完成,因为一旦发现特征,特征的精确位置就不如其相对于其他特征的近似位置那么重要。最大池化(以及其它池化方法)提供以下益处:存在更少的池化特征,从而减少了CNN 1100的稍后层中所需的参数的数量。
网络中的最终连接层是将来自池化隐藏层1122b的每个节点连接到输出层1124中的每个输出节点的全连接层。使用上述示例,输入层包括对输入图像的像素强度进行编码的28×28节点,卷积隐藏层1122a包括基于将5×5本地感受野(用于滤波器)应用于三个激活映射的3×24×24隐藏特征节点,并且池化隐藏层1122b包括基于将最大池化滤波器应用于跨三个特征映射中的每一个的2×2区域的3×12×12隐藏特征节点的层。扩展此示例,输出层1124可以包括十个输出节点。在这样的示例中,3×12×12池化隐藏层1122b的每个节点被连接到输出层1124的每个节点。
全连接层1122c可以获得先前池化隐藏层1122b(其应当表示高级特征的激活映射)的输出,并且确定与特定类最相关的特征。例如,全连接层1122c层可以确定与特定类最强相关的高级特征,并且可以包括高级特征的权重(节点)。可以在全连接层1122c与池化隐藏层1122b的权重之间计算乘积,以获得针对不同类的概率。例如,如果CNN 1100被用于预测视频帧中的对象是人,则高值将存在于激活映射中,其表示人的高级特征(例如,存在两条腿,面部存在于对象的顶部,两只眼睛存在于面部的左上和右上,鼻子存在于面部的中间,嘴存在于面部的底部,和/或人共有的其他特征)。
在一些示例中,来自输出层1124的输出可以包括M维矢量(在先前示例中,M=10)。M指示CNN 1100在对图像中的对象进行分类时必须从中选择的类的数量。还可以提供其他示例输出。M维矢量中的每个数字可以表示对象属于某个类的概率。在一个说明性示例中,如果10维输出矢量表示十个不同类的对象是[0 0 0.05 0.8 0 0.15 0 0 0 0],则该矢量指示图像是第三类对象(例如,狗)的概率为5%,该图像是第四类对象(例如,人)的概率为80%,该图像是第六类对象(例如,袋鼠)的概率为15%。针对类的概率可以被认为是该对象是该类的一部分的置信度。
图12是图示用于实施本技术的某些方面的系统的示例的示图。具体地,图12示出了计算系统1200的示例,其可以是例如构成内部计算系统、远程计算系统、相机或其任何组件的任何计算设备,其中系统的组件使用连接1205彼此通信。连接1205可以是使用总线的物理连接,或者是到处理器1210的直接连接,诸如在芯片组架构中。连接1205也可以是虚拟连接、联网连接或逻辑连接。
在一些实施例中,计算系统1200是分布式系统,其中本公开中所描述的功能可以被分布在数据中心、多个数据中心、对等网络等内。在一些实施例中,所描述的系统组件中的一个或多个表示许多这样的组件,每个组件执行针对其描述组件的功能中的一些或全部。在一些实施例中,组件可以是物理或虚拟设备。
示例系统1200包括至少一个处理单元(CPU或处理器)1210,以及将包括系统存储器1215(诸如只读存储器(ROM)1220和随机存取存储器(RAM)1225)的各种系统组件耦合到处理器1210的连接1205。计算系统1200可以包括与处理器1210直接连接、紧邻处理器1210或作为处理器1210的一部分集成的高速存储器的高速缓存1212。
处理器1210可以包括任何通用处理器和硬件服务或软件服务,诸如被存储在存储设备1230中的服务1232、1234和1236,其被配置为控制处理器1210以及专用处理器,其中软件指令被结合到实际的处理器设计中。处理器1210实质上可以是包含多个核或处理器、总线、存储器控制器、高速缓存等的完全独立的计算系统。多核处理器可以是对称的或不对称的。
为了实现用户交互,计算系统1200包括输入设备1245,其可以表示任何数目的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等。计算系统1200还可以包括输出设备1235,其可以是多个输出机构中的一个或多个。在一些实例中,多模式系统可以使用户能够提供多种类型的输入/输出以与计算系统1200通信。计算系统1200可以包括通信接口1240,其通常可以监管和管理用户输入和系统输出。该通信接口可以使用有线和/或无线收发器来执行或促进接收和/或发送有线或无线通信,该收发器包括利用音频插孔/插头、麦克风插孔/插头、通用串行总线(USB)端口/插头、端口/插头、以太网端口/插头、光纤端口/插头、专有有线端口/插头、无线信号传输、/>低能量(BLE)无线信号传输、/>无线信号传输、射频标识(RFID)无线信号传输、近场通信(NFC)无线信号传输、专用短程通信(DSRC)无线信号传输、802.11Wi-Fi无线信号传输、无线局域网(WLAN)信号传输、可见光通信(VLC)、全球微波接入互操作性(WiMAX)、红外(IR)通信无线信号传输、公共交换电话网(PSTN)信号传输、综合业务数字网(ISDN)信号传输、3G/4G/5G/LTE蜂窝数据网络无线信号传输、自组织网络信号传输、无线电波信号传输、微波信号传输、红外信号传输、可见光信号传输、紫外光信号传输、沿电磁频谱的无线信号传输、或其一些组合的收发器。通信接口1240还可以包括一个或多个全球导航卫星系统(GNSS)接收器或收发器,其被用于基于对来自与一个或多个GNSS系统相关联的一个或多个卫星的一个或多个信号的接收来确定计算系统1200的位置。GNSS系统包括但不限于基于美国的全球定位系统(GPS)、基于俄罗斯的全球导航卫星系统(GLONASS)、基于中国的北斗导航卫星系统(BDS)和基于欧洲的伽利略GNSS。对任何特定硬件布置上的操作没有限制,并且因此本文的基本特征可以容易地在改进的硬件或固件布置被开发时替换为改进的硬件或固件布置。
存储设备1230可以是非易失性和/或非暂时性和/或计算机可读存储设备,并且可以是硬盘或可以存储可由计算机访问的数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、固态存储设备、数字多功能盘、盒式磁带、软盘、柔性盘、硬盘、磁带、磁条/条、任何其他磁存储介质、闪存、忆阻器存储器、任何其他固态存储器、光盘只读存储器(CD-ROM)光盘、可重写光盘(CD)光盘、数字视频光盘(DVD)光盘、蓝光盘(BDD)光盘、全息光盘、另一光学介质、安全数字(SD)卡、微型安全数字(microSD)卡、 卡、智能卡片、EMV片、用户识别模块(SIM)卡、迷你/微/纳/皮SIM卡、另一集成电路(IC)片/卡、随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、快闪EPROM(FLASHEPROM)、高速缓冲存储器(L1/L2/L3/L4/L5/L#)、电阻式随机存取存储器(RRAM/ReRAM)、相变存储器(PCM)、自旋转移力矩RAM(STT-RAM)、另一存储器芯片或盒、和/或其组合。
存储设备1230可以包括软件服务、服务器、服务等,当定义这种软件的代码由处理器1210执行时,它使得系统执行功能。在一些实施例中,执行特定功能的硬件服务可以包括被存储在计算机可读介质中的软件组件,其与诸如处理器1210、连接1205、输出设备1235等必要的硬件组件连接以执行该功能。
如本文所使用的,术语“计算机可读介质”包括但不限于便携式或非便携式存储设备,光学存储设备,以及能够存储、包含或携带指令和/或数据的各种其它介质。计算机可读介质可以包括其中可以存储数据并且不包括无线地传播或在有线连接上传播的载波和/或暂时性电子信号的非暂时性介质。非暂时性介质的示例可以包括但不限于磁盘或磁带,诸如致密碟(CD)或数字通用磁盘(DVD)等光存储介质、闪存、存储器或存储器设备。计算机可读介质上可以存储有代码和/或机器可执行指令,它们可以表示进程、函数、子程序、程序、例程、子例程、模块、软件包、类、或者指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量,参数或存储器内容而被耦合至另一代码段或硬件电路。信息、自变量、参数、数据等可以使用包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的手段来传递、转发或发送。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确地排除了诸如能量、载波信号、电磁波和信号本身的介质。
在以上描述中提供了具体细节以提供对本文提供的实施例和示例的透彻理解。然而,本领域的普通技术人员将理解,可以在没有这些具体细节的情况下实践这些实施例。为了解释清楚起见,在一些情况下,本技术可以被呈现为包括单独的功能块,该单独的功能块包括以软件或硬件和软件的组合体现的方法来包括设备、设备组件、步骤或例程的功能块。除了在附图中示出和/或在此描述的那些之外,可以使用另外的组件。例如,电路、系统、网络、过程和其它组件可以被示出框图形式的组件,以免在不必要的细节上混淆该实施例。在其他实例中,可以在没有不必要的细节的情况下示出公知的电路、过程、算法、结构和技术,以避免混淆实施例。
上面可以将各个实施例描述为被描绘为流程图、流程图表、数据流图、结构图或框图的过程或方法。尽管流程图可以将操作描述为顺序过程,但许多操作可以并行或者同时被执行。此外,可以重新安排操作的顺序。当过程的操作完成时,该过程终止,但可能包括未在图中的附加步骤。过程可以对应于方法、函数、过程、子例程、子程序等。当过程对应于函数时,其终止可以对应于函数返回到调用函数或主函数。
可以使用计算机可执行指令来实施根据上述示例的过程和方法,该计算机可执行指令被存储在计算机可读介质中或可以从计算机可读介质获得。这样的指令可以包括,例如,使得或以其他方式配置通用计算机、专用计算机或处理设备来执行特定功能或功能组的指令和数据。所使用的部分计算机资源可以通过网络访问。计算机可执行指令可以是例如二进制、中间格式指令,诸如汇编语言、固件、源代码等。可以被用于存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、设置有非易失性存储器的USB设备、网络存储设备等。
实施根据这些公开的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采用各种形状因子中的任何一种。当以软件、固件、中间件或微代码实现时,用于执行必要任务(例如,计算机程序产品)的程序代码或代码段可以被存储在计算机可读或机器可读介质中。处理器可以执行必要的任务。形状因子的典型示例包括膝上型计算机、智能电话、移动电话、平板设备或其他小形状因子的个人计算机、个人数字助理、机架式设备、独立设备等。本文描述的功能性也可以被体现在外围设备或插入卡中。作为进一步的示例,此类功能性也可以在电路板上在单个设备中执行的不同芯片或不同过程之间实施。
指令、用于传送该指令的介质、用于执行它们的计算资源、以及用于支持这些计算资源的其他结构是用于提供本公开中所描述的功能的示例部件。
在前面的描述中,参考其特定实施例描述了本申请的各方面,但是本领域技术人员将认识到本申请不限于此。因此,虽然在此已经详细描述了本申请的说明性实施例,但是应当理解,本发明的概念可以以其他方式以各种方式体现和采用,并且所附权利要求旨在被解释为包括除了由现有技术限制之外的这些变化。上述申请的各种特征和方面可以单独或联合使用。此外,在不脱离本说明书的更广泛的精神和范围的情况下,实施例可以在超出本文描述的那些环境和应用的任何数目的环境和应用中使用。因此,说明书和附图被认为是说明性的而不是限制性的。为了说明的目的,以特定的顺序描述方法。应理解,在备选实施例中,方法可以以与所描述的顺序不同的顺序来执行。
普通技术人员将理解,在不脱离本说明书的范围的情况下,本文使用的小于(“<”)和大于(“>”)符号或术语可以分别用小于或等于(“≤”)和大于或等于(“≥”)符号代替。
在组件被描述为“被配置为”进行某些操作的情况下,可以例如通过设计电子电路或其它硬件以执行该操作、通过编程可编程电子电路(例如,微处理器或其它合适的电子电路)以执行该操作、或其任何组合来实现此类配置。
短语“被耦合至”指代被直接或间接地物理连接到另一组件的任何组件,和/或直接或间接地与另一组件通信(例如,通过有线或无线连接和/或其它合适的通信接口连接到另一组件)的任何组件。
表述集合“中的至少一个”和/或集合“中的一个或多个”的权利要求语言或其它语言表示该集合中的一个成员或该集合中的多个成员(以任何组合)满足该权利要求。例如,表述“A和B中的至少一个”或“A或B中的至少一个”的权利要求语言意味着A、B、或A和B。在另一示例中,表述“A、B和C中的至少一个”或“A、B或C中的至少一个”的权利要求语言表示A、B、C、或A和B、或A和C、或B和C、或A和B和C。语言集合“中的至少一个”和/或集合“中的一个或多个”并不将该集合限制为集合中所列的项目。例如,表述“A和B中的至少一个”或“A或B中的至少一个”的权利要求语言可以指A、B、或A和B,并且可以另外包括未在A和B的集合中列出的项目。
结合本文所公开的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可以被实施为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种可互换性,上文已就其功能性大体描述了各种说明性组件、块、模块、电路和步骤。将这种功能性实施为硬件还是软件取决于特定的应用和施加在整个系统上的设计约束。技术人员可以针对每个特定应用以不同的方式实施所描述的功能,但是这种实施方式决定不应被解释为导致脱离本申请的范围。
本文所描述的技术还可以以电子硬件、计算机软件、固件或其任何组合来实施。此类技术可以在多种设备中的任一者中实施,诸如通用计算机、无线通信设备手持机、或者集成电路设备,其具有包括无线通信设备手持机和其它设备中的应用的多个用途。描述为模块或组件的任何特征可以在集成逻辑设备中一起实施,或者单独地作为离散但可互操作的逻辑设备来实施。如果以软件实施,这些技术可以至少部分地由包括程序代码的计算机可读数据存储介质来实施,该程序代码包括当被执行时执行一个或多个上述方法的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,其可以包括封装材料。计算机可读介质可以包括存储器或数据存储介质,诸如随机存取存储器(RAM)(诸如同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。附加地或备选地,可以至少部分地由计算机可读通信介质来实现这些技术,该计算机可读通信介质以指令或数据结构的形式携带或传送程序代码,并且该程序代码可以由计算机访问、读取和/或执行,诸如传播的信号或波。
程序代码可以由处理器执行,该处理器可以包括一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或者其它等效集成或离散逻辑电路。此类处理器可以被配置为执行本公开中所描述的技术中的任一个。通用处理器可以是微处理器;但在备选方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实施为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、与DSP核结合的一个或多个微处理器、或任何其他此类配置。因此,如本文所使用的术语“处理器”可以指代任何前述结构、前述结构的任何组合、或者适用于实施本文描述的技术的任何其他结构或装置。
本公开的说明性方面包括:
方面1:一种处理视频数据的方法,该方法包括:获得第一视频;使用机器学习模型决策引擎从机器学习模型集合中确定第一机器学习模型(例如,以用于处理该第一视频的至少一部分),该第一机器学习模型基于该第一视频的至少一部分的一个或多个特性来被确定;以及使用该第一机器学习模型处理该第一视频的至少该部分。
方面2:根据方面1所述的方法,还包括:基于使用该第一机器学习模型处理该第一视频的至少该部分来确定该第一视频的至少该部分的分类。
方面3:根据方面1或2中任一项所述的方法,还包括:使用该第一机器学习模型从该第一视频的至少该部分提取第一一个或多个特征;使用第一补充模型处理该第一一个或多个特征;以及基于使用该第一补充模型处理该第一一个或多个特征来确定该第一视频的至少该部分的第一分类。
方面4:根据方面3中任一项所述的方法,其中:该第一补充模型包括一维卷积神经网络;该第一一个或多个特征包括:基于该第一视频的至少该部分的第一帧的第一特征矢量以及基于该第一视频的至少该部分的第二帧的第二特征矢量;以及该第一补充模型从至少该第一特征矢量和该第二特征矢量生成该第一视频的至少该部分的时间信息。
方面5:根据方面3或4中任一项所述的方法,其中该第一补充模型包括多层感知器。
方面6:根据方面3至5中任一项所述的方法,其中该第一补充模型包括图形卷积网络。
方面7:根据方面3至6中任一项所述的方法,其中该第一补充模型包括非本地模型。
方面8:根据方面1至7中任一项所述的方法,还包括:使用该机器学习模型决策引擎从该机器学习模型集合中确定第二机器学习模型,该第二机器学习模型基于该第一视频的至少另一部分的一个或多个特性来被确定;以及使用该第二机器学习模型处理该第一视频的该至少另一部分。
方面9:根据方面8所述的方法,还包括:使用该第二机器学习模型从该第一视频的该至少另一部分提取第二一个或多个特征;使用第二补充模型处理该第二一个或多个特征;以及基于使用该第二补充模型处理该第二一个或多个特征来确定该第一视频的该至少另一部分的第二分类。
方面10:根据方面1至9中任一项所述的方法,其中该第一机器学习模型包括二维CNN。
方面11:根据方面10所述的方法,其中该2D CNN在两个空间维度中从该第一视频的至少该部分中提取第一一个或多个特征。
方面12:根据方面1至11中任一项所述的方法,其中该第一机器学习模型包括三维(3D)CNN。
方面13:根据方面12所述的方法,其中该3D CNN在两个空间维度和一个时间维度中从该第一视频的至少该部分提取第一一个或多个特征。
方面14:根据方面1至13中任一项所述的方法,还包括:获得第二视频;使用该机器学习模型决策引擎从机器学习模型集合确定第二机器学习模型,该第二机器学习模型基于该第二视频的至少一部分的一个或多个特性来被确定;以及使用该第二机器学习模型处理该第二视频的至少该部分。
方面15:根据方面1至14中任一项所述的方法,还包括:与从该机器学习模型集合确定该第一机器学习模型以用于处理该第一视频的至少该部分并行地,使用该第一机器学习模型从该第一视频的至少该部分提取第一一个或多个特征。在一些情况下,该机器学习模型决策引擎与该第一机器学习模型共享公共神经网络。
方面16:根据方面1至15中任一项所述的方法,其中该第一视频的至少该部分的该一个或多个特性包括空间和时间特性。
方面17:根据方面1至16中任一项所述的方法,其中该第一视频的至少该部分的该一个或多个特性包括音频特性。
方面18:一种用于处理视频数据的装置,包括:存储器;以及一个或多个处理器,其被耦合到该存储器,该一个或多个处理器被配置为:获得第一视频;使用机器学习模型决策引擎从机器学习模型集合确定第一机器学习模型(例如,以用于处理该第一视频的至少一部分),该第一机器学习模型基于该第一视频的至少一部分的一个或多个特性来被确定;以及使用该第一机器学习模型处理该第一视频的至少该部分。
方面19:根据方面18所述的装置,其中该一个或多个处理器被配置为:基于使用该第一机器学习模型处理该第一视频的至少该部分来确定该第一视频的至少该部分的分类。
方面20:根据方面19或20所述的装置,其中该一个或多个处理器被配置为:使用该第一机器学习模型从该第一视频的至少该部分提取第一一个或多个特征;使用第一补充模型处理该第一一个或多个特征;以及基于使用该第一补充模型处理该第一一个或多个特征来确定该第一视频的至少该部分的第一分类。
方面21:根据方面20所述的装置,其中:该第一补充模型包括一维卷积神经网络;该第一一个或多个特征包括:基于该第一视频的至少该部分的第一帧的第一特征矢量以及基于该第一视频的至少该部分的第二帧的第二特征矢量;以及该第一补充模型从至少该第一特征矢量和该第二特征矢量生成该第一视频的至少该部分的时间信息。
方面22:根据方面20或21中任一项所述的装置,其中该第一补充模型包括多层感知器。
方面23:根据方面20至22中任一项所述的装置,其中该第一补充模型包括图形卷积网络。
方面24:根据方面20至23中任一项所述的装置,其中该第一补充模型包括非本地模型。
方面25:根据方面18至24中任一项所述的装置,其中该一个或多个处理器被配置为:使用该机器学习模型决策引擎从该机器学习模型集合确定第二机器学习模型,该第二机器学习模型基于该第一视频的至少另一部分的一个或多个特性来被确定;以及使用该第二机器学习模型处理该第一视频的该至少另一部分。
方面26:根据方面25所述的装置,其中该一个或多个处理器被配置为:使用该第二机器学习模型从该第一视频的该至少另一部分提取第二一个或多个特征;使用第二补充模型处理该第二一个或多个特征;以及基于使用该第二补充模型处理该第二一个或多个特征来确定该第一视频的该至少另一部分的第二分类。
方面27:根据方面18至26中任一项所述的装置,其中该第一机器学习模型包括二维CNN。
方面28:根据方面27所述的装置,其中该2D CNN在两个空间维度中从该第一视频的至少该部分提取第一一个或多个特征。
方面29:根据方面18至28中任一项所述的装置,其中该第一机器学习模型包括三维(3D)CNN。
方面30:根据方面29所述的装置,其中该3D CNN在两个空间维度和一个时间维度中从该第一视频的至少该部分提取第一一个或多个特征。
方面31:根据方面18至30中任一项所述的装置,其中该一个或多个处理器被配置为:获得第二视频;使用该机器学习模型决策引擎从机器学习模型集合确定第二机器学习模型,该第二机器学习模型基于该第二视频的至少一部分的一个或多个特性来被确定;以及使用该第二机器学习模型处理该第二视频的至少该部分。
方面32:根据方面18至31中任一项所述的装置,其中该机器学习模型决策引擎与该第一机器学习模型共享公共神经网络,以及其中该一个或多个处理器被配置为:与从该机器学习模型集合确定该第一机器学习模型以用于处理该第一视频的至少该部分并行地,使用该第一机器学习模型从该第一视频的至少该部分提取第一一个或多个特征。
方面33:根据方面18至32中任一项所述的装置,其中该第一视频的至少该部分的该一个或多个特性包括空间和时间特性。
方面34:根据方面18至33中任一项所述的装置,其中该第一视频的至少该部分的该一个或多个特性包括音频特性。
方面35:一种其上存储有指令的非暂时性计算机可读介质,该指令在由一个或多个处理器执行时使得该一个或多个处理器执行方面1至34中的任项操作。
方面36:一种装置,包括用于执行方面1至34中的任项操作的部件。
Claims (30)
1.一种用于处理视频数据的装置,包括:
存储器;以及
一个或多个处理器,其被耦合到所述存储器,所述一个或多个处理器被配置为:
获得第一视频;
使用机器学习模型决策引擎从机器学习模型集合确定第一机器学习模型,所述第一机器学习模型基于所述第一视频的至少一部分的一个或多个特性来被确定;以及
使用所述第一机器学习模型处理所述第一视频的至少所述部分。
2.根据权利要求1所述的装置,其中所述一个或多个处理器被配置为:
基于使用所述第一机器学习模型处理所述第一视频的至少所述部分来确定所述第一视频的至少所述部分的分类。
3.根据权利要求1所述的装置,其中所述一个或多个处理器被配置为:
使用所述第一机器学习模型从所述第一视频的至少所述部分提取第一一个或多个特征;
使用第一补充模型处理所述第一一个或多个特征;以及
基于使用所述第一补充模型处理所述第一一个或多个特征来确定所述第一视频的至少所述部分的第一分类。
4.根据权利要求3所述的装置,其中:
所述第一补充模型包括一维卷积神经网络(CNN);
所述第一一个或多个特征包括:基于所述第一视频的至少所述部分的第一帧的第一特征矢量以及基于所述第一视频的至少所述部分的第二帧的第二特征矢量;以及
所述第一补充模型从至少所述第一特征矢量和所述第二特征矢量生成所述第一视频的至少所述部分的时间信息。
5.根据权利要求3所述的装置,其中所述第一补充模型包括多层感知器。
6.根据权利要求3所述的装置,其中所述第一补充模型包括图形卷积网络。
7.根据权利要求3所述的装置,其中所述第一补充模型包括非本地模型。
8.根据权利要求1所述的装置,其中所述一个或多个处理器被配置为:
使用所述机器学习模型决策引擎从所述机器学习模型集合确定第二机器学习模型,所述第二机器学习模型基于所述第一视频的至少另一部分的一个或多个特性来被确定;以及
使用所述第二机器学习模型处理所述第一视频的所述至少另一部分。
9.根据权利要求8所述的装置,其中所述一个或多个处理器被配置为:
使用所述第二机器学习模型从所述第一视频的所述至少另一部分提取第二一个或多个特征;
使用第二补充模型处理所述第二一个或多个特征;以及
基于使用所述第二补充模型处理所述第二一个或多个特征来确定所述第一视频的所述至少另一部分的第二分类。
10.根据权利要求1所述的装置,其中所述第一机器学习模型包括二维(2D)CNN。
11.根据权利要求10所述的装置,其中所述2D CNN在两个空间维度中从所述第一视频的至少所述部分提取第一一个或多个特征。
12.根据权利要求1所述的装置,其中所述第一机器学习模型包括三维(3D)CNN。
13.根据权利要求12所述的装置,其中所述3D CNN在两个空间维度和一个时间维度中从所述第一视频的至少所述部分提取第一一个或多个特征。
14.根据权利要求1所述的装置,其中所述一个或多个处理器被配置为:
获得第二视频;
使用所述机器学习模型决策引擎从机器学习模型集合确定第二机器学习模型,所述第二机器学习模型基于所述第二视频的至少一部分的一个或多个特性来被确定;以及
使用所述第二机器学习模型处理所述第二视频的至少所述部分。
15.根据权利要求1所述的装置,其中所述机器学习模型决策引擎与所述第一机器学习模型共享公共神经网络,以及其中所述一个或多个处理器被配置为:
与从所述机器学习模型集合确定所述第一机器学习模型以用于处理所述第一视频的至少所述部分并行地,使用所述第一机器学习模型从所述第一视频的至少所述部分提取第一一个或多个特征。
16.根据权利要求1所述的装置,其中所述第一视频的至少所述部分的所述一个或多个特性包括空间和时间特性。
17.根据权利要求1所述的装置,其中所述第一视频的至少所述部分的所述一个或多个特性包括音频特性。
18.一种处理视频数据的方法,所述方法包括:
获得第一视频;
使用机器学习模型决策引擎从机器学习模型集合确定第一机器学习模型,所述第一机器学习模型基于所述第一视频的至少一部分的一个或多个特性来被确定;以及
使用所述第一机器学习模型处理所述第一视频的至少所述部分。
19.根据权利要求18所述的方法,还包括:基于使用所述第一机器学习模型处理所述第一视频的至少所述部分来确定所述第一视频的至少所述部分的分类。
20.根据权利要求18所述的方法,还包括:
使用所述第一机器学习模型从所述第一视频的至少所述部分提取第一一个或多个特征;
使用第一补充模型处理所述第一一个或多个特征;以及
基于使用所述第一补充模型处理所述第一一个或多个特征来确定所述第一视频的至少所述部分的第一分类。
21.根据权利要求20所述的方法,其中:
所述第一补充模型包括一维CNN;
所述第一一个或多个特征包括:基于所述第一视频的第一帧的第一特征矢量以及基于所述第一视频的第二帧的第二特征矢量;以及
所述第一补充模型从至少所述第一特征矢量和所述第二特征矢量生成所述第一视频的至少所述部分的时间信息。
22.根据权利要求18所述的方法,还包括:
使用所述机器学习模型决策引擎从所述机器学习模型集合确定第二机器学习模型,所述第二机器学习模型基于所述第一视频的至少另一部分的一个或多个特性来被确定;以及
使用所述第二机器学习模型处理所述第一视频的所述至少另一部分。
23.根据权利要求22所述的方法,还包括:
使用所述第二机器学习模型从所述第一视频的所述至少另一部分提取第二一个或多个特征;
使用第二补充模型处理所述第二一个或多个特征;以及
基于使用所述第二补充模型处理所述第二一个或多个特征来确定所述第一视频的所述至少另一部分的第二分类。
24.根据权利要求18所述的方法,还包括:与从所述机器学习模型集合确定所述第一机器学习模型以用于处理所述第一视频的至少所述部分并行地,使用所述第一机器学习模型从所述第一视频的至少所述部分提取第一一个或多个特征,其中所述机器学习模型决策引擎与所述第一机器学习模型共享公共神经网络。
25.根据权利要求18所述的方法,其中所述第一机器学习模型包括2DCNN。
26.根据权利要求25所述的方法,其中所述2D CNN在两个空间维度中从所述第一视频的至少所述部分提取第一一个或多个特征。
27.根据权利要求18所述的方法,其中所述第一机器学习模型包括3DCNN。
28.根据权利要求18所述的方法,还包括:
获得第二视频;
使用所述机器学习模型决策引擎从机器学习模型集合确定第二机器学习模型,所述第二机器学习模型基于所述第二视频的至少一部分的一个或多个特性来被确定;以及
使用所述第二机器学习模型处理所述第二视频的至少所述部分。
29.根据权利要求18所述的方法,其中所述第一视频的至少所述部分的所述一个或多个特性包括空间和时间特性。
30.根据权利要求18所述的方法,其中所述第一视频的至少所述部分的所述一个或多个特性包括音频特性。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/219,460 US11842540B2 (en) | 2021-03-31 | 2021-03-31 | Adaptive use of video models for holistic video understanding |
US17/219,460 | 2021-03-31 | ||
PCT/US2022/014137 WO2022211891A1 (en) | 2021-03-31 | 2022-01-27 | Adaptive use of video models for holistic video understanding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116997938A true CN116997938A (zh) | 2023-11-03 |
Family
ID=80447671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280022436.3A Pending CN116997938A (zh) | 2021-03-31 | 2022-01-27 | 用于整体视频理解的视频模型的自适应使用 |
Country Status (8)
Country | Link |
---|---|
US (1) | US11842540B2 (zh) |
EP (1) | EP4315273A1 (zh) |
JP (1) | JP2024511932A (zh) |
KR (1) | KR20230163382A (zh) |
CN (1) | CN116997938A (zh) |
BR (1) | BR112023019163A2 (zh) |
TW (1) | TW202240451A (zh) |
WO (1) | WO2022211891A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6800453B1 (ja) * | 2020-05-07 | 2020-12-16 | 株式会社 情報システムエンジニアリング | 情報処理装置及び情報処理方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982351A (zh) * | 2012-11-15 | 2013-03-20 | 河北省电力公司电力科学研究院 | 基于bp神经网络的瓷绝缘子振动声学检测数据分类方法 |
KR20180057409A (ko) | 2016-11-22 | 2018-05-30 | 박진수 | 오디오 신호 기반의 영상 분류 방법 및 영상 분류 장치 |
WO2018211602A1 (ja) * | 2017-05-16 | 2018-11-22 | 株式会社ソニー・インタラクティブエンタテインメント | 学習装置、推定装置、学習方法及びプログラム |
US10796152B2 (en) * | 2018-09-21 | 2020-10-06 | Ancestry.Com Operations Inc. | Ventral-dorsal neural networks: object detection via selective attention |
US20200202167A1 (en) * | 2018-12-20 | 2020-06-25 | Here Global B.V. | Dynamically loaded neural network models |
US11663815B2 (en) * | 2020-03-27 | 2023-05-30 | Infosys Limited | System and method for inspection of heat recovery steam generator |
-
2021
- 2021-03-31 US US17/219,460 patent/US11842540B2/en active Active
-
2022
- 2022-01-27 JP JP2023552087A patent/JP2024511932A/ja active Pending
- 2022-01-27 BR BR112023019163A patent/BR112023019163A2/pt unknown
- 2022-01-27 WO PCT/US2022/014137 patent/WO2022211891A1/en active Application Filing
- 2022-01-27 KR KR1020237031370A patent/KR20230163382A/ko unknown
- 2022-01-27 CN CN202280022436.3A patent/CN116997938A/zh active Pending
- 2022-01-27 EP EP22704215.7A patent/EP4315273A1/en active Pending
- 2022-01-28 TW TW111103976A patent/TW202240451A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
BR112023019163A2 (pt) | 2023-10-17 |
TW202240451A (zh) | 2022-10-16 |
US20220318553A1 (en) | 2022-10-06 |
KR20230163382A (ko) | 2023-11-30 |
EP4315273A1 (en) | 2024-02-07 |
US11842540B2 (en) | 2023-12-12 |
WO2022211891A1 (en) | 2022-10-06 |
JP2024511932A (ja) | 2024-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11568238B2 (en) | Dynamic processing element array expansion | |
US11188794B2 (en) | Convolutional neural network framework using reverse connections and objectness priors for object detection | |
WO2019100723A1 (zh) | 训练多标签分类模型的方法和装置 | |
EP3928248A1 (en) | Neural network for skeletons from input images | |
WO2022042713A1 (zh) | 一种用于计算设备的深度学习训练方法和装置 | |
CN112507898A (zh) | 一种基于轻量3d残差网络和tcn的多模态动态手势识别方法 | |
US20220301304A1 (en) | Keypoint-based sampling for pose estimation | |
WO2020082382A1 (en) | Method and system of neural network object recognition for image processing | |
US11941822B2 (en) | Volumetric sampling with correlative characterization for dense estimation | |
CN112487217A (zh) | 跨模态检索方法、装置、设备及计算机可读存储介质 | |
US20220101539A1 (en) | Sparse optical flow estimation | |
Panda et al. | Modified ResNet-152 Network With Hybrid Pyramidal Pooling for Local Change Detection | |
CN116997938A (zh) | 用于整体视频理解的视频模型的自适应使用 | |
US20240007760A1 (en) | Low-power fusion for negative shutter lag capture | |
US11636694B2 (en) | Video-based activity recognition | |
Zhu et al. | Lite-3DCNN combined with attention mechanism for complex human movement recognition | |
US20230386052A1 (en) | Scene segmentation and object tracking | |
US20240070812A1 (en) | Efficient cost volume processing within iterative process | |
WO2024049590A1 (en) | Efficient cost volume processing within iterative process | |
Yuan et al. | An effective graph embedded YOLOv5 model for forest fire detection | |
WO2024002534A1 (en) | Method and system of selecting one or more images for human labelling | |
CN113761992A (zh) | 一种视频动作识别方法及设备 | |
CN118134963A (zh) | 一种层次特征融合的抗背景干扰孪生网络单目标跟踪方法 |
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 |