[go: up one dir, main page]

CN112149795A - 用于自监督事件学习与异常检测的神经架构 - Google Patents

用于自监督事件学习与异常检测的神经架构 Download PDF

Info

Publication number
CN112149795A
CN112149795A CN202010568819.3A CN202010568819A CN112149795A CN 112149795 A CN112149795 A CN 112149795A CN 202010568819 A CN202010568819 A CN 202010568819A CN 112149795 A CN112149795 A CN 112149795A
Authority
CN
China
Prior art keywords
images
sequence
neural network
content
data
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
CN202010568819.3A
Other languages
English (en)
Inventor
M·纳法德
黄婷婷
王硕
杨晓东
刘洺堉
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 CN112149795A publication Critical patent/CN112149795A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/52Surveillance or monitoring of activities, e.g. for recognising suspicious objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/454Vector or matrix data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Probability & Statistics with Applications (AREA)
  • Neurology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Algebra (AREA)
  • Evolutionary Biology (AREA)
  • Multimedia (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)

Abstract

本文涉及用于自监督事件学习和异常检测的神经架构的技术。本文描述了使用至少一个神经网络来推断图像序列中各个帧的内容并进一步推断图像序列中的内容随时间的变化以确定图像序列中是否存在一个或更多个异常事件的系统和方法。

Description

用于自监督事件学习与异常检测的神经架构
背景技术
在能够为从视频数据中识别的大量事件扩展训练神经网络方面,存在各 种技术挑战。随着从摄像机获取的视频数据越来越大,对视频数据中检测到 的事件和/或对象的跟踪和监控变得更加复杂和容易出错。换言之,随着视频 数据的不断增大,连续地、准确地监控和跟踪事件和/或对象需要更多的计算 资源。也就是说,事件和/或对象检测需要监督资源和计算资源,需要其来解 析和跟踪视频数据中超过具有有限资源的计算环境所能处理或以其他方式难 以承受的范围的各个和每个事件和/或对象。
附图简要说明
将参考附图描述各种技术,其中:
图1示出了根据一个实施例的计算环境,其中,神经架构被实现以检测 一个或更多个异常事件;
图2示出了根据一个实施例的环境,其中,使用至少一个自动编码器、 长短期记忆(LSTM)和概率模型来实现神经架构以检测一个或更多个异常事 件;
图3示出了根据一个实施例的时空空间中的事件跟踪图;
图4是根据一个实施例的用于训练至少一个神经网络以确定图像序列中 的一个或更多个异常事件的过程的示例;
图5是根据一个实施例的用于检测图像序列中的一个或更多个异常事件 的过程500的示例;
图6示出了根据一个实施例的并行处理单元(“PPU”)的示例;
图7示出了根据一个实施例的一般处理集群(“GPC”)的示例;
图8示出了根据一个实施例的存储器分区单元的示例;
图9示出了根据一个实施例的流式多处理器的示例;以及
图10示出了根据一个实施例的能够实现各种示例的计算机系统。
详细描述
在至少一个实施例中,根据本发明实施的系统和方法被用于创建端到端 的神经架构(例如,神经网络),其在一个网络中同时结合了自我监督、对图 像序列的时间动力学建模以及学习正常事件行为的能力。在至少一个实施例 中,神经网络结合了深度自编码器的自我监督(self-supervision)和高斯混合 的潜在空间建模以及递归网络的时间动态建模。在至少一个实施例中,至少 一个神经网络使用来自视频中帧的空间信息(各个帧的内容)和时间信息(帧 如何随时间变化)两者来确定视频的图像集中是否存在异常事件。
在至少一个实施例中,通过使用视频帧(例如,视频数据中的图像序列) 的光流来训练至少一个神经网络,该光流作为输入馈入到自动编码器中以对 视频帧进行编码。在至少一个实施例中,自动编码器从各个帧中提取信息。 在至少一个实施例中,自动编码器是卷积自动编码器。在至少一个实施例中, 自动编码器提供的结果随后被馈入长-短期记忆(LSTM)网络,其被设计为 通过从帧随时间如何变化中提取特征来从一系列数据中进行推断。根据一个 实施例,将编码的视频数据解码并重构回视频数据,并测量与重构相关联的误差。在至少一个实施例中,重构误差测量以及从帧随时间如何变化中提取 的特征被馈入到概率模型。在至少一个实施例中,概率模型是高斯混合模型 (GMM),其最小化重构误差并被训练为最大化可能性,使得生成信息(例 如分数)以指示正常事件行为的高可能性。一旦使用视频帧的光流训练至少 一个神经网络,则通过训练的至少一个神经网络处理来自摄像机的新的帧序 列或额外的视频帧。在至少一个实施例中,神经网络包括自动编码器、LSTM 和概率模型,其中概率模型随后输出新的序列或传入视频帧是否显示异常的 可能性。在至少一个实施例中,自动编码器、LSTM和概率模型是被训练为 执行如上所述的每个功能的单个神经网络中多层的一部分。在至少一个实施 例中,自动编码器、LSTM和概率模型是多个单独神经网络的网络中的多个 层的一部分。
本文描述的技术用于实现神经网络,该神经网络自我监督以发现从多个 静态(例如静止)摄像机捕获的图像序列中获得的频繁事件模式,并被进一 步训练以检测包括图像序列中的异常的罕见事件模式。在至少一个实施例中, 世界范围内存在数以百万计的摄像机,并且其大部分内容是没有兴趣观看的; 然而,在某些情况下,可能需要从所有这些内容中检测和定位罕见、稀有和/ 或异常模式,而无需重新配置静态摄像机。为了检测这些罕见事件(如异常) 模式,为每一个感兴趣的事件建立有监督的模型是非常复杂的。也就是说,使用边界框检测图像序列中的对象/事件并添加手动跟踪规则、在边界框中添 加时间学习和/或使用传统的监督方法都有其缺点。例如,对象检测忽略了复 杂的对象-对象时间交互,并假设了完美的检测和跟踪。此外,由于缺乏足够 的训练样本,监督方法的性能也很低。因此,创建使用摄像机捕捉到的事件 进行训练的神经网络,并进一步配置神经网络以具有无需跟踪信息的自我监 督学习能力以用于异常检测可能是有利的。
在之前和之后的描述中,描述了各种技术。为了便于解释,本文阐述了 具体的配置和细节,以便全面了解实现技术的可能方法。然而,显而易见的 是,下面描述的技术可以在没有特定细节的不同配置中实践。此外,众所周 知的特征可能被省略或简化,以避免模糊所描述的技术。
图1示出了根据一个实施例的计算环境100,其中实现了神经架构以检 测一个或更多个异常事件。在至少一个实施例中,计算环境100包括多个摄 像机102,它们用于记录和捕获视频(例如,图像序列)的摄像机网络的一部 分。在至少一个实施例中,摄像机102是交通摄像机、监控摄像机、家庭安 全摄像机、数字摄像机等。在至少一个实施例中,多个摄像机102记录视频 数据,其中视频数据代表在一段时间内捕获的流或图像序列。在至少一个实 施例中,视频数据(例如,图像序列)被称为输入数据104。在至少一个实施 例中,输入数据104从多个摄像机102发送到数据存储器118以进行存储。 在至少一个实施例中,输入数据104的格式包括.mp4、.wmv、.avi、.flv等。 在至少一个实施例中,输入数据104的格式包括.JPEG、.GIF、.BMP、.PNG 等格式的图像序列。在至少一个实施例中,摄像机102是记录交通图像并作 为输入数据104馈入到神经网络108的监控摄像机。在至少一个实施例中,如本文所述的摄像机102包括多于一个摄像机。根据一个实施例,摄像机102 只是记录视频数据的单个摄像机。
如图1所示,在至少一个实施例中,计算环境100包括从一个或更多个 摄像机102接收输入数据104的数据存储器120。在至少一个实施例中,数据 存储器120被配置为存储视频数据(例如图像序列)、文本、元数据、训练数 据、训练图像、训练数据线程等。在至少一个实施例中,数据存储器120是 数据存储设备,是与计算设备(图1中未示出)、缓冲区或消息队列连接的数 据存储服务。在至少一个实施例中,输入数据104是三维(3-D)的训练图像的集合,并且当由一个或更多个神经网络获得时,用于训练一个或更多个神 经网络以在馈入到被训练的网络的额外的或新的视频帧中进行异常检测。在 至少一个实施例中,输入数据104是音频数据,使得当被一个或更多个神经 网络获得时,音频数据用于训练一个或更多个神经网络以用于语音识别或语 音异常检测目的。在至少一个实施例中,输入数据104被存储为诸如阵列或 矩阵的数据结构。在至少一个实施例中,数据存储器120被配置为通过经由 网络106(经由有线或无线网络)将输入数据104发送到神经网络108来满足 对输入数据104的请求。在至少一个实施例中,如本文所述,神经网络108 也被称为深度网络或简称为网络。
在至少一个实施例中,神经网络108是计算设备、图形处理单元(GPU), 或者在至少一个实施例中,表示包含多个GPU的多个计算设备。在至少一个 实施例中,神经网络108被配置为接收输入数据104以从输入数据104中检 测异常事件。在至少一个实施例中,输入数据104经由网络106在神经网络 108处从计算环境100外部或内部的数据存储器120、其他计算设备、计算服 务、虚拟机、虚拟服务(图1中未示出)接收。
在至少一个实施例中,神经网络108包括至少一个自动编码器110、长 短期记忆(LSTM)112和概率模型114。在至少一个实施例中,神经网络108 可以是单个网络,其中网络的组成部分、层或部分各自包括自动编码器110、 LSTM 112和概率模型114。在至少一个实施例中,神经网络由多个神经网络 组成,并且多个神经网络的每个组成部分包括自动编码器110、LSTM 112和 概率模型114。在至少一个实施例中,神经网络108由多个神经网络组成,其 中自动编码器110是第一神经网络,LSTM 112是第二神经网络,概率模型114 是第三神经网络,其中所有三个神经网络彼此分离。
在至少一个实施例中,自动编码器110经由网络106接收输入数据104。 如上所述,输入数据104可以是从多个摄像机102获得的图像的视频数据/序 列。在至少一个实施例中,自动编码器110是设计用于以无监督方式学习和 应用数据编码的一种神经网络。换句话说,在至少一个实施例中,自动编码 器110学习为一组数据生成表示(例如,编码)。在至少一个实施例中,自动 编码器110将输入数据104作为其输入,以从图像序列中的各个图像推断内 容。在至少一个实施例中,内容包括来自各个图像的空间信息。在至少一个 实施例中,自动编码器110是神经网络108的组成部分(例如,层)。在至少 一个实施例中,自动编码器110对来自输入数据104的帧中的对象进行推断 (例如,在多个帧中是否示出汽车)。在至少一个实施例中,自动编码器110 在其本身的神经网络中,具有三个内部层:输入层、隐藏(编码)层和解码 层,其中网络被训练以重构其输入。在至少一个实施例中,自动编码器110映射输入数据104以在特征空间中生成一个或更多个潜在表示,从该特征空 间中,输入数据104可以由缩小的(reduced)特征空间中的特征近似地再现。 也就是说,在至少一个实施例中,自动编码器110用于在重构方面提取表示 输入数据104的特征。在至少一个实施例中,自动编码器110是卷积自动编 码器。在至少一个实施例中,不使用卷积自动编码器,而是使用全连接的自 动编码器。
在至少一个实施例中,LSTM 112从自动编码器110接收结果。在至少一 个实施例中,LSTM 112是神经网络108的组成部分(例如,层),并且来自 自动编码器110的结果被馈送到LSTM 112,使得LSTM 112根据一系列数据 进行推断。在至少一个实施例中,LSTM 112是处理数据以生成关于数据的信 息的递归(recurrent)网络。也就是说,在至少一个实施例中,LSTM 112是 递归网络,其学习各个帧如何随时间变化,并从这些帧如何从帧到帧变化中 提取特征。在至少一个实施例中,使用先前训练的帧来分析各个帧。换言之, 在至少一个实施例中,LSTM 112从被记住的(例如,先前训练过的)先前帧 中提取特征,并将其与新进入的帧相结合,以推断作为输入数据104的一部 分的新进入的帧中的内容的变化。例如,使用滑动比例方法将新进入的帧与 先前的帧组合,以推断新进入的帧中的变化。也就是说,在至少一个实施例 中,新进入的帧与新进入的帧之前的总共10秒的帧组合以推断新进入的帧的 内容的变化。在另一个示例中,新进入的帧与新进入的帧之前总共11秒的帧相结合,以推断新进入的帧的内容的变化。在至少一个实施例中,执行滑动 比例方法,直到满足预定的秒数(例如,总共30秒)。在至少一个实施例中, 内容的变化包括关于输入数据104的时间信息。即,在至少一个实施例中, 来自自动编码器110的结果被发送到LSTM 112,以推断输入数据104中的对 象在帧的光流中正在做什么(例如,从帧到帧确定汽车是否在特定车道/方向 上行驶)。
在至少一个实施例中,概率模型114从LSTM 112接收信息。在至少一 个实施例中,概率模型114是作为神经网络108的组成部分(例如层)的高 斯混合模型(GMM)。在至少一个实施例中,概率模型114将随机变量和概 率分布合并到事件模型中。在至少一个实施例中,GMM是假设所有数据点都 是由有限个高斯分布的混合生成的概率模型。在至少一个实施例中,概率模 型114(例如GMM)对来自潜在空间的特征和来自重构输入数据104生成的 重构误差测量的信息的组合建模。在至少一个实施例中,使用重构输入数据 和输入数据104之间的相对欧氏距离、余弦相似性和/或欧氏距离来计算重构 误差测量。在至少一个实施例中,在训练概率模型114时估计正常数据(normal data)的分布。
在至少一个实施例中,关于使用经过训练的概率模型114进行异常检测, 假设所有正常数据都来自某个分布(例如,先前训练好的模型),并且异常将 从该分布中消失。在至少一个实施例中,概率模型114在输入数据104中提 供异常116的通知或指示,因为通过训练,概率模型114已经知道哪些事件 被认为异常(例如,不同于正常数据)。在至少一个实施例中,概率模型114 生成异常指示符116以指示异常事件的可能性。
在至少一个实施例中,当识别出异常事件时,从概率模型114得到异常 指示符116。在至少一个实施例中,异常指示符116包括与来自输入数据104 的正常数据(例如,异常事件)不同的数据的信息。在至少一个实施例中, 异常指示符116是发送给用户的指示从输入数据104的多个事件中观察到哪 个事件异常的可能性的信息的消息。在至少一个实施例中,可能性是正常 (normal)分布之外的值(使用先前在其上训练过概率模型的值),它将指示 它是异常事件。在至少一个实施例中,值低于先前被训练时概率模型给定的 阈值,表明正常事件或行为具有高可能性分数(或高于某个阈值的分数)。在 至少一个实施例中,异常指示符116从图像序列中识别各个帧,并用元数据 标记它们以指示异常事件的可能性,并且更新图形用户界面(GUI)以如此指 示。
图2示出了根据一个实施例的环境,其中,神经架构(例如,神经网络) 200被实现为使用自动编码器204、长短期记忆(LSTM)206和概率模型214 来从输入数据202检测一个或更多个异常事件。在至少一个实施例中,输入 数据202是从一个或更多个摄像机获得的视频数据(例如,图像序列)。
在至少一个实施例中,神经网络200包括作为神经网络200中的一层的 卷积自动编码器204,其被设计为用于在特征空间中生成输入数据202的一个 或更多个潜在表示(例如,低维表示)。在至少一个实施例中,潜在表示是位 于潜在空间中的输入数据202的表示。在至少一个实施例中,卷积自动编码 器204被全连接的传统编码器替代。在至少一个实施例中,输入数据202由 卷积自动编码器204接收作为输入,卷积自动编码器204对输入数据202进 行编码以生成编码数据输入,其可由解码器208解码以重新生成原始输入数 据202。在至少一个实施例中,通过对输入数据202进行编码,卷积自动编码 器204从输入数据202的各个图像推断内容。在至少一个实施例中,由卷积 自动编码器204推断来自图像序列的各个帧的内容,并进一步馈送到LSTM 206。在至少一个实施例中,内容包括关于各个帧的空间信息。
在至少一个实施例中,LSTM 206从卷积自动编码器204接收输入数据 202的一个或更多个潜在表示。在至少一个实施例中,神经网络200包括LSTM 206,作为其网络的一层,被设计用于从一系列数据(例如,图像序列)进行 推断。在至少一个实施例中,LSTM 206从图像序列的帧/图像如何随时间变 化中提取特征。在至少一个实施例中,LSTM 206推断输入数据202中的内容 的变化。在至少一个实施例中,内容的变化包括关于输入数据202的时间信 息。在至少一个实施例中,来自卷积自动编码器204的结果被发送到LSTM 206, 以推断输入数据202中的对象从帧到帧在做什么。
在至少一个实施例中,用于卷积自动编码器204的解码器208被神经网 络用于重构210由卷积自动编码器204产生的输入数据202的一个或更多个 潜在表示。在至少一个实施例中,测量每个输入数据点的重构误差212。在至 少一个实施例中,通过至少计算重构输入数据和输入数据202中的每个数据 点之间的相对欧几里德距离、余弦相似性或欧几里德距离来确定重构误差测 量212。在至少一个实施例中,当训练神经网络时,重构误差测量212与LSTM 206的结果一起馈送到概率模型214。在至少一个实施例中,测量重构误差对 于推断帧中的变化以检测异常事件来说不是必要的。
在至少一个实施例中,利用概率模型(例如高斯混合模型(GMM))214 和神经网络200来确定输入数据202中是否存在一个或更多个异常事件。在 至少一个实施例中,概率模型是神经网络200中的层,其与网络200的其他 层一起连接使用。在至少一个实施例中,GMM生成的数据点是从没有已知参 数的高斯分布的混合中导出的。在至少一个实施例中,GMM的参数是从已训 练的先前模型的最大后验估计或迭代期望最大化算法导出的。换句话说,在 至少一个实施例中,概率模型214(例如GMM)是先前使用指示正常行为的 训练视频数据来进行训练或预训练的。在至少一个实施例中,概率模型214 使用指示汽车仅在一个方向(例如,从东到西)行驶的视频数据来预先训练 的。在至少一个实施例中,利用从视频帧的额外的或新的光流获得的关于输 入中的对象从帧到帧在做什么的推断,如果发现汽车的行驶方向与模型被训 练为认为是正常行为的方向相反(例如,从西向东),那么概率模型214就会 为事件生成异常通知。
图3示出了根据一个实施例的时空空间中的事件跟踪的图300。在至少 一个实施例中,在视频时空空间中,带注释的异常对象302的边界框形成三 维(3-D)体(volume)。在至少一个实施例中,每个体被视为事件,并且使 用如图1-2所示实现的神经网络,检测来自这些特征的体来确定它们是否异常。 换句话说,在至少一个实施例中,至少一个神经网络使用来自视频中帧的空 间信息(各个帧的内容)和时间信息(帧如何随时间变化)两者来基于预先 训练的模型来确定视频中是否存在异常事件。
在至少一个实施例中,如果检测到的事件在图像序列中的持续时间大于 10帧(1秒),则考虑对其进行评估。在至少一个实施例中,真值事件(ground truth event)是具有在空间和时间空间中标记的异常行为的对象或对象组。在 至少一个实施例中,准确检测到的事件是如果其与真值的交并比(Intersection over Union,IoU)超过检测持续时间的50%,则认为是准确检测到的事件。 在至少一个实施例中,召回事件是将被视为单个召回事件的同一真值事件的 一个或更多个检测到的事件。从图像序列中检测到的事件的精度和召回的计 算示例如下所示:
Figure BDA0002548582080000081
Figure BDA0002548582080000082
图4是根据一个实施例的用于训练至少一个神经网络以确定图像序列中 的一个或更多个异常事件的过程400的说明性示例。根据一个实施例,视频 数据由至少一个神经网络从一个或更多个摄像机402接收。在至少一个实施 例中,一个或更多个摄像机包括在捕获指示交叉口处的正常交通流的各个帧 处交互的交通摄像机。在至少一个实施例中,一个或更多个摄像机包括交通 摄像机或监控摄像机,其连续记录高速公路、公路、人行道等的视频数据/图 像序列。在至少一个实施例中,来自帧序列(例如,图像序列)的各个帧(例如,单个图像)然后从一个或更多个相机馈入到编码器,例如卷积自动编码 器。在至少一个实施例中,至少一个神经网络包括卷积自动编码器,其被配 置为使用各个帧并生成帧402的潜在表示。根据一个实施例,至少一个神经 网络用于从交叉口的一个或更多个交通摄像机获得的图像序列中的单个图像 推断内容。图像序列可以被馈送到至少一个神经网络,其中至少一个神经网 络被训练。
在至少一个实施例中,图4进一步描述了使用长短期记忆(LSTM)来 训练至少一个神经网络,其中LSTM被配置为从卷积自动编码器406提供的 潜在表示中提取特征。在至少一个实施例中,至少一个神经网络使用LSTM 来推断图像序列中的内容的变化。如结合图1-2所描述的,在至少一个实施例 中,卷积自动编码器的结果被馈入到LSTM,使得LSTM推断图像序列中的 内容的变化。在至少一个实施例中,LSTM被设计为从一系列数据中进行推 断(例如,从帧随时间如何变化中提取特征)。在至少一个实施例中,LSTM 是独立于自动编码器的神经网络的层,但仍然是同一神经网络的一部分。在 至少一个实施例中,接着将LSTM的结果和重构图像时的重构误差测量馈入 到概率模型(例如,高斯混合模型)以训练GMM。在至少一个实施例中,向 解码器馈入输入数据,例如图像序列,以训练GMM,并且进一步向输入数据 提供关于图像的信息以配置GMM 408。在至少一个实施例中,GMM被训练 成使得从一个或更多个摄像机接收的图像序列中的帧与至少部分基于LSTM 在图像序列中的内容中推断出的变化的信息(例如,元数据、标记)相关联。 在至少一个实施例中,通过关联和/或提供表明所处理的视频数据中的每一帧 被认为是正常行为的元数据来训练至少一个神经网络。
图5是根据一个实施例的用于检测图像序列中的一个或更多个异常事件 的过程500的示例。在至少一个实施例中,过程500利用如图4所述的经训 练的神经网络来检测由一个或更多个摄像机捕获的图像序列中的一个或更多 个异常事件。在至少一个实施例中,如结合图4所述,视频数据由至少一个 神经网络从一个或更多个摄像机502接收。在至少一个实施例中,一个或更 多个摄像机包括交通摄像机、监控摄像机、数字摄像机等。在至少一个实施 例中,来自视频数据的各个帧随后被馈入到诸如卷积自动编码器的自动编码 器。在至少一个实施例中,至少一个神经网络包括卷积自动编码器,其被配 置为使用各个帧并生成帧502的潜在表示。根据一个实施例,至少一个神经 网络用于根据一个或更多个交通摄像机获得的帧序列(例如图像序列)中的 各个帧(例如单个图像)推断内容。
在至少一个实施例中,图5进一步描述了使用长短期记忆(LSTM)来 训练至少一个神经网络,其中LSTM被配置为从卷积自动编码器506提供的 潜在表示中提取特征。在至少一个实施例中,至少一个神经网络使用LSTM 来推断图像序列中内容的变化。在至少一个实施例中,LSTM被设计成从一 系列数据中进行推断(例如,从帧随时间如何变化中提取特征)。在至少一个 实施例中,LSTM的结果随后被馈入到概率模型(例如,高斯混合模型)中,以产生图像序列508的可能性(例如,概率)分数。在至少一个实施例中, GMM基于其先前的训练,在从一个或更多个相机接收的视频数据中识别异常 的帧。在至少一个实施例中,GMM至少部分地基于LSTM在图像序列的内 容中推断出的变化的信息来生成可能性分数。在至少一个实施例中,可能性 分数指示异常是否存在510。在至少一个实施例中,如果检测到异常,则向用 户或单独的计算系统512发送异常指示符。在至少一个实施例中,GMM输出 具有允许用户识别哪些事件被视为异常的消息(例如,不同于正常数据的数 据)的异常指示符512。在至少一个实施例中,异常指示符是生成并发送给与 单独计算设备相关联的用户的消息。在至少一个实施例中,图形用户界面(GUI) 被更新以显示异常指示符消息。在至少一个实施例中,如果与异常事件相关 联的可能性分数在先前使用图像集合训练GMM时确定的正常分布之外,则 不生成异常指示符,并且过程500再次循环回开始以处理新的帧。在至少一 个实施例中,生成指示没有检测到异常并且图像没有异常事件的消息。在至 少一个实施例中,过程500是循环的过程,直到通过神经网络处理了所有图 像或视频数据。
作为描述图5的过程的示例,视频数据是从交通摄像机获取的。在至少 一个实施例中,卷积自动编码器用于推断图像/帧中的对象(例如,在多个帧 中示出的车辆)。在至少一个实施例中,接着LSTM使用卷积自动编码器的结 果来推断这些对象从帧到帧正在做什么(例如,汽车在特定车道/方向上行驶)。 在至少一个实施例中,概率模型(例如GMM)指示对象是否异常。在至少一 个实施例中,如果汽车在错误的方向上行驶,GMM将指示异常,因为通过训 练,GMM将学习汽车在相反的方向上行驶。在至少一个实施例中,如果车辆 在交叉路口停留了一段特定的时间,GMM将指示异常,因为通过训练,它将 学习到车辆在交叉路口停留的时间不会超过10秒。如上所述,在至少一个实 施例中,使用语音数据或文本数据代替视频数据来识别异常语音或文本。
图6示出了根据一个实施例的并行处理单元(“PPU”)600。在至少一个 实施例中,PPU 600被配置有机器可读代码,如果该代码被PPU执行,则使 PPU执行本发明中描述的部分或全部过程和技术。在至少一个实施例中,PPU 600是实现在一个或更多个集成电路设备上的多线程处理器,其利用多线程作 为延迟隐藏技术,设计用于并行处理多线程上的计算机可读指令(也称为机 器可读指令或简单指令)。在至少一个实施例中,线程是指执行线程,并且是 配置为由PPU 600执行的一组指令的实例。在至少一个实施例中,PPU 600 是图形处理单元(“GPU”),其被配置为实现用于处理三维(“3D”)图形数据 的图形渲染管线,以便生成二维(“2D”)图像数据以在诸如液晶显示器(LCD) 设备的显示设备上显示。在至少一个实施例中,PPU 600用于执行诸如线性代 数运算和机器学习运算的计算。图5示出了仅用于说明目的的示例性并行处 理器,并且应被解释为本发明范围内设想的处理器架构的非限制性示例,并 且可以使用任何合适的处理器来补充和/或替换。
在至少一个实施例中,一个或更多个PPU被配置为加速高性能计算 (“HPC”)、数据中心和机器学习应用。在至少一个实施例中,PPU 600被配 置为加速深度学习系统和应用,包括以下非限制性示例:自主车辆平台、深 度学习、高精度语音、图像、文本识别系统、智能视频分析、分子模拟、药 物发现、疾病诊断、天气预测、大数据分析、天文学、分子动力学模拟、金 融建模、机器人、工厂自动化、实时语言翻译、在线搜索优化和个性化用户 推荐等。
在至少一个实施例中,PPU 600包括输入/输出(“I/O”)单元606、前端 单元610、调度单元612、工作分配单元614、集线器616、交叉开关(“Xbar”) 620、一个或更多个通用处理集群(“GPC”)618和一个或更多个分区单元622。 在至少一个实施例中,PPU 600经由一个或更多个高速GPU互连608连接到 主机处理器或其他PPU 600。在至少一个实施例中,PPU 600经由互连602连 接到主机处理器或其他外围设备。在至少一个实施例中,PPU 600连接到包括 一个或更多个存储器设备604的本地存储器。在至少一个实施例中,本地存 储器包括一个或更多个动态随机存取存储器(“DRAM”)设备。在至少一个 实施例中,一个或更多个DRAM设备被配置和/或可配置为高带宽存储器 (“HBM”)子系统,每个设备中堆叠有多个DRAM模具(die)。
高速GPU互连608可以指基于线的多路通信链路,被系统用于进行扩展, 包括一个或更多个PPU 600与一个或更多个CPU的组合,支持PPU 600与 CPU之间的缓存一致性,以及CPU主控。在至少一个实施例中,数据和/或 命令通过高速GPU互连608经由集线器616从PPU600的其他单元(例如一 个或更多个复制引擎、视频编码器、视频解码器、电源管理单元和图5中未 明确示出的其他成分)发送到/接收自PPU 600的其他组件。
在至少一个实施例中,I/O单元606被配置为通过系统总线602(图5中 未示出)从主机处理器发送和接收通信(例如命令、数据)。在至少一个实施 例中,I/O单元606直接经由系统总线602或经由诸如存储器网桥的一个或更 多个中间设备与主机处理器通信。在至少一个实施例中,I/O单元606可以经 由系统总线602与一个或更多个其它处理器(例如PPU600中的一个或更多 个)通信。在至少一个实施例中,I/O单元606实现用于通过PCIe总线通信 的外围成分互连快速(“PCIe”)接口。在至少一个实施例中,I/O单元606实 现用于与外部设备通信的接口。
在至少一个实施例中,I/O单元606解码经由系统总线602接收的数据包。 在至少一个实施例中,至少部分数据包表示被配置为使PPU 600执行各种操 作的命令。在至少一个实施例中,I/O单元606将解码的命令发送到由命令指 定的PPU 600的各种其它单元。在至少一个实施例中,命令被发送到前端单 元610和/或发送到集线器616或PPU 600的其他单元,例如一个或更多个复 制引擎、视频编码器、视频解码器、电源管理单元等(图5中未明确示出)。 在至少一个实施例中,I/O单元606被配置为在PPU 600的各个逻辑单元之间 路由通信。
在至少一个实施例中,由主机处理器执行的程序将命令流编码在将工作 负载提供给PPU 600以进行处理的缓冲器中。在至少一个实施例中,工作负 载包括由这些指令处理的指令和数据。在至少一个实施例中,缓冲器是存储 器中可由主机处理器和PPU 600访问(例如,读/写)的区域-主机接口单元可 被配置为通过由I/O单元606经由系统总线602发送的存储器请求来访问连接 到系统总线602的系统存储器中的缓冲器。在至少一个实施例中,主机处理 器将命令流写入缓冲器,然后将指向命令流开始的指针发送到PPU 600,使得前端单元610接收指向一个或更多个命令流的指针并管理一个或更多个流, 从流读取命令并将命令转发到PPU 600的各个单元。
在至少一个实施例中,前端单元610耦合到配置各个GPC 618以处理由 一个或更多个流定义的任务的调度单元612。在至少一个实施例中,调度单元 612被配置为跟踪与调度单元612管理的各种任务相关的状态信息,其中状态 信息可以指示任务被分配给哪个GPC 618、任务是活跃的还是非活跃的、与 任务相关联的优先级,等等。在至少一个实施例中,调度单元612管理一个 或更多个GPC 618上的多个任务的执行。
在至少一个实施例中,调度单元612耦合到被配置为分派任务以在GPC 618上执行工作分配单元614。在至少一个实施例中,工作分配单元614跟踪 从调度单元612接收的多个调度任务,并且工作分配单元614为GPC 618中 的每一个管理待定任务池和活跃任务池。在至少一个实施例中,待定任务池 包括多个槽位(例如,32个槽位),其包含被分配给特定GPC 618处理的任 务;活跃任务池可以包括多个槽位(例如,4个槽位),用于GPC 618正活跃处理的任务,如此使得当GPC 618完成任务的执行时,该任务将被从GPC 618 的活跃任务池中逐出,并且来自待定任务池的其他任务中的一个被选择并调 度以在GPC 618上执行。在至少一个实施例中,如果活跃任务在GPC 618上 闲置,例如在等待数据依赖性被解决时,则活动任务被从GPC 618中逐出并 返回到待定任务池,而待定任务池中的另一个任务被选择并调度以在GPC 618 上执行。
在至少一个实施例中,工作分配单元614经由XBar 620与一个或更多个 GPC 618通信。在至少一个实施例中,XBar 620是将PPU 600的许多单元耦 合到PPU 600的其他单元的互连网络,并且可以被配置为将工作分配单元614 耦合到特定GPC 618。尽管未明确示出,PPU 600的一个或更多个其它单元也 可以经由集线器616连接到XBar 620。
任务由调度单元612管理,并由工作分配单元614调度到GPC 618。GPC 618被配置为处理任务并生成结果。结果可以被GPC 618内的其它任务消耗、 经由XBar 620路由到不同的GPC 618或存储在存储器604中。结果可以经由 分区单元622写入存储器604,分区单元622实现用于向存储器604读写数据 的存储器接口。结果可经由高速GPU互连608传送到另一PPU 604或CPU。 在至少一个实施例中,PPU 600包括多个分区单元622,其等于耦合到PPU600 的独立和不同的存储器设备604的数量。下面将结合图7更详细地描述分区 单元622。
在至少一个实施例中,主处理器执行实现使在主处理器上执行的一个或 更多个应用程序能够调度在PPU 600上执行的操作的应用程序编程接口 (“API”)的驱动程序内核。在至少一个实施例中,PPU 600同时执行多个计 算应用,并且PPU 600为多个计算应用提供隔离、服务质量(“QoS”)和独立 的地址空间。在至少一个实施例中,应用程序生成使驱动内核生成一个或更 多个任务以供PPU 600执行的指令(例如,以API调用的形式),并且驱动内 核将任务输出到正在由PPU 600处理的一个或更多个流。在至少一个实施例 中,每个任务包括一组或多组相关线程,这些线程可以称为线程束(wrap)。 在至少一个实施例中,线程束包括能够并行执行的多个相关线程(例如32个 线程)。在至少一个实施例中,协同线程可以指多个线程,包括执行任务的指 令以及通过共享存储器交换数据的指令。根据一个实施例,结合图7更详细 地描述了线程和协同线程。
图7示出了根据一个实施例的GPC 700,例如图6的PPU 600所示的GPC。 在至少一个实施例中,每个GPC 700包括用于处理任务的多个硬件单元,并 且每个GPC 700包括管线管理器702、栅格前操作单元(“PROP”)704、栅 格引擎708、工作分配交叉开关(“WDX”)716、存储器管理单元(“MMU”) 718,一个或更多个数据处理集群(“DPC”)706,以及任何合适的部分组合。 应当理解,图6的GPC 700可以包括代替或附加于图7所示的单元的其他硬 件单元。
在至少一个实施例中,GPC 700的操作由管线管理器702控制。管线管 理器702管理用于处理分配给GPC 700的任务的一个或更多个DPC 706的配 置。在至少一个实施例中,管线管理器702配置一个或更多个DPC 706中的 至少一个以实现图形渲染管线的至少一部分。在至少一个实施例中,DPC 706 被配置为在可编程流式多处理器(“SM”)714上执行顶点着色程序。在至少 一个实施例中,管线管理器702被配置为将从工作分发接收的分组路由到GPC 700内的适当逻辑单元,并且一些分组可以被路由到PROP 704和/或栅格引擎 708中的固定功能硬件单元,而其他分组可以被路由到DPC 706以由原始引 擎712或SM 714进行处理。在至少一个实施例中,管线管理器702配置一个 或更多个DPC 706中的至少一个以实现神经网络模型和/或计算管线。
在至少一个实施例中,PROP单元704被配置为将由栅格引擎708和DPC 706生成的数据路由到存储器分区单元中的栅格操作(“ROP”)单元,如上文 更详细描述的。在至少一个实施例中,PROP单元704被配置为执行颜色混合 的优化、组织像素数据、执行地址转换等。栅格引擎708包括配置为执行各 种栅格操作的多个固定功能硬件单元,在至少一个实施例中,栅格引擎708 包括设置引擎、粗栅格引擎、剔除引擎、剪裁引擎、精细栅格引擎、平铺接 合引擎以及它们的任何适当组合。在至少一个实施例中,设置引擎接收转换 的顶点并生成与由顶点定义的几何基元相关联的平面方程;平面方程被发送 到粗栅格引擎以生成基元的覆盖信息(例如,用于平铺的x,y覆盖掩码); 粗栅格引擎的输出被传输到剔除引擎,在该引擎中剔除与z-测试失败的基元 相关联的片段,并传输到剪裁引擎,在该引擎中剪裁位于视锥之外的片段。 在至少一个实施例中,保留于剪裁和剔除的片段被传递到精细栅格引擎,以 基于由设置引擎生成的平面方程为像素片段生成属性。在至少一个实施例中, 栅格引擎708的输出包括由任何适当实体(例如由DPC 706中实现的片段着 色器)处理的片段。
在至少一个实施例中,GPC 700中包括的每个DPC 706包括M-管道控制 器(“MPC”)710、原始引擎712、一个或更多个SM 714以及它们的任何适 当组合。在至少一个实施例中,MPC 710控制DPC 706的操作,将从管线管 理器702接收到的分组路由到DPC 706中的适当单元。在至少一个实施例中, 与顶点相关联的数据包被路由到原始引擎712,原始引擎712被配置为从存储 器中获取与顶点相关联的顶点属性;相反,与着色器程序相关联的数据包可 以被发送到SM 714。
在至少一个实施例中,SM 714包括可编程流处理器,其被配置为处理由 多个线程表示的任务。在至少一个实施例中,SM 714是多线程的,并且被配 置为同时执行来自特定线程组的多个线程(例如32个线程),并且实现SIMD (单指令、多数据)架构,其中一组线程(例如扭曲)中的每个线程被配置 为基于相同的指令集处理不同的数据集。在至少一个实施例中,一组线程中 的所有线程执行相同的指令。在至少一个实施例中,SM 714实现SIMT(单 指令、多线程)架构,其中一组线程中的每个线程被配置为基于同一组指令 处理不同的数据集,但在执行期间允许一组线程中的单个线程发散。在至少 一个实施例中,为每个扭曲维护程序计数器、调用堆栈和执行状态,当扭曲 内的线程发散时,在扭曲内使能扭曲与串行执行之间的并发。在另一个实施 例中,为每个单独的线程维护程序计数器、调用堆栈和执行状态,从而在所 有线程之间、扭曲内部和扭曲之间实现同等的并发性。在至少一个实施例中, 为每个单独的线程保持执行状态,并且执行相同指令的线程可以聚合并并行执行以获得更好的效率。在至少一个实施例中,下面更详细地描述SM 714。
在至少一个实施例中,MMU 718提供GPC 700和存储器分区单元之间 的接口,MMU718提供虚拟地址到物理地址的转换、存储器保护和存储器请 求的仲裁。在至少一个实施例中,MMU 718提供一个或更多个翻译后备缓冲 器(“TLB”),用于将虚拟地址转换为存储器中的物理地址。
图8示出了根据一个实施例的PPU的存储器分区单元。在至少一个实施 例中,存储器分区单元800包括栅格操作(“ROP”)单元802、二级(“L2”) 高速缓存804、存储器接口806以及它们的任何适当组合。存储器接口806耦 合到存储器。存储器接口806可以实现32、64、128、1024位数据总线等, 用于高速数据传输。在至少一个实施例中,PPU包括U存储器接口806、每 对分区单元800一个存储器接口806,其中每对分区单元800连接到相应的存 储器设备。例如,PPU可以被连接到多达Y个存储器设备,例如高带宽存储 器堆栈或图形双数据速率、版本5、同步动态随机存取存储器(“GDDR5 SDRAM”)。
在至少一个实施例中,存储器接口806实现HBM2存储器接口,并且Y 等于U的一半。在至少一个实施例中,HBM2存储器堆栈与PPU位于同一物 理数据包上,与传统GDDR5 SDRAM系统相比,提供了大量的功率和面积节 省。在至少一个实施例中,每个HBM2堆栈包括四个存储器芯片,Y等于4, 其中HBM2堆栈包括每个芯片两个128位通道,总共8个通道,数据总线宽 度为1024位。
在至少一个实施例中,存储器支持单纠错双误差检测(“SECDED”)纠 错码(“ECC”)以保护数据。ECC为对数据损坏敏感的计算应用程序提供了 更高的可靠性。在大规模集群计算环境中,可靠性尤其重要,在这种环境中, PPU处理非常大的数据集和/或长时间运行应用程序。
在至少一个实施例中,PPU实现多级内存层次结构。在至少一个实施例 中,存储器分区单元800支持统一存储器,以便为CPU和PPU存储器提供单 个统一的虚拟地址空间,从而在虚拟存储器系统之间实现数据共享。在至少 一个实施例中,跟踪PPU对位于其他处理器上的存储器的访问频率,以确保 将存储器页面移动到更频繁地访问页面的PPU的物理存储器。在至少一个实 施例中,高速GPU互连608支持地址转换服务,允许PPU直接访问CPU的页面表,并通过PPU提供对CPU存储器的完全访问。
在至少一个实施例中,复制引擎在多个PPU之间或PPU和CPU之间传 输数据。在至少一个实施例中,复制引擎可以为未映射到页面表和存储器分 区单元800中的地址生成页面故障,然后服务页面故障,将地址映射到页面 表中,然后复制引擎执行传输。在至少一个实施例中,为多个处理器之间的 多个复制引擎操作固定内存(例如,不可分页),从而大大减少可用内存。在 至少一个实施例中,在硬件页面出错的情况下,可以将地址传递给复制引擎, 而不考虑存储器页面是否驻留,并且复制过程是透明的。
根据一个实施例,来自图6的存储器或其他系统存储器的数据由存储器 分区单元800获取并存储在位于芯片上并且在各个GPU之间共享的L2高速 缓存804中。在至少一个实施例中,每个存储器分区单元800包括与相应的 存储器设备相关联的L2高速缓存760的至少一部分。在至少一个实施例中, 在GPU内以各种单元实现低层高速缓存。在至少一个实施例中,SM 840中 的每一个可以实现一级(“L1”)高速缓存,其中L1高速缓存是专用于特定SM 840的专用存储器,并且来自L2高速缓存804的数据被提取并存储在L1 高速缓存中的每一个中,以便由SM 840的功能单元进行处理。在至少一个实 施例中,L2高速缓存804耦合到存储器接口806和XBar 620。
在至少一个实施例中,ROP单元802执行与像素颜色相关的图形栅格操 作,例如颜色压缩、像素混合等。在至少一个实施例中,ROP单元850与栅 格引擎825一起实现深度测试,从栅格引擎825的剔除引擎接收与像素片段 相关联的样本位置的深度。在至少一个实施例中,深度是针对与片段相关联 的样本位置的深度缓冲器中的对应深度来测试的。在至少一个实施例中,如 果片段通过样本位置的深度测试,则ROP单元802更新深度缓冲器并将深度 测试的结果发送到栅格引擎825。应当理解,分区单元800的数目可以不同于 GPC的数目,因此,在至少一个实施例中,每个ROP单元802可以耦合到每 个GPC。在至少一个实施例中,ROP单元802跟踪从不同GPC接收的分组, 并确定由ROP单元802生成的结果经由XBar路由到哪个。
图9示出了根据一个实施例的流式多处理器,例如图7的流式多处理器。 在至少一个实施例中,SM 900包括:指令高速缓存902;一个或更多个调度 单元904;寄存器文件908;一个或更多个处理核心910;一个或更多个特殊 功能单元(“SFU”)912;一个或更多个加载/存储单元(“LSU”)914;互连 网络916;共享存储器/L1高速缓存918;以及其任何合适的组合。在至少一 个实施例中,工作分配单元分派任务以在PPU的GPC上执行,并且每个任务 被分配给GPC内的特定DPC,并且,如果任务与着色器程序相关联,则任务 被分配给SM 900。在至少一个实施例中,调度单元904从工作分配单元接收 任务并管理分配给SM 900的一个或更多个线程块的指令调度。在至少一个实 施例中,调度单元904将用于执行的线程块调度为并行线程的扭曲,其中每 个线程块被分配至少一个扭曲。在至少一个实施例中,每个扭曲执行线程。 在至少一个实施例中,调度单元904管理多个不同的线程块,将扭曲分配给不同的线程块,然后在每个时钟周期中将多个不同协同组的指令分派给不同 的功能单元(例如,核心910、SFU 912和LSU 914)。
协同组可以指用于组织通信线程组的编程模型,其允许开发人员表示线 程通信的粒度,从而能够表达更丰富、更高效的并行分解。在至少一个实施 例中,协同启动的API支持线程块之间的同步以执行并行算法。在至少一个 实施例中,传统编程模型的应用程序提供了用于同步协同线程的单个简单构 造:跨越线程块的所有线程的屏障(例如syncthreads()函数)。但是,程序 员通常希望以小于线程块粒度的方式定义线程组,并在定义的组内进行同步, 以实现更高的性能、设计灵活性和以集合组范围功能接口的形式的软件重用。 协同组使程序员能够在子块(例如,小到单个线程)和多块粒度处显式定义 线程组,并执行集合操作,例如在协同组中的线程上进行同步。编程模型支 持跨软件边界的清洁成分,因此库和公用功能在其本地上下文中安全地同步, 而无需对收敛性进行假设。协同组基元使能新的协同并行模式,包括生产者- 消费者并行、机会并行和跨整个线程块网格的全局同步。
在至少一个实施例中,调度单元906被配置为向一个或更多个功能单元 发送指令,并且调度单元904包括两个调度单元906,使得在每个时钟周期期 间能够调度来自同一扭曲的两个不同指令。在至少一个实施例中,每个调度 单元904包括单个调度单元906或额外的调度单元906。
在至少一个实施例中,每个SM 900包括寄存器文件908,其为SM 900 的功能单元提供一组寄存器。在至少一个实施例中,在每个功能单元之间划 分寄存器文件908,使得每个功能单元被分配到寄存器文件908的专用部分。 在至少一个实施例中,寄存器文件908被分为由SM 900执行的不同扭曲,并 且寄存器文件908为连接到功能单元的数据路径的操作数提供临时存储。在 至少一个实施例中,每个SM 900包括多个处理核心910。在至少一个实施例 中,SM 900包括大量(例如,128个或更多)不同的处理核心910。在至少 一个实施例中,每个核心910包括全流水线、单精度、双精度和/或混合精度 处理单元,其包括浮点算术逻辑单元和整数算术逻辑单元。在至少一个实施 例中,浮点运算逻辑单元实现用于浮点运算的IEEE 754-2008标准。在至少一 个实施例中,核心910包括64个单精度(32位)浮点核心、64个整数核心、 32个双精度(64位)浮点核心和8个张量核心。
根据一个实施例,张量核心被配置为执行矩阵运算。在至少一个实施例 中,一个或更多个张量核心被包括在核心910中。在至少一个实施例中,张 量核心被配置为执行深度学习矩阵算法,例如用于神经网络训练和推断的卷 积操作。在至少一个实施例中,每个张量核心操作4x4矩阵并执行矩阵乘法 和累加操作D=A×B+C,其中A、B、C和D是4x4矩阵。
在至少一个实施例中,矩阵乘法输入A和B是16位浮点矩阵,累积矩 阵C和D是16位浮点或32位浮点矩阵。在至少一个实施例中,张量核心对 具有32位浮点累积的16位浮点输入数据进行操作。在至少一个实施例中, 16位浮点乘法需要64次操作,并生成一个全精度乘积,然后使用32位浮点 加法与其他中间乘积一起累积,以实现4x4x4矩阵乘法。在至少一个实施例 中,张量核心用于执行由这些较小元素构建的更大的二维或更高维矩阵运算。在至少一个实施例中,API(例如CUDA9C++API)公开了专门的矩阵加载、 矩阵乘法和累加运算以及矩阵存储操作,以有效地使用来自CUDA C++程序 的张量核心。在至少一个实施例中,在CUDA级、扭曲级接口假定16x16大 小的矩阵跨越所有32个扭曲线程。
在至少一个实施例中,每个SM 900包括执行特殊功能(例如属性评估、 平方根倒数等)的SFU 912。在至少一个实施例中,SFU 912包括被配置为遍 历分层树数据结构的树遍历单元。在至少一个实施例中,SFU 912包括被配置 为执行纹理映射过滤操作的纹理单元。在至少一个实施例中,纹理单元被配 置为从存储器和采样纹理映射加载纹理映射(例如,2D纹理阵列),以产生 采样纹理值,用于SM 900执行的着色器程序中。在至少一个实施例中,纹理 映射存储在共享存储器/L1高速缓存中。根据一个实施例,纹理单元实现纹理操作,例如使用mip-map(例如,不同细节级别的纹理映射)进行过滤操作。 在至少一个实施例中,每个SM 900包括两个纹理单元。
在至少一个实施例中,每个SM 900包括在共享存储器/L1高速缓存806 和寄存器文件908之间实现加载和存储操作的N个LSU 854。在至少一个实 施例中,每个SM 900包括互连网络816,其将每个功能单元连接到寄存器文 件908,LSU 914连接到寄存器文件908、共享存储器/L1高速缓存918。在至 少一个实施例中,互连网络916是能够被配置为将任何功能单元连接到寄存 器文件908中的任何寄存器,并连接LSU 914以在共享存储器/L1高速缓存 918中寄存文件和存储器位置的交叉开关。
在至少一个实施例中,共享存储器/L1高速缓存918是片上存储器阵列, 允许在SM900和基元引擎之间以及SM 900中的线程之间进行数据存储和通 信。在至少一个实施例中,共享存储器/L1高速缓存918包括128KB的存储 容量,并且位于从SM 900到分区单元的路径中。在至少一个实施例中,共享 存储器/L1高速缓存918用于高速缓存读和写。共享存储器/L1缓存918、L2 缓存和存储器中的一个或更多个是备份存储器。
在至少一个实施例中,将数据高速缓存和共享存储器功能组合到单个内 存块中,为两种类型的内存访问提供改进的性能。在至少一个实施例中,容 量被不使用共享存储器的程序用作或可用作高速缓存,例如,如果共享存储 器被配置为使用一半容量,则纹理和加载/存储操作可以使用剩余容量。根据 一个实施例,共享存储器/L1高速缓存918内的集成使得共享存储器/L1高速 缓存918能够充当流数据的高吞吐量管线,同时提供对频繁重复使用的数据 的高带宽和低延迟访问。当被配置为通用并行计算时,可以使用比图形处理更简单的配置。在至少一个实施例中,固定功能图形处理单元被绕过,创建 了更简单的编程模型。在通用并行计算配置中,在至少一个实施例中,工作 分配单元将线程块直接分配给DPC。根据一个实施例,块中的线程执行相同 的程序,在计算中使用唯一的线程ID以确保每个线程生成唯一的结果,使用 SM 900执行程序并执行计算,使用共享存储器/L1缓存918在线程之间通信, 以及使用LSU 914通过共享存储器/L1高速缓存918和存储器分区单元读写全 局存储器。在至少一个实施例中,当被配置为通用并行计算时,SM 900写入 调度单元可用于在DPC上启动新工作的命令。
在至少一个实施例中,PPU包括在台式计算机、膝上型计算机、平板计 算机、服务器、超级计算机、智能电话(例如,无线手持设备)、个人数字助 理(“PDA”)、数码相机、车辆、头戴式显示器、手持电子设备等中或与之耦 合。在至少一个实施例中,PPU实施于单个半导体基板上。在至少一个实施 例中,PPU与一个或更多个其他设备(例如额外的PPU、存储器、精简指令 集计算机(RISC)CPU、存储器管理单元(MMU)、数模转换器(DAC)等) 一起包括在片上系统(SoC)中。
在至少一个实施例中,PPU可以包括在包括一个或更多个存储器设备的 图形卡上。图形卡可以被配置为与台式计算机主板上的PCIe插槽接口。在又 一实施例中,PPU可以是包括在主板芯片组中的集成图形处理单元(“iGPU”)。
图10示出了根据一个实施例的可以实现各种架构和/或功能的计算机系 统1000。在至少一个实施例中,计算机系统1000被配置为实现在本发明中描 述的各种过程和方法。
在至少一个实施例中,计算机系统1000包括至少一个中央处理单元1002, 其连接到使用任何合适的协议实现的通信总线1010,例如PCI(外围成分互 连)、串行总线、AGP(加速图形端口)、超传输(HyperTransport),或任何其 他总线或点对点通信协议。在至少一个实施例中,计算机系统1000包括主存 储器1004,并且控制逻辑(例如,实现为硬件、软件或其组合)和数据存储 在可以采用随机存取存储器(“RAM”)形式的主存储器1004中。在至少一个 实施例中,网络接口子系统1022提供到其他计算设备和网络的接口,用于从 计算机系统1000接收数据并将数据发送到其他系统。
在至少一个实施例中,计算机系统1000包括可使用传统CRT(阴极射线 管)、LCD(液晶显示器)、LED(发光二极管)、等离子体显示器或其他合适 的显示技术来实现的输入设备1008、并行处理系统1012和显示设备1006。 在至少一个实施例中,从诸如键盘、鼠标、触摸板、麦克风等输入设备1008 接收用户输入。在至少一个实施例中,上述模块中的每一个可以位于单个半 导体平台上以构成处理系统。
在本说明书中,单个半导体平台可以指唯一的基于单一半导体的集成电 路或芯片。应注意的是,术语“单个半导体平台”也可以指具有更高连接性 的多芯片模块,其模拟片上操作,并在使用传统中央处理器(“CPU”)和总 线实现的基础上进行实质性改进。当然,根据用户的需要,各种模块也可以 独立设置或位于半导体平台的各种组合中。
在至少一个实施例中,以机器可读可执行代码或计算机控制逻辑算法的 形式的计算机程序存储在主存储器1004和/或辅助存储器中。根据一个实施例, 如果由一个或更多个处理器执行,则计算机程序使得系统1000能够执行各种 功能。存储器1004、存储和/或任何其他存储器是计算机可读介质的可能示例。 辅助存储器可以指任何合适的存储设备或系统,例如硬盘驱动器和/或可移动 存储驱动器,表示软盘驱动器、磁带驱动器、光盘驱动器、数字多功能磁盘 (“DVD”)驱动器、记录设备、通用串行总线(“USB”)闪存。
在至少一个实施例中,在中央处理器1002、并行处理系统1012、能够同 时具有两个中央处理器1002的至少一部分能力的集成电路、并行处理系统 1012、芯片组(例如,被设计用来工作并作为执行相关功能的单元出售的集 成电路组等);以及任何合适的集成电路的组合。
在至少一个实施例中,在通用计算机系统、电路板系统、专用于娱乐目 的的游戏控制台系统、特定应用的系统等的上下文中实现各种先前图形的架 构和/或功能。在至少一个实施例中,计算机系统1000可以采用台式计算机、 膝上型计算机、平板计算机、服务器、超级计算机、智能电话(例如,无线 手持设备)、个人数字助理(“PDA”)、数字相机、车辆、头戴式显示器、手 持电子设备、移动电话设备、电视、工作站、游戏机、嵌入式系统和/或任何 其他类型的逻辑的形式。
在至少一个实施例中,并行处理系统1012包括多个PPU 1014和相关存 储器1016。在至少一个实施例中,PPU经由互连1018和交换机1020或多路 复用器连接到主机处理器或其他外围设备。在至少一个实施例中,并行处理 系统1012将计算任务分布在可并行化的PPU 1014上-例如,作为计算任务分 布在多个GPU线程块上的一部分。在至少一个实施例中,存储器通过PPU 1014的部分或全部共享和可访问(例如,用于读取和/或写入访问),尽管这 种共享存储器相对于使用本地存储器和驻留在PPU上的寄存器可能带来性能 损失。在至少一个实施例中,PPU 1014的操作通过使用例如__syncthreads() 的命令来同步,其要求块中的所有线程(例如,跨多个PPU 1014执行的)在 继续之前达到代码的特定执行点。
因此,说明书和附图应视为示例性的,而非限制性的。然而,显而易见 的是,可以对其进行各种修改和改变而不脱离权利要求所述的发明更广泛的 精神和范围。
其他变型在本公开的精神内。因此,尽管所公开的技术易于进行各种变 构和替代构造,但是某些示出的实施例由此在附图中示出并且已经在上面进 行了详细描述。然而,应当理解,无意将本发明限制为所公开的特定形式或 形式,相反,其意图是涵盖落入本发明的精神和范围内的所有修改、替代构 造和等同形式,如所附权利要求所定义的。
在描述所公开的实施例的上下文中(特别是在所附权利要求的上下文中) 术语“一”、“一个”和“所述”以及类似指代的使用应被解释为涵盖单数和 复数,除非本文另有说明或与上下文明显矛盾。除非另外指出,否则术语“包 括”、“具有”、“包含”和“含有”应解释为开放性的术语(例如,意思是“包 括但不限于”)。术语“连接”(未经修改且指的是物理连接),应理解为完全 或部分地包含在,附加到或连接在一起,即使有某物介入。本文中数值范围 的引用仅旨在用作一种简写方法,除非本文另有说明,否则分别指代落入该 范围内的每个单独值,并且每个单独值都被并入说明书中,就如同在此单独 引用一样。术语“集合”(例如,“项目的集合)”或“子集”的使用,除非上 下文另有说明或与之矛盾,否则应解释为包含一个或更多个成员的非空集合。 此外,除非上下文另有说明或与之矛盾,否则相应集合的术语“子集”不是 必需表示相应集合的适当子集,但是该子集和相应集合可以相等。
连接性语言,例如“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执行部分指令,而图形处理器单元执行其他指令。在一个 实施例中,计算机系统的不同成分具有独立处理器,并且不同的处理器执行 指令的不同子集。
因此,在一个实施例中,计算机系统被配置为实现单独或共同执行本文 所述的过程的操作的一个或更多个服务,并且这样的计算机系统被配置有使 能操作的执行的合适的硬件和/或软件。此外,实现本公开的实施例的计算机 系统是单个设备,并且在另一实施例中,是一种分布式计算机系统,其包括 以不同方式操作的多个设备,使得该分布式计算机系统执行本文所述的操作, 并且使得单个设备不执行所有操作。
除非另外要求,本文提供的任何和所有示例或示例性语言(例如,“例如”) 的使用仅旨在更好地阐明本发明的实施例,而不对本发明的范围构成限制。 本说明书中的语言不应解释为表示任何未要求保护的要素对于实施本发明是 必不可少的。
在此对本发明的实施例进行了描述,包括发明人为实施发明所知的最佳 方式。通过阅读上述描述,这些实施例的变化对本领域技术人员来说将变得 明显。发明人期望本领域技术人员视情况采取适当的变化,并且发明人意图 实施本发明的实施例,而非本文中具体描述的实施例。因此,本公开的范围 包括此处所附权利要求书中所述的适用法律允许的所有修改和等价物。此外, 上述各要素的任何组合,在其所有可能的变化中,均包含在本公开范围之内, 除非本公开另有说明或上下文另有明确矛盾。
本文引用的所有参考文献,包括出版物、专利申请和专利,均以引用的 方式并入本文,就像每一个参考文献都是单独且明确地被指出要以引用的方 式进行合并,并且其全部内容在本文中进行了阐述一样。
在说明书和权利要求书中,可能使用了术语“耦合”和“连接”及其派 生词。应当理解,这些术语可能不旨在作为彼此的同义词。相反,在特定示 例中,“连接”或“耦合”可用于指示两个或更多个元件彼此直接或间接地物 理或电接触。“耦合”也可能意味着两个或多个元素彼此不直接接触,但仍彼 此协作或交互。
除非另有说明,否则应理解,在整个说明书中,诸如“处理”、“计算处 理”、“计算”、“确定”等术语均指计算机或计算系统或类似的电子计算设备 的动作和/或过程,这些电子设备将在计算系统的寄存器和/或存储器中表示为 物理量(例如电子的)的数据操作和/或转换为类似地表示为计算系统的存储 器、寄存器或其他此类信息存储器、传输或显示设备中的物理量的其他数据。
在类似的方式中,术语“处理器”可以指处理来自寄存器和/或存储器的 电子数据并将该电子数据转换成可以存储在寄存器和/或存储器中的其他电子 数据的任何设备或设备的一部分。作为非限制性示例,“处理器”可以是中央 处理单元(CPU)或图形处理单元(GPU)。“计算平台”可以包括一个或更 多个处理器。如本文所使用的,“软件”过程可以包括例如随时间执行工作的 软件和/或硬件实体,诸如任务、线程和智能代理。同样,每个过程可以指代 多个过程,用于依次或并行、连续或间歇地执行指令。术语“系统”和“方 法”在本文中可互换使用,从而使系统可以实现一种或更多种方法并且该方 法可以被认为是系统。
在本文中,可以参考获得、获取、接收或将模拟或数字数据输入子系统、 计算机系统或计算机实现的机器。可以以多种方式来完成获得、获取、接收 或输入模拟和数字数据的过程,例如通过接收作为功能调用或对应用程序接 口的调用的参数的数据。在一些实施方式中,获得、获取,接收或输入模拟 或数字数据的过程可以通过经由串行或并行接口传输数据来完成。在另一个 实施方式中,获得、获取、接收或输入模拟或数字数据的过程可以通过经由 计算机网络将数据从提供实体转移到获取实体来完成。也可以参考提供、输 出、传输、发送或呈现模拟或数字数据。在各种示例中,提供、输出、传输、 发送或呈现模拟或数字数据的过程可以通过将数据作为功能调用的输入或输 出参数、应用程序编程接口或进程间通信机制的参数进行传输来完成。
尽管以上讨论阐述了所描述的技术的示例实施方式,但是其他架构可以 用于实现所描述的功能,并且意图在本公开的范围内。此外,尽管出于讨论 目的在上面定义了具体的职责分配,但是根据情况,各种功能和职责可能以 不同的方式分配和划分。
此外,尽管已经以专用于结构特征和/或方法动作的语言描述了主题,但 应理解,所附权利要求书中定义的主题不必限于所描述的特定特征或动作。 相反,将特定特征和动作公开为实现权利要求的示例性形式。

Claims (26)

1.一种处理器,包括:
一个或更多个算术逻辑单元(ALU),用于:
使用至少一个神经网络从图像序列中的各个图像推断内容;以及
使用所述至少一个神经网络来推断所述图像序列中所述内容的变化。
2.根据权利要求1所述的处理器,其中所述一个或更多个ALU用于:
使用概率模型来确定所述图像序列中的异常事件,以响应于获取与所述图像序列中的所述内容中的所述变化相关联的信息以及获取与来自重构所述图像序列的误差相关联的信息。
3.根据权利要求1所述的处理器,其中所述一个或更多个ALU用于训练所述至少一个神经网络的第一组成部分,其中所述第一组成部分是具有映射所述图像序列以在特征空间中生成一个或更多个潜在表示的内部层的自动编码器。
4.根据权利要求3所述的处理器,其中所述自动编码器是卷积自动编码器。
5.根据权利要求3所述的处理器,其中所述一个或更多个ALU用于训练所述至少一个神经网络的第二组成部分,其中所述第二组成部分是从所述第一组成部分接收所述一个或更多个潜在表示以推断所述图像序列在一段时间内的变化的长短期记忆(LSTM)。
6.根据权利要求1所述的处理器,其中来自所述图像序列中的各个图像的内容包括空间信息。
7.根据权利要求1所述的处理器,其中所述图像序列中的所述内容中的变化包括时间信息。
8.根据权利要求1所述的处理器,其中所述一个或更多个ALU用于从至少一个或更多个静止摄像机接收所述图像序列,其中所述一个或更多个静止摄像机提供未重构的用于异常事件检测的所述图像序列。
9.一种系统,包括:
一个或更多个计算机,具有一个或更多个处理器,用于训练一个或更多个神经网络,以从图像序列中的各个图像推断内容,以及推断在所述图像序列中的所述内容中的变化。
10.根据权利要求9所述的系统,其中所述一个或更多个处理器用于训练所述一个或更多个神经网络,以:
将所述图像序列输入到所述一个或更多个神经网络中的第一神经网络,以从所述图像序列的各个图像生成表示内容的第一组信息;
将所述第一组信息输入到所述一个或更多个神经网络中的第二神经网络,以生成与所述图像序列中的所述内容中的变化相关联的第二组信息;
使用所述第一组信息再现所述图像序列;以及
至少部分地基于接收与再现的图像序列相关联的误差测量和所述第二组信息,使用概率模型来生成第三组信息。
11.根据权利要求10所述的系统,其中所述第一神经网络是将所述图像序列作为输入来生成所述第一组信息的卷积自动编码器。
12.根据权利要求11所述的系统,其中所述卷积自动编码器映射所述图像序列的特征以在缩小的特征空间中生成所述第一组信息,从所述缩小的特征空间中的所述第一组信息能够近似地再现所述图像序列。
13.根据权利要求10所述的系统,其中所述第二神经网络是以所述第一组信息作为输入的长短期记忆(LSTM)。
14.根据权利要求10所述的系统,其中所述一个或更多个处理器用于训练所述一个或更多个神经网络,以从一个或更多个静态摄像机获取所述图像序列以检测所述图像序列中的异常事件。
15.根据权利要求10所述的系统,其中所述第三组信息包括所述图像序列中异常事件的至少一个指示符。
16.根据权利要求10所述的系统,其中所述概率模型预先在训练图像集合上训练。
17.一种机器可读介质,其上存储有指令集,若所述指令集由一个或更多个处理器执行,使所述一个或更多个处理器至少:
训练至少一个神经网络以从图像序列中的各个图像推断内容;以及
训练所述至少一个神经网络以推断所述图像序列中的所述内容中的变化。
18.根据权利要求17所述的机器可读介质,其中所述指令集还使得所述一个或更多个处理器通过使用概率模型来生成与所述图像序列中的正常行为的可能性相关联的信息来至少训练所述至少一个神经网络。
19.根据权利要求18所述的机器可读介质,其中所述概率模型是高斯混合模型(GMM)。
20.根据权利要求19所述的机器可读介质,其中,所述GMM至少部分地基于与所述内容中的变化相关联的信息来确定指示一个或更多个异常事件的可能性的分数。
21.一种方法,包括:
使用至少一个神经网络的第一部分从图像序列中的各个图像推断内容;以及
使用所述至少一个神经网络的第二部分来推断所述图像序列中的所述内容中的变化。
22.根据权利要求21所述的方法,其中所述第一部分是卷积自动编码器。
23.根据权利要求21所述的方法,其中所述第二部分是长短期记忆(LSTM)。
24.根据权利要求21所述的方法,其中来自所述图像序列中的各个图像的内容包括所述各个图像的一个或更多个潜在表示。
25.根据权利要求24所述的方法,还包括:
使用所述至少一个神经网络的第三部分至少部分地基于所述图像序列中的所述内容中的变化来确定所述图像序列中的一个或更多个异常事件。
26.根据权利要求25所述的方法,其中所述至少一个神经网络的所述第三部分是概率模型。
CN202010568819.3A 2019-06-26 2020-06-19 用于自监督事件学习与异常检测的神经架构 Pending CN112149795A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/453,913 US20200410322A1 (en) 2019-06-26 2019-06-26 Neural architecture for self supervised event learning and anomaly detection
US16/453,913 2019-06-26

Publications (1)

Publication Number Publication Date
CN112149795A true CN112149795A (zh) 2020-12-29

Family

ID=70918306

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010568819.3A Pending CN112149795A (zh) 2019-06-26 2020-06-19 用于自监督事件学习与异常检测的神经架构

Country Status (3)

Country Link
US (1) US20200410322A1 (zh)
EP (1) EP3757899A1 (zh)
CN (1) CN112149795A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113344875A (zh) * 2021-06-07 2021-09-03 武汉象点科技有限公司 一种基于自监督学习的异常图像检测方法
WO2022264034A1 (en) * 2021-06-17 2022-12-22 International Business Machines Corporation Exception summary for invalid values detected during instruction execution

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200133308A1 (en) * 2018-10-18 2020-04-30 Cartica Ai Ltd Vehicle to vehicle (v2v) communication less truck platooning
US12330646B2 (en) 2018-10-18 2025-06-17 Autobrains Technologies Ltd Off road assistance
US10748038B1 (en) 2019-03-31 2020-08-18 Cortica Ltd. Efficient calculation of a robust signature of a media unit
US11457026B2 (en) * 2019-09-23 2022-09-27 Randeep Bhatia Systems and methods for securing industrial networks
US11580741B2 (en) * 2019-12-30 2023-02-14 Industry Academy Cooperation Foundation Of Sejong University Method and apparatus for detecting abnormal objects in video
US11797565B2 (en) * 2019-12-30 2023-10-24 Paypal, Inc. Data validation using encode values
US11669428B2 (en) 2020-05-19 2023-06-06 Paypal, Inc. Detection of matching datasets using encode values
US20210389909A1 (en) * 2020-06-16 2021-12-16 Samsung Electronics Co., Ltd. Edge solid state drive (ssd) device and edge data system
US12049116B2 (en) 2020-09-30 2024-07-30 Autobrains Technologies Ltd Configuring an active suspension
CN114415163A (zh) 2020-10-13 2022-04-29 奥特贝睿技术有限公司 基于摄像头的距离测量
FR3118502B1 (fr) * 2020-12-28 2024-02-02 Commissariat Energie Atomique Procédé de construction et d’entraînement d’un détecteur de la présence d’anomalies dans un signal temporel, dispositifs et procédé associés
US20220222535A1 (en) * 2021-01-08 2022-07-14 Distech Controls Inc. Computing device and method using a neural network to analyze temperature measurements of an infrared sensor
US12257949B2 (en) 2021-01-25 2025-03-25 Autobrains Technologies Ltd Alerting on driving affecting signal
JP2022150451A (ja) * 2021-03-26 2022-10-07 富士通株式会社 情報処理装置、推論実行制御方法および推論実行制御プログラム
US11847111B2 (en) * 2021-04-09 2023-12-19 Bitdefender IPR Management Ltd. Anomaly detection systems and methods
EP4099224A1 (en) * 2021-05-31 2022-12-07 Grazper Technologies ApS A concept for detecting an anomaly in input data
US12139166B2 (en) 2021-06-07 2024-11-12 Autobrains Technologies Ltd Cabin preferences setting that is based on identification of one or more persons in the cabin
EP4194300A1 (en) 2021-08-05 2023-06-14 Autobrains Technologies LTD. Providing a prediction of a radius of a motorcycle turn
CN113469289B (zh) * 2021-09-01 2022-01-25 成都考拉悠然科技有限公司 视频自监督表征学习方法、装置、计算机设备和介质
CN113793327B (zh) * 2021-09-18 2023-12-26 北京中科智眼科技有限公司 一种基于token的高铁异物检测方法
US12293560B2 (en) 2021-10-26 2025-05-06 Autobrains Technologies Ltd Context based separation of on-/off-vehicle points of interest in videos
US20230376743A1 (en) * 2022-05-19 2023-11-23 Oracle International Corporation Trace representation learning

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106295503A (zh) * 2016-07-25 2017-01-04 武汉大学 区域卷积神经网络的高分辨率遥感影像舰船目标提取方法
US20180165554A1 (en) * 2016-12-09 2018-06-14 The Research Foundation For The State University Of New York Semisupervised autoencoder for sentiment analysis
US20180219895A1 (en) * 2017-01-27 2018-08-02 Vectra Networks, Inc. Method and system for learning representations of network flow traffic
CN108805283A (zh) * 2017-05-05 2018-11-13 英特尔公司 在机器学习中对神经网络的拓扑的高效学习和使用
CN109522828A (zh) * 2018-11-01 2019-03-26 上海科技大学 一种异常事件检测方法及系统、存储介质及终端
CN109885918A (zh) * 2019-01-18 2019-06-14 广东镭奔激光科技有限公司 激光冲击表面粗糙度的预测方法
CN110046537A (zh) * 2017-12-08 2019-07-23 辉达公司 使用递归神经网络进行动态面部分析的系统和方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049685B2 (en) * 2013-03-12 2018-08-14 Aaware, Inc. Integrated sensor-array processor
US10719706B1 (en) * 2018-06-19 2020-07-21 Architecture Technology Corporation Systems and methods for nested autoencoding of radar for neural image analysis

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106295503A (zh) * 2016-07-25 2017-01-04 武汉大学 区域卷积神经网络的高分辨率遥感影像舰船目标提取方法
US20180165554A1 (en) * 2016-12-09 2018-06-14 The Research Foundation For The State University Of New York Semisupervised autoencoder for sentiment analysis
US20180219895A1 (en) * 2017-01-27 2018-08-02 Vectra Networks, Inc. Method and system for learning representations of network flow traffic
CN108805283A (zh) * 2017-05-05 2018-11-13 英特尔公司 在机器学习中对神经网络的拓扑的高效学习和使用
CN110046537A (zh) * 2017-12-08 2019-07-23 辉达公司 使用递归神经网络进行动态面部分析的系统和方法
CN109522828A (zh) * 2018-11-01 2019-03-26 上海科技大学 一种异常事件检测方法及系统、存储介质及终端
CN109885918A (zh) * 2019-01-18 2019-06-14 广东镭奔激光科技有限公司 激光冲击表面粗糙度的预测方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
LIU WEN: "Future Frame Prediction for Anomaly Detection-A New Baseline", 2018 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION *
LIU WEN: "Future_Frame_Prediction_for_Anomaly_Detection_-_A_New_Baseline", 《2018 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION》 *
WANG LIN: "Abnormal Event Detection in Videos Using Hybrid Spatio-Temporal Autoencoder", 《2018 IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING》 *
WANG LIN: "Abnormal Event Detection in Videos Using Hybrid Spatio-Temporal Autoencoder", 2018 IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113344875A (zh) * 2021-06-07 2021-09-03 武汉象点科技有限公司 一种基于自监督学习的异常图像检测方法
WO2022264034A1 (en) * 2021-06-17 2022-12-22 International Business Machines Corporation Exception summary for invalid values detected during instruction execution
US11734013B2 (en) 2021-06-17 2023-08-22 International Business Machines Corporation Exception summary for invalid values detected during instruction execution
GB2622160A (en) * 2021-06-17 2024-03-06 Ibm Exception summary for invalid values detected during instruction execution

Also Published As

Publication number Publication date
US20200410322A1 (en) 2020-12-31
EP3757899A1 (en) 2020-12-30

Similar Documents

Publication Publication Date Title
CN112149795A (zh) 用于自监督事件学习与异常检测的神经架构
US11836597B2 (en) Detecting visual artifacts in image sequences using a neural network model
JP7684955B2 (ja) 1つ又は複数のニューラル・ネットワークを使用するビデオ・アップサンプリング
US20200394459A1 (en) Cell image synthesis using one or more neural networks
US11720472B2 (en) Liveness as a factor to evaluate memory vulnerability to soft errors
US20210314629A1 (en) Using residual video data resulting from a compression of original video data to improve a decompression of the original video data
CN111798450A (zh) 使用无监督神经网络训练技术的分割
CN111783817A (zh) 使用神经网络进行图像识别
US20210067735A1 (en) Video interpolation using one or more neural networks
US11498007B2 (en) Measuring and detecting idle processing periods and identifying root causes thereof in cloud-based, streaming applications
US11925860B2 (en) Projective hash maps
CN111667542A (zh) 适用于人工神经网络的用于处理压缩数据的解压缩技术
US11522565B2 (en) Packed error correction code (ECC) for compressed data protection
US11620169B2 (en) Barrierless and fenceless shared memory synchronization with write flag toggling
US20230062503A1 (en) Pruning and accelerating neural networks with hierarchical fine-grained structured sparsity
US11830145B2 (en) Generation of differentiable, manifold meshes of arbitrary genus
CN113822975B (zh) 用于对图像进行有效采样的技术
CN113743573B (zh) 用于访问和利用压缩数据及其状态信息的技术
US20240127041A1 (en) Convolutional structured state space model
CN111832698A (zh) 神经网络的小样本训练
US20230130642A1 (en) Rail power density aware standard cell placement for integrated circuits
US12141451B2 (en) Memory page access instrumentation
US20220365857A1 (en) Runtime in-system testing
CN116073949B (zh) 用于使用二进制聚类的前向纠错编码的方法和系统
US12315131B2 (en) Determining contour edges for an image

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