一种手持式相机设备的图像拍摄防抖方式
技术领域
本发明涉及手持式照像设备,尤其涉及防止手持式照像设备在拍照时抖动的方法。
背景技术
众所周知,相机获取图像的过程是外部场景的光线通过光学镜头而在图像传感器上形成光学图像(即图像的明暗细节的二维分布),并通过一定时间的积分,使得光学图像转化为电学图像。在这个过程中,必须保持光学图像在图像传感器上的静态性,否则获得的积分图像就会发生模糊,使得图像的质量受到严重影响。
在黑暗环境中,为了获取适合亮度的图像,图像传感器的曝光时间也需要相应变长。如果此时使用的相机是手持式拍摄设备,人手固有的抖动将不可避免地对拍摄过程带来影响。
目前业界采用的防抖方法主要光学防抖与电子防抖。
光学防抖方法可以分为镜头端方法和传感器端方法,它们的主要区别在于图像抖动补偿发生的位置不同。镜头端方法是通过相机机身上自带的陀螺仪获取相机的抖动方向以后,再通过一片特殊的浮动镜片来进行图像稳定校正,而传感器端方法则是直接通过驱动传感器向图像运动的同向移动来补偿 抖动。使用光学防抖的方法能获得的效果较好,能在保证图像无明显抖动模糊的情况下提高将近4-8倍的曝光时间,获得的图像具有较好的质量。
电子防抖的方法众多,最为常见的简单方式是修改自动曝光程序的曝光参数组合,当被拍摄场景较暗时,通过提高图像传感器输出信号的模拟或者数字增益,以此来减少对曝光时间增加的需求,也即减少了获取图像抖动模糊的可能性,具有防抖的效果。随着MEMS加速计等惯性传感器的微型化和成本大幅度降低,也出现了通过这些传感器来感知当前相机的抖动情况,从而实现防抖功能。另外,业界也提出了一种电子防抖新的方式,即在拍摄时对曝光时间和相机抖动并不做限制,通过后期的图像反解卷积的方式,从单幅或者多幅模糊图像中恢复出清晰的图像。
电子防抖的主要优势是实现上较为简单,如上述通过提高增益、减少曝光时间的方法。但是这种方式的缺点是获取的图像噪声非常大,往往不能符合用户的要求。而采用了加速度计等传感器的方法需要增加一定硬件成本,在加速度计等传感器还未成为中低端手机的标准配备的现状下,大规模的应用还是有一定难度。而通过后期对抖动模糊图像反解卷积处理的方法尚处于学术研究阶段,其对所获取图像类型的要求严格,并且实际处理效果也还没达到商业化应用的水平。
相关的现有技术也可参考已授权的中国专利CN200510108036.2与CN200510108037.7,这些专利提出了使用视频压缩编码中的运动估计方法,通过获取帧间图像的全局相对运动矢量来判读当前图像是否存在抖动,并通 过此全局相对运动矢量对图像进行抖动补偿。这种方法巧妙地利用了现有手持式相机设备都具有的预览(preview)功能来判断相机自身是否存在抖动,并避免使用了加速度计等额外的硬件设备,降低了方案成本。但这些专利具有如下不足之处:(1)这些方法只能简单补偿图像的简单平移带来的视频流视场抖动,即如果单幅图像发生了模糊,这种方法无法解决,但实际相机拍摄过程中,我们需要防止的并不是视频中的前后图像抖动,而正是防止单幅图像自身的模糊;(2)这些方法提出的全局矢量提取方式在大部分低成本手机相机平台上并不可靠。为了降低成本,低成本手机上采用的图像传感器大都采用滚动快门(rolling shutter)的曝光方式,在相机存在抖动的情况下,帧间图像将发生一些不可预料的扭曲形变,因此全局矢量提取并补偿的简单方式并不适用;(3)这些方法中采用的通过前面几帧预测得到的当前帧全局运动矢量和实际估计得到的当前帧运动矢量的差值的方式来判断当前帧是否存在抖动的方式只适用于判断相机在稳定运动时是否存在微量的抖动,而在绝大部分情况下,使用者都是在手持相机并力求相机稳定的情况进行防抖,因此这些方法无法应对这种情况;(4)这些方法中采用的运动补偿带来的图像截取操作必然会带来图像内容的损失。
而尚在审查中的中国专利申请CN200910188891.7提出了使用加速度计判断相机是否存在抖动作为一级防抖措施,同时通过获取多幅在一级防抖以后拍摄的图像的特征信息,合成一张相对清晰的图像的方式作为二级防抖措施。但这种方式采用的所谓的特征合成获取清晰图像的方式跟反解卷积相比 而言并不是一种可靠的获取清晰图像的方式,实际效果不佳,并且还存在以下的不足:(1)此种方法需要额外的硬件,增大了方案的实现成本,只适合高端手机平台采用;(2)更为严重的是,所谓的第二级防抖采用的方法的效果不佳,同样只能应对帧间错位的补偿,无法防止单幅图像自身的模糊。
发明内容
本发明要解决的技术问题在于提出一种防止手持式照像设备在拍照时抖动的方法,用以解决现有的防止手持式照像设备在拍照时抖动的方法所需的硬件成本过高,并且无法避免单帧图像出现模糊的问题。
为实现上述目的,实施本发明的防止手持式照像设备在拍照时抖动的方法包括如下步骤:
判断当前场景的亮度所需要的正常快门速度是否已经超过手持式照像设备的安全快门速度;如果否,则可以直接释放快门而进行拍摄;
如果是,则基于预览模式下的高速图像序列分析,来确定当前手持式照像设备发生抖动的大小;
探测得到的平均抖动大小后,根据预先设定的阈值范围,确定当前的抖动是否大于设定的阈值,如果当前的抖动小于设定的阈值,则允许用户按下快门进行拍摄;如果抖动在一定时间内持续较大,不满足快门释放的条件,则自动调整曝光参数,即自动增大增益,同时减小曝光时间,并且将用来判断抖动程度的阈值相应地变大,使得拍摄更容易达到允许的抖动范围内。
依据上述主要特征,在将增益自动增大,同时减小曝光时间,并且将用 来判断抖动程度的阈值相应地变大的步骤之后,该方法还还包括判断后续一段时间内抖动是否变小,如果抖动变小,则将曝光时间、增益及阈值恢复初始值。
依据上述主要特征,确定当前手持式照像设备发生抖动的大小的方法包括如下步骤:
首先对每一幅图像进行双边滤波降噪处理;
将当前帧的图像划分为多个宏块;
使用类似视频压缩算法中的基于块估计的运动估计算法对符合运动估计的标准的宏块进行处理,估计该块的运动矢量并记录;
对所有求得的有效运动矢量进行均值处理确定手持式照像设备发生抖动的大小。
依据上述主要特征,判断当前的宏块是否符合运动估计的标准是:a)块图像的平均亮度大于一定的阈值;b)块图像的梯度图像平均强度大于平均亮度乘以一定的阈值。
依据上述主要特征,确定当前手持式照像设备发生抖动的大小的方法中采用25点运动矢量估计方法确定相机发生抖动的大小。
依据上述主要特征,采用25点运动矢量估计方法确定手持式照像设备发生抖动的大小时是在25点所在块采用具有1/4像素精度的运动矢量估计算法进行探测。
依据上述主要特征,对手持式照像设备所拍摄的图像的处理方法包括如 下具体步骤:
可以在快门被按下进行获取的完整图像进行处理时,先降低增加的增益取得一幅图像;
采用正常曝光时间,再拍摄一副图像;
分别统计两幅图像的直方图,并通过直方图匹配的方法,将第一副图像的直方图匹配成第二幅图像的直方图,将第一副较暗但保证无模糊的图像校正到正常的亮度和色彩饱和度水平;
通过去噪算法进行处理,去除多余噪声。
与现有技术相比较,本发明具有如下有益效果:
(1)本发明降低了硬件上的成本,使得无需另外增加加速度计或者陀螺仪即可以感知手持式照像设备是否存在抖动,并将此信息用于后续的防抖拍摄流程。
(2)本发明在常规的块匹配运动矢量估计的算法基础上,采用了只利用有效块的运动矢量作为相机抖动的判断依据。不同于之前类似的技术,它们使用了容易受到干扰的全局运动矢量估计。
(3)本发明只对特定位置的25点进行亚像素精度的运动矢量估计,在不明显降低准确度的前提下大大提高了算法的实时性。
(4)在判断相机是否抖动的判断上,本发明采用了对于静止图像防抖拍摄而言更加可靠的方法。之前的类似技术采用的预测全局矢量和实际估计全局矢量的方法只适用于视频图像的防抖动,对于静止图像的防抖不适用。
(5)本发明无需对得到的图像进行剪裁处理,因此没有现有技术存在的内容损失的问题。
(6)本发明可以减少甚至防止单幅静止图像的拍摄中出现的抖动模糊,而现有技术不能解决此问题。
(7)本发明在事先避免抖动模糊图像的产生,获得的图像质量好;而现有技术依靠对已经得到的抖动模糊后期处理提高清晰度的方法不但效率低而且效果差。
(8)本发明同时利用了抖动探测,避免手持式照像设备自身的抖动给图像拍摄带来影响和通过拍摄两幅不同曝光参数的图像进行直方图匹配这两种方法,进一步减少了拍摄图像中出现抖动模糊的可能。
(9)本发明经过直方图匹配后再进行去噪处理,不但减少了图像处理前自有的噪声,还降低了去噪处理算法的难度,只需要使用常规去噪处理方法即可实现,相对其他单纯提高图像增益再进行去噪处理的技术,大大降低了算法的复杂度。
附图说明
图1为为本发明的主要流程图。
图2为判断相机是否发生抖动的流程图。
图3为特定的25点运动矢量分布图。
图4为对图像进行处理的流程图。
具体实施方式
以下结合附图对本发明具体实施方式进行说明。
手持式相机设备(如相机)的抖动虽然是时刻存在的,但是当被拍摄的场景为白天室外等照明充足的情况下,曝光时间较短时它对图像清晰度的影响是可以忽略不计的。但是在照明不足的室内或者晚上的情况下,随着曝光时间的增加,抖动对图像清晰度的影响却不可忽略。对于传统胶片相机,业界有一个计算安全快门速度的经验公式为:快门速度不能低于镜头焦距长度的倒数。对于手机相机,由于传感器大小跟胶片相机不同,不能直接套用此公式,但可以通过等比例换算计算得到类似的结果。例如:5兆像素的手机相机用图像传感器的对角线尺寸大致为5.8mm,配套的镜头的有效焦距长度为4.28mm,而胶片相机的胶片对角线长度大致为40mm,如此可以按比例计算得到此手机相机的安全快门速度大致为1/30秒。通常在手机相机在处于取景模式时,预览(preview)的帧率可以达到每秒30帧以上或者更高,因此此时单幅图像中的模糊程度基本可以忽略,不会对本发明的后续抖动识别带来问题。
请参阅图1所示,为本发明的主要流程图,包括如下步骤:
步骤S01:判断当前场景的亮度所需要的正常快门速度是否已经超过手持式照像设备(如相机)的安全快门速度,其中相机的安全快门速度可依上段揭示的方法计算得到,而判断当前场景的亮度所需要的正常快门速度则是通过一自动曝光程序进行确定,该自动曝光程序通过对预览(preview)图像的亮度分布进行统计后,自动确定合适的曝光时间等曝光参数,此一点现有 技术中多有描述,此处不再详细说明;如果否,则表明当前场景的亮度所需要的正常快门速度没有超过相机的安全快门速度,则进行步骤S02,即可以直接释放快门而进行拍摄;
如果是,则基于预览(preview)模式下的高速图像序列分析,来确定当前相机发生抖动的大小,即步骤S03;
探测得到的平均位移大小后,根据预先设定的阈值范围,确定当前的抖动是否大于设定的阈值,即步骤S04;如果当前的抖动小于设定的阈值,则允许用户按下快门进行拍摄,即执行步骤S02;
如果抖动大小在一定时间内持续较大,不满足快门释放的条件,则自动调整曝光参数,即自动增大增益,同时减小曝光时间,并且将用来判断抖动程度的阈值相应地变大,使得拍摄更容易达到允许的抖动范围内,即步骤S05;之后执行步骤S03与S04,此时因为阈值变大,所以使得拍摄更容易达到允许的抖动范围内,从而更易于释放快门。
当然,在步骤S05之后,可以再判断后续一段时间内抖动是否变小,如果抖动变小,则没有必要再使用上述已减小的曝光时间与增大的增益,同时也没必要按调大后的阈值判断是否释放快门,即将曝光时间、增益及阈值恢复初始值,如此避免因使用较大的曝光参数进行曝光而产生的图像噪声较大的问题。
请参阅图2所示,为判断相机是否发生抖动的流程图,包括如下步骤:
首先,由于此时预览(preview)图像为了保证足够的亮度,增益较大, 每帧图像具有较高的噪声,所以首先对每一幅图像进行双边滤波(Bilateral filtering)降噪处理,即步骤S20,使用Bilateral filtering的原因其速度相对较快,且去噪和保持图像边缘的能力较为均衡;
以下的处理是使用类似视频压缩算法中的基于块估计的运动估计算法,计算出一些特定块的运动矢量,具体是首先将当前帧图像划分为多个宏块,在本实施例中宏块的大小可为16X16,即步骤S21;
判断是否已处理完所有的宏块,即步骤S22;如否则判断当前的宏块是否符合运动估计的标准(具体的标准如后所述),即步骤S23,如否则转到步骤S22;如是,则估计该块的运动矢量并记录,即步骤S24,之后再返回步骤S22;在步骤S23中,判断当前的宏块是否符合运动估计的标准是:a)块图像的平均亮度大于一定的阈值;b)块图像的梯度图像平均强度大于平均亮度乘以一定的阈值,这两点能够保证选取的块是具有一定图像细节信息,且亮度足够、受到噪声影响较小的块,从这些块估计得到的前后帧的相对运动矢量较为准确。而对于不满足条件的块的运动矢量不作估计。
将所有宏块处理完后,对所有求得的有效运动矢量进行均值处理,以得到平均位移以用于抖动判断,即步骤S25。
这种探测位移的方式,避免了复杂运动和曝光方式带来的全局运动矢量不明显的问题的出现,它只估计可靠区域内运动矢量,而这些矢量足以判断当前相机是否存在抖动。
对于运动估计的算法,从运算复杂度和系统实时性要求考虑,没必要也 并不能简单的采用视频压缩中对所有块均计算运动矢量的方式。根据拍摄时景物主题大部分时间均在视场中心位置,另外考虑到相机旋转运动只在视场边缘有较大的位移,我们采用了如图3中所示的特定的25点运动矢量,一方面提取出最有代表意义的运动矢量,另一方面降低了运算复杂度,使得算法在相机上的实时实现成为可能。
另外,由于用于判断的运动大小的预览(preview)模式分辨率较低,为了准确的探测出对高分辨拍摄(capture)模式下可能存在影响的运动,可以在25点所在块采用具有1/4像素精度的运动矢量估计算法进行探测。
在增加图像的增益以后,图像中的噪声较大,对图像的质量有一定的影响,直接应用常见的高ISO去噪声(High ISO denoise)算法往往很难达到一个既消除噪声,又保留图像细节的效果,为此可按图4所示的流程进行处理,包括如下具体步骤:
可以在快门被按下进行获取的完整图像进行处理时,先降低增加的增益取得一幅图像,此时图像中含有的噪声相应的减少,但图像整体亮度和色彩饱和度减少,即步骤S40;
采用正常曝光时间,再拍摄一副图像,此图像即使因为较长的曝光时间发生模糊也可以,即步骤S41;
分别统计两幅图像的直方图,并通过直方图匹配的方法,将第一副图像的直方图匹配成第二幅图像的直方图,如此可以将第一副较暗但保证无模糊的图像校正到正常的亮度和色彩饱和度水平,这种转化的过程可以在特定的 颜色空间中进行,具有较好的效果,即步骤S42;
因转化后的图像噪声略有增大,可以通过一些常规的去噪算法进行处理,去除多余噪声,即步骤S43。
综上所述,本发明利用相机取景模式的高速图像序列,首先对图像进行Bilateral边界保持和去噪处理,避免接下来的运动矢量估计失误,之后通过图像梯度和均值强度判断当前宏块是否是有效宏块,只估计相邻帧图像有效宏块间的局部运动矢量,提高了运动矢量估计的准确性,避免估计全局运动矢量造成抖动错误判断,可以有效的判断当前手持式相机是否存在抖动及抖动程度的大小,同时在上述过程中应用类似多点自动对焦的方式,采用了在25点具有代表性的位置上进行亚像素精度运动矢量估计的方式进行抖动大小的判断,提高算法实时性同时保证探测的准确性。
另外,本发明根据手持式相机的拍摄特点,探测到抖动超过预设定的阈值即不允许快门的释放,在事先避免单帧抖动模糊的发生,从而不需要求助于目前并不成熟的反卷积去模糊技术。最后通过拍摄两幅图像,一副降低图像增益的大小,图像的亮度和色彩饱和度不正确但不存在抖动模糊,另一幅图像正确曝光但是可能存在抖动模糊,将第一副图像以第二幅图像的直方图为目标进行直方图匹配,以校正第一副图像至正常曝光,其后再对该第一副图像进行去噪处理,即可以得到曝光正确,噪声影响较小且没有抖动模糊的拍摄图像。
与现有技术相比较,本发明具有如下优点:
(1)本发明降低了硬件上的成本,使得无需另外增加加速度计或者陀螺仪即可以感知相机是否存在抖动,并将此信息用于后续的防抖拍摄流程。
(2)本发明在常规的块匹配运动矢量估计的算法基础上,采用了只利用有效块的运动矢量作为相机抖动的判断依据。不同于之前类似的技术,它们使用了容易受到干扰的全局运动矢量估计。
(3)本发明只对特定位置的25点进行亚像素精度的运动矢量估计,在不明显降低准确度的前提下大大提高了算法的实时性。
(4)在判断相机是否抖动的判断上,本发明采用了对于静止图像防抖拍摄而言更加可靠的方法。之前的类似技术采用的预测全局矢量和实际估计全局矢量的方法只适用于视频图像的防抖动,对于静止图像的防抖不适用。
(5)本发明无需对得到的图像进行剪裁处理,因此没有现有技术存在的内容损失的问题。
(6)本发明可以减少甚至防止单幅静止图像的拍摄中出现的抖动模糊,而现有技术不能解决此问题。
(7)本发明在事先避免抖动模糊图像的产生,获得的图像质量好;而现有技术依靠对已经得到的抖动模糊后期处理提高清晰度的方法不但效率低而且效果差。
(8)本发明同时利用了抖动探测,避免相机自身的抖动给图像拍摄带来影响和通过拍摄两幅不同曝光参数的图像进行直方图匹配这两种方法,进一步减少了拍摄图像中出现抖动模糊的可能。
(9)本发明经过直方图匹配后再进行去噪处理,不但减少了图像处理前自有的噪声,还降低了去噪处理算法的难度,只需要使用常规去噪处理方法即可实现,相对其他单纯提高图像增益再进行去噪处理的技术,大大降低了算法的复杂度。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。