CN117812380A - 估计视频序列中的被遮挡内容的流矢量 - Google Patents
估计视频序列中的被遮挡内容的流矢量 Download PDFInfo
- Publication number
- CN117812380A CN117812380A CN202311264973.1A CN202311264973A CN117812380A CN 117812380 A CN117812380 A CN 117812380A CN 202311264973 A CN202311264973 A CN 202311264973A CN 117812380 A CN117812380 A CN 117812380A
- Authority
- CN
- China
- Prior art keywords
- pixel
- pixels
- frame
- vector
- flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000013598 vector Substances 0.000 title claims abstract description 126
- 230000003287 optical effect Effects 0.000 claims abstract description 103
- 238000000034 method Methods 0.000 claims abstract description 83
- 230000033001 locomotion Effects 0.000 claims description 67
- 238000012545 processing Methods 0.000 claims description 56
- 238000009877 rendering Methods 0.000 claims description 6
- 238000013135 deep learning Methods 0.000 claims description 5
- 238000004088 simulation Methods 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 48
- 230000008569 process Effects 0.000 description 38
- 238000003860 storage Methods 0.000 description 19
- 230000002093 peripheral effect Effects 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004091 panning Methods 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 208000005168 Intussusception Diseases 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000003319 supportive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/269—Analysis of motion using gradient-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了估计视频序列中的被遮挡内容的流矢量。系统和方法估计视频序列的帧之间的被遮挡像素的光流矢量。可以识别被遮挡像素的区域,并且可以确定其遮挡的原因。可以至少部分地基于遮挡的原因应用不同的估计技术,以提供轻量级的、较不资源密集的光流数据估计。可以使用第一技术估计由于移出帧而遮挡的像素的光流矢量,而可以使用第二技术估计由于前景移动而遮挡的像素的光流矢量。
Description
背景技术
视频序列可以包括在整个视频序列中四处移动的各种前景和/或背景对象。在某些情况下,前景和/或背景对象的移动可以导致视频序列中帧之间像素的遮挡。因此,不同帧之间的某些像素可能被确定为具有无效的流矢量,因为由于这些移动,不再能够检测到一个或更多个特征。如果没有有效的流矢量,某些插值算法可能不太能够生成无伪影的中间帧。处理这些遮挡像素片段的先前解决方案在存储和处理要求方面通常很慢且成本高,因此不太适合需要实时或近实时处理的各种应用,和/或在具有有限的计算和/或存储器能力的设备上执行的应用。
附图说明
将参照附图描述根据本公开的各种实施例,其中:
图1示出了根据至少一个实施例的用于视频片段处理的环境的示例;
图2A和图2B示出了根据至少一个实施例的由于前景对象的移动而引起的遮挡的示例表示;
图3示出了根据至少一个实施例的由于移出帧引起的遮挡的遮挡填充管线的部分的示例;
图4A和图4B示出了根据至少一个实施例的用于考虑到由于对象移动引起的遮挡的遮挡填充管线的部分的示例;
图5示出了根据至少一个实施例的用于估计遮挡像素的光流矢量的过程的示例流程图;
图6A示出了根据至少一个实施例的用于估计由于移出帧而引起的遮挡像素的光流矢量的过程的示例流程图;
图6B示出了根据至少一个实施例的用于估计由于对象移动而引起的遮挡像素的光流矢量的过程的示例流程图;
图7示出了根据至少一个实施例的示例数据中心系统;
图8示出了根据至少一个实施例的计算机系统;
图9示出了根据至少一个实施例的计算机系统;
图10示出了根据一个或更多个实施例的图形处理器的至少部分;以及
图11示出了根据一个或更多个实施例的图形处理器的至少部分。
具体实施方式
根据各种实施例的方法通过提供轻量级、快速、实时或近实时(例如,没有显著延迟)的方法来检测和估计遮挡像素的光流矢量,从而克服了这些和其他缺陷。在至少一个实施例中,光流数据用于确定序列中图像之间的遮挡区域。该光流数据可用于生成与给定帧内的遮挡区域相对应的估计。另外,各种实施例可以使用该估计来采用估计的流矢量填充那些区域。例如,对于被遮挡的像素集,可以评估该被遮挡的像素以确定它们是否已移出该图像的一帧(例如,超出边界)。如果是这样,则可以将给定像素的光流估计为已知流的反转。也就是说,如果前向流是未知的,但后向流是已知的,则对于移出一帧的像素,可以将前向流估计为后向流的反转。这种方法可用于填充被遮挡区域的大片区域,从而留下较少数量的像素用于进一步处理。在至少一个实施例中,可以评估剩余像素以通过基于遮挡像素的边界像素和全局流填充像素来估计相应的光流。以这种方式,可以估计一帧内每个像素的光流矢量。然后,该光流数据可由各种应用程序使用,诸如用于渲染序列中的中间帧、运动检测、导航或可在视频中使用检测到的运动的各种其他应用。
本公开的各种实施例旨在估计由于遮挡而在帧序列中的后续帧中不可见的像素的光流矢量。一个或更多个光流引擎为在下一帧中不可见的像素提供无效的流矢量。为了生成准确的中间帧(如插值帧),需要这些流矢量。实施例提供了使用廉价技术为这些像素生成近似流矢量的系统和方法。各种实施例可以确定遮挡区域并将该区域分隔为两个或更多个类别,其中可以使用不同的算法和/或不同的操作填充不同类别。例如,对于由于像素移出帧而引起的遮挡,反转相反的流矢量(例如,用于前向遮挡的后向流矢量或用于后向遮挡的前向流矢量)可用于近似某些像素的流矢量。另外,在一个实施例中,对于由于前景对象移动引起的遮挡,可以从与全局流非常匹配的边界获得流矢量。因此,系统和方法克服了现有技术的问题。
图1示出了根据至少一个实施例的可用于提供这种功能的示例环境100。在本示例中,环境可以与一个或更多个视频处理系统相关联,诸如游戏引擎、运动检测系统、导航系统等。如图所示,将输入102提供给渲染管线104。输入102可以包括图像数据,诸如视频序列,其包括一系列图像数据帧。输入102可以由光学捕获设备提供,诸如摄像机,其中输入102可以是实时视频馈送、存储的视频文件或其某种组合。该输入也可以是玩游戏连续镜头(gameplay footage)的一部分,例如图形处理器通过执行视频游戏产生的连续镜头。另外,输入102可以是从游戏引擎接收的用于在显示器上渲染的图像,该显示器可以响应用户对一个或更多个输入设备的一个或更多个输入。
在该示例中,处理管线104可以包括执行以生成输出一个或更多个算法或模块,输出可以是其他选项中的视频或单个图像的形式。此外,处理管线104可以输出数据,例如,在管线104是用于检测对象的运动的运动跟踪管线的实施例中。应该理解的是,处理管线104可以是软件框架的一部分,或构成软件框架的一部分,该软件框架包括诸如渲染引擎、物理引擎、声音引擎和/或类似物的组件。此外,应当理解的是,图1的处理管线104并不局限于诸如视频生成的环境,例如视频游戏,而且还可以与诸如个人设备上的相机单元相关联,其中处理管线可以包括用于接收输入视频或图像流、调整一个或更多个因素(例如滤波、上采样等)、然后提供用于在屏幕上显示的输出的组件。此外,在实施例中,处理管线104可以形成对象检测系统的部分,例如用于自主车辆,以检测对象,估计其运动,然后使用该运动信息,做出关于车辆的轨迹或运动的一个或更多个决定。
本公开的各种实施例旨在遮挡填充管线106,该管线106可以接收包括至少两个时间间隔的帧的视频序列作为输入。虽然遮挡填充管线106的输入显示为来自处理管线104,但应该理解,可以将输入102直接提供给遮挡填充管线106,而无需经过处理管线104。遮挡填充管线106可以确定帧之间的光流,确定输入和参考之间的遮挡区域,估计遮挡区域的光流数据,并向与帧的光流数据相关联的处理管线104提供输出数据。然后,处理管线104可以使用该信息以改进输出帧集、检测帧内的对象、添加附加帧,等等。
所示的遮挡填充管线106包括光流引擎108,其可包括用于确定一对图像(或在各种实施例中,更大的图像序列)之间的光流的一种或更多种算法。光流引擎108可用于确定前向光流或后向光流中的一个或两个。前向光流对应于第一帧和第二帧之间的运动,其中第一帧在第一时间t0,第二帧在第二时间t1。后向光流对应于第二帧与第一帧之间的运动,其中第一帧在第一时间t0,第二帧在第二时间t1。应该理解的是,各种算法可以用于确定光流,包括但不限于NVIDIA公司的NVIDIAOptical Flow SKD。
在至少一个实施例中,遮挡检测模块110用于确定与遮挡区域相对应的输入102的一个或更多个区域。如上所述,遮挡区域可以至少部分地定义为前向光流矢量或后向光流矢量中的至少一个无效的区域。例如,遮挡区域可以对应于由于移动而在第一图像或第二图像之一中不可见的像素区域,诸如在图像内的对象的平移和/或缩放或移动。应该理解的是,这种估计可以可视化,例如,作为覆盖在原始图像上的梯度,该梯度示出了流方向和/或强度,但是估计的遮挡信息对应于帧内的一个或更多个像素及其相关的光流矢量,该光流矢量可能是无效的。在至少一个实施例中,遮挡检测模块110随后可用于识别这些特定像素。这些像素也可以根据其光流数据进行分离或分割。例如,像素可以在由于帧移出而被遮挡的像素和由于前景对象运动而被遮挡的像素之间分组。如本文所述,这些不同的像素分组可以以不同的方式估计和填充。应当理解的是,遮挡也可能由于诸如噪声等其他原因而发生,但是为了清晰和简单起见,实施例可以指由于移动出帧边界或由于对象移动而引起的遮挡。
本公开的各种实施例还包括光流估计模块112。光流估计模块112可包括用于确定给定遮挡像素的光流信息的一种或更多种算法,其中所使用的算法可至少部分地根据该像素的分组或参数来选择。例如,如本文所述,第一算法可用于估计与帧外移动相关联的像素流矢量,而第二算法可用于估计与前景对象移动相关联的像素流矢量。通过分离和使用不同的算法,实施例能够通过更昂贵的、处理密集的算法减少用于评估的像素的数量。此外,算法可以针对特定情况进行调整,从而提供具有减少的资源使用的改进的结果。
光流估计可以包括确定用于帧内的给定像素和/或两个或更个多帧中的像素的光流矢量。然后,填充模块114可以使用这些估计为每个像素预测光流矢量。如上所述,虽然填充可以可视化,但输出对应于每个像素的单个流矢量。然后可以将这些流矢量提供给处理管线104以进一步评价和使用。例如,在具有视频处理的示例中,可以估计额外的帧以增加帧速率、生成慢运动效果,等等。然后可以将信息提供给内容呈现器116,例如,在其中光流用于内容生成的实施例中。应当理解的是,各种其他实施例(诸如在此描述的实施例)可以不使用内容呈现器116。
各种实施例可以使用一个或更多个处理管线,以便估计视频片段内一个或更多个遮挡像素的光流矢量。如上所述,可以至少部分地基于遮挡的原因来不同地处置和处理不同的像素。因此,各种实施例可以包括多操作过程,以首先确定帧的遮挡区域,确定遮挡的原因,处理第一像素集,处理第二像素集,然后用估计的光流数据填充该像素。实施例可包括不同类型运动的估计技术。例如,对于由于相机平移引起的遮挡,将后向方向的流矢量反转到前向方向(反之亦然)可以提供一种轻量级的方法以估计图像区域的光流。对于由于前景/背景对象运动引起的遮挡,如果后向方向流矢量的反转非常近似于全局流,则实施例可以将后向方向流矢量在正向方向上反转。在各种实施例中,与现有技术不同,仅使用昂贵的图像修补技术填充在初始估计之后剩余的像素。例如,当前的方法实现了相同的内填充技术,而不管遮挡状态如何。此外,使用诸如RANSAC(随机抽样共识)的方法来估计每个片段的模型。相反,本公开的实施例可以使用扫描线内填充。此外,在先方法使用模型传播来细化流,而本公开的实施例可以使用中值滤波来细化流。
图2A和2B示出了表示200中的前向光流和表示250中的后向光流之间的光流确定的表示200、250。在示例中,呈现了帧202、帧204以供光流引擎108评估。帧202、帧204可以是视频序列的一部分,并且可以是时间上间隔开的帧,使得帧202在第一时间,帧204在第二时间,在本示例中第二时间晚于第一时间。在各种实施例中,帧202可被称为“帧A”,帧204可被称为“帧B”。在本示例中,第一对象206显示在两个帧202、204中。第一对象206位于帧202中的像素位置(x,y),可记为A1(x,y)。第二对象208示出于图2A的第一帧202和图2B的第二帧204中。第二对象208位于图2A的帧202中的像素位置(x,y),其中该位置可以记为A2(x,y)。
参考图2A,第一对象206在第一帧202和第二帧204之间从像素位置A1(x,y)移动到像素位置A2(x,y),从而遮挡第二帧204中的第二对象208。然后,示出了第一对象206位于像素位置B1(x,y),该像素位置B1(x,y)可对应于某些实施例中的A2(x,y)。即,由于第一对象206的移动,第二对象208在第二帧204中不再可见。该移动可由光流引擎108处理,光流引擎108针对上述对象生成这些光流的表示210。应当理解的是,表示210是为了示出目的和清晰,并且在各种实施例中,对应于光流的输出是与不同像素位置相关联的矢量。在本示例中,光流表示212指示从像素A1(x,y)到第二帧204中的关联像素B1(x,y)的流矢量(Fa(x,y))。这可以被称为前向方向流矢量。所示的光流表示212具有与第二光流表示214不同的阴影。光流表示212是指向右侧的有效流矢量(例如,指示第一对象206已在第一帧202和第二帧204之间向右移动)。由于第一对象206的运动引起的遮挡,光流表示214是无效的流矢量。
参考图2B,第一对象206在第一帧202和第二帧204之间从像素位置A2(x,y)移动到像素位置A1(x,y),从而不再遮挡第二对象208。在移动后,显示第一对象206位于像素位置B2(x,y),其在某些实施例中可对应于A1(x,y)。此外,在移动之后,第二对象208现在在像素位置A2(x,y)可见,该像素位置也可以被称为B1(x,y)。该移动可以由光流引擎108处理,光流引擎108针对该对象生成这些光流的表示216。应该理解的是,表示216是为了说明性目的以及为了清晰,并且在各种实施例中,输出是与不同像素位置相关联的矢量。在本示例中,光流表示218指示从像素A2(x,y)到第二帧204中的关联像素B2(x,y)的流矢量(Fb(x,y))。这可以被称为后向方向流矢量。所示的光流表示218具有与第二光流表示220不同的阴影。光流表示218是指向左侧的有效流矢量(例如,指示第一对象206在第一帧202和第二帧204之间向左移动)。由于第一对象206的移动引起的遮挡,光流表示220是无效的流矢量。
如图所示,图2A和图2B中对象的移动产生遮挡区域,可能没有有效的光流矢量,因此,如果没有昂贵的分析和图像修补(in-painting),可能无法用于各种应用中。然而,本公开的各种实施例旨在估计位于第二帧204中被遮挡的像素位置(x,y)的流矢量。这个估计的流矢量可以被称为Fa*(x,y)。在一个示例中,A(x,y)是在下一帧中被遮挡的像素,因此Fa(x,y)将不可用,Fb(x,y)将可用。实施例通过将从遮挡检测算法获得的遮挡信息提供给光场估计112以供进一步分析来估计Fa(x,y),如本文所示。
如前所述,本公开的实施例可以包括至少部分地基于像素遮挡的原因或理由的不同的操作或分析。例如,第一评估可以用于由于移出帧而被遮挡的像素,诸如由于相机平移、缩放等。第二评估可用于由于前景对象的移动而被遮挡的像素,如图2A和图2B所示的示例。应该理解的是,可能会使用额外的评估和/或操作,也可能存在像素被遮挡的进一步原因——例如,由于噪声。
关于由于像素离开下一帧的边界外而引起的一个或更多个遮挡,各种实施例可以至少部分地基于评估相反方向的光流来估计光流。例如,由于像素离开帧的边界而导致的遮挡可以表示为:
==下一帧中被遮挡(Occluded in next frame)AND
(x,y)+(-Fb(x,y))==帧边界外(out of frame bound))→(Fa(x,y)=-Fb(x,y))
其中,如上所述,A可以是视频序列中的帧,B是在时间上靠近A的帧,A(x,y)表示A中的像素位置(x,y)坐标,Fa(x,y)指示从像素A(x,y)到B中的像素的流矢量(例如,前向方向流矢量),Fb(x,y)指示从像素B(x,y)到A中的像素的流矢量(例如,后向方向流矢量)。实施例还可以表示为以下伪代码,其可以形成用于估计光流数据的算法的一个或更多个部分:
因此,作为分析的至少一部分,各种实施例可以识别具有无效流矢量的像素,确定像素是否由于移出帧而无效,然后,如果是这样,将像素的估计流矢量设置为其对立面(例如,相反方向上该流矢量的负值)。在某些实施例中,可以在大面积帧上提供这样的估计,诸如那些帧平移或缩放的实施例中,可以假设其对剩余对象具有有限的移动。此外,即使对有限对象的假设不成立,也可以进一步评估这些像素以确定它们留在帧中,因此可以执行进一步评估以识别和估计其他流矢量。
如前所述,各种实施例可以将不同的像素分割或以其他方式分组为包括由于移出帧而遮挡的像素的子集,如上所述,以及由于前景对象移动而遮挡的其他像素。对于与前景对象移动相关联的第二子集,可以执行进一步的分析,以估计剩余遮挡片段的流矢量。实施例可以包括诸如识别被遮挡区域的边界像素的操作。这些边界像素可以与全局流进行比较,全局流可能与背景对象的流密切相关,并且与全局流密切相关的边界像素可以具有更高的图像修补偏好。与全局流有相似性的边界像素(例如,大小和极角相似)可以被识别为用于图像修补的区域。识别的点可以被安排在分析队列内,然后沿一个或更多个(例如,四个)方向(例如,左、右、上、下)遍历,可以从一个起点开始,并在遍历期间继续内填充所有孔。该方法可以继续进行,直到到达边界点。如将要描述的,各种实施例可在有效边界像素上实现快速扫描线方法。在无效像素具有无限成本的情况下,可以使用成本图(costmap),并且迭代过程可以继续以最低成本内填充受影响的像素。
图3是用于填充由于移出帧边界(例如,平移、缩放等)而被遮挡的像素的填充过程的示例表示300。在本示例中,光流估计器112接收作为输入的与第一帧A的前向光流302、后向光流304和遮挡信息306相对应的光流数据。应当理解的是,图3中提供的数据作为示例示出以说明不同帧内的遮挡区域和/或运动,并且在各种实施例中,不提供可视化作为输入。相反,输入可以包括与各个像素的矢量相对应的数据。即,每一帧的每个像素可以有自己的流数据,其中前向光流302显示帧A与帧B(例如,帧202、帧204)之间的光流,后向光流304显示帧B与帧A之间的光流,遮挡信息306显示被遮挡像素在帧A上的聚合。在本示例中,无效像素308在具有不同阴影的光学流302、304中突出显示。另外,遮挡区域310也被分割或以其他方式映射以示出特定遮挡区域。如上所述,无效像素308可以仅仅对应于由于移出帧区域而具有不确定的光流值的像素。
本公开的各种实施例使用光流估计器112来至少部分地基于输入信息估计帧A的一个或更多个像素的光流。如果确定遮挡是由于移出帧引起的,如上所述,不同像素的光流可以通过使用后向光流的负值来近似。例如,在对应于帧A的输出流表示312中,可以看到,在其他区域当中,边界314周围的区域已被填充,尽管前向光流302示出,由于移出帧,这些区域是未知的。如前所述,该输出仅作为用于协助本讨论的示例提供,并且处理的输出可以包括将矢量分配给不同的像素。如图所示,与前向光流302相比,输出流表示312具有更少的无效像素308。然后,这些像素可以通过使用与光流估计器112相关联的一种或更多种附加方法来填充——例如,使用图像修补逻辑。
图4A示出与包括像素404集的帧片段402相关联的图像修补逻辑的序列400。在本示例中,像素404排列在5x5网格中,但是片段402的这种排列仅用于示出目的,并不打算限制本公开的范围。帧片段402的像素404包括遮挡像素406、边界像素408和有效像素410。在本示例中,边界像素408可定义为与遮挡像素相邻的像素。边界像素408和有效像素410可以具有有效的流矢量,然而,遮挡像素406可以不具有有效的流矢量。应该理解的是,边界像素408也可以是有效像素410,但是由于有效像素410在至少一侧与无效像素不接触而被不同地标记。
在各种实施例中,可以通过比较边界像素408的流与全局流来确定未填充遮挡像素406的边界像素408。全局流可以与背景对象流密切相关。这些相似的边界像素408(例如,大小和极角相似)可能是图像修补的起始位置。可以选择边界像素408,然后可以从一个或更多个方向(例如,左,右,上,下)开始遍历。可以使用满足标准的每个边界像素408,直到填充所有的孔。当接触到另一个边界点或接触到一条边时,特定像素的填充可以结束。
在示出的帧片段402的示例中,可以用边界像素408A、408B、408C来展示过程。在本示例中,遍历方向412是从左到右,如箭头所示。对于边界像素408A,由于接触了有效像素410,因此不执行填充。对于边界像素408B,从左到右的移动会导致在三个被遮挡的像素406A-406C上执行填充。类似地,当从边界像素408C开始并从左向右移动时,会发生填充。
作为序列的一部分,部分填充的帧片段414示出了在从左到右的第一次遍历之后帧片段402的外观。在本示例中,遍历方向412现在是从右到左。从408A开始,被遮挡的像素406D,408E现在被填充。类似地,从408C开始,填充被遮挡的像素408F,导致部分填充的帧片段416。该过程可以继续使用部分填充的帧片段416,其中,例如,当从上到下移动时,边界像素408A导致填充被遮挡的像素406G。从上到下遍历的结果可以在部分填充的帧片段418中看到。在该片段418中的每个像素404都被填充时,如果找到了更廉价的填充,则遍历过程将继续,下面将进行详细描述。最后,在完成对每个选定的边界像素408的遍历之后,显示填充的像素片段420。
在各种实施例中,用于填充剩余像素的这种快速扫描线方法可以使用成本图,使得候选像素被填充使其成本最小化的流。如图4B所示,序列400示出了与各种填充过程相关联的成本。在该示例中,遮挡像素406的成本是无限的。其他像素有不同的成本,可以用它们的坐标位置表示,诸如c(a,b)。例如,成本c(0,1)对应于在第一行(0)和第二列(1)的像素。小写“c”指示首次访问该像素。即,小写“c”表示初始填充,将遮挡像素从遮挡像素改变为具有估计光流矢量的像素。然而,随后的访问可以比较分配的光流矢量与潜在的新光流矢量的成本,并试图最小化成本。例如,C(a,b)可以表示该最小化的成本,它可以等于Min(C(a,b),newcost)。在至少一个实施例中,Dijkstra算法用于最小化成本,其中成本取决于行进距离、变形成本(warp cost)和强度差。那么,成本最低的光流可以通过以下方式确定:
infillingcost=(λ1*warp_cost)+(λ2*intensity_diff)
可以通过以下伪代码执行:
在本示例中,帧片段402包括与使用那些帧进行填充相关联的示例成本,其中为了清晰起见已去除图4A的阴影。如图所示,各种遮挡像素具有无穷大的成本,而其他像素的成本与它们的位置相对应。在初始帧片段402中,所有成本都用小写字母“c”示出,因为尚未发生填充。此外,应当理解的是,只有某些成本是以清晰和简洁的方式来显示的。
在生成部分填充的帧片段414的第一次操作之后,可以看到,被遮挡的像素406D、406E现在分别被与光流矢量相关联的成本填充,其中由于第一访问用于填充像素,因此成本以小写“c”示出。在部分填充的帧片段416、418中显示了额外的过程,其中成本可以用大写的“C”符号代替,示出了确定后续过程比先前为了填充而选择的过程更廉价。例如,在部分填充的帧片段416中,在从上到下的过程中第二次访问了某些像素,并且可以确定某些像素具有更廉价的填充成本。通过这种方式,可以评估像素区域内的每个像素,并且可以选择成本最低的填充候选,从而在估计遮挡像素的光流矢量时减少处理资源或存储器使用。
图5示出了用于确定遮挡像素的光流的示例过程500。应当理解的是,对于本文提出的这一过程和其它过程,除非另有具体说明,否则在各种实施例的范围内可以有以类似或替代顺序执行或者至少部分并行地执行的附加的、更少的或替代的操作。在此示例中,对于视频序列502中至少两帧接收光流数据。这些帧在时间上彼此相邻,但应理解的是,这些帧不一定是视频序列中的连续帧。即,在被分析的两个帧之间可能存在中间帧。可以使用光流数据来确定一组遮挡像素504。例如,光流数据的部分可以包括前向流矢量,而光流数据的部分可以包括后向流矢量。然后,可以在两帧之间比较这些矢量,以确定该组遮挡像素。
在至少一个实施例中,可以为该组遮挡像素506中的遮挡像素确定遮挡原因。可能有各种各样的遮挡原因,因此,不同的技术可以用于至少部分地基于不同的遮挡原因来估计光流矢量。作为示例,遮挡的一个原因可能是由于像素运动而移出帧边界,例如由于平移或缩放。另一个原因可能是由于前景物对象运动导致像素被隐藏。另一个原因可能是噪音。应该理解的是,各种技术可以用于识别遮挡的原因。例如,对于移出帧边界外的移动,可以评估像素以确定其光流是否将其带出帧。对于前景对象移动引起的遮挡,一种或更多种分割和/或对象识别算法可以用于识别两帧之间的对象,以确定对象边界是否已移动到一帧中。
各种实施例还可以包括识别与所确定的遮挡原因508相关联的一个或更多个像素的子集。例如,不同的像素子集可以被分组或以其他方式被标记,以便使用本公开的一种或更多种技术进行处理。因此,不同的像素可以被分组进行特定的处理。应当理解的是,这种分组或标记可以包括准备像素以使用一种或更多种技术进行处理。遮挡原因512的识别可用于确定如何处理像素以估计有效的流矢量。例如,如果遮挡的原因是移出帧,则可以至少部分地基于各自的反向流方向514来估计那些像素的光流矢量。即,在给定位置,可以应用将像素带出帧的流矢量的逆(例如,负值)。如果遮挡的原因是由于前景对象移动,则可以基于填充方法516估计光流矢量。因此,可以基于遮挡的原因应用不同的技术,不同的技术有不同的成本,因此可以允许更快、更不处理器密集的估计。因此,可以提供估计的光流数据以供一个或更多个处理管线518使用。
图6A示出了用于确定遮挡像素的光流的示例性过程600,其中遮挡是由像素从第一帧和第二帧之间的帧边界移动引起的。在本示例中,接收针对视频序列的两个或更多个在时间上间隔的帧的光流数据602。如上所述,图像可以不直接彼此相邻,但至少有一个图像将在时间t0,至少有一个图像将在时间t1,其中t0和t1彼此不同。基于该光流数据,可以确定遮挡像素集604。例如,部分光流数据可以包括与前向流相对应的信息。另外,部分光流数据可以包括与后向流相对应的信息。比较两者可以提供遮挡信息,该遮挡信息识别在第一图像和第二图像之间遮挡的像素集。例如,如果在第一图像和第二图像之间发生放大,则来自第一图像的某些像素将不再位于第二图像的帧边界内。
在至少一个实施例中,可以确定的是,被遮挡像素集的遮挡是由于移出边界帧而引起的,例如,由于平移或缩放。对于这些像素中的每一个,可以确定逆向流矢量606。例如,如果将像素带出帧的初始流矢量是前向流矢量,那么逆就是后向流矢量。同样,如果将像素带出帧的初始流矢量是后向流矢量,那么逆流矢量就是前向流矢量。然后可将相应的被遮挡像素的光流矢量估计为相应逆向流矢量的负值608。通过这种方式,可以快速评估像素集并分配估计的流矢量。当与传统技术比较时,可以通过减少存储器或处理资源的消耗来完成该过程。因此,处理可以更快,使得可以实时或近实时地(例如,没有显著延迟)执行该技术,从而提供更大的应用程序集来使用,包括但不限于视频游戏渲染、视频处理、对象识别和跟踪、导航等。
图6B示出了用于确定被遮挡像素的光流的示例过程650,其中遮挡是由在第一帧和第二帧之间的前景对象移动引起的。在本示例中,接收针对视频序列中至少两个帧的光流信息652。如上所述,该两个帧可以不直接在时间上彼此相邻,但至少两个帧处于视频序列内的不同时间位置。光流数据可用于确定被遮挡像素集654。例如,可以比较前向流矢量和后向流矢量以识别第一帧和第二帧之间的被遮挡像素区域。从被遮挡像素集中,可以识别与由于前景对象移动而被遮挡的像素相对应的子集656。例如,在各种实施例中,遮挡可以由不同的因素引起,诸如移出帧边界、噪声等。这些不同的因素可以导致不同类型的光流估计,因此,子集的识别在选择特定的算法或分析以进行技术时可能是有用的。
可以为每个被遮挡像素识别边界像素658。边界像素可以对应于沿至少一个条边接触被遮挡像素的像素。因此,边界像素可以是多个不同的被遮挡像素的边界像素。然后,可以选择边界像素660,并且可以沿着选定的方向开始遍历,以用估计的流矢量662填充被遮挡像素。例如,当沿多个方向(诸如左、右、上、下)进行遍历时,可以使用快速扫描线。遍历可以从像素沿一个方向开始,识别被遮挡像素,应用填充,然后继续,直到接触到另一个边界像素或边。在遍历中,可以确定被遮挡像素是否已经被填充664。如果为是,则可以比较每个填充的成本666,并且可以为被遮挡像素选择最低的成本668。如果为否,则可以应用被选择的边界像素的填充670。
一旦边界像素沿选定的方向遍历并且填充了适当的遮挡像素,则确定是否存在用于遍历的附加的边界像素672。如果为是,则可以选择不同的像素,然后继续遍历、评估和填充。如果否,则可以确定是否存在附加的遍历方向674。如果为是,则可以选择边界像素来沿不同方向遍历。如果为否,则可以确定被遮挡像素已全部被填充,因此,可以提供被遮挡像素的估计的光流矢量676,例如用于一个或更多个支持性应用,如上所述。
数据中心
图7示出了可以使用至少一个实施例的示例数据中心700。在至少一个实施例中,数据中心700包括数据中心基础设施层710、帧层720、软件层730和应用层740。
在至少一个实施例中,如图7所示,数据中心基础设施层710可以包括资源协调器712、分组的计算资源714和节点计算资源(“节点C.R.”)716(1)-716(N),其中“N”代表任何正整数。在至少一个实施例中,节点C.R.716(1)-716(N)可以包括但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括加速器、现场可编程门阵列(FPGA)、图形处理器等),存储器设备(例如动态只读存储器)、存储设备(例如固态硬盘或磁盘驱动器),网络输入/输出(“NWI/O”)设备,网络交换机,虚拟机(“VM”),电源模块和冷却模块等。在至少一个实施例中,节点C.R.716(1)-716(N)中的一个或更多个节点C.R.可以是具有一个或更多个上述计算资源的服务器。
在至少一个实施例中,分组的计算资源714可以包括容纳在一个或更多个机架内的节点C.R.的单独分组(未示出),或者容纳在各个地理位置的数据中心内的许多机架(也未示出)。分组的计算资源714内的节点C.R.的单独分组可以包括可以被配置或分配为支持一个或更多个工作负载的分组的计算、网络、存储器或存储资源。在至少一个实施例中,可以将包括CPU或处理器的几个节点C.R.分组在一个或更多个机架内,以提供计算资源来支持一个或更多个工作负载。在至少一个实施例中,一个或更多个机架还可以包括任何数量的电源模块、冷却模块和网络交换机,以任意组合。
在至少一个实施例中,资源协调器712可以配置或以其他方式控制一个或更多个节点C.R.716(1)-716(N)和/或分组的计算资源714。在至少一个实施例中,资源协调器712可以包括用于数据中心700的软件设计基础结构(“SDI”)管理实体。在至少一个实施例中,资源协调器107可以包括硬件、软件或其某种组合。
在至少一个实施例中,如图7所示,帧层720包括作业调度器722、配置管理器724、资源管理器726和分布式文件系统728。在至少一个实施例中,帧层720可以包括支持软件层730的软件732和/或应用程序层740的一个或更多个应用程序742的帧。在至少一个实施例中,软件732或应用程序742可以分别包括基于Web的服务软件或应用程序,例如由AmazonWeb Services,Google Cloud和Microsoft Azure提供的服务或应用程序。在至少一个实施例中,帧层720可以是但不限于一种免费和开放源软件网络应用程序帧,例如可以使用分布式文件系统728来进行大范围数据处理(例如“大数据”)的Apache SparkTM(以下称为“Spark”)。在至少一个实施例中,作业调度器732可以包括Spark驱动器,以促进对数据中心700的各个层所支持的工作负载进行调度。在至少一个实施例中,配置管理器724可以能够配置不同的层,例如软件层730和包括Spark和用于支持大规模数据处理的分布式文件系统728的帧层720。在至少一个实施例中,资源管理器726能够管理映射到或分配用于支持分布式文件系统728和作业调度器722的集群或分组计算资源。在至少一个实施例中,集群或分组计算资源可以包括数据中心基础设施层710上的分组计算资源714。在至少一个实施例中,资源管理器726可以与资源协调器712协调以管理这些映射的或分配的计算资源。
在至少一个实施例中,包括在软件层730中的软件732可以包括由节点C.R.716(1)-716(N)的至少一部分,分组的计算资源714和/或帧层720的分布式文件系统728使用的软件。一种或更多种类型的软件可以包括但不限于Internet网页搜索软件、电子邮件病毒扫描软件、数据库软件和流视频内容软件。
在至少一个实施例中,应用层740中包括的一个或更多个应用程序742可以包括由节点C.R.716(1)-716(N)的至少一部分、分组计算资源714和/或帧层720的分布式文件系统728使用的一种或更多种类型的应用程序。一种或更多种类型的应用程序可以包括但不限于任何数量的基因组学应用程序、认知计算和机器学习应用程序,包括训练或推理软件,机器学习帧软件(例如PyTorch、TensorFlow、Caffe等)或其他与一个或更多个实施例结合使用的机器学习应用程序。
在至少一个实施例中,配置管理器724、资源管理器726和资源协调器712中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实现任何数量和类型的自我修改动作。在至少一个实施例中,自我修改动作可以减轻数据中心700的数据中心操作员做出可能不好的配置决定并且可以避免数据中心的未充分利用和/或执行差的部分。
在至少一个实施例中,数据中心700可以包括工具、服务、软件或其他资源,以根据本文所述的一个或更多个实施例来训练一个或更多个机器学习模型或者使用一个或更多个机器学习模型来预测或推理信息。例如,在至少一个实施例中,可以通过使用上文关于数据中心700描述的软件和计算资源,根据神经网络架构通过计算权重参数来训练机器学习模型。在至少一个实施例中,通过使用通过本文所述的一种或更多种训练技术计算出的权重参数,可以使用上面与关于数据中心700所描述的资源,使用对应于一个或更多个神经网络的经训练的机器学习模型来推理或预测信息。
在至少一个实施例中,数据中心可以使用CPU、专用集成电路(ASIC)、GPU、FPGA或其他硬件来使用上述资源来执行训练和/或推理。此外,上述的一个或更多个软件和/或硬件资源可以配置成一种服务,以允许用户训练或执行信息推理,例如图像识别、语音识别或其他人工智能服务。
此类组件可用于建立安全连接。
计算机系统
图8是示出了根据至少一个实施例示例性计算机系统的框图,该示例性计算机系统可以是具有互连的设备和组件的系统,片上系统(SOC)或它们的某种形成有处理器的组合,该处理器可以包括执行单元以执行指令。在至少一个实施例中,根据本公开,例如本文所述的实施例,计算机系统800可以包括但不限于组件,例如处理器802,其执行单元包括逻辑以执行用于过程数据的算法。在至少一个实施例中,计算机系统800可以包括处理器,例如可从加利福尼亚圣塔克拉拉的英特尔公司(Intel Corporation of Santa Clara,California)获得的处理器家族、XeonTM、/>XScaleTM和/或StrongARMTM,/>CoreTM或/>NervanaTM微处理器,尽管也可以使用其他系统(包括具有其他微处理器的PC、工程工作站、机顶盒等)。在至少一个实施例中,计算机系统800可以执行可从华盛顿州雷蒙德市的微软公司(Microsoft Corporation of Redmond,Wash.)获得的WINDOWS操作系统版本,尽管其他操作系统(例如UNIX和Linux)、嵌入式软件和/或图形用户界面也可以使用。
实施例可以用在其他设备中,例如手持设备和嵌入式应用程序。手持设备的一些示例包括蜂窝电话、互联网协议(Internet Protocol)设备、数码摄像机、个人数字助理(“PDA”)和手持PC。在至少一个实施例中,嵌入式应用程序可以包括微控制器、数字信号处理器(“DSP”)、片上系统、网络计算机(“NetPC”)、边缘计算设备、机顶盒、网络集线器、广域网(“WAN”)交换机,或根据至少一个实施例可以执行一个或更多个指令的任何其他系统。
此处描述的系统和方法的实施例可用于各种目的,作为示例但不限制,用于机器控制、机器运动、机器驱动、合成数据生成、数字孪生、模型训练、感知、增强现实、虚拟现实、混合现实、机器人、安全和监控、自主或半自主机器应用、深度学习、环境模拟、数据中心处理、对话式AI、光传输模拟(例如,光线追踪,路径追踪等)、3D资产的协作内容创建、云计算和/或任何其他合适的应用。
公开的实施例可以并入或集成到各种不同的系统中,例如汽车系统(例如,用于自主或半自主机器的人机界面)、使用机器人实现的系统、航空系统、医疗系统、划船系统、智能区域监控系统、用于执行深度学习操作的系统、用于执行模拟和数字孪生操作的系统、使用边缘设备实现的系统、包括一个或更多个虚拟机(VM)的系统、用于执行合成数据生成操作的系统、至少部分在数据中心中实现的系统、用于执行对话式AI操作的系统、用于执行光传输模拟的系统、用于为3D资产执行协作内容创建的系统、至少部分使用云计算资源实现的系统,和/或其他类型的系统。
在至少一个实施例中,计算机系统800可包括但不限于处理器802,该处理器802可包括但不限于一个或更多个执行单元808,以根据本文描述的技术执行机器学习模型训练和/或推理。在至少一个实施例中,计算机系统800是单处理器台式机或服务器系统,但是在另一个实施例中,计算机系统800可以是多处理器系统。在至少一个实施例中,处理器802可以包括但不限于复杂指令集计算机(“CISC”)微处理器、精简指令集计算(“RISC”)微处理器、超长指令字(“VLIW”)微处理器、实现指令集组合的处理器,或任何其他处理器设备,例如数字信号处理器。在至少一个实施例中,处理器802可以耦合到处理器总线810,该处理器总线810可以在处理器802与计算机系统800中的其他组件之间传输数据信号。
在至少一个实施例中,处理器802可以包括但不限于1级(“L1”)内部高速缓存存储器(“cache”)804。在至少一个实施例中,处理器802可以具有单个内部高速缓存或多级内部缓存。在至少一个实施例中,高速缓存存储器可以驻留在处理器802的外部。根据特定的实现和需求,其他实施例也可以包括内部和外部高速缓存的组合。在至少一个实施例中,寄存器文件806可以在各种寄存器中存储不同类型的数据,包括但不限于整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器。
在至少一个实施例中,包括但不限于执行整数和浮点运算的逻辑执行单元808,其也位于处理器802中。在至少一个实施例中,处理器802还可以包括微码(“ucode”)只读存储器(“ROM”),用于存储某些宏指令的微代码。在至少一个实施例中,执行单元808可以包括用于处理封装指令集809的逻辑。在至少一个实施例中,通过将封装指令集809包括在通用处理器的指令集中,以及要执行指令的相关电路,可以使用处理器802中的封装数据来执行许多多媒体应用程序使用的操作。在一个或更多个实施例中,可以通过使用处理器的数据总线的全宽度来在封装的数据上执行操作来加速和更有效地执行许多多媒体应用程序,这可能不需要在处理器的数据总线上传输较小的数据单元来一次执行一个数据元素的一个或更多个操作。
在至少一个实施例中,执行单元808也可以用在微控制器、嵌入式处理器、图形设备、DSP和其他类型的逻辑电路中。在至少一个实施例中,计算机系统800可以包括但不限于存储器820。在至少一个实施例中,存储器820可以实现为动态随机存取存储器(“DRAM”)设备、静态随机存取存储器(“SRAM”)设备、闪存设备或其他存储设备。在至少一个实施例中,存储器820可以存储由处理器802可以执行的由数据信号表示的指令819和/或数据821。
在至少一个实施例中,系统逻辑芯片可以耦合到处理器总线810和存储器820。在至少一个实施例中,系统逻辑芯片可以包括但不限于存储器控制器集线器(“MCH”)816,并且处理器802可以经由处理器总线810与MCH 816通信。在至少一个实施例中,MCH 816可以提供到存储器820的高带宽存储器路径818以用于指令和数据存储以及用于图形命令、数据和纹理的存储。在至少一个实施例中,MCH 816可以在处理器802、存储器820和计算机系统800中的其他组件之间启动数据信号,并且在处理器总线810、存储器820和系统I/O 822之间桥接数据信号。在至少一个实施例中,系统逻辑芯片可以提供用于耦合到图形控制器的图形端口。在至少一个实施例中,MCH 816可以通过高带宽存储器路径818耦合到存储器820,并且图形/视频卡812可以通过加速图形端口(Accelerated Graphics Port)(“AGP”)互连814耦合到MCH 816。
在至少一个实施例中,计算机系统800可以使用系统I/O 822,所述系统I/O 822是专有集线器接口总线来将MCH 816耦合到I/O控制器集线器(“ICH”)830。在至少一个实施例中,ICH 830可以通过本地I/O总线提供与某些I/O设备的直接连接。在至少一个实施例中,本地I/O总线可以包括但不限于用于将外围设备连接到存储器820、芯片组和处理器802的高速I/O总线。示例可以包括但不限于音频控制器828、固件集线器(“Flash BIOS”)828、无线收发器826、数据存储824、包括用户输入和键盘接口的传统I/O控制器823、串行扩展端口827(例如通用串行总线(USB)端口)和网络控制器834。数据存储824可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备或其他大容量存储设备。
在至少一个实施例中,图8示出了包括互连的硬件设备或“芯片”的系统,而在其他实施例中,图8可以示出示例性片上系统(SoC)。在至少一个实施例中,设备可以与专有互连、标准化互连(例如,PCIe)或其某种组合互连。在至少一个实施例中,计算机系统800的一个或更多个组件使用计算快速链路(CXL)互连来互连。
此类组件可用于建立安全连接。
图9是示出了根据至少一个实施例的用于利用处理器910的电子设备900的框图。在至少一个实施例中,电子设备900可以是,例如但不限于,笔记本电脑、塔式服务器、机架服务器、刀片服务器、膝上型计算机、台式机、平板电脑、移动设备、电话、嵌入式计算机或任何其他合适的电子设备。
在至少一个实施例中,系统900可以包括但不限于通信地耦合到任何合适数量或种类的组件、外围设备、模块或设备的处理器910。在至少一个实施例中,处理器910使用总线或接口耦合,诸如1℃总线、系统管理总线(“SMBus”)、低引脚数(LPC)总线、串行外围接口(“SPI”)、高清音频(“HDA”)总线、串行高级技术附件(“SATA”)总线、通用串行总线(“USB”)(1、2、3版)或通用异步接收器/发送器(“UART”)总线。在至少一个实施例中,图9示出了系统,该系统包括互连的硬件设备或“芯片”,而在其他实施例中,图9可以示出示例性片上系统(SoC)。在至少一个实施例中,图9中所示的设备可以与专有互连线、标准化互连(例如,PCIe)或其某种组合互连。在至少一个实施例中,图9的一个或更多个组件使用计算快速链路(CXL)互连线来互连。
在至少一个实施例中,图9可以包括显示器924、触摸屏925、触摸板930、近场通信单元(“NFC”)945、传感器集线器940、热传感器946、快速芯片组(“EC”)935、可信平台模块(“TPM”)938、BIOS/固件/闪存(“BIOS,FWFlash”)922、DSP 960、驱动器920(例如固态磁盘(“SSD”)或硬盘驱动器(“HDD”))、无线局域网单元(“WLAN”)950、蓝牙单元952、无线广域网单元(“WWAN”)956、全球定位系统(GPS)955、摄像机(“USB3.0摄像机”)954(例如USB3.0摄像机)和/或以例如LPDDR3标准实现的低功耗双倍数据速率(“LPDDR”)存储器单元(“LPDDR3”)915。这些组件可以各自以任何合适的方式实现。
在至少一个实施例中,其他组件可以通过上文所述的组件通信地耦合到处理器910。在至少一个实施例中,加速度计941、环境光传感器(“ALS”)942、罗盘943和陀螺仪944可以可通信地耦合到传感器集线器940。在至少一个实施例中,热传感器939、风扇937、键盘936和触摸板930可以通信地耦合到EC 935。在至少一个实施例中,扬声器963、耳机964和麦克风(“mic”)965可以通信地耦合到音频单元(“音频编解码器和D类放大器”)962,其又可以通信地耦合到DSP 960。在至少一个实施例中,音频单元962可以包括例如但不限于音频编码器/解码器(“编解码器”)和D类放大器。在至少一个实施例中,SIM卡(“SIM”)957可以通信地耦合到WWAN单元956。在至少一个实施例中,组件(诸如WLAN单元950和蓝牙单元952以及WWAN单元956)可以被实现为下一代形式因素(NGFF)。
此类组件可用于建立安全连接。
图10是根据至少一个实施例的处理系统的框图。在至少一个实施例中,系统1000包括一个或更多个处理器1002和一个或更多个图形处理器1008,并且可以是单处理器台式机系统、多处理器工作站系统或具有大量共同或单独管理的处理器1002或处理器核心1007的服务器系统或数据中心。在至少一个实施例中,系统1000是结合在片上系统(SoC)集成电路内的处理平台,以在移动、手持或嵌入式设备使用。
在至少一个实施例中,系统1000可以包括或结合在基于服务器的游戏平台中,云计算主机平台、虚拟化计算平台、包括游戏和媒体控制台的游戏控制台、移动游戏控制台、手持游戏控制台或在线游戏控制台。在至少一个实施例中,系统1000是移动电话、智能电话、平板计算设备或移动互联网设备。在至少一个实施例中,处理系统1000还可包括与可穿戴设备耦合或集成在可穿戴设备中,例如智能手表可穿戴设备、智能眼镜设备、增强现实设备、边缘设备、物联网(“IoT”)设备或虚拟现实设备。在至少一个实施例中,处理系统1000是电视或机顶盒设备,其具有一个或更多个处理器1002以及由一个或更多个图形处理器1008生成的图形界面。
在至少一个实施例中,一个或更多个处理器1002每个包括一个或更多个处理器核心1007,以处理指令,该指令在被执行时执行针对系统和用户软件的操作。在至少一个实施例中,一个或更多个处理器核心1007中的每一个被配置为处理特定指令集1009。在至少一个实施例中,指令集1009可以促进复杂指令集计算(CISC)、精简指令集计算(RISC),或通过超长指令字(VLIW)进行计算。在至少一个实施例中,处理器核心1007可以各自处理不同的指令集1009,该指令集可以包括有助于仿真其他指令集的指令。在至少一个实施例中,处理器核心1007还可以包括其他处理设备,例如数字信号处理器(DSP)。
在至少一个实施例中,处理器1002包括高速缓存存储器1004。在至少一个实施例中,处理器1002可以具有单个内部高速缓存或多个级别的内部高速缓存。在至少一个实施例中,高速缓存存储器在处理器1002的各个组件之间共享。在至少一个实施例中,处理器1002还使用外部高速缓存(例如,三级(L3)高速缓存或最后一级高速缓存(LLC))(未示出),可以使用已知的高速缓存一致性技术在处理器核心1007之间共享该外部高速缓存。在至少一个实施例中,处理器1002中另外包括寄存器文件1006,处理器可以包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器)。在至少一个实施例中,寄存器文件1006可以包括通用寄存器或其他寄存器。
在至少一个实施例中,一个或更多个处理器1002与一个或更多个接口总线1010耦合,以在处理器1002与系统1000中的其他组件之间传输通信信号,例如地址、数据或控制信号。在至少一个实施例中,接口总线1010在一个实施例中可以是处理器总线,例如直接媒体接口(DMI)总线的版本。在至少一个实施例中,接口总线1010不限于DMI总线,并且可以包括一个或更多个外围组件互连总线(例如,PCI,PCIExpress)、存储器总线或其他类型的接口总线。在至少一个实施例中,处理器1002包括集成存储器控制器1016和平台控制器集线器1030。在至少一个实施例中,存储器控制器1016促进存储器设备与处理系统1000的其他组件之间的通信,而平台控制器集线器(PCH)1030通过本地I/O总线提供到I/O设备的连接。
在至少一个实施例中,存储器设备1020可以是动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存设备、相变存储设备或具有适当的性能以用作处理器存储器。在至少一个实施例中,存储设备1020可以用作处理系统1000的系统存储器,以存储数据1022和指令1021,以在一个或更多个处理器1002执行应用程序或过程时使用。在至少一个实施例中,存储器控制器1016还与可选的外部图形处理器1012耦合,其可以与处理器1002中的一个或更多个图形处理器1008通信以执行图形和媒体操作。在至少一个实施例中,显示设备1011可以连接至处理器1002。在至少一个实施例中,显示设备1011可以包括内部显示设备中的一个或更多个,例如在移动电子设备或膝上型设备或通过显示器接口(例如显示端口(DisplayPort)等)连接的外部显示设备中。在至少一个实施例中,显示设备1011可以包括头戴式显示器(HMD),诸如用于虚拟现实(VR)应用或增强现实(AR)应用中的立体显示设备。
在至少一个实施例中,平台控制器集线器1030使外围设备能够通过高速I/O总线连接到存储设备1020和处理器1002。在至少一个实施例中,I/O外围设备包括但不限于音频控制器1046、网络控制器1034、固件接口1028、无线收发器1026、触摸传感器1025、数据存储设备1024(例如,硬盘驱动器、闪存等)。在至少一个实施例中,数据存储设备1024可以经由存储接口(例如,SATA)或经由外围总线来连接,诸如外围组件互连总线(例如,PCI、PCIe)。在至少一个实施例中,触摸传感器1025可以包括触摸屏传感器、压力传感器或指纹传感器。在至少一个实施例中,无线收发器1026可以是Wi-Fi收发器、蓝牙收发器或移动网络收发器,诸如3G、4G或长期演进(LTE)收发器。在至少一个实施例中,固件接口1028使能与系统固件的通信,并且可以是例如统一可扩展固件接口(UEFI)。在至少一个实施例中,网络控制器1034可以启用到有线网络的网络连接。在至少一个实施例中,高性能网络控制器(未示出)与接口总线1010耦合。在至少一个实施例中,音频控制器1046是多通道高清晰度音频控制器。在至少一个实施例中,处理系统1000包括可选的传统(legacy)I/O控制器1040,用于将传统(例如,个人系统2(PS/2))设备耦合到系统1000。在至少一个实施例中,平台控制器集线器1030还可以连接到一个或更多个通用串行总线(USB)控制器1042,该控制器连接输入设备,诸如键盘和鼠标1043组合、摄像机1044或其他USB输入设备。
在至少一个实施例中,存储器控制器1016和平台控制器集线器1030的实例可以集成到离散的外部图形处理器中,例如外部图形处理器1012。在至少一个实施例中,平台控制器集线器1030和/或存储器控制器1016可以在一个或更多个处理器1002的外部。例如,在至少一个实施例中,系统1000可以包括外部存储器控制器1016和平台控制器集线器1030,其可以配置成在与处理器1002通信的系统芯片组中的存储器控制器集线器和外围控制器集线器。
此类组件可用于建立安全连接。
图11是根据至少一个实施例的具有一个或更多个处理器核心1102A-1102N、集成存储器控制器1114和集成图形处理器1108的处理器1100的框图。在至少一个实施例中,处理器1100可以包括附加核心,多达并包括以虚线框表示的附加核心1102N。在至少一个实施例中,每个处理器核心1102A-1102N包括一个或更多个内部高速缓存单元1104A-1104N。在至少一个实施例中,每个处理器核心还可以访问一个或更多个共享高速缓存单元1106。
在至少一个实施例中,内部高速缓存单元1104A-1104N和共享高速缓存单元1106表示处理器1100内的高速缓存存储器层次结构。在至少一个实施例中,高速缓存存储器单元1104A-1104N可以包括每个处理器核心内的至少一级指令和数据高速缓存以及共享中级高速缓存中的一级或更多级缓存,例如2级(L2)、3级(L3)、4级(L4)或其他级别的高速缓存,其中将外部存储器之前的最高级别的高速缓存归类为LLC。在至少一个实施例中,高速缓存一致性逻辑维持各种高速缓存单元1106和1104A-1104N之间的一致性。
在至少一个实施例中,处理器1100还可包括一组一个或更多个总线控制器单元1116和系统代理核心1110。在至少一个实施例中,一个或更多个总线控制器单元1116管理一组外围总线,例如一个或更多个PCI或PCIe总线。在至少一个实施例中,系统代理核心1110为各种处理器组件提供管理功能。在至少一个实施例中,系统代理核心1110包括一个或更多个集成存储器控制器1114,以管理对各种外部存储器设备(未示出)的访问。
在至少一个实施例中,一个或更多个处理器核心1102A-1102N包括对多线程同时进行的支持。在至少一个实施例中,系统代理核心1110包括用于在多线程处理期间协调和操作核心1102A-1102N的组件。在至少一个实施例中,系统代理核心1110可以另外包括电源控制单元(PCU),该电源控制单元包括用于调节处理器核心1102A-1102N和图形处理器1108的一个或更多个电源状态的逻辑和组件。
在至少一个实施例中,处理器1100还包括用于执行图处理操作的图形处理器1108。在至少一个实施例中,图形处理器1108与共享高速缓存单元1106和包括一个或更多个集成存储器控制器1114的系统代理核心1110耦合。在至少一个实施例中,系统代理核心1110还包括用于驱动图形处理器输出到一个或更多个耦合的显示器的显示器控制器1111。在至少一个实施例中,显示器控制器1111也可以是经由至少一个互连与图形处理器1108耦合的独立模块,或者可以集成在图形处理器1108内。
在至少一个实施例中,基于环的互连单元1112用于耦合处理器1100的内部组件。在至少一个实施例中,可以使用替代性互连单元,例如点对点互连、交换互连或其他技术。在至少一个实施例中,图形处理器1108经由I/O链路1113与环形互连1112耦合。
在至少一个实施例中,I/O链路1113代表多种I/O互连中的至少一种,包括促进各种处理器组件与高性能嵌入式存储器模块1118(例如eDRAM模块)之间的通信的封装I/O互连。在至少一个实施例中,处理器核心1102A-1102N和图形处理器1108中的每一个使用嵌入式存储器模块1118作为共享的最后一级高速缓存。
在至少一个实施例中,处理器核心1102A-1102N是执行公共指令集架构的同质核心。在至少一个实施例中,处理器核心1102A-1102N在指令集架构(ISA)方面是异构的,其中一个或更多个处理器核心1102A-1102N执行公共指令集,而一个或更多个其他处理器核心1102A-1102N执行公共指令集的子集或不同指令集。在至少一个实施例中,就微架构而言,处理器核心1102A-1102N是异构的,其中具有相对较高功耗的一个或更多个核心与具有较低功耗的一个或更多个功率核心耦合。在至少一个实施例中,处理器1100可以在一个或更多个芯片上实现或被实现为SoC集成电路。
此类组件可用于建立安全连接。
其他变型在本公开的精神内。因此,尽管公开的技术易于进行各种修改和替代构造,但是某些示出的其实施例在附图中示出并且已经在上面进行了详细描述。然而,应理解,无意将公开内容限制为所公开的一种或更多种特定形式,而是相反,其意图是涵盖落入如所附权利要求书所定义的本公开内容的精神和范围内的所有修改、替代构造和等同物。
除非另有说明或显然与上下文矛盾,否则在描述所公开的实施例的上下文中(特别是在所附权利要求的上下文中),术语“一”和“一个”和“该”以及类似指代的使用应被解释为涵盖单数和复数,而不是作为术语的定义。除非另有说明,否则术语“包括”、“具有”、“包括”和“含有”应被解释为开放式术语(意味着“包括但不限于”)。术语“连接”(在未经修改时指的是物理连接)应解释为部分或全部包括在内、附接到或连接在一起,即使有某些介入。除非本文另外指出,否则本文中对数值范围的引用仅旨在用作分别指代落入该范围内的每个单独值的简写方法,并且每个单独值都被并入说明书中,就如同其在本文中被单独叙述一样。除非另外指出或与上下文矛盾,否则术语“集”(例如“项目集”)或“子集”的使用应解释为包括一个或更多个成员的非空集合。此外,除非另外指出或与上下文矛盾,否则术语相对应集的“子集”不一定表示对应集的适当子集,而是子集和对应集可以相等。
除非以其他方式明确指出或与上下文明显矛盾,否则诸如“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”)和/或数据处理单元(“DPU”)执行其他指令。在至少一个实施例中,计算机系统的不同组件具有单独的处理器,并且不同的处理器执行指令的不同子集。
因此,在至少一个实施例中,计算机系统被配置为实现单独地或共同地执行本文所述的过程的操作的一个或更多个服务,并且这样的计算机系统被配置有使能实施操作的适用的硬件和/或软件。此外,实现本公开的至少一个实施例的计算机系统是单个设备,并且在另一实施例中是分布式计算机系统,其包括以不同方式操作的多个设备,使得分布式计算机系统执行本文所述的操作,并且使得单个设备不执行所有操作。
本文提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地阐明本公开的实施例,并且不对公开的范围构成限制,除非另有要求。说明书中的任何语言都不应被解释为表示任何未要求保护的要素对于实践公开内容是必不可少的。
本文引用的所有参考文献,包括出版物、专利申请和专利,均通过引用并入本文,其程度就如同每个参考文献被单独且具体地指示为以引用的方式并入本文并且其全部内容在本文中阐述一样。
在说明书和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应当理解,这些术语可能不旨在作为彼此的同义词。相反,在特定示例中,“连接”或“耦合”可用于指示两个或更多个元件彼此直接或间接物理或电接触。“耦合”也可能意味着两个或更多个元素彼此不直接接触,但仍彼此协作或交互。
除非另有明确说明,否则可以理解,在整个说明书中,诸如“处理”、“计算”、“核算”、“确定”等之类的术语,是指计算机或计算系统或类似的电子计算设备的动作和/或过程,其将计算系统的寄存器和/或存储器中表示为物理量(例如电子)的数据处理和/或转换为类似表示为计算系统的存储器、寄存器或其他此类信息存储、传输或显示设备中的物理量的其他数据。
以类似的方式,术语“处理器”可以指处理来自寄存器和/或存储器的电子数据并将该电子数据转换成可以存储在寄存器和/或存储器中的其他电子数据的任何设备或存储器的一部分。作为非限制性示例,“处理器”可以是能够进行通用处理的任何处理器,例如CPU、GPU或DPU。作为非限制性示例,“处理器”可以是任何微控制器或专用处理单元,例如DSP、图像信号处理器(“ISP”)、算术逻辑单元(“ALU”)、视觉处理单元(“VPU”)、树遍历单元(“TTU”)、光线追踪核心、张量追踪核心、张量处理单元(“TPU”)、嵌入式控制单元(“ECU”)等。作为非限制性示例,“处理器”可以是硬件加速器,例如PVA(可编程视觉加速器)、DLA(深度学习加速器)等。作为非限制性示例,“处理器”还可以包括CPU、GPU等的一个或更多个虚拟实例,托管在执行一个或更多个虚拟机的底层硬件组件上。“计算平台”可以包括一个或更多个处理器。如本文所使用的,“软件”进程可以包括例如随时间执行工作的软件和/或硬件实体,诸如任务、线程和智能代理。同样,每个过程可以指代多个过程,以连续地或间歇地顺序地或并行地执行指令。术语“系统”和“方法”在本文中可以互换使用,只要系统可以体现一种或更多种方法,并且方法可以被认为是系统。
在本文件中,可以参考获得、获取、接收或将模拟或数字数据输入子系统、计算机系统或计算机实现的机器中。可以通过多种方式来获得、获取、接收或输入模拟和数字数据,例如通过接收作为函数调用或对应用程序编程接口的调用的参数的数据。在一些实现方式中,可以通过经由串行或并行接口传输数据来完成获得、获取、接收或输入模拟或数字数据的过程。在另一实现方式中,可以通过经由计算机网络将数据从提供实体传输到获取实体来完成获得、获取、接收或输入模拟或数字数据的过程。也可以参考提供、输出、传送、发送或呈现模拟或数字数据。在各种示例中,提供、输出、传送、发送或呈现模拟或数字数据的过程可以通过将数据作为函数调用的输入或输出参数、应用程序编程接口或进程间通信机制的参数进行传输来实现。
尽管上面的讨论阐述了所描述的技术的示例实现,但是其他架构可以用于实现所描述的功能,并且旨在落入本公开的范围内。此外,尽管出于讨论的目的在上面定义了具体的职责分配,但是根据情况,可以以不同的方式分配和划分各种功能和职责。
此外,尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求书所要求保护的主题不必限于所描述的特定特征或动作。而是,公开了特定的特征和动作作为实现权利要求的示例性形式。
Claims (20)
1.一种系统,包括:
一个或更多个处理单元,所述一个或更多个处理单元用于:
至少基于与视频序列中的两个或更多个帧相对应的光流数据,来确定一组被遮挡像素;
确定所述一组被遮挡像素中的至少第一像素的第一遮挡原因和所述一组被遮挡像素中的至少第二像素的第二遮挡原因;
至少基于所述第一遮挡原因,来选择与至少所述第一像素相对应的第一估计操作;
使用所述第一估计操作来估计至少所述第一像素的至少第一光流矢量;
至少基于所述第二遮挡原因,来选择与至少所述第二像素相对应的第二估计操作,所述第一估计操作与所述第二估计操作不同;以及
使用所述第二估计操作来估计至少所述第二像素的至少第二光流矢量。
2.根据权利要求1所述的系统,其中所述第一遮挡原因对应于使用至少所述第一像素描绘的对象移出边界。
3.根据权利要求2所述的系统,其中至少所述第一光流矢量至少通过以下方式被估计:
确定与至少所述第一像素相对应的后向方向流;以及
将至少所述第一像素的至少所述第一光流矢量估计为所述后向方向流的负值。
4.根据权利要求1所述的系统,其中所述第一遮挡原因是前景对象的移动。
5.根据权利要求4所述的系统,其中至少所述第二光流矢量至少通过以下方式被估计:
至少基于全局流的阈值相似度内的具有边界像素光流的边界像素来执行填充技术。
6.根据权利要求5所述的系统,其中所述一个或更多个处理单元进一步用于:比较潜在光流矢量两者之间各自的成本图,以及选择最低成本的潜在光流矢量。
7.根据权利要求1所述的系统,其中所述一个或更多个处理单元进一步用于:提供所述一组被遮挡像素中的一个或更多个像素的一个或更多个估计的光流矢量。
8.根据权利要求1所述的系统,其中所述系统被包含在以下中的至少一个中:
自主或半自主机器的人机接口系统;
用于执行会话AI操作的系统;
用于执行模拟操作的系统;
用于执行数字孪生操作的系统;
用于执行深度学习操作的系统;
使用边缘设备实现的系统;
使用机器人实现的系统;
包括一个或更多个虚拟机VM的系统;
至少部分地在数据中心中实现的系统;或
至少部分地使用云计算资源实现的系统。
9.一种方法,包括:
确定一组被遮挡像素,所述一组遮挡像素中的至少一个个体被遮挡像素具有在视频序列的第一帧中的相应的有效流矢量和在所述视频序列的第二帧中的相应的无效流矢量;
确定使用所述一组被遮挡像素中的至少第一像素所描述的对象已移出所述第一帧和所述第二帧之间的帧边界;
对于至少所述第一像素,估计与对应于至少所述第一像素的后向方向流矢量的逆相对应的第一估计运动矢量;
确定所述一组被遮挡像素中的至少第二像素是由于前景对象运动而被遮挡的;以及
对于至少所述第二像素,估计与一个或更多个边界像素的运动数据相对应的第二估计运动矢量。
10.根据权利要求9所述的方法,其中确定所述一组被遮挡像素中的至少所述第一像素已移出所述帧边界包括:确定对应于至少所述第一像素的运动数据指示朝向所述帧边界外侧的方向。
11.根据权利要求9所述的方法,其中所述第一估计运动矢量和所述第二估计运动矢量至少部分地用于生成所述第一帧和所述第二帧之间的中间帧。
12.根据权利要求9所述的方法,还包括:至少部分地使用所述第一估计运动矢量和所述第二估计运动矢量来跟踪至少一个对象。
13.根据权利要求9所述的方法,还包括:
对于至少所述第二像素确定所述一个或更多个边界像素,
其中,估计所述第二估计运动矢量包括:使用所述一个或更多个边界像素的所述运动数据来执行快速扫描线技术。
14.根据权利要求13所述的方法,还包括:
确定至少所述第二像素填充有第一运动矢量;
比较所述第一运动矢量和第二运动矢量之间的成本;
确定所述第二运动矢量具有较低的成本;以及
用所述第二运动矢量替换所述第一运动矢量,
其中,所述第二估计运动矢量是所述第二运动矢量。
15.根据权利要求14所述的方法,其中所述成本至少部分地基于行进距离、变形成本或强度差中的至少一个。
16.一种处理器,包括:
一个或更多个处理单元,所述一个或更多个处理单元用于至少确定对应于第一被遮挡像素的第一流矢量和对应于第二被遮挡像素的第二流矢量,所述第一流矢量和所述第二流矢量是使用不同的光流技术确定的。
17.根据权利要求16所述的处理器,其中所述第一流矢量是使用后向流矢量的逆生成的,并且所述第二流矢量是使用填充技术生成的。
18.根据权利要求17所述的处理器,其中所述后向流矢量是在第一帧与所述第一帧之前的第二帧之间确定的。
19.根据权利要求16所述的处理器,还包括:至少基于所述第一流矢量和所述第二流矢量来执行特征跟踪、渲染、视频处理或导航中的至少一个。
20.根据权利要求16所述的处理器,其中所述处理器被包含在以下中的至少一个中:
自主或半自主机器的人机接口系统;
用于执行会话AI操作的系统;
用于执行模拟操作的系统;
用于执行数字孪生操作的系统;
用于执行深度学习操作的系统;
使用边缘设备实现的系统;
使用机器人实现的系统;
包括一个或更多个虚拟机VM的系统;
至少部分地在数据中心中实现的系统;或至少部分地使用云计算资源实现的系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/957,423 | 2022-09-30 | ||
US17/957,423 US20240112356A1 (en) | 2022-09-30 | 2022-09-30 | Estimating flow vectors for occluded content in video sequences |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117812380A true CN117812380A (zh) | 2024-04-02 |
Family
ID=90246456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311264973.1A Pending CN117812380A (zh) | 2022-09-30 | 2023-09-27 | 估计视频序列中的被遮挡内容的流矢量 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240112356A1 (zh) |
CN (1) | CN117812380A (zh) |
DE (1) | DE102023125623A1 (zh) |
-
2022
- 2022-09-30 US US17/957,423 patent/US20240112356A1/en active Pending
-
2023
- 2023-09-21 DE DE102023125623.8A patent/DE102023125623A1/de active Pending
- 2023-09-27 CN CN202311264973.1A patent/CN117812380A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102023125623A1 (de) | 2024-04-04 |
US20240112356A1 (en) | 2024-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11074717B2 (en) | Detecting and estimating the pose of an object using a neural network model | |
US11631239B2 (en) | Iterative spatio-temporal action detection in video | |
US20190114546A1 (en) | Refining labeling of time-associated data | |
US10860859B2 (en) | Budget-aware method for detecting activity in video | |
CN114902190A (zh) | 用于现场故障检测的物理操作参数的硬件控制更新 | |
US11783455B2 (en) | History clamping for denoising dynamic ray-traced scenes using temporal accumulation | |
US11498007B2 (en) | Measuring and detecting idle processing periods and identifying root causes thereof in cloud-based, streaming applications | |
CN114663572A (zh) | 实时射线追踪应用中使用空间散列的光重要性高速缓存 | |
US20230237342A1 (en) | Adaptive lookahead for planning and learning | |
CN114503078A (zh) | 并发哈希映射更新 | |
CN117122929A (zh) | 识别用于后处理的应用程序缓冲器及在辅助应用程序中的重用 | |
US20240177394A1 (en) | Motion vector optimization for multiple refractive and reflective interfaces | |
CN116206042A (zh) | 空间哈希一致采样 | |
CN114627234A (zh) | 用于渲染逼真光照的自适应时间图像滤波 | |
US20220398283A1 (en) | Method for fast and better tree search for reinforcement learning | |
CN116108952A (zh) | 用于组合优化的并行处理 | |
CN117812380A (zh) | 估计视频序列中的被遮挡内容的流矢量 | |
US11966765B2 (en) | Memory bandwidth throttling for virtual machines | |
CN115729347A (zh) | 用于人机接口应用中内容识别的多模态传感器融合 | |
CN115731607A (zh) | 对铰接式对象执行遮挡感知全局3d姿势和形状估计 | |
US20240127572A1 (en) | Real-time occlusion detection between frames for video streaming systems and applications | |
US20200177798A1 (en) | Machine Learning of Environmental Conditions to Control Positioning of Visual Sensors | |
US20230298257A1 (en) | Visibility-based environment importance sampling for light transport simulation systems and applications | |
US11783532B1 (en) | View synthesis using attribute correspondences and geometric relationship constraints | |
US20230298274A1 (en) | Hash cell boundary shifting for light transport simulation systems and applications |
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 |