一种基于肤色的自动对焦方法及自动对焦系统的制作方法

文档序号:7772866阅读:162来源:国知局
一种基于肤色的自动对焦方法及自动对焦系统的制作方法
【专利摘要】本发明涉及一种基于肤色的自动对焦方法及自动对焦系统,通过对摄像头获取的图像数据进行人脸检测,并根据人脸的位置进行皮肤检测及肤色概率统计,从而实现自动对焦功能,避免因对高频信号的获取导致对焦失败,并且很大程度地提高了拍照的质量,保证皮肤不会偏色。
【专利说明】一种基于肤色的自动对焦方法及自动对焦系统
【技术领域】
[0001]本发明涉及一种对焦方法,特别是一种基于肤色的自动对焦方法及应用该方法的对焦系统。
【背景技术】
[0002]近来,随着数码相机、手机摄像头的不断发展,使得拍照成为普遍现象。一般来说,进行拍照时为能凸显主体,所以都会进行对焦。目前大部分的相机与手机都具备自动对焦的功能。
[0003]关于自动对焦方法中,例如中国公告专利CN101625506B,公开了一种数字取像装置的脸部自动对焦方法。在该发明中主要在于提供一种数字取像装置的自动对焦方法,在数字取像装置进行对焦的期间,对焦区域会沿着人脸向身体方向延伸至少涵盖胸部以上,借以涵盖衣服领口及衣服花纹的高频信号。
[0004]该发明方法存在以下不足:(I)上述方法中主要是计算每一数字影像中的对焦视窗的高频信号;从高频信号得到最大值;将数字取像装置的对焦镜组移动到最大值所相应的物距的镜头位置,以完成对焦。在这个情况下如果衣服的颜色刚好为高频的信号时,会导致对焦到衣服上,而不是在我们的人脸上,这样就导致我们的人脸不是主体部分,而衣服成为主体,这就相当于对焦失败。而且高频部分很可能不是肤色区域,而造成我们自拍得到的图像里的肤色的颜色偏暗,导致自拍的效果不佳。

【发明内容】

[0005]为解决上述问题,本发明的发明目的之一是提供了一种在肤色检测的基础上提高拍照质量、保证皮肤不会偏色的基于肤色的自动对焦方法,其特征在于,包括以下步骤:
[0006]A.捕获由摄像头获取的图像数据;
[0007]B.对所述图像数据进行人脸检测;
[0008]C.判断所述图像数据中是否检测到人脸?如果否,则跳转至步骤A ;如果是,则进入步骤D ;
[0009]D.根据人脸的位置进行皮肤检测及肤色概率统计,并获取肤色概率和最高的皮肤块的中心点位置;
[0010]E将所述中心点与原始对焦中心点进行比较并判断是否需要重新对焦?如果否,则跳转至步骤A ;如果是,则进入步骤F ;
[0011]F根据所述中心点位置自动对焦并保存为新对焦中心点,跳转至步骤A。
[0012]作为一种较佳的实施例:所述步骤D进一步包括:
[0013]Dl.对图像数据进行人脸识别,获取人脸区域;
[0014]D2.对获取的人脸区域进行均值计算,获取平均肤色;
[0015]D3.将人脸区域的数据进行分块,对每个数据块进行肤色概率的统计,并根据获取的平均肤色计算当前数据块的肤色概率映射表;[0016]D4.根据获取的肤色概率映射表对当前数据块进行肤色识别,并获取肤色概率和最高的数据块的中心点。
[0017]作为一种较佳的实施例:所述步骤D2进一步包括:
[0018]D2.1.初始化原始皮肤模型;
[0019]D2.2.计算整个图像的颜色均值,作为初始肤色的阈值;
[0020]D2.3.根据获取的初始肤色的阈值计算人脸区域的平均肤色。
[0021]作为一种较佳的实施例:所述步骤D2.1进一步包括:
[0022]D2.1.1.创建皮肤模型,大小为256*256 ;
[0023]D2.1.2.依次对皮肤模型进行赋值,具体伪代码如下:
[0024]预设临时变量AlphaValue、nMax、1、j为整数类型。
[0025]皮肤模型变量为SkinModel [256] [256]
[0026]For(i=0 ;i<256 ;i++)
[0027]{
[0028]判断i是否大于128,如果大于128,则AlphaValue为255,否则为i*2 ;
[0029]计算获得nMax 的值,计算公式为 nMax=min (256, AlphaValue*2);
[0030]For (j=0 ; j〈nMax ; j++)
[0031]{
[0032]计算对应位置的皮肤模型的值,计算公式为SkinModel [i][j]=AlphaValue-(j/2);
[0033]}
[0034]For(j=nMax.j<256 ;j++)
[0035]{
[0036]初始对应位置的皮肤模型的值为O ;
[0037]}
[0038]}。
[0039]作为一种较佳的实施例:所述步骤D2.2进一步包括:
[0040]D2.2.1.遍历整个图像的像素点,将红色通道、绿色通道、蓝色通道的颜色值累加,得到颜色累加值;
[0041]D2.2.2.将颜色累加值除以整个图像的像素点的总数,得到红色通道、绿色通道、蓝色通道的均值,作为初始肤色的阈值。
[0042]作为一种较佳的实施例:所述步骤D2.3进一步包括:
[0043]D2.3.1.根据如下公式计算平均肤色的灰度值:
[0044]GRAYl=0.29肿RED+0.587*GREEN+0.114祁LUE
[0045]其中,GRAYl为图像的当前像素点的灰度值;RED、GREEN、BLUE分别为图像的当前像素点的红、绿、蓝通道的颜色值;
[0046]D2.3.2.将所述灰度值作为阈值,用来排除人脸区域非皮肤的部分;
[0047]D2.3.3.依次遍历人脸区域里的像素点的颜色值,根据如下公式获得平均肤色:
[0048]skin=SkinModel[red][blue];
[0049]其中,skin为经过皮肤模型的颜色映射后的肤色值;SkinModel为步骤D2.1的初始化原始皮肤模型;red为红色通道的颜色值;blue为蓝色通道的颜色值。
[0050]作为一种较佳的实施例:所述步骤D3的肤色概率映射表通过如下步骤获取:
[0051]D3.1.创建肤色概率映射表,大小为256*256 ;
[0052]D3.2.依次对肤色概率映射表进行赋值,具体伪代码如下;
[0053]预设临时变量1、j、SkinRed_Left、AlphaValue、Offset、TempAlphaValue、OffsetJ为整数类型;、
[0054]肤色概率映射表的变量为SkinProbabi lity[256] [256];
[0055]SkinRed为步骤D2.2.2.计算得到的红色通道的均值;SkinBlue为步骤D2.2.2计算得到的蓝色通道的均值;
[0056]预设SkinRed_Left 的值,计算公式为:SkinRed_Left=SkinRed_128 ;
[0057]For(i=0 ;i<256 ;i++)
[0058]{
[0059]计算Offset 的值,公式为 Offset=max (O, min (255, i_SkinRed_Left));
[0060]判断Offset的值是否小于128,如果小于的,话则AlphaValue=0ffset*2 ;如果大于等于 128 的话,则 AlphaValue=255 ;
[0061]For(j=0 ;j<256 ;j++)
[0062]{
[0063]计算OffsetJ 的值,公式为 OffsetJ=max (O, j-SkinBlue);
[0064]计算TempAlphaValue 的值,公式为 TempAlphaValue=max(AlphaValue-(OffsetJ*2),0);
[0065]判断TempAlphaValue 的值。如果大于 160 的话,则 SkinProbability [i] [j]的值为 255 ;
[0066]如果小于90的话,则SkinProbability [i] [j]的值为O;否贝丨JSkinProbability[i] [j]的值为 TempAlphaValue+30 ;
[0067]}
[0068]}。
[0069]作为一种较佳的实施例:所述步骤D4通过如下公式实现:
[0070]SkinColor=SkinProbabi Iity[red][blue]
[0071]其中,skinColor为结果图的肤色概率值;SkinProbability为肤色概率映射表;red为像素点的红色通道的颜色值;blue为像素点的蓝色通道的颜色值。
[0072]作为一种较佳的实施例:所述步骤D3中将人脸区域的数据分为N*N块,其中N大于等于10。
[0073]作为一种较佳的实施例:所述步骤E将所述的中心点与原始对焦中心点进行比较,判断所述的中心点与原始对焦中心点之间的距离是否大于预定值?如果是,则进入步骤F,否则跳转至步骤A。
[0074]作为一种较佳的实施例:所述的中心点与原始对焦中心点之间的距离的计算公式为:
[0075]N = ^/( xNew - xOld ) * I xNew - xOld ) + I yNew — yOld ) * I vNew - yOld )
[0076]其中,N为所述预定值,且N的取值范围为I~50个像素;所述的中心点的坐标为Y(xNew, yNew),所述原始对焦中心点的坐标为X(x01d, yOld)。
[0077]本发明的另一目的是提供一种在带有肤色判别单元的能够提高拍照质量、保证皮肤不会偏色的基于肤色的自动对焦系统,其特征在于,其包括:
[0078]图像获取单元,其用于捕获由摄像头获取的图像数据;
[0079]图像检测单元,其用于对所述图像数据进行人脸检测;
[0080]肤色判别单元,其用于根据人脸的位置计算肤色概率并最终确定其相应的中心
占.[0081]自动对焦单元,其用于根据所述的中心点对图像进行自动对焦。
[0082]作为一种较佳的实施例:所述自动对焦单元将所述的中心点与原始对焦中心点进行比较,当所述的中心点与原始对焦中心点之间的距离大于预定值时,所述自动对焦单元进行自动对焦,并将所述的中心点保存为新的对焦中心点。
[0083]作为一种较佳的实施例:所述的中心点与原始对焦中心点之间的距离的计算公式为:
[0084]
【权利要求】
1.一种基于肤色的自动对焦方法,其特征在于,包括以下步骤: A.捕获由摄像头获取的图像数据; B.对所述图像数据进行人脸检测; C.判断所述图像数据中是否检测到人脸?如果否,则跳转至步骤A;如果是,则进入步骤D; D.根据人脸的位置进行皮肤检测及肤色概率统计,并获取肤色概率和最高的皮肤块的中心点位置; E将所述中心点与原始对焦中心点进行比较并判断是否需要重新对焦?如果否,则跳转至步骤A ;如果是,则进入步骤F ; F根据所述中心点位置自动对焦并保存为新对焦中心点,跳转至步骤A。
2.根据权利要求1所述的一种基于肤色的自动对焦方法,其特征在于:所述步骤D进一步包括: Dl.对图像数据进行人脸识别,获取人脸区域; D2.对获取的人脸区域进行均值计算,获取平均肤色; D3.将人脸区域的数据进行分块,对每个数据块进行肤色概率的统计,并根据获取的平均肤色计算当前数据块的肤色概率映射表; D4.根据获取的肤色概率映射表对当前数据块进行肤色识别,并获取肤色概率和最高的数据块的中心点。
3.根据权利要求2所述的一种基于肤色的自动对焦方法,其特征在于:所述步骤D2进一步包括: D2.1.初始化原始皮肤模型; D2.2.计算整个图像的颜色均值,作为初始肤色的阈值; D2.3.根据获取的初始肤色的阈值计算人脸区域的平均肤色。
4.根据权利要求3所述的一种基于肤色的自动对焦方法,其特征在于:所述步骤D2.1进一步包括: D2.1.1.创建皮肤模型,大小为256*256 ; D2.1.2.依次对皮肤模型进行赋值,具体伪代码如下: 预设临时变量AlphaValue、nMax、1、j为整数类型。 皮肤模型变量为SkinModel [256] [256]
For(i=0 ;i<256 ;i++)
{ 判断i是否大于128,如果大于128,则AlphaValue为255,否则为i*2 ; 计算获得nMax的值,计算公式为nMax=min (256, AlphaValue*2);
For (j=0 ;j<nMax ; j++)
{ 计算对应位置的皮肤模型的值,计算公式为SkinModel [i] [j] =AlphaValue-(j/2);
}
For (j=nMax.j〈256 ; j++)
{初始对应位置的皮肤模型的值为O ;
5.根据权利要求3所述的一种基于肤色的自动对焦方法,其特征在于:所述步骤D2.2进一步包括: D2.2.1.遍历整个图像的像素点,将红色通道、绿色通道、蓝色通道的颜色值累加,得到颜色累加值; D2.2.2.将颜色累加值除以整个图像的像素点的总数,得到红色通道、绿色通道、蓝色通道的均值,作为初始肤色的阈值。
6.根据权利要求3所述的一种基于肤色的自动对焦方法,其特征在于:所述步骤D2.3进一步包括: D2.3.1.根据如下公式计算平均肤色的灰度值:
GRAYl=0.299*RED+0.587*GREEN+0.114祁LUE 其中,GRAYl为图像的当前像素点的灰度值;RED、GREEN、BLUE分别为图像的当前像素点的红、绿、蓝通道的颜色值; D2.3.2.将所述灰度值作为阈值,用来排除人脸区域非皮肤的部分; D2.3.3.依次遍历人脸区域里的像素点的颜色值,根据如下公式获得平均肤色: skin=SkinModel[red][blue]; 其中,skin为经过皮肤模型的颜色映射后的肤色值;SkinModel为步骤D2.1的初始化原始皮肤模型;red为红色通道的颜色值;blue为蓝色通道的颜色值。
7.根据权利要求5所述的一种基于肤色的自动对焦方法,其特征在于:所述步骤D3的肤色概率映射表通过如下步骤获取: D3.1.创建肤色概率映射表,大小为256*256 ; D3.2.依次对肤色概率映射表进行赋值,具体伪代码如下; 预设临时变量 1、j、SkinRed_Left、AlphaValue、Offset、TempAlphaValue> OffsetJ 为整数类型; 肤色概率映射表的变量为SkinProbabi lity[256] [256]; SkinRed为步骤D2.2.2计算得到的红色通道的均值;SkinBlue为步骤D2.2.2计算得到的蓝色通道的均值; 预设 SkinRed_Left 的值,计算公式为:SkinRed_Left=SkinRed_128 ;
For (i=0 ;i<256 ;i++)
{
计算 Offset 的值,公式为 Offset=max (O, min (255, i_SkinRed_Left)); 判断Offset的值是否小于128,如果小于的,话则AlphaValue=0ffset*2 ;如果大于等于 128 的话,则 AlphaValue=255 ;
For(j=0 ;j<256 ;j++)
{ 计算 OffsetJ 的值,公式为 OffsetJ=max (O, j-SkinBlue); 计算 TempAlphaValue 的值,公式为 TempAlphaValue=max(AlphaValue-(OffsetJ*2),O); 判断TempAlphaValue的值。如果大于160的话,贝丨J SkinProbability[i] [j]的值为,255 ; 如果小于 90 的话,则 SkinProbability [i] [j]的值为 O ;否则 SkinProbability [i] [j]的值为 TempAlphaValue+30 ;
}
}o
8.根据权利要求7所述的一种基于肤色的自动对焦方法,其特征在于:所述步骤D4通过如下公式实现:
SkinColor=SkinProbabiI ity [red][blue] 其中,skinColor为结果图的肤色概率值;SkinProbability为肤色概率映射表;red为像素点的红色通道的颜色值;blue为像素点的蓝色通道的颜色值。
9.根据权利要求2所述的一种基于肤色的自动对焦方法,其特征在于:所述步骤D3中将人脸区域的数据分为N*N块,其中N大于等于10。
10.根据权利要 求1所述的一种基于肤色的自动对焦方法,其特征在于:所述步骤E将所述的中心点与原始对焦中心点进行比较,判断所述的中心点与原始对焦中心点之间的距离是否大于预定值?如果是,则进入步骤F,否则跳转至步骤A。
11.根据权利要求10 所述的一种基于肤色的自动对焦方法,其特征在于:所述的中心点与原始对焦中心点之间的距离的计算公式为:
N = -y/( xNew — xOld ) * I xNe'v - xOld ) + ( yNew - yOld ) * ( yNew - yOld ) 其中,N为所述预定值,且N的取值范围为I~50个像素;所述的中心点的坐标为Y(xNew, yNew),所述原始对焦中心点的坐标为X(x01d, yOld)。
12.—种基于肤色的自动对焦系统,其特征在于,其包括: 图像获取单元,其用于捕获由摄像头获取的图像数据; 图像检测单元,其用于对所述图像数据进行人脸检测; 肤色判别单元,其用于根据人脸的位置计算肤色概率并最终确定其相应的中心点; 自动对焦单元,其用于根据所述的中心点对图像进行自动对焦。
13.根据权利要求12所述的一种基于肤色的自动对焦方法,其特征在于:所述自动对焦单元将所述的中心点与原始对焦中心点进行比较,当所述的中心点与原始对焦中心点之间的距离大于预定值时,所述自动对焦单元进行自动对焦,并将所述的中心点保存为新的对焦中心点。
14.根据权利要求13所述的一种基于肤色的自动对焦方法,其特征在于:所述的中心点与原始对焦中心点之间的距离的计算公式为:
N = xNew - xOld ) * I xNew - 'Old ) + I yNew — yOld I * ( vNew - yOld ) 其中,N为所述预定值,且N的取值范围为I~50个像素;所述的中心点的坐标为Y(xNew, yNew),所述原始对焦中心点的坐标为X(x01d, yOld)。
【文档编号】H04N9/04GK103491305SQ201310463444
【公开日】2014年1月1日 申请日期:2013年10月7日 优先权日:2013年10月7日
【发明者】张伟, 傅松林, 胡瑞鑫, 张长定 申请人:厦门美图网科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1