一种基于肤色的自动对焦方法及自动对焦系统技术方案

技术编号:9528877 阅读:117 留言:0更新日期:2014-01-02 18:18
本发明专利技术涉及一种基于肤色的自动对焦方法及自动对焦系统,通过对摄像头获取的图像数据进行人脸检测,并根据人脸的位置进行皮肤检测及肤色概率统计,从而实现自动对焦功能,避免因对高频信号的获取导致对焦失败,并且很大程度地提高了拍照的质量,保证皮肤不会偏色。

【技术实现步骤摘要】
一种基于肤色的自动对焦方法及自动对焦系统
本专利技术涉及一种对焦方法,特别是一种基于肤色的自动对焦方法及应用该方法的对焦系统。
技术介绍
近来,随着数码相机、手机摄像头的不断发展,使得拍照成为普遍现象。一般来说,进行拍照时为能凸显主体,所以都会进行对焦。目前大部分的相机与手机都具备自动对焦的功能。关于自动对焦方法中,例如中国公告专利CN101625506B,公开了一种数字取像装置的脸部自动对焦方法。在该专利技术中主要在于提供一种数字取像装置的自动对焦方法,在数字取像装置进行对焦的期间,对焦区域会沿着人脸向身体方向延伸至少涵盖胸部以上,借以涵盖衣服领口及衣服花纹的高频信号。该专利技术方法存在以下不足:(1)上述方法中主要是计算每一数字影像中的对焦视窗的高频信号;从高频信号得到最大值;将数字取像装置的对焦镜组移动到最大值所相应的物距的镜头位置,以完成对焦。在这个情况下如果衣服的颜色刚好为高频的信号时,会导致对焦到衣服上,而不是在我们的人脸上,这样就导致我们的人脸不是主体部分,而衣服成为主体,这就相当于对焦失败。而且高频部分很可能不是肤色区域,而造成我们自拍得到的图像里的肤色的颜色偏暗,导致自拍的效果不佳。
技术实现思路
为解决上述问题,本专利技术的专利技术目的之一是提供了一种在肤色检测的基础上提高拍照质量、保证皮肤不会偏色的基于肤色的自动对焦方法,其特征在于,包括以下步骤:A.捕获由摄像头获取的图像数据;B.对所述图像数据进行人脸检测;C.判断所述图像数据中是否检测到人脸?如果否,则跳转至步骤A;如果是,则进入步骤D;D.根据人脸的位置进行皮肤检测及肤色概率统计,并获取肤色概率和最高的皮肤块的中心点位置;E将所述中心点与原始对焦中心点进行比较并判断是否需要重新对焦?如果否,则跳转至步骤A;如果是,则进入步骤F;F根据所述中心点位置自动对焦并保存为新对焦中心点,跳转至步骤A。作为一种较佳的实施例:所述步骤D进一步包括:D1.对图像数据进行人脸识别,获取人脸区域;D2.对获取的人脸区域进行均值计算,获取平均肤色;D3.将人脸区域的数据进行分块,对每个数据块进行肤色概率的统计,并根据获取的平均肤色计算当前数据块的肤色概率映射表;D4.根据获取的肤色概率映射表对当前数据块进行肤色识别,并获取肤色概率和最高的数据块的中心点。作为一种较佳的实施例:所述步骤D2进一步包括:D2.1.初始化原始皮肤模型;D2.2.计算整个图像的颜色均值,作为初始肤色的阈值;D2.3.根据获取的初始肤色的阈值计算人脸区域的平均肤色。作为一种较佳的实施例:所述步骤D2.1进一步包括:D2.1.1.创建皮肤模型,大小为256*256;D2.1.2.依次对皮肤模型进行赋值,具体伪代码如下:预设临时变量AlphaValue、nMax、i、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++){初始对应位置的皮肤模型的值为0;}}。作为一种较佳的实施例:所述步骤D2.2进一步包括:D2.2.1.遍历整个图像的像素点,将红色通道、绿色通道、蓝色通道的颜色值累加,得到颜色累加值;D2.2.2.将颜色累加值除以整个图像的像素点的总数,得到红色通道、绿色通道、蓝色通道的均值,作为初始肤色的阈值。作为一种较佳的实施例:所述步骤D2.3进一步包括:D2.3.1.根据如下公式计算平均肤色的灰度值:GRAY1=0.299*RED+0.587*GREEN+0.114*BLUE其中,GRAY1为图像的当前像素点的灰度值;RED、GREEN、BLUE分别为图像的当前像素点的红、绿、蓝通道的颜色值;D2.3.2.将所述灰度值作为阈值,用来排除人脸区域非皮肤的部分;D2.3.3.依次遍历人脸区域里的像素点的颜色值,根据如下公式获得平均肤色:skin=SkinModel[red][blue];其中,skin为经过皮肤模型的颜色映射后的肤色值;SkinModel为步骤D2.1的初始化原始皮肤模型;red为红色通道的颜色值;blue为蓝色通道的颜色值。作为一种较佳的实施例:所述步骤D3的肤色概率映射表通过如下步骤获取:D3.1.创建肤色概率映射表,大小为256*256;D3.2.依次对肤色概率映射表进行赋值,具体伪代码如下;预设临时变量i、j、SkinRed_Left、AlphaValue、Offset、TempAlphaValue、OffsetJ为整数类型;肤色概率映射表的变量为SkinProbability[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(0,min(255,i-SkinRed_Left));判断Offset的值是否小于128,如果小于的,话则AlphaValue=Offset*2;如果大于等于128的话,则AlphaValue=255;For(j=0;j<256;j++){计算OffsetJ的值,公式为OffsetJ=max(0,j-SkinBlue);计算TempAlphaValue的值,公式为TempAlphaValue=max(AlphaValue-(OffsetJ*2),0);判断TempAlphaValue的值。如果大于160的话,则SkinProbability[i][j]的值为255;如果小于90的话,则SkinProbability[i][j]的值为0;否则SkinProbability[i][j]的值为TempAlphaValue+30;}}。作为一种较佳的实施例:所述步骤D4通过如下公式实现:skinColor=SkinProbability[red][blue]其中,skinColor为结果图的肤色概率值;SkinProbability为肤色概率映射表;red为像素点的红色通道的颜色值;blue为像素点的蓝色通道的颜色值。作为一种较佳的实施例:所述步骤D3中将人脸区域的数据分为N*N块,其中N大于等于10。作为一种较佳的实施例:所述步骤E将所述的中心点与原始对焦中心点进行比较,判断所述的中心点与原始对焦中心点之间的距离是否大于预定值?如果是,则进入步骤F,否则跳转至步骤A。作为一种较佳的实施例:所述的中心点与原始对焦中心点之间的距离的计算公式为:其中,N为所述预定值,且N的取值范围为1~50个像素;所述的中心点本文档来自技高网...
一种基于肤色的自动对焦方法及自动对焦系统

【技术保护点】
一种基于肤色的自动对焦方法,其特征在于,包括以下步骤:A.捕获由摄像头获取的图像数据;B.对所述图像数据进行人脸检测;C.判断所述图像数据中是否检测到人脸?如果否,则跳转至步骤A;如果是,则进入步骤D;D.根据人脸的位置进行皮肤检测及肤色概率统计,并获取肤色概率和最高的皮肤块的中心点位置;E将所述中心点与原始对焦中心点进行比较并判断是否需要重新对焦?如果否,则跳转至步骤A;如果是,则进入步骤F;F根据所述中心点位置自动对焦并保存为新对焦中心点,跳转至步骤A。

【技术特征摘要】
1.一种基于肤色的自动对焦方法,其特征在于,包括以下步骤:A.捕获由摄像头获取的图像数据;B.对所述图像数据进行人脸检测;C.判断所述图像数据中是否检测到人脸?如果否,则跳转至步骤A;如果是,则进入步骤D;D.根据人脸的位置进行皮肤检测及肤色概率统计,并获取肤色概率和最高的皮肤块的中心点位置;E将所述中心点与原始对焦中心点进行比较并判断是否需要重新对焦?如果否,则跳转至步骤A;如果是,则进入步骤F;F根据所述中心点位置自动对焦并保存为新对焦中心点,跳转至步骤A。2.根据权利要求1所述的一种基于肤色的自动对焦方法,其特征在于:所述步骤D进一步包括:D1.对图像数据进行人脸识别,获取人脸区域;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、i、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++){初始对应位置的皮肤模型的值为0;}}。5.根据权利要求3所述的一种基于肤色的自动对焦方法,其特征在于:所述步骤D2.2进一步包括:D2.2.1.遍历整个图像的像素点,将红色通道、绿色通道、蓝色通道的颜色值累加,得到颜色累加值;D2.2.2.将颜色累加值除以整个图像的像素点的总数,得到红色通道、绿色通道、蓝色通道的均值,作为初始肤色的阈值。6.根据权利要求3所述的一种基于肤色的自动对焦方法,其特征在于:所述步骤D2.3进一步包括:D2.3.1.根据如下公式计算平均肤色的灰度值:GRAY1=0.299*RED+0.587*GREEN+0.114*BLUE其中,GRAY1为图像的当前像素点的灰度值;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.依次对肤色概率映射表进行赋值,具体伪代码如下;预设临时变量i、j、SkinRed_Left、AlphaValue、Offset、TempAl...

【专利技术属性】
技术研发人员:张伟傅松林胡瑞鑫张长定
申请(专利权)人:厦门美图网科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1