CN112149709A - 使用机器学习模型的游戏播放视频的无监督分类 - Google Patents
使用机器学习模型的游戏播放视频的无监督分类 Download PDFInfo
- Publication number
- CN112149709A CN112149709A CN201911400492.2A CN201911400492A CN112149709A CN 112149709 A CN112149709 A CN 112149709A CN 201911400492 A CN201911400492 A CN 201911400492A CN 112149709 A CN112149709 A CN 112149709A
- Authority
- CN
- China
- Prior art keywords
- video
- video segment
- frames
- classification
- game
- 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
- 238000010801 machine learning Methods 0.000 title description 7
- 238000000034 method Methods 0.000 claims description 72
- 239000013598 vector Substances 0.000 claims description 53
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 230000004913 activation Effects 0.000 claims description 4
- 230000004931 aggregating effect Effects 0.000 claims description 2
- 238000013145 classification model Methods 0.000 abstract description 23
- 230000015654 memory Effects 0.000 description 28
- 238000004891 communication Methods 0.000 description 27
- 238000012549 training Methods 0.000 description 19
- 238000009877 rendering Methods 0.000 description 16
- 230000009471 action Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000001514 detection method Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000001994 activation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- YQXKBDFBVHGSOM-UHFFFAOYSA-N Ambiguin Natural products CCN1CC2(COC)CCC(OC)C34C5CC6C(CC(OC)(C5C6OC(=O)C)C(O)(C(OC)C23)C14)OC YQXKBDFBVHGSOM-UHFFFAOYSA-N 0.000 description 1
- 235000018185 Betula X alpestris Nutrition 0.000 description 1
- 235000018212 Betula X uliginosa Nutrition 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/44—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment involving timing of operations, e.g. performing an action within a time slot
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/67—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/85—Providing additional services to players
- A63F13/86—Watching games played by other players
-
- 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
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- 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/08—Learning methods
-
- 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
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- 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/762—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
- G06V10/763—Non-hierarchical techniques, e.g. based on statistics of modelling distributions
-
- 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/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- 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/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- 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
- 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
- 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
- G06V20/47—Detecting features for summarising video content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/466—Learning process for intelligent management, e.g. learning user preferences for recommending movies
- H04N21/4662—Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms
- H04N21/4665—Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms involving classification methods, e.g. Decision trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/466—Learning process for intelligent management, e.g. learning user preferences for recommending movies
- H04N21/4667—Processing of monitored end-user data, e.g. trend analysis based on the log file of viewer selections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/4728—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4781—Games
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Medical Informatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Analysis (AREA)
Abstract
在各种例子中,有可能有突出显示价值的视频片段从游戏播放会话中被识别出来,然后玩家可以选择性地共享或存储这些视频片段以供以后观看。视频片段基于分析用于预期兴趣的持续时间的游戏数据以无监督的方式被识别。分类模型可以以无监督的方式进行训练,以便对那些视频片段进行分类,而无需手动标记特定于游戏的图像或音频数据。玩家可以选择视频片段作为突出显示(例如,在社交媒体上共享、存储在精彩片段中等)。分类模型可以基于新的视频片段进行更新和改进,例如通过创建新的视频片段分类。
Description
相关申请的交叉引用
本申请要求于2019年6月28日提交的62/868654号美国临时申请的权益,其全部内容以引用方式并入本文中。
背景技术
确定视频或视频片段的特定部分是否包括感兴趣的内容(例如,更多的动作)在各种环境中可能是有用的。例如,游戏应用程序的玩家(例如“游戏玩家”)可以使用软件将他或她的整个游戏播放会话(例如,通常30分钟到1小时或更长时间)记录到本地计算机上,这通常会产生大的视频文件(例如,几个GB),其共享困难或耗时,占用大量存储空间,并且可能包括一些不那么感兴趣或非计划中的内容。游戏玩家可能希望只共享或保存较大视频中更感兴趣的部分片段(例如,表现出更高的动作集中度的30秒左右的视频片段),而不是共享或保存整个视频文件。
传统的系统可以识别和分类感兴趣的视频片段,以帮助玩家。为此,系统可以依赖一个对象检测模型,其被训练为使用特定的视觉数据来检测游戏视频中可能与潜在的感兴趣的视频片段相关联的对象。然后,系统可以根据检测到的对象识别和分类可能感兴趣的视频片段。然而,目标检测模型可能相对容易出错,并且容易被错误描述。例如,对象检测模型的准确性通常取决于可视数据的质量,这可能是高度可变的,特别是在流场景中。此外,由于目标检测模型是使用监督学习进行训练的,因此可能需要大量被标记的特定于游戏的训练数据,这些数据可能难以生成,和/或可能需要手动标记。因此,每个游戏或应用程序通常需要一个单独的对象检测模型。此外,许多游戏经常更新新内容(例如,新角色和新武器),这些内容在训练数据中没有被考虑到,这可能需要重新训练或进一步降低目标检测模型的准确性。
总结
本公开的实施例涉及游戏播放视频片段的无监督分类。公开了一种系统和方法,其以游戏不可知论的无监督的方式识别感兴趣的视频片段,并且通过聚类将感兴趣的视频片段分组为分类。然后,可以根据视频片段与集群的比较对其他视频片段进行分类。
与传统系统(如上文所述)不同,可以分析数据(可以是游戏不可知论),以及与游戏播放有关的数据(例如,用户输入数据),从而以无监督的方式从游戏播放会话的视频(实时的或录制的)中识别可能值得突出显示的预期兴趣持续时间。这种无监督的方法可以用于选择片段来训练分类模型,或者从游戏播放视频中识别潜在的感兴趣片段。
一旦识别出训练数据,根据预期兴趣的持续时间生成的片段就可以使用无监督学习进行分类。为此,视频片段的特征(例如,特征向量)可以由训练好的图像分类器的训练好的特征提取器(例如,卷积神经网络)提取,然后将特征聚类以识别分类。由于特征提取器已经学习了在一般意义上什么样的图像特征对于分类很重要,因此这些特征可以被聚类到有意义的分类中,而不依赖于过于具体的游戏内容,例如识别特定的对象。在本公开的各个方面中,可以以每帧为基础聚类视频片段。例如,为了训练分类模型,可以从每个视频片段中选择多个帧,并且可以将每个帧的特征向量聚集到组或集群中。集群可以构成分类的基础,其可以由用户或算法分配一个标签。然后,可以使用分类模型对视频片段进行分类(例如,从实况或录制的游戏播放会话中)。这可以包括用于对视频片段进行分类的多个帧的每个帧,基于其与分类或集群的相似性对帧进行分类,并基于分配给组成帧的分类将一个或更多个类分配给整个视频片段。对帧进行分类可以包括确定视频片段的帧的特征向量和与类或集群相关的一个或更多个特征向量的相似性(例如,使用距离度量)。该技术也可用于识别新的分类,例如识别不满足距离阈值的特征向量。
附图的简要说明
下面参照附图详细描述了用于游戏播放的视频片段的无监督分类的本系统和方法,其中:
图1是根据本公开的一些实施例的视频分类系统的示例系统图;
图2是根据本公开的一些实施例的示出用于识别视频片段分类的方法的流程图;
图3是根据本公开的一些实施例的示出视频片段分类方法的流程图;
图4是根据本公开的一些实施例的示出视频片段分类方法的流程图;
图5是根据本公开的一些实施例的游戏流媒体系统的示例系统图;以及
图6是适用于实现本发明的一些实施例的示例计算环境的框图。
具体实施方式
公开了与游戏播放视频片段的无监督分类相关的系统和方法。与传统系统相比,本公开提供了一种无监督的方法来识别和分类感兴趣的视频片段(例如,表现出更高的动作集中度的视频片段)。可以以无监督的方式对游戏不可知论的可视数据(例如,不需要存在或不存在例如武器、界面元素等特定对象的数据)以及与游戏播放相关的数据(例如,用户输入数据)进行分析,以从游戏播放会话的视频(实时的或录制的)中识别预期兴趣(例如,可能具有更高的动作集中度)的持续时间。这种无监督的方法可用于选择片段来训练分类模型,其使用无监督学习来被训练以对视频片段进行分类,并从游戏播放会话中识别片段,然后根据模型对其进行分类。
游戏不可知论的各种类型的数据可以为识别兴趣的预期时间段提供基础。在一些实施例中,可以使用输入设备度量(例如,键盘敲击、鼠标单击、鼠标移动、麦克风输入)来识别游戏中可以被突出显示的视频片段。例如,输入设备记录器可以记录用户输入数据,其捕获有关键盘、鼠标和/或其他输入设备使用情况的信息。各种输入设备度量(例如,特定于游戏、特定于游戏模式等)可以由记录器捕获的用户输入数据生成,例如在快速循环过程中击键的连续集合达到或超过阈值、每分钟击键次数(KPM)、操作键选择等等。
这些输入设备度量可以用于识别游戏播放会话过程中的、包括动作的更高集中度或频率的时间段。例如,基于具有动作键选择的高KPM和/或高百分比的时间段,可以将时间段标识为包含高强度动作或高水平动作活动。此外,这些输入设备度量可以经过额外的分析,以便在识别更高的动作时间段时降低潜在的噪声。例如,兴趣水平算法可以被应用于输入设备度量,其将该度量转换为随时间运行的活动度量(例如,使用一个方程,其使用输入设备度量的值输出给定时间的活动度量)。
基于随时间变化的兴趣水平算法的值,可以识别出与潜在的高集中度或游戏内活动水平相关的时间段。例如,数据片段(例如,连续的)高于阈值(例如,兴趣水平算法值的平均值)的时间段可以被确定为与潜在的值得突出显示的片段相关。一旦确定了时间段,就可以生成与这些时间段相关联的游戏播放会话的视频片段,这些视频片段可以表示预期兴趣的持续时间。
输入设备度量和兴趣水平算法是数据(而不是特定于游戏的可视数据)可以如何用于识别预期兴趣持续时间的一些示例。使用这些技术,可以自动识别可能包含比游戏播放视频其他部分更高集中度或更高水平的动作播放的视频片段,而无需大容量、初始和潜在的手动派生和标记、训练数据或更新训练数据,同时不会遭受影响目标识别的图像数据质量问题。
一旦生成包括基于预期兴趣持续时间的视频片段训练数据,该训练数据可以用于训练分类模型,来以无监督方式对视频片段进行分类。为此,可基于每帧生成视频片段的特征(例如,特征向量)。例如,可以使用训练号的图像分类器的训练好的特征提取器来生成特征向量。正如特征提取器所了解到的,在一般意义上,哪些图像特征对分类很重要,这些特征可以被聚类到有意义的分类中,而不依赖于过于具体的游戏内容,例如识别特定的对象。在进一步的实施例中,本公开可以通过使用相应的特征向量将每个预期兴趣持续时间内的若干帧(例如,每个片段的40帧)聚类为集群来训练视频片段分类的分类模型。然后,集群可以被标记(例如,由用户)或以其他方式与分类关联(例如,每个集群一个分类、两个特定集群一个分类等),以形成分类模型。
一旦创建了分类模型,为了对视频片段进行分类,基于帧的特征向量与与分类相关的一个或更多个特征向量的相似性(例如,使用距离度量),可以将视频片段的若干帧(或相邻的帧集)单独分配给其中一个分类。例如,距离度量可以是帧的特征向量与代表分类的特征向量(例如,集群中心)之间的距离。然后可以根据分配给该分类(例如,分配给该分类的帧数最多的分类)的帧的数量将分类分配给视频片段。这种方法考虑了跨视频片段帧的特征动态,如果帧的所有特征向量被折叠成用于对视频片段进行分类的单个特征向量,则这些动态特征可能会丢失。
本公开进一步提供了不在分类模型中的新分类的发现,其可用于更新分类模型而无需重新聚类,从而保留计算资源。例如,如果帧与任何现有分类(例如,距离度量值超过了每个分类的阈值)都不够相似,则可以将该帧分配给新的集群和/或分类,其可用于视频片段的未来分类。因此,新的分类可以由现有分类的离群值定义。
在进一步的方面,一旦确定了一组视频片段的集群,这些集群就可以用来确定视频片段的其他集群的分类。例如,来自多组视频片段的多个集群的集群和/或分类(例如,集群中心的特征)的特征(例如,特征向量)可以被聚类成组,这可以构成新的或更新的分类的基础。使用这种方法,集群或分类可以跨用户用于同一个游戏或应用程序(例如,每一组视频片段对应于不同的用户和/或游戏会话),而无需立即聚类整个数据集以抽象跨多个用户和/或游戏会话的类。而是,在视频片段分类的无监督训练中,集群或分类(例如,集群中心)的特征可以作为聚类的一个新特征。使用这种方法,可以在每个游戏或应用程序、每个用户、多个游戏或应用程序、不同类型、每个地理区域、每个技能水平等基础上执行聚类和分类。
一旦基于聚类创建了分类,分类模型就可以用于各种目的。例如,视频片段可以标记或打标签(例如,使用分类标签)用于(例如,由用户通过图形用户界面选择性地)存储和/或共享,例如通过确定视频片段的特征向量和与该分类相关的一个或更多个特征向量之间的相似性(例如,使用距离度量)。系统可以跟踪玩家和/或管理员提供的分类的用户反馈,以更新分类,例如分类和/或集群的数量。例如,系统可以根据用户将不同分类的视频片段分配给同一分类或者以其他方式指示两个分类应该是同一分类,来合并集群。作为另一个例子,系统可以根据用户将集群的视频片段分配给新的分类或指示一个分类应该是多个分类,从集群中形成多个集群。在这一方面,系统可以随着时间的推移而改进。
参考图1,图1是根据本公开的一些实施例的视频分类系统100的示例系统图。应当理解的是,本文所述的安排和其他安排仅作为示例进行阐述。其他安排和元素(例如,机器、接口、函数、命令、函数组等)可以用来补充或代替所示的安排和元素,并且有些元素可以完全省略。此外,本文所述的许多元素是功能实体,其可以作为离散或分布式组件或与其他组件一起实施,并在任何适当的组合和位置中。本文所述的由实体执行的各种功能可由硬件、固件和/或软件执行。例如,各种功能可以由执行存储在内存中的指令的处理器执行。
除了其他以外,视频分类系统100可以包括客户端设备104(A)、104(B)和104(C)(在本文中统称为“客户端设备104”)、视频片段服务器116和/或游戏服务器126。尽管客户端设备104(A)、104(B)和104(C)在图1中被例示,但这并非意图限制。在任何示例中,可以有任意数量的客户端设备104。视频分类系统100(及其组件和/或特征)可以使用一个或更多个计算设备(例如图6中的计算设备600)实现,具体描述如下。
视频分类系统100的组件可以通过网络102进行通信。网络可以包括广域网(WAN)(例如,因特网、公共交换电话网(PSTN)等)、局域网(LAN)(例如,Wi-Fi、ZigBee、Z-Wave、蓝牙、蓝牙低能量(BLE)、以太网等)、低功率广域网(LPWAN)(例如,LoRaWAN、SigFox等)、全球导航卫星系统(GNSS)网络(例如全球定位系统(GPS))和/或其他网络类型。在任何示例中,视频分类系统100的每个组件都可以通过一个或更多个网络102与一个或更多个其他组件通信。
客户端设备104可以包括智能手机、笔记本电脑、平板电脑、台式电脑、可穿戴设备、游戏机、虚拟现实系统(例如,耳机、计算机、游戏机、遥控器、控制器和/或其他组件)、流媒体设备(例如,英伟达神盾)、智能家庭设备,其可以包括智能个人助理和/或另一种能够支持游戏玩法的设备。
客户端设备104可以包括游戏应用程序106、显示器108、通信接口110、输入设备112、本地存储器136、游戏数据捕获器138和兴趣确定器140。尽管在图1中只说明了客户端设备104的一些组件和/或特征,但这并不意图限制。例如,客户端设备104可以是额外的或替代的组件,例如关于图6中的计算设备600的如下所述的组件。
游戏应用程序106可以是移动应用程序、计算机应用程序、控制台应用程序和/或其他类型的应用程序。游戏应用程序106可以包括指令,当其被处理器执行时,使处理器不限于接收代表用户输入到一个或更多个输入设备112的输入数据,将输入数据传输到游戏服务器126,从存储器或本地存储器中检索游戏数据,使用通信接口110从游戏服务器126接收游戏数据,并使游戏在显示器108上显示。换句话说,游戏应用程序106可以作为辅助工具,以使在客户端设备104上启用与该游戏应用程序关联的游戏。游戏应用程序106还可以包括指令,当其被处理器执行时,使处理器向视频片段服务器116发送数据并从中接收数据。例如,游戏应用程序106可以向视频片段服务器116发送在客户端设备104上播放游戏时生成的视频记录,并从视频片段服务器116接收由视频片段服务器分类的视频片段。
游戏应用程序106和/或游戏应用程序106的补丁或更新可以从游戏服务器126下载,或从其他服务器(如内容分发网络(CDN)的服务器)下载。例如,游戏服务器126可以位于不同的国家或不同的大陆上,因此为了缩短下载时间,游戏应用程序106和/或补丁或更新可以存储在全球不同的服务器上。因此,当客户端设备104下载游戏应用程序106和/或补丁或更新时,例如,客户端设备104可以连接到作为CND的一部分的更本地的服务器。
在一些示例中,客户端设备104可以使用游戏应用程序106渲染游戏,而在其他示例中,客户端设备104可以接收显示数据(例如,如关于图5所述的编码显示数据),并使用显示数据在显示器108上显示游戏。在一些示例中,第一客户端设备(例如客户端设备104(A))可以渲染游戏,而第二客户端设备(例如客户端设备104(B))可以接收显示数据并使用显示数据显示游戏。在由客户端设备接收显示数据的示例中(例如,在客户端设备104不生成渲染的情况下),视频分类系统100可以是游戏流媒体系统的一部分,例如图5中的游戏流媒体系统500,详细描述如下。
客户端设备104(A)可以通过显示器108显示随时间变化的多个游戏会话,例如游戏会话114(A)、游戏会话114(B)和游戏会话114(C)(在本文中统称为“游戏会话114”)。游戏会话114可以包括客户端设备104(A)的用户参与的任何数量的游戏会话。同样,除了客户端设备104(A)之外,每个客户端设备104的用户,可以参加任何数量的游戏会话114。
显示器108可以包括能够显示游戏的任何类型的显示器(例如发光二极管显示器(LED)、有机LED显示器(OLED)、液晶显示器(LCD)、有源矩阵OLED显示器(AMOLED)、量子点显示器(QDD)、等离子显示器、LED/LCD显示器和/或其他类型的显示器)。在一些示例中,显示器108可以包括一个以上的显示器(例如,用于计算机游戏的双监视器显示器、用于配置游戏的第一显示器和用于玩游戏的虚拟现实显示器等)。在一些示例中,显示器是触摸屏显示器,例如智能手机、平板电脑、笔记本电脑等的触摸屏,其中触摸屏是客户端设备104的输入设备112中的至少一个。
输入设备112可以包括能够向游戏提供用户输入的任何类型的设备。输入设备可以包括键盘、鼠标、麦克风、触摸屏显示器、控制器、遥控器、耳机(例如,虚拟现实耳机的传感器)和/或其他类型的输入设备。
通信接口110可以包括用于在一个或更多个网络(例如网络102)之间通信的一个或更多个组件和特征。通信接口110可以配置为通过本文所述的任意数量的网络102进行通信。例如,为了在图1的视频分类系统100中通信,客户端设备104可以通过路由器使用以太网或Wi-Fi连接访问互联网,以便与视频片段服务器116、游戏服务器126和/或与其他客户端设备104通信。
本地存储器136可以包括各种计算机可读介质中的任何一种。计算机可读介质可以是客户端设备104(A)可以访问的任何可用介质。计算机可读介质可以包括易失性介质和非易失性介质,以及可移动和不可移动介质。举例来说,计算机可读介质可以包括计算机存储介质和通信介质,但不限于此。本地存储器136可以包括额外或可选的组件,例如关于图6的存储器604所描述的下述组件。
上文已经描述了系统100的一般操作,包括游戏会话114的渲染。现在将描述一些其他方面,包括在渲染游戏会话114或分析游戏会话114生成的数据过程中可以执行的其他操作。如本文所述,来自游戏会话114的游戏会话视频数据(也可以称为“游戏播放视频”)可以用于生成与游戏会话114关联的视频文件和/或视频片段。除其他事项外,游戏会话视频数据可以包括一系列帧,当按顺序播放时,这些帧提供各个游戏会话和/或其中一个或更多个部分的视频重播。
例如,游戏播放会话114(A)包括帧1到N,并且每个帧可以表示在渲染游戏播放会话114(A)的过程中由显示器108渲染的静止图像。此外,图1说明了与游戏播放会话114(A)相关的时间线148,该时间线148指示可以依次放置游戏播放会话114(A)的每一帧的相对时间的指定。为了说明的目的,时间段150A、150B和150C被描绘在时间线148上,并且每个时间段被描绘为与构成游戏会话视频数据的相应的视频片段的相应帧集合相关联。例如,时间段150A与构成视频片段152A的帧200到1409相关联;时间段150B与构成视频片段152B的帧3932到4581相关联;以及时间段150C与构成视频片段152C的帧57282到59931相关联。
游戏应用程序106和/或游戏数据捕获器138可以包括指令,当其被执行时,记录来自游戏播放会话114的游戏会话视频数据(例如,对应于帧1到帧N)的指令,并将所记录的游戏会话视频数据本地存储在客户端设备104(例如,本地存储器136)上,或将所记录的游戏会话视频数据发送到视频片段服务器116或游戏服务器126,以分别被存储在数据存储124和134。在客户端设备104不生成渲染的示例中(例如下面更详细地描述的图5的游戏流媒体系统500),游戏服务器126可以记录和存储游戏会话视频数据,或者将游戏会话视频数据传输到视频片段服务器116以存储在数据存储124中。
如本文所述,可取的是从所记录的游戏会话视频数据中识别包括感兴趣的内容的片段,例如在其过程中提供了更高用户输入量的片段。识别包括感兴趣内容的片段在各种上下文中都可以是有用的,例如当生成训练数据以训练本文所述的分类模型和/或为游戏玩家提供共享或存储的片段时。因此,在进一步的实施例中,系统100可以包括游戏数据捕获器138,其可以用于以无监督的方式识别感兴趣的片段。
游戏数据捕获器138可以是游戏应用程序106的一部分,也可以是单独应用程序(例如,一个或更多个系统服务、程序等)的一部分。游戏数据捕获器138可以是输入设备112的组件,也可以由客户端设备104的其他组件执行。游戏数据捕获器138可以包括指令,当由处理器执行时,该指令使处理器不限于记录或记下游戏数据(例如输入设备使用数据、视频数据和/或与游戏播放会话相关的其他数据)。输入设备使用数据的示例包括描述或代表键盘、鼠标或其他输入设备使用的数据,其与一个或更多个游戏会话114关联。可以被记录的信息的示例包括键盘敲击、鼠标单击、鼠标移动、麦克风输入、摄像机输入和/或在游戏会话114期间对客户端设备104的输入。此外,游戏数据捕获器138可以将时间戳信息以及与游戏会话视频数据的时间戳信息相关的输入(例如,沿时间线148)一起存储。
兴趣确定器140通常配置为分析游戏播放会话的游戏数据,以确定用户可能感兴趣的视频片段。可以对所记录的游戏数据(例如,在本地存储器136中)进行分析,例如在游戏会话完成后和/或在游戏会话发生时实时进行分析。兴趣确定器140可以是游戏应用程序106的一部分,也可以是单独应用程序(例如,一个或更多个系统服务、程序等)的一部分。在一些例子中,兴趣确定器140与游戏数据捕获者138是同一应用程序的一部分。为了识别感兴趣的视频片段,兴趣确定器140可以根据游戏数据确定游戏播放会话中更高水平(例如,频率或集中度)动作的持续时间。例如,游戏播放会话114的游戏数据可用于识别在游戏播放会话114期间的包含更高水平动作的时间段,并且这些持续时间或时间段可以称为“预期兴趣的持续时间”。
例如,兴趣确定器140可以至少部分地基于具有每分钟高按键次数(KPM)、高百分比的动作键选择和/或其他输入设备度量的时间段,将游戏播放会话114中的时间段识别为高动作。此外,这些输入设备度量可以经受额外的分析,以便在识别更高的动作时间段时降低潜在的噪声。例如,可以将兴趣水平算法应用于输入设备度量,以将度量转换为一段时间内正在运行的动作测量。其中一种算法是“热(HEAT)”算法(高能区域技术),其可以用以下公式表示:
HEAT=log(k*(Afactor*D)2*Kc*Smax))
其中,
·Afactor=高常数,如果“动作”键存在于循环中。否则=1
·D=“快周期”的持续时间
·Kc=快周期中的#键
·Smax=“快周期”中键间的最大按速
·K=常数
基于随时间变化的兴趣水平算法的值(例如,HEAT值),可以识别出与潜在的高游戏内活动相关的时间段。例如,具有高于阈值(例如平均值)的数据点(例如,连续的)的时间段可以被识别为与可能具有突出显示价值的片段相关。时间段的开始可以基于运行活动度量何时超过阈值,时间段的结束可以基于运行活动度量何时低于阈值。然后可以识别与时间段相对应的视频片段。例如,视频片段可以被存储为捕获跨越时间段150A的帧的离散文件,和/或可以被存储为元数据,该元数据用于确定游戏会话视频数据中与时间段150A相对应的区域(例如,使用开始时间戳、结束时间戳和/或持续时间)。
由于兴趣确定器140不需要使用被标记的特定于游戏的训练数据进行训练,以便识别感兴趣的视频片段,因此它可以以无监督的方式识别感兴趣的视频片段。例如,如果在游戏中添加了一个新项目,因为兴趣确定器140不需要依赖于识别特定的游戏内对象,因此兴趣确定器140仍然可以有效地识别预期兴趣的持续时间。虽然本文所述的HEAT算法使用用户输入(例如,输入设备度量)将游戏中的活动量化为兴趣水平,但除了用户输入之外或替代用户输入,还可以使用其他类型的数据。例如,对应于游戏内相机和/或视场移动、颜色变化、音频音量、音频动态和/或音频变化等的游戏会话视觉和/或音频度量可以被使用。此外,在一些示例中,兴趣确定器140可以识别预期兴趣的持续时间,然后用于生成视频片段,在其他示例中,兴趣确定器140可以分析视频片段(使用任何合适的方法生成),以确定其是否足够感兴趣,例如使用本文所述的兴趣水平算法(例如,基于确定片段的平均兴趣水平大于阈值)。
如本文所述,在由客户端设备接收显示数据的示例中(例如,在客户端设备104不生成渲染的情况下),视频分类系统100可以是游戏流媒体系统的一部分,例如详细描述如下图5中的游戏流媒体系统500。在那些实施例中,客户端设备104向游戏服务器126发送至少一些用户输入,以便在游戏播放会话114期间控制游戏。此外,在一些实施例中,兴趣确定器140和/或游戏数据捕获器138可以至少部分地在游戏服务器126和/或服务器端的视频片段服务器116上执行。在这里,兴趣确定器140和/或游戏数据捕获器138可以执行与关于客户端侧描述的相同或类似的操作。例如,在服务器端,游戏数据捕获器138可以记录用户输入数据,并且兴趣确定器140可以确定被识别为预期兴趣持续时间的时间段。
一旦时间段被识别为预期兴趣的持续时间,就可以从游戏播放会话114的视频数据中识别出相应的视频片段。例如,兴趣测定器140可以向游戏应用程序106、游戏服务器126和/或视频片段服务器116发送与预期兴趣持续时间相对应的时间戳。然后,这些组件的任何组合都可以使用该时间戳,从上述所描述的游戏会话视频数据(例如,存储在本地存储器136或数据存储124或134中)中生成和/或识别离散的视频片段。例如,如果被识别为预期兴趣持续时间的时间段对应于时间段150A,则可以创建包括帧200到275(或其副本)的离散视频片段,并且该离散视频片段可以对应于视频片段152A。所生成的视频片段可以是基于预期兴趣的持续时间,其中所生成的视频片段对应于游戏内活动被认为相对较高的时间段(与游戏播放会话中的其他时间段相比)。
如本公开的其他方面所述,传统方法依赖于通过分析特定于游戏的视觉数据来对可能包含感兴趣内容的片段进行识别和分类的对象检测。但是,基于不同的图像数据质量和在游戏更新时变得过时的陈旧的训练集,那些技术可能不一致。此外,对象检测通常需要大量的被标记的训练集来创建,而这需要大量的资源来创建。相反,使用本文所述的方法,可以以无监督的方式识别视频片段,而不依赖于识别特定于游戏的视觉对象。因此,当游戏更新时,视频分类系统100执行的方法可以不太容易过时,并且不需要特定于游戏的被标记的训练数据。此外,由于不需要识别特定游戏内对象的细节,该方法不太容易因图像质量差而导致不准确。
视频片段服务器116可以包括一个或更多个服务器,用于存储、修剪、分类和/或归类来自游戏会话114的游戏会话视频数据。尽管视频片段服务器116的只有一些组件和/或特征在图1中被例示,但这并不是限制性的。例如,视频片段服务器116可以包括额外或替代的组件,例如关于图6中的计算设备600的以下描述的那些组件。
如图1中所进一步说明的,视频片段服务器116可以与游戏服务器126分离或区别;但是,这并不是限制性的。在一些示例中,视频片段服务器116可以是与游戏服务器126相同或类似的服务器(例如,在游戏服务器126上作为任务运行)。在一些示例中,视频片段服务器116可以由第一实体(例如,第一公司)操作或托管,游戏服务器126可以由第二实体(例如,第二、不同的公司)操作或托管。在这些示例中,第二实体可以是游戏开发者,第一实体和第二实体可以共享数据,以便第一实体可以使用从第二实体接收的数据识别感兴趣的视频片段。在其他示例中,视频片段服务器116和游戏服务器126可以由同一实体操作或托管。在进一步的示例中,视频分类系统100可以完全在客户端设备104上实现,和/或其中显示为包含在服务器中的一个或更多个组件和/或功能可以至少部分地在客户端设备104上实现。
视频片段服务器116可以包括一个或更多个应用程序编程接口(API),以实现与游戏服务器126或客户端设备104进行的信息通信(例如,游戏会话视频数据、值得注意的片段时间戳、片段选择数据等)。例如,视频片段服务器116可以包括一个或更多个与客户端设备104或游戏服务器126接口以接收游戏会话视频数据的游戏API。作为进一步的示例,视频片段服务器116可以包括一个或更多个与游戏引擎128或客户端设备104接口的API,用于传输分类的视频。尽管本文描述了不同的API,但API可以是单个API的一部分,两个或更多个API可以被组合,可以包括除了本文中描述为示例的那些以外的不同的API,或其组合。
如本文所述,视频片段可以基于预期兴趣的持续时间生成,其可以无监督的方式被识别。视频片段服务器116可以基于预期兴趣的持续时间从游戏服务器126或客户端设备104接收视频片段。作为另一个示例,视频片段服务器116可以接收由兴趣确定器140生成的片段时间戳数据,并根据预期兴趣的持续时间从存储在数据存储124中的游戏会话视频数据生成视频片段。视频片段可以在不同的上下文中生成,例如当识别训练数据以训练分类模型时,或者当识别游戏玩家可能想要共享或存储的片段时(例如,使用分类模型进行分类时)。本文详细描述了这些上下文中的每一个。
在本公开的一个方面中,基于预期兴趣的持续时间的视频片段可以用于训练分类模型。在高水平上,生成一组视频片段的训练集,并从视频片段中提取特征。然后对这些特性进行聚类,以识别具有相似性的集群或分类,每个分类或集群都有一个集群中心。然后,通过将视频片段的特征与分类进行比较(例如,通过确定这些特征与集群中心的距离),将这些分类用来对视频片段进行归类。视频片段服务器126可以用于此操作,其包括特征提取器156、聚类引擎158和分类器160。
特征提取器156可以包括指令,当由处理器执行时,该指令使处理器不限于从视频片段中获得特征(例如,特征向量),所述特征可以以某种方式被量化,以便在聚类时确定特征之间的距离。在一些实施例中,特征提取器156是经训练的图像分类器的经训练的特征提取器,例如预先训练的用于对图像集上的图像进行分类的机器学习模型。在一些例子中,图像集可以包括真实世界的照片,而不是视频游戏的帧。尽管图1包括神经网络的图示,但这并不是限制性的。例如,特征提取器156可以利用任何类型的机器学习模型来提取特征,例如使用线性回归的机器学习模型、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、K-最近邻(Knn)、K表示聚类、随机森林、降维算法、梯度提升算法、神经网络(例如,自动编码器、卷积、反复、感知器、长/短期记忆、霍普菲尔德、玻尔兹曼、深度信赖、反卷积、生成对抗、液态机器等)和/或其他类型的机器学习模型。
在一些实施例中,机器学习模型包括在图片网络或其他一些图像数据库上预先训练的深卷积神经网络,以将图像分类为预定义的分类。可以在特征提取器156中使用的CNN示例包括但不限于ResNet50、InceptionV3、VGG16、VGG19以及Xception。
在一个方面中,特征提取器156被训练为更大图像分类器的一部分,用于在预期兴趣的每个持续时间内为帧生成特征向量。用于使用特征提取器156提取的特征向量进行分类的图像分类器(例如,神经网络层)的上述组件可以不被使用,也可以不被包括在视频片段服务器116上。相反,特征向量可以被聚类,从而以无监督的方式识别分类。
在某些方面中,特征提取器156可以用于从每个视频片段的已确定的(例如,预先确定的)帧数(例如,40帧)的每个帧中提取特征。一个给定的片段可以包括数百或数千帧,这通常高于已确定的帧数。因此,在从片段中提取或复制帧以进行特征提取时,可以周期性地跳过帧以到达具有确定帧数的帧子集。
一旦提取或生成了帧的数量,就可以为每个所提取的帧生成特征向量。因此,可以根据已确定的数字为每个视频片段生成相同数量的特征向量,而不考虑视频片段的持续时间。继续这个例子,特征提取器156(运行在ImageNet(或其他一些图像数据库)上预先训练的CNN)可以输出一个包含每个帧的2048元素特征集的功能向量,其可以被连接以形成40×2048阵列(例如,当已确定的提取帧数为40时)。
阵列可以与聚类引擎158以及来自其他游戏会话114的其他阵列通信。聚类引擎158可以包括指令,当其被处理器执行时,该指令使处理器不受限制地将一种或更多种聚类技术应用于每帧的特征集。例如,聚类引擎158可以包括指定集群大小阈值(例如,样本数量、距离阈值等)、集群数量等的配置指令。这一配置数据可以被存储在视频片段服务器116上,并且可以被周期更新,或者该配置数据可以从其他配置服务器中下载。因此,每个帧可以被独立分析,并被分配一个集群标识符(ID)。例如,聚类引擎可以应用K-均值聚类、关联传播、均值漂移、凝聚层次聚类、DBScan或Birch。使用这些技术中的一种或更多种,聚类引擎158识别具有相似特征向量的帧的集群。集群可以构成视频片段分类的基础,用于对视频片段进行分类,这将在关于分类器160进行描述。每个分类可以包括一个集群(或集群的组合)的集群中心,其可以在随后的视频片段分类中使用。
所识别的视频片段集群可以分别对应于各自的分类。例如,可以将分类提供给人类和/或软件标签器(例如,管理员),以应用文本描述符。例如,赛车游戏的文本描述符可以包括“超车”、“绕弯道赛车”和“事故”。在另一个示例中,第一人称射击游戏的文本描述符可以包括“室内射击”、“狙击手”和“交火”。这些示例不意图限制,并且贯穿本公开所描述的方法和系统可以适用于各种竞争性和/或合作性游戏,尤其是电子竞技游戏,包括但不限于赛车、运动仿真、实时策略、可收藏的纸牌游戏仿真、大型多人在线游戏、平台游戏等。除了标记分类以外或者代替标记分类,人类和/或软件可以将集群合并到相同的分类中,将集群分配给分类,和/或从已训练的分类模型的分类中删除集群。
一旦使用至少聚类引擎158识别了视频片段分类,给定一个新样本(例如,新游戏播放会话的新视频片段),分类器160可以使用已训练的分类模型来确定新样本是否属于一个或更多个分类。例如但不限于,分类器160可以包括指令,当其被处理器执行时,该指令使处理器确定新样本的每个帧的特征集距离是否满足一个或更多个参数或阈值以用于属于一个分类。为此,特征提取器156(使用已确定的帧数)可以处理新样本,以提取每个帧的特征向量。新样本的每一个特征向量都可以通过计算其与不同分类的集群中心的距离来与分类的特征进行比较。分类器160被描述为视频片段服务器116的组件,并且在其他方面,分类器160可以是游戏服务器126或客户端设备104的组件。例如,视频片段服务器116的一个或更多个组件可以是游戏引擎128、游戏应用程序106的一部分,和/或可以与那些组件分开。
当帧特征向量的特征集距离比任何其他集群中心更接近该现有分类的集群中心时,分类器160可以将帧分类为属于现有分类。在这种情况下,帧可以被分配一个唯一的分类ID(例如,文本标签),该ID与其被分类的现有分类相关联。分类器160也可以应用其他规则。例如,分类器160可以包括距离阈值,并且如果特征集距离超过了所有集群的距离阈值,那么如果有足够多的帧也超过了距离阈值(例如,并且彼此也足够相似),则可以创建一个新的分类来对帧进行分类。距离阈值可以根据经验被设置为单个值(而不是向量)。
在进一步的示例中,分类器160可以应用帧多数规则或其他基于帧的度量来对视频片段进行分类。例如,帧多数规则可以指定视频片段被分类为大多数帧被分类的分类。例如,如果一个片段包含36个属于第一类的帧和4个属于第二类的帧,则视频片段可以被分类为第一类,因为大多数帧都在第一类中,在这种情况下,视频片段可以与为第一类创建的文本描述符相关联。如果大多数帧是离群值且不满足距离阈值或其他规则,从而创建了新的分类,则新的分类可能还不存在唯一的ID或文本描述符。因此,新的分类可以由人工标签器(例如,管理员)审查,以添加文本描述符。在一些示例中,视频片段可以被分配多于一类,例如具有属于该类的第二最多数帧的第二类和/或具有至少属于该类的帧的阈值百分比的分类。
一旦新样本已经被分类,视频片段服务器116可以与游戏服务器16和/或客户端设备104通信,指示新样本是在现有分类还是新的分类下分类,以及该分类的文本描述符。此外,视频片段服务器116可以将视频片段(例如,预期兴趣的持续时间)传送到游戏服务器和/或客户端设备104以呈现在显示器108上。然后用户可以选择视频片段进行共享或存储,并且可以将用户的决定作为反馈被提供给分类器160,以改进分类模型。
本公开提供了视频片段分类,其可以包括多个帧上的不同视觉内容。此外,本公开的实施例允许识别和创建不在分类模型中的新的分类,其可以用于更新分类模型而无需重新聚类。例如,如果帧与现有的任何分类(例如,距离度量值超过了每个分类的阈值)都不够相似,则可以将帧分配给新的集群和/或分类,其可以用于视频片段的未来分类。因此,新的分类可以由现有分类的离群值定义。
此外,使用本公开中描述的方法,集群或分类可以跨用户地用于同一个游戏(例如,每一组视频片段对应于不同的用户和/或游戏会话),而无需立即聚类整个数据集来抽象跨多个用户和/或游戏会话分类。例如,在视频片段分类的无监督训练中,集群或分类(例如,集群中心)的特征可以作为集群的新功能。因此,集群和分类可以执行在每个游戏的基础上、每个用户的基础上、跨多个游戏和/或类型、每个地理区域、每个技能水平等。
一旦被分类,新的样本能够用于各种目的。示例包括标记或标签用于存储和/或共享的视频片段(例如,由用户通过图形用户界面选择性地)。系统可以跟踪用户对玩家和/或管理员提供的分类的反馈,以更新分类,例如分类和/或集群的数量。例如,系统可以根据用户将不同分类的视频片段分配给同一分类来合并集群,或者以其他方式表明两个分类应该是同一分类。作为另一个例子,系统可以根据用户将集群的视频片段分配给新的分类或以其他方式表明一个分类应该是多个分类,而从集群中形成多个集群。在这方面,系统可以随着时间的推移而改进。
视频片段管理器130可以配置为向客户端设备104提供分类视频片段。例如,视频片段管理器130可以配置为从分类器160接收视频片段分类信息,例如视频片段(例如,预期兴趣的持续时间)、分类和与分类关联的文本描述符。视频片段管理器130还可以配置为将视频片段分类信息传输到客户端设备104,以显示在显示器108上供用户选择。例如,视频片段管理器130可以在游戏播放会话结束时传输视频片段分类信息。此外,视频片段管理器130可以配置为接收来自客户端设备104的表明是否选择预期兴趣持续时间用于共享或存储的用户反馈,并将用户反馈传输到分类器160,其可以使用用户反馈来优化分类模型。在一些示例中,视频片段管理器可能至少部分地实现在一个或更多个客户端设备104和/或游戏服务器126上(例如,作为游戏应用程序106和/或游戏引擎128的一部分)。
通信接口122可以包括用于在一个或更多个网络(例如网络102)之间通信的一个或更多个组件和功能。通信接口122可以配置为通过本文所述的任意数量的网络102进行通信。例如,为了在图1的视频分类系统100中通信,视频片段服务器116可以通过LAN和/或互联网与其他视频片段服务器、游戏服务器126和/或客户端设备104通信。如上所述,视频片段服务器116可以与游戏服务器和客户端设备交换各种信息,包括视频片段、视频片段分类以及用户是否共享或存储视频片段的指示。
游戏服务器126可以包括一个或更多个服务器(例如,专用游戏服务器),用于存储、托管、管理和(在某些示例中)渲染游戏。在一些示例中,第一游戏服务器126可以用于创建、更新和修改游戏(例如,游戏的程序代码),第二游戏服务器126可用于托管游戏(例如,作为专用游戏服务器)。尽管在图1中只说明了游戏服务器126的一些组件和/或功能,但这并不意图限制。例如,游戏服务器126可以包括额外的或替代的组件,例如下文关于图6中的计算设备600所描述的组件。
游戏服务器126可以包括一个或更多个API,以使能客户端设备104的游戏播放和/或使能与配置文件服务器116进行的信息(例如,用户配置文件、用户类别配置文件、游戏会话数据等)的通信。例如,游戏服务器126可以包括一个或更多个与客户端设备104的游戏应用程序106接口的游戏API,以使能客户端设备104的游戏播放。作为另一个示例,游戏服务器126可以包括一个或更多个游戏会话API,其与特征提取器156接口,以将预测的感兴趣时间传递给视频片段服务器116进行分类。作为进一步的示例,游戏服务器126可以包括一个或更多个API,其与分类器160接口,以接收用于传输到客户端设备104的分类的视频片段。尽管本文描述了不同的API,但这些API可以是单个API的一部分,两个或多个API可以组合,可以包括除了本文中描述为示例的API以外的不同的API,或其组合。
游戏服务器126可以包括游戏引擎128。游戏引擎128可以包括使一个或更多个用户通过网络玩游戏的游戏功能。游戏引擎128可以包括渲染引擎、音频引擎、物理引擎、动画引擎、人工智能引擎、网络引擎、流引擎、内存管理引擎和/或其他组件或特征。游戏引擎128可以用于在游戏会话期间生成部分或全部游戏会话数据。
通信接口132可以包括用于在一个或更多个网络(例如网络102)之间通信的一个或更多个组件和特征。通信接口132可以配置为通过本文所述的任意数量的网络102进行通信。例如,为了在图1的视频分类系统100中通信,游戏服务器126可以通过LAN与其他游戏服务器通信,并/或通过互联网与其他游戏服务器126、配置文件服务器116和/或客户端设备104通信。
现在参照图2,本文所述的方法200的每个框包含可以使用硬件、固件和/或软件的任何组合执行的计算过程。例如,各种功能可以由执行存储在内存中的指令的处理器执行。该方法还可以实现为存储在计算机存储介质上的计算机可用指令。举例来说,该方法可以由独立的应用程序、服务或托管的服务(独立的或与其他托管服务组合)或者是另一个产品的插件提供。此外,方法200以示例的方式参照图1的系统进行了描述。然而,该方法可由任何一个系统或任何系统的组合(包括但不限于本文所述的系统)额外或替代地执行。
图2是根据本发明的一些实施例的,示出用于识别视频片段分类的方法200的流程图。在框B202,方法200包括从游戏播放会话的游戏播放视频中确定预期兴趣的持续时间,每个持续时间对应于在游戏播放会话的一个游戏播放会话期间做出的一个或更多个输入设备的用户选择。此外,在框B204,根据预期兴趣的持续时间,确定游戏播放视频的多个视频片段。
例如,作为框B202的一部分,预期兴趣的持续时间可以由兴趣确定器140根据游戏数据捕获器138捕获的各种游戏数据来确定,例如通过分析表示用户输入到键盘、鼠标、游戏控制台控制器或触摸屏一个或更多个的输入设备数据和/或视频播放的可视化数据。此外,预期兴趣的持续时间可以基于以下一个或更多个:一个或更多个输入设备上的一个或更多个按钮在给定时间内被按下的速率、一个或更多个按钮被按下的速度,或一个或更多个按钮被按下的分类。
在实施例中,预期兴趣的持续时间可以通过计算与预期兴趣的持续时间相关的持续时间内的运行输入设备选择度量来确定。运行输入设备选择度量可以基于多个快速循环,在此期间用户选择的速度连续超过预定的速度阈值。此外,多个快速循环可以用于在用于识别多个视频片段的时间段内识别多个时间段。在又一实施例中,预期兴趣的持续时间可以取决于计算在持续时间段上的运行输入设备选择,通过将算法应用于多个快速循环,包括在快速循环中输入设备激活的最大速度、在快速循环中激活并分类在预先确定的输入组中的输入量、以及包含在快速循环中的输入设备激活的总数。在那种情况下,多个快速循环用于在用于识别多个视频片段的时间段内识别多个时间段。
作为框B204的一部分,多个视频片段可以由视频片段服务器116、客户端设备104或游戏服务器生成。例如,如果时间段150(A)被视为预期兴趣的持续时间,则客户端设备104、游戏服务器126或视频片段服务器可以生成或提取帧200-275的视频片段(或其副本)。
框B206包括生成多个视频片段的每个视频片段的多个帧的特征向量。例如,可以从每个视频片段生成帧,由聚类引擎158提供,作为训练图像分类器的特征提取器156的输入。特征提取器146生成代表特征向量的输出。如本文所述,在一些示例中,特征提取器156可以是在非特定于游戏的图像数据集(如ImageNet)上训练的深度CNN。
框B208包括通过使用特征向量将每个视频片段的多个帧聚类成集群来识别多个视频片段分类,每个视频片段分类包括视频片段的子集。例如,聚类引擎158可以在每帧基础上应用一个或更多个聚类技术,例如K-均值、DMScan或Agglomerative(会凝聚的),以识别具有类似特征的一个或更多个子集。然后可以使用视频片段分类对新的样本视频片段进行分类。
尽管图2中没有明确描述,但多个视频片段可以是视频游戏(例如,同一个视频游戏)的第一多个视频片段。此外,识别多个视频片段分类可以包括使用第二多个视频片段的多个帧的特征向量,将该视频游戏的第二多个视频片段的每个视频片段的多个帧聚类成集群的第一步。第二步可以包括将第一多个视频片段的集群的集群中心和第二多个视频片段的集群的集群中心,聚合成集群中心的集合,其中多个视频片段分类中的至少一个基于(例如,分配给)集群中心中的至少一个。
现在参考图3,本文所述的方法300的每一框包含可以使用硬件、固件和/或软件的任何组合执行的计算过程。例如,各种功能可以由执行存储在内存中的指令的处理器执行。该方法还可以实现为存储在计算机存储介质上的计算机可用指令。举例来说,该方法可以由独立的应用程序、服务或托管服务(独立的或与其他托管服务组合)提供,也可以由其他产品的插件提供。此外,方法300以实例的方式描述了图1的系统。然而,该方法可由任何一个系统或任何系统组合(包括但不限于本文所述的那些)额外地或替代地执行。
图3是根据本发明的一些实施例的示出用于对视频片段进行分类的方法300的流程图。在框B302,方法300包括从游戏播放视频生成第一组视频片段的多个帧的特征向量。第一组视频片段可以是在不同环境下运行的一个或更多个游戏播放会话的结果。例如,游戏播放会话是由视频分类系统100的一个或更多个管理员播放一个或更多个游戏来生成训练系统100的训练数据。游戏播放会话也可以是用户或玩家播放一个或更多个游戏的结果。此外,游戏播放会话可以是管理员和用户播放一个或更多个游戏的结果。如上所述,游戏播放视频可以存储在本地存储器136、数据存储134和/或数据存储124中,在一个实施例中,特征提取器156接收游戏播放视频的帧或其一部分,并为游戏播放视频中包含的帧生成特征向量。
框B304包括通过使用特征向量将第一组视频片段的多个帧聚类为组来识别多个视频片段分类,每个视频片段分类包括一个聚类中心。例如,聚类引擎158可以在每帧的基础上应用一个或更多个聚类技术,例如K-均值、DMScan或Agglomerative,以识别一个或更多个具有类似特征的子集,每个子集包括集群中心。
在框B306,至少部分地基于视频片段的帧和多个视频片段分类的集群中心之间的距离度量,将视频片段分类分配给第二组视频片段中的视频片段。例如,可以从视频片段中提取每帧特征向量,并且可以通过计算相对于集群中心的特征集距离来评估特征向量与多个视频片段分类的相似性。
继续B306,分配可以包括基于帧的第一子集中每个帧的距离度量确定视频片段的帧的第一子集分别属于视频片段分类,以及基于帧的第二子集中每个帧的距离度量确定视频片段的帧的第二子集不属于视频片段分类。在这种情况下,视频片段可以根据第一子集中的帧数量大于第二子集中的帧数量来分配视频片段类。在另一个示例中,相对于第一视频片段分类的第一集群中心对帧的第一子集中的每个帧的距离度量进行评估,而相对于第二视频片段分类的第二集群中心对帧的第二子集中的每个帧的距离度量进行评估。在这种情况下,视频片段分类是基于第一子集中的帧数量大于第二子集中的帧数量的第一视频片段分类。在另一个示例中,视频片段分类是多个视频片段分类中的第一视频片段分类,并且基于具有在距离第一视频片段分类的集群中心的阈值距离之内的距离度量的视频片段的第一数量的帧,多于具有在距离第二视频片段分类的集群中心的阈值距离之内的距离度量的视频片段的第二数量的帧,将视频片段分类分配给视频片段。
在另一个示例中,视频片段分类是基于视频片段的帧的大多数的距离度量都落在视频片段分类的集群中心阈值距离之内的多个视频片段分类中的一个。或者,视频片段分类可以是不同于多个视频片段分类的新的分类,其基于具有帧的距离度量超过了从多个视频片段分类的每一个的集群中心的阈值距离的视频片段的帧的数量。
现参照图4,本文所述的方法400的每一框包含可以使用硬件、固件和/或软件的任何组合执行的计算过程。例如,各种功能可以由执行存储在内存中的指令的处理器执行。该方法还可以实现为存储在计算机存储介质上的计算机可用指令。该方法可以由独立的应用程序、服务或托管服务(独立的或与其他托管服务组合)提供,也可以由其他产品的插件提供。此外,方法400以实例的方式关于图1的系统进行了描述。然而,该方法可以由任何一个系统或任何系统组合(包括但不限于本文所述的系统)额外或替代地执行。
图4是根据本发明的一些实施例的示出用于对视频片段进行分类的方法400的流程图。在框B402,方法400包括根据数字视频确定预期兴趣的持续时间。数字视频可以是视频游戏,也可以包括一些其他内容,例如现场或录制的体育赛事或其他流媒体内容。如前所述,预期兴趣的持续时间可由兴趣确定器140或机顶盒或其他流设备的某些类似模块确定。
在步骤B404,基于预期兴趣的持续时间,确定数字视频的多个视频片段。例如,视频片段可以由与预期兴趣持续时间相对应的视频内容生成。步骤B406包括生成多个视频片段的每个视频片段的多个帧的特征向量,例如通过特征提取器156执行本公开中描述的任何操作。
步骤B408包括通过使用特征向量将多个视频片段的多个帧聚类成集群来识别多个视频片段分类,每个视频片段分类包括集群中心。例如,聚类引擎158可以聚类这些帧并生成集群中心。在步骤B410,视频片段分类被分配给视频片段,至少部分基于视频片段帧与多个视频片段分类的集群中心之间的距离度量。例如,根据应用于视频片段的距离度量的规则,分类器160可以将视频片段分配给多个视频片段分类中的一个或新的视频片段分类。
现在参考图5,图5是根据本公开的一些实施例的游戏流媒体系统500的示例系统图。图5包括游戏服务器502(其可以包括与图1的游戏服务器126和/或图6的计算设备600相似的组件、特征和/或功能)、客户端设备504(其可以包括与图1的客户端设备104和/或图6的计算设备600相似的组件、特征和/或功能)和网络506(其可以类似于图1中的网络102)。在本公开的一些实施例中,可以实施系统500。
在系统500中,对于游戏会话,客户端设备504可以只接收响应输入设备的输入的输入数据,将输入数据传输到游戏服务器502,从游戏服务器502接收编码的显示数据,并在显示器524上显示显示数据。因此,计算强度更高的计算和处理被卸载到游戏服务器502(例如,游戏会话的渲染由游戏服务器502的GPU执行)。换句话说,游戏会话从游戏服务器502被流传输到客户端设备504,从而降低了客户端设备504对图形处理和渲染的要求。
例如,对于游戏会话的实例化,基于从游戏服务器502接收到的显示数据,客户端设备504可以在显示器524上显示游戏会话的帧。客户端设备504可以接收到输入设备之一的输入,并生成响应的输入数据。客户端设备504可以通过通信接口520和网络506(如互联网)将输入数据传输到游戏服务器502,并且游戏服务器502可以通过通信接口518接收输入数据。CPU可以接收输入数据,处理输入数据,并将数据传输到GPU,从而使GPU生成游戏会话的渲染。例如,输入数据可以代表用户在游戏中的角色移动、发射武器、重新加载、传球、转向车辆等。渲染组件512可以渲染游戏会话(例如,代表输入数据的结果),并且渲染捕获组件514可以捕获游戏会话的渲染作为显示数据(例如,作为图像数据捕获游戏会话的被渲染的帧)。编码器516随后对显示数据进行编码以生成编码的显示数据,并且编码的显示数据可以通过通信接口518通过网络506被传输到客户端设备504。客户端设备504可以通过通信接口520接收编码的显示数据,并且解码器522可以对编码的显示数据进行解码以生成显示数据。然后,客户端设备504可通过显示器524显示显示数据。
图6是适用于实施本发明的一些实施例的示例计算装置600的框图。计算设备600可以包括直接或间接耦连以下设备的总线602:存储器604、一个或更多个中央处理单元(CPU)606、一个或更多个图形处理单元(GPU)608、通信接口610、输入/输出(I/O)端口612、输入/输出组件614、电源616和一个或更多个表示组件618上(例如显示器)。
尽管图6中的各个模块被示为通过总线602与线路连接,但这并不意图限制,只是为了清晰起见。例如,在一些实施例中,表示组件618,例如显示设备,可以被视为I/O组件614(例如,如果显示器是触摸屏)。作为另一个例子,CPU 606和/或GPUS 608可以包括存储器(例如,存储器604可以是除GPU 608、CPU 606和/或其他组件的存储器之外的存储设备的代表)。换句话说,图6的计算装置只是示例性的。在“工作站”、“服务器”、“笔记本电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持设备”、“游戏机”、“电子控制单元(ECU)、“虚拟现实系统”和/或其他设备或系统类型之间没有区别,因为所有这些都在图6的计算设备的范围内。
总线602可以表示一个或更多个总线,例如地址总线、数据总线、控制总线或其组合。总线602可以包括一个或更多个总线类型,例如工业标准体系结构(ISA)总线、扩展工业标准体系结构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、外围组件互连快速(PCIe)总线和/或其他类型的总线。
存储器604可以包括各种计算机可读介质中的任何一种。计算机可读介质可以是计算机设备600可以访问的任何可用介质。计算机可读介质可以包括易失性介质和非易失性介质,以及可移动和不可移动介质。举例来说,计算机可读介质可以包括计算机存储介质和通信介质,但不限于此。
计算机存储介质可以包括易失性和非易失性介质和/或以任何方法或技术实现的可移动和不可移动介质,用于存储信息,例如计算机可读指令、数据结构、程序模块和/或其他数据类型。例如,存储器604可以存储计算机可读的指令(例如,表示程序和/或程序元素的指令,例如操作系统)。计算机存储介质可包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功能磁盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储设备,或任何其他可用于存储所需信息且可被计算装置600访问的介质。如本文所用,计算机存储介质本身不包含信号。
通信介质可以在调制数据信号中实现计算机可读指令、数据结构、程序模块和/或其他数据类型,例如载波或其他传输机制,并包括任何信息传递介质。术语“调制数据信号”可以指具有一个或更多个特征集的信号,或以编码信号中信息的方式改变的信号。举例来说,并且不限于,通信介质可以包括有线介质,例如有线网络或直接有线连接,以及无线介质,例如声学、射频、红外和其他无线介质。上述任意的组合也应包括在计算机可读介质的范围内。
CPU 606可以配置为执行计算机可读指令以控制计算设备600的一个或更多个组件以执行本文所述的一个或更多个方法和/或过程。CPU 606可以包括能够同时处理多个软件线程的一个或更多个内核(例如,一个、两个、四个、八个、二十八个、七十二个等)。CPU606可以包括任何类型的处理器,并可以包括不同类型的处理器,具体取决于所实施的计算设备600的类型(例如,移动设备的核心较少的处理器和服务器的核心较多的处理器)。例如,根据计算设备600的类型,处理器可以是使用精简指令集计算(RISC)实现的ARM处理器,也可以是使用复杂指令集计算(CISC)实现的x86处理器。除一个或更多个微处理器或辅助协处理器(例如数学协处理器)外,计算设备600还可以包括一个或更多个CPU 606。
计算设备600可以使用GPU 608来渲染图形(例如,3D图形)。GPU 608可以包括数百或数千个能够同时处理数百或数千个软件线程的内核。GPU 608可以根据渲染命令(例如,通过主机接口接收的CPU 606的渲染命令)生成输出图像的像素数据。GPU 608可以包括用于存储像素数据的图形存储器,例如显示存储器。显示存储器可以作为存储器604的一部分。GPU 608可以包括两个或多个并行(例如,通过链路)操作的GPU。当组合在一起时,每个GPU 608可以为输出图像的不同部分或不同输出图像生成像素数据(例如,第一图像的第一GPU和第二图像的第二GPU)。每个GPU可以包括自己的内存,或者也可以与其他GPU共享内存。
在计算设备600不包括GPU 608的示例中,可以使用CPU 606渲染图形。
通信接口610可以包括一个或更多个接收器、发送器和/或收发器,使计算设备600能够通过包括有线和/或无线通信的电子通信网络与其他计算设备通信。通信接口610可包括组件和功能,以使能在许多不同网络上进行通信,例如无线网络(例如Wi-Fi、Z-Wave、蓝牙、蓝牙LE、ZigBee等)、有线网络(例如通过以太网通信)、低功耗广域网(例如LoRaWAN、SigFox等)和/或互联网。
I/O端口612可以使计算设备600逻辑地耦连到其他设备,包括I/O组件614、表示组件618和/或其他组件,其中一些组件可以内置到(例如,集成在)计算设备600中。示例性的I/O组件614包括麦克风、鼠标、键盘、操纵杆、游戏板、游戏控制器、卫星碟、扫描仪、打印机、无线设备等。I/O组件614可以提供自然用户界面(NUI),其处理用户生成的空气手势、声音或其他生理输入。在某些情况下,输入可以被传输到适当的网络单元进行进一步处理。NUI可以实现与计算设备600的显示相关的语音识别、触笔识别、面部识别、生物识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪以及触摸识别(下文更详细地描述)的任何组合。计算设备600可以包括深度照相机,例如立体照相机系统、红外照相机系统、RGB照相机系统、触摸屏技术以及这些技术的组合,用于手势检测和识别。此外,计算装置600可以包括加速度计或陀螺仪(例如,作为惯性测量单元(IMU)的一部分),其使能运动检测。在一些例子中,计算设备600可以使用加速度计或陀螺仪的输出来选人沉浸式增强现实或虚拟现实。
电源616可以包括硬接线电源、电池电源或其组合。电源616可以向计算装置600提供电源,使计算装置600的组件能够工作。
表示组件618可以包括显示器(例如显示器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示类型或其组合)、扬声器和/或其他展示组件。表示组件618可以接收来自其他组件(例如GPU 608、CPU 606等)的数据,并输出数据(例如图像、视频、声音等)。
本公开可以在计算机代码或机器可使用指令(包括计算机可执行指令,例如程序模块)的一般上下文中描述,这些指令由计算机或其他机器(例如个人数据助理或其他手持设备)执行。通常,程序模块包括例程、程序、对象、组件、数据结构等,是指执行特定任务或实现特定抽象数据类型的代码。本公开可以在各种系统配置中进行,包括手持设备、消费电子产品、通用计算机、更专业的计算设备等。本公开也可以在分布式计算环境中进行,其中任务由通过通信网络连接的远程处理设备执行。
如本文所用,对两个或多个元素的“和/或”的详述应被解释为意味着单独的一个元素或元素的组合。例如,“元素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中的至少一个或元素A和元素B中的至少一个。
为满足法定要求,本文对本发明的主题进行了具体描述。然而,说明书本身并不意图限制本公开的范围。相反,发明人已经考虑到,所要求保护的主题也可以以其他方式实现,包括与本文件中描述的步骤类似的不同步骤或步骤组合,以及其他现有或未来的技术。此外,尽管术语“步骤”和/或“块”可在本文中用于暗示所采用方法的不同元素,但术语不应解释为暗示本文所披露的各个步骤之中或之间的任何特定顺序,除非和除了当明确描述了各个步骤的顺序时。
Claims (20)
1.一种方法,包括:
根据游戏播放会话的视频数据,确定预期兴趣的持续时间,每个持续时间对应于在所述游戏播放会话的游戏播放会话期间由用户通过一个或更多个输入设备提供的输入;
基于所述预期兴趣的持续时间,从所述视频数据中确定多个视频片段;
生成所述多个视频片段的每个视频片段的多个帧的特征向量;以及
通过使用所述特征向量将每个视频片段的所述多个帧聚类为集群来识别多个视频片段分类,每个视频片段分类对应于所述视频片段的一个子集。
2.根据权利要求1所述的方法,其中所述确定预期兴趣的持续时间是基于分析表示用户输入到键盘、鼠标、游戏机控制器或触摸屏中的一个或更多个的输入设备数据。
3.根据权利要求1所述的方法,其中所述确定预期兴趣的持续时间是基于以下一项或更多项:
在给定时间内按下所述一个或更多个输入设备上的一个或更多个按钮的速率,
按下所述一个或更多个按钮的速度,或
被按下的所述一个或更多个按钮的分类。
4.根据权利要求1所述的方法,进一步包括计算与预期兴趣的持续时间相关的持续时间内的运行输入设备选择度量,其中所述运行输入设备选择度量基于多个快速循环,在此期间所述用户选择的速度连续超过预定的速度阈值,并且其中所述多个快速循环用于识别所述持续时间内的多个时间段,所述多个时间段用于识别所述多个视频片段。
5.根据权利要求1所述的方法,进一步包括通过将算法应用于多个快速周期的属性来计算持续时间内的运行输入设备选择度量,所述多个快速周期的属性包括在快速周期内的输入设备激活的最大速度,既在所述快速周期内被激活又在预定的输入组中被分类的输入的量,以及包括在所述快速周期中的输入设备激活的总量,其中所述多个快速周期用于所述持续时间内的多个时间段,所述多个时间段用于识别所述多个视频片段。
6.根据权利要求1所述的方法,其中所述生成所述特征向量包括将所述多个帧作为输入提供给已训练的图像分类器的特征提取器,以生成代表所述特征向量的所述特征提取器的输出,并且其中所述聚类是在每帧的基础上使用相应的特征向量对所述多个帧的单独帧执行的。
7.根据权利要求1所述的方法,进一步包括至少部分地基于所述视频片段的帧和所述多个帧之间的距离度量将分类分配给视频片段。
8.根据权利要求1所述的方法,其中所述多个视频片段是游戏应用程序的第一多个视频片段,并且所述识别所述多个视频片段分类包括:
使用第二多个视频片段的所述多个帧的特征向量,将所述游戏应用程序的游戏播放的所述第二多个视频片段的每个视频片段的多个帧聚类成集群;以及
将所述第一多个视频片段的所述集群的集群中心和所述第二多个视频片段的所述集群的集群中心聚合成集群中心的集合,其中所述多个视频片段分类中的至少一个是基于所述集群中心的所述集合中的至少一个集群中心。
9.一种方法,包括:
由游戏播放视频数据生成第一组视频片段的多个帧的特征向量;
通过使用所述特征向量将所述第一组视频片段的所述多个帧聚类为集群来识别多个视频片段分类,每个视频片段类包括集群中心;以及
至少部分基于所述视频片段的帧与所述多个视频片段分类的所述集群中心之间的距离度量,将视频片段类分配给第二组视频片段中的视频片段。
10.根据权利要求9所述的方法,其中所述分配包括:
基于所述帧的所述第一子集中每个帧的所述距离度量,确定每个所述视频片段的所述帧的第一子集属于所述视频片段分类;以及
基于所述帧的所述第二子集中每个帧的所述距离度量,确定所述视频片段的所述帧的第二子集不属于所述视频片段分类,其中基于所述第一子集中帧的数量大于所述第二子集中帧的数量,将所述视频片段分配给所述视频片段分类。
11.根据权利要求9所述的方法,其中所述分配包括:
基于所述帧的所述第一子集中每个帧相对于所述第一视频片段分类的第一集群中心的所述距离度量,确定每个所述视频片段的所述帧的第一子集属于所述视频片段分类的第一视频片段分类;以及
基于所述帧的所述第二子集中每个帧相对于所述第二视频片段分类的第二集群中心的所述距离度量,确定每个所述视频片段的所述帧的第二子集属于所述视频片段分类的第二视频片段分类,其中所述视频片段分类是基于所述第一子集中帧的数量大于所述第二子集中帧的数量的所述第一视频片段分类。
12.根据权利要求9所述的方法,其中所述视频片段分类是基于所述视频片段的大多数所述帧的所述距离度量的所述多个视频片段分类中的一个,所述距离度量在距离所述视频片段分类的所述集群中心的阈值距离内。
13.根据权利要求9所述的方法,其中所述视频片段分类是所述多个视频片段分类的第一视频片段分类,并且基于具有在距离所述第一视频片段分类的所述集群中心的阈值距离之内的所述距离度量的所述视频片段的所述帧的第一数量大于具有在距离第二视频片段分类的所述集群中心的所述阈值距离之内的所述距离度量的所述视频片段的所述帧的第二数量,将所述视频片段分类分配给所述视频片段。
14.根据权利要求9所述的方法,其中所述视频片段分类是不同于所述多个视频片段分类的新的分类,所述新的分类基于具有所述帧的所述距离度量超过从所述多个视频片段分类中的每一个的所述集群中心的阈值距离的所述视频片段的所述帧的数量。
15.一种方法,包括:根据数字视频数据确定预期兴趣的持续时间;
基于所述预期兴趣的持续时间,从所述数字视频数据中确定多个视频片段;生成所述多个视频片段的每个视频片段的多个帧的特征向量;通过使用所述特征向量将所述多个视频片段的所述多个帧聚类为集群来识别多个视频片段分类,每个视频片段类对应于集群中心;以及至少部分基于所述视频片段的帧与所述多个视频片段分类的所述集群中心之间的距离度量将视频片段分类分配给视频片段。
16.根据权利要求15所述的方法,其中使用已训练的图像分类器的自动特征提取器来生成所述特征向量。
17.根据权利要求15所述的方法,其中使用针对每个所述帧的特征向量在每帧的基础上对所述多个帧的所述特征向量进行聚类。
18.根据权利要求15所述的方法,其中所述视频片段分类是不同于所述多个视频片段分类的新的分类,所述新的分类基于具有所述帧的所述距离度量超过从所述多个视频片段分类中的每一个的所述集群中心的阈值距离的所述视频片段的所述帧的数量。
19.根据权利要求15所述的方法,其中所述视频片段分类基于所述视频片段的大多数所述帧的所述距离度量的所述多个视频片段分类中的一个,所述距离度量在距离所述视频片段分类的所述集群中心的阈值距离内。
20.根据权利要求15所述的方法,其中所述多个视频片段中的每一个都是相同的软件应用程序。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962868654P | 2019-06-28 | 2019-06-28 | |
US62/868,654 | 2019-06-28 | ||
US16/459,957 | 2019-07-02 | ||
US16/459,957 US11023732B2 (en) | 2019-06-28 | 2019-07-02 | Unsupervised classification of gameplay video using machine learning models |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112149709A true CN112149709A (zh) | 2020-12-29 |
Family
ID=73747676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911400492.2A Pending CN112149709A (zh) | 2019-06-28 | 2019-12-30 | 使用机器学习模型的游戏播放视频的无监督分类 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11023732B2 (zh) |
CN (1) | CN112149709A (zh) |
DE (1) | DE102020103409A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422841A (zh) * | 2021-12-17 | 2022-04-29 | 北京达佳互联信息技术有限公司 | 字幕生成方法、装置、电子设备及存储介质 |
CN115665441A (zh) * | 2022-10-19 | 2023-01-31 | 北京有竹居网络技术有限公司 | 直播内容理解方法、装置、存储介质及电子设备 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6676201B1 (ja) * | 2019-03-07 | 2020-04-08 | 株式会社Cygames | 所有媒体群に含まれる出現頻度の高い任意の個数の媒体の組み合わせを抽出するためのシステム及び方法 |
US11023732B2 (en) * | 2019-06-28 | 2021-06-01 | Nvidia Corporation | Unsupervised classification of gameplay video using machine learning models |
US11517826B2 (en) * | 2020-06-10 | 2022-12-06 | Snap Inc. | Game result overlay system |
WO2022104205A1 (en) * | 2020-11-13 | 2022-05-19 | Gifted Bill Enterprises, Llc | Gameplay evaluation method and system |
US11786824B2 (en) | 2021-02-10 | 2023-10-17 | Roblox Corporation | Automatic detection of prohibited gaming content |
US12067777B2 (en) * | 2021-03-17 | 2024-08-20 | Qualcomm Incorporated | Efficient video processing via dynamic knowledge propagation |
TWI796717B (zh) * | 2021-06-28 | 2023-03-21 | 宏正自動科技股份有限公司 | 影片剪輯裝置及影片剪輯方法 |
US11948358B2 (en) * | 2021-11-16 | 2024-04-02 | Adobe Inc. | Self-supervised hierarchical event representation learning |
CN114401440B (zh) * | 2021-12-14 | 2024-10-25 | 北京达佳互联信息技术有限公司 | 视频剪辑及剪辑模型生成方法、装置、设备、程序和介质 |
CN117749965A (zh) * | 2022-09-14 | 2024-03-22 | 北京字跳网络技术有限公司 | 字幕处理方法及装置 |
CN116451099B (zh) * | 2023-06-19 | 2023-09-01 | 浪潮通用软件有限公司 | 一种基于随机遍历的高熵knn聚类方法、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130114902A1 (en) * | 2011-11-04 | 2013-05-09 | Google Inc. | High-Confidence Labeling of Video Volumes in a Video Sharing Service |
US20150217196A1 (en) * | 2014-01-31 | 2015-08-06 | Google Inc. | Automatic generation of a game replay video |
CN105654054A (zh) * | 2015-12-30 | 2016-06-08 | 上海颐本信息科技有限公司 | 基于半监督近邻传播学习和多视觉词典模型的智能视频分析方法 |
US20170372725A1 (en) * | 2016-06-28 | 2017-12-28 | Pindrop Security, Inc. | System and method for cluster-based audio event detection |
CN109493881A (zh) * | 2018-11-22 | 2019-03-19 | 北京奇虎科技有限公司 | 一种音频的标签化处理方法、装置和计算设备 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060059225A1 (en) | 2004-09-14 | 2006-03-16 | A9.Com, Inc. | Methods and apparatus for automatic generation of recommended links |
JP4589938B2 (ja) | 2007-03-30 | 2010-12-01 | 株式会社コナミデジタルエンタテインメント | ゲームプログラム、ゲーム装置及びゲーム制御方法 |
US20100035689A1 (en) | 2008-08-11 | 2010-02-11 | Yaniv Altshuler | System and method for a gaming community |
US20120100910A1 (en) | 2010-10-20 | 2012-04-26 | Microsoft Corporation | High quality video game replay |
US20120142429A1 (en) | 2010-12-03 | 2012-06-07 | Muller Marcus S | Collaborative electronic game play employing player classification and aggregation |
US9088823B1 (en) | 2011-04-29 | 2015-07-21 | Amazon Technologies, Inc. | Customized insertions into digital items |
US9345966B2 (en) * | 2012-03-13 | 2016-05-24 | Sony Interactive Entertainment America Llc | Sharing recorded gameplay to a social graph |
US9364743B2 (en) * | 2012-12-21 | 2016-06-14 | Sony Interactive Entertainment America Llc | Generation of a multi-part mini-game for cloud-gaming based on recorded gameplay |
US9352226B2 (en) * | 2012-12-21 | 2016-05-31 | Sony Interactive Entertainment America Llc | Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay |
US9199165B2 (en) | 2013-07-16 | 2015-12-01 | Microsoft Corporation | Game clip popularity based control |
US9630097B2 (en) | 2014-01-22 | 2017-04-25 | Skillz Inc. | Online software video capture and replay system |
US11351466B2 (en) | 2014-12-05 | 2022-06-07 | Activision Publishing, Ing. | System and method for customizing a replay of one or more game events in a video game |
US10226703B2 (en) | 2016-04-01 | 2019-03-12 | Activision Publishing, Inc. | System and method of generating and providing interactive annotation items based on triggering events in a video game |
US10335690B2 (en) | 2016-09-16 | 2019-07-02 | Microsoft Technology Licensing, Llc | Automatic video game highlight reel |
US10456680B2 (en) | 2016-12-09 | 2019-10-29 | Blizzard Entertainment, Inc. | Determining play of the game based on gameplay events |
WO2018140515A1 (en) | 2017-01-27 | 2018-08-02 | Mz Ip Holdings, Llc | System and methods for determining events of interest in a multi-player online game |
US20190313024A1 (en) | 2018-04-09 | 2019-10-10 | Deep Sentinel Corp. | Camera power management by a network hub with artificial intelligence |
US10650861B2 (en) | 2018-06-22 | 2020-05-12 | Tildawatch, Inc. | Video summarization and collaboration systems and methods |
US11376498B2 (en) | 2018-11-19 | 2022-07-05 | Versus Llc | Managing in-content challenges for multi-player games |
US11023732B2 (en) * | 2019-06-28 | 2021-06-01 | Nvidia Corporation | Unsupervised classification of gameplay video using machine learning models |
US11636677B2 (en) * | 2021-01-08 | 2023-04-25 | Huawei Technologies Co., Ltd. | Systems, devices and methods for distributed hierarchical video analysis |
-
2019
- 2019-07-02 US US16/459,957 patent/US11023732B2/en active Active
- 2019-12-30 CN CN201911400492.2A patent/CN112149709A/zh active Pending
-
2020
- 2020-02-11 DE DE102020103409.1A patent/DE102020103409A1/de active Pending
-
2021
- 2021-05-20 US US17/325,435 patent/US11712621B2/en active Active
-
2023
- 2023-06-14 US US18/334,978 patent/US20230321529A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130114902A1 (en) * | 2011-11-04 | 2013-05-09 | Google Inc. | High-Confidence Labeling of Video Volumes in a Video Sharing Service |
US20150217196A1 (en) * | 2014-01-31 | 2015-08-06 | Google Inc. | Automatic generation of a game replay video |
CN105654054A (zh) * | 2015-12-30 | 2016-06-08 | 上海颐本信息科技有限公司 | 基于半监督近邻传播学习和多视觉词典模型的智能视频分析方法 |
US20170372725A1 (en) * | 2016-06-28 | 2017-12-28 | Pindrop Security, Inc. | System and method for cluster-based audio event detection |
CN109493881A (zh) * | 2018-11-22 | 2019-03-19 | 北京奇虎科技有限公司 | 一种音频的标签化处理方法、装置和计算设备 |
Non-Patent Citations (1)
Title |
---|
王娜;何晓明;刘志强;王文君;李霞;: "一种基于用户播放行为序列的个性化视频推荐策略", 计算机学报, no. 01, 31 December 2020 (2020-12-31) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422841A (zh) * | 2021-12-17 | 2022-04-29 | 北京达佳互联信息技术有限公司 | 字幕生成方法、装置、电子设备及存储介质 |
CN114422841B (zh) * | 2021-12-17 | 2024-01-02 | 北京达佳互联信息技术有限公司 | 字幕生成方法、装置、电子设备及存储介质 |
CN115665441A (zh) * | 2022-10-19 | 2023-01-31 | 北京有竹居网络技术有限公司 | 直播内容理解方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20230321529A1 (en) | 2023-10-12 |
US20210271887A1 (en) | 2021-09-02 |
US20200410241A1 (en) | 2020-12-31 |
US11712621B2 (en) | 2023-08-01 |
DE102020103409A1 (de) | 2020-12-31 |
US11023732B2 (en) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11712621B2 (en) | Video clip classification using feature vectors of a trained image classifier | |
US12033667B2 (en) | Determining high-interest durations of gameplay sessions from user inputs | |
US11350169B2 (en) | Automatic trailer detection in multimedia content | |
US20190381404A1 (en) | Method and system for real-time animation generation using machine learning | |
JP2024081702A (ja) | 現在のゲームシナリオに基づくストリーミングゲームのためのグラフィカルオーバレイの実施 | |
US20170065888A1 (en) | Identifying And Extracting Video Game Highlights | |
US11341945B2 (en) | Techniques for learning effective musical features for generative and retrieval-based applications | |
US11816890B2 (en) | Automatic content recognition and information in live streaming suitable for video games | |
US11657627B2 (en) | Focusing regions of interest using dynamic object detection for textual information retrieval | |
US12067474B2 (en) | Co-informatic generative adversarial networks for efficient data co-clustering | |
US20240169711A1 (en) | Multi-modal understanding of emotions in video content | |
US20240126810A1 (en) | Using interpolation to generate a video from static images | |
CN115604543A (zh) | 为游戏会话自动生成增强的活动和事件摘要 | |
US12059625B2 (en) | Playstyle analysis for game recommendations | |
US20220172426A1 (en) | In-game dynamic camera angle adjustment | |
Wang | Scaling Wearable Cognitive Assistance | |
US20240139629A1 (en) | Effective multi-scale multi-granular targeting for game users | |
US20240066413A1 (en) | Ai streamer with feedback to ai streamer based on spectators | |
WO2024220547A1 (en) | Embeddings representing visual augmentations | |
TW202247107A (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 |