使用惯性传感器来提供针对视频和摄影应用的经平滑的曝光和白平衡调节的制作方法

文档序号:10598500阅读:529来源:国知局
使用惯性传感器来提供针对视频和摄影应用的经平滑的曝光和白平衡调节的制作方法
【专利摘要】收集第一图像帧。存储第一图像帧、第一白平衡值以及第一曝光值。感测来自惯性传感器的信息。收集第二图像帧和中间图像帧。确定由相机所经过的距离。响应于距离中的一个或多个距离超过预定阈值,或者新白平衡值与先前白平衡值明显不同,或者新曝光值与先前曝光值明显不同,确定针对第二图像帧的第二白平衡值和第二曝光值。确定针对中间图像帧的经平滑的白平衡值和经平滑的曝光值。
【专利说明】
使用惯性传感器来提供针对视频和摄影应用的经平滑的曝光和白平衡调节
技术领域
[0001]本发明总体涉及图像捕获和处理。更具体地,本发明涉及用于提供针对视频和摄影应用的经平滑的曝光和白平衡调节的改进的系统和技术。【背景技术】
[0002]静态图像摄影和全运动视频已经在数年内被连续改进。从1822年开始的尼埃普斯 (Niepce)的照相蚀刻,到由尼埃普斯和达盖尔(Daguerre)使用银化合物的摄影的发展,到廉价且广泛可用的相机的发展,到以现代数字摄影继续的即时摄影,记录静态和移动图像的能力已经变得越来越普遍,直到其现在接近普遍存在。许多人通过收集并分发感兴趣或值得注意的事件的图像来记载他们的生活的每个方面。
[0003]目前,摄影通常是随意的,由对进行细致的相机调节不感兴趣的摄影者在广泛变化的光照条件下执行。然而,这样的摄影者想要他们的照片和视频看起来有吸引力并且尤其是在如白平衡的属性方面与主题类似。白平衡是相机设置,其调节光照以便使白色对象在照片或视频中看起来是白色的。这归因于以下事实是比起可能看起来更困难的,从两个不同源投射的光可能在谱含量和颜色方面大不相同。环境光实质上很少是真正白色的。光源的谱含量可以被称为颜色温度。来自白炽灯和卤素灯泡的光例如可以加重谱的橘色和黄色区,而荧光灯可以加重谱的蓝色区。
[0004]相机中的恰当的白平衡设置将防止照片中的白色床单例如在床单被烛光照明时看起来像橘色。因为中性颜色(例如白色或灰色)正确地显现是尤其重要的,所以白平衡还可以被称为颜色平衡或灰平衡。白平衡是图像的每个颜色分量(例如光的红色、绿色和蓝色加性原色)的相对强度的度量。颜色恒常性是人类视觉系统的特性,人脑提供在照明对象的光的波长变化的大范围上相对恒定的颜色感知。另一方面,用于捕获图像的人工机制需要并入用于调节和校正的机制以便实现这种恒常性。
[0005]在相机成像流水线中采用的自动白平衡(AWB)和自动曝光(AE)算法对于数字图片和视频的颜色外观是关键的。AWB算法的目的在于提供人类视觉系统的颜色恒常性特征,其中对象的感知到的颜色在不同光照条件下保持基本上恒定。因此,AWB算法必需根据其图像内容本身确定要响应于当前照明而执行的必要的颜色校正。对于视频,AWB算法通常在每帧的基础上被用于说明场景变化。自动曝光算法旨在调节相机的曝光时间以使过曝光和曝光不足区域最小化。该功能是需要的,因为相机仅仅能够测量场景中的总照明的有限范围 (即,相机具有有限动态范围)。为了捕获明亮区域,需要较短的曝光时间;否则,图像将过曝光或饱和(白色)。另一方面,在黑暗区域中需要较长的曝光时间;否则,图像将曝光不足或者是黑色的。AE算法的目的在于找到针对正被捕获的场景的最佳曝光。当捕获视频时,这通常使用分析传入视频帧并提供最好曝光时间的估计以捕获随后帧的控制循环来完成。
[0006]AWB算法试图通过做出关于图像中的颜色的分布的一些假设来估计图像中的照明。之后,这些AWB算法将图像校正为如同其是在标准照明下拍摄的。最周知且广泛使用的AWB算法中的一些AWB算法是白色补块算法,其假设图像中的最亮点是白色的(最大反射率);以及灰色世界算法,其假设场景的平均反射率是非彩色的。其他AWB算法基于关于图像的内容的某些假设。
[0007]AE算法通常分析图像(例如,强度直方图)的曝光统计数字以确定曝光时间应当如何被改变以便获得针对下一捕获的图像的“最佳”统计数字。可以使用用于限定“最佳”曝光的不同准则,并且那些准则通常遵循启发式方法。说明性的启发式方法包括使平均强度值接近中性灰色,对阴影区域指定优先级,约束对由用户预设的区的优化,或者对肤色指定优先级。
[0008]常规AWB和AE算法不提供许多真实世界情景中的最佳性能。在捕获视频序列的同时在每帧的基础上执行这些AWB和AE算法。这常常导致如通常在移动式相机的情境中观察到的视频帧中的不期望的色调波动和曝光变化。
【发明内容】

[0009]根据一个实施例,一种方法包括:收集第一图像帧;将第一图像帧、针对第一图像帧的第一白平衡值以及针对第一图像帧的第一曝光值存储在存储器缓冲器中;感测来自相机中的一个或多个惯性传感器的信息;收集第二图像帧并且在对第一图像帧的收集之后且在对第二图像帧的收集之前收集一个或多个中间图像帧;使用感测到的信息来确定由相机从对第一图像帧的收集到对第二图像帧的收集所经过的距离,并且响应于距离超过预定阈值,确定针对第二图像帧的第二白平衡值和第二曝光值;以及确定、估计或计算针对一个或多个中间图像帧的经平滑的白平衡值和经平滑的曝光值。
[0010]根据另一实施例,一种方法包括:收集第一图像帧;将第一图像帧、针对第一图像帧的第一白平衡值以及针对第一图像帧的第一曝光值存储在存储器缓冲器中;收集第二图像帧并且在对第一图像帧的收集之后且在对第二图像帧的收集之前收集一个或多个中间图像帧;将第二图像帧、针对第二图像帧的第二白平衡值以及针对第二图像帧的第二曝光值存储在存储器缓冲器中;确定第一白平衡值是否处于第二白平衡值的第一指定阈值内; 并且确定第一曝光值是否处于第二曝光值的第二指定阈值内;以及响应于第一白平衡值不处于第二白平衡值的第一指定阈值内,或者响应于第一曝光值不处于第二曝光值的第二指定阈值内,之后确定、估计或计算针对一个或多个中间图像帧的经平滑的白平衡值和经平滑的曝光值。
[0011]根据另一实施例,一种装置包括:至少一个处理器;以及至少一个存储器,其包括计算机程序代码,至少一个存储器和计算机程序代码于至少一个处理器一起被配置为至少部分地促使该装置执行:收集第一图像帧;将第一图像帧、针对第一图像帧的第一白平衡值以及针对第一图像帧的第一曝光值存储在存储器缓冲器中;感测来自相机中的一个或多个惯性传感器的信息;收集第二图像帧并且在对第一图像帧的收集之后且在对第二图像帧的收集之前收集一个或多个中间图像帧;使用感测到的信息来确定由相机从对第一图像帧的收集到对第二图像帧的收集所经过的距离,并且响应于距离超过预定阈值,确定针对第二图像帧的第二白平衡值和第二曝光值;以及确定、估计或计算针对一个或多个中间图像帧的经平滑的白平衡值和经平滑的曝光值。
[0012]根据另一实施例,一种装置包括:至少一个处理器;以及至少一个存储器,其包括计算机程序代码,至少一个存储器和计算机程序代码与至少一个处理器一起被配置为至少部分地促使该装置执行以下各项:收集第一图像帧;将第一图像帧、针对第一图像帧的第一白平衡值以及针对第一图像帧的第一曝光值存储在存储器缓冲器中;收集第二图像帧并且在对第一图像帧的收集之后且在对第二图像帧的收集之前收集一个或多个中间图像帧;将第二图像帧、针对第二图像帧的第二白平衡值以及针对第二图像帧的第二曝光值存储在存储器缓冲器中;确定第一白平衡值是否处于第二白平衡值的第一指定阈值内;并且确定第一曝光值是否处于第二曝光值的第二指定阈值内;响应于第一白平衡值不处于第二白平衡值的第一指定阈值内,或者响应于第一曝光值不处于第二曝光值的第二指定阈值内,之后确定、估计或计算针对一个或多个中间图像帧的经平滑的白平衡值和经平滑的曝光值。
[0013]根据另一实施例,一种计算机程序产品包括存储在非瞬态计算机可读存储器中的代码,该代码用于当在计算机设备上被执行时执行至少以下各项:收集第一图像帧;将第一图像帧、针对第一图像帧的第一白平衡值以及针对第一图像帧的第一曝光值存储在存储器缓冲器中;感测来自相机中的一个或多个惯性传感器的信息;收集第二图像帧并且在对第一图像帧的收集之后且在对第二图像帧的收集之前收集一个或多个中间图像帧;使用感测到的信息来确定由相机从对第一图像帧的收集到对第二图像帧的收集所经过的距离,并且响应于距离超过预定阈值,确定针对第二图像帧的第二白平衡值和第二曝光值;以及确定、 估计或计算针对一个或多个中间图像帧的经平滑的白平衡值和经平滑的曝光值。
[0014]根据另一实施例,一种计算机程序产品包括存储在非瞬态计算机可读存储器中的代码,该代码用于当在计算机设备上被执行时执行至少以下各项:收集第一图像帧;将第一图像帧、针对第一图像帧的第一白平衡值以及针对第一图像帧的第一曝光值存储在存储器缓冲器中;收集第二图像帧并且在对第一图像帧的收集之后且在对第二图像帧的收集之前收集一个或多个中间图像帧;将第二图像帧、针对第二图像帧的第二白平衡值以及针对第二图像帧的第二曝光值存储在存储器缓冲器中;确定第一白平衡值是否处于第二白平衡值的第一指定阈值内;并且确定第一曝光值是否处于第二曝光值的第二指定阈值内;以及响应于第一白平衡值不处于第二白平衡值的第一指定阈值内,或者响应于第一曝光值不处于第二曝光值的第二指定阈值内,之后确定、估计或计算针对一个或多个中间图像帧的经平滑的白平衡值和经平滑的曝光值。
[0015]根据另一实施例,一种装置包括用于执行上述方法中的一个的步骤的部件。
[0016]根据另一实施例,一种计算机程序产品包括一个或多个指令的一个或多个序列, 其当由一个或多个处理器执行时,促使装置至少执行上述方法中的一个的步骤。
[0017]本发明的另外的其他方面、特征和优点从简单地通过说明包括预见到的用于实现本发明的最好的模式的多个特定实施例和实施方式的下面的详细描述中变得显而易见。本发明还能够具有其他和不同的实施例,并且在不偏离本发明的精神和范围的情况下其若干细节全部能够在各个明显的方面上进行修改。因此,附图和描述应被认为实质上为说明性的,并且不应被认为是限制性的。【附图说明】
[0018]在附图中的各图中通过举例的方式而非限制的方式来说明各个实施例,在附图中:
[0019]图1是根据一组实施例的用于提供针对视频和摄影应用的经平滑的曝光和白平衡调节的第一组示例性过程的流程图。
[0020]图2是根据一组实施例的用于提供针对视频和摄影应用的经平滑的曝光和白平衡调节的第二组示例性过程的流程图。
[0021]图3是根据一组实施例的用于提供针对视频和摄影应用的经平滑的曝光和白平衡调节的第三组示例性过程的流程图。[〇〇22]图4是能够被用于实现本发明的实施例的第一设备的图。
[0023]图5是图4中不出的设备的备选视图。[〇〇24]图6是能够被用于实现本发明的实施例的第二设备的图。【具体实施方式】
[0025]公开了用于提供针对视频和摄影应用的经平滑的曝光和白平衡调节的方法、装置和计算机程序产品的示例。在下面的描述中,为了解释的目的,阐述了许多具体细节以提供对本发明的各实施例的透彻理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节的情况下或者利用等效布置来实践本发明的各实施例。在其他实例中,周知的结构和设备以框图形式示出以便避免不必要地使本发明的各实施例模糊不清。
[0026]根据本文公开的一组说明性实施例,自动白平衡和自动曝光算法的调整或计算速率基于相机中的惯性传感器(例如加速度计和陀螺仪)来改变或调节以减少不期望的色调波动。惯性传感器的值被用于计算相机已经行进的累积距离,并且仅仅当该距离达到特定阈值时,针对传入帧的白平衡和曝光的新的值被采用或被重新计算。这能够创建在该帧处的曝光和白平衡设置的跳动。为了使其平滑掉,最近捕获的一个或多个帧被存储在存储器缓冲器中,并且针对在当曝光和白平衡被最后改变时的帧与当前帧之间的一个或多个帧的白平衡和曝光设置被插值。与在每帧的基础上改变曝光和白平衡参数的现有技术相比,本发明产生关于色调设置而言更稳定的视频。
[0027]图1是根据一组实施例的用于提供针对视频和摄影应用的经平滑的曝光和白平衡调节的第一组示例性过程的流程图。操作序列在框101处开始,在框101中收集第一图像帧。 接下来,在框103处,将第一图像帧、针对第一图像帧的第一白平衡值以及针对第一图像帧的第一曝光值全部存储在存储器缓冲器中。感测来自相机中的一个或多个惯性传感器的信息(框105)。收集第二图像帧,并且在对第一图像帧的收集之后但在对第二图像帧的收集之前收集一个或多个中间图像帧(框107)。说明性地,第一图像帧、第二图像帧以及一个或多个中间图像帧被存储在缓冲器中。在一些情况下,不必存储针对一个或多个中间帧中的每帧的曝光和白平衡值,因为这些值可以基于第一图像帧和第二图像帧来插值,或者基于一个或多个中间帧中的先前图像帧和相继图像帧来插值。使用感测到的信息来确定由相机从对第一图像帧的收集到对第二图像帧的收集所经过的距离(框109)。
[0028]响应于该距离超过预定阈值,确定针对第二图像帧的第二白平衡值和针对第二图像帧的第二曝光值(框111)。通过对第一白平衡值和第二白平衡值进行插值并且通过对第一曝光值和第二曝光值进行插值来来确定、估计或计算针对一个或多个中间图像帧的经平滑的白平衡值和针对一个或多个中间图像帧的经平滑的曝光值,以便减小在针对一个或多个中间图像帧的第一白平衡值与第二白平衡值之间的白平衡波动,并且以便减小在针对一个或多个中间图像帧的第一曝光值与第二曝光值之间的曝光波动(框113)。
[0029]常规自动曝光和自动白平衡算法是在捕获视频序列的同时在每帧的基础上被执行的。这常常导致如通常关于使用移动相机收集的静态图像和视频观察到的视频帧中的不期望的色调和曝光波动。图1-3的过程在视频捕获期间改变用于计算自动曝光和自动白平衡的值的频率以适应相机移动。代替计算针对每个捕获的帧的自动曝光和自动白平衡的值,提供一个或多个惯性传感器(例如陀螺仪或加速度计)来测量相机的近似移动或运动, 并且根据测量的移动或运动的量来设置自动曝光和自动白平衡的评估的频率。如果检测到相机是静止的,则频率被降低使得自动白平衡和自动曝光值保持固定短时间间隔。该情景假设在短时间间隔期间不太可能有照明和场景变化。如果检测到运动,则频率被增大使得曝光和白平衡较频繁地被计算以处置由于相机移动的潜在场景变化。由于自动白平衡和自动曝光将较不频繁地被计算和改变,用于计算白平衡和自动曝光的更复杂的算法可以但是不必被用于减少颜色色调波动和曝光变化。
[0030]图2是根据一组实施例的用于提供针对视频和摄影应用的经平滑的曝光和白平衡调节的第二组示例性过程的流程图。首先,将运动累加器初始化为零(框201)。之后,在框 202处捕获第一视频帧。在框203处,基于惯性传感器204来计算在帧时间(1/帧速率)期间的相机移动(移动的量和方向)。同样在框203处,使用自动白平衡(AWB)算法209以使用第一视频帧作为输入来计算新白平衡设置,使用自动曝光(AE)算法211以使用第一视频帧作为输入来计算新曝光设置。[〇〇31] 在框205处,将在框203处计算的相机移动添加到运动累加器以计算相机已经行进的总距离。在框207处,如果行进的距离达到预定阈值,则在框215处应用在框203处计算的白平衡和曝光的新的值,即它们代替白平衡的先前存在的值和曝光的先前存在的值,使得从现在开始的新的(随后的)帧(框202)的捕获使用这些新的值。如果缓冲器222是满的(框 226),则从缓冲器222中去除最旧的帧并将最旧的帧发送到视频存储流水线(框228)。之后将当前帧添加到缓冲器(框224)。在将该帧添加到缓冲器222之后,执行下文更详细地描述的平滑算法(框220)。操作序列之后循环回到框201,在框201中运动累加器被重置为零。 [〇〇32]同样在框207处,执行测试以确定在框209处计算的白平衡的值、或者在框211处计算的曝光的值、或者在框209处计算的白平衡的值和在框211处计算的曝光的值两者是否处于关于来自一个或多个先前帧的白平衡或曝光的对应值的指定阈值之外(即,在白平衡或曝光中的重大变化是否出现?)。如果白平衡的值和曝光的值中的一个或两者处于指定阈值之外,则该变化最可能是归因于照明变化的,并且如先前结合框215描述的应用新计算的白平衡和曝光值。如果缓冲器222是满的,则缓冲器中的最旧帧被推出并被发送到视频处理流水线以进行恰当的存储(框228)。将当前帧添加到缓冲器222(框224),并且执行平滑算法 (框220)。之后将运动累加器重置为零(框201)。否则(如果白平衡的值和曝光的值中的两者都落在指定阈值内并且由相机行进的距离在预定值以下),则白平衡和曝光设置保持不变 (框213);如果缓冲器222是满的,则最旧的帧被推出并被发送到视频处理流水线以进行恰当的存储(框228)。将当前帧添加到缓冲器222(框224),并且该过程通过捕获新的帧来继续 (框 2〇2)。
[0033]在图2的操作序列之后,仅仅在相机被移动特定量或者所估计的白平衡或曝光设置与它们的先前估计显著不同时应用新计算的曝光和白平衡值。当这些条件都不满足时,白平衡和曝光设置保持不变。因此,图2的过程减少小的不期望的波动,但是仍然允许曝光和白平衡当在存在重大光照变化时进行调整。在利用不同设置获取的帧的随后组之间的白平衡和曝光设置的跳动通过保持缓冲器具有最近捕获的帧并应用平滑算法来平滑掉。
[0034]图3是根据一组实施例的用于提供针对视频和摄影应用的经平滑的曝光和白平衡调节的第三组示例性过程的流程图。图3的实施方式通过仅仅当相机已经移动特定距离时重新计算白平衡和曝光减小了视频流水线的计算复杂度。这种实施方式具有如下特征:其不能够检测重大照明变化。然而,其可以结合照明传感器一起使用,或者其可以被用于其中不太可能有诸如打开灯光开关的重大照明变化的短视频剪辑。[〇〇35]图3的操作序列在框301处开始,在框301处将运动累加器初始化为零。在框302处, 捕获新的视频帧。之后,在框303处,基于惯性传感器204来计算在帧时间(1/帧速率)期间的相机移动(移动的量和方向)。在框305处将在框303处计算的相机移动添加到累加器以计算相机已经行进的总距离。如果行进的距离达到或超过预定阈值(框307),则触发自动白平衡 (AWB)算法209和自动曝光(AE)算法211 (框312)以计算针对白平衡和曝光设置的新的值。从该帧向前应用(框315)针对白平衡和曝光设置的新的值。否则,从框307的负向分支导向框 313,在框313中,保持白平衡和曝光的旧(现有)值不变。在任一情况下,如果缓冲器222是满的(框326),则缓冲器中的最旧的帧被推出并被发送到视频处理流水线以进行恰当的存储 (框328)。之后将当前帧添加到缓冲器222(框324)。[〇〇36]如果图3的操作序列前进通过框313,则处理通过利用旧(现有)设置捕获新的帧 (框302)来继续。如果图3的操作序列前进通过框315,则利用新的设置来完成捕获,执行平滑算法(框320),并且算法循环回到框301,在框301中将累加器重置为零。
[0037]对于平滑算法(图3的框320和图2的框220),一个方法是要获得针对当曝光和白平衡被最后改变时的帧和利用新的设置拍摄的第一帧的白平衡和曝光值,并且对针对在其之间的中间帧的白平衡和ISO设置进行插值(当缓冲器中的帧已经被捕获时,它们的曝光时间不能够再被改变,但是它们的ISO设置能够被修改以便对其进行补偿)。这做出如下假设:那些值是帧中的全局设置(其并不总是如此)。另一方面是要使用Farbman等人的SIGGRAPH 2011的文章“Tonal Stabilizat1n of Video”中提出的通过考虑当曝光和白平衡被最后改变时的帧和利用新的设置拍摄的第一帧作为锚定帧的算法。备选地,其他类似的方法能够被用于平滑掉过渡。使用这种类型的缓冲器与下一代相机体系结构同步,其中循环缓冲器被规划用于诸如零快门迟滞的应用。
[0038]参考图4,示出了包含本发明的特征的说明性电子设备10的前视图。尽管本发明将参考附图中示出的示例性实施例进行描述,但是应当理解本发明能够被体现在许多备选形式的实施例中。另外,能够使用任何适当的大小、形状或类型的元件或材料。[〇〇39]根据本发明的一个实施例,设备10是多功能便携式电子设备。然而,在备选实施例中,本发明的各个实施例的特征能够被使用在诸如移动电话、游戏设备、音乐播放器、笔记本电脑、相机设备或个人数字助理的任何适当的类型的便携式电子设备中。另外,如本领域中已知的,设备10能够包括多个特征或应用,例如相机、音乐播放器、游戏播放器或者互联网浏览器。设备10总体上包括外壳12、发送器14、接收器16、(连接到发送器14和接收器16 的)天线18、例如外壳12内的电子电路20,例如控制器(其能够包括处理器[或例如中央处理单元(CPU)])22和存储器24,用户输入区26、显示器28、惯性传感器204,例如加速度计或陀螺仪,以及存储器缓冲器222。应当理解,尽管用户输入区26被图示为键盘,但是本发明的各种示例性实施例可以包括在用户输入区26处的触摸屏技术。显示器28还能够形成用户输入区段,例如触摸屏。应当指出,在备选实施例中,设备10可以具有如本领域中已知的任何适当的类型的特征。额外地,设备10内的这些部件中的全部通常由诸如电池30的便携式电源供电。
[0040]现在还参考图5,电子设备10还包括相机32,相机32被示出为面向后(例如用于捕获图像和/或视频以进行本地存储)但是可以备选地或额外地为面向前(例如进行视频呼叫)。相机32可以由快门致动器34并且可选地由变焦致动器36来控制。然而,可以提供任何适当的相机控制功能和/或相机用户输入。
[0041]电子设备10还包括相机曝光系统38。根据本发明的一些实施例,相机曝光系统38 被配置为执行AE算法211(图2和3)和AWB算法209。例如,曝光时间的选择直接影响拍摄的照片的外观。曝光时间(或快门速度)确定在其期间传感器在捕获图像的同时收集光的时间量。这使图像更亮或更暗。此外,在针对具有运动的场景的照片中,短曝光时间“冻结”运动中的对象;另一方面,图像中的较长曝光时间提供归因于场景中的移动对象的‘抖动’(还被称为“运动抖动”,其能够用于描绘例如运动)。[〇〇42] 现在还参考图6,设备10—般包括控制器22,例如微处理器。电子电路例如在印刷电路板上包括耦合到控制器22的存储器24。存储器24能够包括多个存储器,包括例如可移动存储器模块和一个或多个缓冲器。备选地或额外地,可以提供单独的缓冲器222。惯性传感器204可以包括一个或多个加速度计或陀螺仪。该设备具有用户能够使用的应用25,例如软件。应用能够包括例如电话应用、互联网浏览应用、玩游戏应用、数字相机应用、地图/gps 应用、等等。这些仅仅是示例并且不应当被认为是限制性的。一个或多个用户输入26耦合到控制器22,并且一个或多个显示器28耦合到控制器22。相机曝光系统38也耦合到控制器22。 [〇〇43]尽管已经集合许多实施例和实现方式描述了本发明,但是本发明不受此限制而是涵盖落入随附权利要求的视界内的各种明显的修改和等效布置。尽管以各权利要求之中的特定组合表示本发明的各特征,但是可预见到这些特征能够以任何组合和顺序来布置。
[0044]图1-3的流程图的操作以及流程图中的操作的组合可以通过各种装置来实施,各种装置例如硬件、固件、处理器、电路和/或与运行包括一个或多个计算机程序指令的软件相关联的其他设备。例如,在各个实施例中描述的流程中的一个或多个可以由计算机程序指令来实施。在示例实施例中,实现各个实施例中描述的过程的计算机程序指令可以由装置的至少一个存储器设备存储并由装置中的至少一个处理器执行。任何这样的计算机程序指令可以被下载到计算机或其他可编程装置(例如,硬件)中以产生一种机器,使得得到的计算机或其他可编程装置体现用于实现各流程图框中指定的操作的部件。这些计算机程序指令还可以被存储在可以引导计算机或其他可编程装置以特定方式工作的计算机可读存储介质(如与诸如载波或电磁信号的传输介质相反),使得存储在计算机可读存储器中的指令产生一款制品,对其的运行实施各流程图中指定的操作。计算机程序指令还可以被下载到计算机或其他可编程装置上以使一系列操作步骤被执行在计算机或其他可编程装置上从而产生计算机实施的过程,使得在计算机或其他可编程装置上被执行的指令提供用于实施流程图中的操作的操作。借助于装置10 (图4-6)描述图1 -3的方法的操作。然而,方法的操作能够通过使用任何其他装置来描述和/或实践。
[0045]以上描述的各种实施例可以被实施在软件、硬件、应用逻辑或软件、硬件和应用逻辑的组合中。软件、应用逻辑和/或硬件可以驻存在至少一个存储器、至少一个处理器、装置或计算机程序产品上。在示例实施例中,应用逻辑、软件或指令集被维持在各种常规计算机可读介质中的任何一种上。在本文档的上下文中,“计算机可读介质”可以是能够包含、存储、通信、传播或传输用于由指令执行系统、装置或设备(例如计算机)使用或结合指令执行系统、装置或设备(例如计算机)使用的指令的任何介质或部件,其中的一个示例是图4-6中描述和描绘的装置。计算机可读介质可以包括计算机可读存储介质,其可以是能够包含或存储用于由指令执行系统、装置或设备(例如,计算机)使用或结合指令执行系统、装置或设备(例如,计算机)使用的指令的任何介质或部件。
[0046]如果期望,本文中讨论的不同功能可以以不同顺序和/或与其他功能同时地来执行。另外,如果期望,所描述的功能中的一个或多个可以是任选的或可以被组合。
[0047]尽管在独立权利要求中阐述了各实施例的各个方面,但是其他方面可以包括来自所描述的实施例的特征的其他组合和/或具有独立权利要求的特征的从属权利要求,并且不仅仅是在权利要求书中明确阐述的组合。
[0048]还要在本文中指出,尽管上文描述了示例实施例,但是这些描述不应当在限制的意义上被查看。相反,可以存在在不脱离如权利要求书限定的本公开内容的范围的情况下进行的若干变型和修改。[〇〇49]所属技术领域的技术人员知道,本发明的各方面可以实现为装置、方法或计算机程序产品。因此,本发明的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻存软件、微代码、等等)或者可以全部在本文中总体上被称为“电路”、“模块”或“系统”的组合了软件和硬件方面的实施例的形式。此外,本发明的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有体现在其上的计算机可读程序代码。
[0050]可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以为计算机可读信号介质或计算机可读存储介质。计算机可读存储介质不包括传播信号,但是可以为例如但不限于电、磁、光电磁、红外线或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体示例(非穷举列表)将包括以下:具有一个或多个线缆的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(R0M)、可擦可编程只读存储器(EPROM或闪存)、光纤、便携式紧致盘只读存储器(CD-ROM)、光学存储设备、磁性存储设备或者前述的任何适当的组合。在本文件的上下文中,计算机可读存储介质可以是能够包含或存储程序的任何有形介质,该程序可以被指令执行系统、装置或者器件)使用或者与其结合使用。
[0051]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中实现了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0052]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0053]用于执行本发明的各方面的操作的计算机程序代码可以以一种或多种编程语言的任何组合来编写,一种或多种编程语言包括面向对象编程语言(例如Java、Smalltalk、C+ +等等)和常规程序化编程语言(例如“C”编程语言或类似的编程语言)。程序代码可以全部地运行在用户的计算机上、部分地运行在用户的计算机上、作为独立软件包运行、部分地运行在用户的计算机上并且部分地运行在远程计算机上或全部地运行在远程计算机或服务器上。在后一种情形下,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以(例如,通过使用互联网服务提供商的互联网)对外部计算机进行连接。
[0054]以上参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合能够通过计算机程序指令来实施。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生一种机器,使得经由计算机或其他可编程数据处理装置的处理器运行的指令创建用于实施流程图和/或一个或多个框图框中指定的功能/动作的模块。
[0055]这些计算机程序指令还可以被存储在能够引导计算机、其他可编程数据处理装置或其他器件以特定方式工作的计算机可读介质中,使得存储在计算机可读介质中的指令产生一款制品,该制品包括实施流程图和/或一个或多个框图框中指定的功能/动作的指令。
[0056]计算机程序指令还可以被下载到计算机、其他可编程数据处理装置或其他设备上以使得一系列操作步骤被执行在计算机、其他可编程装置或其他设备上从而产生计算机实现的过程,使得运行在计算机或其他可编程装置上的指令提供用于实现流程图和/或一个或多个框图框中指定的功能/动作的过程。
[0057]本文中使用的术语仅仅是为了描述具体实施例的目的并且不旨在为对本发明的限制。如本文中使用的,单数形式的“一”、“一个”和“所述”旨在还包括复数形式,除非上下文另行清楚指示。还将理解,术语“包括”和/或“包含”当在本说明书中使用时详细列举陈述的特征、整数、步骤、操作、元件和/或部件的存在,但是不排除一个多个其他特征、整数、步骤、操作、元件、部件和/或其组的存在或增加。
[0058]在下面的权利要求书中的任何和所有装置或步骤加功能元件的对应的结构、材料、动作和等价物旨在包括用于与如特别要求保护的其他要求保护的元件组合地执行功能的任何结构、材料或动作。对各种实施例的描述已经出于说明和描述的目的被呈现,但是不旨在为穷举的或将本发明限于所公开的形式。在不脱离本发明的范围和精神的情况下,许多修改和变型对于本领域技术人员将是显而易见的。实施例被选择并被描述以便最好地解释本发明的原理、实际应用,并且以便使得本领域其他技术人员理解本发明用于具有如适于预见到的特定用途的各种修改的各种实施例。
[0059]各种修改和调整可以鉴于前述描述当结合附图阅读时对于相关领域技术人员变得显而易见。
[0060]然而,本公开内容的教导的任何和所有修改将仍然落入本发明的非限制性实施例的范围内。
[0061]尽管在特定实施例的上下文中进行描述,但是对于本领域技术人员而言将显而易见的时,可以进行对这些教导的许多修改和各种改变。因此,尽管已经具体地参考本发明的一个或多个实施例示出并描述了本发明,但是本领域技术人员将理解的是,可以在不偏离如以上阐述的本发明的范围或者不偏离随附的权利要求的范围的情况下进行特定修改或改变。
【主权项】
1.一种方法,包括:收集第一图像帧;将所述第一图像帧、针对所述第一图像帧的第一白平衡值以及针对所述第一图像帧的 第一曝光值存储在存储器缓冲器中;感测来自相机中的一个或多个惯性传感器的信息;收集第二图像帧并且在对所述第一图像帧的所述收集之后且在对所述第二图像帧的 所述收集之前收集一个或多个中间图像帧;使用感测到的所述信息来确定由所述相机从对所述第一图像帧的所述收集到对所述 第二图像帧的所述收集所经过的距离,并且响应于所述距离超过预定阈值,确定针对所述 第二图像帧的第二白平衡值和第二曝光值;以及确定、估计或计算针对所述一个或多个中间图像帧的经平滑的白平衡值和经平滑的曝光值。2.根据权利要求1所述的方法,其中所述确定、估计或计算通过对所述第一白平衡值和 所述第二白平衡值进行插值并且通过对所述第一曝光值和所述第二曝光值进行插值来执 行。3.根据权利要求2所述的方法,其中执行对所述第一白平衡值和所述第二白平衡值的 所述插值,以便减小在针对所述一个或多个中间图像帧的所述第一白平衡值与所述第二白 平衡值之间的白平衡波动。4.根据权利要求2所述的方法,其中执行对所述第一曝光值和所述第二曝光值的所述 插值,以便减小在针对所述一个或多个中间图像帧的所述第一曝光值与所述第二曝光值之 间的曝光波动。5.根据权利要求1所述的方法,还包括确定所述第一白平衡值是否处于所述第二白平 衡值的指定阈值内,并且响应于所述第一白平衡值不处于所述第二白平衡值的所述指定阈 值内,确定针对所述第二图像帧的所述第二白平衡值和所述第二曝光值。6.根据权利要求1所述的方法,还包括确定所述第一曝光值是否处于所述第二曝光值 的指定阈值内,并且响应于所述第一曝光值不处于所述第二曝光值的所述指定阈值内,确 定针对所述第二图像帧的所述第二白平衡值和所述第二曝光值。7.根据权利要求1所述的方法,还包括使用感测到的所述信息来更新指定由所述相机 从对所述第一图像帧的所述收集所经过的总距离的运动累加器。8.一种方法,包括:收集第一图像帧;将所述第一图像帧、针对所述第一图像帧的第一白平衡值以及针对所述第一图像帧的 第一曝光值存储在存储器缓冲器中;收集第二图像帧并且在对所述第一图像帧的所述收集之后且在对所述第二图像帧的 所述收集之前收集一个或多个中间图像帧;将所述第二图像帧、针对所述第二图像帧的第二白平衡值以及针对所述第二图像帧的 第二曝光值存储在存储器缓冲器中;确定所述第一白平衡值是否处于所述第二白平衡值的第一指定阈值内;并且确定所述 第一曝光值是否处于所述第二曝光值的第二指定阈值内;以及响应于所述第一白平衡值不处于所述第二白平衡值的所述第一指定阈值内,或者响应 于所述第一曝光值不处于所述第二曝光值的所述第二指定阈值内,之后确定、估计或计算 针对所述一个或多个中间图像帧的经平滑的白平衡值和经平滑的曝光值。9.根据权利要求8所述的方法,其中所述确定、估计或计算通过对所述第一白平衡值和 所述第二白平衡值进行插值并且通过对所述第一曝光值和所述第二曝光值进行插值来执 行。10.根据权利要求9所述的方法,其中执行对所述第一白平衡值和所述第二白平衡值的 所述插值,以便减小在针对所述一个或多个中间图像帧的所述第一白平衡值与所述第二白 平衡值之间的白平衡波动。11.根据权利要求9所述的方法,其中执行对所述第一曝光值和所述第二曝光值的所述 插值,以便减小在针对所述一个或多个中间图像帧的所述第一曝光值与所述第二曝光值之 间的曝光波动。12.—种装置,包括:至少一个处理器;以及至少一个存储器,其包括计算机程序代码, 所述至少一个存储器和所述计算机程序代码与所述至少一个处理器一起被配置为至少部 分地促使所述装置执行:收集第一图像帧;将所述第一图像帧、针对所述第一图像帧的第一白平衡值以及针对所述第一图像帧的 第一曝光值存储在存储器缓冲器中;感测来自相机中的一个或多个惯性传感器的信息;收集第二图像帧并且在对所述第一图像帧的所述收集之后且在对所述第二图像帧的 所述收集之前收集一个或多个中间图像帧;使用感测到的所述信息来确定由所述相机从对所述第一图像帧的所述收集到对所述 第二图像帧的所述收集所经过的距离,并且响应于所述距离超过预定阈值,确定针对所述 第二图像帧的第二白平衡值和第二曝光值;以及确定、估计或计算针对所述一个或多个中间图像帧的经平滑的白平衡值和经平滑的曝光值。13.根据权利要求12所述的装置,其中所述装置通过对所述第一白平衡值和所述第二 白平衡值进行插值并且通过对所述第一曝光值和所述第二曝光值进行插值来执行所述确 定、估计或计算。14.根据权利要求13所述的装置,其中所述装置执行对所述第一白平衡值和所述第二 白平衡值的所述插值,以便减小在针对所述一个或多个中间图像帧的所述第一白平衡值与 所述第二白平衡值之间的白平衡波动。15.根据权利要求13所述的装置,其中所述装置执行对所述第一曝光值和所述第二曝 光值的所述插值,以便减小在针对所述一个或多个中间图像帧的所述第一曝光值与所述第 二曝光值之间的曝光波动。16.根据权利要求12所述的装置,其中所述装置确定所述第一白平衡值是否处于所述 第二白平衡值的指定阈值内,并且响应于所述第一白平衡值不处于所述第二白平衡值的所 述指定阈值内,所述装置确定针对所述第二图像帧的所述第二白平衡值和所述第二曝光值。17.根据权利要求12所述的装置,其中所述装置确定所述第一曝光值是否处于所述第 二曝光值的指定阈值内,并且响应于所述第一曝光值不处于所述第二曝光值的所述指定阈 值内,所述装置确定针对所述第二图像帧的所述第二白平衡值和所述第二曝光值。18.根据权利要求12所述的装置,其中所述装置使用感测到的所述信息来更新指定由 所述相机从对所述第一图像帧的所述收集所经过的总距离的运动累加器。19.一种装置,包括:至少一个处理器;以及至少一个存储器,其包括计算机程序代码, 所述至少一个存储器和所述计算机程序代码与所述至少一个处理器一起被配置为至少部 分地促使所述装置执行:收集第一图像帧;将所述第一图像帧、针对所述第一图像帧的第一白平衡值以及针对所述第一图像帧的 第一曝光值存储在存储器缓冲器中;收集第二图像帧并且在对所述第一图像帧的所述收集之后且在对所述第二图像帧的 所述收集之前收集一个或多个中间图像帧;将所述第二图像帧、针对所述第二图像帧的第二白平衡值以及针对所述第二图像帧的 第二曝光值存储在存储器缓冲器中;确定所述第一白平衡值是否处于所述第二白平衡值的第一指定阈值内;并且确定所述 第一曝光值是否处于所述第二曝光值的第二指定阈值内;响应于所述第一白平衡值不处于所述第二白平衡值的所述第一指定阈值内,或者响应 于所述第一曝光值不处于所述第二曝光值的所述第二指定阈值内,之后确定、估计或计算 针对所述一个或多个中间图像帧的经平滑的白平衡值和经平滑的曝光值。20.根据权利要求19所述的装置,其中所述装置通过对所述第一白平衡值和所述第二 白平衡值进行插值并且通过对所述第一曝光值和所述第二曝光值进行插值来执行所述确 定、估计或计算。21.根据权利要求20所述的装置,其中所述装置执行对所述第一白平衡值和所述第二 白平衡值的所述插值,以便减小在针对所述一个或多个中间图像帧的所述第一白平衡值与 所述第二白平衡值之间的白平衡波动。22.根据权利要求20所述的装置,其中执行对所述第一曝光值和所述第二曝光值的所 述插值,以便减小在针对所述一个或多个中间图像帧的所述第一曝光值与所述第二曝光值 之间的曝光波动。23.—种计算机程序产品,包括被存储在非瞬态计算机可读存储器中的代码,所述代码 用于当在计算机设备上被执行时执行至少以下各项:收集第一图像帧;将所述第一图像帧、针对所述第一图像帧的第一白平衡值以及针对所述第一图像帧的 第一曝光值存储在存储器缓冲器中;感测来自相机中的一个或多个惯性传感器的信息;收集第二图像帧并且在对所述第一图像帧的所述收集之后且在对所述第二图像帧的 所述收集之前收集一个或多个中间图像帧;使用感测到的所述信息来确定由所述相机从对所述第一图像帧的所述收集到对所述 第二图像帧的所述收集所经过的距离,并且响应于所述距离超过预定阈值,确定针对所述第二图像帧的第二白平衡值和第二曝光值;以及确定、估计或计算针对所述一个或多个中间图像帧的经平滑的白平衡值和经平滑的曝 光值。24.根据权利要求23所述的计算机程序产品,其中所述确定、估计或计算通过对所述第 一白平衡值和所述第二白平衡值进行插值并且通过对所述第一曝光值和所述第二曝光值 进行插值来执行。25.根据权利要求24所述的计算机程序产品,其中执行对所述第一白平衡值和所述第 二白平衡值的所述插值,以便减小在针对所述一个或多个中间图像帧的所述第一白平衡值 与所述第二白平衡值之间的白平衡波动。26.根据权利要求24所述的计算机程序产品,其中执行对所述第一曝光值和所述第二 曝光值的所述插值,以便减小在针对所述一个或多个中间图像帧的所述第一曝光值与所述 第二曝光值之间的曝光波动。27.根据权利要求23所述的计算机程序产品,其中所述计算机程序产品还包括用于执 行以下的代码:确定所述第一白平衡值是否处于所述第二白平衡值的指定阈值内,并且响 应于所述第一白平衡值不处于所述第二白平衡值的所述指定阈值内,确定针对所述第二图 像帧的所述第二白平衡值和所述第二曝光值。28.根据权利要求23所述的计算机程序产品,其中所述计算机程序产品还包括用于执 行以下的代码:确定所述第一曝光值是否处于所述第二曝光值的指定阈值内,并且响应于 所述第一曝光值不处于所述第二曝光值的所述指定阈值内,确定针对所述第二图像帧的所 述第二白平衡值和所述第二曝光值。29.根据权利要求23所述的计算机程序产品,其中所述计算机程序产品还包括用于执 行以下的代码:使用感测到的所述信息来更新指定由所述相机从对所述第一图像帧的所述 收集所经过的总距离的运动累加器。30.—种计算机程序产品,包括存储在非瞬态计算机可读存储器中的代码,所述代码用 于当在计算机设备上被执行时执行至少以下各项:收集第一图像帧;将所述第一图像帧、针对所述第一图像帧的第一白平衡值以及针对所述第一图像帧的 第一曝光值存储在存储器缓冲器中;收集第二图像帧并且在对所述第一图像帧的所述收集之后且在对所述第二图像帧的 所述收集之前收集一个或多个中间图像帧;将所述第二图像帧、针对所述第二图像帧的第二白平衡值以及针对所述第二图像帧的 第二曝光值存储在存储器缓冲器中;确定所述第一白平衡值是否处于所述第二白平衡值的第一指定阈值内;并且确定所述 第一曝光值是否处于所述第二曝光值的第二指定阈值内;以及响应于所述第一白平衡值不处于所述第二白平衡值的所述第一指定阈值内,或者响应 于所述第一曝光值不处于所述第二曝光值的所述第二指定阈值内,之后确定、估计或计算 针对所述一个或多个中间图像帧的经平滑的白平衡值和经平滑的曝光值。31.根据权利要求30所述的计算机程序产品,其中所述确定、估计或计算通过对所述第 一白平衡值和所述第二白平衡值进行插值并且通过对所述第一曝光值和所述第二曝光值进行插值来执行。32.根据权利要求31所述的计算机程序产品,其中执行对所述第一白平衡值和所述第 二白平衡值的所述插值,以便减小在针对所述一个或多个中间图像帧的所述第一白平衡值 与所述第二白平衡值之间的白平衡波动。33.根据权利要求31所述的计算机程序产品,其中执行对所述第一曝光值和所述第二 曝光值的所述插值,以便减小在针对所述一个或多个中间图像帧的所述第一曝光值与所述 第二曝光值之间的曝光波动。
【文档编号】H04N5/14GK105960797SQ201580007054
【公开日】2016年9月21日
【申请日】2015年1月28日
【发明人】M·诺尔卡米, D·瓦奎洛
【申请人】诺基亚技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1