CN114764896A - 适于视频游戏的直播中的自动内容辨识和信息 - Google Patents

适于视频游戏的直播中的自动内容辨识和信息 Download PDF

Info

Publication number
CN114764896A
CN114764896A CN202210033274.5A CN202210033274A CN114764896A CN 114764896 A CN114764896 A CN 114764896A CN 202210033274 A CN202210033274 A CN 202210033274A CN 114764896 A CN114764896 A CN 114764896A
Authority
CN
China
Prior art keywords
content item
video
content
game play
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
Application number
CN202210033274.5A
Other languages
English (en)
Inventor
A·赫罗帕克
A·费尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN114764896A publication Critical patent/CN114764896A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/537Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/537Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
    • A63F13/5372Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen for tagging characters, objects or locations in the game scene, e.g. displaying a circle under the character controlled by the player
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/537Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
    • A63F13/5375Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen for graphically or textually suggesting an action, e.g. by displaying an arrow indicating a turn in a driving game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/792Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for payment purposes, e.g. monthly subscriptions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/86Watching games played by other players
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4781Games

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Optics & Photonics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

涉及适于视频游戏的直播中的自动内容辨识和信息。在各个示例中,一个或更多个机器学习模型(MLM)用于识别视频流中的内容项目并且向视频流的观看者呈现与内容项目相关联的信息。流向一个或更多个用户的视频可以被应用于被训练为检测其中的一个或更多个对象的一个或更多个MLM。MLM可以直接检测特定内容项目或检测对象类型,其中可以使用双神经网络和/或算法将检测缩小到特定内容项目。所识别的内容项目的元数据可以用于显示可选择以获取游戏或其他内容中的内容项目的图形元素。在一些示例中,来自用于识别内容项目的对象检测器的对象检测坐标可用于确定叠加在视频上并且在视频的帧上呈现或者与视频的帧相关联的交互式元素的特性。

Description

适于视频游戏的直播中的自动内容辨识和信息
相关申请
本申请要求2021年1月12日提交的名称为“适于视频游戏的直播中的自动内容辨识和信息(Automatic Content Recognition And Information In Live StreamingSuitable For Video Games)”的临时申请63/136,562的权益和优先权,其全部内容通过引用并入本文。
背景技术
直播(Live streaming)允许在玩游戏的同时将游戏的游戏玩法编码成视频流,从而使得观众可以实时地观看游戏。游戏的直播已经随着视频游戏直播者(诸如专业直播人物、竞争对手和专业电子竞技选手)吸引了大量的追随者而越来越受欢迎。由此,游戏的内容可被许多人观看,包括游戏的其他玩家或潜在玩家。这些人中的一些可能希望获取或获得关于在现场直播期间呈现的特定内容项目的信息,例如武器、装甲、皮肤、角色、战利品、消耗品或其他游戏中项目或对象。
常规地,直播者可以口头地或在视频流的评论部分中提及或提供到特定内容项目的链接。然而,观看者可能难以追踪由直播者提及的项目,或者可能对不是由直播者具体提及的项目感兴趣。在流式传输诸如电影或电视节目的预先录制的视频的情境中,内容提供者已将元数据拷到预先录制的视频中。元数据可以被手动地配置为识别特定的时间,以便在那些演员出现在屏幕上时向观看者提供关于那些演员的信息。(例如,视频游戏、体育、电视等的)现场直播的视频存在在预先录制的视频中不存在的困难。例如,直播游戏的每场比赛或每一局的视频可能太不同从而无法预定义用于提供关于视频中的内容的信息的元数据。具体地,经常无法事先知道特定内容会出现在视频流的何处、何时或是否出现,或是否足够清晰以被观看者视觉识别。
发明内容
本公开的实施例涉及适于视频游戏的直播中的自动内容辨识和信息。本公开提供了用于使用经训练的机器学习模型来辨识玩游戏视频流中的对象并且确定可以针对其呈现信息的内容以帮助流的观看者获取内容的方法。
与常规系统相比,所公开的方法可以使用一个或更多个机器学习模型(MLM)来识别视频流(例如,游戏流)中的特定内容项目并且向视频流的观看者呈现与内容项目相关联的信息。在各个示例中,游戏的视频(例如,现场直播)可以被流式传输到任何数量的用户设备(例如,智能电话、游戏控制台、个人计算机等)并且被应用于经训练的一个或更多个MLM来检测其中的一个或更多个对象。在一些示例中,对象检测器的输出类别可对应于一个或更多个特定内容项目。在进一步示例中,第一MLM可用于例如使用对象检测器来检测或识别视频的一个或更多个区域中的一个或更多个对象。第二MLM(诸如,双神经网络(twinneural network))和/或算法随后可用于从所检测的对象中识别一个或更多个特定内容项目。
在进一步的方面,一旦已经确定内容项目存在于视频中,就可以使用该内容项目的元数据来显示与该内容项目相关联的信息,诸如可选择以获取游戏中或其他内容中的该内容项目的一个或更多个图形元素。在一些示例中,元数据可用以在视频的一个或更多个观看者的用户接口中呈现链接(例如,经由一个或更多个图形元素)或其他信息,或可经由电子邮件、文本或某些其他方式提供信息。例如,来自用于识别内容项目的对象检测器的对象和/或区域检测坐标可用于确定叠加在视频上并在视频的帧上呈现或与视频的帧相关联的呈现交互式(例如,图形)元素(例如,多边形)的大小、形状和/或位置。
附图说明
下面参考附图详细描述用于在适于视频游戏的直播中的自动内容辨识和信息的本系统和方法,其中:
图1是根据本公开的一些实施例的内容项目识别和呈现系统的示例系统图;
图2是根据本公开的一些实施例的来自用于获取内容项目的图形用户界面(GUI)的示例屏幕截图;
图3是示出了用于使用机器学习模型来确定视频中的内容项目的过程的框图;
图4是示出了根据本公开的一些实施例的用于确定内容项目的方法的示例的流程图;
图5是示出了根据本公开的一些实施例的用于呈现与内容项目相关联的信息的方法的示例的流程图;
图6是示出了根据本公开的一些实施例的用于使用双神经网络识别内容项目的方法的示例的流程图;
图7是适合用于实现本公开的一些实施例的示例计算设备的框图;
图8是适合用于实现本公开的一些实施例的示例内容流式传输系统的框图;以及
图9是适合用于实现本公开的一些实施例的示例数据中心的框图。
具体实施方式
公开了与适于视频游戏的直播中的自动内容辨识和信息相关的系统和方法。本公开提供了用于使用经训练的机器学习模型来辨识玩游戏视频流中的对象并且确定针对其可以呈现信息的内容以帮助流的观看者获取内容的方法。
与常规系统相比,所公开的方法可以使用(一个或更多个)机器学习模型来识别视频流(例如,游戏流)中的特定内容项目并且呈现与这些内容项目相关联的信息以帮助视频流的观看者获取内容项目。使用所公开的方法,可以基于直播视频流的内容动态地呈现关于内容项目和/或用于获取内容项目或其链接的服务的信息。
在各个示例中,游戏的视频(例如,直播)可以流式传输至任何数量的用户设备(例如,智能电话、游戏控制台、个人计算机等)。玩游戏视频可以呈现在用户设备的用户界面中以供观看。例如,用户接口中的一个或更多个可以至少部分地由托管视频流的服务和/或视频平台(例如,YouTube、Netflix、Twitch等)提供。视频可以包括实时或近实时广播的直播,或者可以预先录制或重新广播。诸如服务器、网络设备或用户设备的设备可以将视频应用于经训练的一个或更多个MLM以检测玩游戏视频内的一个或更多个对象(例如,玩家角色、车辆、游戏项目、玩家皮肤、环境元素等)。MLM可以被训练以检测可能出现在单个游戏或应用中的对象(例如,使用来自游戏或应用的训练数据),或者可以被训练以检测出现在多个游戏或情境中的对象(例如,使用更通用的训练数据集)。例如,可以训练一个或更多个MLM以检测多个游戏、游戏集合或系列和/或游戏的一个或更多个版本或扩展中的对象。
基于一个或更多个MLM检测玩游戏视频内的一个或更多个对象,可以确定该视频内的一个或更多个内容项目。内容项目可以是可以出现在玩游戏视频内并且可以在游戏中或在其他内容中获取的多个虚拟或真实生活的项目中的任何一个(例如,玩家皮肤、物品、武器、装备、车辆等)。
在一些实施例中,可以使用MLM要检测的内容项目的注释图像来训练一个或更多个MLM。例如,MLM可以使用包括内容项目的游戏的玩游戏视频来训练。在一些示例中,对象检测器的输出类别可对应于一个或更多个特定内容项目。在进一步示例中,第一MLM可用于例如使用对象检测器来检测或识别视频的一个或更多个区域中的一个或更多个对象。第二MLM和/或算法随后可用于从所检测的对象中识别一个或更多个特定内容项目。
在一个或更多个实施例中,用于识别内容项目的MLM(例如,第二MLM)可以包括双神经网络。双神经网络可被训练成使用内容项目的正例和/或负例来编码特定内容项目的表示。为了识别内容项目,对应于检测对象(例如,视频的区域)的图像数据可被应用于双神经网络以生成检测对象的编码。可以将检测对象的编码与由双神经网络针对一个或更多个其他内容项目产生的编码进行比较,以确定在图像数据中表示哪个内容项目(如果有的话)。例如,该比较可用于确定编码之间的相似度并基于该相似度选择内容项目。在一个或更多个实施例中,可以基于超过阈值的相似度和/或基于潜在内容项目中的最高内容项目来选择内容项目。应注意,任何数量的帧可用于识别一个或更多个内容项目。进一步,所公开的方法可适用于识别视频中的内容项目的不同实例,而不管可变的视角(前、后等)、大小、光照和/或遮挡(例如,图像可被选择用于训练数据集以包括这些变化)。
在进一步的方面,一旦已经确定内容项目存在于视频中,就可以使用该内容项目的元数据来显示与该内容项目相关联的信息,诸如可选择以获取游戏中或其他内容中的该内容项目的一个或更多个图形元素。作为各个示例,元数据可包括可用于确定和/或呈现信息的各个信息。示例包括内容项目的内容标识符、内容项目的名称、与内容项目相关联的一个或更多个帧标识符(例如,其中内容项目被识别和/或在其中呈现信息)、到包括信息或使得用户能够将内容项目添加到(例如,游戏或服务的)用户账户的网页或服务的链接(例如,URL或URI)、和/或信息的一个或更多个部分(例如,基于文本和/或图像的内容)。例如,元数据可以用于在视频的一个或更多个观看者的用户界面中呈现链接(例如,经由图形元素)或其他信息,或者可以经由电子邮件、文本或某种其他手段来提供信息。
在提供至服务的链接的情况下,该服务可以被托管在与用于为内容项目分析视频的(一个或更多个)设备不同的服务器和/或系统上,或可以被托管在相同的服务器和/或系统上。对应于链接的选项的选择可以直接或间接地(例如,经由进一步的选项或提示)将用户设备重定向到服务。在至少一个实施例中,选择该选项导致呈现第二用户界面(例如,在用户设备上的浏览器中),该第二用户界面呈现(例如,从服务)与内容项目相关联的信息和可选择以获取游戏中的内容项目的一个或更多个图形元素。
在某些示例中,一个或更多个内容项目的元数据可以(例如,由服务器)提供给用户设备。例如,一个或更多个内容项目的元数据的一个或更多个部分可以响应于或基于在视频的一个或更多个帧中识别一个或更多个内容项目而发送至用户设备。发送元数据可使用户设备呈现信息和/或指示内容项目已被识别。作为进一步的示例,可在视频的一个或更多个帧中识别一个或更多个内容项目之前,将一个或更多个内容项目的元数据的一个或更多个部分发送给用户设备。例如,元数据可在观看视频之前或期间(例如,基于确定正在被观看的游戏或其他媒体和可能出现在其中的可能内容)提供给用户设备。在各个示例中,服务器或其他设备可以检测和/或识别视频中的一个或更多个内容项目和/或用户设备(例如,用户界面)可以(使用一个或更多个MLM)检测和/或识别视频中的内容项目并向用户设备提供对应的元数据。在用户设备处发生识别的实施例中,元数据可以从服务器提供并且用于确定(例如,请求或访问)或呈现每个被识别的内容项目的信息。
可以在视频用于识别内容项目期间和/或之后呈现与内容项目相关联的信息。在一个或更多个实施例中,响应于或基于识别内容项目,可以(例如,在用户界面中)向观看者显示信息(例如,(一个或更多个)图形元素)。例如,来自对象检测器的用于识别内容项目的对象和/或区域检测坐标可用于确定交互式(例如,图形)元素(例如,多边形)的大小、形状和/或位置。交互式元素(选项)可以叠加在视频上并且可以呈现在用于检测对象的视频的帧上或与视频的帧相关联(例如,当视频继续播放时或者当视频被暂停时)。另外或可替代地,诸如使用对象跟踪和一个或更多个对象检测区域,一个或更多个交互式元素可以被呈现用于一个或更多个其他帧。在一个或更多个实施例中,关于内容项目的信息可以附加地或替代地呈现在视频显示区域外部(例如,在用户界面或不同的用户界面中)。
参考图1,图1是根据本公开的一些实施例的内容项目识别和呈现系统100(也称为“系统100”)的示例性系统图。应当理解,本文所述的这种和其他布置仅作为示例进行阐述。除了或代替所示的布置和元件,可使用其他布置和元件(例如,机器、接口、功能、次序、功能分组等),并且可完全省略一些元件。进一步,本文描述的许多元件是可以被实现为分立或分布式组件或与其他组件结合、以及以任何合适的组合和位置的功能实体。本文描述为由实体执行的各个功能可由硬件、固件和/或软件执行。例如,各个功能可以由处理器执行存储在存储器中的指令来实现。
系统100可以包括一个或更多个客户端设备104(A)、104(B)、和104(C)(在此统称为“客户端设备104”)、识别服务器116和/或一个或更多个视频服务器130,等等。尽管在图1中示出了客户端设备104(A)、104(B)和104(C),但是这不旨在是限制性的。在示例中,可以有任何数量的客户端设备104。系统100(及其组件和/或特征)可使用一个或更多个计算设备来实现,诸如下文更详细描述的图7的计算设备700。
客户端设备104可以包括内容项目确定器120A、应用106、通信接口110A、(一个或更多个)输入设备112和/或显示器108。虽然在图1中仅示出了客户端设备104的几个组件和/或特征,但是这不旨在是限制性的。例如,客户端设备104可以包括附加的或替代的组件,诸如以下关于图7的计算设备700描述的那些组件。
一个或更多个识别服务器116可以包括训练模块118、一个或多个MLM 122、内容项目确定器120B、呈现管理器124、通信接口110B和/或一个或更多个数据存储128等。尽管图1中仅示出了识别服务器116的几个组件和/或特征,但是这并非旨在是限制性的。例如,(一个或更多个)识别服务器116可包括附加的或替代的组件,诸如下文关于图7的计算设备700描述的那些组件。
一个或更多个视频服务器130可以包括流式传输引擎132、通信接口110C和/或一个或更多个数据存储136等。尽管图1中仅示出了视频服务器130的几个组件和/或特征,但这并非旨在进行限制。例如,一个或更多个视频服务器130可以包括附加的或替代的组件,诸如以下关于图7的计算设备700描述的那些组件。
作为概述,一个或更多个内容项目确定器(如内容项目确定器120A和/或120B)(在此被称为“一个或更多个内容项目确定器120”)可以包括用于确定视频中的一个或更多个内容项目(如内容项目150)的一个或更多个组件和特征,并且可以至少部分地位于客户端设备104和/或识别服务器116的任何组合上。应用106可以包括用于在客户端设备104的显示器108上的一个或更多个用户界面160中显示玩游戏视频或其他视频内容的一个或更多个组件和特征。玩游戏视频或其他视频内容可使用通信接口110A通过网络102从(一个或更多个)视频服务器130和/或(一个或更多个)识别服务器116接收以供在用户界面160中呈现。
训练模块118可以包括用于训练一个或更多个MLM 122以在视频中检测对象和/或识别内容项目的一个或更多个组件和特征。一旦被训练,内容项目确定器120就可以将视频数据应用于MLM 122以在视频数据中检测对象并且识别内容项目。呈现管理器124可以生成和/或确定要在客户端设备104上显示的内容,诸如注释和叠加,其可以通过网络102传送到客户端设备104的应用106。在至少一个实施例中,可以至少基于由呈现管理器124提供和/或生成的元数据(例如,与特定视频帧和/或时间戳相关联)来实现例如用户界面160中的内容显示。
流式传输引擎132可以包括用于生成、分发和管理流式数据(如视频流、音频流和/或可以由流平台使用并且在用户界面(如用户界面160)中呈现的其他类型的数据流)的一个或更多个组件和特征。流式数据可以位于一个或更多个数据存储136上,由流式传输引擎132检索,并使用通信接口110C通过一个或更多个网络102进行通信,以向识别服务器116和/或客户端设备104发送流式数据。作为进一步的示例,流式传输引擎可从一个或更多个外部设备(例如,客户端设备104)接收流式数据,并且将该流中继至一个或更多个其他外部设备(例如,一个或更多个其他客户端设备104或识别服务器116)。
系统100的组件可以通过网络102进行通信。网络102可包括广域网(WAN)(例如,互联网、公共交换电话网(PSTN)等)、局域网(LAN)(例如,Wi-Fi、ZigBee、Z-Wave、蓝牙、蓝牙低能量(BLE)、以太网等)、低功率广域网(LPWAN)(例如,LoRaWAN、Sigfox等)、全球导航卫星系统(GNSS)网络(例如,全球定位系统(GPS))和/或另一网络类型。在任何示例中,系统100的每个组件可以经由一个或更多个网络102与其他组件中的一个或更多个通信。
客户端设备104可以包括智能电话、膝上型计算机、平板计算机、台式计算机、可穿戴设备、游戏控制台、虚拟现实系统(例如,头戴式耳机、计算机、游戏控制台、(一个或更多个)遥控器、(一个或更多个)控制器、和/或其他组件)、NVIDIA SHIELD、可以包括智能个人助理的智能家庭设备(例如,AMAZON ECHO、GOOGLE HOME等)、和/或能够支持视频流传输的另一种类型的设备。
应用106可以是移动应用、计算机应用、控制台应用、web(网络)浏览器应用、视频流平台应用和/或另一类型的应用或服务。在一些实施例中,可以使用多个应用106。例如,图1的用户界面可以显示在一个应用中,并且图2的GUI 200可以显示在另一个应用106中。应用106可包括指令,当指令由(一个或更多个)处理器执行时,使处理器不受限制地接收表示至一个或更多个输入设备112的用户输入的输入数据,将输入数据发送至(一个或更多个)视频服务器130和/或(一个或更多个)识别服务器116,响应于使用通信接口110A从(一个或更多个)视频服务器130和/或(一个或更多个)识别服务器116接收视频流,并且引起在显示器108上显示视频。换言之,应用106可以作为促进器工作,该促进器用于使与客户端设备104上的应用相关联的玩游戏或其他内容的视频156能够流传输。在一些示例中,应用106可使用通信接口110A从识别服务器116接收元数据(例如,内容项目数据),并且可致使在显示器108上显示使用元数据得出的和/或由元数据指向的内容项目信息152。在一些示例中,元数据包括视频156的一个或更多个帧和内容项目信息152的指示,和/或与视频156的一个或更多个帧相关联的(一个或更多个)图形反馈元素154。应用106可以根据元数据来确定如何显示内容、何时显示内容和/或在何处显示内容。
在一些示例中,客户端设备104可以使用应用106来在显示器108上显示玩游戏视频或其他视频内容。在一些示例中,第一客户端设备(例如客户端设备104(A))可显示视频,而第二客户端设备(例如客户端设备104(B))可呈现与视频中识别出的内容项目相关联的信息。在显示数据由客户端设备104接收的示例中,系统100可以是游戏流式传输系统的一部分,诸如下文更详细描述的图8的游戏流式传输系统8。
客户端设备104(A)可以经由显示器108显示视频流114。视频流114可以包括向客户端设备104(A)的用户呈现的任何数量的玩游戏视频流。类似地,除了客户端设备104(A)之外,客户端设备104的每一个的用户也可以观看任意数量的视频流114的流。如本文所描述的,视频流114可以是实况或实时广播流。在一些示例中,视频流114可以是视频的先前录制或重新广播。
视频流114可以与一个或更多个界面(如用户界面160)相关地呈现。用户界面160还可包含允许用户控制视频156的回放或呈现的元件。例如,用户界面160可允许用户选择性地暂停或恢复直播。在一些实施例中,除了视频156之外,(一个或更多个)用户界面160还可以包含信息和交互式元素。例如,(一个或更多个)用户界面160可以包含视频156和利用用户账户信息的内容。在一些示例中,(一个或更多个)用户界面160可以包含视频156和交互式元素,诸如聊天或消息收发界面。
视频流114可以包括游戏的玩游戏(例如,正在广播的玩游戏)的视频156或其他内容。视频156可以附加地包括(例如,诸如玩家角色、车辆、游戏项目、玩家皮肤、环境元素等的游戏的)对象。视频156中的对象包括一个或更多个内容项目,诸如,内容项目150A和内容项目150B(在本文中称为“内容项目150”)。虽然在图1中示出了内容项目150,但是这不旨在是限制性的。在任何示例中,可以存在任何数量的内容项目150。内容项目150可对应于可出现在视频156中并可在游戏中或其他内容中获取的多个虚拟或实际生活项目(例如,玩家皮肤、物品、设备、武器、装备、车辆等)中的任一者。
在一些示例中,视频流114可以包括内容信息,如内容项目信息152A和152B(在此称为“内容项目信息152”),如提供关于内容项目150的一个或更多个的信息的图形元素。内容项目信息152可被可视地表示为例如对象的边界区域。虽然在图1中示出了一个或更多个边界区域,但是这并非旨在是限制性的。在一些示例中,可以存在与内容项目150相关的多个内容项目信息152中的任何一个,其可以采取各种不同形式中的任一种。示例包括叠加、注释、箭头、颜色变化、高亮的外观、文本和/或与内容项目150有关的任何其他指示或信息。
在至少一个实施例中,内容项目信息152可以依赖于对象跟踪以基于相关联的内容项目150的移动在多个帧上跟踪显示器108上的一个或更多个对象。在一些示例中,关于内容项目150的内容项目信息152可被呈现在呈现视频156的同一用户界面160中。关于内容项目150的内容项目信息152可以在与其中内容项目150被识别的视频156相同的帧中、之上或与其一起呈现。在其他示例中,内容项目信息152可被呈现在显示器108或不同显示器上的一个或更多个其他用户界面中,或者可在其中内容项目150被识别的帧之后呈现(例如,在视频156的末尾)。在一些示例中,内容项目信息152可被呈现在与显示视频流114不同的客户端设备104上。
在另外的示例中,视频流114可以包括一个或更多个图形反馈元素,如允许用户与内容项目150交互或提供关于内容项目150的输入或反馈的图形反馈元素154A和/或154B(在此被称为“图形反馈元素154”)。图形反馈元素154可在用户界面160中被表示为选项或其他可选择的界面元素,用户可以使用客户端设备104的输入设备112(例如,拇指向上/向下按钮、喜欢/不喜欢选择、保存选项等)来与该选项或其他可选择的界面元素交互。在一些示例中,(一个或更多个)图形反馈元素154可被呈现在与视频156的其中已经识别出(一个或更多个)内容项目150的区域对应的位置处。用户输入和/或与(一个或更多个)图形反馈元素154的交互,可以使关于内容项目150的内容项目信息152被呈现在一个或更多个用户界面160中。
提供给(一个或更多个)图形反馈元素154的用户输入可以例如用于确定相关内容项目信息152被呈现给内容项目150中的哪些内容项目。例如,如果用户选择“拇指向上”选项作为视频流114中图形反馈元素154A的一部分,则可以在用户界面160中提供关于内容项目150A的内容项目信息152A,而如果选择“拇指向下”选项,则可以不呈现内容项目信息152A,可以在其位置处呈现备选信息,或者可以从用户界面160中移除内容项目信息152A。作为进一步的示例,图形反馈元素可以类似地影响获取链接158A或158B的呈现,如本文更详细描述的。在一些实施例中,从图形反馈元素154接收的反馈可被提供给呈现管理器124以细化在后续视频流中生成和呈现的图形反馈元素154和/或内容项目信息152。
视频流114可以包括提供一个或更多个获取链接的附加图形元素,如获取链接158A和158B(在此称为“获取链接158”),这些附加图形元素可由用户选择以获取内容项目150中的一个或更多个对应的内容项目。在至少一个实施例中,获取链接158可由用户选择以访问一个或更多个用户界面160。例如,用户可以选择用户界面160中的获取链接158B来获取被识别为视频流114中的内容项目150B的“三叶草的帽子”,并且可以在用户界面160或不同的用户界面中用图2的GUI 200呈现。获取链接158可表示为例如可选择的按钮、链接或任何其他可选择的元素。尽管(一个或更多个)获取链接158在图1中被示为按钮,但这并不旨在是限制性的。在一些示例中,可以存在与内容项目150的一个或更多个有关的多个获取链接158中的任何一个。在一些示例中,选择获取链接158的用户可立即获取内容项目150。这可包括将该项目添加到用户的游戏内账户。在其他示例中,选择获取链接158的用户可以提供关于如何获取(一个或更多个)内容项目150的信息(例如,提供链接或重定向到商店的物品页面、将物品添加到用户的购物车、或提供关于获取物品的步骤、物品的可用性或(一个或更多个)内容项目150的位置的信息等)。在另外的示例中,内容项目获取链接158可以呈现在与显示视频流114的内容设备104和/或用户界面160不同的内容设备104和/或用户界面160上(例如,在电子邮件、文本消息、通知、弹出窗口等中)。在至少一个实施例中,内容项目信息152A或152B中的一个或更多个可以包括类似于获取链接158A或158B的获取链接。在这样的示例中,可以使用交互式元素来呈现内容项目信息152。
显示器108可以包括能够显示视频的任何类型的显示器(例如,发光二极管显示器(LED)、有机LED显示器(OLED)、液晶显示器(LCD)、有源矩阵OLED显示器(AMOLED)、量子点显示器(QDD)、等离子体显示器、LED/LCD显示器和/或另一类型的显示器)。在一些示例中,显示器108可以包括多于一个的显示器(例如,用于计算机游戏的双监视器显示器、用于配置游戏的第一显示器和用于玩游戏的虚拟现实显示器等)。在一些示例中,显示器是触摸屏显示器,诸如智能电话、平板计算机、膝上型计算机等的触摸屏,其中触摸屏是客户端设备104的输入设备112中的至少一个。
(一个或更多个)输入设备112可以包括能够向游戏提供用户输入的任何类型的设备。输入设备可以包括键盘、鼠标、触摸屏显示器、一个或更多个控制器、一个或更多个遥控器、耳机(例如,虚拟现实耳机的传感器)和/或其他类型的输入设备。
通信接口(如通信接口110A、通信接口110B、和通信接口110C)(在此共同地或单独地称为“通信接口110”)可以包括用于在一个或更多个网络(如网络102)上进行通信的一个或更多个组件和特征。通信接口110可以被配置为经由本文描述的任何数量的网络102通信。例如,为了在图1的系统100中进行通信,客户端设备104可以通过路由器使用以太网或Wi-Fi连接来访问互联网,以便与一个或更多个识别服务器116、一个或更多个视频服务器130和/或与其他客户端设备104进行通信。
识别服务器116可以包括用于生成、训练、管理、存储和/或使用用于检测和识别视频(如视频156)中的内容项目的组件的一个或更多个服务器。尽管图1中仅示出了识别服务器116的几个组件和/或特征,但是这并非旨在是限制性的。例如,(一个或更多个)识别服务器116可包括附加的或替代的组件,诸如下文关于图7的计算设备700描述的那些组件。
如图1中进一步示出的,识别服务器116可以与视频服务器130和/或客户端设备104分开或不同;然而,这不旨在是限制性的。例如,识别服务器116可以是与视频服务器130相同或相似的服务器,和/或其一个或更多个组件可以至少部分地在客户端设备104上。在一些示例中,识别服务器116可由第一实体(例如,第一公司)操作或托管,并且视频服务器130可由第二实体(例如,不同的第二公司)操作或托管。在这样的示例中,第二实体可以是视频流服务,并且第一实体可以从接收自第二实体的数据(例如,视频数据)开发训练数据集。在其他示例中,识别服务器116和视频服务器130可至少部分地由相同实体操作或托管。
识别服务器116可以包括通信接口110B,该通信接口可以包括用于在一个或更多个网络(如网络102)上进行通信的一个或更多个组件和特征。通信接口110B可被配置为经由本文描述的任何数量的网络102通信。例如,为了在图1的系统100中进行通信,识别服务器116可通过路由器使用以太网或Wi-Fi连接来访问互联网,以便与客户端设备104、视频服务器130和/或其他识别服务器116进行通信。
识别服务器116可以包括一个或更多个应用编程接口(API)以实现信息(例如,视频数据、游戏信息、用户账户信息等)与视频服务器130的通信。例如,(一个或更多个)识别服务器116可以包括与(一个或更多个)视频服务器130的流式传输引擎132对接的一个或更多个游戏API,以接收用于使用训练模块118来训练(一个或更多个)MLM 122和/或使用内容项目确定器120B来检测视频中的(一个或更多个)内容项目的视频数据。作为进一步的示例,(一个或更多个)识别服务器116可以包括与客户端设备104的应用106(和/或内容项确定器120A)对接的一个或更多个API,用于传送与内容项目有关的信息(例如,响应于在玩游戏视频中检测到内容项目)以使得客户端设备104的应用106能够提供与显示器108中的内容项目相关联的信息。虽然本文描述了不同的API,但是API可以是单个API的一部分,两个或更多个API可以组合,可以包括除了如本文作为示例描述的那些之外的不同API或其组合。
识别服务器116可以包括用于学习可以在玩游戏视频内被检测的对象的训练模块118。尽管图1包括神经网络的图示,但这并不旨在是限制性的。例如,训练模块118可以用于训练任何类型的(一个或更多个)机器学习模型122,诸如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、k最近邻(Knn)、K均值聚类、随机森林、维度减少算法、梯度提升算法、神经网络(例如,自动编码器、卷积、递归、感知、长/短期记忆、霍普菲尔德、玻尔兹曼、深度信念、解卷积、生成对抗、液态机器等)、双神经网络的机器学习模型和/或其他类型的机器学习模型。
视频数据可以由训练模块118应用于MLM 122,其中,MLM 122学习检测视频数据中呈现的视频和/或内容项目中的一个或更多个对象。在一些示例中,视频数据可以应用于要使用强化学习或逆强化学习来训练的一个或更多个MLM 122(例如,神经网络)。例如,为了学习检测或识别视频中的对象,逆强化学习可以用于通过许多视频流来观察对象和内容项目,并且学习从任何数量的角度、尺度和/或遮挡(例如,被阻挡的可见性、低分辨率等)检测对象。视频数据可存储在数据存储128中。此外,由训练模块118使用和产生以训练MLM 122的数据可以被存储在数据存储128中。
视频数据可以包括玩游戏视频数据、游戏数据、用户账户数据、图像数据、音频数据和/或表示或捕获游戏或其他内容的一个或更多个部分的其他数据。例如,视频数据可以包括玩游戏的视频帧和与该玩游戏相关联的音频数据。在一些示例中,视频数据可包含例如用户账户信息(例如,正观看流式视频的用户的账户)和/或游戏信息(例如,指示游戏名称、游戏版本等的信息)等的信息。视频数据可以捕获视频流114的环境、对象、值和/或其他信息。视频数据可以与MLM 122被训练来检测的内容项目的相关联的注释或加标签的图像一起存储。
MLM 122可以由训练模块118训练以检测视频数据中所呈现的视频和/或内容项目中的一个或更多个对象。MLM 122可以被训练为检测在某些情境中的对象(例如,被训练为检测在单个游戏标题内的对象)或者可以被训练为在多个视频情境(例如,多个游戏标题、版本、扩展、DLC、流派、游戏系统等)中的任意情境上检测对象。例如,MLM 122可以由训练模块118训练并且由内容项目确定器120B用于检测多个游戏的玩游戏视频中或者玩游戏的特定风格或类型(例如,第一人称射击者、策略、运动、拼图等)中的对象。训练MLM 122来检测一情境的对象可包含使用来自情境的图像数据作为训练数据。
可以训练一个或更多个MLM 122来确定在玩游戏视频中检测到的对象是特定内容项目150。内容项目150可以是可以出现在玩游戏视频内的多个虚拟或真实生活的项目中的任何一个(例如,玩家皮肤、物品、运动装备、衣服、武器、装备、车辆等)。可以利用内容项目150的注释或标记的训练图像或者利用包括内容项目150或类似对象的游戏的玩游戏视频来训练MLM 122。在一些示例中,MLM 122可以由训练模块118训练以识别内容项目150的可能具有可变视觉属性(例如,可变视角、大小、照明、遮挡等)的不同实例。这可以包括选择和提供描述这些变量的变化的训练图像给MLM 122。
一个或更多个MLM 122可以是任何合适的类型,诸如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、k最近邻(Knn)、K均值聚类、随机森林、维度减少算法、梯度提升算法、神经网络(例如,自动编码器、卷积、递归、感知、长/短期记忆、霍普菲尔德、玻尔兹曼、深度信念、解卷积、生成式对抗、液态机器等)、双神经网络的机器学习模型和/或其他类型的机器学习模型。
在至少一个实施例中,一个或更多个MLM 122可以包括双神经网络,该双神经网络可以被训练以使用内容项目150的正例和/或负例来编码内容项目150的表示。一旦部署,诸如内容项目确定器120A和/或120B之类的一个或更多个内容项目确定器120可以使用一个或更多个MLM 122来确定视频中的一个或更多个内容项目150。如图所示,内容项目确定器120可至少部分地位于客户端设备104和/或识别服务器116的任何组合上,这可针对不同实施例而变化。例如,一些实施例可包括内容项目确定器120A而不包括内容项目确定器120B,反之亦然。
内容项目确定器120可使用一个或更多个MLM 122来编码在视频数据中检测到(例如,由MLM 122检测到)的对象。内容项目确定器120可使用对象的编码来识别内容项目150。例如,可以将检测到的对象的编码与MLM 122的双神经网络产生的其他编码进行比较,以确定视频数据中是否表示内容项目150。在一些示例中,内容项目确定器120可比较编码以确定编码之间的相似度或匹配,以便选择一个或更多个内容项目150。例如,内容项目确定器120可基于满足或超过阈值的编码之间的相似度和/或基于对匹配中的置信度进行评分或排名的许多方法中的任何方法来选择内容项目150。
内容项目确定器120可以使用通信接口100A和/或110B来访问正通过网络102分析和/或来自本地或远程存储(如数据存储128)的视频数据。内容项目确定器120可作为促进器工作,以检索视频数据并将其应用于适当的MLM 122、MLM 122的后处理输出以及传送至少在后处理时生成或确定的元数据(例如,将元数据传送至呈现管理器124和/或应用106)。在一些示例中,内容项目确定器120可将视频数据应用于MLM 122并基于来自MLM 122的输出来确定或识别视频数据中的特定内容项目150。呈现管理器124可随后生成与所确定的内容项目150有关的叠加和/或信息以用于呈现给与对应视频流114相关联的一个或更多个用户和/或观看者。
呈现管理器124可以生成和/或确定要在客户端设备104上显示的内容。例如,呈现管理器124可以生成和/或确定可以被传送到客户端设备104的应用106的注释和叠加。呈现管理器124可例如位于识别服务器116中的一个或更多个上。在一些示例中,(一个或更多个)呈现管理器124可以被包括在应用106中或者以其他方式被托管在(一个或更多个)客户端设备104上。虽然在识别服务器116上示出了呈现管理器124,但是在一个或更多个实施例中,呈现管理器124可以至少部分地位于一个或更多个客户端设备104和/或视频服务器130上。组件的其他位置可以类似地改变,诸如内容项目确定器120、(一个或更多个)数据存储128、(一个或更多个)MLM 122和/或训练模块118等。另外,在一些实施例中,(一个或更多个)识别服务器116可以包括(一个或更多个)视频服务器130中的一个或更多个。
现在参见图2,图2是根据本公开的一些实施例的来自用于获取内容项目的图形用户界面(GUI)200的示例屏幕截图。如图2所示的GUI 200可以是较大GUI的一部分。例如,所示的GUI 200可以是呈现在封闭GUI内的GUI区域或窗口。在一些实施例中,GUI 200可以是客户端设备104的应用106的一部分或者与客户端设备104的应用106一起呈现。作为进一步的示例,GUI 200可以是除了应用106之外的应用的一部分或与其一起呈现。进一步,GUI200可被呈现在与显示视频流114(例如,在应用106中)的客户端设备104不同的客户端设备104上。
GUI 200可以向用户呈现可以与内容项目相关联的内容项目信息204。例如,GUI200可以利用内容项目信息204提示用户,诸如,获取内容项目“三叶草的帽子”的选项。内容项目信息204可以包括与内容项目相关联的任何信息。例如,内容项目信息204可以包括名称、属性、罕见性、可用性、特征、能力、描述或与内容项目或类似项目有关的任何其他信息。
在至少一个实施例中,GUI 200可以与视频流114同时呈现。在一些示例中,可以在视频流114已经完成之后呈现GUI 200。例如,可以在视频流广播结束时或在任何持续时间之后在客户端设备104的显示器108上呈现GUI 200。
在至少一个实施例中,至少基于用户与应用106、内容项目信息152和/或图形反馈元素154的交互来呈现GUI 200。例如,如果用户交互选项,例如与和视频流114中识别的内容项目150B相关联的图形反馈元素154B和/或获取链接158B,则可以呈现GUI 200。在这样的示例中,图形反馈元素154B或获取链接158B可以包括(例如,经由(一个或更多个)图形元素)呈现的链接或视频的观看者的图1的用户界面中的其他信息。该链接可以到提供GUI200和/或管理其后端的服务。服务可被托管在与用于针对内容项目分析视频156的(一个或更多个)设备(例如,客户端设备104和/或识别服务器116)不同的服务器和/或系统上,或者可被托管在相同的服务器和/或系统上(例如,在识别服务器116上)。对应于链接的选项的选择可以直接或间接地(例如,经由进一步的选项或提示)将用户设备重定向到服务和/或GUI 200。在其他示例中,选择选项可以与第三方或外部服务进行接口,而不必需要呈现第二用户界面,诸如GUI 200。例如,选项可用于通过服务直接从图1的用户界面获取内容项目150。GUI 200可包含呈现内容项目描绘202的区域,其可包括表示内容项目的图形元素。例如,内容项目描绘202可包括与内容项目相关联的图像、视频和/或音频。呈现管理器124可以从视频156或其他地方捕获关于内容项目呈现的图像和/或其他信息,并且可以使用内容项目的内容标识符引用和/或访问该图像和/或其他信息。在一个或更多个实施例中,可以使用内容标识符在本地存储或从数据存储中检索内容项目描绘。例如,每个内容项目可与从一个或更多个数据存储128(例如,从识别服务器116或由识别服务器116)检索的资产相关联。在一些情况下,内容项目描绘202可包括视频或一系列图像帧。例如,GUI 200可以呈现玩游戏视频的包含内容项目的一部分(例如,其中内容项目使用MLM 122检测到),或者可以呈现来自包括内容项目的不同游戏会话的视频。
在一些实施例中,GUI 200可以包括(一个或更多个)图形元素206,其是可选择的以获取内容项目。图形元素206可以是可选择以允许用户获取特定游戏中呈现的内容项目。例如,图形元素206可由用户选择以确认他们想要获取诸如“三叶草的帽子”的内容项目。
现在参见图3,图3是示出了用于使用机器学习模型来确定视频中的内容项目的过程的框图300。应当理解,本文所述的这种和其他布置仅作为示例进行阐述。除了或代替所示的布置和元件,可使用其他布置和元件(例如,机器、接口、功能、次序、功能分组等),并且可完全省略一些元件。进一步,本文描述的许多元件是可以被实现为分立或分布式组件或与其他组件结合,并且以任何合适的组合和位置的功能实体。本文描述为由实体执行的各个功能可由硬件、固件和/或软件执行。例如,各个功能可以通过处理器执行存储在存储器中的指令来实现。
可以将表示视频156的一个或更多个帧的图像数据302应用于MLM122的对象检测器304,该对象检测器可以检测图像数据302内的一个或更多个对象。对象检测器304可经训练以检测若干不同对象中的任一者。作为示例而非限制,对象可包括游戏块、衣服、对象、皮肤、车辆、建筑物、塔、墙壁、玩家、农作物、动物等。可采用多个对象检测器304和/或码簿来检测不同内容项目和/或内容项目的类型。在一些示例中,内容项目确定器120可从被训练为检测不同类型的对象的多个对象检测器中选择和/或确定(一个或更多个)对象检测器304。例如,可以至少基于在视频156中描绘的游戏的游戏标识符、视频156的内容、视频流114的观看者的用户简档和/或视频156的直播者、与视频156和/或视频流114相关联的元数据等来选择所使用的(一个或更多个)对象检测器304。
在一些示例中,可以训练对象检测器304以确定每个所检测对象的边界形状或区域(例如,边界框),其可以包括边界框坐标。边界形状可以在输出检测器304的输出306中被捕获。在实施例中,边界形状或区域可以对应于图1的内容项目信息152。例如,边界形状可以定义内容项目信息152的图形元素的位置、大小和/或形状。
内容项目确定器120可以使用(一个或更多个)输出306来确定一个或更多个内容项目150存在于对应于图像数据302的视频156内。输出306可包括例如对象检测器304的未处理输出。在对象检测器304基于神经网络(例如,CNN)的情况下,输出可包括指示一个或更多个检测对象和/或其位置(例如,边界形状位置)的张量数据。在一些示例中,可训练对象检测器304来检测特定内容项目。在这样的示例中,内容项目可对应于对象检测器304的输出类别。内容项目确定器120可基于由输出306表示的和关于内容项目的置信度分数来确定由对象检测器304识别的一个或更多个内容项目。例如,在内容项目确定器120确定置信度分数超过阈值的情况下,内容项目确定器120可识别视频156中的该内容项目。作为进一步的示例,对象检测器304可被训练来检测内容项目或对象的类别或类型。例如,输出306可表示关于内容项目或对象的类别或类型的置信度分数。在这样的示例中,内容项目确定器120进一步使用双神经网络314来确定视频156内存在一个或更多个内容项目150。
在采用双神经网络314时,内容项目确定器310可以接收可以用于与双神经网络314的输出316进行比较的参考输出308。(一个或更多个)参考输出308可以例如包括表示系统100要识别的特定内容项目的数据。例如,参考输出308可包括表示或被已知为对应于特定内容项目的双神经网络314的输出。不同的参考输出308可对应于不同的内容项目。作为示例,在部署之前,可通过将内容项目的已知图像应用于双神经网络314来生成参考输出308。从特定内容项目的一个或更多个示例生成的输出可用于生成该内容项目的参考输出308。作为示例,来自不同示例的输出可以被聚集或以其他方式组合成一个或更多个特征向量,所述特征向量表示来自不同大小、角度、在不同光照条件下或其他情境的内容项目。用于内容项目的参考输出308可以与该内容项目的内容标识符相关联。例如,内容标识符可由参考输出308索引,以当检测对象与参考输出308匹配时查找内容标识符。
在至少一个实施例中,为了将检测对象与参考输出308进行匹配,内容项目确定器120可以将包括检测对象的至少一部分的对象数据312作为输入提供给双神经网络314。对象数据312可包含图像数据302中检测对象的图像或表示。例如,内容项目确定器120可从图像数据302的一个或更多个帧中裁剪检测对象,并且对象数据312可包括裁剪的数据。在不同示例中,可以至少基于使用对象检测器304确定的边界形状来裁剪帧。在所示示例中,在图像数据302中作为对象被检测的“三叶草的帽子”对象可以被裁剪并且在对象数据312中被传输。
使用对象数据312,双神经网络314可以将对象数据312编码为基于例如(一个或更多个)内容项目150的正例和/或负例的表示。对象数据312的编码可被包括在输出316中,并且内容项目确定器120可将编码与参考输出308进行比较以确定编码之间的相似度或以其他方式将输出316与一个或更多个参考输出308匹配。表示诸如相似度分数或置信度分数的等级相似度的数据可由内容项目确定器120计算并且用于选择一个或更多个对应的内容项目150。例如,内容项目确定器120可至少基于与对象相关联的输出316和与内容项目相关联的参考输出308之间的相似度分数来确定检测对象是特定内容项目。在至少一个实施例中,确定可至少基于超过阈值的相似度分数和/或基于所检测对象和其他内容项目的相似度分数的排名(例如,基于在针对不同内容项目的多个相似度分数之中最高的相似度分数)。在至少一个实施例中,匹配的内容项目的内容标识符和/或其元数据(诸如图像数据302内的位置或坐标)可被提供给呈现管理器124和/或客户端设备104的应用106以用于呈现相关联的信息,如本文所描述的。
现在参见图4,在此描述的方法400的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,不同功能可以通过处理器执行存储在存储器中的指令来实现。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。仅举几例,该方法可以由独立应用、服务或托管服务(独立或与其他托管服务组合)或到另一产品的插件来提供。此外,通过示例的方式,针对图1的内容项目识别系统来描述方法400。然而,此方法可附加地或替代地由任何一个系统或系统的任何组合来执行,所述系统包含但不限于本文中所描述的那些系统。
图4是示出了根据本公开的一些实施例的用于确定内容项目的方法400的流程图。在框B402处,方法400包括接收表示游戏的玩游戏视频的图像数据。例如,识别服务器116可接收表示与客户端设备104的应用106相关联的视频156的图像数据302。
在框B404处,方法400包括将图像数据应用于被训练成检测(一个或更多个)对象并且识别图像数据中的(一个或更多个)内容项目的(一个或更多个)机器学习模型。例如,(一个或更多个)机器学习模型122可以由训练模块118训练以检测视频数据中的对象并基于检测识别内容项目。
在框B406处,方法400包括确定玩游戏视频内呈现的内容项目。例如,至少基于使用MLM 122检测视频156内对应于内容项目150B的对象,内容项目确定器120可确定视频156内呈现的内容项目150B。在方框B408,方法400包括使用内容项目的元数据使选项显示,选项是可选择的以呈现第二用户界面,第二用户界面呈现与内容项目相关联的信息以及可选择以获取游戏中的内容项目的一个或更多个图形元素。例如,(一个或更多个)识别服务器116的呈现管理器124可以使用内容项目150B的元数据来发送使与内容项目信息152B相对应的选项显示的数据。该选项可以是可选择的,以引起呈现GUI 200,GUI 200呈现与内容项目150B相关联的信息和图形元素206,图形元素206可以是可选择以获取游戏中的内容项目150B。
现在参见图5,在此描述的方法500的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,不同功能可以通过处理器执行存储在存储器中的指令来实现。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。仅举几例,该方法可以由独立应用、服务或托管服务(独立或与其他托管服务组合)或到另一产品的插件来提供。此外,通过示例的方式,针对图1的内容项目识别系统来描述方法500。然而,此方法可附加地或替代地由任何一个系统或系统的任何组合来执行,所述系统包含但不限于本文中所描述的那些系统。
图5是示出了根据本公开的一些实施例的用于呈现与内容项目相关联的信息的方法500的流程图。在框B502,方法500包括在第一用户界面中呈现游戏的玩游戏视频。例如,客户端设备104的应用106可以接收对应于视频流114的玩游戏视频数据并呈现视频156,如图1所示。
在框B504处,方法500包括接收使用一个或更多个机器学习模型在玩游戏视频中检测到的内容项目的元数据。例如,客户端设备104的应用106可以从识别服务器116的呈现管理器124接收与使用MLM 122检测到的内容项目150有关的元数据。具体地,内容项目确定器120可以将对应于视频流114的玩游戏视频数据应用于MLM 122以检测内容项目150中的一个或更多个。
在框B506处,方法500包括使选项显示,该选项是可选择以引起呈现第二界面,第二界面呈现与内容项目相关联的信息和可选择的以获取内容项目的图形元素。例如,客户端设备104的应用106可以显示与视频流114相关联的内容项目信息152、图形反馈元素154和/或获取链接158。这些中的任何可以包括可选择以获取相应的内容项目150的图形元素。例如,响应于或基于选项的选择,GUI 200可被呈现在第二用户界面中。
现在参见图6,本文所描述的方法600的每个框包括可使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,不同功能可以通过处理器执行存储在存储器中的指令来实现。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。仅举几例,该方法可以由独立应用、服务或托管服务(独立或与其他托管服务组合)或到另一产品的插件来提供。此外,通过示例的方式,针对图1的内容项目识别系统来描述方法600。然而,此方法可附加地或替代地由任何一个系统或系统的任何组合来执行,所述系统包含但不限于本文中所描述的那些系统。
图6是示出了根据本公开的一些实施例的用于使用双神经网络识别内容项目的方法600的流程图。在方框B602处,方法600包括接收表示视频的图像数据。例如,识别服务器116(或在一些实施例中客户端设备104)可以接收表示正在客户端设备104的应用106中呈现的游戏的视频156的图像数据302。内容项目确定器120可从本地和/或远程数据存储128检索图像数据302,或者可从视频服务器130的流式传输引擎132接收图像数据302(在采用内容项目确定器120B的情况下,流式传输引擎132可将视频流114提供给客户端设备104并且将视频156的另一视频流提供给识别服务器116)。
在框B604处,方法600包括将图像数据应用于(一个或更多个)机器学习模型以检测(一个或更多个)对象。例如,内容项目确定器120可以将视频156的图像数据应用于MLM122的对象检测器304以检测图像数据中的一个或更多个对象。在一些示例中,MLM已经由训练模块118训练。对象检测器304可检测图像数据302中的对应于检测对象的至少一个区域。使用对象检测器304检测的区域可以对应于图3的对象数据312。
在框B606处,方法600包括将一个或更多个区域应用于双神经网络。例如,内容项目确定器120可以将对应于对象数据312并且由对象检测器304检测的区域应用于MLM 122的双神经网络314。双神经网络314可能已经被训练以使用内容项目150的正例和/或负例来编码内容项目150的表示。
在框B608处,方法600包括识别视频中的内容项目。例如,MLM 122的双神经网络314可以生成包括对应于该区域的对象数据312的编码的输出316。内容项目确定器可将编码与通过参考输出308捕捉的一个或更多个编码进行比较以识别视频156中的内容项目150。
在框B610,方法600包括使选项显示,该选项是可选择的以呈现与该内容项目相关联的信息和可选择以获取该内容项目的图形元素。例如,客户端设备104的应用106可以显示与视频流114相关联的内容项目信息152、图形反馈元素154和/或获取链接158。例如,呈现管理器124可使与图1中所示的图形元素中的一个或更多个相对应的一个或更多个选项相对于显示器108显示。
示例计算设备
图7是适合用于实现本公开的一些实施例的示例计算设备700的框图。计算设备700可包括直接或间接耦合以下设备的互连系统702:存储器704、一个或更多个中央处理单元(CPU)706、一个或更多个图形处理单元(GPU)708、通信接口710、输入/输出(I/O)端口712、输入/输出组件714、电源716、一个或更多个呈现组件718(例如,(一个或更多个)显示器)、以及一个或更多个逻辑单元720。在至少一个实施例中,(一个或更多个)计算设备700可以包括一个或更多个虚拟机(VM),和/或其任何组件可以包括虚拟组件(例如,虚拟硬件组件)。对于非限制性示例,GPU 708中的一个或更多个可以包括一个或更多个vGPU,CPU706中的一个或更多个可以包括一个或更多个vCPU,和/或逻辑单元720中的一个或更多个可以包括一个或更多个虚拟逻辑单元。照此,(一个或更多个)计算设备700可以包括分立组件(例如,专用于计算设备700的全GPU)、虚拟组件(例如,专用于计算设备700的GPU的一部分)或其组合。
尽管图7的各个框被示出为经由互连系统702与线路连接,但这并不旨在是限制性的,并且仅仅是为了清楚起见。例如,在一些实施例中,呈现组件718(诸如显示设备)可被认为是I/O组件714(例如,如果显示器是触摸屏)。作为另一示例,CPU 706和/或GPU 708可以包括存储器(例如,除了GPU 708的存储器、CPU 706和/或其他组件之外,存储器704可以表示存储设备)。换言之,图7的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型计算机”、“桌面型计算机”、“平板计算机”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实系统”和/或其他设备或系统类型的类别之间不进行区分,因为全部都被设想在图7的计算设备的范围内。
互连系统702可以表示一个或更多个链路或总线,如地址总线、数据总线、控制总线或其组合。互连系统702可包括一种或更多种总线或链路类型,诸如工业标准体系结构(ISA)总线、扩展工业标准体系结构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、快速外围组件互连(PCIe)总线和/或另一类型的总线或链路。在一些实施例中,在部件之间存在直接连接。例如,CPU 706可直接连接至存储器704。进一步,CPU706可以直接连接到GPU708。在组件之间存在直接连接或点对点连接的情况下,互连系统702可包括PCIe链路以执行该连接。在这些示例中,计算设备700中不需要包括PCI总线。
存储器704可以包括多种计算机可读介质中的任一种。计算机可读介质可以是可由计算设备700访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质,以及可移除和不可移除介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质可包括以用于存储如计算机可读指令、数据结构、程序模块和/或其他数据类型的信息的任何方法或技术实现的易失性和非易失性介质和/或可移除和不可移除介质。例如,存储器704可存储计算机可读指令(例如,其代表程序和/或程序元件,诸如操作系统)。计算机存储介质可包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可用于存储所需信息并可由计算设备700访问的任何其他介质。如本文所使用的,计算机存储介质不包括信号本身。
计算机存储介质可以将计算机可读指令、数据结构、程序模块和/或其他数据类型具体化在被调制的数据信号(如载波或其他传输机制)中,并且包括任何信息传递介质。术语“被调制的数据信号”可以指以对信号中的信息进行编码的方式设定或改变其特征中的一个或更多个的信号。作为示例而非限制,计算机存储介质可包括有线介质(诸如有线网络或直接有线连接)以及无线介质(诸如声学、RF、红外和其他无线介质)。上述任何内容的组合也应被包括在计算机可读介质的范围内。
CPU 706可以被配置成用于执行计算机可读指令中的至少一些来控制计算设备700的一个或更多个部件来执行在此描述的方法和/或过程中的一个或更多个。CPU 706每个可包括能够同时处理多个软件线程的一个或更多个核(例如,1、2、4、8、28、72等)。CPU706可以包括任何类型的处理器,并且可以取决于所实现的计算设备700的类型包括不同类型的处理器(例如,具有用于移动设备的较少核的处理器和具有用于服务器的较多核的处理器)。例如,取决于计算设备700的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机器(ARM)处理器或使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器的补充协处理器之外,计算设备700还可以包括一个或更多个CPU 706。
除了或替代CPU 706,(一个或更多个)GPU 708可以被配置成用于执行计算机可读指令中的至少一些以控制计算设备700的一个或更多个组件来执行在此描述的方法和/或过程中的一个或更多个。GPU 708中的一个或更多个可为集成GPU(例如,具有CPU 706中的一个或更多个)和/或GPU 708中的一个或更多个可为离散GPU。在实施例中,(一个或更多个)GPU 708中的一个或更多个可以是(一个或更多个)CPU 706中的一个或更多个的协处理器。GPU 708可由计算设备700使用以渲染图形(例如,3D图形)或执行通用计算。例如,GPU708可以用于GPU上的通用计算(GPGPU)。GPU 708可以包括能够同时处理成百上千个软件线程的成百上千个核。GPU708可响应于渲染命令(例如,经由主机接口接收的来自CPU 706的渲染命令)产生用于输出图像的像素数据。GPU 708可包含图形存储器,例如显示存储器,用于存储像素数据或任何其他合适的数据,例如GPGPU数据。显示存储器可被包括作为存储器704的一部分。GPU 708可以包括并行操作(例如,经由链路)的两个或更多个GPU。该链路可以直接连接GPU(例如,使用NVLINK)或者可以通过交换机连接GPU(例如,使用NVSwitch)。当组合在一起时,每一GPU 708可针对输出的不同部分或针对不同输出(例如,用于第一图像的第一GPU和用于第二图像的第二GPU)产生像素数据或GPGPU数据。每个GPU可以包括其自身的存储器,或者可以与其他GPU共享存储器。
除了或替代CPU 706和/或GPU 708,(一个或更多个)逻辑单元720可以被配置成用于执行计算机可读指令中的至少一些来控制计算设备700的一个或更多个部件以执行在此描述的方法和/或过程中的一个或更多个。在实施例中,(一个或更多个)CPU 706、(一个或更多个)GPU 708和/或(一个或更多个)逻辑单元720可以分立地或联合地执行方法、过程和/或其部分的任何组合。逻辑单元720中的一个或更多个可以是CPU 706和/或GPU 708中的一个或更多个的一部分和/或集成在其中,和/或逻辑单元720中的一个或更多个可以是分立组件或者以其他方式在CPU 706和/或GPU 708的外部。在实施例中,逻辑单元720中的一个或更多个逻辑单元可以是(一个或更多个)CPU 706中的一个或更多个CPU和/或(一个或更多个)GPU 708中的一个或更多个GPU的协处理器。
逻辑单元720的示例包括一个或更多个处理核和/或其组件,如张量核(TC)、张量处理单元(TPU)、像素视觉核(PVC)、视觉处理单元(VPU)、图形处理集群(GPC)、纹理处理集群(TPC)、流式多处理器(SM)、树遍历单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU)、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、外围组件互连(PCI)或外围组件互连快速(PCIe)元件等。
通信接口710可以包括一个或更多个接收器、发射器和/或收发器,其使计算设备700能够经由电子通信网络(包括有线和/或无线通信)与其他计算设备进行通信。通信接口710可以包括使得能够通过多个不同网络(例如,无线网络(例如,Wi-Fi、Z-Wave、蓝牙、蓝牙LE、ZigBee等)、有线网络(例如,通过以太网或无限带宽通信)、低功率广域网(例如,LoRaWAN、SigFox等)和/或互联网)中的任何网络进行通信的组件和功能。
I/O端口712可以使得计算设备700能够逻辑耦合至包括I/O组件714、呈现组件718和/或其他组件的其他设备,这些组件中的一些组件可以内置于(例如,集成在)计算设备700中。说明性I/O组件714包括麦克风、鼠标、键盘、操纵杆、游戏手柄、游戏控制器、圆盘式卫星天线、扫描仪、打印机、无线设备等。I/O组件714可提供自然用户界面(NUI),该自然用户界面处理空中姿态、语音或由用户生成的其他生理输入。在一些实例中,输入可被传送至适当的网络元件以供进一步处理。NUI可实现语音辨识、触笔辨识、面部辨识、生物测定辨识、屏幕上和屏幕附近的姿态辨识、空中姿态、头部和眼睛跟踪、以及与计算设备700的显示器相关联的触摸辨识(如下面更详细描述的)的任何组合。计算设备700可包含深度相机,例如立体相机系统、红外相机系统、RGB相机系统、触摸屏技术和这些的组合,以用于姿态检测和辨识。另外,计算设备700可以包括使得能够检测运动的加速度计或陀螺仪(例如,作为惯性测量单元(IMU)的一部分)。在一些示例中,计算设备700可以使用加速度计或陀螺仪的输出来渲染沉浸式增强现实或虚拟现实。
电源716可以包括硬连线电源、电池电源或其组合。电源716可以向计算设备700提供电力以使得计算设备700的组件能够操作。
(一个或更多个)呈现组件718可以包括显示器(例如,监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示类型或其组合)、扬声器和/或其他呈现组件。呈现组件718可从其他组件(例如,GPU 708、CPU 706等)接收数据,且输出数据(例如,作为图像、视频、声音等)。
示例内容流式传输系统
现在参见图8,图8是根据本公开的一些实施例的用于内容流式传输系统800的示例系统图。图8包括(一个或更多个)应用服务器802(其可以包括与图7的示例计算设备700类似的组件、特征和/或功能)、(一个或更多个)客户端设备804(其可以包括与图7的示例计算设备700类似的组件、特征和/或功能)以及(一个或更多个)网络806(其可以类似于本文所描述的(一个或更多个)网络)。在本公开的一些实施例中,可以实现系统800。应用会话可以对应于游戏流式传输应用(例如,NVIDIA GeFORCE NOW)、远程桌面应用、模拟应用(例如,自主或半自主车辆模拟)、计算机辅助设计(CAD)应用、虚拟现实(VR)和/或增强现实(AR)流式传输应用、深度学习应用和/或其他应用类型。
在系统800中,对于应用会话,(一个或更多个)客户端设备804可以响应于到(一个或更多个)输入设备的输入而仅接收输入数据,将输入数据传输到(一个或更多个)应用服务器802,从(一个或更多个)应用服务器802接收经编码的显示数据,并且在显示器824上显示显示数据。因此,计算上更密集的计算和处理被卸载到(一个或更多个)应用服务器802(例如,用于应用会话的图形输出的渲染——特别是光线或路径跟踪,由(一个或更多个)游戏服务器802的(一个或更多个)GPU执行)。换言之,应用会话从(一个或更多个)应用服务器802被流式传输到(一个或更多个)客户端设备804,由此降低(一个或更多个)客户端设备804对图形处理和渲染的要求。在一个或更多个实施例中,视频156可以是应用会话的视频,它可以被流式传输到游戏的一个或更多个观看者和/或玩家。例如,玩家可以在呈现游戏流的游戏应用中接收该流,而观看者可以在呈现游戏的视频播放器应用中(例如,在web浏览器内)接收该流。在不同示例中,(一个或更多个)应用服务器802可以包括(一个或更多个)视频服务器130或者(一个或更多个)视频服务器130可以与(一个或更多个)应用服务器802分离。
例如,关于应用会话的实例化,客户端设备804可以基于从(一个或更多个)应用服务器802接收显示数据而在显示器824上显示应用会话的帧。客户端设备804可以接收到(一个或更多个)输入设备中的一个的输入并且作为响应生成输入数据。客户端设备804可经由通信接口820且经由网络806(例如,互联网)将输入数据发送到应用服务器802,且应用服务器802可经由通信接口818接收输入数据。CPU可以接收输入数据,处理输入数据,并且向GPU传输数据,该数据使GPU生成应用会话的渲染。例如,输入数据可以表示用户在游戏应用的游戏会话中的角色的移动、发射武器、重新装载、传球、使车辆转向等。渲染组件812可以渲染应用会话(例如,表示输入数据的结果),并且渲染捕获组件814可以捕获应用会话的渲染作为显示数据(例如,作为捕获应用会话的渲染帧的图像数据)。应用会话的渲染可以包括使用(一个或更多个)应用服务器802的一个或更多个并行处理单元(诸如GPU)计算的光线或路径跟踪的照明和/或阴影效果,所述一个或更多个并行处理单元可以进一步使用一个或更多个专用硬件加速器或处理核来执行光线或路径跟踪技术。在一些实施例中,一个或更多个虚拟机(VM)-例如,包括一个或更多个虚拟组件,如vGPU、vCPU等-可由应用服务器802用于支持应用会话。编码器816可接着对显示数据进行编码以产生经编码的显示数据,且经编码的显示数据可经由通信接口818通过网络806发送到客户端设备804。客户端设备804可经由通信接口820接收经编码的显示数据,且解码器822可对经编码的显示数据进行解码以产生显示数据。客户端设备804可随后经由显示器824显示显示数据。
示例数据中心
图9示出了可以在本公开的至少一个实施例中使用的示例数据中心900。数据中心900可包括数据中心基础设施层910、框架层920、软件层930和/或应用层940。
如图9所示,数据中心基础设施层910可以包括资源协调器912、分组的计算资源914和节点计算资源(“节点C.R.s”)916(1)-916(N),其中“N”表示任何整数、正整数。在至少一个实施例中,节点C.R.s 916(1)-916(N)可以包括但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括加速器、现场可编程门阵列(FPGA)、图形处理器或图形处理单元(GPU)等)、存储器设备(例如,动态只读存储器)、存储设备(例如,固态或磁盘驱动器)、网络输入/输出(“NW I/O”)设备、网络交换机、虚拟机(“VM”)、功率模块和/或冷却模块等。在一些实施例中,节点C.R.s 916(1)-916(N)中的一个或更多个节点C.R.s可对应于具有上述计算资源中的一个或更多个的服务器。此外,在一些实施例中,节点C.R.s 916(1)-9161(N)可包括一个或更多个虚拟组件,诸如vGPU、vCPU等,和/或节点C.R.s 916(1)-916(N)中的一个或更多个可对应于虚拟机(VM)。
在至少一个实施例中,分组的计算资源914可以包括容纳在一个或更多个机架(未示出)内或容纳在不同地理位置处的数据中心(也未示出)中的许多机架内的节点C.R.s916的单独分组。分组的计算资源914内的节点C.R.s 916的单独分组可包括分组的计算、网络、存储器或存储资源,其可被配置或分配以支持一个或更多个工作负载。在至少一个实施例中,包括CPU、GPU和/或其他处理器的若干节点C.R.s 916可以被分组在一个或更多个机架内以提供计算资源来支持一个或更多个工作负载。一个或更多个机架还可包括以任何组合的任何数量的功率模块、冷却模块和/或网络交换机。
资源协调器922可以配置或以其他方式控制一个或更多个节点C.R.s 916(1)-916(N)和/或分组的计算资源914。在至少一个实施例中,资源协调器922可包括用于数据中心900的软件设计基础设施(“SDI”)管理实体。资源协调器922可包括硬件、软件或其某种组合。
在至少一个实施例中,如图9所示,框架层920可以包括作业调度器932、配置管理器934、资源管理器936和/或分布式文件系统938。框架层920可以包括支持软件层930的软件944和/或应用层940的一个或更多个应用942的框架。软件944或应用942可分别包括基于网络的服务软件或应用,例如由亚马逊网络服务、谷歌云和微软Azure提供的那些。框架层920可以是但不限于可以利用分布式文件系统938进行大规模数据处理(例如,“大数据”)的一种免费开源软件web应用框架类型,诸如Apache SparkTM(以下称为“Spark”)。在至少一个实施例中,作业调度器932可以包括Spark驱动器以促进由数据中心900的各层支持的工作负载的调度。配置管理器934可以能够配置不同层,例如软件层930和包括用于支持大规模数据处理的Spark和分布式文件系统938的框架层920。资源管理器936可能够管理映射到或分配用于支持分布式文件系统938和作业调度器932的集群或分组计算资源。在至少一个实施例中,集群或分组的计算资源可包括在数据中心基础设施层910处的分组的计算资源914。资源管理器1036可与资源协调器912协调以管理这些映射或分配的计算资源。
在至少一个实施例中,被包括在软件层930中的软件944可以包括由节点C.R.s916(1)-916(N)、分组的计算资源914和/或框架层920的分布式文件系统938中的至少多个部分使用的软件。一种或更多种类型的软件可以包括但不限于互联网网页搜索软件、电子邮件病毒扫描软件、数据库软件和流式视频内容软件。
在至少一个实施例中,被包括在应用层940中的应用942可以包括由节点C.R.s916(1)-916(N)、分组的计算资源914和/或框架层920的分布式文件系统938中的至少多个部分使用的一种或更多种类型的应用。一种或更多种类型的应用可以包括但不限于任何数量的基因组学应用、认知计算和机器学习应用(包括训练或推理软件、机器学习框架软件(例如,PyTorch、TensorFlow、Caffe等)和/或结合一个或更多个实施例使用的其他机器学习应用)。
在至少一个实施例中,配置管理器934、资源管理器936和资源协调器912中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实施任何数量和类型的自修改动作。自修改动作可使数据中心900的数据中心运营商免于做出可能不良的配置决策和可能避免数据中心的未充分利用和/或性能不佳的部分。
根据在此描述的一个或更多个实施例,数据中心900可以包括工具、服务、软件或其他资源,以便训练一个或更多个机器学习模型或使用一个或更多个机器学习模型来预测或推断信息。例如,(一个或更多个)机器学习模型可以通过使用上文相对于数据中心900所描述的软件和/或计算资源,通过根据神经网络架构计算权重参数来训练。在至少一个实施例中,对应于一个或更多个神经网络的经训练的或所部署的机器学习模型可以用于通过使用通过一个或更多个训练技术(诸如但不限于本文中所描述的那些技术)计算的权重参数,来使用以上关于数据中心900所描述的资源来推断或预测信息。
在至少一个实施例中,数据中心900可以使用CPU、专用集成电路(ASIC)、GPU、FPGA、和/或其他硬件(或与其相对应的虚拟计算资源)来使用上述资源执行训练和/或推理。此外,上述一个或更多个软件和/或硬件资源可以被配置为允许用户训练或执行信息推理的服务,诸如图像辨识、语音辨识或其他人工智能服务。
示例网络环境
适合用于实现本公开的实施例的网络环境可以包括一个或更多个客户端设备、服务器、网络附接存储(NAS)、其他后端设备和/或其他设备类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可在图7的计算设备700的一个或更多个实例上实现,例如,每个设备可包括计算设备700的类似组件、特征和/或功能。此外,在实现后端设备(例如,服务器、NAS等)的情况下,后端设备可被包括作为数据中心900的一部分,数据中心900的示例在本文中相对于图9更详细地描述。
网络环境的组件可以经由可以是有线的、无线的或两者的一个或更多个网络彼此通信。网络可以包括多个网络或网络的网络。作为示例,网络可包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络(诸如互联网和/或公共交换电话网(PSTN))、和/或一个或更多个私有网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或者甚至接入点(以及其他组件)的组件可以提供无线连接。
兼容的网络环境可以包括一个或更多个对等网络环境——在这种情况下,网络环境中可以不包括服务器——和一个或更多个客户端-服务器网络环境——在这种情况下,网络环境中可以包括一个或更多个服务器。在对等网络环境中,本文关于(一个或更多个)服务器描述的功能可以在任何数量的客户端设备上实现。
在至少一个实施例中,网络环境可以包括一个或更多个基于云的网络环境、分布式计算环境、其组合等。基于云的网络环境可以包括在服务器中的一个或更多个上实现的框架层、作业调度器、资源管理器和分布式文件系统,所述服务器可以包括一个或更多个核心网络服务器和/或边缘服务器。框架层可包括支持软件层的软件和/或应用层的一个或更多个应用的框架。软件或应用可以分别包括基于网络的服务软件或应用。在实施例中,客户端设备中的一个或更多个可以使用基于web的服务软件或应用(例如,通过经由一个或更多个应用编程接口(API)访问服务软件和/或应用)。框架层可以是但不限于免费和开源软件web应用框架的类型,诸如可以使用分布式文件系统进行大规模数据处理(例如,“大数据”)。
基于云的网络环境可以提供执行在此描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些不同功能中的任一者可从(例如,可跨州、地区、国家、全球等分布的一个或更多个数据中心的)中央或核心服务器分布在多个位置上。如果至用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,限于单个组织)、可以是公共的(例如,对许多组织可用)和/或其组合(例如,混合云环境)。
(一个或更多个)客户端设备可以包括在此关于图7所描述的(一个或更多个)示例计算设备700的组件、特征和功能中的至少一些。作为示例而非限制,客户端设备可被体现为个人计算机(PC)、膝上型计算机、移动设备、智能电话、平板计算机、智能手表,可穿戴计算机、个人数字助理(PDA)、MP3播放器、虚拟现实耳机、全球定位系统(GPS)或设备、视频播放器、摄像机、监视设备或系统,车辆、船只、飞船、虚拟机、无人机、机器人、手持式通信设备、医院设备、游戏设备或系统、娱乐系统、车辆计算机系统,嵌入式系统控制器、遥控器、电器、消费电子设备、工作站、边缘设备、这些所描绘的设备的任何组合、或任何其他合适的设备。
可以在由计算机或其他机器(如个人数据助理或其他手持式设备)执行的计算机代码或机器可用指令(包括计算机可执行指令,如程序模块)的一般上下文中描述本公开。通常,包括例程、程序、对象、组件、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。本公开可以在各种系统配置中实施,包括手持式设备、消费电子产品、通用计算机、更专业的计算设备等。本公开也可以在任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。
如在此使用的,关于两个或更多个元件的“和/或”的叙述应当被解释为意指仅一个元件、或元件的组合。例如,“元素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 (21)

1.一种方法,包括:
接收表示游戏的玩游戏视频的图像数据,所述玩游戏视频正被呈现在第一用户界面中;
将所述图像数据应用于至少一个机器学习模型MLM,所述至少一个MLM被训练成检测一个或更多个对象;
至少基于使用所述至少一个MLM检测所述玩游戏视频内的所述一个或更多个对象中的对象,确定所述玩游戏视频内呈现的内容项目;以及
基于对所述内容项目的确定,使用所述内容项目的元数据来使选项显示,所述选项可选择以使第二用户界面呈现,所述第二用户界面呈现与所述内容项目相关联的信息和可选择以获取所述游戏中的所述内容项目的一个或更多个图形元素。
2.根据权利要求1所述的方法,其中所述显示是基于对正与所述内容项目相关联的所述第一用户界面的用户输入。
3.根据权利要求1所述的方法,还包括:使用所述内容项目的内容标识符来访问数据存储以检索所述内容项目的所述元数据。
4.根据权利要求1所述的方法,其中所述至少一个MLM包括双神经网络,并且所述内容项目的确定使用所述双神经网络来识别所述玩游戏视频的区域中的所述内容项目。
5.根据权利要求1所述的方法,其中所述图像的接收是来自视频平台的流水线,所述视频平台向多个用户提供所述玩游戏视频的视频流。
6.根据权利要求1所述的方法,其中所述MLM中的至少一个被训练以使用所述内容项目的正例来识别所述内容项目。
7.根据权利要求1所述的方法,其中在所述玩游戏视频内呈现的所述内容项目的确定包括:将内容项目的编码表示与所述玩游戏视频的一个或更多个部分的编码表示进行比较。
8.根据权利要求1所述的方法,其中所述至少一个MLM检测所述玩游戏视频的一个或更多个帧的区域中的所述对象,并且所述选项被呈现在对应于该区域的位置处。
9.根据权利要求1所述的方法,其中至少基于跨多个帧跟踪所述对象而用所述玩游戏视频的所述多个帧来呈现所述选项。
10.一种系统,包括:
一个或更多个处理器;以及
一个或更多个存储器设备,其存储指令,所述指令在由所述一个或更多个处理器执行时,使所述一个或更多个处理器执行操作,所述操作包括:
在第一用户界面中呈现游戏的玩游戏视频;
接收内容项目的元数据,所述元数据指示使用被训练为检测一个或更多个对象的至少一个机器学习模型MLM在所述玩游戏视频中检测到内容项目;以及
使用所述元数据使选项显示,所述选项在所述第一用户界面中可选择以使第二用户界面呈现,所述第二用户界面呈现与所述内容项目相关联的信息和可选择以获取所述游戏中的所述内容项目的一个或更多个图形元素。
11.根据权利要求10所述的系统,其中所述元数据包括到所述第二用户界面的链接,并且基于对所述选项的选择来访问所述链接。
12.根据权利要求10所述的系统,其中所述选项包括在所述第一用户界面中对所述玩游戏视频的叠加,所述叠加与所述玩游戏视频的一个或更多个帧的区域相关联地被显示。
13.根据权利要求10所述的系统,其中所述选项包括与所述内容项目相关联的交互式元素。
14.根据权利要求10所述的系统,其中所述元数据包括所述玩游戏视频的一个或更多个帧的指示,并且所述选项的显示与所述一个或更多个帧相关联。
15.根据权利要求10所述的系统,其中所述玩游戏视频包括以下各项中的一项或更多项:直播视频、实时视频、近实时视频、重新广播视频或先前录制的视频。
16.一种方法,包括:
接收表示正在第一用户界面中呈现的视频的图像数据;
将所述图像数据应用于至少一个机器学习模型MLM,所述至少一个MLM被训练成检测一个或更多个对象;
至少基于使用所述至少一个MLM来检测与所述视频中的所述一个或更多个对象中的对象对应的至少一个区域,将所述至少一个区域应用于使用一个或更多个内容项目的示例来训练的双神经网络NN;
使用至少所述双NN来识别所述视频中的所述一个或更多个内容项目中的内容项目;以及
基于所述内容项目的识别,使选项显示,所述选项可选择以使第二用户界面呈现,所述第二用户界面呈现与所述内容项目相关联的信息和可选择以获取所述内容项目的一个或更多个图形元素。
17.根据权利要求16所述的方法,其中识别所述内容项目包括:将与所述内容项目相关联的所述双NN的至少第一输出与对应于所述视频中的所述至少一个区域的所述双NN的输出进行比较。
18.根据权利要求16所述的方法,其中所述选项包括:对与所述视频的所述至少一个区域相关联地显示的所述视频的叠加。
19.根据权利要求16所述的方法,识别所述内容项目包括:将所述至少一个区域与和内容标识符相关联的所述双NN的编码进行比较匹配,并且使所述选项显示使用所述内容标识符来确定所述选项的一个或更多个特性。
20.根据权利要求16所述的方法,其中所述双NNN被训练为使用所述内容项目的正例和负例对所述内容项目的表示进行编码。
21.根据权利要求16所述的方法,其中所述双NN被训练为使用来自不同视角的所述内容项目的正例来对所述内容项目的表示进行编码。
CN202210033274.5A 2021-01-12 2022-01-12 适于视频游戏的直播中的自动内容辨识和信息 Pending CN114764896A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163136562P 2021-01-12 2021-01-12
US63/136,562 2021-01-12
US17/407,555 US11816890B2 (en) 2021-01-12 2021-08-20 Automatic content recognition and information in live streaming suitable for video games
US17/407,555 2021-08-20

Publications (1)

Publication Number Publication Date
CN114764896A true CN114764896A (zh) 2022-07-19

Family

ID=82116201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210033274.5A Pending CN114764896A (zh) 2021-01-12 2022-01-12 适于视频游戏的直播中的自动内容辨识和信息

Country Status (3)

Country Link
US (2) US11816890B2 (zh)
CN (1) CN114764896A (zh)
DE (1) DE102022100521A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11651590B2 (en) * 2021-01-28 2023-05-16 Zebra Technologies Corporation Operation management system utilizing a wearable device
US20240037145A1 (en) * 2022-08-01 2024-02-01 Google Llc Product identification in media items
US20240040201A1 (en) * 2022-08-01 2024-02-01 Google Llc Media item and product pairing
CN116883003A (zh) * 2023-07-10 2023-10-13 国家电网有限公司客户服务中心 基于生物探针技术的移动端支付购电反欺诈方法、系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8494346B2 (en) 2011-12-22 2013-07-23 Max Abecassis Identifying a performer during a playing of a video
US10719744B2 (en) * 2017-12-28 2020-07-21 Intel Corporation Automated semantic inference of visual features and scenes

Also Published As

Publication number Publication date
US11816890B2 (en) 2023-11-14
US20220222470A1 (en) 2022-07-14
DE102022100521A1 (de) 2022-07-14
US20240020975A1 (en) 2024-01-18

Similar Documents

Publication Publication Date Title
US11816890B2 (en) Automatic content recognition and information in live streaming suitable for video games
CN111260545B (zh) 生成图像的方法和装置
JP6388356B2 (ja) 行動認識システム及び方法
Betancourt et al. The evolution of first person vision methods: A survey
US8963916B2 (en) Coherent presentation of multiple reality and interaction models
US11568265B2 (en) Continual selection of scenarios based on identified tags describing contextual environment of a user for execution by an artificial intelligence model of the user by an autonomous personal companion
US20210271887A1 (en) Video Clip Classification using Feature Vectors of a Trained Image Classifier
US20130249947A1 (en) Communication using augmented reality
US20160085310A1 (en) Tracking hand/body pose
US20130232430A1 (en) Interactive user interface
US20210046388A1 (en) Techniques for curation of video game clips
US20130238778A1 (en) Self-architecting/self-adaptive model
US11657627B2 (en) Focusing regions of interest using dynamic object detection for textual information retrieval
US11579752B1 (en) Augmented reality placement for user feedback
US20230149819A1 (en) Dynamically selecting from multiple streams for presentation by predicting events using artificial intelligence
CN115244495A (zh) 针对虚拟环境运动的实时式样
CN115604543A (zh) 为游戏会话自动生成增强的活动和事件摘要
US20230177583A1 (en) Playstyle analysis for game recommendations
Hsu et al. A multimedia presentation system using a 3D gesture interface in museums
US20230071358A1 (en) Event information extraction from game logs using natural language processing
CN112753008B (zh) 中间新兴内容
WO2022150125A1 (en) Embedding digital content in a virtual space
CN115767091A (zh) 使用神经网络进行基于熵的预滤波用于流式传输应用
WO2023080806A1 (en) Synthetic audio-driven body animation using voice tempo
CN117037015A (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