用于面部图像处理的方法和设备的制作方法

文档序号:6491906阅读:314来源:国知局
用于面部图像处理的方法和设备的制作方法
【专利摘要】本发明提供了用于图像处理的方法、相应设备和计算机程序产品。该方法包括对图像执行面部检测,基于该面部检测,获取至少一个面部的粗糙面部分割区域和所述至少一个面部的轮廓边界,以及基于所述轮廓边界,调整所述粗糙面部分割区域以获得精细面部分割区域。利用本发明的方法、相应设备和计算机程序产品,图像中的粗糙面部区域可以得到精细分割,从而为后续基于精细面部分割区域的图像处理提供了良好的基础。
【专利说明】用于面部图像处理的方法和设备
【技术领域】
[0001]本发明的示例性和非限制性实施方式一般地涉及图像处理,更具体地,本发明的实施方式涉及用于面部图像处理的方法和设备。
【背景技术】
[0002]随着移动照相技术的不断发展,越来越多的用户在每天日常生活中使用移动设备来进行拍照,并将所拍摄的照片或图片通过无线网络发送给好友和同事,或者发布于博客或社交网站,以便及时与好友和同事进行分享。在发布照片前,很多用户(尤其是女性用户)期望能够对照片做一些面部的图像处理,以期获得各种效果。这就对当前的面部图像处理技术提出了更高的要求。
[0003]当前的面部图像处理技术面临的一个主要挑战是如何自动和精准的从包括面部和周边区域的图像中分割出面部,作为进一步面部图像处理的基础。分割出精细的面部区域有利于实现后续令人满意的各种图像处理,例如面部图像编辑、增效等。如果在从图像中分割面部时引入了一些背景图像或者丢失了一些面部区域,将仅获得例如如图1所示出的粗糙面部图像分割区域。
[0004]如图1中所示出,检测到的面部分割区域由虚线包围。从该虚线所包括的面部分割区域可以看出,由于拍摄时的背景照明或者周边颜色的相似度,该分割区域左侧包括了非面部的小段区域,而右侧则将面部靠近左耳的部分面部区域排除在面部分割区域以外。显然,这样的面部分割结果是粗糙的,而基于此粗糙面部分割区域进行后续处理,往往将导致得到的面部图像严重失真,或者得到的效果令用户难以接受。
[0005]实现精细面部区域分割的困难在于图片中对象的多样性、拍摄设备的多样性以及拍摄时环境光线的多样性。事实上,当前的大多数方案并不足以处理具有各类面部特征的图片,例如图片来自于白人或黑人、正面或侧面、在室内或室外拍摄、年轻人或老年人,以及具有不同的清晰度或模糊度。特别地,复杂多变的取景条件会造成面部不平衡的色彩分布并且可能看起来较为模糊,这也导致仅仅通过使用亮度信号或肤色信号对图片进行面部分割无法得到令人满意的效果。进一步,面部区域和背景物体之间的颜色相似度也使在分割完整的面部区域时,难以对颜色信息做到很好的区分。因此,如何获得可靠精细的面部分割区域成为面部图像处理需要解决的首要问题。

【发明内容】

[0006]为了缓解或克服上面所提到的技术问题,本发明的实施方式提供了高效的面部图像分割方案,使得粗糙面部分割区域得到进一步细化,从而得到高质量和高准确度的精细面部分割区域。基于该精细面部分割区域,本发明的实施方式还提出对该精细面部分割区域进行进一步的图像处理,以满足不同用户对于图片效果的需求。
[0007]为此,本发明的一个实施方式提供了一种方法。该方法包括对图像执行面部检测。该方法还包括基于所述面部检测,获取至少一个面部的粗糙面部分割区域和所述至少一个面部的轮廓边界。进一步,该方法包括基于所述轮廓边界,调整所述粗糙面部分割区域以获得精细面部分割区域。
[0008]本发明的另一实施方式提供了一种设备。该设备包括:至少一个处理器以及包含计算机程序代码的至少一个存储器。所述处理器以及所述存储器被配置成利用所述处理器,使得所述设备至少执行对图像执行面部检测。所述处理器以及所述存储器还被配置成利用所述处理器,使得所述设备至少执行基于所述面部检测,获取至少一个面部的粗糙面部分割区域和所述至少一个面部的轮廓边界。进一步,所述处理器以及所述存储器还被配置成利用所述处理器,使得所述设备至少执行基于所述轮廓边界,调整所述粗糙面部分割区域以获得精细面部分割区域。
[0009]本发明的又一实施方式提供了一种设备。该设备包括检测装置,用于对图像执行面部检测。该设备还包括获取装置,用于获取至少一个面部的粗糙面部分割区域和所述至少一个面部的轮廓边界。进一步,该设备包括调整装置,用于基于所述轮廓边界,调整所述粗糙面部分割区域以获得精细面部分割区域。
[0010]本发明的另外的实施方式提供了一种计算机程序产品。该计算机程序产品包括具有存储于其中的计算机可读程序代码部分的至少一个计算机可读存储介质,所述计算机可读程序代码部分用于执行根据本发明的实施方式的用于图像处理的方法。
[0011]通过基于轮廓边界来调整粗糙面部分割区域,本发明的实施方式可以显著提高面部区域分割的精确性,从而为后续的面部图像处理提供了良好的基础。
【专利附图】

【附图说明】
[0012]通过参照附图阅读以下所作的对非限制性实施例的详细描述,本发明的其它特征、目的和优点将会变得更明显。在附图中,相同和相似的附图标记代表相同或相似的装置或方法步骤,其中:
[0013]图1示例性示出了通过现有技术所获得的经粗糙面部区域分割后的图片;
[0014]图2是示例性示出了根据本发明的实施方式的用于面部图像处理的方法的简化流程图;
[0015]图3是示例性示出了根据本发明的实施方式的用于面部图像处理的方法的详细流程图;
[0016]图4是示例性示出了根据本发明的实施方式的用于获得粗糙面部区域分割的操作示意图;
[0017]图53-5(3是分别示例性示出了根据本发明的不同实施方式对图片进行精细处理以获得精细面部分割区域的示意图;
[0018]图6是示例性示出了利用根据本发明的实施方式所获得的精细面部分割区域对面部执行白化处理的示意图;
[0019]图7是示例性示出了利用根据本发明的实施方式所获得的精细面部分割区域对面部执行平滑处理的示意图;
[0020]图8是结合具体图片处理过程来示例性示出了根据本发明实施方式的用于面部图像处理的整体过程的流程图;
[0021]图9是示例性示出了能够实现本发明的实施方式的设备的框图;以及[0022]图10是示例性示出了能够实现本发明的实施方式的另一设备的框图。
【具体实施方式】
[0023]本发明的示例性实施方式提供了高效的面部区域分割的方法和设备,以及利用该方法和设备对得到的精细面部分割区域进行“美化”(包括白化和平滑)处理的方法和设备。为了获得精细面部分割区域,本发明的示例性实施方式提出了利用面部检测对图像中的面部首先执行粗糙分割,从而获得粗糙面部分割区域。接着,对图像中的面部进行处理以获得面部区域的轮廓边界。随后,将二者进行有效的结合以获得精细面部分割区域。
[0024]在一些实施方式中,本发明提出以轮廓边界为基准在二维空间(横向或纵向)上来调整粗糙面部分割区域,以使得该粗糙面部分割区域填充轮廓边界以内的区域,从而获得精细面部分割区域。在另外一些实施方式中,本发明还提出当存在轮廓边界中断时,在中断区域间执行内插操作,从而得到精细面部分割区域。
[0025]下面将结合附图来详细描述本发明的各个实施方式。
[0026]图2是示例性示出根据本发明的实施方式的用于面部图像处理的方法200的简化流程图。如图2中所示,在步骤S202处,方法200对图像执行面部检测。接着,在步骤S204中,方法200基于所述面部检测,获取至少一个面部的粗糙面部分割区域和所述至少一个面部的轮廓边界。尽管未示出,在一个实施方式中,方法200利用至少一个面部的局部区域来建立肤色模型并且接着对该至少一个面部应用建立的肤色模型(例如图4中的图片P406所示出的模型),从而获取该至少一个面部的粗糙面部分割区域。在另一个实施方式中,方法200使用小波变换(例如Haar小波卷积算法)来确定该轮廓边界。
[0027]应该理解的是,上述的获取粗糙面部分割区域和面部轮廓的处理仅仅是示例性的和说明性的,本发明的实施方式并不限于这里所公开的具体处理方式。本领域技术人员根据本说明书的教导,可以采取其他合适的(现有或未来开发的)方法来获取粗糙面部分割区域和面部轮廓。
[0028]在获取至少一个面部的粗糙面部分割区域和所述至少一个面部的轮廓边界后,方法200前进到步骤S206。在该步骤中,方法200基于所述轮廓边界,调整所述粗糙面部分割区域以获得精细面部分割区域。在一个实施方式中,方法200以所述轮廓边界为基准,沿横向或纵向上的至少一个方向来调整所述粗糙面部分割区域,使得所述粗糙面部分割区域填充整个轮廓,从而获得精细面部分割区域。
[0029]进一步,在一个实施方式中,方法200检测粗糙面部分割区域的边界像素点是否在预先设置的位置调整范围以内(例如在某个阈值范围内)偏离所述轮廓边界,并且当检测到所述偏离位于所述位置调整范围以内时,方法200将偏离的所述边界像素点调整到所述轮廓边界上与其在横向或纵向上对准的点。当检测到所述偏离位于所述位置调整范围以外时,方法200将该偏离视为显著突出于轮廓边界,并且去除该突出部分,从而获得精细面部分割区域。
[0030]尽管在多数情况下,在步骤S204所确定的轮廓边界是连续或封闭的,但实际操作中可能由于各种潜在原因而导致轮廓边界存在中断或断开的现象。为此,在一个实施方式中,方法200还检测所述轮廓边界是否存在中断,并且在中断的两个端点间执行内插操作,例如依轮廓边界走向而采取线性或非线性的插值操作来填补中断的边界,从而获得精细面部分割区域。
[0031]利用方法200以及其变形或扩展的上述各种实施方式,可以实现对图片中的面部区域的精细分割。这样的精细分割不仅有效的排除背景干扰信息或图像噪声,并且也尽可能多的保留面部细节。另外,这样的精细面部分割区域也为本发明的后续图像处理(包括白化和平滑处理)提供良好的素材基础。
[0032]尽管没有在图2中具体示出,关于白化处理操作,方法200进一步确定精确面部分割区域内的所有像素点的灰度值,并且基于灰度值将所有像素点分成至少两类,以及以不同的等级来对每类像素点的灰度值进行调整,以实现对精细面部分割区域的白化处理。简言之,方法200将对具有不同灰度值的像素点分别进行不同程度的白化处理,以达到初始灰的像素点不会变得太白,而初始白的像素点变得更白,由此增强了图像面部的对比度。
[0033]在一个实施方式中,方法200对精细面部分割区域内的所有像素点的灰度值进行统计,并基于所述统计,确定针对灰度值的至少一个阈值,从而根据所述至少一个阈值将所有像素点划分为前述的至少两类。关于至少一个阈值,在一个实施方式中,方法200对精细面部分割区域内的所有像素点的灰度值进行排序,并按顺序选取预定数量的像素点,并且对选取的像素点的灰度值求平均,从而将该平均值确定为所述的至少一个阈值。
[0034]可以看出,上述的阈值确定方式特定于各个面部,从而对于面部白化处理具有更强的针对性。另外,为了获得不同的白化效果,在一个实施方式中,方法200还对每类像素选择不同的(白化)等级(例如图6的图片?606、?608和?610所示出的不同等级的白化效果),该等级可以通过参数来调节。这样的设置有助于向用户提供不同的白化效果选择,用户可以通过预览功能来预览,并最终选择自己期望的白化效果。
[0035]上面讨论了对精细面部分割区域进行白化处理的操作,下面将讨论对获取的精细面部分割区域进行平滑处理。在本发明的一个实施方式中,方法200在获取精细面部分割区域后,进一步确定所述精细面部分割区域内的每个像素点与其相邻区域内的各个相邻像素点间的灰度值差,将每个灰度值差与预定的阈值进行比较,以确定对于各个相邻像素点,所述每个像素点所具有的平滑权重,其中所述平滑权重大小与所述灰度值差成反比,并且基于所述各个相邻像素点的灰度值、所述平滑权重以及各个相邻像素点与所述每个像素点之间的空间距离,调整所述每个像素点的灰度值,以实现对所述精细面部分割区域的平滑处理。
[0036]关于上述的平滑权重,本发明实施方式的平滑处理考虑每个像素点的灰度值及其相邻区域内的像素点的灰度值,当两个像素点之间的灰度值差越大,则这两个像素点所涉及的区域之间很有可能存在边界,而该边界是平滑操作所要尽量避开的区域。基于此,可以认为该相邻像素点对于待平滑处理的像素点的平滑操作贡献较小,从而针对该相邻像素点,赋予待平滑处理的像素点较小的权重。反之,则赋予较大的权重。
[0037]关于上述预定的阈值的选择,在一个实施方式中,方法200计算所述精细面部分割区域内所有像素点的梯度值,接着对所有像素点的梯度值进行排序并按顺序选取预定数量的像素点,以及对选取的像素点的梯度值求平均,从而将该平均值设置为所述预定的阈值。与白化处理类似,这样的阈值设置对于各个图片具有更强的针对性和专属性,从而可以达到更好的平滑效果。
[0038]上面讨论了对精细面部分割区域进行平滑处理的操作,应该注意的是,该平滑处理既可以在步骤3206后直接执行,也可以在白化处理之前或之后执行,依用户的不同偏好或设置而定。
[0039]图3是示例性示出根据本发明的实施方式的用于面部图像处理的方法300的详细流程图。如图3中所示,在步骤3302中,方法300对待处理的图像进行面部检测。如本领域技术人员所理解的,对于具有面部的任意给定图像,可以通过面部检测模型检测到边界框。除了检测到边界框以外,还有必要扩展该边界框,以便得到的扩展框不仅包括面部区域,还包括与该面部结合的颈部区域(例如图4的图片?402中所示的,稍后将结合图4描述),从而便于后续面部图像处理。
[0040]接着,方法300前进到步骤3304。此处,方法300对检测到的面部肤色进行建模。在获得肤色模型后,在步骤3306处,方法300对图像执行粗糙面部分割,从而获得粗糙面部分割区域。该肤色建模和粗糙面部分割的处理过程将在稍后结合图4来具体描述。
[0041]在步骤3308处,方法300与粗糙面部分割处理步骤3304和3306并行地执行获取面部区域的轮廓边界的处理。在本发明的一个示例性实施方式中,可以执行小波变换(例如他虹小波变换)来计算得到面部的轮廓边界,该面部的轮廓边界接近于或与实际面部轮廓重合,尽管在某些情况下,该轮廓边界可能由于图像质量或其他潜在原因而发生中断。
[0042]正如前面所描述的,尽管使用肤色模型可以获得粗糙面部分割区域,但该结果不足以良好地辅助面部图像处理任务。通常,面部分割区域的粗糙性可以归结于(1) 一些背景图像被错误地归类为皮肤;(2) —些面部区域在分割过程被丢失。事实上,复杂多变的光照条件造成面部肤色的非平衡分布是很难仅仅依靠于肤色模型的处理就可以克服的。因此,本发明的实施方式提出对得到的粗糙面部分割区域进行精细处理以获得满意的精细面部分割区域。
[0043]为此,在步骤3310,方法300选择横向(或称X方向)或纵向(或称7方向)中的至少一个方向来执行精细分割面部区域(或称细化粗糙面部分割区域)的操作。在本发明的一些实施方式中,该细化过程通过步骤3308中获得的面部轮廓边界上的强边界响应来调整步骤3306中获得的粗糙面部分割区域。
[0044]具体地,首先在步骤3312中,方法300基于面部轮廓边界来调整相对偏离的像素点,这里的相对偏离可以设置在一定的阈值范围内,以便可以对超过该阈值范围的像素点执行步骤3314的处理。关于步骤3312的具体操作,稍后将参考图53做示例性描述。
[0045]当方法300前进到步骤3314处时,其将检测在经步骤3312处理所获得的图片是否还存在显著偏离于面部轮廓边界的像素点,此处的显著偏离表示该偏离已经超出前述所设定的搜索范围,即利用步骤3312已经无法实现调整的情况。该显著偏离可以是由于背景颜色与面部肤色接近而被误认为面部区域,从而导致从面部区域明显突出的区域。通过执行步骤3314,可以基于轮廓边界调整显著相对偏离的像素点。关于步骤3314的具体操作,稍后将参考图56做示例性描述。
[0046]当方法300前进到步骤3316处时,其将检测轮廓边界是否存在中断。正如本领域技术人员所能理解的,在实际的轮廓边界计算过程中,可能会发生轮廓边界断裂成若干个段的情况。因此,当检测到该中断情形时,执行步骤3316对轮廓边界中断的区域执行内插操作以填补该中断的区间。关于步骤3316的具体操作,稍后将参考图5。来示例性描述。
[0047]在执行完步骤3316后,方法300就在步骤3318获得了精细面部分割区域,以用于后续步骤S320和S322的图像处理使用。应该注意的是,上面关于获得粗糙面部分割区域和计算面部轮廓边界的描述仅仅是示例性的,本领域技术人员可以采取其他任意合适的方法来实施。
[0048]在获得精细面部分割区域后,方法300还附加地执行图片“美化”处理,包括步骤S320的白化处理和步骤S322的平滑处理。首先,在步骤S320处,方法300基于精细面部分割区域执行白化(或称“美白”)操作。关于步骤S320的具体操作,稍后将参考图6来示例性描述。
[0049]接着,在步骤S322处,方法300还基于精细面部分割区域执行平滑处理。为此,本发明的实施方式提出主要基于局部区域信息自适应地来平滑每个像素,以移除面部额头、面颊或颈部上的褶皱或斑点,同时又不弱化嘴、牙齿和眼睛等面部细节。关于步骤S322的具体操作,稍后将参考图7来示例性描述。
[0050]上面结合图3所示出的各个步骤描述了方法300,但应该注意的是,该流程图中的步骤顺序仅仅是示例性的,本发明的实施方式并不受其限制,并且针对不同的面部图像可以省略相关的步骤。例如,尽管按顺序描述了步骤S312、S314和S316,当粗糙面部分割区域中不存在需要步骤S312、S314或S316处理的情形时,则相应的步骤可以省略。另外,步骤S320和S322的顺序也可以互换,例如先执行平滑处理后进行白化处理,这可以例如根据用户的偏好来选择和设置。
[0051]图4是示例性示出了根据本发明的实施方式的用于获得粗糙面部区域分割的操作示意图,其包括了肤色建模和粗糙面部分割的处理过程。
[0052]正如前面在方法300的步骤S302处所描述的,图片P402中围绕男士主要面部区域的内框即为边界框(或也称面部检测框),而扩展到包括该男士颈部的外框即为扩展框。可以看出,扩展框不仅包括完整的面部区域,而且也包括了多余的背景区域,例如扩展框中男士面部后的背景以及衣领,而这些背景区域稍后可以通过利用肤色模型来滤除。
[0053]由于利用一个通用的肤色模型来检测所有类型的面部既不现实也不可行,为了使面部分割相对可靠,本发明提出针对各个面部构建特定于该面部的肤色模型,从而尽可能获得更有效的肤色模型。如图4中所示,本发明提出从图像面部检测到的边界框拾取一小块面部区域(如图4中上部的图片P404中所示出的)作为学习区域来执行色差信号UV的色彩空间内的肤色模型学习过程。例如,可以通过2D高斯参数模型对相应的皮肤分布进行建模,从而获得图4右上方图片P406中所示的2D高斯肤色色差模型(即本发明的肤色模型)。该肤色模型接着可以用于对左侧图片P402的扩展框中的面部皮肤区域进行过滤以滤除背景图像信息,从而得到如图4中下方所示出的图片P408。为了便于理解,下面示例性地描述该建模及过滤操作过程。
[0054]对于选定的学习区域内的每点像素P,通过颜色变换获得其对应的色差信号C(P)=(up, vp) 0接着,统计学习区域内所有像素的色差信号,获得色差信号均值πιε(ρ)和方差σ c(p),从而可以建立2D高斯肤色色差模型f (c (P)) = N(c (P),mc(p),σ c(p)),其中N是以mc(p)为均值,σ c(p)为方差的2D高斯函数。此后,对于扩展框中的面部图像区域,计算每个像素点q的色差信号c(q) = (IVVq),将其代入通过学习获得的肤色模型中,即f(c(q)) =N(c(q),mc(p), σ c(p)) 0如果f(c(q))大于某个特定阈值(例如O?I之间的某个小数),则可以认为当前像素点为肤色,否则认为其非肤色。通过上述操作,就可以过滤背景图像信息,获得大致的人脸面部区域。
[0055]接着,可以对该获得的图片?408执行一些图像形态学操作,以便将图片?408中的空洞进行填充并且去除图像噪声,从而获得如图4右下侧所示出的图片?410,这也就得到了根据本发明的一个实施方式的粗糙面部分割区域。可以看出,在粗糙面部区域分割过程中,本发明的实施方式利用了皮肤信息作为可靠的线索来从扩展框中分割出面部皮肤区域。
[0056]图53示出根据本发明的一个实施方式的用于对图片的粗糙面部分割区域进行精细处理的过程,也即方法300中的步骤3312的处理。如图53中所示,区域?502示出了当前所获得的粗糙面部分割区域,而曲线52指示出面部的轮廓边界,从区域?502中容易看出,该粗糙面部分割区域右侧上部区域突出于轮廓边界52以外,而右侧下部区域又凹陷于轮廓边界52以内,显然这样的面部区域分割是不精准的。
[0057]为此,本发明的实施方式提出,当检测到存在上述的偏离情况时,可以对位于粗糙分割区域边缘上的像素点(如标号54所示出的)设定一个搜索范围。假设像素点54的二维坐标为“,50,则其横向上的搜索范围可以表示为如图如中的双向箭头56和58所示的。类似地,其纵向上的搜索范围可以表示为(丫-^丫+”^未示出)。此处的参数“ 8 ”的值的选择确定了在细化过程中边界信息的权重,值越大则更多的面部轮廓边界点将被搜索,而值越小则有可能会减小搜索到的轮廓边界点的数目。因此,可以通过大量学习过程来选择一个合适的值,这样既可以避免不必要地扩大搜索范围,也可以避免过度缩小搜索范围。接着,可以在该搜索范围内检测面部轮廓边界52上是否存在与该像素点54在横向或纵向上对准的点(也称为强边界响应点,其在色彩空间下获得),如果存在这样的点,则将该像素点调整到面部轮廓边界上与其对准的点处。例如,当检测到像素点54在其横向搜索空间,即箭头56和58之间的空间内存在与该像素点54对应的点58,而该点58恰好位于面部轮廓边界52上,此时就可以将像素点54的位置更新到点58处。对于检测到像素点恰好位于与面部轮廓边界上的点重合的情形,如图中所示的点60,则此时像素点的位置将保持不变。通过上述方式的位置调整,就可以得到如区域?504所示出的较为精细的面部分割区域。
[0058]为了便于理解,图如下部以实际的图片?506为例来示出该细化过程。当实际的图片?506在经过本发明前述的粗糙面部区域分割和面部轮廓计算后就分别得到了图片?508和?510。从图片?508中大小不同的圆形所包围的区域可以看出,该粗糙面部分割区域将面部中的较暗区域(如眉毛)视为非面部区域。通过本发明的实施方式,可以找到图片?510中与之对应的轮廓边界(以圆形示出接着,利用上面所描述的调整方式,可以对粗糙分割的图片?508进行处理。例如,对于凹陷于面部轮廓边界以内的像素点(如眉毛处),可以将其调整到位于搜索范围以内的、与其横向或纵向上对准的轮廓边界点处,从而得到如图片?512所示出的精细面部分割区域。
`[0059]图56示出根据本发明的一个实施方式的用于对图片的粗糙面部分割区域进行调整的过程,也即方法300中的步骤3314的处理。如图56所示,区域?514示出当前的粗糙面部分割区域,其边缘上存在1 6和0三个点,而面部轮廓边界上存在另外三个点1 (1和6,其中3点为粗糙面部分割区域和面部轮廓边界的公共点。可以看出,在点3的相邻区域内,由于多个粗糙分割区域边缘上的像素点(例如6和0点)构成的陡峭空间排列,从而相应形成了向外伸出的显著突起。由于|d-b|和|e-c|的空间距离要远大于参数δ的值,因此此时利用图5a的搜索范围方法已经无法将b点调整到d点的位置以及类似地将c点调整到e点的位置。
[0060]进一步,通过判断沿面部轮廓边界上的点之间的偏差远小于沿粗糙分割区域边缘上的像素点之间的偏差(数学式可以例如表达为|d_a| << b-a并且|e_a| << |c_a|,如区域P514和P516之间的几何块图所绘出的),可以确定粗糙面部分割区域边缘上向外伸出的突出部分应该收缩到面部轮廓边界以内或者作为背景区域被剪切,以便移除该突起部分。以区域P514为例,该面部分割区域将沿着面部轮廓边界点a、d和e延伸而非初始的像素点a、b和C,由此得到细化的精细面部分割区域,即区域P516。
[0061]同样地,为了便于理解,图5b下部以实际的图片P518为例来示出该细化过程。当实际的图片P518在经过本发明前述的粗糙分割和面部轮廓计算后就分别得到了图片P520和P522。从图片P520中利用大小不同的圆形所包围的区域可以看出,该粗糙分割将面部后方的背景区域(如与面部肤色接近的座椅)视为面部区域。通过本发明的实施方式,可以计算得到图片P522中与之对应的面部轮廓边界(以圆形示出)。接着,利用上面所描述的调整方式,可以对粗糙分割的图片P520进行处理。例如,对于明显突出面部轮廓边界外的像素点,可以将其调整到轮廓边界点以内或剪切掉,从而移除多余的背景区域,得到如图片P524所示出的精细面部分割区域。
[0062]图5c示出根据本发明的一个实施方式的用于对图片的粗糙面部分割区域进行精细处理的过程,也即方法300中的步骤S316的处理。如图5c的区域P526所示,轮廓边界曲线59断开成ab和Cd两段。在根据本发明前述的方法调整该粗糙面部分割区域时,将在b和c两个端点间产生空白区域。
[0063]如前所述,再经过方法300的步骤S312和S314的处理后,突出于轮廓边界ab段以外的粗糙面部分割区域将会收敛于ab段处,而类似地,凹陷于轮廓边界Cd段以内的粗糙面部分割区域将会收敛于Cd段处。基于此,可以合理地推导出断开的b点和c点将被连接,以弥补在计算面部轮廓时所丢失的数据。根据本发明的一个实施方式,鉴于b和c两点间轮廓走势平直,可以考虑使用线性内插(或插值)技术来计算b和c间多个点的坐标,从而实现b点和c点间的连接。另外,当轮廓边界上中断的端点间的走势呈曲线状,也可以考虑使用非线性内插技术,例如bsline插值算法。经过这样的插值操作后,就可以得到细化后的精细面部分割区域,如区域P528所示出的。
[0064]上面结合附图5a_5c、关于粗糙面部分割区域调整的描述主要是针对横向方向做出的,但正如前面所提到的,上述的调整方法同样也适用于在纵向方向上的调整。总之,本发明的实施方式通过这样的细化过程在图像面上沿横向和纵向分别执行,从而得到精细面部分割区域。
[0065]图6是示例性示出了利用根据本发明的一个实施方式所获得的精细面部分割区域对面部执行白化处理(也即方法300中的步骤S320的处)的示意图。
[0066]在得到如图5中的图片P512和P524所示出的精细面部分割区域后,很有可能需要对区域进行白化处理,以使面部清晰、美观、便于辨认和识别。通常,直截了当的方法是对区域内的所有像素以相同的幅度来增加亮度信号Y的水平。然而,这样的方法会直接减小面部的对比度,从而使面部的细节(例如嘴部、牙齿和眼睛)模糊,这对于面部的美化处理是不利的。另外,对面部的白化处理应该具有可调节的多个等级,从而用户可以获得多个不同的白化效果。因此,本发明的实施方式提出对精细面部分割区域进行灰度统计,并且根据统计结果来将面部区域分成若干个不同等级,并对于不同的等级实施不同等级的白化操作,从而得到不同的白化效果。
[0067]为了实现上述的效果,本发明的一个实施方式提出如下的面部皮肤白化函数:
【权利要求】
1.一种方法,包括: 对图像执行面部检测; 基于所述面部检测,获取至少一个面部的粗糙面部分割区域和所述至少一个面部的轮廓边界;以及 基于所述轮廓边界,调整所述粗糙面部分割区域以获得精细面部分割区域。
2.根据权利要求1所述的方法,其中获取至少一个面部的粗糙面部分割区域包括: 利用所述至少一个面部的局部区域来建立肤色模型;以及 对所述至少一个面部应用所述肤色模型,以获取所述至少一个面部的粗糙面部分割区域。
3.根据权利要求1所述的方法,其中利用小波变换来获取所述至少一个面部的轮廓边界。
4.根据权利要求1所述的方法,其中基于所述轮廓边界,调整所述粗糙面部分割区域以获得精细面部分割区域包括: 以所述轮廓边界为基准,沿横向或纵向上的至少一个方向来调整所述粗糙面部分割区域,使得所述粗糙面部分割区域填充整个轮廓。
5.根据权利要求4所述的方法,其中调整所述粗糙面部分割区域包括: 检测粗糙面部分割区域的边界像素点是否在预先设置的位置调整范围以内偏离所述轮廓边界;以及 当检测到所述偏离位于所述位置调整范围以内时,将偏离的所述边界像素点调整到所述轮廓边界上与其在横向或纵向上对准的点。
6.根据权利要求5所述的方法,进一步包括: 检测所述边界像素点是否从所述轮廓边界向外突出而超出所述位置调整范围;以及当检测到所述突出超出所述位置调整范围时,去除所述粗糙面部分割区域上突出所述轮廓边界的部分。
7.根据权利要求6所述的方法,进一步包括: 检测所述轮廓边界是否存在中断;以及 当检测到所述轮廓边界存在中断时,在中断的两个端点间执行内插操作。
8.根据权利要求1所述的方法,进一步包括: 确定所述精确面部分割区域内的所有像素点的灰度值; 基于所述灰度值将所有像素点分成至少两类;以及 以不同的等级来对每类像素点的灰度值进行调整,以实现对所述精细面部分割区域的白化处理。
9.根据权利要求8所述的方法,其中基于所述灰度值将所有像素点分成至少两类包括: 对所述精细面部分割区域内的所有像素点的灰度值进行统计; 基于所述统计,确定针对灰度值的至少一个阈值; 根据所述至少一个阈值将所有像素点划分为至少两类。
10.根据权利要求9所述的方法,其中确定针对灰度值的至少一个阈值包括: 对所有像素点的灰度值进行排序;按顺序选取预定数量的像素点;以及 对所述选取的像素点的灰度值求平均以确定至少一个阈值。
11.根据权利要求8所述的方法,进一步包括: 对于每类像素点选择多个不同的等级来进行所述调整,以实现多个相应不同效果的白化处理。
12.根据权利要求1或8所述的方法,进一步包括: 确定所述精细面部分割区域内的每个像素点与其相邻区域内的各个相邻像素点间的灰度值差; 将每个灰度值差与预定的阈值进行比较,以确定对于各个相邻像素点,所述每个像素点所具有的平滑权重,其中所述平滑权重大小与所述灰度值差成反比;以及 基于所述各个相邻像素点的灰度值、所述平滑权重以及各个相邻像素点与所述每个像素点之间的空间距离,调整所述每个像素点的灰度值,以实现对所述精细面部分割区域的平滑处理。
13.根据权利要求12所述的方法,其中所述预定的阈值通过以下操作来获得: 计算所述精细面部分割区域内所有像素点的梯度值; 对所有像素点的梯度值进行排序; 按顺序选取预定数量的像素点;以及 对所述选取的像素点的梯度值求平均,以获得所述预定的阈值。
14.一种设备,包括: 至少一个处理器以及包含计算机程序代码的至少一个存储器; 所述处理器以及所述存储器被配置成利用所述处理器,使得所述设备至少执行: 对图像执行面部检测; 基于所述面部检测,获取至少一个面部的粗糙面部分割区域和所述至少一个面部的轮廓边界;以及 基于所述轮廓边界,调整所述粗糙面部分割区域以获得精细面部分割区域。
15.根据权利要求14所述的设备,其中所述处理器以及所述存储器被配置成利用所述处理器,使得所述设备至少执行: 利用所述至少一个面部的局部区域来建立肤色模型;以及 对所述至少一个面部应用所述肤色模型,以获取所述至少一个面部的粗糙面部分割区域。
16.根据权利要求14所述的设备,其中利用小波变换来获取所述至少一个面部的轮廓边界。
17.根据权利要求14所述的设备,其中所述处理器以及所述存储器被配置成利用所述处理器,使得所述设备至少执行: 以所述轮廓边界为基准,沿横向或纵向上的至少一个方向来调整所述粗糙面部分割区域,使得所述粗糙面部分割区域填充整个轮廓。
18.根据权利要求17所述的设备,其中所述处理器以及所述存储器被配置成利用所述处理器,使得所述设备至少执行: 检测粗糙面部分割区域的边界像素点是否在预先设置的位置调整范围以内偏离所述轮廓边界;以及 当检测到所述偏离位于所述位置调整范围以内时,将偏离的所述边界像素点调整到所述轮廓边界上与其在横向或纵向上对准的点。
19.根据权利要求18所述的设备,其中所述处理器以及所述存储器被配置成利用所述处理器,使得所述设备进一步执行: 检测所述边界像素点是否从所述轮廓边界向外突出而超出所述位置调整范围;以及当检测到所述突出超出所述位置调整范围时,去除所述粗糙面部分割区域上突出所述轮廓边界的部分。
20.根据权利要求19所述的设备,其中所述处理器以及所述存储器被配置成利用所述处理器,使得所述设备进一步执行: 检测所述轮廓边界是否存在中断;以及 当检测到所述轮廓边界存在中断时,在中断的两个端点间执行内插操作。
21.根据权利要求14所述的设备,其中所述处理器以及所述存储器被配置成利用所述处理器,使得所述设备进一步执行: 确定所述精确面部分割区域内的所有像素点的灰度值; 基于所述灰度值将所有像素点分成至少两类;以及 以不同的等级来对每类像素点的灰度值进行调整,以实现对所述精细面部分割区域的白化处理。
22.根据权利要求21所述的设备,其中所述处理器以及所述存储器被配置成利用所述处理器,使得所述设备至少执行: 对所述精细面部分割区域内的所有像素点的灰度值进行统计; 基于所述统计,确定针对灰度值的至少一个阈值; 根据所述至少一个阈值将所有像素点划分为至少两类。
23.根据权利要求22所述的设备,其中所述处理器以及所述存储器被配置成利用所述处理器,使得所述设备至少执行: 对所有像素点的灰度值进行排序; 按顺序选取预定数量的像素点;以及 对所述选取的像素点的灰度值求平均以确定至少一个阈值。
24.根据权利要求21所述的设备,其中所述处理器以及所述存储器被配置成利用所述处理器,使得所述设备至少执行: 对于每类像素点选择多个不同的等级来进行所述调整,以实现多个相应不同效果的白化处理。
25.根据权利要求14或21所述的设备,其中所述处理器以及所述存储器被配置成利用所述处理器,使得所述设备进一步执行: 确定所述精细面部分割区域内的每个像素点与其相邻区域内的各个相邻像素点间的灰度值差; 将每个灰度值差与预定的阈值进行比较,以确定对于各个相邻像素点,所述每个像素点所具有的平滑权重,其中所述平滑权重大小与所述灰度值差成反比;以及 基于所述各个相邻像素点的灰度值、所述平滑权重以及各个相邻像素点与所述每个像素点之间的空间距离,调整所述每个像素点的灰度值,以实现对所述精细面部分割区域的平滑处理。
26.根据权利要求25所述的设备,其中所述处理器以及所述存储器被配置成利用所述处理器,使得所述设备至少执行以下操作来获得所述预定的阈值: 计算所述精细面部分割区域内所有像素点的梯度值; 对所有像素点的梯度值进行排序; 按顺序选取预定数量的像素点;以及 对所述选取的像素点的梯度值求平均,以获得所述预定的阈值。
27.—种设 备,包括: 检测装置,用于对图像执行面部检测; 获取装置,用于基于所述面部检测,获取至少一个面部的粗糙面部分割区域和所述至少一个面部的轮廓边界;以及 调整装置,用于基于所述轮廓边界,调整所述粗糙面部分割区域以获得精细面部分割区域。
28.一种计算机程序产品,包括具有存储于其中的计算机可读程序代码部分的至少一个计算机可读存储介质,所述计算机可读程序代码部分用于执行根据权利要求1-13的任意一项所述的方法。
【文档编号】G06T5/00GK103839250SQ201210496169
【公开日】2014年6月4日 申请日期:2012年11月23日 优先权日:2012年11月23日
【发明者】李江伟, 汪孔桥, 何燕 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1