CN118648019A - 具有全局和局部运动补偿的高级时域低光滤波 - Google Patents

具有全局和局部运动补偿的高级时域低光滤波 Download PDF

Info

Publication number
CN118648019A
CN118648019A CN202280090331.1A CN202280090331A CN118648019A CN 118648019 A CN118648019 A CN 118648019A CN 202280090331 A CN202280090331 A CN 202280090331A CN 118648019 A CN118648019 A CN 118648019A
Authority
CN
China
Prior art keywords
frame
pixels
current frame
motion
camera
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
CN202280090331.1A
Other languages
English (en)
Inventor
R·K·普里塞
M·布莱耶
C·D·埃德蒙兹
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN118648019A publication Critical patent/CN118648019A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/30Noise filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/62Extraction of image or video features relating to a temporal dimension, e.g. time-based feature extraction; Pattern tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6812Motion detection based on additional sensors, e.g. acceleration sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/81Camera processing pipelines; Components thereof for suppressing or minimising disturbance in the image signal generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20216Image averaging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30221Sports video; Sports image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)

Abstract

公开了用于生成时域滤波图像的技术,该时域滤波图像被设计为补偿相机的全局运动并且补偿对象的局部运动。获取历史帧(505)和当前帧(520)。对历史帧(505)执行全局运动补偿操作(535),以重新投影历史帧(505)的姿态(510)以匹配当前帧(520)的姿态(525)。将经运动补偿的历史帧与当前帧(520)进行比较,以标识表示移动对象(530、545)的像素。针对这些像素中的每个像素,计算光流矢量。然后该光流矢量被应用于这些像素,以使这些像素移位至新位置。调整后的历史帧(560)中的这些新位置对应于在当前帧(520)中标识了的位置。之后,利用历史帧对当前帧进行时域滤波。

Description

具有全局和局部运动补偿的高级时域低光滤波
背景技术
包括虚拟现实(VR)和增强现实(AR)系统的混合现实(MR)系统因为其对针对其用户创建真正独一无二的体验的能力接收了极大关注。作为参考,传统的VR系统通过将其用户的视野仅限制在虚拟环境中,来创建完全沉浸式体验。这通常通过完全阻挡对真实世界的任何视野的头戴式设备(HMD)的使用来实现。因此,用户完全沉浸在虚拟环境内。相比之下,传统的AR系统通过视觉呈现放置在现实世界中或者与现实世界交互的虚拟对象来创建增强现实体验。
如本文所使用的,VR和AR系统可互换地描述和引用。除非另有说明,否则本文的描述同样适用于所有类型的MR系统,其(如上文详细描述的)包括AR系统、VR现实系统和/或能够显示虚拟内容的任何其他类似系统。
MR系统也可以采用不同类型的相机以便向用户显示内容,诸如以直通图像的形式。直通图像或视图可以帮助用户在过渡至MR环境和/或在MR环境内导航时,避免迷失方向和/或安全隐患。MR系统可以以各种方式呈现由相机捕获的视图。然而,使用由面向世界的相机捕获的图像来提供真实世界环境视图的过程产生了许多挑战。
为了提高显示给用户的图像的质量,一些MR系统执行所谓的“时域滤波”。“时域滤波”指代系统由其组合在多个时间点捕获的数据以生成特定输出的过程。换言之,系统本质上将多个图像彼此堆叠并且以某种方式进行组合,以产生具有改进质量的聚合图像。
例如,在MR系统的情境下,系统组合连续捕获的图像的图像数据以生成改进输出。作为示例,考虑低光情境。由于低光的存在,每个单独的图像都可能仅能够提供有限量的图像数据。然而,通过组合来自多个连续捕获图像的数据,系统(例如通过经由时域滤波组合来自所有这些图像的数据)可以产生合适的输出图像。在这个意义上,时域滤波的过程涉及在一定时间段内捕获多个图像帧,并且然后组合来自这些帧的图像数据以产生输出帧,导致输出帧实际上是多个输入帧的聚合的情境。
然而,在执行时域滤波时发生了各种挑战。例如,如果在系统捕获多个连续图像时,场景或环境中的对象正在移动,则可能导致所谓的“重影效应”。更特别地,当对象或图像伪影具有跟随对象的像素踪迹(例如运动模糊形式)时,发生重影。发生这种像素踪迹的原因在于:在生成多个连续图像时,对象在不同位置处,并且这些不同位置随后反映在最终合成图像中。
当相机在生成图像的同时自身经历移动时,发生另一挑战。相机的移动也可以使时域滤波过程偏斜。当相机在非MR系统情境中移动(例如可能在车辆中)时可能会是这种情况。在这一方面,有发生这些挑战的其他技术领域。又一挑战涉及最终输出图像的质量或分辨率。鉴于这些以及其他挑战,有对改进时域滤波过程的实质需求。
本文要求保护的主题内容不限于解决任何缺点或仅在诸如上述环境中操作的实施例。相反,提供本背景技术仅仅是为了说明本文描述的一些实施例可以在其中实践的一个示例性技术领域。
发明内容
本文公开的实施例涉及用于生成时域滤波图像的系统、设备和方法,该时域滤波图像被设计为补偿相机的全局运动并且补偿在场景内局部移动的一个或多个对象的局部运动。
一些实施例获取场景的历史帧和当前帧,其中当前帧由相机生成。响应于确定相机在生成当前帧时的第一姿态(例如可能使用惯性测量单元(IMU)数据),实施例对历史帧执行全局运动补偿操作,以重新投影历史帧的第二姿态以匹配第一姿态。在执行全局运动补偿操作之后,将经运动补偿的历史帧与当前帧进行比较,以标识位于经运动补偿的历史帧内的第一位置集合处、但位于当前帧内的第二位置集合处的像素集合。该像素集合对应于在场景内局部移动的一个或多个对象。而且,第二位置集合不同于第一位置集合。针对像素集合中的每个像素,实施例计算对应的光流矢量。结果,计算了多个光流矢量。这些光流矢量映射对象的移动,其中移动由在经运动补偿的历史帧中的第一位置集合并且在当前帧中的第二位置集合处的像素集合表示。实施例通过将光流矢量应用于被包括在经运动补偿的历史帧中的像素集合,以使像素集合从在经运动补偿的历史帧中的第一位置集合处移位至新位置处,来从经运动补偿的历史帧生成调整后的历史帧。调整后的历史帧中的这些新位置对应于当前帧中针对该像素集合标识的第二位置集合。在将像素集合移位至调整后的历史帧中的新位置之后,实施例利用调整后的历史帧对当前帧进行时域滤波,以生成时域滤波图像。
提供本发明内容来以简化形式介绍精选的一些概念,这些概念将在下文的具体实施方式中进一步描述。本发明内容并不旨在于标识所要求保护的主题内容的关键特征或必要特征,也不旨在于被用于帮助确定所要求保护的主题内容的范围。
附加特征和优点将在随后的描述中阐述,并且部分地将从描述中显而易见,或者可以通过实践本文的教导而学习。本发明的特征和优点可以通过在所附权利要求中特别指出的仪器和组合的方式实现和获得。本发明的特征将从以下描述和所附权利要求变得更加明显,或者可以通过如下文所阐述地实践本发明来学习。
附图说明
为了描述可以获得上述和其他优点和特征的方式,将通过参考在附图中示出的具体实施例来呈现对以上简要描述的主题内容的更具体描述。应理解,这些附图仅描绘了典型实施例,并且因此不将被认为是对范围的限制,将通过使用附图利用附加特征和细节来描述和解释实施例,在附图中:
图1示出了HMD的示例。
图2示出了HMD可以如何生成图像以及在一些情况下该图像可能如何是有噪声的。
图3示出了示出如何执行时域滤波的示例时间线。
图4A、图4B、图4C、图4D和图4E示出了用于执行全局和局部运动补偿操作的各种操作。
图5A和图5B示出了所公开操作的高级概览。
图6示出了用于生成时域滤波图像的示例方法的流程图,该时域滤波图像被设计为补偿相机的全局运动并且补偿在场景内局部移动的一个或多个对象的局部运动。
图7示出了被配置为执行所公开操作中的任何操作的示例计算机系统。
具体实施方式
本文公开的实施例涉及用于生成时域滤波图像的系统、设备和方法,该时域滤波图像被设计为补偿相机的全局运动并且补偿在场景内局部移动的一个或多个对象的局部运动。
一些实施例获取场景的历史帧和当前帧。响应于确定相机在生成当前帧时的第一姿态,实施例对历史帧执行全局运动补偿操作,以重新投影历史帧的第二姿态以匹配第一姿态。之后,将经运动补偿的历史帧与当前帧进行比较,以标识位于经运动补偿的历史帧内的第一位置集合处、但位于当前帧内的第二位置集合处的像素集合(对应于场景中的具体内容)。换言之,内容在场景中移动,并且表示该内容的像素现在在当前帧中的新位置处。针对该集合中的每个像素,实施例计算对应的光流矢量。这些光流矢量映射对象的移动。实施例将光流矢量应用于像素集合,以使这些像素从第一位置集合处移位至调整后的历史帧中的新位置处。调整后的历史帧中的这些新位置对应于当前帧中标识的第二位置集合。之后,实施例利用调整后的历史帧对当前帧进行时域滤波,以生成时域滤波图像。
技术益处、改进和实际应用的示例
以下部分概述了由所公开的实施例提供的一些示例改进和实际应用。然而,将理解的是,这些仅仅是示例,并且实施例并不仅限于这些改进。
所公开的实施例给本技术领域带来了许多益处、优点和实际应用。换言之,实施例提供了对时域滤波和生成图像技术领域的改进。例如,所公开的实施例提供了针对系统以在诸如低光条件的次优条件中操作,但仍然能够产生高分辨率输出图像的能力。为了说明,所公开的原理可以在低亮度环境中实践,其中相机传感器可能检测到少于1光子每图像帧(也称“图像”)。尽管存在这些次优条件,但这些实施例通过在时间上将多个帧组合在一起,有利地实现了改进的输出信号。
实施例也有利地减少或完全消除了重影效应,否则当场景中的对象移动时,其可能以其他方式在传统系统中发生。即使在所生成的图像中有高噪声水平的情况下,或者当针对影像的信噪有较低信号时,也可以实现这些原理。换言之,这些原理可以在宽泛的条件下实践。
如果相机正在移动,则可以执行运动补偿操作以补偿该运动。如本文所使用的,短语“运动补偿”(MC)指代基于运动数据(例如IMU数据)由其修改/重新投影一个图像中的姿态的过程。修改被设计为使原始姿态匹配后续或预测姿态,可选地,该后续或预测姿态基于IMU数据预测或确定。可选地,一些实施例可以使用特征匹配来确定姿态。
实施例也可以考虑随着场景/环境而局部移动的对象。传统上,这种移动将在所得到的时域滤波图像中创建重影效应。另一方面,所公开的实施例可以补偿和考虑该移动,从而产生更高质量的图像。
有利地,所公开的原理可以在其他非MR系统情境中实践,诸如可能在智能车辆的背景下实践。因此,现在将在本公开的其余部分中描述这些和许多其他益处。
示例MR系统和HMD
现在将注意力指向于图1,其示出了头戴式设备(HMD)100的示例。HMD 100可以是任何类型的MR系统100A,包括VR系统100B或AR系统100C。应当注意的是,虽然本公开大部分集中于HMD的使用,但实施例不限于仅使用HMD来实践。换言之,可以使用任何类型的摄像系统,甚至是从HMD完全移除或分离的摄像系统。因此,所公开的原理应当被广义地解释为涵盖任何类型的相机使用情境。一些实施例本身甚至可以避免主动使用相机,并且可以直接使用由相机生成的数据。例如,一些实施例可以至少部分地在云计算环境中实践。
HMD 100被显示为包括(多个)扫描传感器105(即一种扫描或摄像系统),并且HMD100可以使用(多个)扫描传感器105来扫描环境、映射环境、捕获环境数据和/或生成任何类型的环境图像(例如通过生成环境的3D表示或通过生成“直通”可视化)。(多个)扫描传感器105可以包括任何数目或任何类型的扫描设备而没有限制。
根据所公开的实施例,HMD 100可以被用于生成用户环境的直通可视化。如本文所使用的,“直通”可视化指代从用户的观点反映环境视角的可视化。为了生成这种直通可视化,HMD 100可以使用其(多个)扫描传感器105来扫描、映射或以其他方式记录其周围环境,包括环境中的任何对象,并且以将该数据传递给用户来进行查看。如将简短描述的,在将图像显示给用户之前,可以将各种变换应用于图像,以确保所显示的视角与用户的预期视角相匹配。
为了生成直通图像,(多个)扫描传感器105通常依赖于其相机(例如头部跟踪相机、手跟踪相机、深度相机或任何其他类型的相机)来获得环境的一个或多个原始图像(也称为“纹理图像”)。除了生成直通图像之外,这些原始图像也可以被用于确定深度数据,该深度数据详细描述从传感器到由原始图像捕获的任何对象的距离(例如z轴范围或测量)。在获得这些原始图像时,则可以从嵌入或包括在原始图像内的深度数据计算深度图(例如基于像素视差),并且如果需要,可以使用针对任何重新投影的深度图生成直通图像(例如针对每个瞳孔的一个)。可以作为对多个连续生成的图像执行时域滤波的结果而生成直通图像。
从直通可视化,用户将能够感知其当前环境中的内容,而不必移除或重新定位HMD100。此外,如稍后将更详细描述的,所公开的直通可视化也可以增强用户对查看其环境内的对象的能力(例如通过显示可能未被人眼可检测的附加环境条件)。如本文所使用的,所谓的“覆盖图像”可以是一种直通图像。
应当注意的是,虽然本公开大部分关注生成“一个”直通图像,但实施例实际上针对用户的眼镜中的每只眼睛生成单独的直通图像。换言之,通常与彼此同时生成两个直通图像。因此,虽然频繁地提到生成似乎是单个直通图像的图像,但实施例实际上能够同时生成多个直通图像。
在一些实施例中,(多个)扫描传感器105包括(多个)可见光相机110、(多个)低光相机115、(多个)热成像相机120、(多个)潜在的紫外(UV)相机125、潜在的点照明器130,以及甚至红外相机135。省略号140表示任何其他类型的相机或摄像系统(例如深度相机、飞行时间相机、虚拟相机、深度激光器等)可以如何被包括在(多个)扫描传感器105中。
作为示例,被构造成检测中红外波长的相机可以被包括在(多个)扫描传感器105内。作为另一示例,从实际相机重新投影的任何数目的虚拟相机可以被包括在(多个)扫描传感器105中,并且可以被用于生成立体图像对。以这种方式,(多个)扫描传感器105可以被用于生成立体图像对。在一些情况下,立体图像对可以作为执行以下操作中的任何一个或多个操作的结果而获得或生成:经由两个相机和一个点照明器(例如点照明器130)的使用的主动立体图像生成;经由两个相机的使用的被动立体图像生成;经由一个实际相机、一个虚拟相机和一个点照明器(例如点照明器130)的使用,利用结构化光的图像生成;或者使用飞行时间(TOF)传感器的图像生成,在其中基线在深度激光器和对应相机之间呈现,并且在其中对应相机的视场(FOV)是相对于深度激光器的照明场的偏移。
(多个)可见光相机110通常是立体相机,这意味着两个或多个可见光相机的视场至少部分地彼此重叠。利用该重叠区域,由(多个)可见光相机110生成的图像可以被用于标识共同表示由两个图像捕获的对象的某些像素之间的视差。基于这些像素视差,实施例能够确定针对位于重叠区域内的对象的深度(即“立体深度匹配”)。因此,(多个)可见光相机110不仅可以被用于生成直通可视化,而且还可以被用于确定对象深度。在一些实施例中,(多个)可见光相机110可以捕获可见光和IR光两者。
在一些实施例中,(多个)可见光相机110和(多个)低光相机115(也称“低光夜视相机”)在近似相同的重叠波长范围中操作。在一些情况下,该重叠波长范围在约400纳米和约1,100纳米之间。此外,在一些实施例中,这两种类型的相机都是硅检测器。
这两种类型的相机之间的一个区别特征涉及其在其中主动操作的照度条件或(多个)照度范围。在一些情况下,(多个)可见光相机110是低功率相机,并且在以下环境中操作,在该环境中照度在约10勒克斯和约100,000勒克斯之间,或者更准确地,照度范围从约10勒克斯开始并且增加超过10勒克斯。相反,(多个)低光相机115消耗更多功率,并且在以下环境中操作,在该环境中照度范围在约110微勒克斯和约10勒克斯之间。
另一方面,(多个)热成像相机120被构造为检测远IR(即热IR)范围中的电磁辐射或IR光,不过一些实施例也使(多个)热成像相机120能够检测中IR范围中的辐射。为了清楚起见,(多个)热成像相机120可以是长波红外成像相机,其被构造为通过测量长波红外波长来检测电磁辐射。通常,(多个)热成像相机120检测具有在约8微米和14微米之间的波长的IR辐射。这些波长也被包括在(多个)光谱中。因为(多个)热成像相机120检测远IR辐射,(多个)热成像相机120可以在任何照度条件下操作而没有限制。
HMD 100也可以配备有惯性测量单元(IMU),如由IMU 145所示的。IMU 145使用加速度计、陀螺仪和磁力计的组合来测量力、角速率和方向。IMU 145产生IMU数据,这些数据可以由所公开的实施例使用。
因此,如本文所使用的,对“可见光相机”(包括“头部跟踪相机”)的引用指代主要被用于计算机视觉以执行头部跟踪的相机。这些相机可以检测可见光,或者甚至可以检测可见光和IR光的组合(例如IR光的范围,包括具有约850nm的波长的IR光)。在一些情况下,这些相机是具有在尺寸上约是3μm的像素的全局快门设备。另一方面,低光相机是对可见光和近IR敏感的相机。这些相机更大,并且可以具有在尺寸上为约8μm或更大的像素。这些相机也对硅传感器对其敏感的波长敏感,这些波长在约350nm至1100nm之间。热/长波长IR设备(即热成像相机)具有为约10μm或更大的像素尺寸,并且检测从环境辐射的热。这些相机对8μm至14μm范围中的波长敏感。一些实施例也包括被配置为检测至少中IR光的中IR相机。这些相机通常包括非硅材料(例如InP或InGaAs),其检测800nm至2μm波长范围中的光。
所公开的实施例可以被构造为利用多种不同的相机模态。不同的相机模态包括但不限于可见光或单色相机、低光相机、热成像相机和UV相机。
应当注意的是,可以在HMD 100上针对不同的相机类型(又称模态)中的每个相机类型提供任何数目的相机。换言之,(多个)可见光相机110可以包括1个、2个、3个、4个、5个、6个、7个、8个、9个、10个或多于10个相机。然而,相机的数目通常是至少2个,因此HMD 100可以执行如前所述的直通图像生成和/或立体深度匹配。类似地,(多个)低光相机115、(多个)热成像相机120和(多个)UV相机125可以分别包括1个、2个、3个、4个、5个、6个、7个、8个、9个、10个或多于10个对应相机。
在一些情境中,图像中的一个图像中可能存在噪声。例如,在极度低光条件(例如1.0毫勒克斯或“星光”环境)下,环境中可能没有足够的针对低光相机的可见光子来生成高质量图像。实际上,由低光相机生成的结果图像可能被噪声严重破坏。当发生这种情况时,实施例能够有利地执行时域滤波。关于时域滤波的更多细节将简短地提供。
然而,通过引用的方式,注意针对不同情境的一般照度度量是有益的。例如,晴朗天气通常具有约10,000至50,000勒克斯的环境光强度。阴天通常具有约1,000至10,000勒克斯的环境光强度。室内办公室通常具有约100至300勒克斯的环境光强度。对应于黄昏的时刻通常具有约10勒克斯的环境光强度。深夜具有约1勒克斯的环境光强度。如本文所使用的,所谓的“低光环境”至少对应于在其中环境光强度等于或低于约40勒克斯的任何环境。HMD具有一个或多个传感器,该传感器被配置为确定周围环境的勒克斯强度。这些传感器可以并入本文所描述的相机和/或照明器中或独立于本文所描述的相机和/或照明器。
当在极度低光环境(例如约1.0毫勒克斯或“星光”环境)中使用时,低光相机传感器尝试通过使相机的增益(例如数字增益、模拟增益或数字增益与模拟增益的组合)斜升来补偿低光条件。由于相机传感器的增益斜升的结果,结果图像可能是非常嘈杂的。在以提高图像的质量的努力中,实施例执行时域滤波。
时域滤波
图2显示了HMD 200,其表示图1的HMD 100。HMD 200已经在低光环境210中生成了图像205。如所显示的,图像205包括各种不同的图像数据215。然而,因为图像205在低光情境中生成,所以有大量噪声220(例如整个图像205中的白点)。如果由其本身使用,图像205将提供总体质量较差的图像以用于呈现给用户。在了解了该情况之后,实施例被配置为执行时域滤波。图3提供了一些有用的细节。
图3显示了时间线300。在T0时刻处,HMD 305(其标识迄今为止讨论的HMD)生成包括图像数据315的图像310。与图2中呈现的情境类似,图像310在低光环境中生成。图3也注意到在T0时刻之后,HMD(或者更确切,相机)如何经历一些量的运动320或移动。相机的这种移动可以被称为全局移动。
在T1时刻处,HMD 305随后生成包括图像数据330的第二图像325。根据所公开的原理,实施例能够使用图像310和图像325来执行时域滤波335操作。实施例也可以使用由IMU生成的运动数据340,以补偿在T0和T1时刻之间发生的运动320(即全局运动)。换言之,实施例可以获取IMU数据345,该数据详细描述了生成图像310和图像325的相机的角位置350和加速度355。角位置350使用三个自由度(DOF)基础详细描述了相机的方向,而加速度355详细说明了相机正在平移还是移动。
运动补偿操作(即重新投影操作)一般涉及修改一个姿态以匹配不同姿态。不同姿态可以是基于运动数据340的预测姿态,或者可以是匹配新获取的(即“当前”)帧的姿态。作为示例,图像310反映或体现了HMD 305在T0时刻处的第一姿态。然后,HMD 305移位至新的位置或姿态,如由运动320所示。IMU捕获了HMD 305在T0和T1时刻之间的移动。HMD 305可以使用IMU数据来预测HMD 305在T1时刻(或者可能甚至稍后时刻)处的新姿态。基于该预测,HMD 305随后可以执行运动补偿操作,以变换在图像310中体现的姿态,来反映HMD 305的预测姿态(如其将在T1时刻处的姿态)。在T1时刻处,HMD 305生成图像325。如上所指示的,新姿态也可以是从当前帧获取的一种姿态,使得新姿态不是预测姿态。
实施例能够将运动补偿姿态(其被设计为试图反映HMD 305在T1时刻处的姿态)与HMD 305在T1时刻处的实际姿态进行比较。这两个姿态之间的差异的水平或量反映了运动补偿的精度。如果没有差异,则运动补偿操作100%成功。另一方面,差异量越大,执行的运动补偿越差。测量或比较差异主要通过将各个像素的强度水平相互比较来执行。换言之,标识运动补偿图像中的第一像素,并且标识图像325中的对应像素。将针对这两个像素的强度水平相互比较。这两个值之间的结果差异反映了运动补偿操作的精度。
由于时域滤波过程,执行运动补偿是期望的。回想一下,时域滤波过程本质上将多个图像彼此堆叠,并且组合来自这些图像的数据以生成增强图像。为了使堆叠正确地工作,那些不同图像中的每个图像中的姿态应当彼此对准。因此,执行运动补偿操作,以便对准针对各种不同图像的各种不同姿态。
作为执行时域滤波335操作的结果,实施例能够生成时域滤波图像360,如与先前图像的图像数据315和图像数据330相比,时域滤波图像360具有改进或增强的图像数据365。此外,如即将描述的,上述实施例不仅有利地补偿了相机的运动,还有利地减少了对针对在场景中移动的对象的重影效应370的影响。值得注意的是,在一些实施例中,在相机生成图像时,相机的曝光设置保持不变。
当场景中的对象移动时,在生成时域滤波图像期间,当图像彼此堆叠时,这些对象可以创建前面提到的重影效应。所公开实施例被配置为考虑和补偿在场景内局部移动的对象的局部移动。因此,如本文所使用的,“全局”移动指代相机的移动,并且导致结果图像的姿态的改变,而“局部”移动指代在场景中呈现的对象的移动。IMU数据可以被用于补偿全局移动(即通过执行全局MC操作),但IMU数据不能用被于补偿局部移动。相反,执行不同的操作(例如局部MC操作)以考虑对象的局部移动。
全局和局部运动补偿过程
现在将注意力指向于图4A、图4B、图4C、图4D、图4E、图5A和图5B。这些图示出了所公开实施例在其中执行全局和局部运动补偿操作的各种情境。
图4A显示了历史帧400的示例。历史帧400可以是先前生成的图像,或者备选地,历史帧400可以是通过以先前描述的方式将多个先前图像堆叠在一起而生成的现有时域滤波图像帧。历史帧400描绘场景400A或环境(例如女人在引体向上杆上做引体向上的场景)。
历史帧400描绘了对象405(例如做引体向上的人)。还注意到,历史帧400具有与其相关联的特定姿态410。具体地,引体向上杆当前位于图像的左下角。姿态410指代生成图像帧的相机的定位,或者备选地,指代在图像内体现的视角(诸如在图像不是由相机生成的图像,而是由时域滤波过程生成的图像的情况下)。基于历史帧400内所体现的视角,相机被定位成稍微远离引体向上杆,相机的光轴对准引体向上杆最右侧的竖直杆处。
相机可以是前面参照图1所述的相机中的任何相机。在一些情况下,相机是单光子雪崩二极管(SPAD)相机、单光子探测器、过冷相机、科学相机模块或图像增强器II加互补金属氧化物半导体(CMOS)相机中的一种。在一些实现中,相机是低噪声相机。
历史帧400在特定时间点处生成,诸如T0时刻。在稍后的时间点(例如T1)处,由相机生成当前帧415。在T0和T1时刻之间的干预时间期间,发生了全局和局部移动。
为了说明起见,注意当前帧415也包括对对象420的描绘,并且当前帧也具有对应的姿态425。值得注意的是,姿态425不同于姿态410。发生这种差异的原因是相机在T0时刻和T1时刻之间发生了位置移位。换言之,发生了全局移动(即相机本身发生了位置移位)。
所公开的摄像系统能够以每秒30帧(FPS)和120FPS之间的任何速率操作。通常,相机以约90FPS的速率操作(例如当前帧可以以约90FPS的速率生成)。由于这种快速率,情况通常是历史帧400和当前帧415之间的移动量通常相当小。换言之,情况通常是全局移动和/或局部移动的量通常相当小,例如可能是移动一定数目的像素(例如从移动1个像素到有时移动超过可能100个像素的量之间的任何值)。为了提供更具说明性的示例,夸大了由姿态410和姿态425所展示的移动量。
例如,姿态425现在显示了引体向上杆定位至当前帧415的右侧。换言之,在其移动时,相机向左移位。而且,看起来似乎相机的光轴现在对准了引体向上杆最左侧的竖直杆处。
根据先前讨论的原理,实施例能够使用IMU来生成IMU数据430。该IMU数据430可以被用于执行全局运动补偿操作,以考虑相机的全局移动。
然而,在图4A中,也可以观察对象405如何在场景内局部移动。尽管历史帧400中的女人被显示为接近其引体向上的底部,但在当前帧415中的女人被显示为接近其引体向上的顶部,如由对象420所示。同样,对象的移动量(即局部移动)被夸大以提供更好的说明。
虽然全局运动补偿操作可以有利地考虑和补偿相机姿态的变化(例如姿态410与姿态425之间的差异),但IMU数据430不能被用于考虑移动对象的局部变化。因此,需要技术来补偿由于对象在生成历史帧400的时间与生成当前帧415的时间之间在场景内移动而发生的变化。图4B更全面地阐明了全局运动补偿操作,并且图4C和4D阐明了与移动对象(即局部移动)的补偿相关的方面。
如所讨论的,实施例被配置为使用IMU数据430,来对历史帧400执行全局运动补偿(MC)。作为执行全局MC操作的结果,生成了经运动补偿的帧435,如在图4B中所示。特别地,实施例使用IMU数据430来重新投影440历史帧400中的像素,使得姿态410反映新姿态,在这种情况下,新姿态是当前帧415的姿态425。换言之,实施例将历史帧重新投影为具有与当前帧匹配的新姿态。
注意,在图4B中,经运动补偿的帧435的姿态显示了引体向上杆现在在与当前帧415中的引体向上杆的位置相匹配的位置处。换言之,看起来似乎经运动补偿的帧435由与生成当前帧415生成的相机在相同位置处的相机生成。
虽然姿态现在彼此对准,但是可以观察到对象405所处的位置如何仍然与对象420不同。发生这种差异的原因是对象在T0时刻和T1时刻之间移动。因此,为了完全对准图像,应当执行附加操作。
如在图4C中所示,实施例被配置为执行比较445过程,其分割出被标识为对应于移动对象的像素。例如,实施例可以计算来自图4B的当前帧415和经运动补偿的帧435之间的绝对差。这两个图像之间的不同像素对应于在场景中移动的内容。在一些情况下,比较帧以标识像素的过程可以使用块匹配算法执行。
图4C相似了分割或比较过程的结果。具体地,响应于计算两个图像之间的绝对差,或者可能响应于执行块匹配算法,实施例标识经运动补偿的帧435中的第一像素集合450,并且标识当前帧415中的第二像素集合455。可选地,可以过滤掉其余的像素。
实施例标识针对像素集合450的位置460或坐标,以及针对像素集合455的位置465或坐标。实施例也计算针对被包括在该集合中的每个像素的光流矢量,如由光流矢量470所示。这些矢量的组合表示(多个)对象移动的移动475的程度或量。通过附加阐明的方式,实施例能够标识像素集合450中的第一像素。实施例标识像素集合455中的对应像素。然后,实施例基于该像素在当前帧415和经运动补偿的帧435中的位置,确定针对该特定像素的光流矢量。
作为特定示例,考虑表示女人左眼的像素。实施例能够在像素集合450中标识该特定像素。实施例也标识该像素在经运动补偿的帧435内的当前位置或坐标。然后,实施例在当前帧415中搜索表示女人左眼的像素。在当前帧415中标识该像素时,则实施例确定该像素在当前帧415内的位置或坐标。在刚刚标识了像素的两个位置之后,实施例随后确定针对该像素的光流矢量,其中该光流矢量是反映像素(其对应于女人的左眼)所经历的移动量的2D矢量。换言之,每个光流矢量都是二维(2D)矢量。实施例标识针对被分割出的每个像素的对应光流矢量。例如,实施例标识针对像素集合450中的一些以及可能全部的对应光流矢量,其中光流矢量基于像素在像素集合450中的位置和像素在像素集合455中的位置来标识像素的移动。
有时,光流矢量可能针对不同像素而不同。例如,第一光流矢量可以不同于第二光流矢量。当对象相对于相机以一定角度移动(诸如在向右移动同时还朝向或远离相机移动)时,可能出现此情境。在一些情况下,所有光流矢量可能基本上相同,诸如在远处的对象左右移动而没有远离或靠近相机移动的情境中。因为对象在远处,所以朝向或远离相机的轻微移动可能看不到,但可以跟踪上下左右的移动。
在计算出光流矢量的情况下,实施例随后可以执行移位480操作,如在图4D中所反映的。具体地,实施例将被包括在经运动补偿的帧435中的像素集合450移位至对应于被包括在当前帧415中的像素集合455中标识的位置的位置。这种移位基于光流矢量470。
图4D显示了如由移动后位置485反映的叠加图像集合的这种移位,其中像素集合450正被移动至由像素集合455所示的位置。移位的结果由新位置490显示。新位置490指代现在被包括在所谓的“调整后的历史帧”中的像素集合450的新位置。
换言之,作为执行该移位480的结果,图4E显示了结果调整后的历史帧495,其反映像素的新位置,并且现在其基本上类似于当前帧415。为了清楚起见,调整后的历史帧495现在应当相对于当前帧415在阈值相似度495A内。在执行全局和局部补偿之后,实施例可以随后对图像(例如调整后的历史帧495和当前帧415)进行时域滤波以生成组合图像。图5A和图5B提供了示例过程的另一图示。
图5A显示了总体上概述了在图4A至图4E中所执行的过程的过程流500。最初,获取历史帧505。该帧取自或包括相机的特定姿态510(或者可能是现有的时域滤波图像),并且包括对象515,其表示来自图4A的对象405。
实施例获得当前帧520,该当前帧520取自相机的特定姿态525并且也包括对象530。使用从生成历史帧505的时刻到生成当前帧520的时刻跟踪相机移动的IMU数据,实施例能够执行全局MC 535操作,以将姿态510转换或重新投影至与姿态525匹配或对准的姿态540。
虽然执行了全局MD 535操作,但是对象545(对应于对象515)不在正确的位置中。例如,可以观察到对象545与对象530之间的定位差异。
根据所公开的原理,实施例通过分割被确定为对应于移动对象的像素来执行光流计算550,诸如通过在执行全局MC 535操作之后采取当前帧520与历史帧505之间的绝对差。计算光流矢量以先前描述的方式执行。
然后,实施例(在执行全局MC535操作之后)将光流矢量应用于历史帧505中的特定像素(例如星形像素,或者更确切地,对应于移动对象的像素),如由局部MC 555操作所示。作为应用光流矢量的结果,生成调整后的历史帧560。该调整后的历史帧560是历史帧505的修改版本,其中修改包括对考虑相机的全局移动和对象515的局部移动的改变。
在执行光流计算550时,一些实施例被配置为对历史帧505(在经历全局MC 535操作之后)和当前帧520中的一个或两个进行下采样565。通常对当前帧520进行下采样。通过对这些帧中的一个或两个进行下采样,结果帧具有较低图像分辨率。当图像中呈现大量噪声时,下采样至较低分辨率实际上可以产生改进的图像分析,诸如当试图标识多个图像之间的对应像素时。
当图像在下采样状态中时,实施例可以标识两个图像之间的对应像素。在标识这些像素后,实施例随后可以计算针对该像素以及针对表示移动对象的任何其他分割像素的光流矢量。
在针对各个像素计算光流矢量之后,实施例随后可以对图像进行上采样570。可以使用不同的上采样技术。仅作为示例,实施例可以执行双边放大/上采样操作。在一些情况下,实施例可以执行双线性放大。
作为另一示例,可以对一个像素进行上采样,使得其可能分裂为四个像素(这仅仅是示例数目,也可以使用其他值)。最初分配给单个像素的光流矢量现在也可以被分配给四个新生成的像素。然后,可以将这些光流矢量应用于历史帧505中的四个对应像素(在执行全局MC 535操作之后),以便生成调整后的历史帧560。
过程流500在图5B中继续。在调整后的历史帧560的姿态和内容现在对应于当前帧520的姿态和内容的情况下,实施例可以对这两个图像一起进行时域滤波。作为对调整后的历史帧560和对当前帧520执行时域滤波过程的结果,生成时域滤波帧575。然后,可以将该时域滤波帧575显示给用户,或者备选地,作为针对过程流500的新迭代的历史帧来操作。
利用调整后的历史帧560(例如已经经历过全局和局部MC操作的历史帧)对当前帧520进行时域滤波以生成时域滤波图像的过程包括平均过程,或者更确切地,加权平均过程。换言之,实施例可以对历史帧中的像素(可以加权)或调整后的历史帧560中的像素(可以加权)与当前帧520中的像素(可以加权)进行平均。在这个意义上,生成时域滤波图像的过程可以通过使用当前帧和历史或调整帧的加权平均来执行。
作为移位一些像素的结果,情况可能是先前被那些像素遮挡的内容现在已经不再被遮挡。然而,情况也可能是历史帧不包括足够的数据以完全表示该现在揭示的内容。为了考虑这种情境,实施例可以在时域滤波过程期间从当前帧提取不再被遮挡的内容,以便填充那些区域。换言之,实施例可以修改或调整在时域滤波过程期间使用的加权技术(例如加权平均值),以确保针对那些特定区域的内容被更大地加权,从而有利于当前帧520。作为在其中当前帧被偏置(针对那些特定区域)的该增加权重的结果,与从调整后的历史帧560相比,实施例将从当前帧520提取更多的数据。然后,可以使用来自当前帧520的数据来填充选择已揭示的区域。
在一些情况下,类似于先前提及的过程,实施例也可以对当前帧520进行下采样、提取针对上文提及的那些特定区域的数据,并且然后再次对数据进行上采样。同样,可以执行任何类型的双边或双线性放大。
因此,在一些情境中,针对先前在历史帧中被像素集合遮挡但现在未被像素集合遮挡的内容,实施例可以从当前帧获得针对该内容的图像数据。然后,该内容可以被包括在时域滤波帧/图像中。可选地,在从当前帧获得内容之前,实施例可以将当前帧下采样至较低分辨率,并且然后稍后对所提取的内容进行上采样。
示例方法
以下讨论现在涉及可以执行的若干方法和方法动作。虽然方法动作可以以特定顺序讨论或在流程图中被示出为以特定顺序发生,但除非特别声明,否则不需要特定顺序,或者因为动作依赖于在该动作执行之前完成另一动作,所以需要特定顺序。
现在将注意力指向于图6,其示出了用于生成时域滤波图像的示例方法600的流程图,该时域滤波图像被设计为补偿相机的全局运动并且补偿在场景内局部移动的一个或多个对象的局部运动。在一些情况下,方法600可以由图1的HMD 100执行。在一些情况下,方法600可以由在云环境中操作的服务器执行。
最初,方法600包括获取场景(例如场景400A)的历史帧(例如来自图4A的历史帧400)和当前帧(例如当前帧415)的动作(动作605)。值得注意的是,当前帧由相机生成。在一些情况下,历史帧可以由相同的相机生成,而在其他情况下,历史帧可以是通过编译来自多个先前生成的图像的信息而生成的时域滤波图像。换言之,在一些情况下,历史帧是先前生成的时域滤波图像。
动作610包括获取惯性测量单元(IMU)数据,该IMU数据反映相机在获取历史帧的时刻与由相机生成当前帧的时刻之间的移动。可选地,也可以使用特征对应关系以便确定不同帧的姿态。
响应于确定相机在生成当前帧时的第一姿态(例如姿态425),或者更确切地,响应于使用IMU数据(或可选地特征对应关系)来确定相机的第一姿态,动作615包括对历史帧执行全局运动补偿操作,以重新投影(例如重新投影440)历史帧的第二姿态(例如姿态410)以匹配第一姿态(例如姿态425)。换言之,IMU数据可以被用于执行全局运动补偿操作。
在执行全局运动补偿操作之后,动作620包括将经运动补偿的历史帧与当前帧进行比较,以标识位于历史帧内的第一位置集合处、但位于当前帧内的第二位置集合处的像素集合(表示特定内容)(换言之,内容已经移动)。像素集合对应于在场景内局部移动的一个或多个对象。此外,第二位置集合不同于第一位置集合。例如,图4C显示了表示相同内容的像素(例如做引体向上的女人)如何位于两个图像中的不同位置处。实施例能够将图4C中的当前帧415与经运动补偿的帧435进行比较,以标识对应于移动对象(例如女人)的像素。
在一些实现中,将经运动补偿的历史帧与当前帧进行比较以标识像素集合的过程在当前帧和经运动补偿的历史帧中的一个或可能两个被下采样至降低分辨率后执行。如果仅对单个图像进行下采样,则实施例选择当前帧作为将被下采样的帧,因为经运动补偿的历史帧是时域滤波帧,并且质量可能比当前帧高得多。
在一些实现中,将经运动补偿的历史帧与当前帧进行比较以标识像素集合的过程可以包括计算绝对差。计算经运动补偿的历史帧和当前帧之间的绝对差。
针对像素集合中的每个像素,动作625包括计算对应的光流矢量。因此,计算多个光流矢量。这些光流矢量映射一个或多个对象的移动,其中移动由在经运动补偿的历史帧中的第一位置集合处并且在当前帧中的第二位置集合处的像素集合表示。
动作630包括通过将多个光流矢量应用于被包括在经运动补偿的历史帧中的像素集合,以使像素集合从经运动补偿的历史帧中的第一位置集合处移位至新位置处,来从经运动补偿的历史帧生成调整后的历史帧,使得调整后的历史帧反映像素集合的新位置。调整后的帧中的这些新位置对应于当前帧中针对该像素集合标识的第二位置集合。
将像素集合从历史帧中的第一位置集合处移位至调整后的帧中的新位置处的过程在二维(2D)空间中执行。结果,移位过程是基于每个像素的2D变换;而不是3D重新投影过程。
在将像素集合移位至调整后的帧中的新位置之后,动作635包括利用调整后的帧对当前帧进行时域滤波,以生成时域滤波图像。时域滤波帧575是代表性的。在一些情况下,时域滤波图像作为针对方法600的后续迭代的新历史帧来操作。
因此,所公开的实施例能够有利地补偿全局移动和局部移动两者。这样,实施例能够显著地改善图像质量。
示例计算机/计算机系统
现在将注意力指向于图7,其示出了示例计算机系统700,其可以包括和/或被用于执行本文所描述的操作中的任何操作。计算机系统700可以采取各种不同的形式。例如,计算机系统700可以体现为平板电脑700A、台式或膝上型计算机700B、可穿戴设备700C、移动设备或任何其他独立设备,如省略号700D所表示的。计算机系统700也可以是包括与计算机系统700通信的一个或多个连接的计算组件/设备的分布式系统。
在其最基本的配置中,计算机系统700包括各种不同的组件。图7显示了计算机系统700包括一个或多个处理器705(又称“硬件处理单元”)和存储710。
关于(多个)处理器705,将理解的是,本文所描述的功能可以至少部分地由一个或多个硬件逻辑组件(例如(多个)处理器705)执行。例如但非限制性地,可以使用的说明性类型的硬件逻辑组件/处理器包括现场可编程门阵列(“FPGA”)、程序专用或应用专用集成电路(“ASIC”)、程序专用标准产品(“ASSP”)、片上系统(“SOC”)、复杂可编程逻辑设备(“CPLD”)、中央处理单元(“CPU”)、图形处理单元(“GPU”)或任何其他类型的可编程硬件。
如本文所使用的,术语“可执行模块”、“可执行组件”、“组件”、“模块”、“模型”或“引擎”可以指代硬件处理单元或指代可以在计算机系统700上执行的软件对象、例程或方法。本文描述的不同组件、模块、引擎和服务可以被实现为在计算机系统700上执行的对象或处理器(例如作为单独的线程)。
存储710可以是物理系统存储器,其可以是易失性存储、非易失性存储或两种存储的一些组合。术语“存储器”在本文中也可以被用于指代非易失性大容量存储,诸如物理存储介质。如果计算机系统700是分布式的,则处理、存储器和/或存储能力也可以是分布式的。
存储710被显示为包括可执行指令(即代码715)。可执行指令表示由计算机系统700的(多个)处理器705可执行,以执行所公开的操作(诸如在各种方法中描述的那些操作)的指令。
所公开的实施例可以包括或利用专用或通用计算机,包括计算机硬件,诸如例如一个或多个处理器(诸如(多个)处理器705)和系统存储器(诸如存储710),如下文中更详细讨论的。实施例也包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这种计算机可读介质可以是可以由通用或专用计算机系统访问的任何可用介质。以数据形式存储计算机可执行指令的计算机可读介质是“物理计算机存储介质”或“硬件存储设备”。此外,计算机可读存储介质包括物理计算机存储介质和硬件存储设备,但不包括信号、载波和传播信号。另一方面,承载计算机可执行指令的计算机可读介质是“传输介质”,并且包括信号、载波和传播信号。因此,作为示例而非限制,当前实施例可以包括至少两种截然不同种类的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质(也称“硬件存储设备”)是计算机可读硬件存储设备,诸如RAM、ROM、EEPROM、CD-ROM、基于RAM的固态驱动器(“SSD”)、闪存、相变存储器(“PCM”),或其他类型的存储器,或其他光盘存储、磁盘存储或其他磁存储设备,或可以被用于以计算机可执行指令、数据或数据结构的形式存储所需程序代码装置并且可以由通用或专用计算机访问的任何其他介质。
计算机系统700也可以经由网络720连接(经由有线或无线连接)至外部传感器(例如一个或多个远程相机)或设备。例如,计算机系统700可以与任何数目的设备(例如设备725)或云服务通信以获得或处理数据。在一些情况下,网络720本身可以是云网络。此外,计算机系统700也可以通过一个或多个有线或无线网络720连接至(多个)远程/单独的计算机系统,这些计算机系统被配置为执行关于计算机系统700所描述的处理中的任何处理。
“网络”,如网络720,被定义为实现电子数据在计算机系统、模块和/或其他电子设备之间的传输的一个或多个数据链路和/或数据交换机。当信息通过网络(硬连线、无线或硬连线和无线的组合)被传输或提供给计算机时,计算机适当地将该连接视为传输介质。计算机系统700将包括被用于与网络720通信的一个或多个通信信道。传输介质包括可以被用于以计算机可执行指令的形式或以数据结构的形式携带数据或所需程序代码装置的网络。此外,这些计算机可执行指令可以由通用或专用计算机访问。以上的组合也应当被包括在计算机可读介质的范围内。
在到达各种计算机系统组件时,以计算机可执行指令或数据结构形式的程序代码装置可以自动地从传输介质传输至计算机存储介质(反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以缓冲在网络接口模块(例如网络接口卡或“NIC”)内的RAM中,并且然后最终被传送至计算机系统RAM和/或至计算机系统处的较不易失性计算机存储介质。因此,应当理解的是,计算机存储介质可以被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行(或计算机可解读)指令包括例如使通用计算机、专用计算机或专用处理设备执行特定功能或功能组的指令。计算机可执行指令可以是例如二进制代码、诸如汇编语言的中间格式指令或甚至源代码。虽然主题内容以特定于结构特征和/或方法动作的语言来描述,但要理解的是,在所附权利要求中定义的主题内容不一定限于所描述的特征或上文所描述的动作。相反,所描述的特征和动作作为实现权利要求的示例形式被公开。
本领域中的技术人员将理解的是,实施例可以在具有多种类型的计算机系统配置的网络计算环境中实践,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等。实施例也可以在分布式系统环境中被实践,其中通过网络链接(由硬连线数据链路、无线数据链路或由硬连线和无线数据链路的组合链接)的本地和远程计算机系统分别执行任务(例如云计算、云服务等)。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备两者中。
本发明可以以其他特定形式体现而不脱离本发明的特征。所描述的实施例要在所有方面中都被认为仅仅是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前面的描述指示。权利要求的等效含义和范围内发生的所有改变都将被包含在其范围内。过程流过程流经运动补偿的历史帧经运动补偿的历史帧经运动补偿的历史帧。

Claims (15)

1.一种用于生成时域滤波图像的方法,所述时域滤波图像被设计为补偿相机的全局运动并且补偿在场景内局部移动的一个或多个对象的局部运动,所述方法包括:
获取场景的历史帧和当前帧,其中所述当前帧由相机生成;
响应于确定所述相机在生成所述当前帧时的第一姿态,对所述历史帧执行全局运动补偿操作,以重新投影所述历史帧的第二姿态来匹配所述第一姿态;
在执行所述全局运动补偿操作之后,将经运动补偿的所述历史帧与所述当前帧进行比较,以标识位于经运动补偿的所述历史帧内的第一位置集合处、但位于所述当前帧内的第二位置集合结合处的像素集合,所述像素集合对应于在所述场景内局部移动的一个或多个对象,所述第二位置集合不同于所述第一位置集合;
针对所述像素集合中的每个像素,计算对应的光流矢量,使得多个光流矢量被计算,其中所述多个光流矢量映射所述一个或多个对象的移动,其中所述移动由在经运动补偿的所述历史帧中的所述第一位置集合处并且在所述当前帧中的所述第二位置集合处的所述像素集合来表示;
通过将所述多个光流矢量应用于被包括在经运动补偿的所述历史帧中的所述像素集合,以使所述像素集合从经运动补偿的所述历史帧中的所述第一位置集合处移位至新位置处,来从经运动补偿的所述历史帧生成调整后的历史帧,使得所述调整后的历史帧反映所述像素集合的所述新位置,所述调整后的历史帧中的所述新位置对应于所述当前帧中针对所述像素集合标识的所述第二位置集合;以及
在将所述像素集合移位至所述调整后的历史帧中的所述新位置之后,利用所述调整后的历史帧对所述当前帧进行时域滤波,以生成时域滤波图像。
2.根据权利要求1所述的方法,其中所述时域滤波图像作为针对所述方法的后续迭代的新历史帧而操作。
3.根据权利要求1所述的方法,其中所述历史帧是先前生成的时域滤波图像。
4.根据权利要求1所述的方法,其中惯性测量单元(IMU)数据被用于执行所述全局运动补偿操作。
5.根据权利要求1所述的方法,其中将经运动补偿的所述历史帧与所述当前帧进行比较以标识所述像素集合在所述当前帧和经运动补偿的所述历史帧中的一个或两个被下采样至降低的分辨率之后被执行。
6.根据权利要求1所述的方法,其中所述相机是单光子雪崩二极管(SPAD)相机、单光子探测器、过冷相机、科学相机模块或图像增强器II加互补金属氧化物半导体(CMOS)相机中的一种。
7.根据权利要求1所述的方法,其中所述相机是低噪声相机。
8.根据权利要求1所述的方法,其中利用所述调整后的历史帧对所述当前帧进行时域滤波以生成所述时域滤波图像包括:对所述调整后的历史帧中的像素和所述当前帧中的像素进行平均。
9.根据权利要求1所述的方法,其中将经运动补偿的所述历史帧与所述当前帧进行比较以标识所述像素集合包括:计算经运动补偿的所述历史帧与所述当前帧之间的绝对差。
10.根据权利要求1所述的方法,其中针对先前在经运动补偿的所述历史帧中被所述像素集合遮挡但现在在所述调整后的历史帧中未被所述像素集合遮挡的内容,针对所述内容的图像数据从所述当前帧获得。
11.一种被配置为生成时域滤波图像的计算机系统,所述时域滤波图像被设计为补偿相机的全局运动并且补偿在场景内局部移动的一个或多个对象的局部运动,所述计算机系统包括:
一个或多个处理器;以及
存储指令的一个或多个计算机可读硬件存储设备,所述指令由所述一个或多个处理器可执行,以使所述计算机系统:
获取场景的历史帧和当前帧,其中所述当前帧由相机生成;
响应于确定所述相机在生成所述当前帧时的第一姿态,对所述历史帧执行全局运动补偿操作,以重新投影所述历史帧的第二姿态来匹配所述第一姿态;
在执行所述全局运动补偿操作之后,将经运动补偿的所述历史帧与所述当前帧进行比较,以标识位于经运动补偿的所述历史帧内的第一位置集合处、但位于所述当前帧内的第二位置集合处的像素集合,所述像素集合对应于在所述场景内局部移动的一个或多个对象,所述第二位置集合不同于所述第一位置集合;
针对所述像素集合中的每个像素,计算对应的光流矢量,使得多个光流矢量被计算,其中所述多个光流矢量映射所述一个或多个对象的移动,其中所述移动由在经运动补偿的所述历史帧中的所述第一位置集合处并且在所述当前帧中的所述第二位置集合处的所述像素集合来表示;
通过将所述多个光流矢量应用于被包括在经运动补偿的所述历史帧中的所述像素集合,以使所述像素集合从经运动补偿的所述历史帧中的所述第一位置集合处移位至新位置处,来从经运动补偿的历史帧生成调整后的历史帧,使得所述调整后的历史帧反映所述像素集合的所述新位置,所述调整后的历史帧中的所述新位置对应于所述当前帧中针对所述像素集合标识的所述第二位置集合;以及
在将所述像素集合移位至所述调整后的历史帧中的所述新位置之后,利用所述调整后的历史帧对所述当前帧进行时域滤波,以生成时域滤波图像。
12.根据权利要求11所述的计算机系统,其中针对先前在经运动补偿的所述历史帧中被所述像素集合遮挡但现在在所述调整后的历史帧中未被所述像素集合遮挡的内容,针对所述内容的图像数据从所述当前帧获得,以及
其中,在从所述当前帧获得所述内容之前,所述当前帧被下采样至更低分辨率。
13.根据权利要求11所述的计算机系统,其中生成所述时域滤波图像通过使用所述当前帧和所述调整后的历史帧的加权平均而被执行。
14.根据权利要求11所述的计算机系统,其中所述多个光流矢量中的每个光流矢量是二维(2D)矢量。
15.根据权利要求11所述的计算机系统,其中被包括在所述多个光流矢量中的第一光流矢量不同于被包括在所述多个光流矢量中的第二光流矢量。
CN202280090331.1A 2022-02-28 2022-11-25 具有全局和局部运动补偿的高级时域低光滤波 Pending CN118648019A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/682,315 2022-02-28
US17/682,315 US20230274401A1 (en) 2022-02-28 2022-02-28 Advanced temporal low light filtering with global and local motion compensation
PCT/US2022/050995 WO2023163768A1 (en) 2022-02-28 2022-11-25 Advanced temporal low light filtering with global and local motion compensation

Publications (1)

Publication Number Publication Date
CN118648019A true CN118648019A (zh) 2024-09-13

Family

ID=84901260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280090331.1A Pending CN118648019A (zh) 2022-02-28 2022-11-25 具有全局和局部运动补偿的高级时域低光滤波

Country Status (3)

Country Link
US (1) US20230274401A1 (zh)
CN (1) CN118648019A (zh)
WO (1) WO2023163768A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117281616B (zh) * 2023-11-09 2024-02-06 武汉真彩智造科技有限公司 一种基于混合现实的手术控制方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7119837B2 (en) * 2002-06-28 2006-10-10 Microsoft Corporation Video processing system and method for automatic enhancement of digital video
US9639935B1 (en) * 2016-05-25 2017-05-02 Gopro, Inc. Apparatus and methods for camera alignment model calibration

Also Published As

Publication number Publication date
US20230274401A1 (en) 2023-08-31
WO2023163768A1 (en) 2023-08-31

Similar Documents

Publication Publication Date Title
US11972780B2 (en) Cinematic space-time view synthesis for enhanced viewing experiences in computing environments
US10580140B2 (en) Method and system of real-time image segmentation for image processing
CN110799991A (zh) 用于使用卷积图像变换执行同时定位和映射的方法和系统
US10943335B2 (en) Hybrid tone mapping for consistent tone reproduction of scenes in camera systems
US20180288387A1 (en) Real-time capturing, processing, and rendering of data for enhanced viewing experiences
US11605153B1 (en) Generate super-resolution images from sparse color information
CN112189147A (zh) 飞行时间相机的经降低功率操作
US20230334636A1 (en) Temporal filtering weight computation
US12073540B2 (en) Use motion data to generate higher resolution images
US11539931B2 (en) Dual system optical alignment for separated cameras
US20240112605A1 (en) Systems and methods for adding persistence to single photon avalanche diode imagery
CN115035456A (zh) 视频去噪方法、装置、电子设备和可读存储介质
CN118648019A (zh) 具有全局和局部运动补偿的高级时域低光滤波
US10540809B2 (en) Methods and apparatus for tracking a light source in an environment surrounding a device
US20220353489A1 (en) Systems and methods for efficient generation of single photon avalanche diode imagery with persistence
Ma Resolving Motion with Single-Photon Cameras
CN117813626A (zh) 从多视图立体(mvs)图像重建深度信息

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