为了提高显示给用户的图像质量,特定的MR系统会执行所谓的“时间滤波”,亦即将在多个时间点捕获的数据组合起来以生成特定输出。换句话说,系统本质上是将多个图像堆叠在一起,并以某种方式组合它们,从而产生具有改进质量的聚合图像。
但在执行时间滤波时会遇到各种挑战。例如当系统捕捉多个连续图像时,场景或环境中的对象正在移动,就会产生所谓的拖影重影。另一个挑战是,当摄像头本身在生成图像时发生运动。摄像头的运动同样会造成时间滤波过程产生偏差。
在名为“Generate super-resolution images from sparse color information”和“Use motion data to generate higher resolution images”的专利申请中,微软就介绍了通过改进的时间滤波方法来产生超级分辨率图像。
时间滤波
如上所述,为了提供更高质量的图像,MR头显可以配置为执行时间滤波。图3显示了一个时间轴300。在时间T0,头显30生成包含图像数据315的图像310。图像310是在弱光环境下生成。在时间T0之后,头显经历了一定数量的运动320。
在时间T1,头显305然后产生第二图像325,其中包括图像数据330。根据微软介绍的方法,系统能够使用图像310和图像325来执行时间滤波335操作。所述实施例同时可以使用由IMU生成的运动数据340来补偿在时间T0和T1之间发生的运动320。
即,所述实施例可以获取IMU数据345。其中,数据345详细说明产生所述图像310和所述图像325的所述摄像头的角度位置350和加速度355。
运动补偿操作通常涉及修改一个姿态以匹配不同的姿态。所述不同的姿态可以是基于所述运动数据340的预测姿态。作为示例,图像310反映或体现头显305在时间T0的第一姿态。头显305然后移动到一个新的位置或姿态,如运动320所示。
IMU捕捉到了头显305在时间T0和T1之间的运动。所以,头显305可以使用IMU数据来预测头显305在时间T1(或者更晚)的新姿态。基于预测,头显305随后可以执行运动补偿操作,将图像310中包含的姿态变换为反映头显305的预测姿态。
在T1时刻,头显305生成图像325。所述实施例能够将运动补偿姿态与头显305在T1时刻的实际姿态进行比较。这两个姿态之间的差异程度或数量反映了运动补偿的准确性。如果没有差异,则运动补偿操作100%成功。
另一方面,差值越大,运动补偿效果越差。测量或比较差异主要是通过比较每个像素的强度水平来完成。即,识别所述运动补偿图像中的第一像素,并识别所述图像325中的相应像素。这两个像素的强度级别相互比较。这两个值之间的差值反映了运动补偿操作的准确性。
由于时间滤波过程,需要进行运动补偿。回想一下,时间滤波过程本质上是将多个图像堆叠在一起,并将来自图像的数据组合在一起以生成增强图像。为了确保堆叠正常工作,每个不同图像中的姿态应该彼此对齐。所以,执行运动补偿操作以对齐各种不同图像的各种不同姿态。
作为执行时间滤波335操作的结果,实施例能够生成时间滤波图像360。然后,实施例不仅有益地补偿摄像头的运动,而且有益地减少了对在场景移动对象的重影效果370的影响。值得注意的是,摄像头的曝光设置370在生成图像时保持不变。
图7示出了图像700的汇编,例如图像705和图像710。每个图像都是使用拜耳模式生成。所述实施例能够在所述传感器生成图像时追踪所述传感器的各种位置。在一个实施例中,可以使用惯性测量单元IMU数据720执行追踪过程。
如果多个像素随时间“覆盖”环境的相同区域,则实施例可以执行多个操作。例如,实施例可以选择使用像素数据的最新版本,并且丢弃像素数据的旧版本。又如,实施例可以在较旧像素和较新像素之间执行强度比较。如果两个像素之间存在差异,则可能是环境中的对象发生移动,从而可能导致重影效果。
然后,实施例可以分析整个图像以确定对象是否已经移动。如果其中一个像素反映没有对象的场景,而另一个像素反映有对象存在的场景,则实施例可以选择使用前一个像素,从而消除可能的重影效果。
在一个实施例中,,表示或覆盖环境中相同区域的像素可以赋予不同的权重。例如,可以计算像素之间的强度差异。然后可以定义一个函数,将差值转换为权。较大的差异导致较小的权重,较小的差异导致较高的权重。权重可用于确定每个像素在合并像素数据以创建后续图像时的影响。
所述实施例能够彼此隔离不同的颜色数据。换句话说,红色像素颜色数据可以与绿色、蓝色和单色数据隔离开来。这种隔离是使用不同像素的不同颜色通道以及使用运动模型来解释数据来执行。
图8显示了渐进式累积800过程,其中图像数据随时间收集。通过在一段时间内逐步收集颜色数据,实施例然后可以堆叠该颜色数据(即执行时间滤波),并基于单独收集的像素数据有效地“构建”结果图像。
具体来说,获取IMU是为了确定从一张图像到另一张图像的姿态差异。姿态可以使用运动补偿操作对齐。有了对齐的数据,颜色信息就可以被“填充”,从而生成图像。
在时间A,摄像头使用具有稀疏拜耳图案的传感器生成图像。
在时间B,生成另一个图像。在这个示例场景中,摄像头稍微移动了位置,红色像素的位置现在稍微向右移了一点。利用IMU数据,可以进行运动补偿以确定两个像素之间的相对位置。现在,实施例具有两个红色像素815的数据。换句话说,相同的传感器像素在两次都生成数据,但实施例能够随着时间的推移追踪数据,从而实现现在有多个数据单元的场景。
在时间C,摄像头再次移动位置,再次生成另一幅图像,并再次确定像素的相对位置。现在,实施例具有三种不同红色像素820的数据。
在时间D,摄像头移动了多次,产生了众多不同的图像。从图8中,可以观察到整个图像是如何在一段时间内被红色像素数据“填充”。红色像素825说明了颜色数据的逐步积累。
在时间“E”,摄像头已经移动了很多次,产生了许多不同的图像。现在的情况是,可以使用前面描述的运动补偿时间滤波过程,随时间收集的像素数据填充整个图像。红色像素830说明了随着时间的推移颜色数据的逐步积累。
通过追踪用于每个图像的摄像头的姿态810信息,实施例可以生成结果图像,并且可以用所获取的像素信息填充该结果图像中的特定像素。
使用运动模型生成图像
图9示出可用于从低分辨率稀疏色输入图像生成高分辨率全彩色输出图像的示例架构900。最初,使用前面概述的过程获取一组像素数据905。
其中,像素数据905包括像素的强度910信息,并且生成像素数据905的图像具有稀疏分辨率915。颜色数据或分辨率的稀疏可能是由于次优光照条件,例如可能是低光照条件。
将像素数据905作为输入馈送到运动模型920。除了像素数据905之外,同时将补充信息925作为输入馈送到运动模型920。其中,所述补充信息925可以包括特征匹配930数据或IMU数据935。
特征匹配930数据使用特征点之间的匹配来对齐所生成的各种图像(例如,像素数据905。换句话说,所述实施例可以识别各种不同图像之间的图像对应关系。然后可以使用图像对应来确定如何使用运动模型920使各种图像彼此对齐。
当使用匹配930的特征时,所述运动模型920可能是单应性运动模型、相似变换运动模型或者可能是仿射运动模型。
另一方面,IMU数据935还可用于确定如何对齐各种图像,或者更确切地说,用于确定像素数据彼此的相对定位。当使用IMU数据935时,运动模型920可以是任何类型的三维旋转运动模型。
在任何情况下,运动模型920使用补充信息925来识别产生像素数据905的各种图像之间的相对对齐。使用用于不同像素类型的不同通道将像素数据905馈送到运动模型920中,并且运动模型920能够分析传入的信息,以便将像素数据彼此隔离。
使用传入的信息,运动模型920能够将所有红色像素与所有非红色像素隔离并存储。运动模型920能够从所有非绿色像素中分离并存储所有绿色像素。运动模型920能够从所有非蓝色像素中分离并存储所有蓝色像素。类似地,运动模型920能够从所有的非单色像素中分离并存储所有的单色像素。
图9示出上述分离过程的一个示例。例如,所述运动模型920能够分析所述像素数据905和所述补充信息925以识别所述红色像素940。基于红色像素940,运动模型920可以生成纯红色图像945。
执行类似的操作来生成纯绿色图像950、纯蓝色图像955和单色图像960。各自的图像表示已收集的像素数据的运动补偿(即对齐)堆叠版本。换句话说,各自的图像是已收集的所有各自的颜色信息的复合,并且颜色信息使用补充信息925通过运动模型920相对于彼此对齐。
纯红、纯绿和纯蓝图像的分辨率可以高于生成像素数据905的原始图像。通常,由于时间滤波过程的叠加效应,仅红、仅绿和仅蓝图像的分辨率将高于原始摄像头图像的分辨率。
所述实施例能够使用纯红色图像945、纯绿色图像950、纯蓝色图像955和任选的单色图像960,然后生成高分辨率输出全彩图像965。即,可以将来自这些各自图像的颜色和纹理信息合并在一起,生成高分辨率输出彩色图像965。
在缺少颜色数据的场景中,所述实施例可以执行双边插值970以用颜色数据填充缺失区域。双边插值970可以在纯红色图像945、纯绿色图像950、纯蓝色图像955、单色图像960甚至高分辨率输出彩色图像965中的任何一个或多个图像上执行。
在一种场景中,在组合彩色图像时,可以将单色图像960用作索引或可能用作参考框架,以帮助澄清纹理点或边界信息。通过使用用于合并过程的单色图像960来创建高分辨率输出彩色图像965,所述单色图像960还可用于增强所述高分辨率输出彩色图像965中所产生的纹理或强度。
图10示出一个示例超分辨率处理1000,其中可以从较低分辨率输入图像(例如640×480分辨率或1280×960分辨率)生成具有超分辨率(例如2560×2048及以上)的输出图像。
最初,超分辨率处理1000包括获取图像1005。这个图像具有特定的分辨率。分辨率1010是稀疏的。值得注意的是,1010的分辨率低于单色图像的分辨率。
另外,超分辨率处理1000包括获取单色图像1015。由于增加了单色像素的数量,所得到的单色图像1015将具有相对较高的分辨率1020。这个相对较高的分辨率1020(与分辨率1010相比)是超分辨率,例如2560×2048分辨率。
根据微软介绍的方法,将图像1005和单色图像1015作为输入馈送到运动模型1025中。然后对图像1005进行上采样或内插,以使图像1005的分辨率1010与单色图像1015的分辨率1020相匹配。这个过程可以在所有的纯红、纯绿和纯蓝映像上执行。
随着图像1005现在具有更高的分辨率,实施例随后可以将该图像与其他上采样图像,即组合所有纯红色、纯绿色和纯蓝色图像以生成超分辨率RGB图像1035。换句话说,所有的纯红、纯绿和纯蓝图像都可以上采样,然后可以相互组合或合并以生成超分辨率RGB图像1035。
图11和12示出用于使用运动数据从具有稀疏颜色信息的多个图像生成高分辨率输出彩色图像的示例流程图。
最初,方法1100包括使摄像头生成图像的行为。在这里,摄像头的传感器配置为具有稀疏的拜耳图案,包括一个或多个红色像素、一个或多个绿色像素、一个或多个蓝色像素和多个单色像素。值得注意的是,每张图像都包含稀疏的颜色数据和稀疏的强度数据。另外,摄像头的曝光设置在摄像头生成图像时保持不变。
当摄像头生成图像时,1110包括为每个图像获取相应的惯性测量单元IMU数据。因此,生成多个IMU数据。每张图像的IMU数据表示摄像头在生成每张图像时所处的相应姿态。
在1115中,实施例将图像和IMU数据馈送到运动模型中。运动模型对图像执行时间滤波,并使用IMU数据生成纯红色图像、纯绿色图像和纯蓝色图像。
1115将图像和IMU数据输入到运动模型中。
1200包括通过将图像中包含的红色像素与非红色像素隔离来生成仅红色的图像。1200进一步涉及用红色像素填充红色图像,方法是将每个各自的红色像素放置在红色图像内相应的红色图像坐标上。值得注意的是,对应的红色图像坐标是使用IMU数据确定。
1205包括通过将图像中包含的绿色像素与非绿色像素分离来生成仅绿色的图像。1205进一步涉及用绿色像素填充纯绿色图像,方法是将每个各自的绿色像素放置在纯绿色图像内相应的纯绿色图像坐标处。可以使用IMU数据确定相应的绿色图像坐标。
1210包括通过将图像中包含的蓝色像素与非蓝色像素隔离来生成纯蓝色图像。行为1210进一步包括用蓝色像素填充纯蓝色图像,方法是将每个各自的蓝色像素放置在纯蓝色图像内相应的纯蓝色图像坐标处。可以使用IMU数据确定相应的纯蓝色图像坐标。
1215包括通过将图像中包含的单色像素与非单色像素分离来生成单色图像。行为1215进一步包括通过将每个各自的单色像素放置在单色图像内相应的单色图像坐标处,用单色像素填充单色图像。可以使用IMU数据确定相应的单色图像坐标。
纯红色、纯绿色、纯蓝色和单色图像的分辨率可以选择性地高于生成像素数据的原始图像的分辨率。单色图像的分辨率高于任何其他图像。
1130涉及到通过组合纯红色图像、纯绿色图像和纯蓝色图像来生成高分辨率输出彩色图像。
图13示出用于从低分辨率稀疏色输入图像生成高分辨率全彩色输出图像的示例方法1300的流程图。
类似于方法1100,摄像头生成多个图像。在这里,摄像头的传感器被配置为具有稀疏的拜耳图案。
当摄像头生成图像时,1310包括为每个图像获取相应的惯性测量单元IMU数据。
1315,实施例将图像和IMU数据馈送到运动模型中。运动模型对图像执行时间滤波,并使用IMU数据生成纯红色图像、纯绿色图像、纯蓝色图像和单色图像。
1325涉及到将图像和补充数据输入到一个运动模型中。运动模型对图像执行时间滤波,并使用补充数据生成纯红色图像、纯绿色图像、纯蓝色图像和单色图像。
1330包括对纯红色图像、纯绿色图像和纯蓝色图像进行上采样,以产生纯红色图像的第一分辨率、纯绿色图像的第二分辨率和纯蓝色图像的第三分辨率。在一个实施例中,在对纯红色、纯绿色和纯蓝色图像进行上采样之前,可以对单色图像进行上采样或内插,以提高单色图像的分辨率。上采样可以是双边上采样。
1335,实施例通过组合上采样的纯红色图像、上采样的纯绿色图像、上采样的纯蓝色图像和单色图像来生成高分辨率输出彩色图像。所述高分辨率输出彩色图像的结果分辨率高于所述第一、第二或第三分辨率中的任何一个。
生成纯红色图像、纯绿色图像和纯蓝色图像的过程可以使用时间滤波来执行。即随着时间的推移获取多幅图像,然后有选择地将数据相互合并以生成新图像,即运动补偿时间滤波的过程。在生成不同的图像之后,实施例随后可以生成高分辨率输出彩色图像。通过将单色图像提供的强度与纯红色图像、纯绿色图像和纯蓝色图像提供的颜色合并,可以生成高分辨图像。
微软指出,在执行描述的操作时,实施例向用户提供改进的图像质量。因此,用户与计算机系统交互的体验将得到加强。
名为“Generate super-resolution images from sparse color information”和“Use motion data to generate higher resolution images”的微软专利申请最初在2023年2月提交,并在日前由美国专利商标局公布。