CN115767091A - 使用神经网络进行基于熵的预滤波用于流式传输应用 - Google Patents

使用神经网络进行基于熵的预滤波用于流式传输应用 Download PDF

Info

Publication number
CN115767091A
CN115767091A CN202210928887.5A CN202210928887A CN115767091A CN 115767091 A CN115767091 A CN 115767091A CN 202210928887 A CN202210928887 A CN 202210928887A CN 115767091 A CN115767091 A CN 115767091A
Authority
CN
China
Prior art keywords
frame
dnn
entropy
value
map
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
CN202210928887.5A
Other languages
English (en)
Inventor
K·普拉萨德
H·S·阿扎
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 CN115767091A publication Critical patent/CN115767091A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • 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/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
    • 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
    • G06N3/0455Auto-encoder networks; Encoder-decoder 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/0464Convolutional networks [CNN, ConvNet]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • 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/048Activation functions
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本公开涉及使用神经网络进行基于熵的预滤波用于流式传输应用。在各种示例中,用于内容流式传输应用的基于深度神经网络(DNN)的预滤波器用于动态调整场景熵(例如复杂性),以响应最终用户设备不断变化的网络或系统条件。例如,在识别网络和/或系统性能问题或降级的情况下,DNN可以作为帧预滤波器实现,以在流式传输之前降低帧的复杂度或熵,从而允许以降低的比特率流式传输帧,而无需更改分辨率。可以调整基于DNN的预滤波器以保持沿对象、边界和/或表面边缘的图像细节,以便场景导航——例如由参与应用程序实例的用户导航——对用户来说可能更容易、更自然。

Description

使用神经网络进行基于熵的预滤波用于流式传输应用
背景技术
传统的视频游戏流式传输系统采用动态分辨率变化(例如,从1080p到720p等)来应对不断变化的网络条件。例如,这些系统可能会随着网络带宽的下降而降低帧分辨率,并可能随着网络带宽的增加而增加帧分辨率。为此,这些传统系统可能会在视频流中引入编码内帧(“I帧”)或其他帧内类型,以实现分辨率转换。但是,I帧仅进行空间压缩,而不进行时间压缩,因此需要更高的比特率才能传输。因此,由于动态分辨率变化可能是响应已经紧张的网络条件而触发的,因此这些传统系统可能会在信道容量降低的时间内传输高比特率I帧。因此,最终用户设备可能会接收不完整的I帧(例如,由于分组丢失)和/或可能接收具有较高延迟的完整或不完整的I帧。因此,流的帧的图片质量可能会降低,并且帧可能会以更高的延迟接收,从而导致明显的滞后,从而影响用户体验,特别是在高性能应用中,例如云游戏,虚拟现实,增强现实和/或混合现实应用。例如,从这些传统系统接收的流可能显示降级的视频流,其中图像细节因分组丢失而减少,而不考虑重要场景信息的保存。此外,这些传统系统可能需要重新初始化客户端解码器以支持新分辨率,这会消耗最终用户端的额外资源,同时进一步导致显示视频的质量下降-例如,通过“挂起”,“断断续续”,“故障”或“抖动”的方式,其中视频可能以降低的帧速率或中断的帧节奏显示。
发明内容
本公开的实施例涉及用于内容流式传输应用的基于神经网络的预滤波器。公开了动态适应场景熵(例如,复杂性)以响应于不断变化的网络或系统条件以管理流传输比特率的系统和方法。例如,与传统系统相反,可以监视最终用户设备的网络和/或系统条件,以确定是否应调整帧熵以降低流式传输视频的比特率。在网络和/或系统条件最佳的情况下,可能不需要降低,并且可以将全复杂性(最高熵)帧流式传输到最终用户设备。但是,如果识别出网络和/或系统性能问题或降级,则可以将深度神经网络(DNN)实现为帧预滤波器,以在流式传输之前降低帧的复杂性或熵,从而允许以降低的比特率流式传输帧,而无需更改分辨率。因此,由于不需要更改帧分辨率,因此可能不需要将I帧或其他帧内类型插入到容量减小的网络信道中,从而也避免了最终用户设备的解码器重新初始化。为了考虑预滤波器中细节的丢失,可以调整基于DNN的预滤波器,以保持沿对象、边界和/或表面边缘(保留它们在视觉/感知上可能很重要)的图像细节,因此场景导航(例如由参与应用程序实例的用户导航)对用户来说可能更容易、更自然。
此外,在实施例中,不同的DNN可以针对不同的熵值进行训练,以适应不同的网络和/或系统条件。例如,随着网络条件的改善,可以选择一个DNN,该DNN比网络条件受到损害时预滤波帧更少(例如,导致更高的熵预滤波帧)。通过这种方式,而不是调整帧分辨率——传统系统的缺点——本系统可以使用智能选择的DNN来调整滤波量,这些DNN可以调整比特率以满足最终用户设备的当前网络和/或系统条件。
附图说明
下面参考附图详细描述用于内容流式传输应用的基于神经网络的预滤波器的本公开系统和方法,其中:
图1A至图1B是根据本公开的一些实施例的示出了用于训练深度神经网络(DNN)以预滤波帧的示例过程的数据流图;
图1C是根据本公开的一些实施例的用于预滤波帧的示例DNN架构;
图2A是根据本公开的一些实施例的示出了用于生成边缘图的示例过程的数据流图;
图2B是根据本公开的一些实施例示出了对边缘图进行时间滤波的示例过程的数据流图;
图2C是根据本公开的一些实施例的一个框架的示例可视化;
图2D是根据本公开的一些实施例的使用图2C的框架生成的深度图的示例可视化;
图2E是根据本公开的一些实施例的使用图2C的框架生成的表面法线图的示例可视化;
图2F是根据本公开的一些实施例的使用图2C的框架生成的边缘图的示例可视化;
图3是根据本公开的一些实施例示出了用于训练DNN以对帧进行预滤波的方法的流程图;
图4是根据本公开的一些实施例示出了用于使用DNN对帧进行预滤波的示例过程的数据流程图;
图5A至图5D是根据本公开的一些实施例的不同熵水平下预滤波帧的示例可视化;
图6是根据本公开的一些实施例示出了使用DNN对帧进行预滤波的方法的流程图;
图7是适合用于实现本公开的一些实施例的示例内容流式传输系统的框图;
图8是适用于实现本公开的一些实施例的示例计算设备的框图;以及
图9是适合用于实现本公开的一些实施例的示例数据中心的框图。
具体实施方式
公开了用于内容流式传输应用的与基于神经网络的预滤波器相关的系统和方法。例如,本公开的系统和方法可以实现以用于其中可以实现帧预滤波以降低帧的比特率或复杂度的任何应用,-例如在模拟应用中,虚拟现实(VR),增强现实(AR),和/或混合现实(MR)应用、内容编辑应用、社交媒体应用、远程桌面应用、内容流式传输应用、游戏流式传输应用、视频会议应用和/或类似应用。因此,本文中描述的预滤波器可用于调整来自任何来源和任意数量的不同应用类型内生成的图像或视频的帧熵水平。
所公开的系统和方法可以使用至少一个深度神经网络(DNN)来预滤波帧(例如,在压缩和传输到最终用户设备之前)。例如,根据最终用户设备的当前系统和/或网络条件,可以确定滤波的熵控制参数(例如λ)。在一些实施例中,熵控制参数可以与给定时间场景所需的熵水平、复杂度或细节成反比。因此,当系统和/或网络性能较低时,可能需要较低的熵水平,因此熵控制参数可能更高,因此选择基于DNN的预滤波器,以更彻底地对帧进行滤波或模糊,从而降低流的比特率。因此,在实施例中,任意数量的不同DNN可以被训练为对应于相应熵控制参数的预滤波器。可以确定网络和/或系统条件,与查找表进行比较或插入算法中,并且可以计算熵控制参数。计算完成后,熵控制参数可用于选择相应的基于DNN的预滤波器,并且可以对帧进行滤波以生成预滤波帧。随着网络和/或系统性能在流期间发生变化,可以更改基于DNN的预滤波器,以考虑不断变化的熵控制参数。在一些实施例中,除了具有用于不同熵控制参数值的单独DNN之外或作为具有用于不同熵控制参数值的单独DNN的替代,单个DNN可以被训练以基于当前确定的熵控制参数值执行不同级别的滤波。在这样的实施例中,熵控制参数的值可以作为单独的输入提供给DNN,并且该值可以被DNN用于执行相关的滤波级别。
在训练期间,一个或更多个DNN可以通过涉及一个或更多个损失函数的无监督学习过程进行训练。例如,在每次迭代中,DNN可以接收当前帧和边缘图(如显著性图、二进制图或图像和/或类似图)作为输入,这些图使用指示帧中描绘的表面、对象和/或边界边缘位置的值进行编码。在某些示例中,为了计算每个帧的边缘图,可以使用深度信息和/或表面法线信息。例如,深度信息和/或表面法线信息可以由当前正在执行的应用程序维护,并且此信息可用于生成边缘图或显著性图。然后,可以使用深度信息或表示和/或表面法线信息或表示来生成指示帧所描绘的边缘的边缘图。例如,深度表示和/或法线表示可以被缩放和/或归一化、滤波(例如,使用形态闭合,包括膨胀和侵蚀),和/或可以经历边缘检测操作(例如,例如通过使用边缘检测算法,包括Sobel运算符)。生成的边缘图可以包括显著性图、二进制图或图像和/或其他边缘图表示形式。在这样的示例中,边缘像素可以用第一值(例如,1)编码,非边缘像素可以用第二值(例如,0)进行编码,以指示边缘在帧中的位置。与帧对应的边缘图和帧可以作为输入应用于DNN。
DNN可以计算滤波图像作为输出,并且可以使用一个或更多个损失函数将滤波图像(在实施例中以无监督方式)与帧和/或边缘图进行比较。例如,边缘损失函数可用于训练基于DNN的预滤波器,以维护场景的帧与场景的对应预滤波帧之间的边缘细节,以便沿帧中识别的边缘和/或识别的边缘附近的像素值被维持,或被紧密地维持,以便导航通过场景更清晰。在实施例中,边缘损失函数可以比较帧的像素值和在被确定为与边缘图的边缘相对应的像素位置处的预滤波帧的像素值。也就是说,对于来自边缘图的指示为对应于边缘的给定像素,帧中该位置的像素值和预滤波帧中该位置的像素值可以以这样的方式进行比较,即差异受到惩罚——例如,当像素值差异更大时,损失更高。作为另一示例,可以使用对应于减少或满足与当前所需熵控制参数值相对应的帧熵的熵损失函数(例如,熵控制参数的值越高,预滤波帧的熵越低,反之亦然)。例如,熵损失函数可以测量预滤波帧的部分内的像素梯度——与使用边缘图识别的边缘相对应的部分除外——以减少相邻像素之间的梯度。在这样的示例中,熵控制参数值越高,使用熵损失函数惩罚梯度越多。因此,当使用熵控制参数的高值(例如,指示较低的帧熵)时,相邻或周围像素之间的梯度可以减小,使得相邻或周围像素之间的像素值差异最小。类似地,对于较低的熵控制参数值(例如,表示较高的帧熵),相邻或周围像素之间的梯度可以减小,以便允许像素的差异更大(但不如全熵帧大)。如果使用多个损失函数,则在训练期间可能会对损失函数进行加权。例如,熵控制参数值可用于对损失函数进行加权,以便对于较高的熵控制参数值,更严格地强制相邻或周围像素的像素值之间的一致性,反之亦然。
使用的DNN可能包括任何DNN类型——如卷积神经网络(CNN)——可以包括任何体系结构类型(如自动编码器体系结构)。训练后,所选的基于DNN的预滤波器可用于使用输入帧和相应的边缘图生成预滤波帧。然后,可以以比输入帧更低的比特率(期望小于全熵)对计算的预滤波帧进行编码和压缩,并且编码的帧可以传输到最终用户设备。因此,流的比特率可能会降低,并且可能不会随着帧分辨率的变化而引入延迟——例如,因为帧分辨率始终保持一致,并且仅更改帧内的细节级别。
参考图1A至图1B,图1A至图1B是根据本公开的一些实施例的用于帧预滤波的过程100A和100B的示例数据流图。应当理解,本文所述的这种和其他布置仅作为示例进行阐述。除了或代替所示的布置和元件,可使用其他布置和元件(例如,机器、接口、功能、次序、功能分组等),并且可完全省略一些元件。进一步,本文描述的许多元件是可以被实现为分立或分布式组件或与其他组件结合、以及以任何合适的组合和位置的功能实体。本文描述为由实体执行的各个功能可由硬件、固件和/或软件执行。例如,各个功能可以由处理器执行存储在存储器中的指令来实现。过程100A和100B可以使用与图7的示例内容流式传输系统700、图8的示例计算设备800和/或图9的示例数据中心900类似的特征、功能和/或组件来实现。
图1A的过程100A包括应用引擎102、边缘图生成器104、边缘图106、帧数据108、DNN110、预滤波帧112和训练引擎114。在一些实施例中,应用引擎102可以是流式传输应用,其被配置成提供图像帧、I帧、代码、文件以及显示应用程序可视化所必需的其它数据。通过非限制性示例,应用引擎102可以执行模拟应用、虚拟现实(VR)、增强现实(AR)和/或混合现实(MR)应用、内容编辑应用、社交媒体应用、远程桌面应用、内容流式传输应用、游戏流式传输应用、视频会议应用和/或类似应用。
在操作中,可以实现过程100A以通过涉及一个或更多个损失函数的无监督学习过程来训练DNN 110。最初,在每个间隔,应用引擎102可以向边缘图生成器104提供帧——例如图1B的输入帧120,其可以描绘视频、游戏、应用程序等的帧。边缘图生成器104可以使用帧的深度信息和/或表面法线信息来计算边缘图106。在一些实施例中,例如当深度信息和/或表面法线信息不可用于应用程序时,边缘图生成器104可以使用帧数据108来生成边缘图106,例如,在帧数据108上使用边缘检测。例如,帧数据所表示的相邻像素的像素值之间的鲜明对比可以表示边缘。边缘图106可以包括显著性图、二进制图或图像、灰度地图或图像、和/或另一边缘图表示。如图1B的示例边缘图122所示,边缘像素(例如,显示为白色像素)可以用第一值(例如,1)编码,而非边缘像素(例如,显示为黑色像素)可以用第二值(例如,0)进行编码以指示边缘在帧中的位置。
深度信息和/或表面法线信息可以由应用引擎102维护,并且该信息可用于生成边缘图106。短暂转到图2C-2F,图2C-2F演示了场景的帧220C/D/E/F,每个场景都描绘了帧信息的不同示例可视化。在一些实施例中,帧220C可以描绘全细节帧,并且可以由边缘图生成器104进行处理以确定、提取和/或识别帧220C的深度信息以生成帧220D。帧200D可以描述可由应用引擎102和/或由另一应用或进程编码到帧220C中的深度信息。帧220D中的深度信息随后可用于生成边缘图220F。例如,边缘图生成器104可以使用深度信息中的视差(例如,超过阈值的相邻像素的深度值的差异)来识别帧220C的边缘以生成边缘图220F。在一些实施例中,帧220C可以由边缘图生成器104处理以确定、提取和/或识别来自帧220C的表面法线信息(例如,垂直于给定表面的线、射线和/或向量)以生成帧220E,其可以描绘表面法线信息,例如,每个像素处的表面法线值可以被编码到像素中。然后可以使用表面法线信息来生成边缘图220F。例如,因为可以假定对象的边缘可以由两个或更多个平面或半平面的相交形成,因此边缘图生成器104可以利用超过阈值的表面法线向量变化(例如,相邻向量之间的角度)来识别帧220C的边缘以生成边缘图220F。
在一些实施例中,帧220D和帧220E中的一个或更多个——例如,分别对应于深度图和表面法线图——可用于生成帧220F的边缘图。在其它实施例中,帧220C——无需首先确定深度和/或表面法线信息——可用于生成帧220F的边缘图。例如,像素值的变化超过阈值量可能表示边缘位置,此信息可用于确定边缘图的边缘。但是,在没有深度图和/或表面法线图的情况下单独使用像素值可能会导致结果不如使用深度图和/或表面法线图准确。
在生成边缘图的进一步实施例中,例如在图2A的过程200中示出,深度信息和/或法线信息可以被缩放和/或归一化、滤波(例如,使用形态学闭合,包括扩张和侵蚀),和/或可以经历边缘检测操作(例如,通过使用边缘检测算法,包括Sobel运算符)。另外,或者可选地,可以基于图2B的过程200B生成经时间滤波的边缘图。例如,在过程200B中,帧运动向量(例如,对应于虚拟环境中虚拟相机从时刻t-1到时刻t的移动)可用于翘曲或补偿运动并在t-1处生成翘曲的边缘图。在这样的示例中,对应于时刻t-1的边缘图可以转换为时刻t的坐标系,使得时刻t-1的翘曲边缘图和时刻t的边缘图可以混合在一起。在实施例中,然后,根据以下等式(1),可以将翘曲的边缘图与当前边缘图混合以生成时间上稳定的边缘图:
α*EMAP(t)+(1-α)*翘曲的EMAP(t-1) (1)
其中a是加权值(例如,在0.0至1.0之间,在非限制性实施方案中使用0.5),可以通过经验确定该加权值以产生最准确的时间稳定结果。
回到图1A,在一些实施例中,对应于应用引擎提供的帧的边缘图106以及由应用引擎提供的帧的帧数据108可以应用于DNN 110作为输入。DNN 110可以包括任何DNN类型,例如卷积神经网络(CNN),并且可以包括任何架构类型,例如自动编码器、编码器/解码器和/或其它架构。尽管被描述为DNN 110,但DNN 110可以包括,例如,但不限于,任何类型的机器学习模型,诸如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、k最近邻(Knn)、K均值聚类、随机森林、降维算法、梯度提升算法、神经网络(例如,自动编码器、卷积、递归、感知器、长/短期记忆/LSTM、霍普菲尔德(Hopfield)、玻尔兹曼(Boltzmann)、深度信念、解卷积、生成对抗、液态机器等)、计算机视觉算法的机器学习模型和/或其他类型的机器学习模型。一旦由训练引擎114训练,DNN 110可用于使用帧数据108和边缘图106生成预滤波的帧112。
根据本公开的一些实施例,短暂转回图1C,图1C是用于预滤波输入帧120的DNN架构110A的示例。DNN可以包括任意数量的层130。一个或更多个层130可以包括输入层。输入层可以保存与输入帧120相关联的值(例如,在后处理之前或之后)。一个或更多个层130可以包括卷积层。该卷积层可以计算连接到输入层中局部区域的神经元的输出,每个神经元计算其权重与输入体积中连接到的小区域之间的点积。一个或更多个层130可以包括整流线性单元(ReLU)层。ReLU层可以应用逐元素激活函数,例如max(0,x),例如在零处阈值化。所产生的ReLU层的体积可能与ReLU层的输入体积相同。一个或更多个层130可以包括池化层。该池化层可以沿空间维度(例如,高度和宽度)执行向下采样操作,这可能导致体积小于池化层的输入。一个或更多个层130可以包括一个或更多个全连接层。全连接层中的每个神经元都可以连接到前一个体积中的每个神经元。全连接层可以计算类分数,所产生的体积可以是1x 1x类数目。在一些示例中,CNN可以包括一个或更多个全连接层,使得CNN的一个或更多个层130的输出可以作为输入提供给CNN的全连接层。在某些示例中,一个或更多个卷积流可以由DNN实现,并且部分或全部卷积流可能包括相应的全连接层。在一些非限制性实施例中,DNN可以包括一系列卷积层和最大池化层,以便利于图像特征提取,随后是多尺度扩张卷积层和上采样层,以促进全局上下文特征提取。
尽管这里相对于DNN 110讨论了输入层、卷积层、池化层、ReLU层和全连接层,但这并不旨在进行限制。例如,可以在DNN 110中使用附加或替代层,例如归一化层、SoftMax层和/或其他层类型。在DNN 110包括CNN的实施例中,可以根据实施例使用CNN层的不同顺序和数量。换言之,DNN 110的层130的顺序和数量不限于任何一种体系结构。
此外,一些层130可以包括参数(例如,权重和/或偏差),例如卷积层和全连接层,而其他层则可能不包括,例如ReLU层和池化层。在一些示例中,DNN 110可以在训练期间学习参数。进一步,一些层130可以包括附加的超参数(例如,学习速率、步幅、时期(epoch)等),例如卷积层、全连接层和池化层,而其它层则可能不包括,例如ReLU层。参数和超参数不受限制,并且可能因实施例而异。
在一些实施例中,为了训练DNN 110,训练引擎114可以采用一个或更多个损失函数,例如图1B的那些用于无监督训练块124的函数。训练引擎114还可以从训练数据存储库126接收和/或访问各种训练数据集,以用于训练DNN 110。关于损失函数,例如,训练引擎114的边缘损失函数可用于训练DNN 110以保持由应用引擎102输出的帧和预滤波帧112之间的边缘细节,使得沿帧的边缘图106中的识别的边缘和/或所识别的边缘附近的像素值被维持,或者至少紧密地维持,使得由对应于应用引擎102的应用程序所描绘的场景中导航更加清晰。例如,将输入帧120与预滤波帧112进行比较来看输入帧120,输入帧120包括预滤波帧112中不可见的实质性水平的细节。特别地,输入帧120的地130A包括在预滤波帧112的地130B中不可见的细节。在实施例中,边缘损失函数可以比较帧数据108的像素值和在被确定对应于边缘图106的像素位置处的预滤波帧112。也就是说,对于来自边缘图106的指示为对应于边缘的给定像素,帧数据108中该位置的像素值和来自预滤波帧112的该位置的像素值可以以这样一种方式进行比较,即差异受到惩罚。
在一些实施例中,边缘损失函数可以根据下面的等式(2)计算:
Figure BDA0003780802950000111
其中,边缘掩码(例如,122)中的像素位置(i,j)用于将原始帧(F)(例如,帧120)中的相应像素位置(i,j)与预滤波帧(PF)(128)中的相应像素位置(i,j)进行比较。对于确定为对应于边缘图中的边缘像素的每个像素,可以重复此过程。
作为另一个实施例,可以使用训练引擎114的熵损失函数,对应于减少或满足与当前所需熵控制参数值相对应的帧熵(例如,熵控制参数的值越高,预滤波帧的熵越低,反之亦然)。例如,熵损失函数可以测量预滤波帧112内部分内的像素梯度——对应于使用边缘图106识别的边缘的部分除外——以减少相邻像素之间的梯度。在这样的示例中,熵控制参数值越高,使用熵损失函数惩罚更高的梯度越多。因此,当使用熵控制参数的高值(例如,指示较低的帧熵)时,相邻或周围像素之间的梯度可以减小,使得相邻或周围像素之间的像素值差异最小。类似地,对于较低的熵控制参数值(例如,表示较高的帧熵),相邻或周围像素之间的梯度可以减小得更少,以便允许像素的差异更大(但不如全熵帧大)。
在一些实施例中,熵损失函数可以根据下面的等式(3)计算:
Figure BDA0003780802950000121
其中(i,j)对应于不是边缘像素的(x,y)像素位置,m是x方向上的像素距离,n是y方向上的像素距离。例如,n可以包括+1和-1的值,m可以包括+1和-1的值,并且这些值的一个或更多个组合用于识别像素以与像素(i,j)进行比较。
如果使用多于一个损失函数,则在训练期间可能会对损失函数进行加权。例如,熵控制参数值可用于对损失函数进行加权,以便对于较高的熵控制参数值,更严格地强制相邻或周围像素的像素值之间的一致性,反之亦然。例如,总损失函数可以根据下面的等式(4)计算:
Figure BDA0003780802950000122
其中,λ对应于熵控制参数。因此,在熵较低的示例中,λ值越高,因此与边缘损失函数相比,熵损失函数的权重越大。相反,在熵较高的示例中,λ值越低,因此与边缘损失函数相比,对熵损失函数加权越小。
现在参见图3,在此描述的方法300的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,不同功能可以通过处理器执行存储在存储器中的指令来实现。该方法300还可以体现为存储在计算机存储介质上的计算机可用指令。仅举几例,该方法300可以由独立应用、服务或托管服务(独立或与其他托管服务组合)或到另一产品的插件来提供。此外,通过示例的方式,针对图1的内容项目识别系统来描述方法400。然而,此方法300可附加地或替代地由任何一个系统或系统的任何组合来执行,所述系统包含但不限于本文中所描述的那些系统。
图3是根据本公开的一些实施例示出了用于训练DNN以对帧进行预滤波的方法300的流程图。方法300,在方框B302处,包括使用至少一个对应于帧的表面法线或深度值,生成指示在帧中描绘的边缘的显著性图。例如,深度信息和/或表面法线信息可以由当前正在执行的应用程序维护,并且此信息可用于生成边缘图或显著性图。在一些实施例中,除了使用表面法线值和/或深度值之外或作为使用表面法线值和/或深度值的替代,可以使用来自帧数据的像素值。
该方法300,在方框B304处,包括使用DNN并且至少部分基于代表显著性图和帧的数据计算预滤波帧。例如,DNN 110可用于使用帧数据和边缘图生成预滤波帧。
该方法300,在方框B306处,包括至少部分地基于比较在对应于从显著性图确定的边缘的像素位置处预滤波帧的第一像素值和该帧的第二像素值,使用第一损失函数计算第一损失值。例如,边缘损失函数可以比较在被确定为对应于边缘图的边缘的像素位置处该帧的像素值和的预滤波帧的像素值。也就是说,对于来自边缘图的指示为对应于边缘的给定像素,帧中该位置的像素值和预滤波帧中该位置的像素值可以以这样的方式进行比较,即差异受到惩罚——例如,当像素值差异更大时,损失更高。
该方法300,在方框B308处,包括至少部分基于比较预滤波帧内近似位置的像素值,使用第二损失函数计算第二损失值。例如,熵损失函数可以测量预滤波帧的部分内的像素梯度——与使用边缘图识别的边缘相对应的部分除外——以减少相邻像素之间的梯度。例如,对于对应于较高熵控制参数(因此对应于较低帧熵)的DNN 110,相邻像素之间的差异可能会受到更大的惩罚。作为另一个示例,对于对应于较低熵控制参数(因此更高的帧熵)的DNN 110,相邻像素之间的差异可能会受到较少的惩罚——但仍然受到惩罚,以便从原始帧的帧熵中减少帧熵。
方法300,在方框B310处,包括基于至少部分基于第一损失值和第二损失值来更新DNN的一个或更多个参数。例如,DNN 110的参数(例如,权重和/或偏差)可以使用训练引擎114进行更新,直到达到可接受的准确度水平。如本文所述,在一些实施方案中,第一损失值和第二损失值可以一起使用——并且进行加权——以产生最终损失值。
转向图4,图4是根据本公开的一些实施例的数据流图,示出了用于使用DNN对帧进行预滤波的示例过程400。图4包括视频游戏流式传输系统422、应用引擎102、边缘图生成器104、边缘图106、帧数据108、所选DNN 418、预滤波帧112、编码器402、编码帧404、最终用户设备420、信道条件监视器414、信道条件数据、DNN选择器412和DNN 430。
最终用户设备420可以包括智能手机、膝上型计算机、平板电脑、台式计算机、可穿戴设备、游戏机、虚拟现实(VR)或增强现实(AR)系统(例如,耳机、计算机、游戏机、遥控器、控制器和/或其它组件)、内容流式传输设备(例如,NVIDIA SHIELD)、可以包括智能个人助理的智能家居设备、和/或另一种能够支持应用程序流式传输的设备。
最终用户设备420可以包括解码器406、显示器408和应用410。尽管只有最终用户设备420的少数组件和/或特征在图4中示出,但这并不是为了限制。例如,最终用户设备420可以包括附加的或替代的组件,例如下面相对于图8的计算设备800描述的那些。应用410可以是任何可以实现帧预滤波以降低帧的比特率或复杂度的应用——例如在模拟应用、虚拟现实(VR)、增强现实(AR)和/或混合现实(MR)应用、内容编辑应用、社交媒体应用、远程桌面应用、内容流式传输应用、游戏流式传输应用、视频会议应用、和/或类似应用中。
显示器408可以包括能够显示应用410的任何类型的显示器(例如,发光二极管显示器(LED)、有机LED显示器(OLED)、液晶显示器(LCD)、有源矩阵OLED显示器(AMOLED)、量子点显示器(QDD)、等离子显示器、LED/LCD显示器和/或其他类型的显示器)。在一些示例中,显示器408可以包括多于一个显示器(例如,用于计算机游戏的双监视器显示器,用于配置游戏的第一显示器和用于玩游戏的虚拟现实显示器等)。在一些示例中,显示器408是触摸屏显示器,例如智能手机、平板电脑、膝上型电脑等的触摸屏。
在操作中,最终用户设备420可以将信道条件(例如,带宽、信道容量、比特率、信噪比(SINR)、频谱效率和/或附加状态信息)传输到视频游戏流式传输系统422的信道条件监视器。信道条件监视器414可以处理和/或格式化传输的信道条件以生成信道条件数据416,该数据可以提供给DNN选择器412。DNN选择器412可以将信道条件数据416与查找表或插入算法中的信道条件数据416来进行比较,并且熵控制参数可以由DNN选择器412来计算。一旦计算出来,DNN选择器412可以访问DNN 430并使用熵控制参数来选择对应于与信道条件数据416相关联的控制参数的DNN。应该注意的是,DNN 430和选定的DNN 418可能对应于图1A至图1C的DNN 110的经训练或部署的实例。
DNN 430可以存储多个DNN,每个DNN对应于不同的滤波级别——例如,对应于不同的熵控制参数。根据滤波的级别,预滤波帧可以包括当显示在最终用户设备420的显示器408上的或多或少的视觉细节。短暂地转到图5A至图5D,例如,帧500A/B/C/D中的每个对应于不同的熵控制参数(例如,分别为0.1、0.5、1.0和3.0),分别对应于高熵、中熵、低熵和极低熵。帧500A/B/C/D中的每个包括拱门502A/B/C/D。可以看出,拱门502A包括显着的细节水平,在拱门502A中具有定义明确的且可见的砖块(brick)。与502A相比,拱门502B包含的细节较少。拱门502B包括一定程度的纹理来说明砖块,但它们在视觉上没有明确的定义。与502B相比,拱门502C包含的细节较少。拱门502C包括拱门502C的一定程度的细节,但没有砖块可见。最后,与拱门502C相比,拱门502D包含的细节更少。拱门502D没有纹理,也没有砖块可见。但是,保留了拱门502D的边缘,这允许用户导航对应于帧500A/B/C/D的游戏。
返回到图4,DNN选择器412可以使用熵控制参数来选择与控制参数相对应的DNN,例如,所选的DNN 418。然后,视频游戏流式传输系统422可以向所选的DNN 418提供——如关于图1A至图1C所描述的——帧数据108和边缘图106以生成预滤波帧112。预滤波帧112然后可以被编码器402编码和压缩以生成编码帧404。编码帧404可以包括与输入帧404相比降低的比特率——其中选定的DNN 418被训练以减小熵——并且编码帧404随后可以被传送到最终用户设备420的应用410。应用410可以使用解码器406来解码编码帧404并生成预滤波帧112以经由显示器408进行显示。
在一些实施例中,除了具有不同的DNN 430用于不同的熵控制参数或作为具有不同的DNN 430用于不同的熵控制参数的替代——例如,生成具有不同熵水平的预滤波帧112——单个DNN 430可以被训练为使用熵控制参数作为输入,并且除了帧数据108和边缘图106之外还使用熵控制参数,DNN 430可以根据所需的熵值计算预滤波帧112。
现在参见图6,本文所描述的方法600的每个方框包括可使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,不同功能可以通过处理器执行存储在存储器中的指令来实现。该方法600还可以体现为存储在计算机存储介质上的计算机可用指令。仅举几例,该方法600可以由独立应用、服务或托管服务(独立或与其他托管服务组合)或到另一产品的插件来提供。此外,通过示例的方式,针对图4的系统来描述方法600。然而,此方法可附加地或替代地由任何一个系统或系统的任何组合来执行,所述系统包含但不限于本文中所描述的那些系统。
图6是示出了根据本公开的一些实施例使用DNN对帧进行预滤波的方法600的流程图。方法600,在方框B602处,包括:基于至少部分地对应于最终用户设备的网络或系统条件中的至少一个,从多个深度神经网络(DNN)中选择一个DNN。例如,当系统和/或网络性能较低时,可能需要较低的熵,因此熵控制参数可能更高,因此选择基于DNN的预滤波器,以更彻底地对帧进行滤波或模糊,以降低流的比特率。
该方法600,在方框B604处,包括:使用至少一个对应于帧的表面法线或深度值生成指示在帧中描绘的边缘的显著性图。例如,深度信息和/或表面法线信息可以由当前正在执行的应用程序维护,并且可以使用边缘图生成器104使用该信息来生成边缘图或显著性图。在实施例中,除了使用深度信息和/或表面法线信息之外或作为使用深度信息和/或表面法线信息的替代,帧数据可用于比较相邻像素值,并从相邻像素值的鲜明对比中确定边缘。
该方法600,在方框B606处,包括:使用所选的DNN并且至少部分基于代表显著性图和帧的数据,计算预滤波的帧。例如,一旦经过训练引擎训练,所选的DNN 418可用于使用帧数据108和边缘图106生成预滤波帧112。
方法600,在方框B608处,包括:将代表预滤波帧的数据传输到最终用户设备。例如,计算出的预滤波帧112然后可以以低于输入帧的比特率(其中需要小于全熵)进行编码和压缩,并且编码帧404可以被传输到最终用户设备420。结果,不必由于遭受信道条件而切换图像分辨率,可以调整帧的熵,以便预滤波帧可以以相同的帧分辨率传输。这样,由于帧与帧之间的像素值之间的差异可以随着熵的减小而减小,因此与原始帧数据108相比,在帧分辨率下传输预滤波帧所需的数据量减小,从而导致延迟降低。
示例内容流式传输系统
现在参考图7,图7是根据本公开的一些实施例的内容流式传输系统700的示例系统图。图7包括应用服务器702(其可以包括与图8的示例计算设备800类似的组件、特征和/或功能)、客户端设备704(其可以包括与图8的示例计算设备800类似的组件、特征和/或功能)和网络706(其可类似于本文描述的网络)。在本公开的一些实施例中,可以实现系统700。应用会话可以对应于游戏流应用(例如,NVIDIAGeFORCE NOW)、远程桌面应用、模拟应用(例如,自主或半自主车辆模拟)、计算机辅助设计(CAD)应用、虚拟现实(VR)和/或增强现实(AR)流式传输应用、深度学习应用、和/或其他应用类型。
在系统700中,对于应用会话,客户端设备704可以仅响应于对输入设备的输入而接收输入数据,将输入数据传输到应用服务器702,从应用服务器702接收编码的显示数据,并在显示器724上显示显示数据。因此,计算强度更高的计算和处理被卸载到应用服务器702(例如,渲染——尤其是光线或路径追踪——用于应用会话的图形输出,由游戏服务器的GPU执行702)。换言之,应用会话从应用服务器702流式传输到客户端设备704,从而减少客户端设备704对图形处理和渲染的要求。
例如,关于应用会话的实例化,客户端设备704可以基于从应用服务器702接收的显示数据在显示器724上显示应用会话的帧。客户端设备704可以接收到输入设备之一的输入并且作为响应生成输入数据。客户端设备704可以经由通信接口720并通过网络706(例如,因特网)将输入数据发送到应用服务器702,并且应用服务器702可以经由通信接口718接收输入数据。CPU可以接收输入数据,处理输入数据,并将数据传输到GPU,这使得GPU生成应用会话的渲染。例如,输入数据可以表示用户角色在游戏应用程序的游戏会话中的移动、发射武器、重新加载、传球、使车辆转弯等。渲染组件712可以渲染应用会话(例如,表示输入数据的结果),渲染捕获组件714可以将应用会话的渲染捕获为显示数据(例如,作为捕获应用会话的渲染帧的图像数据)。应用会话的渲染可能包括使用一个或更多个并行处理单元(例如GPU)计算的光线或路径跟踪照明和/或阴影效果,并行处理单元可能进一步使用一个或更多个专用硬件加速器或处理核心来计算执行应用服务器702的光线或路径追踪技术。在一些实施例中,一个或更多个虚拟机(VM)——例如,包括一个或更多个虚拟组件,例如vGPU、vCPU等——可以是由应用服务器702用来支持应用会话。编码器716然后可以对显示数据进行编码以生成编码的显示数据,并且可以通过网络706经由通信接口718将编码的显示数据发送到客户端设备704。客户端设备704可以经由通信接口720接收编码的显示数据,解码器722可以对编码的显示数据进行解码以生成显示数据。然后,客户端设备704可以通过显示器724显示显示数据。
示例计算设备
图8是适合用于实现本公开的一些实施例的示例计算设备800的框图。计算设备800可包括直接或间接耦合以下设备的互连系统802:存储器804、一个或更多个中央处理单元(CPU)806、一个或更多个图形处理单元(GPU)808、通信接口810、输入/输出(I/O)端口812、输入/输出组件814、电源816、一个或更多个呈现组件818(例如,(一个或更多个)显示器)、以及一个或更多个逻辑单元820。在至少一个实施例中,(一个或更多个)计算设备800可以包括一个或更多个虚拟机(VM),和/或其任何组件可以包括虚拟组件(例如,虚拟硬件组件)。对于非限制性示例,GPU808中的一个或更多个可以包括一个或更多个vGPU,CPU 806中的一个或更多个可以包括一个或更多个vCPU,和/或逻辑单元820中的一个或更多个可以包括一个或更多个虚拟逻辑单元。照此,(一个或更多个)计算设备800可以包括分立组件(例如,专用于计算设备800的全GPU)、虚拟组件(例如,专用于计算设备800的GPU的一部分)或其组合。
尽管图8的各个框被示出为经由互连系统802与线路连接,但这并不旨在是限制性的,并且仅仅是为了清楚起见。例如,在一些实施例中,呈现组件818(诸如显示设备)可被认为是I/O组件814(例如,如果显示器是触摸屏)。作为另一示例,CPU 806和/或GPU 808可以包括存储器(例如,除了GPU 808的存储器、CPU806和/或其他组件之外,存储器804可以表示存储设备)。换言之,图8的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型计算机”、“桌面型计算机”、“平板计算机”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实系统”和/或其他设备或系统类型的类别之间不进行区分,因为全部都被设想在图8的计算设备的范围内。
互连系统802可以表示一个或更多个链路或总线,如地址总线、数据总线、控制总线或其组合。互连系统802可包括一种或更多种总线或链路类型,诸如工业标准体系结构(ISA)总线、扩展工业标准体系结构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、快速外围组件互连(PCIe)总线和/或另一类型的总线或链路。在一些实施例中,在部件之间存在直接连接。例如,CPU 806可直接连接至存储器804。进一步,CPU 806可以直接连接到GPU 808。在组件之间存在直接连接或点对点连接的情况下,互连系统802可包括PCIe链路以执行该连接。在这些示例中,计算设备800中不需要包括PCI总线。
存储器804可以包括多种计算机可读介质中的任一种。计算机可读介质可以是可由计算设备800访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质,以及可移除和不可移除介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质可包括以用于存储如计算机可读指令、数据结构、程序模块和/或其他数据类型的信息的任何方法或技术实现的易失性和非易失性介质和/或可移除和不可移除介质。例如,存储器804可存储计算机可读指令(例如,其代表程序和/或程序元件,诸如操作系统)。计算机存储介质可包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可用于存储所需信息并可由计算设备800访问的任何其他介质。如本文所使用的,计算机存储介质不包括信号本身。
计算机存储介质可以将计算机可读指令、数据结构、程序模块和/或其他数据类型具体化在被调制的数据信号(如载波或其他传输机制)中,并且包括任何信息传递介质。术语“被调制的数据信号”可以指以对信号中的信息进行编码的方式设定或改变其特征中的一个或更多个的信号。作为示例而非限制,计算机存储介质可包括有线介质(诸如有线网络或直接有线连接)以及无线介质(诸如声学、RF、红外和其他无线介质)。上述任何内容的组合也应被包括在计算机可读介质的范围内。
CPU 806可以被配置成用于执行计算机可读指令中的至少一些来控制计算设备800的一个或更多个部件来执行在此描述的方法和/或过程中的一个或更多个。CPU 806每个可包括能够同时处理多个软件线程的一个或更多个核(例如,1、2、4、8、28、72等)。CPU806可以包括任何类型的处理器,并且可以取决于所实现的计算设备800的类型包括不同类型的处理器(例如,具有用于移动设备的较少核的处理器和具有用于服务器的较多核的处理器)。例如,取决于计算设备800的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机器(ARM)处理器或使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器的补充协处理器之外,计算设备800还可以包括一个或更多个CPU 806。
除了或替代CPU 806,(一个或更多个)GPU 808可以被配置成用于执行计算机可读指令中的至少一些以控制计算设备800的一个或更多个组件来执行在此描述的方法和/或过程中的一个或更多个。GPU 808中的一个或更多个可为集成GPU(例如,具有CPU 806中的一个或更多个)和/或GPU 808中的一个或更多个可为离散GPU。在实施例中,(一个或更多个)GPU 808中的一个或更多个可以是(一个或更多个)CPU 806中的一个或更多个的协处理器。GPU 808可由计算设备800使用以渲染图形(例如,3D图形)或执行通用计算。例如,GPU808可以用于GPU上的通用计算(GPGPU)。GPU 808可以包括能够同时处理成百上千个软件线程的成百上千个核。GPU 808可响应于渲染命令(例如,经由主机接口接收的来自CPU 806的渲染命令)产生用于输出图像的像素数据。GPU 808可包含图形存储器,例如显示存储器,用于存储像素数据或任何其他合适的数据,例如GPGPU数据。显示存储器可被包括作为存储器804的一部分。GPU 808可以包括并行操作(例如,经由链路)的两个或更多个GPU。该链路可以直接连接GPU(例如,使用NVLINK)或者可以通过交换机连接GPU(例如,使用NVSwitch)。当组合在一起时,每一GPU 808可针对输出的不同部分或针对不同输出(例如,用于第一图像的第一GPU和用于第二图像的第二GPU)产生像素数据或GPGPU数据。每个GPU可以包括其自身的存储器,或者可以与其他GPU共享存储器。
除了或替代CPU 806和/或GPU 808,(一个或更多个)逻辑单元820可以被配置成用于执行计算机可读指令中的至少一些来控制计算设备800的一个或更多个部件以执行在此描述的方法和/或过程中的一个或更多个。在实施例中,(一个或更多个)CPU 806、(一个或更多个)GPU 808和/或(一个或更多个)逻辑单元820可以分立地或联合地执行方法、过程和/或其部分的任何组合。逻辑单元820中的一个或更多个可以是CPU 806和/或GPU 808中的一个或更多个的一部分和/或集成在其中,和/或逻辑单元820中的一个或更多个可以是分立组件或者以其他方式在CPU 806和/或GPU 808的外部。在实施例中,逻辑单元820中的一个或更多个逻辑单元可以是(一个或更多个)CPU 806中的一个或更多个CPU和/或(一个或更多个)GPU 808中的一个或更多个GPU的协处理器。
逻辑单元820的示例包括一个或更多个处理核和/或其组件,如数据处理单元(DPU)、张量核(TC)、张量处理单元(TPU)、像素视觉核(PVC)、视觉处理单元(VPU)、图形处理集群(GPC)、纹理处理集群(TPC)、流式多处理器(SM)、树遍历单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU)、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、外围组件互连(PCI)或外围组件互连快速(PCIe)元件等。
通信接口810可以包括一个或更多个接收器、发射器和/或收发器,其使计算设备800能够经由电子通信网络(包括有线和/或无线通信)与其他计算设备进行通信。通信接口810可以包括使得能够通过多个不同网络(例如,无线网络(例如,Wi-Fi、Z-Wave、蓝牙、蓝牙LE、ZigBee等)、有线网络(例如,通过以太网或无限带宽通信)、低功率广域网(例如,LoRaWAN、SigFox等)和/或互联网)中的任何网络进行通信的组件和功能。在一个或多个实施例中,逻辑单元820和/或通信接口810可以包括一个或多个数据处理单元(DPU)以将通过网络和/或通过互连系统802接收的数据直接传输到一个或多个GPU 808(例如,一个或多个GPU 808的存储器)。
I/O端口812可以使得计算设备800能够逻辑耦合至包括I/O组件814、呈现组件818和/或其他组件的其他设备,这些组件中的一些组件可以内置于(例如,集成在)计算设备800中。说明性I/O组件814包括麦克风、鼠标、键盘、操纵杆、游戏手柄、游戏控制器、圆盘式卫星天线、扫描仪、打印机、无线设备等。I/O组件814可提供自然用户界面(NUI),该自然用户界面处理空中姿态、语音或由用户生成的其他生理输入。在一些实例中,输入可被传送至适当的网络元件以供进一步处理。NUI可实现语音辨识、触笔辨识、面部辨识、生物测定辨识、屏幕上和屏幕附近的姿态辨识、空中姿态、头部和眼睛跟踪、以及与计算设备800的显示器相关联的触摸辨识(如下面更详细描述的)的任何组合。计算设备800可包含深度相机,例如立体相机系统、红外相机系统、RGB相机系统、触摸屏技术和这些的组合,以用于姿态检测和辨识。另外,计算设备800可以包括使得能够检测运动的加速度计或陀螺仪(例如,作为惯性测量单元(IMU)的一部分)。在一些示例中,计算设备800可以使用加速度计或陀螺仪的输出来渲染沉浸式增强现实或虚拟现实。
电源816可以包括硬连线电源、电池电源或其组合。电源816可以向计算设备800提供电力以使得计算设备800的组件能够操作。
(一个或更多个)呈现组件818可以包括显示器(例如,监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示类型或其组合)、扬声器和/或其他呈现组件。呈现组件818可从其他组件(例如,GPU 808、CPU 806、DPU等)接收数据,且输出数据(例如,作为图像、视频、声音等)。
示例数据中心
图9示出了可以在本公开的至少一个实施例中使用的示例数据中心900。数据中心900可包括数据中心基础设施层910、框架层920、软件层930和/或应用层940。
如图9所示,数据中心基础设施层910可以包括资源协调器912、分组的计算资源914和节点计算资源(“节点C.R.s”)916(1)-916(N),其中“N”表示任何整数、正整数。在至少一个实施例中,节点C.R.s 916(1)-916(N)可以包括但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括DPU、加速器、现场可编程门阵列(FPGA)、图形处理器或图形处理单元(GPU)等)、存储器设备(例如,动态只读存储器)、存储设备(例如,固态或磁盘驱动器)、网络输入/输出(“NW I/O”)设备、网络交换机、虚拟机(“VM”)、功率模块和/或冷却模块等。在一些实施例中,节点C.R.s 916(1)-916(N)中的一个或更多个节点C.R.s可对应于具有上述计算资源中的一个或更多个的服务器。此外,在一些实施例中,节点C.R.s 916(1)-9161(N)可包括一个或更多个虚拟组件,诸如vGPU、vCPU等,和/或节点C.R.s 916(1)-916(N)中的一个或更多个可对应于虚拟机(VM)。
在至少一个实施例中,分组的计算资源914可以包括容纳在一个或更多个机架(未示出)内或容纳在不同地理位置处的数据中心(也未示出)中的许多机架内的节点C.R.s916的单独分组。分组的计算资源914内的节点C.R.s 916的单独分组可包括分组的计算、网络、存储器或存储资源,其可被配置或分配以支持一个或更多个工作负载。在至少一个实施例中,包括CPU、GPU、DPU和/或其他处理器的若干节点C.R.s 916可以被分组在一个或更多个机架内以提供计算资源来支持一个或更多个工作负载。一个或更多个机架还可包括以任何组合的任何数量的功率模块、冷却模块和/或网络交换机。
资源协调器912可以配置或以其他方式控制一个或更多个节点C.R.s 916(1)-916(N)和/或分组的计算资源914。在至少一个实施例中,资源协调器912可包括用于数据中心900的软件设计基础设施(“SDI”)管理实体。资源协调器912可包括硬件、软件或其某种组合。
在至少一个实施例中,如图9所示,框架层920可以包括作业调度器932、配置管理器934、资源管理器936和/或分布式文件系统938。框架层920可以包括支持软件层930的软件932和/或应用层940的一个或更多个应用942的框架。软件932或应用942可分别包括基于网络的服务软件或应用,例如由亚马逊网络服务、谷歌云和微软Azure提供的那些。框架层920可以是但不限于可以利用分布式文件系统938进行大规模数据处理(例如,“大数据”)的一种免费开源软件web应用框架类型,诸如Apache SparkTM(以下称为“Spark”)。在至少一个实施例中,作业调度器932可以包括Spark驱动器以促进由数据中心900的各层支持的工作负载的调度。配置管理器934可以能够配置不同层,例如软件层930和包括用于支持大规模数据处理的Spark和分布式文件系统938的框架层920。资源管理器936可能够管理映射到或分配用于支持分布式文件系统938和作业调度器932的集群或分组计算资源。在至少一个实施例中,集群或分组的计算资源可包括在数据中心基础设施层910处的分组的计算资源914。资源管理器936可与资源协调器912协调以管理这些映射或分配的计算资源。
在至少一个实施例中,被包括在软件层930中的软件932可以包括由节点C.R.s916(1)-916(N)、分组的计算资源914和/或框架层920的分布式文件系统938中的至少多个部分使用的软件。一种或更多种类型的软件可以包括但不限于互联网网页搜索软件、电子邮件病毒扫描软件、数据库软件和流式视频内容软件。
在至少一个实施例中,被包括在应用层940中的应用942可以包括由节点C.R.s916(1)-916(N)、分组的计算资源914和/或框架层920的分布式文件系统938中的至少多个部分使用的一种或更多种类型的应用。一种或更多种类型的应用可以包括但不限于任何数量的基因组学应用、认知计算和机器学习应用(包括训练或推理软件、机器学习框架软件(例如,PyTorch、TensorFlow、Caffe等)和/或结合一个或更多个实施例使用的其他机器学习应用)。
在至少一个实施例中,配置管理器934、资源管理器936和资源协调器912中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实施任何数量和类型的自修改动作。自修改动作可使数据中心900的数据中心运营商免于做出可能不良的配置决策和可能避免数据中心的未充分利用和/或性能不佳的部分。
根据在此描述的一个或更多个实施例,数据中心900可以包括工具、服务、软件或其他资源,以便训练一个或更多个机器学习模型或使用一个或更多个机器学习模型来预测或推断信息。例如,(一个或更多个)机器学习模型可以通过使用上文相对于数据中心900所描述的软件和/或计算资源,通过根据神经网络架构计算权重参数来训练。在至少一个实施例中,对应于一个或更多个神经网络的经训练的或所部署的机器学习模型可以用于通过使用通过一个或更多个训练技术(诸如但不限于本文中所描述的那些技术)计算的权重参数,来使用以上关于数据中心900所描述的资源来推断或预测信息。
在至少一个实施例中,数据中心900可以使用CPU、专用集成电路(ASIC)、GPU、FPGA、和/或其他硬件(或与其相对应的虚拟计算资源)来使用上述资源执行训练和/或推理。此外,上述一个或更多个软件和/或硬件资源可以被配置为允许用户训练或执行信息推理的服务,诸如图像辨识、语音辨识或其他人工智能服务。
示例网络环境
适合用于实现本公开的实施例的网络环境可以包括一个或更多个客户端设备、服务器、网络附接存储(NAS)、其他后端设备和/或其他设备类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可在图8的计算设备800的一个或更多个实例上实现,例如,每个设备可包括计算设备800的类似组件、特征和/或功能。此外,在实现后端设备(例如,服务器、NAS等)的情况下,后端设备可被包括作为数据中心900的一部分,数据中心900的示例在本文中相对于图9更详细地描述。
网络环境的组件可以经由可以是有线的、无线的或两者的一个或更多个网络彼此通信。网络可以包括多个网络或网络的网络。作为示例,网络可包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络(诸如互联网和/或公共交换电话网(PSTN))、和/或一个或更多个私有网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或者甚至接入点(以及其他组件)的组件可以提供无线连接。
兼容的网络环境可以包括一个或更多个对等网络环境——在这种情况下,网络环境中可以不包括服务器——和一个或更多个客户端-服务器网络环境——在这种情况下,网络环境中可以包括一个或更多个服务器。在对等网络环境中,本文关于(一个或更多个)服务器描述的功能可以在任何数量的客户端设备上实现。
在至少一个实施例中,网络环境可以包括一个或更多个基于云的网络环境、分布式计算环境、其组合等。基于云的网络环境可以包括在服务器中的一个或更多个上实现的框架层、作业调度器、资源管理器和分布式文件系统,所述服务器可以包括一个或更多个核心网络服务器和/或边缘服务器。框架层可包括支持软件层的软件和/或应用层的一个或更多个应用的框架。软件或应用可以分别包括基于网络的服务软件或应用。在实施例中,客户端设备中的一个或更多个可以使用基于web的服务软件或应用(例如,通过经由一个或更多个应用编程接口(API)访问服务软件和/或应用)。框架层可以是但不限于免费和开源软件web应用框架的类型,诸如可以使用分布式文件系统进行大规模数据处理(例如,“大数据”)。
基于云的网络环境可以提供执行在此描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些不同功能中的任一者可从(例如,可跨州、地区、国家、全球等分布的一个或更多个数据中心的)中央或核心服务器分布在多个位置上。如果至用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,限于单个组织)、可以是公共的(例如,对许多组织可用)和/或其组合(例如,混合云环境)。
(一个或更多个)客户端设备可以包括在此关于图8所描述的(一个或更多个)示例计算设备800的组件、特征和功能中的至少一些。作为示例而非限制,客户端设备可被体现为个人计算机(PC)、膝上型计算机、移动设备、智能电话、平板计算机、智能手表,可穿戴计算机、个人数字助理(PDA)、MP3播放器、虚拟现实耳机、全球定位系统(GPS)或设备、视频播放器、摄像机、监视设备或系统,车辆、船只、飞船、虚拟机、无人机、机器人、手持式通信设备、医院设备、游戏设备或系统、娱乐系统、车辆计算机系统,嵌入式系统控制器、遥控器、电器、消费电子设备、工作站、边缘设备、这些所描绘的设备的任何组合、或任何其他合适的设备。
可以在由计算机或其他机器(如个人数据助理或其他手持式设备)执行的计算机代码或机器可用指令(包括计算机可执行指令,如程序模块)的一般上下文中描述本公开。通常,包括例程、程序、对象、组件、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。本公开可以在各种系统配置中实施,包括手持式设备、消费电子产品、通用计算机、更专业的计算设备等。本公开也可以在任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。
如在此使用的,关于两个或更多个元件的“和/或”的叙述应当被解释为意指仅一个元件、或元件的组合。例如,“元素A、元素B和/或元素C”可以包括仅元素A、仅元素B、仅元素C、元素A和元素B、元素A和元素C、元素B和元素C、或元素A、B和C。此外,“元素A或元素B中的至少一个”可包括元素A中的至少一个、元素B中的至少一个、或者元素A中的至少一个和元素B中的至少一个。此外,“元素A和元素B中的至少一个”可包括元素A中的至少一个、元素B中的至少一个、或者元素A中的至少一个和元素B中的至少一个。
在此具体描述了本公开的主题以满足法定要求。然而,描述本身不旨在限制本公开的范围。相反,发明人已预期所要求保护的主题还可结合其他当前或未来技术以其他方式来体现,以包括不同步骤或类似于在本文档中描述的步骤的步骤的组合。此外,尽管术语“步骤”和/或“框”在本文中可以用于表示所采用的方法的不同元素,但是除非并且除了明确描述个别步骤的顺序,否则该术语不应被解释为暗示在本文中公开的各个步骤之中或之间的任何特定顺序。

Claims (23)

1.一种处理器,包括:
处理电路,用于:
使用对应于帧的表面法线信息或对应于帧的深度信息中的至少一个来生成指示在所述帧中描绘的边缘的显著性图;
使用深度神经网络DNN并至少部分地基于代表所述显著性图和所述帧的数据来计算预滤波帧;以及
将代表所述预滤波帧的数据传输到最终用户设备。
2.根据权利要求1所述的处理器,其中所述显著性图包括二进制图像或灰度图像中的一个,以及所述显著性图的像素值,其中对应于边缘的像素的像素值的大小能与不对应于边缘的像素的像素值的大小区分开来。
3.根据权利要求1所述的处理器,还包括:处理电路,用于对所述预滤波帧进行编码以生成编码帧,其中代表所述预滤波帧的数据为代表所述编码帧的数据。
4.根据权利要求1所述的处理器,还包括:处理电路,用于:
监视与所述最终用户设备相关联的一个或更多个网络或系统条件;
至少部分地基于所述一个或更多个网络或系统条件确定熵控制参数的值;以及
至少部分地基于所述值,从多个DNN中选择所述DNN,其中每个DNN对应于所述熵控制参数的相应值。
5.根据权利要求1所述的处理器,其中所述深度信息对应于深度图,所述表面法线信息对应于表面法线图,以及生成所述显著性图包括:
将所述深度图或所述表面法线图中的至少一个进行缩放或归一化中的至少一项以生成一个或更多个第一中间图;
对所述一个或更多个第一中间图进行形态学闭合以生成一个或更多个第二中间图;以及
对所述一个或更多个第二中间图执行边缘检测算法以生成所述显著性图。
6.根据权利要求5所述的处理器,其中所述边缘检测算法包括Sobel算子。
7.根据权利要求1所述的处理器,其中使用对应于维护边缘细节的第一损失函数和对应于滤波的量的第二损失函数对所述DNN进行训练。
8.根据权利要求1所述的处理器,其中所述DNN包括自动编码器架构。
9.根据权利要求1所述的处理器,其中所述预滤波帧的计算还至少部分地基于应用于所述DNN的熵控制参数值,进一步,其中所述预滤波帧的滤波的量至少部分地基于所述熵控制参数值。
10.根据权利要求1所述的处理器,其中所述处理器包括在以下至少一个中:
用于执行模拟操作的系统;
用于执行深度学习操作的系统;
使用边缘设备实现的系统;
包含一个或更多个虚拟机VM的系统;
至少部分地在数据中心中实现的系统;或者
至少部分地使用云计算资源实现的系统。
11.一种系统,包括:
一个或更多个处理单元;以及
存储指令的一个或更多个存储器单元,所述指令在由所述一个或更多个处理单元执行时,使所述一个或更多个处理单元执行操作,所述操作包括:
至少部分地基于对应于最终用户设备的网络或系统条件中的至少一个,从多个深度神经网络DNN中选择一DNN;
使用与帧相对应的表面法线或深度值中的至少一个来生成指示所述帧中描绘的边缘的显著性图;
使用所选的DNN并且至少部分地基于代表所述显著性图和所述帧的数据来计算预滤波帧;以及
将代表所述预滤波帧的数据传输到最终用户设备。
12.根据权利要求11所述的系统,其中所述操作还包括:
至少部分地基于对所述网络或系统条件的分析来确定熵控制参数的值,
其中,从所述多个DNN中选择所述DNN至少部分地基于所述DNN包括对应于所述熵控制参数的相应值。
13.根据权利要求11所述的系统,其中所述显著性图包括二进制图像,所述二进制图像包括具有第一值的第一像素和具有第二值的第二像素,其中所述第一像素对应于所述边缘。
14.根据权利要求11所述的系统,其中所述操作还包括:对所述预滤波帧进行编码以生成编码帧,其中代表所述预滤波帧的数据为代表所述编码帧的数据。
15.根据权利要求11所述的系统,其中所述多个DNN中的每个DNN均包括熵控制参数的相应值。
16.根据权利要求11所述的系统,其中所述深度值被编码在深度图中,所述表面法线被编码在表面法线图中,并且生成所述显著性图包括:
将所述深度图或所述表面法线图中的至少一个进行缩放或归一化中的至少一项以生成一个或更多个第一中间图;
对所述一个或更多个第一中间图执行形态学闭合以生成一个或更多个第二中间图;以及
对所述一个或更多个第二中间图执行边缘检测算法以生成所述显著性图。
17.根据权利要求16所述的系统,其中所述边缘检测算法包括Sobel算子。
18.根据权利要求11所述的系统,其中所述系统包括在以下至少一个中:
用于执行模拟操作的系统;
用于执行深度学习操作的系统;
使用边缘设备实现的系统;
包含一个或更多个虚拟机VM的系统;
至少部分地在数据中心中实现的系统;或者
至少部分地使用云计算资源实现的系统。
19.一种方法,包括:
使用对应于帧的表面法线或深度值中的至少一个来生成指示所述帧中描绘的边缘的显著性图;
使用所选的DNN并且至少部分地基于代表所述显著性图和所述帧的数据来计算预滤波帧;
使用第一损失函数至少部分地基于比较在对应于从所述显著性图确定的边缘的像素位置处的所述预滤波帧的第一像素值和帧的第二像素值来计算第一损失值;
使用第二损失函数至少部分地基于比较所述预滤波帧内的近似位置的像素的像素值来计算第二损失值;以及
至少部分地基于所述第一损失值和所述第二损失值来更新所述DNN的一个或更多个参数。
20.根据权利要求19所述的方法,还包括:使用所述第一损失值和所述第二损失值的加权组合来计算总损失值,其中更新所述一个或更多个参数至少部分地基于所述总损失值。
21.根据权利要求19所述的方法,其中计算所述第二损失值至少部分地基于所述DNN的相关熵控制参数值,并且一个或更多个其他DNN包括不同于所述相关熵控制参数值的熵控制参数值。
22.根据权利要求19所述的方法,其中所述DNN是使用无监督学习进行训练的。
23.根据权利要求19所述的方法,其中,对于用于训练所述DNN的至少一个训练帧,对所述至少一个训练帧使用边缘检测算法来生成对应的显著性图。
CN202210928887.5A 2021-09-03 2022-08-03 使用神经网络进行基于熵的预滤波用于流式传输应用 Pending CN115767091A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/466,176 2021-09-03
US17/466,176 US20230085156A1 (en) 2021-09-03 2021-09-03 Entropy-based pre-filtering using neural networks for streaming applications

Publications (1)

Publication Number Publication Date
CN115767091A true CN115767091A (zh) 2023-03-07

Family

ID=85226580

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210928887.5A Pending CN115767091A (zh) 2021-09-03 2022-08-03 使用神经网络进行基于熵的预滤波用于流式传输应用

Country Status (4)

Country Link
US (1) US20230085156A1 (zh)
JP (1) JP2023037566A (zh)
CN (1) CN115767091A (zh)
DE (1) DE102022121250B4 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9525858B2 (en) 2011-07-06 2016-12-20 Telefonaktiebolaget Lm Ericsson (Publ) Depth or disparity map upscaling
JP2015035658A (ja) 2013-08-07 2015-02-19 キヤノン株式会社 画像処理装置、画像処理方法、および撮像装置
US20150181168A1 (en) 2013-12-20 2015-06-25 DDD IP Ventures, Ltd. Interactive quality improvement for video conferencing
US10902279B2 (en) * 2018-09-25 2021-01-26 Honda Motor Co., Ltd. Training saliency
US10929708B2 (en) * 2018-12-10 2021-02-23 International Business Machines Corporation Deep learning network for salient region identification in images
CN111931816B (zh) * 2020-07-09 2024-08-20 河南工业大学 一种视网膜图像平行处理方法及装置

Also Published As

Publication number Publication date
DE102022121250B4 (de) 2024-02-01
DE102022121250A1 (de) 2023-03-09
JP2023037566A (ja) 2023-03-15
US20230085156A1 (en) 2023-03-16

Similar Documents

Publication Publication Date Title
US11775829B2 (en) Generative adversarial neural network assisted video reconstruction
US11610435B2 (en) Generative adversarial neural network assisted video compression and broadcast
US11854230B2 (en) Physical keyboard tracking
US11823415B2 (en) 3D pose estimation in robotics
US20240126810A1 (en) Using interpolation to generate a video from static images
CN113542758A (zh) 生成对抗神经网络辅助的视频压缩和广播
US20240185506A1 (en) Hybrid differentiable rendering for light transport simulation systems and applications
US20240161377A1 (en) Physics-based simulation of human characters in motion
CN113542759A (zh) 生成对抗神经网络辅助的视频重建
US20240111894A1 (en) Generative machine learning models for privacy preserving synthetic data generation using diffusion
US11922558B2 (en) Hybrid differentiable rendering for light transport simulation systems and applications
US20230085156A1 (en) Entropy-based pre-filtering using neural networks for streaming applications
US20240233315A1 (en) Removing artifacts using dithering compensation in image streaming systems and applications
US20230336799A1 (en) Video streaming scaling using virtual resolution adjustment
US20240054657A1 (en) Frame rate up-conversion using optical flow
US20240233146A1 (en) Image processing using neural networks, with image registration
US20240160888A1 (en) Realistic, controllable agent simulation using guided trajectories and diffusion models
US20230144458A1 (en) Estimating facial expressions using facial landmarks
US11818192B2 (en) Encoding output for streaming applications based on client upscaling capabilities
US20240098303A1 (en) Encoding output for streaming applications based on client upscaling capabilities
US11600036B2 (en) Spatiotemporal self-guided shadow denoising in ray-tracing applications
WO2023081138A1 (en) Estimating facial expressions using facial landmarks
WO2023033803A1 (en) Systems and methods for progressive rendering of refinement tiles in images
CN116740299A (zh) 可变形对象的动作条件隐式动态
CN118043859A (zh) 高效视觉感知

Legal Events

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