CN117355768A - 用于使用单光子雪崩二极管来获得彩色图像的***和方法 - Google Patents

用于使用单光子雪崩二极管来获得彩色图像的***和方法 Download PDF

Info

Publication number
CN117355768A
CN117355768A CN202280036258.XA CN202280036258A CN117355768A CN 117355768 A CN117355768 A CN 117355768A CN 202280036258 A CN202280036258 A CN 202280036258A CN 117355768 A CN117355768 A CN 117355768A
Authority
CN
China
Prior art keywords
image
image frame
spad
filtered
dark current
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
CN202280036258.XA
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 CN117355768A publication Critical patent/CN117355768A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/70SSIS architectures; Circuits associated therewith
    • H04N25/702SSIS architectures characterised by non-identical, non-equidistant or non-planar pixel layout
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/70SSIS architectures; Circuits associated therewith
    • H04N25/76Addressed sensors, e.g. MOS or CMOS sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4015Image demosaicing, e.g. colour filter arrays [CFA] or Bayer patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/10Cameras or camera modules comprising electronic image sensors; Control thereof for generating image signals from different wavelengths
    • H04N23/12Cameras or camera modules comprising electronic image sensors; Control thereof for generating image signals from different wavelengths with one sensor only
    • 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/84Camera processing pipelines; Components thereof for processing colour signals
    • H04N23/843Demosaicing, e.g. interpolating colour pixel values
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/70SSIS architectures; Circuits associated therewith
    • H04N25/76Addressed sensors, e.g. MOS or CMOS sensors
    • H04N25/77Pixel circuitry, e.g. memories, A/D converters, pixel amplifiers, shared circuits or shared components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/646Circuits for processing colour signals for image enhancement, e.g. vertical detail restoration, cross-colour elimination, contour correction, chrominance trapping filters
    • 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/20024Filtering details
    • G06T2207/20028Bilateral filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2209/00Details of colour television systems
    • H04N2209/04Picture signal generators
    • H04N2209/041Picture signal generators using solid-state devices
    • H04N2209/042Picture signal generators using solid-state devices having a single pick-up sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Studio Devices (AREA)
  • Transforming Light Signals Into Electric Signals (AREA)

Abstract

一种用于使用SPAD来获得彩色图像的***包括具有多个SPAD像素的SPAD阵列。所述多个SPAD像素中的每一个SPAD像素包括安置在其上的相应颜色滤波器。所述***可配置为:使用所述SPAD阵列来捕获图像帧;以及通过使用所述图像帧和至少一个先前图像帧执行时间滤波操作来生成经滤波的图像。所述至少一个先前图像帧由所述SPAD阵列在时间上在与所述图像帧相关联的时间点之前的时间点捕获。所述***还可被配置为:在执行了所述时间滤波操作之后,通过对所述经滤波的图像进行去马赛克来生成彩色图像。

Description

用于使用单光子雪崩二极管来获得彩色图像的***和方法
背景技术
混合现实(MR)***,其包括虚拟现实和增强现实***,因其能够为其用户创建真正独特的体验而受到广泛关注。作为参考,常规的虚拟现实(VR)***通过将其用户的视图限制在仅虚拟环境中来创建完全沉浸式的体验。在VR***中,这通常是通过使用完全遮挡现实世界任何视图的头戴式设备(HMD)来实现的。作为结果,用户完全沉浸在虚拟环境中。相比之下,常规的增强现实(AR)***通过视觉呈现位于现实世界中或与现实世界交互的虚拟对象来创建增强现实体验。
如本文所使用的,VR***和AR***被可互换地描述和引用。除非另有说明,否则本文的描述同等适用于所有类型的混合现实***,其(如上所述)包括AR***、VR现实***和/或能够显示虚拟对象的任何其他类似***。
一些MR***包括用于促进图像捕获、视频捕获和/或其他功能的一个或多个相机。例如,MR***的相机可以利用使用相机获得的图像和/或深度信息来向用户提供用户环境的直通视图。MR***可以以各种方式提供直通视图。例如,MR***可以向用户呈现由MR***的相机捕获的原始图像。在其他情况下,MR***可以修改和/或重新投影捕获的图像数据以对应于用户眼睛的视角,从而生成直通视图。MR***可以修改和/或重新投影捕获的图像数据以使用由MR***获得的所捕获的环境的深度信息(例如,使用MR***的深度***,例如飞行时间(time-of-flight)相机、测距仪、立体深度相机等)。在一些情况下,MR***利用一个或多个预定义的深度值来生成直通视图(例如,通过执行平面重投影)。
在一些情况下,通过修改和/或重新投影捕获的图像数据生成的直通视图可以至少部分校正由用户的眼睛和MR***的相机之间的物理分离带来的视角差异(称为“视差问题”、“视差错误”或简称为“视差”)。这种直通视图/图像可以被称为“视差校正直通”视图/图像。举例来说,视差校正的直通图像对于用户来说可以看起来就像是由与用户的眼睛位于同一位置的相机捕获的一样。
直通视图可以帮助用户在过渡到混合现实环境中和/或在混合现实环境内导航时避免方向迷失和/或安全隐患。直通视图还可以增强低能见度环境中的用户视图。例如,配置有长波长热成像相机的混合现实***可以促进烟雾、霾、雾和/或灰尘中的可见性。同样,配置有低光成像摄像机的混合现实***促进在环境光水平低于人类视觉所需水平的黑暗环境中的可见性。
为了促进环境成像以生成直通视图,一些MR***包括利用互补金属氧化物半导体(CMOS)和/或电荷耦合器件(CCD)技术的图像传感器。例如,此类技术可包括图像感测像素阵列,其中每个像素被配置为响应于检测到的光子而生成电子空穴对。电子可以被存储在每像素电容器中,并且可以读出存储在电容器中的电荷以提供图像数据(例如,通过将存储的电荷转换为电压)。
然而,这种图像传感器存在许多缺点。例如,常规图像传感器的信噪比可能会受到读取噪声的严重影响,尤其是在低能见度条件下成像时。例如,在低光成像条件下(例如,环境光低于约10勒克斯,例如在约1毫勒克斯或以下的范围内),CMOS或CCD成像像素可能仅检测到少量光子,这可能导致读取噪声接近或超过成像像素检测到的信号并降低信噪比。
当在低光照条件下以高帧速率成像时,CMOS或CCD图像传感器检测到的信号中的读取噪声的支配性通常会加剧。虽然较低的帧速率CMOS或CCD可以用于使传感器检测足够的光子,从而使信号避免受到读取噪声的支配,但使用低帧速率通常会导致捕获的图像中的运动模糊。当在HMD或其他在使用过程中经历常规运动的设备上执行成像时,运动模糊尤其成问题。
除了影响直通成像之外,与常规图像传感器相关联的读取噪声和/或运动模糊还可能影响由HMD执行的其他操作,例如后期重投影、卷帘快门校正、对象跟踪(例如,手部跟踪)、表面重建、语义标记、对象的3D重建和/或其他。
为了解决与CMOS和/或CCD图像传感器相关联的缺点,已经出现了利用单光子雪崩二极管(SPAD)图像传感器的设备。与常规的CMOS或CCD传感器相比,SPAD在使得SPAD能够检测单个光子的偏置电压下操作。在检测到单个光子时,形成电子-空穴对,并且电子在高电场中加速,从而引起雪崩倍增(例如,产生附加电子-空穴对)。因此,每个检测到的光子都可能触发雪崩事件。SPAD可以以门控方式操作(每个门对应于单独的快门操作),其中每个门控快门操作可以被配置为产生二进制输出。二进制输出可以包括:“1”,其中在曝光期间检测到雪崩事件(例如,其中检测到光子),或者“0”,其中没有检测到雪崩事件。
单独的快门操作可以被连续地执行并且在帧捕获时间段上被集成。可以对帧捕获时间段上的连续快门操作的二进制输出进行计数,并且可以基于计数的二进制输出来计算强度值。
SPAD阵列可以形成图像传感器,其中每个SPAD形成SPAD阵列中的单独像素。为了捕获环境的图像,每个SPAD像素可以检测雪崩事件并且以本文描述的方式为连续快门操作提供二进制输出。可以对帧捕获时间段上的连续快门操作的每像素二进制输出进行计数,并且可以基于计数的每像素二进制输出来计算每像素强度值。每像素强度值可以用于形成环境的强度图像。
尽管SPAD传感器有望克服CMOS或CCD传感器的各种缺点,但实现用于图像和/或视频捕获的SPAD传感器仍然面临许多挑战。例如,持续需要和期望改进SPAD图像的图像质量,特别是对于在低光条件下捕获的SPAD图像(包括在低光条件下使用SPAD彩色图像捕获)而言。
本文中要求保护的主题不限于解决任何缺点或仅在诸如上述那些环境中操作的实施例。确切而言,提供本背景仅是为了说明可以实践本文中描述的一些实施例的一个示例性技术领域。
发明内容
所公开的实施例包括用于使用单光子雪崩二极管来获得彩色图像的***、方法和设备。
一些公开的***包括具有多个SPAD像素的SPAD阵列,其中,多个SPAD像素中的每一个SPAD像素包括安置在其上的相应颜色滤波器。所述***配置有一个或多个处理器以及一个或多个硬件存储设备,所述一个或多个硬件存储设备存储可由所述一个或多个处理器执行以将所述***配置为执行与使用单光子雪崩二极管来获得彩色图像相关联的各种动作的指令。
所公开的用于使用单光子雪崩二极管来获得彩色图像的动作包括:使用所述SPAD阵列捕获图像帧;以及通过使用所述图像帧和由所述SPAD阵列在时间上在与所述图像帧相关联的时间点之前的时间点捕获的先前图像帧执行时间滤波操作来生成经滤波的图像。
所公开的用于使用单光子雪崩二极管来获得彩色图像的动作包括:在执行了所述时间滤波操作之后,通过对所述经滤波的图像进行去马赛克来生成彩色图像。
提供本发明内容以便以简化的形式对下面在具体实施方式中进一步描述的一组构思进行介绍。本发明内容并不旨在标识要求保护的发明主题的关键特征或重要特征,也不旨在用于协助限定要求保护的发明主题的范围。
附加的特征和优点将在下面的描述中阐述,并且部分地从描述中将是显而易见的,或者可以通过本文的教导的实践而了解到。本发明的特征和优点可以通过所附权利要求中特别指出的手段和组合来实现和获得。本发明的特征将从下面的描述和所附权利要求中变得更加明显,或者可以通过下文阐述的本发明的实践来了解。
附图说明
为了描述可以获得上述和其他优点和特征的方式,将通过参考在附图中示出的特定实施例来呈现上文简要描述的发明主题的更具体的描述。理解这些附图仅描绘了典型实施例,并且因此不应该被认为是对范围的限制,通过附图的使用,将用附加特征和细节来描述和解释实施例,在附图中:
图1示出了可以包括或用于实施一个或多个所公开的实施例的示例性***的示例性组件;
图2示出了使用头戴式显示器(HMD)的单光子雪崩二极管(SPAD)阵列在低光环境中捕获对象的图像帧的示例;
图3示出了使用由HMD的SPAD阵列捕获的连续捕获的图像帧来生成经时间滤波的图像的示例;
图4示出了使用SPAD传感器来捕获暗电流图像帧的示例;
图5示出了使用暗电流图像帧来生成经暗电流补偿的图像的示例;
图6示出了在不同温度条件下使用SPAD传感器来捕获多个暗电流图像帧的示例;
图7示出了使用基于运行时的温度条件选择的暗电流图像来生成经暗电流补偿的图像的示例;
图8示出了示例性暗电流图像帧,其包括在运行时捕获图像帧时将不会被曝光的未曝光的SPAD像素区域;
图9示出了使用利用暗电流因子缩放的暗电流图像帧来生成经暗电流补偿的图像的示例,其中暗电流因子是基于未曝光的SPAD像素的运行时传感器数据确定的;
图10示出了可以对经暗电流补偿的图像执行的示例性附加操作;
图11示出了通过从运行时捕获的图像帧的像素减去暗电流值来生成经暗电流补偿的图像的示例,其中暗电流值是基于未曝光的SPAD像素的运行时传感器数据确定的;
图12和图13示出了描绘与补偿SPAD图像中的暗电流相关联的动作的示例性流程图;
图14示出了包括颜色滤波器的SPAD阵列的示例性SPAD像素;
图15示出了使用HMD的颜色滤波SPAD阵列在低光环境中捕获彩色对象的图像帧的示例;
图16示出了用于使用SPAD阵列来获得彩色图像的示例性处理流水线;
图17示出了通过在去马赛克之前对图像帧执行时间滤波来生成经滤波的图像的示例;
图18A示出了对连续捕获的图像帧进行解复用以生成多个时间点的颜色特定图像帧的示例;
图18B示出了通过使用与不同时间点相关联的颜色特定图像帧执行时间滤波来生成经滤波的颜色特定图像帧的示例;
图18C示出了对经滤波的颜色特定图像帧进行复用以生成经滤波的图像的示例;
图19示出了通过在去马赛克之前对图像帧执行双边滤波来生成经滤波的图像的示例;
图20示出了对图像帧进行解复用以生成颜色特定图像帧,通过对颜色特定图像帧执行空间滤波来生成经滤波的颜色特定图像帧,以及对经滤波的颜色特定图像帧进行复用以生成经滤波的图像的示例;以及
图21和图22示出了描绘与使用SPAD来获得彩色图像相关联的操作的示例性流程图。
具体实施方式
概括地说,所公开的实施例涉及用于使用单光子雪崩二极管(SPAD)来获得彩色图像的***、方法和设备。
技术优势、改进和实际应用的示例
鉴于本公开,本领域技术人员将认识到,所公开的实施例中的至少一些实施例可以被实施以解决与至少一些常规图像采集技术相关联的各种缺点。以下部分概述了所公开的实施例提供的一些示例性改进和/或实际应用。然而,应当理解,以下仅是示例并且本文描述的实施例决不限于本文讨论的示例性改进。
本文描述的技术可以促进相对于用于SPAD图像采集(包括彩色图像采集)的常规***、设备和/或方法的许多优点,特别是对于在低光条件下成像和/或从图像捕获期间经历运动的设备(例如,HMD)进行成像。
首先,SPAD信号的二值化有效地消除了读取噪声,从而与常规的CMOS和/或CCD传感器相比提高了SPAD图像传感器阵列的信噪比。因此,由于SPAD信号的二值化,可以以高帧率(例如,90Hz或更高,例如120Hz或甚至240Hz)读出SPAD信号,而不会导致信号被读取噪声支配,即使对于在低光环境下捕获少量光子的信号也是如此。
鉴于前述内容,可以使用SPAD阵列以高帧率执行多次曝光(和读出)操作以生成单独的部分图像帧,并且这些图像帧可以利用彼此来进行时间滤波。可以使用运动数据来对齐并组合单独的部分图像帧(例如,通过平均或其他滤波)以形成单个合成图像。在这点上,可以使用先前时间点图像数据以时间滤波方式(例如,具有持久性)来获得SPAD图像,以提高当前时间点图像数据的质量。相反,尝试利用以高帧速率捕获的多个图像帧来使用常规的CMOS或CCD相机形成单个合成图像将导致信号被读取噪声支配,特别是在低光成像条件下。
与使用SPAD进行图像采集相关联的另一个挑战是暗电流带来的信号噪声。暗电流(有时被称为反向偏置漏电流)是指即使没有光子进入光敏设备(例如,SPAD)时也会流过的小电流。暗电流可能是热感应的或是由晶体学和/或制造不规则性和/或缺陷引起的。
在SPAD中,即使SPAD未检测到光子,暗电流也会导致耗尽区中生成电子-空穴对,并可能触发雪崩事件。暗电流引起的雪崩事件通常被认为是检测到的光子,这可能导致SPAD的二进制输出包括错误计数(或“暗计数”)。在SPAD图像中,暗计数可能导致分配给至少一些SPAD像素的强度值不准确地升高,这可能会向SPAD图像添加噪声。在一些情况下,在低光条件下成像时,暗计数的影响非常突出,从而导致降低用户体验的高频噪声。
因此,所公开的技术可以通过从运行时捕获的SPAD图像中减去暗电流SPAD图像来促进暗电流补偿。作为校准步骤的一部分,可以通过在阻挡或遮挡SPAD传感器的同时捕获一个或多个SPAD图像来获得暗电流图像。暗电流图像可以指示哪些SPAD像素生成暗计数和/或由不同SPAD像素生成的暗计数的数量。因此,暗电流图像可以用于从运行时捕获的SPAD图像中减去暗计数,以补偿暗电流在SPAD传感器中的影响。这种减去可以降低SPAD图像中存在的噪声量,从而改善用户体验。
当时间滤波被包括在用于生成SPAD图像的处理流水线中时,已经发现在执行暗电流补偿之前执行时间滤波是有利的。换句话说,已经发现对经时间滤波的图像执行暗电流补偿是有利的,而不是对经暗电流补偿的图像执行时间滤波。例如,由于为图像存储的强度值会截断为零(例如,不存储负强度值),因此在执行时间滤波之前执行暗电流减去可能会产生朝向较大强度值的偏置。例如,当与在运行时SPAD像素所检测到的强度值相比,暗电流图像存储了该SPAD像素的更高的强度值时,这种朝向更高强度值的偏置可能会发生。在这种情况下,减去操作将使SPAD像素的强度值为零,但是较高暗电流强度值和较低运行时强度值之间的进一步差异将丢失。因此,如果随后执行时间滤波,则SPAD像素的强度值可能高于有效去除暗计数所需的强度值。
因此,在一些情况下,可以以特定顺序执行时间滤波和暗电流补偿(时间滤波先发生)以促进使用SPAD的改进的图像采集(例如,具有降低的噪声),特别是对于低光条件下的成像。也就是说,在一些情况下,在时间滤波之前执行暗电流补偿。
使用SPAD采集彩色图像还存在其他挑战,特别是在低光成像条件下。例如,为了捕获彩色图像,颜色滤波器以某种模式(例如,拜耳模式(Bayer pattern)或其他类型的模式)被安置在SPAD像素(红色、绿色、蓝色(RGB)颜色滤波器或其他类型的颜色滤波器)上以收集不同波长的光以生成彩色图像的图像像素的颜色值。为了生成颜色值,常规***获得原始图像数据(例如,雪崩事件的每像素计数,或基于雪崩事件的计数的每像素强度值),然后对原始图像数据执行去马赛克操作。去马赛克涉及生成(例如,经由内插)针对图像传感器的每个图像感测像素的每像素颜色值(例如,RGB值)(尽管每个图像感测像素通常包括仅用于安置在其上的单个颜色通道的滤波器)。去马赛克可以允许彩色图像匹配图像传感器的分辨率,在一些情况下,这相对于生成针对每个经颜色滤波图像感测像素簇(例如,拜耳模式中的每个红色像素、绿色像素、绿色像素和蓝色像素的2×2集合)的单一颜色值(例如,RGB值)是更可取的。后一种方法导致彩色图像相对于图像传感器的下采样或缩小。
在低光成像条件下,颜色滤波SPAD传感器捕获的原始图像数据通常包括明显的噪声。此外,去马赛克操作会向经处理图像添加噪声,这进一步加剧了在使用SPAD在低光条件下执行彩色成像时的噪声问题。
尽管时间和空间滤波操作通常可以降低SPAD图像中的噪声,但在许多情况下,此类技术不太适合降低经去马赛克的SPAD图像中的噪声。例如,经由去马赛克添加到图像数据中的噪声通常会降低此类滤波操作的有效性,以改善使用SPAD捕获的彩色图像。
因此,所公开的技术可以通过对使用其上安置有颜色滤波器的SPAD捕获的原始图像数据执行滤波操作(例如,时间滤波和/或空间滤波)来促进降低使用SPAD采集的彩色图像中的噪声。根据本公开,对原始图像数据进行滤波以生成经滤波的图像,并且随后对经滤波的图像(而不是对原始图像数据)执行去马赛克。通过在一个或多个滤波操作之后执行去马赛克,本公开的实施例避免在执行滤波操作之前向原始图像数据进一步添加噪声(例如,作为去马赛克的结果),从而提高滤波操作所带来的好处并改进使用SPAD的彩色图像采集。
所公开的实施例还扩展到以考虑与SPAD传感器的不同SPAD像素相关联的不同颜色滤波器的方式执行滤波操作(例如,时间和/或空间滤波)。例如,如上所述,时间滤波可以包括对齐连续采集的图像帧以及对对齐的图像像素一起进行滤波以生成最终图像。然而,对于经去马赛克的图像,一起滤波的不同图像像素可能与不同的颜色通道相关联(例如,其中大量运动与连续采集的图像相关联),这可能会扭曲输出图像内的颜色和/或强度。此外,空间滤波可能导致不同颜色通道的相邻像素被一起被滤波,这可能会扭曲输出图像内的颜色和/或强度。
为了解决这些问题,可以对使用颜色滤波SPAD捕获的原始图像数据进行解复用,以将图像数据分离成与由SPAD的颜色滤波器表示的不同颜色通道相关联的单独图像。然后可以对与不同颜色通道相关联的单独图像执行单独的滤波操作(例如,时间和/或空间滤波操作),并且在滤波之后,单独的图像可以被重新组合(例如,复用)成单个图像并且随后被去马赛克以提供最终彩色图像。
刚刚描述了所公开的实施例的各种高级别特征和益处中的一些,现在将注意力转向图1至图22。这些图示出了与所公开的实施例相关的各种概念表示、架构、方法和支持图示。
用于SPAD图像中的暗电流补偿的示例性***和技术
现在关注图1,图1示出了示例性***100,其可以包括或用于实现一个或多个所公开的实施例。图1将***100描绘为头戴式显示器(HMD),其被配置为安置在用户的头部上方以显示供用户的眼睛观看的虚拟内容。这样的HMD可以包括增强现实(AR)***、虚拟现实(VR)***和/或任何其他类型的HMD。尽管本公开在至少一些方面集中于被实现为HMD的***100,但是应当注意,本文描述的技术可以使用其他类型的***/设备来实施,没有限制。
图1示出了***100的各种示例性组件。例如,图1示出了其中***包括处理器102、存储装置104、传感器110、I/O***116和通信***118的一种实施方式。尽管图1将***100示为包括特定组件,但是鉴于本公开,人们将理解,***100可以包括任意数量的附加或替代组件。
处理器102可以包括一组或多组电子电路,其包括任意数量的逻辑单元、寄存器和/或控制单元以促进计算机可读指令(例如,形成计算机程序的指令)的执行。这样的计算机可读指令可以被存储在存储装置104之内。存储装置104可以包括物理***存储器并且可以是易失性的、非易失性的或其某种组合。此外,存储装置104可以包括本地存储装置、远程存储装置(例如,经由通信***116或其他方式可访问的)或其某种组合。下文将提供与处理器(例如,处理器102)和计算机存储介质(例如,存储装置104)相关的附加细节。
在一些实施方式中,处理器102可以包括或可配置为执行软件和/或硬件组件的任何组合,所述软件和/或硬件组件可操作以促进使用机器学习模型或其他基于人工智能的结构/架构的处理。例如,处理器102可以包括和/或利用可操作以执行以下列形式配置的功能块和/或处理层的硬件组件或计算机可执行指令:作为非限制性示例,单层神经网络、前向反馈神经网络、径向基函数网络、深度前向反馈网络、循环神经网络、长短期记忆(LSTM)网络、门控循环单元、自编码器神经网络、变分自编码器、去噪自编码器、稀疏自编码器、马尔可夫链、霍普菲尔德(Hopfield)神经网络、玻尔兹曼机网络、受限玻尔兹曼机网络、深度置信网络、深度卷积网络(或卷积神经网络)、反卷积神经网络、深度卷积逆向图形网络、生成式对抗网络、液态状态机、极限学习机、回声状态网络、深度残差网络、科霍宁(Kohonen)网络、支持向量机、神经图灵机和/或其他。
如将更详细地描述的,处理器102可以被配置为执行存储在存储装置104内的指令106以执行与使用SPAD阵列的成像相关联的某些动作。这些动作可以至少部分依赖于以易失性或非易失性方式存储在存储装置104上的数据108(例如,雪崩事件计数或跟踪等)。
在一些情况下,动作可以至少部分依赖于从远程***120接收数据的通信***118,远程***120可以包括例如单独的***或计算设备、传感器和/或其他。通信***120可以包括可操作以促进***上组件/设备之间和/或与***外组件/设备之间的通信的软件或硬件组件的任意组合。例如,通信***120可以包括端口、总线或用于与其他设备/组件通信的其他物理连接装置。另外地或替代地,通信***120可包括可操作以通过任何合适的通信信道(例如,作为非限制性示例,蓝牙、超宽带、WLAN、红外通信和/或其他)与外部***和/或设备无线通信的***/组件。
图1示出了***100可以包括传感器110或与传感器110通信。传感器110可以包括用于捕获或测量表示可感知现象的数据的任何设备。作为非限制性示例,传感器110可以包括一个或多个图像传感器、麦克风、温度计、气压计、磁力计、加速计、陀螺仪和/或其他。
图1还示出了传感器110包括SPAD阵列112。如图1所示,SPAD阵列112包括SPAD像素122的布置,每个SPAD像素122被配置为响应于感测到光子而促进雪崩事件,如上文所描述的。SPAD阵列112可以在***100(例如,MR HMD)上实施以促进用于各种目的的图像捕获(例如,促进计算机视觉任务、直通图像和/或其他)。
图1还示出了传感器110包括惯性测量单元114(IMU 114)。IMU 114可以包括任意数量的加速计、陀螺仪和/或磁力计,用于当***在物理空间内移动时捕获与***100相关联的运动数据。运动数据可以包括或用于生成姿势数据,姿势数据可以描述***100的位置和/或取向(例如,6自由度姿势)和/或位置变化(例如,速度和/或加速度)和/或取向变化(例如,角速度和/或角加速度)。
此外,图1示出了***100可以包括I/O***116或与I/O***116通信。I/O***116可以包括任何类型的输入或输出设备,例如,作为非限制性示例,触摸屏、鼠标、键盘、控制器和/或其他,没有限制。例如,I/O***116可以包括显示***,该显示***可以包括任意数量的显示面板、光学器件、激光扫描显示组件和/或其他组件。
现在关注图2,图2示出了使用头戴式显示器202(HMD 202)的单光子雪崩二极管(SPAD)阵列在低光环境208中捕获对象206(例如,桌子)的图像帧210的示例。HMD 202至少在一些方面对应于上文公开的***100。例如,HMD 202包括SPAD阵列(例如,SPAD阵列112),其包括被配置用于光子检测以捕获图像的SPAD像素。在图2所示的示例中,HMD 202在低光环境208中捕获对象206的图像帧210的同时根据姿势204而定位。可以利用HMD 202的传感器(例如,IMU 114、便于同时定位与建图(SLAM)的相机等)来跟踪或测量姿势204。
图2示出了图像帧210包括描绘对象206的噪声表示的图像数据212。在一些情况下,当在低光条件(例如,约1毫勒克斯或以下)下成像时,由于在用于捕获图像帧210的帧捕获时间段内由SPAD像素检测到的光子数量较少,因此发生这种情况。图2还将图像帧210示为包括暗计数214,其被描绘为散布在整个图像帧210中的高频噪声。如上所述,暗计数214可以由SPAD像素中出现的暗电流产生。以下讨论涉及可以用于提供SPAD图像中的对象206的改进表示的各种技术(例如,通过降低描绘对象206的图像数据212中的噪声以及通过补偿暗计数214)。
图3示出了使用由HMD的SPAD阵列捕获的连续捕获的图像帧来生成经时间滤波的图像的示例。具体地,图3示出了图像帧210(及其图像数据212和暗计数214),以及附加图像帧302和306(例如,由HMD 202捕获的)。附加图像帧302和306中的每一个图像帧包括描绘对象206的图像数据(即,分别地,图像数据304和308)并且包括暗计数。图3还指示不同的图像帧210、302和306是在不同的时间点捕获的。具体地,图3指示图像帧302在时间点310被捕获,图像帧306在时间点312被捕获,并且图像帧210在时间点314被捕获。在本示例中,时间点310在时间上在时间点312和314之前,并且时间点312在时间上在时间点314之前。
如上所述,可以对连续捕获的图像帧的图像数据可以进行组合来形成合成图像,以促进在图像帧内捕获的对象的充分曝光(例如,特别是在低光条件下)。因此,图3示出了对图像帧302、306和210执行的时间滤波316。时间滤波316包括对不同图像帧302、306和210的相应图像像素进行组合以生成输出图像(即,经时间滤波的图像318)的像素值。不同图像帧中的“相应图像像素”是捕获被捕获环境的相同部分的不同图像帧的图像像素。
可以对不同图像帧302、306和210的相应图像像素以各种方式进行组合或合成,例如通过求和、求平均(例如,加权平均)、阿尔法混合和/或其他,并且对相应图像像素进行组合的方式/参数对于不同的像素区域可以不同和/或可以基于各种因素(例如,信号强度、运动量、在捕获的场景中检测到的运动等)动态地确定。
在一些情况下,图像帧302、306和210从彼此至少稍微不同的姿势捕获对象206。例如,HMD 202可以从与姿势204和/或彼此至少稍微不同的姿势捕获图像帧302和306。因此,在一些情况下,为了对齐不同图像帧302、306、210的相应像素,时间滤波316可以利用运动数据324,运动数据324可以包括或用于生成描述在捕获图像帧302、306和210期间HMD 202的位置和/或取向(例如,6自由度姿势)和/或位置变化(例如,速度和/或加速度)和/或取向变化(例如,角速度和/或角加速度)。
运动数据324可以用于将图像帧302、306和210彼此对齐。例如,***可以使用运动数据324将图像帧302和306与图像帧210的姿势204对齐,从而生成在空间上彼此对齐的对齐图像帧(例如,看起来好像它们都是从具有相同捕获视角的姿势204捕获到的)。就此而言,时间滤波316可以包括运动补偿时间滤波。
在一些情况下,时间滤波316另外地或替代地利用光流估计来对齐图像帧302、306和210,以促进图像合成以生成合成图像(即,经时间滤波的图像318)。例如,在一些情况下,***对连续捕获的图像帧进行下采样并执行光流分析以获得用于对齐图像帧的像素的向量。此外,虽然本公开在至少一些方面集中于利用时间上在与目标时间点相关联的图像帧之前的图像帧来生成与目标时间点相关联的合成图像的时间滤波操作,但时间滤波操作可以另外地或替代地利用时间上在与目标时间点相关联的图像帧之后的至少一些图像帧来生成与目标时间点相关联的合成图像。
图3示出了时间滤波316基于图像帧302、306和210的合成图像数据304、308和212(例如,在运动补偿之后)生成经时间滤波的图像318。在图3所示的示例中,经时间滤波的图像318包括图像数据320,图像数据320表示具有降低的噪声和改进的信号的对象206(例如,分别相对于图像帧302、306和210的图像数据304、308、212中的对象206的个体表示)。然而,图3示出了经时间滤波的图像318仍然包括暗计数322,其对图像质量产生负面影响。
因此,本公开的实施例提供了用于促进改进的SPAD图像的暗计数补偿技术。图4示出了使用SPAD传感器402来捕获暗电流图像帧406的示例。在本示例中,SPAD传感器402是HMD 202的一部分并且包括具有多个SPAD像素的SPAD阵列。图4示出了遮挡或遮蔽SPAD传感器402的SPAD像素的盖子404。盖子404可以包括阻挡任何期望波长范围(例如,可见光谱、近IR光谱、IR光谱和/或其他)内的光的任何材料或设备。
图4示出了其中暗电流图像帧406是在盖子404被定位成防止光子到达SPAD传感器402的SPAD阵列的SPAD像素的情况下捕获的示例。暗电流图像帧406可以作为为在用户应用中为使用HMD 202做准备而执行的校准步骤的一部分来获得(例如,在捕获图像帧302、306和/或210之前)。暗电流图像帧406可以包括由SPAD传感器402在被盖子404遮蔽的同时捕获的单个图像帧,或者暗电流图像帧406可以基于SPAD传感器402在被盖子404遮蔽的同时捕获的任意数量的图像帧来生成。例如,暗电流图像帧406可以通过对由SPAD传感器402在被盖子404阻挡的同时捕获的任意数量的图像帧的每像素强度值进行时间平均来生成。
从图4明显看出,暗电流图像帧406包括暗计数,因此包括指示SPAD传感器402的哪些SPAD像素与检测雪崩事件相关联而不曝光于光子的数据。该信息可以用于补偿运行时捕获的图像帧中的暗电流。
图5示出了使用暗电流图像帧来生成经暗电流补偿的图像的示例。具体地,图5示出了被提供作为减去502的输入的(上文参考图3讨论的)经时间滤波的图像318和暗电流图像帧406。减去502可以包括在每个像素的基础上从经时间滤波的图像318的强度值中减去暗电流图像帧406的强度值。图5示出了作为减去502的输出提供的经暗电流补偿的图像504。从图5明显看出,由于基于暗电流图像帧406的减去502,经暗电流补偿的图像504基本上忽略了经时间滤波的图像318中存在的暗计数。因此,可以改善暗电流在SPAD图像、特别是在低光条件下捕获的SPAD图像中的影响。
图2-图5集中于暗电流补偿的简单示例,该示例利用在受控条件下捕获的暗电流图像帧(例如,使用截止滤波器模糊SPAD传感器的SPAD像素)。然而,在一些情况下,捕获暗电流图像帧的同时存在的环境条件不同于在运行时捕获SPAD图像的同时存在的环境条件。由于暗电流带来的图像噪声的严重程度可能随环境条件(例如温度)而变化,因此暗电流图像帧捕获条件和运行时图像帧捕获条件之间的差异可能会导致***对SPAD图像中的暗计数补偿不足或过度补偿。
因此,本公开的至少一些实施方式考虑了暗电流图像帧捕获条件和运行时图像帧捕获条件之间的差异。图6示出了SPAD传感器602,其对应于图4的SPAD传感器402。SPAD传感器602类似地被盖子604遮蔽,盖子604防止光子到达SPAD传感器602的SPAD像素。图6示出了在被盖子604阻挡的同时(例如,在校准期间)使用SPAD传感器602捕获的多个不同的暗电流图像帧606、608和610。图6示出了不同的暗电流图像帧606、608、610中的每一个暗电流图像帧与不同的温度值(或温度值的范围)相关联。例如,可以在不同的温度条件下捕获不同的暗电流图像帧,从而不同的暗电流图像可用于促进不同的运行时温度条件下的暗电流补偿。在图6所示的示例中,暗电流图像帧606与温度612相关联,暗电流图像帧608与温度614相关联,并且暗电流图像帧610与温度616相关联。
图7示出了使用基于运行时的温度条件选择的暗电流图像来生成经暗电流补偿的图像的示例。具体地,图7示出了经时间滤波的图像702,根据本示例,该图像702在上文讨论的低光环境208中捕获对象206并且由HMD 202根据上文参考图2-图3讨论的原理来捕获(例如,利用基于连续捕获的图像帧的时间滤波)。经时间滤波的图像702是在运行时采集的(例如,在捕获图6的暗电流图像帧之后)。
在图7的示例中,经时间滤波的图像702与温度704相关联,温度704可以对应于捕获用于生成经时间滤波的图像702的一个或多个图像帧而存在的环境温度和/或设备温度。在一些情况下,使用HMD 202的传感器(例如,传感器110)来捕获温度704。
图7还示出了上文参考图6讨论的暗电流图像帧606、608和610,以及它们各自的温度612、614和616。图7概念性地描绘了可以基于与在运行时获得的经时间滤波的图像702相关联的温度704来选择用于暗电流补偿的暗电流图像帧的***。例如,图7示出了在经时间滤波的图像702的温度704和暗电流图像帧610的温度616之间延伸的虚线,其指示***可以确定经时间滤波的图像702的温度704与暗电流图像帧610的温度616最相似(分别相对于其他可用暗电流图像帧606和608的温度612和614)。
基于该选择,图7示出了被提供作为减去706的输入的经时间滤波的图像702和暗电流图像帧610(其在功能上对应于上文参考图5讨论的减去502)。如图7所示,减去706提供经暗电流补偿的图像708,其基本上忽略了经时间滤波的图像中存在的暗计数(例如,使用暗电流图像帧610将它们减去)。因此,***可以基于测量的运行时温度从可用的暗电流图像帧(每个暗电流图像帧与相应的温度或温度范围相关联)中智能地选择。
尽管前述示例集中于使用温度作为选择暗电流图像帧以用于从经时间滤波的图像中减去暗计数的基础,但是在一些情况下,温度可以用于生成经缩放或内插的暗电流图像以促进暗电流补偿。例如,在一些情况下,运行时温度不完全匹配与先前捕获的暗电流图像帧相关联的温度值的特定范围,或不在该特定范围内。为了适应这种情况,运行时温度以及与暗电流图像帧相关联的一个或多个温度可以用于生成暗电流因子,暗电流因子可以包括运行时温度与暗电流图像帧温度的比率(例如,当运行时温度为30℃并且与暗电流图像帧相关联的最接近温度为25℃时,暗电流因子可以是1.2)。然后***可以使用暗电流因子来生成经缩放的暗电流图像(例如,通过将暗电流因子应用于最接近温度的暗电流图像帧的每像素强度值)并且使用经缩放的暗电流图像帧来促进暗电流补偿(例如,经由如上文讨论的减去)。同样地,与运行时图像和一个或多个暗电流图像帧相关联的温度值可以用于生成经内插的暗电流图像帧或经外推的暗电流图像帧以用于暗电流补偿(例如,其中运行时温度位于与不同暗电流图像相关联的两个温度值之间)。
因此,温度可以用作用于选择或生成暗电流图像帧以用于促进暗电流补偿的因子(例如,“暗电流因子”)。用于选择或生成暗电流图像帧以促进暗电流补偿的附加或替代暗电流因子在本公开的范围内。在一些实施方式中,可以以对于显式温度测量不可知的方式选择或生成暗电流图像帧,这可以有利地消除对运行时温度测量/传感器的需要。
图8示出了示例性SPAD传感器802,其可以是HMD 202的一部分并且可以在至少一些方面对应于上文所讨论的SPAD传感器602、402。例如,SPAD传感器802类似地被盖子804遮挡以防止光子在捕获暗电流图像帧806的同时(例如,在校准步骤期间)到达SPAD传感器802的SPAD像素。暗电流图像帧806包括暗计数,类似于上文讨论的暗电流图像帧。
图8所示的示例概念性地描绘了捕获暗电流图像帧806的一部分的、SPAD传感器802的SPAD像素的未曝光区域808(由定义暗电流图像帧806的外边界部分的虚线指示)。尽管在捕获暗电流图像帧806期间,SPAD传感器802的所有SPAD像素都被盖子804覆盖,但是在运行时捕获图像帧的同时SPAD像素的未曝光区域808也被遮蔽。例如,图8示出了盖子812的示例性表示,盖子812可以在运行时使用以防止光子到达SPAD传感器802的SPAD像素的未曝光区域808。盖子812的特定结构和/或配置仅作为示例提供,并且盖子可以采取任何形式并被安置在SPAD传感器802的任何期望部分处以防止光子到达SPAD像素的未曝光区域808。
从图8明显看出,未曝光区域808内的至少一些SPAD像素检测暗电流图像帧806的暗计数,而不检测来自任何捕获的环境的光子计数。在一些情况下,在运行时使用盖子812的情况下,未曝光区域808内的SPAD像素继续检测运行时图像的暗计数,而不检测来自任何捕获的环境的光子计数。如下文将更详细描述的,可以利用在校准期间(例如,在捕获暗电流图像帧806的同时)和在运行时期间在SPAD像素的未曝光区域808内检测到的暗计数以促进暗电流补偿(不依赖于显式温度测量)。
图9示出了运行时的SPAD传感器802,其中盖子812被安置在SPAD传感器802上以防止光子到达未曝光区域808的SPAD像素。图9示出了从SPAD传感器802在运行时捕获的图像帧生成的示例性经时间滤波的图像902。如图9所示,经时间滤波的图像902包括使用未曝光区域808内的SPAD像素采集的图像数据(也经由与经时间滤波的图像902相关联的虚线框来标记)。在图9所示的示例中,由未曝光区域808内的SPAD像素在运行时检测到的雪崩事件(例如,暗计数)的数量被用来确定暗电流值904。暗电流值904可以包括由未曝光区域808内的SPAD像素在运行时检测到的暗计数的任何量化。例如,暗电流值904可以包括未曝光区域808内的SPAD像素在运行时检测到的暗计数的总和、平均值或其他测量值。
图9类似地示出了基于在捕获暗电流图像帧806的同时由未曝光区域808内的SPAD像素检测到的暗计数检测到的暗电流值906(例如,在校准期间在未曝光区域808内检测到的暗计数的总和、平均值或其他测量值)。***可以利用基于运行时图像(例如,经时间滤波的图像)获得的暗电流值904和基于校准图像(例如,暗电流图像帧806)获得的暗电流值906来生成暗电流因子908。暗电流因子908可以包括暗电流值904与暗电流值906之间的差异或相似性的任何表示,例如暗电流值904与暗电流值906的比率。作为简化示例,在运行时暗电流值904包括平均强度2并且暗电流值906包括平均强度1的情况下,暗电流因子908可以是2。
如上所述,运行时捕获的图像中存在的暗电流(以及由暗计数产生的噪声)的量可以取决于运行时的环境条件(例如,温度)。因此,暗电流值904和暗电流因子908可以取决于运行时的环境条件。因此,暗电流因子908可以用于对先前捕获的暗电流图像帧进行缩放以考虑运行时的环境条件(例如,用于捕获经时间滤波的图像902而存在的环境条件)。图9描绘了经缩放的暗电流图像帧910,其可以通过将暗电流因子908应用于先前捕获的暗电流图像帧(例如,暗电流图像帧806)来生成。例如,暗电流因子908可以乘以与暗电流图像帧相关联的每像素强度值,以生成经缩放的暗电流图像帧910的像素强度值。
如图9所示,经缩放的暗电流图像帧910和经时间滤波的图像902可以用作减去912的输入以生成经暗电流补偿的图像914。减去912一般对应于上文讨论的减去操作502和706,并且在图9所示的示例中,经暗电流补偿的图像914基本上忽略了与经时间滤波的图像902相关联的暗计数噪声。
可以针对整个未曝光区域(例如,未曝光区域808)确定暗电流值和/或暗电流因子,或者可以针对未曝光区域的不同像素子集(例如,未曝光区域的SPAD像素的行、列和/或块)确定多个暗电流值和/或暗电流因子。因此,可以使用不同的暗电流因子来缩放暗电流图像帧的不同区域,以生成经缩放的暗电流图像帧。就这一点而言,暗电流值、暗电流因子和/或暗电流图像帧可以包括多个组成分量或区域或者与多个组成分量或区域相关联。
尽管前述示例在至少一些方面集中于形成SPAD传感器的SPAD像素的外边界部分的SPAD像素的未曝光区域808,但是其他配置也在本公开的范围内。未曝光区域可以包括任何合适的尺寸和/或形状。此外,鉴于本公开,人们将理解,可以从输出图像(例如,显示给一个或多个用户的图像)中忽略或排除未曝光区域。
如本文所述,尽管暗电流补偿可以有效地从SPAD图像中去除暗计数噪声,但是由暗计数产生的至少一些噪声可能保留在经暗电流补偿的图像中。图10示出了可以对经暗电流补偿的图像执行以进一步改善暗计数噪声的示例性附加操作。具体地,图10示出了可以对经暗电流补偿的图像914执行的像素合并(binning)1002和中值滤波1004。
像素合并1002可以包括将原始图像(例如,经暗电流补偿的图像914)中的像素部分减少为输出图像中的单个像素。例如,在一些情况下,输出图像中的每个像素都由原始图像的像素定义:
pd(m,n)=p(Km,Kn)
其中pd是经下采样的图像中的像素,p是原始图像中的像素,K是缩放因子,m是水平轴中的像素坐标,并且n是垂直轴中的像素坐标。在一些情况下,像素合并1002还包括用于定义输出图像的像素的预滤波功能,例如用于防止混叠伪影的抗混叠预滤波。
在一些实施方式中,像素合并1002利用平均滤波器来基于原始图像中的像素部分的平均值来定义输出图像的像素。在沿每个轴按2倍进行像素合并的一个示例中,输出图像中的每个像素由原始图像中2×2像素部分的平均值定义:
其中pd是经下采样的图像中的像素,p是原始图像中的像素,m是水平轴中的像素坐标,并且n是垂直轴中的像素坐标。像素合并1002可以包括迭代下采样操作,所述下采样操作被迭代地执行以获得具有期望的最终图像分辨率的输出图像。
中值滤波1004可以包括利用相邻像素的中间像素值来修改每个像素值(例如,在以每个被修改的像素为中心的3×3像素窗口内)。因为暗计数通常导致高频噪声,所以中值滤波1004可以平滑或去除在本文讨论的暗电流补偿操作之后剩余的暗计数。
在一些实施方式中,在不使用暗电流图像帧的情况下执行暗电流补偿。例如,图11示出了上文参考图9讨论的经时间滤波的图像902,其包括由SPAD像素的未曝光区域808捕获的图像数据。图11还示出了基于由未曝光区域808中的SPAD像素在运行时检测到的雪崩事件而获得的暗电流值904。图11示出了作为减去1102的输入提供的暗电流值904和经时间滤波的图像902以生成经暗电流补偿的图像1108,指示可以直接从经时间滤波的图像902的强度值中减去暗电流值904,而不首先使用暗电流值904来修改暗电流图像帧以促进减去。
可以从经时间滤波的图像902的所有强度值中减去暗电流值904,或者在一些情况下,减去可以针对由已知生成暗电流的SPAD像素获得的强度值(例如,基于先前的校准操作)。例如,图11示出了暗电流图像帧1104,其可以用于确定被确定为生成暗电流的SPAD像素的暗电流像素坐标1106。这些暗电流像素坐标1106可以用于仅从由已知生成暗电流的SPAD像素获得的强度值中减去暗电流值904,同时避免从其他强度值中减去暗电流值904。
经暗电流补偿的图像可以用于各种目的。例如,在一些实施方式中,HMD 202(或另一***)利用经暗电流补偿的图像1108来促进立体深度计算、同时定位与建图、对象跟踪和/或其他。例如,HMD可以生成经视差校正经暗电流补偿的图像(例如,通过使用深度信息执行视差重投影,其本身可以使用经暗电流补偿的图像来生成)并显示经视差校正经暗电流补偿的图像以利于直通成像。
用于SPAD图像中的暗电流补偿的示例性方法
下面的讨论现在涉及可以由所公开的***执行的多种方法和方法动作。尽管方法动作是按一定顺序讨论的,并且在流程图中说明为按特定顺序发生的,但除非特别说明,否则不需要特定的顺序,或者因为一个动作依赖于在执行该动作之前完成的另一个动作而需要特定的顺序。人们将理解,本公开的某些实施例可以省略本文描述的一项或多项动作。
图12和图13分别示出了描绘与补偿SPAD图像中的暗电流相关联的动作的示例性流程图1200和1300。对流程图中表示的各种动作的讨论包括对参照图1更详细描述的各种硬件组件的引用。
图12的流程图1200的动作1202包括利用SPAD阵列来捕获图像帧。在一些情况下,动作1202由利用处理器102、存储装置104、传感器110(例如,SPAD阵列112)、输入/输出***116、通信***118和/或其他组件的***执行。在一些实施方式中,SPAD阵列的多个SPAD像素包括在捕获暗电流图像帧期间和在捕获图像帧期间被覆盖的多个未曝光的SPAD像素。
流程图1200的动作1204包括:通过使用图像帧和先前图像帧执行时间滤波操作来生成经时间滤波的图像。在一些情况下,动作1204由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。在一些实施方式中,先前图像帧由SPAD阵列在时间上在与动作1202的图像帧相关联的时间点之前的时间点捕获。此外,在一些情况下,时间滤波操作包括(i)通过使用与SPAD阵列相关联的运动数据在空间上将先前图像帧与该图像帧对齐来生成对齐的先前图像帧;以及(ii)对该图像帧与对齐的先前图像帧进行合成。在一些实施方式中,时间滤波操作基于根据先前图像帧和该图像帧生成的光流估计。
流程图1200的动作1206包括:获得指示与图像帧相关联的暗电流的量的暗电流因子。在一些情况下,动作1206由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。在一些实施方式中,暗电流因子基于与图像帧的捕获相关联地检测到的运行时温度,使得从多个暗电流图像帧中选择暗电流图像帧基于运行时温度。在一些实施方式中,暗电流因子基于(i)在捕获暗电流图像帧期间由多个未曝光的SPAD像素检测到的雪崩事件的数量,以及(ii)在捕获图像帧期间由多个未曝光的SPAD像素检测到的雪崩事件的数量。例如,可以通过比较(i)在捕获暗电流图像帧期间由多个未曝光的SPAD像素检测到的平均强度和(ii)在捕获图像帧期间由多个未曝光的SPAD像素检测到的平均强度。在一些情况下,暗电流因子包括多个暗电流因子分量。例如,在一些情况下,每个暗电流因子分量与多个未曝光SPAD像素中的未曝光SPAD像素的相应子集相关联。
流程图1200的动作1208包括:获得暗电流图像帧。在一些情况下,动作1208由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。在一些情况下,暗电流图像帧包括指示多个SPAD像素中的检测到雪崩事件而没有检测到相应光子的一个或多个SPAD像素的数据。在一些实施方式中,暗电流图像帧是在SPAD阵列被覆盖以防止光子到达SPAD阵列的同时捕获的多个暗电流图像帧之一。在一些实施方式中,基于动作1206的暗电流因子从多个暗电流图像帧中选择暗电流图像帧。在一些实施方式中,多个暗电流图像帧中的每一个暗电流图像帧与不同的温度或温度范围相关联。在一些情况下,通过基于运行时温度和多个暗电流图像帧中的至少两个暗电流图像帧生成经内插的暗电流图像帧来获得暗电流图像帧。
流程图1200的动作1210包括:通过基于暗电流图像帧对经时间滤波的图像执行减去操作来生成经暗电流补偿的图像。在一些情况下,动作1210由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。在一些实施方式中,减去操作包括(i)通过使用暗电流因子修改暗电流图像帧来生成经缩放的暗电流图像帧,(ii)生成经缩放的暗电流图像帧包括:使用多个暗电流因子分量中的每一个暗电流因子分量来修改暗电流图像帧的相应区域,以及(iii)从图像帧中减去经缩放的暗电流图像帧。
流程图1200的动作1212包括:对经暗电流补偿的图像执行像素合并操作。在一些情况下,动作1212由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。
流程图1200的动作1214包括:将中值滤波器应用于经暗电流补偿的图像。在一些情况下,动作1214由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。
流程图1200的动作1216包括:生成经视差校正经暗电流补偿的图像。在一些情况下,动作1216由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。
流程图1200的动作1218包括:在显示器上显示经视差校正的彩色图像。在一些情况下,动作1218由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。
图13的流程图1300的动作1302包括:在从多个SPAD像素中遮蔽多个未曝光的SPAD像素的同时利用SPAD阵列捕获图像帧。在一些情况下,动作1302由利用处理器102、存储装置104、传感器110(例如,SPAD阵列112)、输入/输出***116、通信***118和/或其他组件的***执行。
流程图1300的动作1304包括:识别图像帧中的与多个未曝光的SPAD像素相对应的区域,多个未曝光的SPAD像素在捕获图像帧期间被遮蔽以防止光子到达多个未曝光的SPAD像素。在一些情况下,动作1304由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。
流程图1300的动作1306包括:基于在捕获暗电流图像帧期间由多个未曝光的SPAD像素检测到的光子的数量来确定暗电流值。在一些情况下,动作1306由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。在一些情况下,暗电流值被确定为基于在捕获图像帧期间由多个未曝光的SPAD像素检测到的光子的数量的平均强度。
流程图1300的动作1308包括:通过基于暗电流值对图像帧执行减去操作来生成经暗电流补偿的图像。在一些情况下,动作1308由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。在一些实施方式中,减去操作包括:从多个SPAD像素中的被确定为基于先前执行的校准操作生成暗电流的一个或多个SPAD像素中减去暗电流值,同时避免从这多个SPAD像素中与这一个或多个SPAD像素分离的其他SPAD像素减去暗电流值。
用于使用SPAD来获得彩色图像的示例性***和技术
现在关注图14,其示出了SPAD阵列(例如,SPAD阵列112)的SPAD 1402的示例性实施方式。SPAD阵列可以包括任意数量的SPAD 1402,如图14中的省略号所示。在图14所示的示例中,SPAD各自包括被安置在其上(例如,SPAD 1402的光子感测部分上方)的相应颜色滤波器。图14示出了以拜耳模式安置在SPAD 1402上方的颜色滤波器,特别是具有对角放置的绿色滤波器1406和1408以及具有对角放置的红色滤波器1404和蓝色滤波器1410。该模式可以在SPAD阵列上重复以形成经颜色滤波的SPAD像素的马赛克。尽管本文公开的示例在至少一些方面集中于以拜耳模式布置的SPAD阵列的经颜色滤波SPAD 1402,但是其他模式也在本公开的范围内,例如作为非限制性示例,CYGM(青色、黄色、绿品红色)、RGBE(红色、绿色、蓝色、祖母绿)、Foveon X3(例如,垂直布置的红色、绿色、蓝色模式)、全色单元模式(例如,RGBW(红、绿、蓝、白)、CMYW(青色、品红色、黄色、白色)、富士(Fujifilm)EXR、富士X-Trans、四拜耳(Quad Bayer)))和/或其他。
图15示出了使用HMD的颜色滤波SPAD阵列在低光环境中捕获彩色对象的图像帧的示例。具体地,图15示出了HMD 1502,其在至少一些方面对应于上文描述的***100。例如,HMD可以包括SPAD阵列(例如,SPAD阵列112),其包括具有以拜耳模式布置的颜色滤波器的SPAD(例如,SPAD 1402)(例如,如图14所示)。在图15所示的示例中,HMD 1502在低光环境1512中捕获红色对象1506(例如,桌子)、绿色对象1508(例如,盒子)和蓝色对象1510(例如,罐子)的图像帧1514的同时根据姿势1504定位。可以利用HMD 1502的传感器(例如,IMU114、促进SLAM的相机等)来跟踪或测量姿势1504。
图15示出图像帧1514包括由HMD 1502的颜色滤波SPAD捕获的图像数据1516。在常规***下,图像帧1514的图像数据1516可以被去马赛克(例如,基于SPAD上的颜色滤波器的模式)以为每个SPAD像素(或由SPAD像素捕获的图像帧1514的图像像素)内插RGB颜色值来生成彩色图像。然而,从图15明显看出,图像帧1514的图像数据1516提供了所捕获的对象的噪声表示,这在一些情况下可能发生在低光条件下(例如,约1毫勒克斯或以下)成像时,这是因为在用于捕获图像帧1514的帧捕获时间段内由SPAD像素检测到的光子数量较少。如上所述,对包括显著噪声的图像数据执行去马赛克可能会导致彩色图像质量较差。以下讨论涉及可以用于降低使用颜色滤波SPAD捕获的SPAD图像中的噪声以准备执行去马赛克以获得彩色图像的各种技术。
图16示出了用于使用SPAD阵列来获得彩色图像的示例性处理流水线。具体地,图16示出了其中执行图像捕获1602以生成原始图像1604(例如,类似于图像帧1514)的示例性流水线。图16还示出了执行以生成经滤波的图像1608的滤波1606。滤波1606可以包括执行时间滤波和/或空间滤波。下文将提供关于用于生成经滤波的图像以准备执行去马赛克的滤波的附加细节。在一些情况下,用于获得彩色图像的流水线包括暗电流补偿1610以生成经暗电流补偿的图像1612(例如,如上文参考图2-图13所讨论的)。
该流水线还可以包括伽马校正1614以生成经伽马校正的图像1616。伽马校正1614可以包括将输入值(例如,强度值)提高到伽马值的幂(并将输入值乘以常数)以提供输出值。伽马校正1614可以针对人类感知光和颜色的非线性方式来优化图像。伽马校正1614可以具有使暗像素显得更暗并且使亮像素显得更亮的效果。因此,如果过早执行伽马校正,则可能会降低由诸如时间滤波之类的其他操作提供的益处。因此,伽马校正1614可以在滤波1606之后但在去马赛克之前执行。
图16还示出了在用于生成彩色图像1620的流水线的其他操作之后执行的去马赛克1618。如上所述,去马赛克可以包括对图像帧(或捕获图像帧的SPAD阵列)的每个图像像素(或SPAD像素)内插或外推颜色值(例如,RGB值)。与为每个拜耳像素块(例如,每个RGB像素的2×2集合)生成单个颜色值以生成彩色图像(从而导致图像分辨率损失)相比,去马赛克可以提供RGB彩色图像而不损失图像分辨率。然而,如上所述,去马赛克可能会增加或增强图像噪声,特别是当对已经包括噪声的图像数据执行时。因此,图16的流水线示出了在滤波1606和其他图像帧准备操作之后执行去马赛克1618。
应当注意,在一些实施例中,执行少于图16所示的流水线的所有操作来生成彩色图像。例如,在一些情况下,不执行暗电流补偿1610和/或伽马校正1614来生成彩色图像1620。
关注图17-图20的讨论涉及可以对原始图像执行的滤波1606,以为生成彩色图像1620的去马赛克1618做准备。如上所述,滤波1606可以包括时间滤波和/或空间滤波。关注图17-图18C的讨论涉及时间滤波,而关注图19和图20的讨论涉及空间滤波。
图17示出了通过对使用颜色滤波SPAD阵列(例如,HMD 1502的颜色滤波SPAD阵列)连续捕获的图像帧执行时间滤波来生成经滤波的图像的示例。具体地,图17示出了图像帧1514(及其使用颜色滤波SPAD捕获的图像数据1516),以及附加图像帧1702(例如,由HMD1502捕获的)。附加图像帧1702包括描绘红色对象1506、绿色对象1508和蓝色对象1510的图像数据1704。类似于图像帧1514,图像帧1702可以包括由颜色滤波SPAD捕获的未对其执行去马赛克的原始图像。
图17还指示不同的图像帧1514和1702是在不同的时间点捕获的。具体地,图17指示图像帧1702是在时间点1706捕获的并且图像帧1514是在时间点1708捕获的。在本示例中,时间点1706在时间上在时间点1708之前。
如上所述,可以对连续捕获的图像帧的图像数据可以进行组合来形成合成图像,以促进在图像帧内捕获的对象的充分曝光(例如,特别是在低光条件下)。因此,图17示出了对图像帧1702和1514执行的时间滤波1710以生成经滤波的图像1714。时间滤波1710包括对不同图像帧1702和1514的相应图像像素进行组合以生成输出图像(即,经滤波的图像1714)的像素值。
如上所述,可以对不同图像帧1702和1514的相应图像像素以各种方式进行组合或合成,例如通过求和、求平均(例如,加权平均)、阿尔法混合和/或其他,并且对相应图像像素进行组合的方式/参数对于不同的像素区域可以不同和/或可以基于各种因素(例如,信号强度、运动量、在捕获的场景中检测到的运动等)动态地确定。
在一些情况下,图像帧1702和1514以彼此至少稍微不同的姿势捕获环境对象。例如,HMD 1502可以从与姿势1504至少稍微不同的姿势捕获图像帧1702。因此,在一些情况下,为了对齐不同图像帧1702和1514的相应像素,时间滤波1710可以利用运动数据1712,运动数据1712可以包括或用于生成描述在捕获图像帧1702和1514期间HMD 1502的位置和/或取向(例如,6自由度姿势)和/或位置变化(例如,速度和/或加速度)和/或取向变化(例如,角速度和/或角加速度)。
运动数据1712可以用于将图像帧1702和1514彼此对齐。例如,***可以使用运动数据1712将图像帧1702与图像帧1514的姿势1504对齐,从而生成在空间上彼此对齐的对齐图像帧(例如,看起来好像它们都是从具有相同捕获视角的姿势1504捕获到的)。就此而言,时间滤波1710可以包括运动补偿时间滤波。在一些情况下,时间滤波1710另外地或替代地利用光流估计来对齐图像帧1702和1514。
另外地或替代地,时间滤波1710可以利用使用图像帧1514和图像帧1702(即,先前图像帧)的联合双边滤波器1718(JBLF 1718)。例如,JBLF 1718可以利用图像帧1514作为引导图像以使输出的经滤波的图像1714处于图像帧1514的几何形状。举例来说,JBLF 1718可以利用三维内核(例如,3×3×2内核)来基于图像帧1514和1702二者中的相邻像素值来定义输出图像(例如,经滤波的图像1714)的每个像素值。像素窗口内的接近中心像素的像素值的相邻像素(例如,正在被分析以根据内核生成输出像素的当前像素)可以在计算输出图像(例如,经滤波的图像1714)的中心像素的像素值时被给予附加权重。例如,当中心像素是由经红色滤波的SPAD像素捕获的像素时,在计算中心像素的输出值时,JBLF 1718可以对(图像帧1702和1514二者中的)相邻的经红色滤波的SPAD像素的强度值给予较大的权重,并对相邻经绿色或蓝色滤波的SPAD像素的强度值给予较小的权重。以此方式,JBLF 1718可以用于以考虑SPAD的不同颜色通道的方式来合成图像帧1702和1514。尽管图17中未示出,但是JBLF 1718还可以利用后续时间点图像帧来生成经滤波的图像1714(例如,利用3×3×3内核)。
图17概念性地描绘了经滤波的图像1714的图像数据1716包括降低的噪声(例如,相对于图像帧1702和1514)。因此,经滤波的图像1714可以为经由去马赛克生成彩色图像提供优越的基础(例如,相对于图像帧1702和/或1514)。图17因此示出了对经滤波的图像1714执行以生成彩色图像的去马赛克1720(如上所述,可以在去马赛克1720之前对经滤波的图像1714执行附加操作,例如暗电流补偿、伽马校正等)。去马赛克1720可以利用***(例如,HMD 1502)的SPAD的颜色滤波器模式和使用经颜色滤波的SPAD像素获得的图像数据1716(即,强度值)来确定彩色图像1722的RGB数据1724。如图17中所描绘的,彩色图像1722利用它们各自的颜色描绘了环境的各个对象(并且相对于用作去马赛克1720的输入的经滤波的图像1714没有分辨率损失)。
在实施运动补偿时间滤波的一些实施方式中,可能出现混合像素。也就是说,当运动数据(例如,运动数据1712)用于对齐图像帧时,可能导致由与不同颜色通道(例如,红色像素和蓝色像素)相关联的SPAD捕获的一些图像像素彼此重叠。像素混合可能导致与不同颜色通道相关联的图像数据被合成以形成经滤波的图像,这可能降低时间滤波1710的输出。
因此,在一些实施方式中,对由与不同颜色滤波器相关联的SPAD捕获的图像数据执行单独的时间滤波操作。为了说明,图18A示出了对连续捕获的图像帧进行解复用以生成多个时间点的颜色特定图像帧的示例。具体地,图18A示出了在上文讨论的连续时间点1706和1708处捕获的图像帧1702和1514。图18A还示出了分别对图像帧1702和1514执行的解复用1810和1802。解复用1810和1802可以包括根据图像帧1702和1514中存在的单独通道来分离图像帧1702和1514。例如,根据本示例,用于捕获图像帧1702和1514的HMD 1502的SPAD1402包括包含(例如,以拜耳模式布置的)红色滤波器1404、绿色滤波器1406和蓝色滤波器1410的SPAD。因此,解复用1810和1802可以包括将图像帧1702和1514分离成相应的红色图像帧、绿色图像帧和蓝色图像帧。
图18A示出了由于对图像帧1702执行解复用1810而得到的红色图像帧1812、绿色图像帧1814和蓝色图像帧1816(例如,“经解复用的图像帧”)。类似地,图18A示出了由于对图像帧1514执行解复用1802而得到的红色图像帧1804、绿色图像帧1806和蓝色图像帧1808。由解复用1810和1802得到的单独的、颜色特定的图像帧包括表示通过单独的颜色滤波器检测到的强度值的图像数据。例如,红色图像帧1812和1804包括描绘红色对象1506并忽略绿色对象1508和蓝色对象1510的图像数据,绿色图像帧1814和1806包括描绘绿色对象1508并忽略红色对象1506和蓝色对象1510的图像数据,并且蓝色图像帧1816和1808包括描绘蓝色对象1510并忽略红色对象1506和绿色对象1508的图像数据。通过针对单独的颜色通道生成单独的经解复用的图像帧,可以以基本上避免像素混合的方式来执行时间滤波。
图18B示出了通过使用与不同时间点相关联的颜色特定图像帧执行时间滤波来生成经滤波的颜色特定图像帧的示例。具体地,图18B示出了执行时间滤波1818来合成(例如,从图像帧1702得到并与时间点1706相关联的)红色图像帧1812和(例如,从图像帧1514得到并与时间点1708相关联的)红色图像帧1804以生成经滤波的红色图像帧1820。图18B还示出了执行时间滤波1822来合成(例如,从图像帧1702得到并与时间点1706相关联的)绿色图像帧1814和(例如,从图像帧1514得到并与时间点1708相关联的)绿色图像帧1806以生成经滤波的绿色图像帧1824。类似地,图18B示出了执行时间滤波1826来合成(例如,从图像帧1702得到并与时间点1706相关联的)蓝色图像帧1816和(例如,从图像帧1514得到并与时间点1708相关联的)蓝色图像帧1808以生成经滤波的蓝色图像帧1828。
从图18B明显看出,经滤波的图像帧(例如,经滤波的红色图像帧1820、经滤波的绿色图像帧1824和经滤波的蓝色图像帧1828)包括具有降低的噪声的所捕获的对象的表示(例如,相对于红色图像帧1812、1804,绿色图像帧1814、1806或蓝色图像帧1816、1808中的所捕获的对象的个体表示)。噪声的降低可以以减轻时间滤波期间像素混合风险的方式来实现(例如,通过对捕获的图像帧进行解复用并执行每颜色通道时间滤波)。经滤波的图像帧可以被组合以形成组合的或合成的经滤波的图像,其然后可以用于去马赛克以形成彩色图像。
图18C示出了对经滤波的颜色特定图像帧进行复用以生成经滤波的图像的示例。具体地,图18C示出了用于对经滤波的红色图像帧1820、经滤波的绿色图像帧1824和经滤波的蓝色图像帧1828进行组合的复用1830。图18C示出了作为复用1830的输出的经滤波的图像1832。复用可以包括将经滤波的红色图像帧1820、经滤波的绿色图像帧1824和经滤波的蓝色图像帧1828的图像数据(例如,像素值)布置在单个图像中(例如,根据检测用于形成经滤波的颜色特定图像帧的图像帧的SPAD的拜耳模式或其他模式)。
因为经滤波的图像1832是使用经滤波的颜色特定图像帧(例如,经滤波的红色图像帧1820、经滤波的绿色图像帧1824和经滤波的蓝色图像帧1828)生成的,所以经滤波的图像1832还描绘了具有降低的噪声的所捕获的对象(例如,相对于红色图像帧1812、1804,绿色图像帧1814、1806或蓝色图像帧1816、1808中的所捕获的对象的个体表示)。因此,经滤波的图像1832可以提供用于执行去马赛克以形成彩色图像(例如,相对于由SPAD捕获的原始图像)的改进的基础。
图18C示出了使用经滤波的图像1832执行去马赛克1834以形成彩色图像1836。如上所述,去马赛克包括对输入图像(例如,经滤波的图像1832)的图像像素的RGB值进行内插或外推。因此,图18C示出了彩色图像的RGB数据1838,其使用RGB值来描绘彩色对象(例如,红色对象1506、绿色对象1508和蓝色对象1510)以允许用户在观看彩色图像1836时感知所捕获的对象的颜色。因此,本公开的实施方式可以以降低噪声的方式促进使用SPAD的彩色图像采集,从而允许在低光环境中捕获彩色图像。
如上文参考图16所指出的,在去马赛克1618之前执行以形成经滤波的图像1608的滤波1606可以另外地或替代地包括空间滤波。然而,许多常规的空间滤波器可能导致具有不同颜色滤波器的SPAD捕获的相邻图像数据被混合或滤波在一起(例如,简单的平均滤波器因此不太适合这种实施方式)。因此,本公开的技术包括考虑与不同颜色相关联的经复用的像素的空间滤波过程。
图19示出了通过在去马赛克之前对图像帧执行双边滤波来生成经滤波的图像的示例。具体地,图19示出了(例如,使用HMD 1502的颜色滤波SPAD 1402捕获的)图像帧1514及其图像数据1516。图19示出了对图像帧1514执行双边滤波1902以生成具有相应图像数据1906的经滤波的图像1904。双边滤波1902可以包括利用二维内核(例如,3×3内核),基于图像帧1514中的相邻像素值来定义输出图像(例如,经滤波的图像1904)的每个像素值。与上面讨论的JBLF类似,双边滤波1902可以向接近当前正在被确定的输出值的像素(例如,内核的中心像素)的值的相邻像素值给予附加权重。因此,当确定由红色滤波SPAD捕获的特定图像像素的输出值时,双边滤波1902可以给予附加权重,用于确定特定图像像素周围的像素窗口内与特定图像像素(例如,也由红色滤波SPAD捕获的像素)具有相似强度的像素的输出值。
双边滤波1902可以保留边缘同时降低噪声。因此,双边滤波1902可以提供各种益处,同时减轻经滤波的图像中的图像像素受到与不同颜色相关联的图像像素的影响的效果。因此,在去马赛克之前执行双边滤波1902可以提高用于生成彩色图像的经滤波的图像1904的质量。
以适应与相邻SPAD像素相关联的不同颜色滤波器的方式促进空间滤波的附加技术也在本公开的范围之内。例如,图20示出了对图像帧1514进行解复用以生成颜色特定图像帧(即,红色图像帧2004、绿色图像帧2006和蓝色图像帧2008)的示例。解复用2002通常对应于上文参考图18A讨论的解复用1810和1802。通过对图像帧1514进行解复用以生成与不同颜色通道相关联的颜色特定图像帧(例如,“经解复用的图像帧”),可以针对不同颜色通道单独地执行空间滤波操作,以防止空间滤波操作导致与不同颜色相关联的相邻像素混合在一起。
因此,图20示出了对红色图像帧2004执行空间滤波2010以生成经滤波的红色图像帧2012,对绿色图像帧2006执行空间滤波2014以生成经滤波的绿色图像帧2016,以及对蓝色图像帧2008执行空间滤波2018以生成经滤波的蓝色图像帧2020。空间滤波2010、2014和/或2018可以包括用于平滑噪声、保留边缘和/或以其他方式改进输入图像帧(例如,红色图像帧2004、绿色图像帧2006和蓝色图像帧2008)的各种操作。例如,空间滤波2010、2014和/或2018中的一个或多个空间滤波可以包括均值滤波器、高斯滤波器、阶次统计(orderstatistics)滤波器、中值滤波器、拉普拉斯滤波器、梯度滤波器和/或其他滤波器。此外,应用于不同颜色特定输入图像的空间滤波操作可以至少部分地彼此不同。
图20还示出了使用经滤波的红色图像帧2012、经滤波的绿色图像帧2016和经滤波的蓝色图像帧2020执行的复用2022以生成经滤波的图像2024。复用2022通常可以对应于上文参考图18C讨论的复用1830。经滤波的图像2024可以用作执行去马赛克或去马赛克之前的其他操作(例如,时间滤波、暗电流补偿、伽马校正等)的基础。此外,在一些实施方式中,对已经被时间滤波的图像执行与本文讨论的空间滤波相关的原理。
可以对经由去马赛克生成的彩色图像执行附加操作,例如重投影以生成经视差校正的彩色图像和/或在HMD的显示器上的呈现。
用于使用SPAD来获得彩色图像的示例性方法
图21和图22分别示出了描绘与使用SPAD来获得彩色图像相关联的操作的示例性流程图2100和2200。
图21的流程图2100的动作2102包括使用SPAD阵列来捕获图像帧。在一些情况下,动作2102由利用处理器102、存储装置104、传感器110(例如,包括经颜色滤波的SPAD像素1402的SPAD阵列112)、输入/输出***116、通信***118和/或其他组件的***执行。在一些实施方式中,覆盖多个SPAD像素的各个颜色滤波器以拜耳模式布置。
流程图2100的动作2104包括:通过使用图像帧和先前图像帧执行时间滤波操作来生成经滤波的图像。在一些情况下,动作2104由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。先前图像帧可以由SPAD阵列在时间上在与该图像帧相关联的时间点之前的时间点捕获。在一些情况下,先前图像帧包括未对其执行去马赛克的原始图像帧。此外,在一些情况下,执行时间滤波操作包括:(i)通过使用与SPAD阵列相关联的运动数据在空间上将先前图像帧与该图像帧对齐来生成对齐的先前图像帧;以及(ii)对该图像帧与对齐的先前图像帧进行合成。
在一些实施方式中,执行时间滤波操作包括:将联合双边滤波器应用于图像帧和先前图像帧。在一些实施方式中,执行时间滤波操作包括:将联合双边滤波器应用于图像帧和后续图像帧。后续图像帧是在时间上在与该图像帧相关联的时间点之后的时间点捕获的。
在一些情况下,执行时间滤波操作包括:(i)通过对图像帧进行解复用来生成多个经解复用的图像帧,其中多个经解复用的图像帧中的每一个经解复用的图像帧与相应颜色通道相关联;(ii)访问多个经解复用的先前图像帧,以及(iii)通过对于多个经解复用的图像帧中的每一个特定经解复用的图像帧进行以下操作来生成多个经时间滤波经解复用的图像帧:(a)通过使用与SPAD阵列相关联的运动数据将相应经解复用的先前图像帧与该特定经解复用的图像帧对齐来生成相应对齐的经解复用的先前图像帧;以及(b)对该特定经解复用的图像帧与相应对齐的经解复用的先前图像帧进行合成。多个经解复用的先前图像帧可以通过对先前图像帧进行解复用而生成,并且多个经解复用的先前图像帧可以包括:对于多个经解复用的图像帧中的每一个特定经解复用的图像帧,与和该特定经解复用的图像帧相同的颜色通道相关联的相应经解复用的先前图像帧。
在一些实施方式中,生成经滤波的图像包括:对多个经时间滤波经解复用的图像帧进行复用。
流程图2100的动作2106包括:在对经滤波的图像进行去马赛克之前对经滤波的图像执行伽玛校正操作。在一些情况下,动作2106由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。
流程图2100的动作2108包括:在执行了时间滤波操作之后,通过对经滤波的图像进行去马赛克来生成彩色图像。在一些情况下,动作2108由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。
流程图2100的动作2110包括:生成经视差校正的彩色图像。在一些情况下,动作2110由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。
流程图2100的动作2112包括:在显示器上显示经视差校正的彩色图像。在一些情况下,动作2112由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。
图22的流程图2100的动作2202包括使用SPAD阵列来捕获图像帧。在一些情况下,动作2202由利用处理器102、存储装置104、传感器110(例如,包括经颜色滤波的SPAD像素1402的SPAD阵列112)、输入/输出***116、通信***118和/或其他组件的***执行。在一些情况下,覆盖多个SPAD像素的各个颜色滤波器以拜耳模式布置。
流程图2100的动作2204包括:通过对图像帧执行空间滤波操作来生成经滤波的图像。在一些情况下,动作2204由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。在一些情况下,执行空间滤波操作包括:对图像帧应用双边滤波。在一些情况下,执行空间滤波操作包括:(i)通过对图像帧进行解复用来生成多个经解复用的图像帧,其中多个经解复用的图像帧中的每一个经解复用的图像帧与相应颜色通道相关联;(ii)通过对多个经解复用的图像帧中的每一个经解复用的图像帧应用相应空间滤波操作来生成多个经空间滤波经解复用的图像帧。相应的空间滤波操作可以包括均值滤波器、高斯滤波器、阶次统计滤波器、中值滤波器、拉普拉斯滤波器或梯度滤波器中的一项或多项。在一些情况下,生成经滤波的图像包括:对多个经空间滤波经解复用的图像帧进行复用。
流程图2100的动作2206包括:在执行了空间滤波操作之后,通过对经滤波的图像进行去马赛克来生成彩色图像。在一些情况下,动作2206由利用处理器102、存储装置104、传感器110、输入/输出***116、通信***118和/或其他组件的***执行。
所公开的实施例可以包括或利用包括计算机硬件的专用或通用计算机,如下文更详细讨论的。所公开的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这种计算机可读介质可以是可由通用或专用计算机***访问的任何可用介质。以数据形式存储计算机可执行指令的计算机可读介质是一个或多个“物理计算机存储介质”或“硬件存储设备”。仅承载计算机可执行指令而不存储计算机可执行指令的计算机可读介质是“传输介质”。因此,作为示例而非限制,当前实施例可以包括至少两种截然不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质(又名“硬件存储设备”)是计算机可读硬件存储设备,例如RAM、ROM、EEPROM、CD-ROM、基于RAM的固态驱动器(“SSD”)、闪存、相变存储器(“PCM”)或其他类型的存储器,或其他光盘存储装置、磁盘存储装置或其他磁存储设备,或可以用于以计算机可执行指令、数据或数据结构的形式在硬件中存储期望的程序代码单元并且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为一个或多个数据链路,其能够在计算机***和/或模块和/或其他电子设备之间传输电子数据。当信息通过网络或其他通信连接(硬连线、无线或硬连线或无线的组合)传输或提供到计算机时,计算机正确地将该连接视为传输介质。传输介质可以包括网络和/或数据链路,其可以用于承载计算机可执行指令或数据结构形式的程序代码,并且可由通用或专用计算机访问。上面的组合也应当包括在计算机可读介质的范围之内。
此外,在到达各种计算机***组件时,计算机可执行指令或数据结构形式的程序代码单元可以自动从传输计算机可读介质传输到物理计算机可读存储介质(或反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机***RAM和/或计算机***处的易失性较低的计算机可读物理存储介质。因此,计算机可读物理存储介质可以被包括在也(或者甚至主要)利用传输介质的计算机***组件中。
例如,计算机可执行指令包括使通用计算机、专用计算机、或专用处理设备执行某个功能或功能组的指令和数据。计算机可执行指令可以是例如二进制、如汇编语言的中间格式指令或者甚至源代码。虽然以特定于结构特征和/或方法动作的语言对发明主题进行了描述,但应当理解的是,所附权利要求中定义的发明主题并不一定受限于上述所描述的特征或动作。确切地说,描述的特征和动作是作为实施权利要求的示例性形式而被公开的。
所公开的实施例可以包括或利用云计算。云模型可以由各种特性(例如,按需自助服务、广泛的网络访问、资源池、快速弹性、可测量服务等)、服务模型(例如,软件即服务(“SaaS”)、平台即服务(“PaaS”)、基础设施即服务(“laaS”)和部署模型(例如,私有云、社区云、公共云、混合云等)组成。
本领域技术人员将理解,本发明可以在具有多种计算机***配置的网络计算环境中实践,包括个人计算机、桌面式计算机、膝上型计算机、消息处理器、手持设备、多处理器***、基于微处理器的或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机、可穿戴设备等等。本发明还可以在分布式***环境中实施,在分布式***环境中,通过网络(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合)链接的多个计算机***(例如,本地和远程***)执行任务。在分布式***环境中,程序模块可以位于本地和/或远程存储器存储设备中。
替换地或另外地,本文中描述的功能至少部分可以由一个或多个硬件逻辑组件来执行。举例而非限制性地,可以使用的硬件逻辑组件的说明性类型包括:现场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、应用专用标准产品(ASSP)、***芯片***(SOC)、复杂可编程逻辑器件(CPLD)、中央处理单元(CPU)、图形处理单元(GPU)和/或其他。
如本文所使用的,术语“可执行模块”、“可执行组件”、“组件”、“模块”或“引擎”可以指代硬件处理单元或者可以在一个或多个计算机***上执行的软件对象、例程或方法。本文描述的不同组件、模块、引擎和服务可以被实现为在一个或多个计算机***上执行的对象或处理器(例如,作为单独的线程)。
人们还将理解本文公开的任何特征或操作可以如何与本文公开的其他特征和操作中的任何一项或组合进行组合。另外,任一附图中的内容或特征可以与任何其他附图中使用的任何内容或特征进行组合或结合使用。就这一点而言,任一附图中公开的内容不是相互排斥的,而是可以与来自任何其他附图的内容组合。
在不脱离本发明的精神或特性的前提下,可以用其他具体形式实现本发明。所描述的实施例应当在各个方面被认为仅是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前文的描述指示。权利要求的等效范围和含义内的所有改变都在其范围之内。

Claims (15)

1.一种用于使用单光子雪崩二极管(SPAD)来获得彩色图像的***,所述***包括:
SPAD阵列,其包括多个SPAD像素,所述多个SPAD像素中的每一个SPAD像素包括安置在其上的相应颜色滤波器;
一个或多个处理器;以及
一个或多个硬件存储设备,其存储能够由所述一个或多个处理器执行以将所述***配置为执行以下操作的指令:
使用所述SPAD阵列来捕获图像帧;
通过使用所述图像帧和至少一个先前图像帧执行时间滤波操作来生成经滤波的图像,所述至少一个先前图像帧是由所述SPAD阵列在时间上在与所述图像帧相关联的时间点之前的时间点捕获的;以及
在执行了所述时间滤波操作之后,通过对所述经滤波的图像进行去马赛克来生成彩色图像。
2.根据权利要求1所述的***,其中,覆盖所述多个SPAD像素的各个颜色滤波器以拜耳模式布置。
3.根据权利要求1所述的***,其中,所述至少一个先前图像帧包括未对其执行去马赛克的至少一个原始图像帧。
4.根据权利要求1所述的***,其中,执行所述时间滤波操作包括:
通过使用与所述SPAD阵列相关联的运动数据在空间上将所述至少一个先前图像帧与所述图像帧对齐来生成对齐的至少一个先前图像帧;以及
对所述图像帧与所述对齐的至少一个先前图像帧进行合成。
5.根据权利要求1所述的***,其中,执行所述时间滤波操作包括:
通过对所述图像帧进行解复用来生成多个经解复用的图像帧,所述多个经解复用的图像帧中的每一个经解复用的图像帧与相应颜色通道相关联;
访问多个经解复用的先前图像帧,所述多个经解复用的先前图像帧是通过对所述至少一个先前图像帧进行解复用而生成的,所述多个经解复用的先前图像帧包括:对于所述多个经解复用的图像帧中的每一个特定经解复用的图像帧,与和所述特定经解复用的图像帧相同的颜色通道相关联的相应经解复用的先前图像帧;以及
通过对于所述多个经解复用的图像帧中的每一个特定经解复用的图像帧进行以下操作来生成多个经时间滤波经解复用的图像帧:
通过使用与所述SPAD阵列相关联的运动数据将相应经解复用的先前图像帧与所述特定经解复用的图像帧对齐来生成相应对齐的经解复用的先前图像帧;以及
对所述特定经解复用的图像帧与所述相应对齐的经解复用的先前图像帧进行合成。
6.根据权利要求5所述的***,其中,生成所述经滤波的图像包括:对所述多个经时间滤波经解复用的图像帧进行复用。
7.根据权利要求1所述的***,其中,执行所述时间滤波操作包括:将联合双边滤波器应用于所述图像帧和所述至少一个先前图像帧。
8.根据权利要求7所述的***,其中,执行所述时间滤波操作包括:将所述联合双边滤波器应用于所述图像帧和后续图像帧,所述后续图像帧是在时间上在与所述图像帧相关联的时间点之后的时间点捕获的。
9.根据权利要求1所述的***,其中,所述指令能够由所述一个或多个处理器执行以将所述***进一步配置为在对所述经滤波的图像进行去马赛克之前对所述经滤波的图像执行伽玛校正操作。
10.根据权利要求1所述的***,其中:
所述***还包括显示器,并且
所述指令能够由所述一个或多个处理器执行以将所述***进一步配置为在所述显示器上显示所述彩色图像。
11.根据权利要求1所述的***,其中:
所述***还包括显示器,并且
所述指令能够由所述一个或多个处理器执行以将所述***进一步配置为:
生成经视差校正的彩色图像;以及
在所述显示器上显示所述经视差校正的彩色图像。
12.一种用于使用单光子雪崩二极管(SPAD)来获得彩色图像的***,所述***包括:
SPAD阵列,其包括多个SPAD像素,所述多个SPAD像素中的每一个SPAD像素包括安置在其上的相应颜色滤波器;
一个或多个处理器;以及
一个或多个硬件存储设备,其存储能够由所述一个或多个处理器执行以将所述***配置为执行以下操作的指令:
使用所述SPAD阵列来捕获图像帧;
通过对所述图像帧执行空间滤波操作来生成经滤波的图像;以及
在执行了所述空间滤波操作之后,通过对所述经滤波的图像进行去马赛克来生成彩色图像。
13.根据权利要求12所述的***,其中,覆盖所述多个SPAD像素的各个颜色滤波器以拜耳模式布置。
14.根据权利要求12所述的***,其中,执行所述空间滤波操作包括:
通过对所述图像帧进行解复用来生成多个经解复用的图像帧,所述多个经解复用的图像帧中的每一个经解复用的图像帧与相应颜色通道相关联;以及
通过对所述多个经解复用的图像帧中的每一个经解复用的图像帧应用相应空间滤波操作来生成多个经空间滤波经解复用的图像帧。
15.根据权利要求14所述的***,其中,生成所述经滤波的图像包括:对所述多个经空间滤波经解复用的图像帧进行复用。
CN202280036258.XA 2021-05-28 2022-03-11 用于使用单光子雪崩二极管来获得彩色图像的***和方法 Pending CN117355768A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/334,635 US11711628B2 (en) 2021-05-28 2021-05-28 Systems and methods for obtaining color imagery using single photon avalanche diodes
US17/334,635 2021-05-28
PCT/US2022/019941 WO2022250761A1 (en) 2021-05-28 2022-03-11 Systems and methods for obtaining color imagery using single photon avalanche diodes

Publications (1)

Publication Number Publication Date
CN117355768A true CN117355768A (zh) 2024-01-05

Family

ID=81384557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280036258.XA Pending CN117355768A (zh) 2021-05-28 2022-03-11 用于使用单光子雪崩二极管来获得彩色图像的***和方法

Country Status (4)

Country Link
US (2) US11711628B2 (zh)
EP (1) EP4348298A1 (zh)
CN (1) CN117355768A (zh)
WO (1) WO2022250761A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11696049B2 (en) 2021-05-28 2023-07-04 Microsoft Technology Licensing, Llc Systems and methods for dark current compensation in single photon avalanche diode imagery
US11988835B2 (en) * 2021-05-28 2024-05-21 Microsoft Technology Licensing, Llc Systems and methods for power efficient image acquisition using single photon avalanche diodes (SPADs)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030214590A1 (en) 2002-05-17 2003-11-20 Kevin Matherson System and method for adaptively compensating for dark current in an image capture device
JPWO2005004467A1 (ja) 2003-07-01 2006-08-17 株式会社ニコン 電子カメラの映像信号補正装置
IL176694A0 (en) 2006-07-04 2006-10-31 Univ Ramot Method and device for low light level imaging
US8055070B2 (en) * 2007-01-05 2011-11-08 Geo Semiconductor Inc. Color and geometry distortion correction system and method
US9204062B2 (en) * 2011-08-24 2015-12-01 Fluke Corporation Thermal imaging camera with range detection
CN107079095B (zh) * 2014-09-30 2020-02-04 富士胶片株式会社 图像处理装置、图像处理方法、及记录介质
EP3565238B1 (en) 2016-12-27 2023-07-19 Panasonic Intellectual Property Management Co., Ltd. Imaging device, camera and imaging method
US10477200B2 (en) * 2017-04-13 2019-11-12 Facebook, Inc. Panoramic camera systems
JP7062430B2 (ja) 2017-12-15 2022-05-06 キヤノン株式会社 撮像素子、撮像装置および画像処理方法
TWI674557B (zh) * 2018-07-31 2019-10-11 瑞昱半導體股份有限公司 影像處理裝置及其方法
WO2021035094A1 (en) 2019-08-21 2021-02-25 Activ Surgical, Inc. Systems and methods for medical imaging
US11170549B2 (en) * 2020-04-09 2021-11-09 Wisconsin Alumni Research Foundation Systems, methods, and media for high dynamic range quanta burst imaging
US11696049B2 (en) 2021-05-28 2023-07-04 Microsoft Technology Licensing, Llc Systems and methods for dark current compensation in single photon avalanche diode imagery

Also Published As

Publication number Publication date
US20230300483A1 (en) 2023-09-21
US20220385843A1 (en) 2022-12-01
WO2022250761A1 (en) 2022-12-01
US11711628B2 (en) 2023-07-25
EP4348298A1 (en) 2024-04-10

Similar Documents

Publication Publication Date Title
US11962922B2 (en) Systems and methods for dark current compensation in single photon avalanche diode imagery
US20230300483A1 (en) Systems and methods for obtaining color imagery using single photon avalanche diodes
US10762655B1 (en) Disparity estimation using sparsely-distributed phase detection pixels
US10116851B2 (en) Optimized video denoising for heterogeneous multisensor system
US10222910B1 (en) Method and apparatus for creating an adaptive Bayer pattern
US11363188B2 (en) Motion-based operation of imaging devices
US20240112605A1 (en) Systems and methods for adding persistence to single photon avalanche diode imagery
US10778915B2 (en) Dual-aperture ranging system
US20230403385A1 (en) Spad array for intensity image capture and time of flight capture
US20220174188A1 (en) Spad array for intensity image sensing on head-mounted displays
US11765475B2 (en) Systems and methods for obtaining dark current images
US11988835B2 (en) Systems and methods for power efficient image acquisition using single photon avalanche diodes (SPADs)
US11563908B2 (en) Image acquisition techniques with reduced noise using single photon avalanche diodes
US20240251182A1 (en) Systems and methods for dark current compensation in single photon avalanche diode imagery
US20220353489A1 (en) Systems and methods for efficient generation of single photon avalanche diode imagery with persistence
Ma Resolving Motion with Single-Photon Cameras

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