CN112742025A - 游戏事件识别 - Google Patents

游戏事件识别 Download PDF

Info

Publication number
CN112742025A
CN112742025A CN202011178346.2A CN202011178346A CN112742025A CN 112742025 A CN112742025 A CN 112742025A CN 202011178346 A CN202011178346 A CN 202011178346A CN 112742025 A CN112742025 A CN 112742025A
Authority
CN
China
Prior art keywords
event
game
data
player
detectors
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
CN202011178346.2A
Other languages
English (en)
Inventor
J·怀特
D·克拉克
N·奥特奈斯
T·米伦斯特恩
P·孙达里森
吉姆·V·威尔森
杰克·V·威尔森
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 CN112742025A publication Critical patent/CN112742025A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3202Hardware aspects of a gaming system, e.g. components, construction, architecture thereof
    • G07F17/3204Player-machine interfaces
    • G07F17/3209Input means, e.g. buttons, touch 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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between 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/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • 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/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/215Input arrangements for video game devices characterised by their sensors, purposes or types comprising means for detecting acoustic signals, e.g. using a microphone
    • 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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/424Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving acoustic input signals, e.g. by using the results of pitch or rhythm extraction or voice recognition
    • 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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/426Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving on-screen location information, e.g. screen coordinates of an area at which the player is aiming with a light gun
    • 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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • 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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/44Processing 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
    • 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/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • A63F13/497Partially or entirely replaying previous game actions
    • 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/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • 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/54Controlling the output signals based on the game progress involving acoustic signals, e.g. for simulating revolutions per minute [RPM] dependent engine sounds in a driving game or reverberation against a virtual wall
    • 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/60Generating 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/67Generating 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
    • 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/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • 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
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/837Shooting of targets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Acoustics & Sound (AREA)
  • Optics & Photonics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了游戏事件识别,游戏不可知事件检测器可用于自动识别游戏事件。游戏特定配置数据可用于指定要在游戏会话的媒体上执行的预处理的类型,以及用于检测游戏事件的检测器的类型。可以以人类可读和过程可读的形式将检测到的事件的事件数据写入事件日志。事件数据可用于各种目的,例如生成精彩视频或提供播放器性能反馈。

Description

游戏事件识别
背景技术
随着视频游戏内容和使用的发展,相应地需要适应使用和提供游戏内容的方式。例如,玩游戏的视频越来越多地被大量观众流式传输,并且诸如电子竞技之类的活动正在改变开发在线游戏和向观看者渲染内容的方式。在许多情况下,这些快速变化导致内容的渲染对于其预期目的而言不是最佳的,或者需要手动干预才能创建感兴趣的内容。除了增加资源之外,这种手动干预通常还增加了可以将这种内容渲染给观看者或游戏玩家的时间。
附图说明
将参考附图描述关于本公开的各种实施例,其中:
图1A和图1B示出了根据至少一个实施例的可以被分析的游戏内容的显示;
图2A,图2B和图2C示出了根据至少一个实施例的可以被分析的游戏内容的显示;
图3示出了根据至少一个实施例的示例事件识别管线;
图4示出了根据至少一个实施例的用于指定游戏的事件识别功能的示例事件管理器;
图5示出了根据至少一个实施例的可用于确定、通信和利用游戏事件数据的示例系统;
图6示出了根据至少一个实施例的用于生成游戏事件数据的日志的过程;
图7示出了根据至少一个实施例的用于从游戏性视频确定事件数据的过程;
图8示出了根据至少一个实施例的推理和/或训练逻辑;
图9示出了根据至少一个实施例的推理和/或训练逻辑;
图10示出了根据至少一个实施例的数据中心系统;
图11示出了根据至少一个实施例的计算机系统;
图12示出了根据至少一个实施例的计算机系统;
图13示出了根据至少一个实施例的计算机系统;
图14示出了根据至少一个实施例的计算机系统;以及
图15示出了根据至少一个实施例的计算机系统。
具体实施方式
图1A示出了根据至少一个实施例的可以为游戏渲染的示例显示器100。在该示例中,该游戏是第一人称射击类游戏,其中玩家将引导化身(avatar)102或可玩角色穿过场景或虚拟环境,以执行各种任务。在该示例中,这些任务包括射击目标110,尽管在各种实施例的范围内也可以执行各种其他类型的任务。在至少一个实施例中,游戏会话可以持续长达指定的时间量,直到击中所有目标,或者直到满足另一个这样的结束标准为止。游戏可以离线或在线玩,例如玩家可以与一个或更多个其他玩家竞争以尝试成为第一个完成当前级别或会话的任务等。
如图所示,可能存在渲染的各种游戏性对象以供显示,例如可以包括玩家的化身102,由该化身持有的武器,目标110,建筑物,背景元素等。这些对象及其位置在玩游戏过程中可能会发生重大变化。除了这些游戏性对象之外,还有用于将特定类型的信息传达给玩家的用户界面机制。在图1A的示例性显示器100中,第一界面机制104显示在渲染图像的顶部附近。这种机制通常被称为状态栏或平视显示器(HUD),可将特定类型的信息传达给游戏的玩家或观看者。在此示例中,HUD显示当前游戏性会话中剩余的时间量,以及在该级别中用户成功命中或瞄准的多个目标的信息。在图1A的示例中,玩家在该会话中正在与竞争对手对战,因此HUD会显示玩家和竞争对手二者的状态,指示每个玩家击中的目标数量。
在许多情况或用例中,可能需要确定执行任务或动作的玩家。这可以包括,例如,当要为游戏会话中的感兴趣事件创建精彩视频或视频剪辑画面时,或者在其他此类用例中,将会话的游戏性数据用于玩家分析或指导时。在至少一些实施例中,可能需要确定某些类型的事件何时在游戏会话中发生,以便记录该数据或在其他此类选项中获取代表这些事件中的一个或更多个的视频片段(“视频剪辑”)。在一些实施例中,游戏开发者可以在游戏代码中放置钩子(hook)或触发器,这可以帮助从游戏内部确定这些事件。然而,在一些实施例中,事件确定可以由可能无法访问代码或内部游戏数据的第三方或第三方设备执行。
在至少一个实施例中,可以分析代表游戏会话的媒体。这可以包括例如游戏会话的音频和视频流,或为游戏会话捕获和存储的音频和/或视频数据,以及其他这样的选项。可以对媒体进行分析以检测或识别游戏中特定发生或事件的存在。这可以包括游戏中的任何事件或发生,例如可以与对象或角色的出现或消失、角色的死亡或复活、物品的使用、开关的激活、项目的收集、成就等相关。在一些实施例中,可以对媒体数据进行分析,以尝试通过检测音频、视频、文本或其他此类游戏内容中的那些特定动作来确定这些事件。
然而,在许多情况下,为了训练模型或对算法进行编程而需要大量的训练数据,以通过可以表示那些事件的方式来检测各种事件。例如,射击游戏中的击中可以以多种不同的方式发生,从许多不同的角度到许多不同的角色,而且在没有访问游戏代码的情况下,尝试训练模型或编写算法,或使用计算机视觉来尝试检测所有这些事件生成可能是一个重大挑战。
但是,对于各种类型的事件,可以在不需要复杂的模型训练或算法编程的情况下检测到游戏中特定类型的动作或发生。再次考虑图1A的显示器100。该示例中的HUD 104示出了每个玩家的剩余目标数量。每次玩家成功和/或完全击中目标110时,HUD都会更新以反映此事件。类似地,每次玩家从对手身上受到重大伤害时,屏幕上状态消息106中显示的健康表或护盾表将减少,并且获得能量补充、护盾或装甲也会导致这些数字增加。另一个状态消息108显示当前武器的弹药量。每次玩家获得新武器时,弹药(或力量,油漆等)图标都会相应更改。对于这些状态消息或显示中的每一个,它们都可以在近似相同的位置出现,并且外观非常相似,并且可以以非常明确的方式进行更改。因此,可以通过监视与涉及化身、对象和游戏中的玩家角色的实际游戏性相关但又不同的内容的这些和其他类型的信息、图标或内容的渲染中的变化,来确定对至少某些类型的事件的检测。
图1B示出了游戏会话中稍后时间的后续显示器150。在该显示器中,可以看出,相对于图1A的显示器100,仅用了几秒钟的时间,玩家击中了另外两个附加目标。HUD中的图标154的两次改变反映了这一点。另一个状态显示表明,对应于击中目标的射击的特定类型弹药相应减少了。通过检测这些非常具体的变化,可以确定发生了一个事件或一系列事件,从而导致玩家击中了两个目标。然后,该事件的检测可以用于许多不同的目的,如本文后面将更详细讨论的。可能还会产生与玩家击中目标相对应的音频声音等。
由于这种方法正在寻找游戏或其他媒体内容中特定类型的发生,因此可以使用一组检测器来检测可能与感兴趣事件相对应的发生。在图1A和图1B的示例中,分析视频内容(尽管在至少一些实施例中也可以分析音频和其他内容)。用于此类视频的检测器可以包括尝试检测或识别特定图案、图标、文本或图像以及其他此类选项的检测器。此外,由于图标、文本或其他内容通常将位于游戏显示器中的特定位置,因此这些检测器可以在显示器的相应区域或部分上运行,与在整个图像上运行多个检测器相比,这可以节省大量资源,特别是用于高分辨率显示器。例如,在图1B中,示出了考虑用于检测的显示器的部分或区域154、156、158包括在要检测的内容的预期位置周围的至少一些填充(padding)。在至少一些实施例中,期望不包括比必要更多的像素,以便减少资源需求并提高检测速度。然而,在至少一些实施例中,期望具有足够量的填充(例如,从要检测的内容的预期位置在一个或更多个方向上的“空间缓冲区”),或考虑适当数量的额外像素,以允许略有变化。由于诸如屏幕内容的渲染抖动,分辨率或用户设置的更改,从视图中出现或消失的对象等因素,可能会发生变化。在一些实施例中,内容还可以随着时间移动或外观改变。因此,在至少一些实施例中,要使用的填充量以及要分析的区域的数量可以是游戏特定的。
图2A和图2B示出了根据各种实施例的可以被分析的其他类型的游戏的示例显示200、240。图2A的显示器200示出了针对基于车辆的游戏所渲染的图像,其中玩家可以因例如执行技巧(trick)或者对环境中的对象造成破坏的任务而获得奖励。对于该示例,检测器可以利用不同的信息来分析与HUD相对应的区域202,在这种情况下,该信息包括关于当前速度、技巧得分和损坏程度的信息。可以对此类信息进行分析,以确定特定类型的事件,例如导致突然减速的碰撞或导致快速加速的爆炸。技巧得分的大变化,无论是在某个时间点还是短时间段内,都可能表示一个或更多个有趣的技巧。类似地,在某个时间点或短时间段内损坏得分的较大变化可以指示游戏中有趣的事件。用于分析的另一区域204可以包括地图区域,该地图区域可以包括用于游戏中玩家附近的对象或游戏性元素的图标或图形元素,其可以对应于特定事件类型而改变、出现或消失。可以训练检测器以检测地图上的这些和其他发生,这可以指示某些感兴趣的事件。
图2B的示例显示器240示出了针对基于高尔夫球的游戏渲染的图像。在该示例中,选择区域242用于分析,该区域242包括文本信息和关于游戏状态的更新。在这种情况下,检测器可以包括文本检测算法,例如可以包括OCR引擎和文本分析器,以确定何时显示或更新某些信息。该信息可以包括例如某个洞上的当前挥杆次数,当前保持的变化以及其他这样的信息。在这样的情况下,显示的信息不一定指示感兴趣的事件,而是该信息中的特定类型的变化,例如表示在洞上得到双小鸟击(a double birdie)。但是,可能是这样的情况,可能会在某些时间显示其他信息,例如,表示“小鸟击”的文本或表示“好球”的图标也可能指示感兴趣的事件。
但是,如上所述,各种实施例也可以分析或检测其他类型的信息,以尝试更准确地识别感兴趣的事件。作为示例,图2C的显示器280再次对应于基于高尔夫球的游戏。除了分析HUD类型数据292之外,检测器还可以用于尝试检测游戏性中的其他对象、特征、动作或发生。这可以包括例如检测玩家化身的挥杆动作286,检测高尔夫球的存在282和动作284,或者检测诸如高尔夫球场的环境290中的动作(或缺乏动作)。在一些实施例中,也可以使用音频触发器或检测器。在该示例中,玩家化身用高尔夫球杆击打高尔夫球将使游戏产生特定类型的声音288,该声音288可被识别为与音频模式或片段匹配。该音频触发器可以指示玩家击球的事件。这样的触发器或事件可以用于快速识别游戏会话中用户击中球的点,并且类似的音频触发器可以用于识别球何时击中地面等。各种运动、光流、音频和其他此类检测器、机器学习模型或经训练的神经网络可用于分析媒体流或游戏性文件以检测此类事件,这些事件可一起用于确定或识别潜在的感兴趣事件,并可能提供有关这些单独的动作的更准确的描述。
图3示出了根据各种实施例的示例系统300,其可以用于从游戏性数据中检测事件。在该示例中,事件识别模块304在各种实施例中也可以采用设备、系统、服务或过程的形式,可以接受一种或更多种类型的游戏性数据302作为输入。输入可以包括,例如,在媒体流中接收的现场游戏性,存储到可访问存储介质中的记录媒体,或实时渲染以在游戏设备上呈现的媒体,以及其他此类选项。在至少一些实施例中,在可获得此类信息的范围内,也可以接收附加游戏数据。这可以包括文本,元数据,玩家输入(例如,音频、按键或按钮),或在识别事件、确定要使用的检测器等方面可能有用的其他此类信息。在一些实施例中,这可以至少包括关于正在玩的游戏和/或正在分析其游戏性数据的玩家的信息。
在此实例中,事件识别模块304可接收用于游戏会话的流上的所有视频帧,或可接收帧的采样,诸如每100ms一帧或每十分之一帧。在一些实施例中,模块可以接收所有帧,但是仅分析这样的采样。可以将要分析的帧(或其他内容)定向到预处理模块306,该预处理模块可以使用一种或更多种预处理算法来执行或管理各个帧的预处理。在该示例中,存储库308可以存储一组预处理算法,并且预处理模块306可以为内容选择一种或更多种适当的算法。在一些实施例中,要应用的算法可以至少部分地基于要分析的内容的类型或先前的预处理步骤的结果。在该示例中,可以查阅游戏专用配置文件312,该文件可以指示针对特定游戏要执行的预处理的类型。在各种实施例的范围内,也可以使用各种其他确定方法。
在至少一个实施例中,可以对一个或更多个视频帧执行从属区域处理。当执行从属区域处理时,一个对象的检测或发生可以触发对帧的一个或更多个其他区域执行的附加处理。例如,可以检测到图标出现在视频帧的第一区域中。该图标的出现可以指示视频帧中其他位置是否存在附加信息。然后可以使用与该类型的附加信息相关联的一个或更多个检测器来分析帧的一个或更多个对应区域。在至少一个实施例中,对这样的对象或发生的检测可以触发检测器的序列或系列,以尝试获得关于游戏状态的附加信息,无论是以音频、视频、用户输入还是其他这样的数据表示。可能的情况是,在检测到图标时未启用这些附加检测器中的一个或更多个,而是在进行此类检测时被激活或触发。在一些实施例中,事件的组合被分析以确定特定结果。例如,图标可能会出现在屏幕上,指示发生了特定事件,但是可能伴随有其他动作或显示,该动作或显示指示与引起该事件或受该事件影响的一方或玩家有关的信息,以及其他此类选项。
在此示例中,各个视频帧可以应用一系列预处理算法。例如,这可以包括首先从配置文件中识别要分析图像帧的哪个或哪些区域。在此示例中,区域是由坐标或百分比定义的矩形。在一些实施例中,百分比可能是优选的,因为游戏可以以许多不同的可能分辨率运行,并且如果使用离散坐标,则需要为每种分辨率存储坐标,或者需要执行计算以转换为不同分辨率的不同坐标。在一个示例中,区域规范可以指示在宽度和高度上占据显示器的10%,并且距离显示器的顶部中心5%的区域。这些值是高度可参数化的,并且可以为各个游戏、级别、场景等指定。如上所述,给定的区域大小可以允许足够的填充以确保捕获预期的信息或内容。
对于选择用于分析的帧的每个区域,可以应用一种或更多种预处理算法。这些算法可以包括例如灰度,颜色隔离,转换为HSV(色相,饱和度,值)颜色空间,放大,缩小,平滑,噪声去除,滤波,拉伸,翘曲(warping)或透视校正等。也使用各种其他图像或内容操纵技术。作为该示例中的最终预处理步骤,可以将一定水平或类型的阈值应用于所选区域的像素,以便提供至少一定水平的背景去除。如上所述,在至少一些游戏中,感兴趣的内容(例如,文本)将在游戏的背景下显示。为了使检测算法(例如,可能依赖于OCR的检测算法)更准确地发挥作用,可以使用阈值去除(或应用特定值)背景像素,以使处理后的区域看起来更像是黑白内容,特别是对于文本,它看起来更像是OCR引擎旨在处理的内容类型。此外,如果在处理中没有充分去除或考虑到这些问题,则诸如抗混叠和混合的方面会降低OCR引擎的精度。在适用的情况下,阈值处理还可以帮助消除瞬态背景噪声。在该示例中,然后可以将用于预处理区域的数据临时存储到高速缓存310或其他这样的位置。
也可以采用设备、系统、服务或过程的形式的检测模块314或引擎然后可以从高速缓存310访问区域数据并使用一个或更多个检测器来处理数据。在该示例中,游戏特定的配置文件312可以指定要使用的一个或更多个检测器,其也可以根据要分析的区域的选择或类型而变化。检测器可以包括多种检测器类型中的任何一种,如与图案检测,图标检测,文本检测,音频检测,图像检测,运动检测等有关。如果尚未存储在本地存储器中,则检测模块314可以从检测器存储库316或其他此类位置访问相关的检测器。在各种实施例中,与HUD相对应的区域可以至少具有如本文其他地方所讨论的执行的文本和图标检测。如果有附加游戏数据可用,检测还可以包括用户输入分析,例如以检测键盘,游戏手柄,控制器等的输入或输入组合。如果附加数据包括声音或网络摄像头视频,检测器还可以在音频中寻找模式,例如用户在其中做出表示事件类型的特定说明,或者在视频中的模式中用户做出指示事件类型的特定行动或动作。还可以分析其他类型的数据,例如玩家的生物特征数据,该数据可以指示指示某些类型事件的动作或响应。如上所述,可以使用数据流几乎实时地进行分析,也可以在使用存储数据的游戏会话之后进行分析,以及其他此类选项。然后,可用数据的类型可以至少部分取决于何时分析数据。
在该实例中,检测器模块314可以使用指定的一个或更多个检测器来处理帧(或其他游戏内容)的选定区域,该检测器可以生成一个或更多个提示或其他此类输出,并可以将其存储到本地高速缓存318中。提示可以是指示或映射到事件类型的任何适当的提示。例如,游戏可能会指示多个头骨图标,这些图标指示玩家在当前游戏性会话中造成的击杀次数。头骨数量的变化指示击杀事件。在该示例用例中,视觉提示将是头骨本身,例如第三头骨出现在先前不存在的位置。然后,可以将第三头骨的外观作为提示来传递,该提示可以用来确定相应的事件。在至少一些实施例中,提示可以独立于提示的含义或给定提示指示的事件。在该示例中,检测引擎314可以仅与检测或确定提示有关,而不会尝试确定事件。
可能希望确定由所确定的一个或更多个提示指示的一个或更多个事件或事件的类型。在至少一些实施例中,这可以由提示到事件转换模块320执行。该模块320可以包括通过特定于游戏的脚本提供的逻辑,用于从所确定的提示来确定事件的类型。一旦确定了事件类型,就至少在一些实施例中,期望以人类可读以及过程可读的方式提供或传达一个或更多个检测事件的信息。在该示例中,提示到事件转换模块320应用游戏特定脚本322或逻辑,并使用来自定义的词典324的术语,以将提示转换或翻译为符合所提供的词典的人类可读文本。各种检测器可以以不同格式提供不同类型的输出,并且提示到事件转换模块320可以提供至少某种程度的标准化,从而可以跨各种检测器比较输出。尤其重要的是在多个检测器可能检测到相同事件的提示的情况下,然后需要对其进行适当的关联。这些提示可以包括与检测到的文本,图标,运动,特征,图像,声音,手势,生物特征等有关的提示。至少一些实施例中的提示到事件转换模块320可以包括一个或更多个链式或者其他方式的经训练的神经网络,它可以接受特定时间段或玩游戏期间的提示,并推断出具有相应置信度值的事件类型。在该示例中,然后可以将经转换的事件数据写入事件数据日志326或其他此类位置以供访问。如前所述,该日志可以是人类可读的,以便用户或开发人员可以阅读和理解日志数据。日志还可以以一种或更多种进程、算法或应用程序可用于执行本文所讨论的一项或更多项任务的格式存储数据,这可能与剪辑或精彩视频的生成,玩家技能分析,玩家教练,游戏调整,玩家匹配等相关。在一些实施例中,事件数据日志将包括用于所有检测到的事件的数据,而在其他实施例中,该日志可以仅存储用于某些类型或数量的事件或以至少最小置信度确定的事件的数据,以及其他此类选项。在至少一些实施例中,可以通过人类可读脚本(例如,JSON–JavaScript Object Notation)来配置检测参数,例如搜索区域,期望的提示以及提示状态变化到事件日志的映射。
在至少一个实施例中,一组检测器(例如,给定游戏的五个或六个检测器)的输出将是事件类型的匹配或不匹配,并具有相应的置信度值或置信度等级。然后可以将这些提示或其他值馈送到过程,例如可以利用转换模块320中的游戏特定脚本322(例如,JavaScript),其可以每帧执行附加的试探法。这些试探法可以帮助改善事件匹配的确定性。例如,OCR检测器可能会报告用于检测特定的文本内容的匹配,但是可以应用试探法来查看该文本内容如何更改以及何时更改,以及更改的数量和时间段,以确定事件是否真正对应特定应用程序感兴趣的事件。这些试探法还可帮助使游戏不可知(game-agnostic)事件识别模块能够使用脚本和配置文件针对每个游戏进行自定义,该脚本和配置文件描述了用于游戏的预处理和检测逻辑,以及用于对从核心检测模块314发出的数据执行试探式分析的预游戏脚本,在一些实施例中也被称为事件检测引擎。
开发人员或其他授权用户可以提供有关要检测的感兴趣事件的信息。图4示出了根据各种实施例的包括可以使用的事件管理器402的系统400。在此示例中,可以离线方式分析记录的游戏数据。用户可以访问事件管理器的界面以提取记录的游戏性的帧,可以通过视频解码器404处理该帧,以便通过第一用户界面406生成各个帧的预览。然后,用户可以使用界面410的一个或更多个交互控件以指定指示感兴趣事件的帧的一个或更多个区域。在许多情况下,帧中可能没有任何指示此类事件的信息,因此用户可以前进到视频中的下一帧或后续帧。如果用户注意到指示感兴趣事件的东西,则用户可以使用带有显示界面的控件来绘制或指示帧的区域,例如在包括感兴趣内容的区域周围绘制边框。在一些实施例中,用户应在该区域中包括一定量的填充,而在其他实施例中,可以通过事件管理器的工具逻辑408来添加该填充,除其他此类选项。用户可以使用控件将区域与事件的类型以及要检测的内容的类型(例如,特定的文本、图像、图标、图案等)进一步相关联。这些事件的信息,包括要分析的区域和相关信息,然后可以被写入游戏的游戏特定配置文件312。当与该游戏相关联的内容随后被接收到事件识别模块304时,可以访问游戏特定配置文件以确定要分析的区域以及要执行的预处理和用于这个特定的游戏的那些区域的检测器。
如上所述,在各种实施例中,检测引擎或模块是游戏不可知的,但允许插件和脚本使之能够针对特定游戏进行定制。例如,这可以包括各种触发条件和稳定因素的规范。本机核心检测引擎将不知道视频所对应的游戏,但是将具有关于要分析的区域和要执行的预处理以及用于事件匹配的任何模型的信息。在至少一个实施例中,当模式位于先前帧中不存在的帧中时,引擎可以使用状态机来触发找到的触发器。当模式存在但已更改时(例如,文本更改的位置),便可以更改触发器。也可能会有丢失的触发器,其中以前在该触发器有图像,但在此帧上不再存在。在至少一个实施例中,这些触发器可以由可配置和可参数化的稳定性阈值来控制。用户可以指定期望在至少指定的时间样本周期内以至少最小的置信度来检测图像。举例来说,规范可能指示希望在三个样本上以至少80%的置信度检测该区域中的图像或图标,例如采样率是每100ms。如所提到的,当需要生成或滤波事件数据时,可以在事件发生之前或之后为某些类型的事件建立特定的触发器。
事件识别引擎304可以是整体框架或平台的一部分,该框架或平台使事件能够使用各种类型的游戏数据被检测、通信并针对各种目的而采取行动。这种框架的优点在于,它可使用户提供插件来添加要使用的不同类型的检测器,以及定义要检测的事件的附加类型。用户还可以选择特定游戏或应用程序感兴趣的事件类型,以及要被记录、存储或通信的输出形式。用户还可以指定管线的输出类型,例如是否将事件数据写入日志、存储到中央存储库、直接转发到目的地以进行处理等。
在一些实施例中,用户还可以指定要对事件数据执行的至少某种程度的处理。例如,在一些实施例中,用户可能想要针对一段游戏自动生成的精彩或剪辑视频。在一个实施例中,这可以使应用程序读取事件日志,以识别满足包含在要生成的视频文件中的一个或更多个标准的事件。例如,这些可能是精彩视频的一般标准,或者可能是游戏、用户、会话或特定实例的标准,例如以生成仅显示击杀、崩溃或特定事件类型的视频。可以将标准应用于事件日志中的事件数据,例如,满足所标识的标准的事件。对于视频创建,然后这可以使应用程序从存储的游戏性会话视频副本中提取与那些事件相对应的视频片段。这些可以包括,例如,在游戏性会话中的事件的时间之前和之后的视频帧的数量或持续时间。持续时间或数量可能部分取决于游戏和事件的类型。然后可以将这些片段与相应的音频和可能添加的与事件有关的文本或附加内容串在一起,然后提供显示。视频可供游戏的玩家使用,也可以在各种使用情况下以及在允许的情况下供其他用户或观看者访问。这样的视频也可以用于其他目的,例如性能评估和电子竞技玩家的指导。
在一些实施例中,一个或更多个检测器可以对应于经训练的机器学习模型,例如经训练的神经网络。可以针对特定游戏训练这些模型,以检测与特定兴趣类型的动作相对应的特定动作、对象、移动或发生。其他检测器以及本文讨论的检测器可以使用,因为它们可能与字符识别算法、光流机制、特征识别等有关。
在至少一些实施例中,可能希望进行游戏特定的定制,因为内容可能在游戏之间发生显着变化。尽管诸如犬种之类的对象在实际视频中的外观可能相对一致,但是在游戏之间该犬种的艺术表现可能会有很大差异。诸如武器之类的对象可能具有多种外观,这些外观在不同游戏之间甚至在游戏内都不同,从而可以利用至少某种程度的游戏特定的训练或事件定义来提高性能。利用在外观和位置二者上相对一致的HUD或其他类型的信息显示的方法,也可以帮助提高准确性并减少自定义,而不是尝试根据在整个游戏会话过程中外观可能会发生很大变化的对象识别动作。此外,可以应用玩家定制,该定制可以进一步改变游戏的外观和功能,但是对HUD的任何更改都可能在整个游戏会话中保持一致。
在一些实施例中,事件数据也可以用于修改游戏性的各个方面。例如,在单人战役会话中,游戏可能会基于事件数据中的信息来调整敌人数量或计算机AI的难度。对于在线游戏,初级或初学者可能会收到有关改善游戏性或根据检测到的事件了解如何玩游戏的提示。玩家还可以与相似的玩家或具有兼容技能类型的玩家进行匹配,以及其他此类选项。如果基于事件数据,玩家似乎更喜欢一种迷你游戏类型或游戏风格,则游戏可以选择调整呈现给用户的游戏选项的类型,以使游戏更加有趣。根据各种实施例,也可以做出各种其他修改。
在至少一个实施例中,可以使用基于计算机视觉和基于机器学习的技术来处理游戏内容以检测事件。在至少一个实施例中,可以分析游戏内容以识别场景中的特定类型的特征,如可以包括发生游戏的场景,在游戏会话中识别的与游戏性相关的对象以及玩家(或化身或玩家控制的游戏元素)执行的动作。在至少一个实施例中,可以针对游戏场景分析一个或更多个游戏性片段,并且经训练的神经网络模型可以生成一组关键词,这些关键词代表为该游戏场景确定的特征。在至少一个实施例中,这些关键词可以被聚合并传递给检测引擎。
在至少一个实施例中,每场游戏将训练至少一个神经网络。在至少一个实施例中,每场游戏将训练一组神经网络,其中训练不同的网络以识别不同类型的特征,例如场景、动作或对象。在至少一个实施例中,可以训练网络,该网络可以用于在各种游戏之间,或者至少在具有至少某种相似游戏性的特定类型或类别的游戏之间进行推理。在至少一个实施例中,可以训练第一模型以识别诸如第一人称射击游戏的游戏类型的特征,而可以训练另一模型以识别诸如平台游戏或第三人称冒险游戏的游戏类型的特征,如将有不同类型的特征要检测。在至少一个实施例中,要检测的特征的类型可以随游戏或游戏类型而变化。在至少一个实施例中,用于这些模型的训练数据可以包括视频流,该视频流包括针对该游戏或游戏类型要识别的类型的特征的注释。在至少一个实施例中,这些注释是手动地或在建模辅助下执行的。在至少一个实施例中,模型可以被配置为输出具有对应置信度值的一个或更多个检测到的特征关键字,并且具有较高置信度值的关键字或至少满足最小置信度标准的值可以被用于更新玩家档案或产生建议。
图5示出了其中可以实现各个实施例的各方面的示例游戏环境500。在该示例中,玩家可以利用玩家设备502通过游戏应用程序510来玩游戏。玩家设备502可以是任何适当的设备,包括至少一个处理器514,非暂时性存储器516以及用于执行游戏内容的存储器512,或至少用于接收游戏内容并使用显示器508,头戴式耳机548或其他此类机制将该内容呈现给玩家。这样的设备包括例如台式计算机,笔记本计算机,智能电话,平板计算机,游戏机,机顶盒等。在一些实施例中,游戏可以具有一个或更多个在线方面,这要求玩家设备502通过至少一个网络504与至少一个游戏服务器518进行通信。一个或更多个网络可以包括用于通信游戏数据的任何适当的网络,可能包括有线网络或无线网络,互联网,蜂窝网络,以太网,局域网(LAN),对等网络等。游戏服务器可以托管可能涉及玩家使用其他玩家设备502的游戏会话,其通过网络504中的至少一个进行通信,其可以与玩家设备502所使用的网络相同或不同。
如所提及的,在一些实施例中,期望为这些玩家中的一个或更多个的游戏性会话执行事件检测。在不同的实施例中,事件检测可以在玩家设备502、游戏服务器518或相关设备上,由来自提供商环境506的第三方服务或资源提供商,或由第三方内容提供商系统542执行。在一些实施例中,实体可以扮演这些角色中的一个或更多个。对于其中分析诸如音频和/或视频之类的媒体的实施例,该数据可以被存储到任何适当的位置或从任何适当的位置流式传输。例如,游戏性媒体可以存储在显示它的玩家设备502上,在负责管理游戏状态的游戏服务器518上,或者接收内容流的第三方系统或环境542、506中。类似地,尽管在该示例中将事件检测示为由资源提供商“在云中”执行,作为事件检测服务的一部分提供,可以在这些或其他此类系统或设备中的任何一个上由这些或其他方执行事件检测。
在该示例中,媒体流可以通过网络504从玩家设备502发送到资源环境506以执行事件检测。如所讨论的,资源环境的至少一些组件可以在玩家设备上具有对应物以执行至少一些相同的功能。无论位置如何,都可以将媒体数据接收到可以将媒体定向到适当目标的接口或接口层522。接口层可以包括各种组件,例如(但不限于)一个或更多个应用程序编程接口(API),路由器,交换机,负载平衡器,Web服务器等。在该示例中,可以将媒体定向到事件管理器524,该事件管理器524负责使媒体被分析并且确定的事件数据变得可用,例如提供给在资源提供商处具有账户的授权用户。如关于图3所讨论的,事件管理器524可以将媒体传递给事件识别引擎526,事件识别引擎526可以利用游戏特定配置530和来自事件管理器528的脚本数据532来检测事件,该事件可以传递给事件数据管理器536并写入事件日志534。事件数据管理器还可以将与事件数据相对应的游戏数据538和用户数据540存储在事件数据日志534中。事件管理器524然后可以使该事件数据可用于适当的实体。这可以包括例如将事件数据提供给玩家设备502,其然后可以使用游戏性媒体的本地副本来为游戏会话或跨多个游戏会话存储的重放生成精彩视频或剪辑。类似地,游戏服务器518可以接收事件数据以生成用于在线游戏会话的精彩或剪辑视频,然后也可以由其他玩家设备520上的玩家观看。在在线视频托管或流传输的情况下,可以使用事件数据来生成精彩视频,该事件数据然后可以由诸如
Figure BDA0002749377280000131
Figure BDA0002749377280000132
等第三方内容提供商542提供,例如使用NVIDIA的
Figure BDA0002749377280000141
进行广播。
在一些实施例中,附加数据可用于改善事件检测的准确性,如本文所述。该数据可以包括例如使用一个或更多个生物跟踪器544(例如,健身跟踪器或心率监测器)捕获的玩家生物数据。数据可以包括网络摄像头捕获的游戏过程中玩家的视频,该视频可以指示玩游戏过程中玩家行为或外观的变化。头戴式耳机548或其他带有麦克风的设备(例如,可能包括网络摄像头)也可以捕获用户的惊叹或可能与某些事件类型相对应的呼吸模式变化。在各种实施例的范围内,也可以利用各种其他类型的数据以及用于捕获该数据的机制。
图6示出了根据各种实施例的,用于执行事件检测的示例过程600。应当理解,对于本文讨论的该过程和其他过程,除非另有说明,否则在各种实施例的范围内可以有以相似或替代顺序或并行执行的附加,替代或更少的步骤。在该示例中,获得602对应于特定游戏的玩家的游戏会话的媒体。媒体可以包括音频和视频数据,例如其可以在数据流上接收或从媒体存储传送,以及其他这样的选项。可以例如通过查看对应于特定游戏的配置文件来确定604要在媒体上执行的预处理的类型或数量。在一些实施例中,预处理可以包括确定与指定的感兴趣事件类型相关联的媒体的一个或更多个区域。也可以执行这种区域的进一步预处理,这可以至少部分取决于媒体或事件的类型。例如,可以处理音频数据以减少噪声。图像数据可以被上采样,转换为另一颜色空间(例如,灰度或HSV),并且被阈值以去除背景像素数据。可以使用各种其他类型的预处理,以及在本文其他地方讨论和建议。可以执行606所确定的预处理以生成一个或更多个经处理的事件区域用于分析。
为了执行分析,可以确定608要使用的一个或更多个检测器,如也可以在用于特定游戏的配置文件中指定的那样,并且可以至少部分地取决于要被分析的媒体或事件的类型。如所讨论的,这样的检测器可以涉及对象检测器,图标检测器,OCR引擎,光流机制等。如果为特定的帧、片段或游戏性媒体示例标识了一个以上的事件区域,则要使用的一个或更多个检测器也可能在事件区域之间变化。然后可以将一个或更多个确定的检测器应用610到各个区域。在此示例中,检测器可以生成事件提示以及相应的置信度值。在一些实施例中,可以将附加试探法应用于这些线索以确定是否满足感兴趣事件标准。可以确定612是否已经识别了至少一个感兴趣事件或指定类型的事件。如果不是,则可以丢弃614事件数据。如果在一些实施例中以至少最小置信度检测到至少一个事件,则可以将生成的该事件的提示转换616为文本描述以符合事件字典。该描述可以是过程和人类可读的,并且可以对应于在多个游戏中一致的字典。然后可以使618文本描述被存储到会话和/或玩家的事件日志中,如可以存储在游戏服务器,玩家设备或其他这样的位置上。可以出于任何适当的原因或用法(如本文讨论和建议的那样)将此数据提供给任何授权方。
图7示出了用于检测事件的示例过程700,诸如关于图6所讨论的,在视频流上接收到视频数据的情况下。在可以根据各种实施例使用的该示例中,可以在对应于游戏玩家的游戏性会话的视频流上接收702视频数据帧。可以在框架内确定704游戏特定事件区域。在至少一些实施例中,该区域可以由游戏专用的配置文件指定,如可以对应于HUD或其他这样的显示器的位置。可以执行706事件区域的预处理以至少去除背景像素数据。这可以包括例如执行放大并改变为确定的颜色空间,执行噪声去除,然后进行阈值去除背景噪声。如所提及的,这样的预处理可以导致图像基本上被二值化,这可以至少在文本检测方面提高OCR引擎的性能。可以使用由游戏特定配置文件指定的检测器,在处理区域上执行708游戏特定角色、图标和/或对象检测,以生成事件提示。可以例如通过使用各种试探法来确定710这些提示是否对应于特定游戏的感兴趣事件或指定类型的事件。如果确定712检测到这样的事件,则可以将该事件的事件数据写入714到事件日志或其他这样的位置,并且可用于访问和使用。如果没有检测到事件,则事件数据以及来自处理的相关数据可以被丢弃716。
推理和训练逻辑
图8示出了用于执行与至少一个实施例相关联的推理和/或训练操作的推理和/或训练逻辑815。下面结合图8和图9提供关于推理和/或训练逻辑815的细节。
在至少一个实施例中,推理和/或训练逻辑815可以包括但不限于代码和/或数据存储801,以存储配置为在一个或更多个实施例的方面中被训练为和/或用于推理的神经网络的神经元或层的前向和/或输出权重和/或输入/输出数据和/或其他参数。在至少一个实施例中,训练逻辑815可以包括或耦合到代码和/或数据存储801以存储图形代码或其他软件以控制定时和/或顺序,其中权重和/或其他参数信息将被加载以配置包括整数和/或浮点单元(统称为算术逻辑单元(ALU))的逻辑。在至少一个实施例中,诸如图形代码之类的代码基于此代码所对应的神经网络的架构,将权重或其他参数信息加载到处理器ALU中。在至少一个实施例中,代码和/或数据存储801在使用一个或更多个实施例的方面训练和/或推理期间的输入/输出数据和/或权重参数的前向传播期间,存储结合一个或更多个实施例训练或使用的神经网络的每个层的权重参数和/或输入/输出数据。在至少一个实施例中,代码和/或数据存储801的任何部分都可以包括在其他片上或片外数据存储内,包括处理器的L1、L2或L3高速缓存或系统存储器。
在至少一个实施例中,代码和/或数据存储801的任何部分可以在一个或更多个处理器或其他硬件逻辑设备或电路的内部或外部。在至少一个实施例中,代码和/或数据存储801可以是高速缓存存储器、动态随机可寻址存储器(“DRAM”)、静态随机可寻址存储器(“SRAM”)、非易失性存储器(例如,闪存)或其他存储。在至少一个实施例中,对代码和或代码和/或数据存储801是在处理器的内部还是外部的选择,例如,或者由DRAM、SRAM、闪存或某种其他存储类型组成,可以取决于存储片上或片外的可用存储空间,正在执行训练和/或推理功能的延迟要求,在神经网络的推理和/或训练中使用的数据批量大小或这些因素的某种组合。
在至少一个实施例中,推理和/或训练逻辑815可以包括但不限于代码和/或数据存储805,以存储在一个或更多个实施例的方面中训练和/或用于推理的神经网络的神经元或层相对应的向后和/或输出权重和/或输入/输出数据。在至少一个实施例中,代码和/或数据存储805在使用一个或更多个实施例的各方面训练和/或推理期间的输入/输出数据和/或权重参数的向后传播期间,存储结合一个或更多个实施例训练或使用的神经网络的每一层的权重参数和/或输入/输出数据。在至少一个实施例中,训练逻辑815可以包括或耦合到代码和/或数据存储805以存储图形代码或其他软件以控制定时和/或顺序,其中权重和/或其他参数信息将被加载以配置包括整数和/或浮点单元(统称为算术逻辑单元(ALU))的逻辑。在至少一个实施例中,诸如图形代码之类的代码基于此代码所对应的神经网络的架构,将权重或其他参数信息加载到处理器ALU中。在至少一个实施例中,代码和/或数据存储805的任何部分都可以包括在其他片上或片外数据存储内,包括处理器的L1、L2或L3高速缓存或系统存储器。在至少一个实施例中,代码和/或数据存储805的任何部分可以在一个或更多个处理器或其他硬件逻辑设备或电路的内部或外部。在至少一个实施例中,代码和/或数据存储805可以是高速缓存存储器、DRAM、SRAM、非易失性存储器(例如,闪存)或其他存储。在至少一个实施例中,对代码和/或数据存储805是在处理器的内部还是外部的选择,例如,或者由DRAM、SRAM、闪存或某种其他存储类型组成,可以取决于存储片上或片外的可用存储空间,正在执行训练和/或推理功能的延迟要求,在神经网络的推理和/或训练中使用的数据批量大小或这些因素的某种组合。
在至少一个实施例中,代码和/或数据存储801和/或代码和/或数据存储805可以是分开的存储结构。在至少一个实施例中,代码和/或数据存储801和/或代码和/或数据存储805可以是相同的存储结构。在至少一个实施例中,代码和/或数据存储801和/或代码和/或数据存储805可以是部分相同的存储结构和部分分离的存储结构。在至少一个实施例中,代码和/或数据存储801和/或代码和/或数据存储805的任何部分可以与其他片上或片外数据存储包括在一起,包括处理器的L1、L2或L3高速缓存或系统存储器。
在至少一个实施例中,推理和/或训练逻辑815可以包括但不限于一个或更多个算术逻辑单元(“ALU”)910,包括整数和/或浮点单元,用于至少部分地基于训练和/或推理代码(例如,图形代码)或由其指示来执行逻辑和/或数学运算,其结果可能会产生(例如,来自神经网络内部的层或神经元的输出值)存储在激活存储920中的激活,其是存储在代码和/或数据存储901和/或代码和/或数据存储905中的输入/输出和/或权重参数数据的函数。在至少一个实施例中,激活响应于执行指令或其他代码,由一个或更多个ALU 910执行的线性代数和/或基于矩阵的数学生成在激活存储920中存储的激活,其中存储在代码和/或数据存储905中和/或代码和/或数据存储901中的权重值用作具有其他值的操作数,例如偏置值、梯度信息、动量值或其他参数或超参数,可以将任何或所有这些存储在代码和/或数据存储905和/或代码和/或数据存储901或其他片上或片外存储中。
在至少一个实施例中,一个或更多个处理器或其他硬件逻辑设备或电路中包括一个或更多个ALU,而在另一实施例中,一个或更多个ALU可以在处理器或其他硬件逻辑设备或使用它们(例如,协处理器)的电路外。在至少一个实施例中,可以将一个或更多个ALU包括在处理器的执行单元之内,或者以其他方式包括在由处理器的执行单元可访问的ALU组中,该处理器的执行单元可以在同一处理器内或者分布在不同类型的不同处理器之间(例如,中央处理单元、图形处理单元、固定功能单元等)。在至少一个实施例中,代码和/或数据存储901、代码和/或数据存储905以及激活存储920可以在同一处理器或其他硬件逻辑设备或电路上,而在另一实施例中,它们可以在不同的处理器或其他硬件逻辑设备或电路或相同和不同处理器或其他硬件逻辑设备或电路的某种组合中。在至少一个实施例中,激活存储920的任何部分可以与其他片上或片外数据存储包括在一起,包括处理器的L1、L2或L3高速缓存或系统存储器。此外,推理和/或训练代码可以与处理器或其他硬件逻辑或电路可访问的其他代码一起存储,并可以使用处理器的提取、解码、调度、执行、退出和/或其他逻辑电路来提取和/或处理。
在至少一个实施例中,激活存储920可以是高速缓存存储器、DRAM、SRAM、非易失性存储器(例如,闪存)或其他存储。在至少一个实施例中,激活存储920可以完全地或部分地在一个或更多个处理器或其他逻辑电路内部或外部。在至少一个实施例中,可以取决于片上或片外可用的存储,进行训练和/或推理功能的延迟要求,在推理和/或训练神经网络中使用的数据的批量大小或这些因素的某种组合,选择激活存储920是处理器的内部还是外部,例如,或者包含DRAM、SRAM、闪存或其他存储类型。在至少一个实施例中,图9中所示的推理和/或训练逻辑815可以与专用集成电路(“ASIC”)结合使用,例如来自Google的
Figure BDA0002749377280000183
处理单元、来自GraphcoreTM的推理处理单元(IPU)或来自Intel Corp的
Figure BDA0002749377280000184
(例如,“Lake Crest”)处理器。在至少一个实施例中,图9所示的推理和/或训练逻辑815可与中央处理单元(“CPU”)硬件,图形处理单元(“GPU”)硬件或其他硬件(例如,现场可编程门阵列(“FPGA”))结合使用。
图9示出了根据至少一个或更多个实施例的推理和/或训练逻辑915。在至少一个实施例中,推理和/或训练逻辑915可以包括但不限于硬件逻辑,其中计算资源被专用或以其他方式唯一地连同对应于神经网络内的一层或更多层神经元的权重值或其他信息一起使用。在至少一个实施例中,图9中所示的推理和/或训练逻辑915可以与专用集成电路(ASIC)结合使用,例如来自Google的
Figure BDA0002749377280000181
处理单元,来自GraphcoreTM的推理处理单元(IPU)或来自Intel Corp的
Figure BDA0002749377280000182
(例如,“Lake Crest”)处理器。在至少一个实施例中,图9中所示的推理和/或训练逻辑915可以与中央处理单元(CPU)硬件、图形处理单元(GPU)硬件或其他硬件(例如,现场可编程门阵列(FPGA))结合使用。在至少一个实施例中,推理和/或训练逻辑915包括但不限于代码和/或数据存储901以及代码和/或数据存储905,其可以用于存储代码(例如,图形代码),权重值和/或其他信息,包括偏置值、梯度信息、动量值和/或其他参数或超参数信息。在图9中所示的至少一个实施例中,代码和/或数据存储901以及代码和/或数据存储905中的每一个都分别与专用计算资源(例如,计算硬件902和计算硬件906)相关联。在至少一个实施例中,计算硬件902和计算硬件906中的每一个包括一个或更多个ALU,这些ALU仅分别对存储在代码和/或数据存储901和代码和/或数据存储905中的信息执行数学函数(例如,线性代数函数),执行函数的结果被存储在激活存储920中。
在至少一个实施例中,代码和/或数据存储901和905以及相应的计算硬件902和906中的每一个分别对应于神经网络的不同层,使得从代码和/或数据存储901和计算硬件902的一个“存储/计算对901/902”得到的激活提供作为代码和/或数据存储905和计算硬件906的“存储/计算对905/906”的输入,以便反映神经网络的概念组织。在至少一个实施例中,每个存储/计算对901/902和905/906可以对应于一个以上的神经网络层。在至少一个实施例中,在推理和/或训练逻辑915中可以包括在存储计算对901/902和905/906之后或与之并行的附加存储/计算对(未示出)。
诸如关于图9所讨论的推理和训练逻辑可用于训练一个或更多个神经网络以分析媒体流或视频数据文件,这可对应于游戏数据。可以在所描述的硬件结构915上运行的这些神经网络可以用于推断以检测对象或发生,以及基于这些检测到的对象或发生的数据来推断事件的类型。可以针对不同的游戏、游戏类型、视频内容类型或事件类型等训练不同的神经网络或机器学习模型。
数据中心
图10示出了示例数据中心1000,其中可以使用至少一个实施例。在至少一个实施例中,数据中心1000包括数据中心基础设施层1010、框架层1020、软件层1030和应用层1040。
在至少一个实施例中,如图10所示,数据中心基础设施层1010可以包括资源协调器1012、分组的计算资源1014和节点计算资源(“节点C.R.”)1016(1)-1016(N),其中“N”代表任何完整的正整数。在至少一个实施例中,节点C.R.1016(1)-1016(N)可以包括但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括加速器、现场可编程门阵列(FPGA)、图形处理器等),存储器设备(例如动态只读存储器),存储设备(例如固态硬盘或磁盘驱动器),网络输入/输出(“NW I/O”)设备,网络交换机,虚拟机(“VM”),电源模块和冷却模块等。在至少一个实施例中,节点C.R.1016(1)-1016(N)中的一个或更多个节点C.R.可以是具有一个或更多个上述计算资源的服务器。
在至少一个实施例中,分组的计算资源1014可以包括容纳在一个或更多个机架内的节点C.R.的单独分组(未示出),或者容纳在各个地理位置的数据中心内的许多机架(也未示出)。分组的计算资源1014内的节点C.R.的单独分组可以包括可以被配置或分配为支持一个或更多个工作负载的分组的计算、网络、存储器或存储资源。在至少一个实施例中,可以将包括CPU或处理器的几个节点C.R.分组在一个或更多个机架内,以提供计算资源来支持一个或更多个工作负载。在至少一个实施例中,一个或更多个机架还可以包括任何数量的电源模块、冷却模块和网络交换机,以任意组合。
在至少一个实施例中,资源协调器1012可以配置或以其他方式控制一个或更多个节点C.R.1016(1)-1016(N)和/或分组的计算资源1014。在至少一个实施例中,资源协调器1012可以包括用于数据中心1000的软件设计基础结构(“SDI”)管理实体。在至少一个实施例中,资源协调器可以包括硬件、软件或其某种组合。
在至少一个实施例中,如图10所示,框架层1020包括作业调度器1022、配置管理器1024、资源管理器1026和分布式文件系统1028。在至少一个实施例中,框架层1020可以包括支持软件层1030的软件1032和/或应用程序层1040的一个或更多个应用程序1042的框架。在至少一个实施例中,软件1032或应用程序1042可以分别包括基于Web的服务软件或应用程序,例如由Amazon Web Services,Google Cloud和Microsoft Azure提供的服务或应用程序。在至少一个实施例中,框架层1020可以是但不限于一种免费和开放源软件网络应用框架,例如可以利用分布式文件系统1028来进行大范围数据处理(例如“大数据”)的ApacheSparkTM(以下称为“Spark”)。在至少一个实施例中,作业调度器1022可以包括Spark驱动器,以促进对数据中心1000的各个层所支持的工作负载进行调度。在至少一个实施例中,配置管理器1024可以能够配置不同的层,例如软件层1030和包括Spark和用于支持大规模数据处理的分布式文件系统1028的框架层1020。在至少一个实施例中,资源管理器1026能够管理映射到或分配用于支持分布式文件系统1028和作业调度器1022的集群或分组计算资源。在至少一个实施例中,集群或分组计算资源可以包括数据中心基础设施层1010上的分组的计算资源1014。在至少一个实施例中,资源管理器1026可以与资源协调器1012协调以管理这些映射的或分配的计算资源。
在至少一个实施例中,包括在软件层1030中的软件1032可以包括由节点C.R.1016(1)-1016(N)的至少一部分,分组计算资源1014和/或框架层1020的分布式文件系统1028使用的软件。一种或更多种类型的软件可以包括但不限于Internet网页搜索软件、电子邮件病毒扫描软件、数据库软件和流视频内容软件。
在至少一个实施例中,应用层1040中包括的一个或更多个应用程序1042可以包括由节点C.R.1016(1)-1016(N)的至少一部分、分组的计算资源1014和/或框架层1020的分布式文件系统1028使用的一种或更多种类型的应用程序。一种或更多种类型的应用程序可以包括但不限于任何数量的基因组学应用程序,认知计算和机器学习应用程序,包括训练或推理软件,机器学习框架软件(例如,PyTorch、TensorFlow、Caffe等)或其他与一个或更多个实施例结合使用的机器学习应用程序。
在至少一个实施例中,配置管理器1024、资源管理器1026和资源协调器1012中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实现任何数量和类型的自我修改动作。在至少一个实施例中,自我修改动作可以减轻数据中心1000的数据中心操作员做出可能不好的配置决定并且可以避免数据中心的未充分利用和/或执行差的部分。
在至少一个实施例中,数据中心1000可以包括工具、服务、软件或其他资源,以根据本文所述的一个或更多个实施例来训练一个或更多个机器学习模型或者使用一个或更多个机器学习模型来预测或推理信息。例如,在至少一个实施例中,可以通过使用上文关于数据中心1000描述的软件和计算资源,根据神经网络架构通过计算权重参数来训练机器学习模型。在至少一个实施例中,通过使用通过本文所述的一种或更多种训练技术计算出的权重参数,可以使用上面与关于数据中心1000所描述的资源,使用对应于一个或更多个神经网络的经训练的机器学习模型来推理或预测信息。
在至少一个实施例中,数据中心可以使用CPU、专用集成电路(ASIC)、GPU、FPGA或其他硬件来使用上述资源来执行训练和/或推理。此外,上述的一个或更多个软件和/或硬件资源可以配置成一种服务,以允许用户训练或执行信息推理,例如图像识别、语音识别或其他人工智能服务。
推理和/或训练逻辑815用于执行与一个或更多个实施例相关联的推理和/或训练操作。下面结合图9和/或图10提供关于推理和/或训练逻辑815的细节。在至少一个实施例中,推理和/或训练逻辑815可以在系统图10中使用,至少部分地基于使用神经网络训练操作、神经网络功能和/或架构或本文所述的神经网络用例计算出的权重参数来推理或预测操作。诸如图10中所示的数据中心1000可以用于执行远离在其上生成或分析视频或在其上玩游戏的设备的此处讨论的处理和/或存储中的至少一些。在至少一些实施例中,这样的数据中心还可以包括托管这些游戏或其他相关应用的服务器。
计算机系统
图11是示出根据至少一个实施例示例性计算机系统的框图,该示例性计算机系统可以是具有互连的设备和组件的系统,片上系统(SOC)或它们的某种形成有处理器的组合1100,该处理器可以包括执行单元以执行指令。在至少一个实施例中,根据本公开,例如本文所述的实施例,计算机系统1100可以包括但不限于组件,例如处理器1102,其执行单元包括逻辑以执行用于过程数据的算法。在至少一个实施例中,计算机系统1100可以包括处理器,例如可从加利福尼亚圣塔克拉拉的英特尔公司(Intel Corporation of Santa Clara,California)获得的
Figure BDA0002749377280000221
处理器家族、XeonTM
Figure BDA0002749377280000222
XScaleTM和/或StrongARMTM
Figure BDA0002749377280000223
CoreTM
Figure BDA0002749377280000224
Figure BDA0002749377280000225
NervanaTM微处理器,尽管也可以使用其他系统(包括具有其他微处理器的PC、工程工作站、机顶盒等)。在至少一个实施例中,计算机系统1100可以执行可从华盛顿州雷蒙德市的微软公司(Microsoft Corporation of Redmond,Wash.)获得的WINDOWS操作系统版本,尽管其他操作系统(例如UNIX和Linux)、嵌入式软件和/或图形用户界面也可以使用。
实施例可以用在其他设备中,例如手持设备和嵌入式应用。手持设备的一些示例包括蜂窝电话、互联网协议(Internet Protocol)设备、数码相机、个人数字助理(“PDA”)和手持PC。在至少一个实施例中,嵌入式应用可以包括微控制器、数字信号处理器(“DSP”)、片上系统、网络计算机(“NetPC”)、机顶盒、网络集线器、广域网(“WAN”)交换机,或根据至少一个实施例可以执行一个或更多个指令的任何其他系统。
在至少一个实施例中,计算机系统1100可包括但不限于处理器1102,该处理器1102可包括但不限于一个或更多个执行单元1108,以根据本文描述的技术执行机器学习模型训练和/或推理。在至少一个实施例中,计算机系统1100是单处理器台式机或服务器系统,但是在另一实施例中,计算机系统1100可以是多处理器系统。在至少一个实施例中,处理器1102可以包括但不限于复杂指令集计算机(“CISC”)微处理器、精简指令集计算(“RISC”)微处理器、超长指令字(“VLIW”)微处理器、实现指令集组合的处理器,或任何其他处理器设备,例如数字信号处理器。在至少一个实施例中,处理器1102可以耦合到处理器总线1110,该处理器总线1110可以在处理器1102与计算机系统1100中的其他组件之间传输数据信号。
在至少一个实施例中,处理器1102可以包括但不限于1级(“L1”)内部高速缓存存储器(“cache”)1104。在至少一个实施例中,处理器1102可以具有单个内部高速缓存或多级内部缓存。在至少一个实施例中,高速缓存存储器可以驻留在处理器1102的外部。根据特定的实现和需求,其他实施例也可以包括内部和外部高速缓存的组合。在至少一个实施例中,寄存器文件1106可以在各种寄存器中存储不同类型的数据,包括但不限于整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器。
在至少一个实施例中,包括但不限于执行整数和浮点运算的逻辑的执行单元1108,其也位于处理器1102中。在至少一个实施例中,处理器1102还可以包括微码(“ucode”)只读存储器(“ROM”),用于存储某些宏指令的微代码。在至少一个实施例中,执行单元1108可以包括用于处理封装指令集1109的逻辑。在至少一个实施例中,通过将封装指令集1109包括在通用处理器1102的指令集中,以及要执行指令的相关电路,可以使用通用处理器1102中的封装数据来执行许多多媒体应用程序使用的操作。在一个或更多个实施例中,可以通过使用处理器的数据总线的全宽度来在封装的数据上执行操作来加速和更有效地执行许多多媒体应用程序,这可能不需要在处理器的数据总线上传输较小的数据单元来一次执行一个数据元素的一个或更多个操作。
在至少一个实施例中,执行单元1108也可以用在微控制器、嵌入式处理器、图形设备、DSP和其他类型的逻辑电路中。在至少一个实施例中,计算机系统1100可以包括但不限于存储器1120。在至少一个实施例中,存储器1120可以被实现为动态随机存取存储器(“DRAM”)设备、静态随机存取存储器(“SRAM”)设备、闪存设备或其他存储设备。在至少一个实施例中,存储器1120可以存储由处理器1102可以执行的由数据信号表示的指令1119和/或数据1121。
在至少一个实施例中,系统逻辑芯片可以耦合到处理器总线1110和存储器1120。在至少一个实施例中,系统逻辑芯片可以包括但不限于存储器控制器集线器(“MCH”)1116,并且处理器1102可以经由处理器总线1110与MCH 1116通信。在至少一个实施例中,MCH1116可以提供到存储器1120的高带宽存储器路径1118以用于指令和数据存储以及用于图形命令、数据和纹理的存储。在至少一个实施例中,MCH 1116可以在处理器1102、存储器1120和计算机系统1100中的其他组件之间启动数据信号,并且在处理器总线1110、存储器1120和系统I/O 1122之间桥接数据信号。在至少一个实施例中,系统逻辑芯片可以提供用于耦合到图形控制器的图形端口。在至少一个实施例中,MCH 1116可以通过高带宽存储器路径1118耦合到存储器1120,并且图形/视频卡1112可以通过加速图形端口(AcceleratedGraphics Port)(“AGP”)互连1111耦合到MCH 1116。
在至少一个实施例中,计算机系统1100可以使用系统I/O 1122作为专有集线器接口总线来将MCH 1116耦合到I/O控制器集线器(“ICH”)1130。在至少一个实施例中,ICH1130可以通过本地I/O总线提供与某些I/O设备的直接连接。在至少一个实施例中,本地I/O总线可以包括但不限于用于将外围设备连接到存储器1120、芯片组和处理器1102的高速I/O总线。示例可以包括但不限于音频控制器1129、固件集线器(“Flash BIOS”)1128、无线收发器1126、数据存储1124、包含用户输入的传统I/O控制器1123和键盘接口、串行扩展端口1127(例如通用串行总线(USB))和网络控制器1134。数据存储1124可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备或其他大容量存储设备。
在至少一个实施例中,图11示出了包括互连的硬件设备或“芯片”的系统,而在其他实施例中,图11可以示出示例性片上系统(“SoC”)。在至少一个实施例中,图11中示出的设备可以与专有互连、标准化互连(例如,PCIe)或其某种组合互连。在至少一个实施例中,计算系统1100的一个或更多个组件使用计算快速链路(CXL)互连来互连。
推理和/或训练逻辑815用于执行与一个或更多个实施例相关的推理和/或训练操作。下面结合图9和/或图10提供关于推理和/或训练逻辑815的细节。在至少一个实施例中,推理和/或训练逻辑815可以在图11的系统中使用,用于至少部分地基于使用神经网络训练操作、神经网络功能和/或架构或本文所述的神经网络用例计算的权重参数来推理或预测操作。
图12是示出根据至少一个实施例的用于利用处理器1210的电子设备1200的框图。在至少一个实施例中,电子设备1200可以是,例如但不限于,笔记本电脑、塔式服务器、机架服务器、刀片服务器、膝上型计算机、台式机、平板电脑、移动设备、电话、嵌入式计算机或任何其他合适的电子设备。
在至少一个实施例中,系统1200可以包括但不限于通信地耦合到任何合适数量或种类的组件、外围设备、模块或设备的处理器1210。在至少一个实施例中,处理器1210使用总线或接口耦合,诸如1℃总线、系统管理总线(“SMBus”)、低引脚数(LPC)总线、串行外围接口(“SPI”)、高清音频(“HDA”)总线、串行高级技术附件(“SATA”)总线、通用串行总线(“USB”)(1版、2版、3版)或通用异步接收器/发送器(“UART”)总线。在至少一个实施例中,图12示出了系统,该系统包括互连的硬件设备或“芯片”,而在其他实施例中,图12可以示出示例性片上系统(“SoC”)。在至少一个实施例中,图12中所示的设备可以与专有互连线、标准化互连(例如,PCIe)或其某种组合互连。在至少一个实施例中,图12的一个或更多个组件使用计算快速链路(CXL)互连线来互连。
在至少一个实施例中,图12可以包括显示器1224、触摸屏1225、触摸板1230、近场通信单元(“NFC”)1245、传感器集线器1240、热传感器1246、快速芯片组(“EC”)1235、可信平台模块(“TPM”)1238、BIOS/固件/闪存(“BIOS,FW Flash”)1222、DSP1260、驱动器1220(例如,固态磁盘(“SSD”)或硬盘驱动器(“HDD”))、无线局域网单元(“WLAN”)1250、蓝牙单元1252、无线广域网单元(“WWAN”)1256、全球定位系统(GPS)1255、相机(“USB 3.0相机”)1254(例如,USB 3.0相机)和/或以例如LPDDR3标准实现的低功耗双倍数据速率(“LPDDR”)存储器单元(“LPDDR3”)1215。这些组件可以各自以任何合适的方式实现。
在至少一个实施例中,其他组件可以通过以上讨论的组件通信地耦合到处理器1210。在至少一个实施例中,加速度计1241、环境光传感器(“ALS”)1242、罗盘1243和陀螺仪1244可以可通信地耦合到传感器集线器1240。在至少一个实施例中,热传感器1239、风扇1237、键盘1246和触摸板1230可以通信地耦合到EC 1235。在至少一个实施例中,扬声器1263、耳机1264和麦克风(“mic”)1265可以通信地耦合到音频单元(“音频编解码器和D类放大器”)1262,其又可以通信地耦合到DSP 1260。在至少一个实施例中,音频单元1264可以包括例如但不限于音频编码器/解码器(“编解码器”)和D类放大器。在至少一个实施例中,SIM卡(“SIM”)1257可以通信地耦合到WWAN单元1256。在至少一个实施例中,组件(诸如WLAN单元1250和蓝牙单元1252以及WWAN单元1256)可以被实现为下一代形式因素(NGFF)。
推理和/或训练逻辑815用于执行与一个或更多个实施例相关联的推理和/或训练操作。下面结合图9和/或图10提供关于推理和/或训练逻辑815的细节。在至少一个实施例中,推理和/或训练逻辑815可以在系统图12中使用,用于至少部分地基于使用神经网络训练操作、神经网络功能和/或架构或本文所述的神经网络用例计算的权重参数来推理或预测操作。
图13示出了根据至少一个实施例的计算机系统1300。在至少一个实施例中,计算机系统1300配置为实现贯穿本公开描述的各种过程和方法。
在至少一个实施例中,计算机系统1300包括但不限于至少一个中央处理单元(“CPU”)1302,该中央处理单元(“CPU”)1302连接到使用任何合适协议实现的通信总线1310,诸如PCI(“外围设备互联”)、外围组件互连Express(“PCI-Express”)、AGP(“加速图形端口”)、超传输或任何其他总线或点对点通信协议。在至少一个实施例中,计算机系统1300包括但不限于主存储器1304和控制逻辑(例如,实现为硬件、软件或其组合),并且数据可以采取随机存取存储器(“RAM”)的形式存储在主存储器1304中。在至少一个实施例中,网络接口子系统(“网络接口”)1322提供到其他计算设备和网络的接口,用于从计算机系统1300接收数据并将数据传输到其他系统。
在至少一个实施例中,计算机系统1300在至少一个实施例中包括但不限于输入设备1308、并行处理系统1312和显示设备1306,它们可以使用常规的阴极视线管(“CRT”)、液晶显示器(“LCD”)、发光二极管(“LED”)、等离子显示器或其他合适的显示技术实现。在至少一个实施例中,从输入设备1308(诸如键盘、鼠标、触摸板、麦克风等)接收用户输入。在至少一个实施例中,前述模块中的每一个可以位于单个半导体平台上以形成处理系统。
推理和/或训练逻辑815用于执行与一个或更多个实施例相关联的推理和/或训练操作。下面结合图9和/或图10提供关于推理和/或训练逻辑815的细节。在至少一个实施例中,推理和/或训练逻辑815可以在系统图13中使用,以至少部分地基于使用神经网络训练操作、神经网络功能和/或架构或本文所述的神经网络用例计算出的权重参数来进行推理或预测操作。
图14示出了示例性架构,其中多个GPU 1410-1413通过高速链路1440-1443(例如,总线、点对点互连等)可通信地耦合到多个多核处理器1405-1406。在一个实施例中,高速链路1440-1443支持4GB/s,30GB/s,80GB/s或更高的通信吞吐量。可以使用各种互连协议,包括但不限于PCIe4.0或5.0和NVLink 2.0。
此外,在一个实施例中,两个或更多个GPU 1410-1413在高速链路1429-1430上互连,该高速链路可以使用与那些用于高速链路1440-1443的协议/链路相同或不同的协议/链路来实现。类似地,两个或更多个多核处理器1405-1406可以通过高速链路1428连接,该高速链路可以是以20GB/s,30GB/s,120GB/s或更高的速度运行的对称多处理器(SMP)总线。可替代地,图14中所示的各种系统组件之间的所有通信都可以使用相同的协议/链路(例如,通过共同的互连结构)来实现。
在一个实施例中,每个多核处理器1405-1406分别经由存储器互连1426-1427通信地耦合至处理器存储器1401-1402,并且每个GPU1410-1413分别经由GPU存储器互连1450-1453通信地耦合至GPU存储器1420-1423。存储器互连1426-1427和1450-1453可以利用相同或不同的存储器访问技术。作为示例而非限制,处理器存储器1401-1402和GPU存储器1420-1423可以是易失性存储器,诸如动态随机存取存储器(DRAM)(包括堆叠的DRAM),图形DDRSDRAM(GDDR)(例如,GDDR5,GDDR6)或高带宽存储器(HBM)和/或可以是非易失性存储器,例如3D XPoint或Nano-Ram。在一个实施例中,处理器存储器1401-1402的某些部分可以是易失性存储器,而另一部分可以是非易失性存储器(例如,使用两级存储器(2LM)层次结构)。
如下所述,尽管各种处理器1405-1406和GPU 1410-1413可以分别物理耦合到特定的存储器1401-1402、1420-1423,但是可以实现统一的存储器体系结构,其中相同的虚拟系统地址空间(也称为“有效地址”空间)分布在各种物理存储器之间。例如,处理器存储器1401-1402每个可以包括64GB的系统存储器地址空间,而GPU存储器1420-1423每个可以包括32GB的系统存储器地址空间(在此示例中总共为256GB可寻址存储器)。
图14示出了根据一个示例性实施例的用于多核处理器1407和图形加速模块1446之间的互连的附加细节。图形加速模块1446可以包括集成在通过高速链路1440耦合到处理器1407的线卡上的一个或更多个GPU芯片。可替代地,图形加速模块1446可以集成在与处理器1407相同的封装或芯片上。
在至少一个实施例中,所示的处理器1407包括多个核心1460A-1460D,每个核心具有转换后备缓冲器1461A-1461D和一个或更多个高速缓存1462A-1462D。在至少一个实施例中,核心1460A-1460D可以包括用于执行未示出的指令和处理数据的各种其他组件。高速缓存1462A-1462D可以包括级别1(L1)和级别2(L2)高速缓存。另外,一个或更多个共享高速缓存1456可以被包括在高速缓存1462A-1462D中并且由一组核心1460A-1460D共享。例如,处理器1407的一个实施例包括24个核心,每个核心具有其自己的L1高速缓存,十二个共享的L2高速缓存和十二个共享的L3高速缓存。在该实施例中,两个相邻核心共享一个或更多个L2和L3高速缓存。处理器1407和图形加速模块1446与系统存储器1414连接,系统存储器1414可以包括图14的处理器存储器1401-1402。
如图15所示,通过经由一致性总线1564的内核间通信,对于存储在各种高速缓存1562A-1562D、1556和系统存储器1514中的数据和指令保持一致性。例如,每个高速缓存可以具有与其相关联的高速缓存一致性逻辑/电路,以响应于检测到的对特定高速缓存线的读取或写入而通过一致性总线1564进行通信。在一种实施方式中,通过一致性总线1564实现高速缓存监听协议以监听高速缓存访问。
在一个实施例中,代理电路1525将图形加速模块1546通信地耦合到一致性总线1564,从而允许图形加速模块1546作为核心1560A-1560D的对等方参与高速缓存一致性协议。特别地,接口1535通过高速链路1540(例如,PCIe总线,NVLink等)提供到代理电路1525的连通性,并且接口1537将图形加速模块1546连接到链路1540。
在一种实现中,加速器集成电路1536代表图形加速模块1546的图形处理引擎1531、1532、N提供高速缓存管理,存储器访问,上下文管理和中断管理服务。图形处理引擎1531,1532、N可以各自包括单独的图形处理单元(GPU)。可选地,图形处理引擎1531、1532、N可包括GPU内的不同类型的图形处理引擎,诸如图形执行单元,媒体处理引擎(例如,视频编码器/解码器),采样器和双轨引擎。在至少一个实施例中,图形加速模块1546可以是具有多个图形处理引擎1531-1532、N的GPU或者图形处理引擎1531-1532、N可以是集成在通用封装,线卡或芯片上的个体GPU。
在一个实施例中,加速器集成电路1536包括存储器管理单元(MMU)1539,用于执行各种存储器管理功能,例如虚拟到物理存储器转换(也称为有效到实际存储器转换)和用于访问系统存储器1514的存储器访问协议。MMU 1539还可包括转换后备缓冲器(TLB)(未示出),用于将虚拟/有效地址高速缓存为物理/实际地址转换。在一种实现中,高速缓存1538存储命令和数据,以供图形处理引擎1531-1532、N有效访问。在一个实施例中,存储在高速缓存1538和图形存储器1533-1534、M中的数据与核心高速缓存1562A-1562D、1556和系统存储器1514保持一致。如上所述,这可以经由代理电路1525代表高速缓存1538和存储器1533-1534、M(例如,将与处理器高速缓存1562A-1562D、1556上的高速缓存行的修改/访问有关的更新发送给高速缓存1538,并从高速缓存1538接收更新)来实现。
图15中的一组寄存器1545存储由图形处理引擎1531-1532、N执行的线程的上下文数据,并且上下文管理电路1548管理线程上下文。例如,上下文管理电路1548可以执行保存和还原操作以在上下文切换期间保存和还原各个线程的上下文(例如,其中保存第一线程并且存储第二线程,使得第二线程可以由图形处理引擎执行)。例如,在上下文切换器上,上下文管理电路1548可以将当前寄存器值存储到存储器中的指定区域(例如,由上下文指针标识)。然后,当返回上下文时,它可以恢复寄存器值。在一个实施例中,中断管理电路1547接收并处理从系统设备接收的中断。
在一种实现中,通过MMU 1539将来自图形处理引擎1531的虚拟/有效地址转换为系统存储器1514中的实际/物理地址。加速器集成电路1536的一个实施例支持多个(例如,4个、8个、16个)图形加速器模块1546和/或其他加速器设备。图形加速器模块1546可以专用于在处理器1507上执行的单个应用程序,或者可以在多个应用程序之间共享。在一个实施例中,提出了一种虚拟化的图形执行环境,其中图形处理引擎1531-1532、N的资源与多个应用程序或虚拟机(VM)共享。在至少一个实施例中,可以基于与虚拟机和/或应用程序相关联的处理要求和优先级,将资源细分为“切片(slice)”,将其分配给不同的虚拟机和/或应用程序。
在至少一个实施例中,加速器集成电路1536充当用于图形加速模块1546的系统的桥梁,并提供地址转换和系统存储器高速缓存服务。另外,加速器集成电路1536可以为主机处理器提供虚拟化设施,以管理图形处理引擎1531-1532、N,中断和存储器管理的虚拟化。
因为图形处理引擎1531-1532、N的硬件资源被明确地映射到主机处理器1507看到的实际地址空间,所以任何主机处理器都可以使用有效地址值直接寻址这些资源。在一个实施例中,加速器集成电路1536的一个功能是图形处理引擎1531-1532、N的物理分隔,使得它们在系统中表现为独立的单元。
在至少一个实施例中,一个或更多个图形存储器1533-1534、M分别耦合到图形处理引擎1531-1532、N中的每一个。图形存储器1533-1534、M存储由图形处理引擎1531-1532、N中的每一个处理的指令和数据。图形存储器1533-1534、M可以是易失性存储器,例如DRAM(包括堆叠的DRAM),GDDR存储器(例如,GDDR5,GDDR6)或HBM,和/或可以是非易失性存储器,例如3D XPoint或Nano-Ram。
在一个实施例中,为了减少链路1540上的数据业务,使用偏置技术来确保存储在图形存储器1533-1534、M中的数据是将由图形处理引擎1531-1532、N最频繁使用的数据,并且最好不要由核心1560A-1560D使用(至少不经常使用)。类似地,偏置机制试图将核心(并且最好不是图形处理引擎1531-1532、N)所需的数据保持在核心和系统存储器1514的高速缓存1562A-1562D、1556内。
在至少一个实施例中,单个半导体平台可以指唯一的单一的基于半导体的集成电路或芯片。在至少一个实施例中,可以使用具有增加的连接性的多芯片模块,其模拟芯片上的操作,并且相对于利用传统的中央处理单元(“CPU”)和总线实施方式进行了实质性的改进。在至少一个实施例中,根据用户的需求,各种模块也可以分开放置或以半导体平台的各种组合放置。
在至少一个实施例中,将以机器可读的可执行代码或计算机控制逻辑算法的形式的计算机程序存储在主存储器1404和/或辅助存储中。根据至少一个实施例,如果由一个或更多个处理器执行,则计算机程序使系统1400能够执行各种功能。在至少一个实施例中,存储器1404、存储和/或任何其他存储是计算机可读介质的可能示例。在至少一个实施例中,辅助存储可以指代任何合适的存储设备或系统,例如硬盘驱动器和/或可移除存储驱动器,代表软盘驱动器、磁带驱动器、光盘驱动器、数字多功能盘(“DVD”)驱动器、记录设备、通用串行总线(“USB”)闪存等。在至少一个实施例中,各种先前附图的架构和/或功能是在CPU;并行处理系统;能够具有至少两个CPU的能力的至少一部分的集成电路;并行处理系统;芯片组(例如,一组设计成工作并作为执行相关功能的单元出售的集成电路等);以及集成电路的任何适当组合的环境中实现的。
在至少一个实施例中,各种先前附图的架构和/或功能在通用计算机系统、电路板系统、专用于娱乐目的的游戏控制台系统、专用系统等的环境中实现。在至少一个实施例中,计算机系统可以采取台式计算机、膝上型计算机、平板电脑、服务器、超级计算机、智能电话(例如,无线、手持设备)、个人数字助理(“PDA”)、数码相机、车辆、头戴式显示器、手持式电子设备、移动电话设备、电视、工作站、游戏机、嵌入式系统和/或任何其他类型的逻辑的形式。这样的硬件可以用于执行应用和代码以支持本文讨论的各种类型的处理、分析和存储。例如,给定的计算机系统可能执行游戏并分析游戏输出的视频以确定事件,然后将该事件数据上传到远程服务器进行分析或存储。在其他实施例中,视频数据流可以由托管涉及多个不同客户端设备的游戏的游戏服务器生成,并且该流可以由另一服务器或计算机系统进行分析以确定在游戏过程中发生的事件。在一些实施例中,该事件数据然后可以由同一服务器或另一服务器或计算机系统使用以进行处理,例如生成精彩视频或视频剪辑画面。
其他变型在本公开的精神内。因此,尽管公开的技术易于进行各种修改和替代构造,但是其某些示出的实施例在附图中示出并且已经在上面进行了详细描述。但是,应当理解,无意将公开内容限制为所公开的一种或更多种特定形式,而是相反,其意图是涵盖落入如所附权利要求书所定义的公开内容的精神和范围内的所有修改、替代构造和等同物。
除非另有说明,除非另有说明或显然与环境明显矛盾,并且不是术语的定义,否则在描述所公开的实施例的环境中(特别是在所附权利要求的环境中)对术语“一”,“一个”和“该”以及类似指代的使用应解释为涵盖单数和复数。术语“包含”,“具有”,“包括”和“内含”应解释为开放式术语(意思是“包括但不限于”)。术语“连接”在未经修改时指的是物理连接,应理解为部分或全部包含在,连接到或连接在一起的部分或全部,即使有任何介入。除非在此另外指出,否则本文中数值范围的引用仅旨在用作分别指代落入该范围内的每个单独值的速记方法,并且每个单独值都被并入说明书中,就如同其在本文中被单独叙述一样。除非环境另外指出或矛盾,否则术语“组”(例如“一组项目”)或“子集”的使用应解释为包括一个或更多个成员的非空集合。此外,除非环境另外指出或矛盾,否则相应集合的术语“子集”不一定表示相应集合的适当子集,而是子集和相应集合可以相等。
除非以其他方式明确指出或与环境明显矛盾,否则诸如“A、B和C中的至少一个”或“A、B和C的至少一个”形式的词组等联合语言在环境中理解为通常用来表示项目,术语等可以是A或B或C,也可以是A和B和C集合的任何非空子集。例如,在具有三个成员,连接短语“A、B和C中的至少一个”和“A、B和C的至少一个”是指以下任意集合:{A},{B},{C},{A,B},{A,C},{B,C},{A,B,C}。因此,这种联合语言通常不意图暗示某些实施例要求存在A中的至少一个、B中的至少一个和C中的至少一个。另外,除非另有说明或与环境矛盾,否则术语“多个”表示复数的状态(例如,“多个项目”表示多个项目)。复数是至少两个项目,但是当明确地或通过环境指示时可以是多个。此外,除非另有说明或从环境中清楚得知,否则短语“基于”是指“至少部分基于”而不是“仅基于”。
除非本文另外指出或与环境明显矛盾,否则本文描述的过程的操作可以任何合适的序列执行。在至少一个实施例中,诸如本文所述的那些过程(或其变形和/或其组合)的过程在配置有可执行指令的一个或更多个计算机系统的控制下执行,并且被实现为代码(例如,可执行指令、一个或更多个计算机程序或一个或更多个应用程序)通过硬件或其组合在一个或更多个处理器上共同执行。在至少一个实施例中,代码例如以计算机程序的形式存储在计算机可读存储介质上,该计算机程序包括可由一个或更多个处理器执行的多个指令。在至少一个实施例中,计算机可读存储介质是非暂时性计算机可读存储介质,其不包括暂时性信号(例如,传播的瞬态电或电磁传输),但包括暂时性信号的收发器中的非暂时性数据存储电路(例如,缓冲区、高速缓存和队列)。在至少一个实施例中,代码(例如,可执行代码或源代码)被存储在其上存储有可执行指令的一组一个或更多个非暂时性计算机可读存储介质(或用于存储可执行指令的其他存储器)上,当由计算机系统的一个或更多个处理器执行(即,由于被执行)而导致的计算机系统执行本文所述的操作。在至少一个实施例中,一组非暂时性计算机可读存储介质包括多个非暂时性计算机可读存储介质以及缺少所有代码的多个非暂时性计算机可读存储介质的一个或更多个单个非暂时性存储介质,而多个非暂时性计算机可读存储介质共同存储所有代码。在至少一个实施例中,执行可执行指令,使得不同的指令由不同的处理器执行,例如,非暂时性计算机可读存储介质存储指令,并且主中央处理单元(“CPU”)执行一些指令,而图形处理单元(“GPU”)执行其他指令。在至少一个实施例中,计算机系统的不同组件具有单独的处理器,并且不同的处理器执行指令的不同子集。
因此,在至少一个实施例中,计算机系统被配置为实现单独地或共同地执行本文所描述的过程的操作的一个或更多个服务,并且这样的计算机系统配置有能够实现操作的适用的硬件和/或软件。此外,实现本公开的至少一个实施例的计算机系统是单个设备,并且在另一实施例中,是一种分布式计算机系统,其包括以不同方式操作的多个设备,使得分布式计算机系统执行本文所述的操作,并且使得单个设备不执行所有操作。
本文提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地阐明本公开的实施例,并且不对公开的范围构成限制,除非另有声明。说明书中的任何语言都不应被解释为表示对于实施公开必不可少的任何未要求保护的要素。
本文引用的所有参考文献,包括出版物、专利申请和专利,均以引用的方式并入本文,如同每个参考文献被单独且具体地指出以引用的方式并入本文一样。
在描述和权利要求中,可以使用术语“耦合”和“连接”及其派生词。应当理解,这些术语可能不旨在作为彼此的同义词。相反,在特定示例中,“连接”或“耦合”可用于指示两个或更多个元件彼此直接或间接物理或电接触。“耦合”也可能意味着两个或更多个元素彼此不直接接触,但仍彼此协作或交互。
除非另外特别说明,否则可以理解,在整个说明书中,诸如“处理”、“计算”、“运算”、“确定”等,是指计算机或计算系统的动作和/或过程。或类似的电子计算设备,将计算系统的寄存器和/或存储器中表示为物理量(例如电子)的数据处理和/或转换为类似表示为计算系统的存储器、寄存器或其他此类信息存储、传输或显示设备中的物理量的其他数据。
以类似的方式,术语“处理器”可以指处理来自寄存器和/或存储器的电子数据并将该电子数据转换成可以存储在寄存器和/或存储器中的其他电子数据的任何设备或设备的一部分。作为非限制性示例,“处理器”可以是CPU或GPU。“计算平台”可以包括一个或更多个处理器。如本文所使用的,“软件”过程可以包括例如随时间执行工作的软件和/或硬件实体,诸如任务、线程和智能代理。而且,每个过程可以指代多个过程,以连续地或间歇地序列地或并行地执行指令。因为系统可以体现一种或更多种方法并且方法可以被认为是系统,术语“系统”和“方法”在本文中可互换使用。
在本文件中,可以参考获得、获取、接收或将模拟或数字数据输入子系统、计算机系统或计算机实现的机器中。可以以多种方式来完成获得、获取、接收或输入模拟和数字数据,例如通过接收作为函数调用或对应用程序接口的调用的参数的数据。在一些实施方式中,获得、获取、接收或输入模拟或数字数据的过程可以通过经由串行或并行接口传输数据来完成。在另一实施方式中,可以通过经由计算机网络将数据从提供实体传输到获取实体来完成获得、获取、接收或输入模拟或数字数据的过程。也可以参考提供、输出、传输、发送或渲染模拟或数字数据。在各种示例中,提供、输出、传输、发送或渲染模拟或数字数据的过程可以通过将数据作为函数调用的输入或输出参数,应用程序编程接口或进程间通信机制的参数进行传输来实现。
尽管上面的讨论阐述了所描述的技术的示例实现,但是其他架构可以用于实现所描述的功能,并且意图在本公开的范围内。此外,尽管出于讨论目的在上面定义了具体的责任分配,但是根据情况,可以以不同的方式分配和划分各种功能和职责。
此外,尽管已经用针对结构特征和/或方法动作的语言描述了主题,但是应该理解,所附权利要求书所要求保护的主题不必限于所描述的特定特征或动作。而是,公开了特定的特征和动作作为实现权利要求的示例性形式。

Claims (20)

1.一种计算机实现的方法,包括:
接收与游戏玩家的游戏性会话相对应的视频数据;
对所述视频数据的帧执行预处理以确定事件区域;
使用一个或更多个事件检测器分析所述事件区域的数据;
以至少最小级别的置信度确定对应于所述事件区域的事件;以及
提供与所确定的事件相对应的事件数据。
2.根据权利要求1所述的计算机实现的方法,还包括:
使用游戏特定配置文件确定所述一个或更多个事件检测器,所述事件检测器执行图像识别、模式匹配、图标识别、光学字符识别、音频识别或玩家输入分析中的至少一项。
3.根据权利要求1所述的计算机实现的方法,还包括:
使用游戏特定配置文件确定用于所述预处理的一个或更多个预处理算法,所述预处理算法执行区域选择、放大、缩小、滤波、拉伸、翘曲、透视校正、噪声去除、颜色空间变换、颜色隔离或值阈值化中的至少一项。
4.根据权利要求1所述的计算机实现的方法,还包括:
从所述一个或更多个事件检测器接收一个或更多个事件提示;以及
利用至少一个提示到事件转换算法以至少部分地基于所述一个或更多个事件提示来确定所述事件。
5.根据权利要求1所述的计算机实现的方法,还包括:
在所述游戏性会话期间或之后,以文件或流的形式接收所述视频数据。
6.根据权利要求1所述的计算机实现的方法,还包括:
将所述事件数据写入所述游戏性会话的事件日志中。
7.根据权利要求6所述的计算机实现的方法,还包括:
分析所述事件日志中的所述事件数据,以标识所述游戏性会话中与所述玩家相关联的一个或更多个事件类型的事件。
8.根据权利要求7所述的计算机实现的方法,还包括:
生成与所述事件日志中的所述事件数据相对应的游戏相关内容,所述游戏相关内容包括精彩视频、游戏剪辑、玩家指导、玩家技能确定或玩家游戏性风格分析中的至少一项。
9.根据权利要求1所述的计算机实现的方法,还包括:
分析所述游戏性会话的附加数据,所述附加数据包括所述玩家的视频数据、所述玩家的音频数据、所述玩家的生物特征数据或所述玩家的游戏输入中的至少一项。
10.一种系统,包括:
一个或更多个处理器;以及
存储器,所述存储器包括指令,当所述指令由所述一个或更多个处理器执行时,使得所述系统:
接收与游戏玩家的游戏性会话相对应的媒体;
确定所述媒体中的至少一个事件区域;
使用游戏不可知检测引擎和针对所述游戏标识的一个或更多个事件检测器分析所述至少一个事件区域的数据;
确定对应于所述至少一个事件区域的事件;以及
提供与所确定的事件相对应的事件数据。
11.根据权利要求10所述的系统,其中所述指令在被执行时还使所述系统:
使用游戏特定配置文件确定所述一个或更多个事件检测器,所述事件检测器执行图像识别、模式匹配、图标识别、光学字符识别、音频识别或玩家输入分析中的至少一项。
12.根据权利要求10所述的系统,其中所述指令在被执行时还使所述系统:
使用游戏特定配置文件确定用于所述媒体的预处理的一个或更多个预处理算法,所述预处理算法执行时间区域选择、放大、缩小、滤波、拉伸、翘曲、透视校正、噪声去除、颜色空间变换、颜色隔离或值阈值化中的至少一项。
13.根据权利要求10所述的系统,其中所述指令在被执行时进一步使所述系统:
从所述一个或更多个事件检测器接收一个或更多个事件提示;以及
利用至少一个提示到事件转换算法以至少部分地基于所述一个或更多个事件提示来确定所述事件。
14.根据权利要求10所述的系统,其中所述指令在被执行时还使所述系统:
在所述游戏性会话期间或之后,以文件或流的形式接收所述媒体。
15.根据权利要求10所述的系统,其中所述指令在被执行时进一步使所述系统:
将所述事件数据写入所述游戏性会话的事件日志中,所述事件数据是人类可读的并且是过程可读的,所述事件日志至少可访问以标识所述游戏性会话中与所述玩家相关联的一个或更多个事件类型的事件。
16.一种非暂时性机器可读介质,其上存储有一组指令,如果由一个或更多个处理器执行所述指令,使得所述一个或更多个处理器至少:
接收表示游戏的游戏性会话的媒体;
确定所述媒体中的至少一个事件区域;
使用针对所述游戏标识的一个或更多个事件检测器分析所述至少一个事件区域;
确定对应于所述至少一个事件区域的事件;以及
提供与所确定的事件相对应的事件数据。
17.根据权利要求16所述的非暂时性机器可读介质,其中所述指令如果被执行还使所述一个或更多个处理器:
使用游戏特定配置文件确定所述一个或更多个事件检测器,所述事件检测器执行图像识别、模式匹配、图标识别、光学字符识别、音频识别或玩家输入分析中的至少一项。
18.根据权利要求16所述的非暂时性机器可读介质,其中所述指令如果被执行还使所述一个或更多个处理器:
使用游戏特定配置文件确定用于所述媒体的预处理的一个或更多个预处理算法,所述预处理算法执行时间区域选择、放大、缩小、滤波、拉伸、翘曲、透视校正、噪声去除、颜色空间变换、颜色隔离或值阈值化中的至少一项。
19.根据权利要求16所述的非暂时性机器可读介质,其中所述指令如果被执行还使所述一个或更多个处理器:
从所述一个或更多个事件检测器接收一个或更多个事件提示;以及
利用至少一个提示到事件转换算法以至少部分地基于所述一个或更多个事件提示来确定所述事件。
20.根据权利要求16所述的非暂时性机器可读介质,其中所述指令如果被执行还使所述一个或更多个处理器:
将所述事件数据写入所述游戏会话的事件日志中,所述事件数据是人类可读的并且是过程可读的,所述事件日志至少可访问以标识所述游戏会话中与所述玩家相关联的一个或更多个事件类型的事件。
CN202011178346.2A 2019-10-31 2020-10-29 游戏事件识别 Pending CN112742025A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/669,939 2019-10-31
US16/669,939 US11154773B2 (en) 2019-10-31 2019-10-31 Game event recognition

Publications (1)

Publication Number Publication Date
CN112742025A true CN112742025A (zh) 2021-05-04

Family

ID=75485524

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011178346.2A Pending CN112742025A (zh) 2019-10-31 2020-10-29 游戏事件识别

Country Status (3)

Country Link
US (3) US11154773B2 (zh)
CN (1) CN112742025A (zh)
DE (1) DE102020127706A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020106650A1 (en) * 2018-11-19 2020-05-28 Nant Holdings Ip, Llc Distributed ledger tracking of event data
GB2587627B (en) * 2019-10-01 2023-05-03 Sony Interactive Entertainment Inc Apparatus and method for generating a recording
KR102545040B1 (ko) * 2020-02-28 2023-06-20 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 비디오 재생 방법, 장치, 전자 기기, 저장 매체 및 컴퓨터 프로그램 제품
US11838562B1 (en) * 2020-03-30 2023-12-05 Twitch Interactive, Inc. Activity-based streaming video replacement
US11554324B2 (en) * 2020-06-25 2023-01-17 Sony Interactive Entertainment LLC Selection of video template based on computer simulation metadata
US11369885B1 (en) 2020-08-28 2022-06-28 Electronic Arts Inc. Telemetric video processing
IL295861A (en) 2020-11-05 2022-10-01 Onmobile Global Solutions Canada Ltd Game moment application system and method of using it
US11724196B2 (en) * 2021-06-15 2023-08-15 Microsoft Technology Licensing, Llc Enhancing gaming content for previously developed gaming applications
US11826644B2 (en) * 2021-10-05 2023-11-28 Sony Interactive Entertainment Inc. Bifurcation of gameplay between mobile and non-mobile play with intelligent game state saving, and startups
CN116139468B (zh) * 2022-11-23 2024-03-15 广州小鸡快跑网络科技有限公司 一种游戏手柄的按键操控检测方法及系统
CN115659054B (zh) * 2022-12-14 2023-06-06 优友互动(北京)科技有限公司 基于强化学习的游戏关卡推荐方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902546A (zh) * 2012-12-25 2014-07-02 腾讯科技(深圳)有限公司 一种游戏音乐的处理方法和客户端
US20170228600A1 (en) * 2014-11-14 2017-08-10 Clipmine, Inc. Analysis of video game videos for information extraction, content labeling, smart video editing/creation and highlights generation
CN108126342A (zh) * 2017-12-28 2018-06-08 珠海市君天电子科技有限公司 一种信息处理方法、装置以及终端
CN108635852A (zh) * 2018-05-21 2018-10-12 网易(杭州)网络有限公司 信息处理方法、装置、电子设备及存储介质
CN108769821A (zh) * 2018-05-25 2018-11-06 广州虎牙信息科技有限公司 游戏场景描述方法、装置、设备及存储介质
CN109076678A (zh) * 2016-03-22 2018-12-21 飞利浦照明控股有限公司 用于视频游戏的照明

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8944234B1 (en) 2001-09-27 2015-02-03 Cummins-Allison Corp. Apparatus and system for imaging currency bills and financial documents and method for using the same
US9734730B2 (en) 2013-01-31 2017-08-15 Sri International Multi-modal modeling of temporal interaction sequences
US9007189B1 (en) 2013-04-11 2015-04-14 Kabam, Inc. Providing leaderboard based upon in-game events
US9452354B2 (en) * 2013-06-07 2016-09-27 Sony Interactive Entertainment Inc. Sharing three-dimensional gameplay
US10427055B2 (en) 2014-04-07 2019-10-01 Sony Interactive Entertainment Inc. Game video distribution device, game video distribution method, and game video distribution program
US10255763B2 (en) * 2014-12-12 2019-04-09 Synergy Blue, Llc Interactive event outcome reveal techniques implemented in wager-based video games and non wager-based video games
US20170065889A1 (en) 2015-09-04 2017-03-09 Sri International Identifying And Extracting Video Game Highlights Based On Audio Analysis
US20170128843A1 (en) * 2015-09-28 2017-05-11 Versaci Interactive Gaming, Inc. Systems, methods, and apparatuses for extracting and analyzing live video content
US10232272B2 (en) * 2015-10-21 2019-03-19 Activision Publishing, Inc. System and method for replaying video game streams
US10737183B1 (en) * 2015-10-27 2020-08-11 BlueStack Systems, Inc. Smart streaming
US20170140570A1 (en) * 2015-11-13 2017-05-18 Intel Corporation Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices
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
US11148062B2 (en) * 2018-05-18 2021-10-19 Sony Interactive Entertainment LLC Scene tagging
US11260295B2 (en) 2018-07-24 2022-03-01 Super League Gaming, Inc. Cloud-based game streaming
US11182927B2 (en) 2018-09-18 2021-11-23 Shanghai United Imaging Healthcare Co., Ltd. Systems and methods for positioning an object
US10931853B2 (en) 2018-10-18 2021-02-23 Sony Corporation Enhanced color reproduction for upscaling
US11093781B2 (en) * 2018-12-03 2021-08-17 Amazon Technologies, Inc. Customized action based on video item events
US11017818B2 (en) 2019-01-02 2021-05-25 Synaptics Incorporated Event-based media playback
US20200346121A1 (en) * 2019-05-01 2020-11-05 Microsoft Technology Licensing, Llc Creation, curation, and sharing of playlists of game moments

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902546A (zh) * 2012-12-25 2014-07-02 腾讯科技(深圳)有限公司 一种游戏音乐的处理方法和客户端
US20170228600A1 (en) * 2014-11-14 2017-08-10 Clipmine, Inc. Analysis of video game videos for information extraction, content labeling, smart video editing/creation and highlights generation
CN109076678A (zh) * 2016-03-22 2018-12-21 飞利浦照明控股有限公司 用于视频游戏的照明
CN108126342A (zh) * 2017-12-28 2018-06-08 珠海市君天电子科技有限公司 一种信息处理方法、装置以及终端
CN108635852A (zh) * 2018-05-21 2018-10-12 网易(杭州)网络有限公司 信息处理方法、装置、电子设备及存储介质
CN108769821A (zh) * 2018-05-25 2018-11-06 广州虎牙信息科技有限公司 游戏场景描述方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈慧岩: "《智能车辆理论与应用》", 31 July 2018, 北京理工大学出版社, pages: 75 *

Also Published As

Publication number Publication date
US20220040570A1 (en) 2022-02-10
US11806616B2 (en) 2023-11-07
US20210129017A1 (en) 2021-05-06
US11154773B2 (en) 2021-10-26
DE102020127706A1 (de) 2021-05-06
US20240082704A1 (en) 2024-03-14

Similar Documents

Publication Publication Date Title
US11806616B2 (en) Game event recognition
US11170471B2 (en) Resolution upscaling for event detection
US20210086089A1 (en) Player analysis using one or more neural networks
US11007445B2 (en) Techniques for curation of video game clips
US20210064965A1 (en) Content recommendations using one or more neural networks
US20120257035A1 (en) Systems and methods for providing feedback by tracking user gaze and gestures
US20230149819A1 (en) Dynamically selecting from multiple streams for presentation by predicting events using artificial intelligence
US20150378440A1 (en) Dynamically Directing Interpretation of Input Data Based on Contextual Information
US11816890B2 (en) Automatic content recognition and information in live streaming suitable for video games
US20230267063A1 (en) Real-time latency measurements in streaming systems and applications
US11452940B2 (en) Real-world activity simulation augmentation with real-world data of the activity
CN115774774A (zh) 使用自然语言处理从游戏日志中提取事件信息
US11673061B2 (en) Extensible dictionary for game events
US11705150B2 (en) Machine learning based generation of synthetic crowd responses
US11648481B2 (en) Game event recognition
US20230381643A1 (en) Method and system for processing gender voice compensation
JP2024031158A (ja) 判定システム、判定方法及びコンピュータープログラム

Legal Events

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