基于白平衡统计分区信息的肤色检测方法及系统与流程

文档序号:18838887发布日期:2019-10-09 06:31阅读:308来源:国知局
基于白平衡统计分区信息的肤色检测方法及系统与流程

本发明涉及图像处理,更具体地说是基于白平衡统计分区信息的肤色检测方法及系统。



背景技术:

肤色检测是一个实用性很强的功能,如在人脸曝光的区域二次提取中,肤色检测系统能排除头发的干扰,使得人脸曝光准确性得到进一步的提升。现有的肤色检测算法是在图像的最终呈现色域中进行计算的,如srgb域等。根据具体的检测算法的不同,可以是在rgb域用贝叶斯法计算是否为肤色的后验概率;也可以是在cb-cr坐标系下用多高斯模型做肤色判别。但是无论是上述哪种方法都是需要对每个像素进行肤色判别计算,从而导致这些方法不适用于cpu计算能力有限的嵌入式产品中做肤色检测,例如,安防类的摄像机。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供了一种基于白平衡统计分区信息的肤色检测方法及系统,实现了cpu计算能力有限的产品可以实时进行肤色检测。

为实现上述目的,本发明采用以下技术方案:基于白平衡统计分区信息的肤色检测方法,所述方法包括:

读取白平衡分区统计信息;

对白平衡分区统计信息进行色彩预测;

根据色彩预测通过多高斯模型对某一个白平衡分区进行肤色判别。

其进一步技术方案为:所述对白平衡分区统计信息进行色彩预测的步骤,具体包括以下步骤:

根据获取到的r,gr,gb和b通道的白平衡增益进行白平衡校正;

将色域中的rgb值进行转换;

将输入rgb值映射为输出rgb值;

将色彩从rgb空间转换为ycbcr空间;

将输入的rgb值归一化到0到1范围内。

其进一步技术方案为:所述通过多高斯模型进行肤色判别的步骤,具体包括以下步骤:

判断某一个白平衡分区的cb,cr分量作为输入得到的多高斯模型的概率是否大于设定值;

若是,则判定该白平衡分区为肤色区;

若否,则判定该白平衡分区为非肤色区。

其进一步技术方案为:所述读取白平衡分区统计信息的步骤之后,还包括以下步骤:

判断白平衡分区统计信息中被统计像素点的比例是否大于设定阈值;

若是,则进入所述对白平衡分区统计信息进行色彩预测的步骤;

若否,则进入所述判定该白平衡分区为非肤色区的步骤。

基于白平衡统计分区信息的肤色检测系统,所述系统包括读取单元、色彩预测单元以及判别单元;

所述读取单元,用于读取白平衡分区统计信息;

所述色彩预测单元,用于对白平衡分区统计信息进行色彩预测;

所述判别单元,用于根据色彩预测通过多高斯模型对某一个白平衡分区进行肤色判别。

其进一步技术方案为:所述色彩预测单元包括校正模块、第一转换模块、映射模块、第二转换模块以及归一化模块;

所述校正模块,用于根据获取到的r,gr,gb和b通道的白平衡增益进行白平衡校正;

所述第一转换模块,用于将色域中的rgb值进行转换;

所述映射模块,用于将输入rgb值映射为输出rgb值;

所述第二转换模块,用于将色彩从rgb空间转换为ycbcr空间;

所述归一化模块,用于将输入的rgb值归一化到0到1范围内。

其进一步技术方案为:所述判别单元包括判断模块、第一判定模块以及第二判定模块;

所述判断模块,用于判断某一个白平衡分区的cb,cr分量作为输入得到的多高斯模型的概率是否大于设定值;

所述第一判定模块,用于判定该白平衡分区为肤色区;

所述第二判定模块,用于判定该白平衡分区为非肤色区。

其进一步技术方案为:所述系统还包括判断单元;

所述判断单元,用于判断白平衡分区统计信息中被统计像素点的比例是否大于设定阈值。

本发明与现有技术相比的有益效果是:本发明提供的基于白平衡统计分区信息的肤色检测方法及系统,相比于现有的在ycbcr域图像逐个像素点进行肤色检测的方法,本方案充分利用了白平衡分区统计信息,以白平衡分区统计信息为基础,实现了基于小分区的肤色检测,相比于现有做法,本方案对计算机cpu能力要求低,所需要的计算资源少,且能保证肤色检测的准确率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征及优点能够更明显易懂,以下特举较佳实施例,详细说明如下。

附图说明

图1为本发明基于白平衡统计分区信息的肤色检测方法具体实施例中对白平衡分区统计信息进行色彩预测的示意性框图;

图2为本发明基于白平衡统计分区信息的肤色检测方法具体实施例的流程图一;

图3为本发明基于白平衡统计分区信息的肤色检测方法具体实施例的流程图二;

图4为本发明基于白平衡统计分区信息的肤色检测方法具体实施例的流程图三;

图5为本发明基于白平衡统计分区信息的肤色检测方法具体实施例的流程图四;

图6为本发明基于白平衡统计分区信息的肤色检测系统具体实施例的结构示意图一;

图7为本发明基于白平衡统计分区信息的肤色检测系统具体实施例的结构示意图二;

图8为本发明基于白平衡统计分区信息的肤色检测系统具体实施例的结构示意图三。

具体实施方式

为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。

应当理解,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序。

还应当理解,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

如图2-5所示,本发明提供了一种基于白平衡分区统计信息的肤色检测方法,该方法包括以下步骤:

s10、读取白平衡分区统计信息;

s105、判断白平衡分区统计信息中被统计像素点的比例是否大于设定阈值,若是,则进入步骤s20,若否,则进入步骤s303;

s20、对白平衡分区统计信息进行色彩预测;

s30、根据色彩预测通过多高斯模型对某一个白平衡分区进行肤色判别。

具体的,本方法适用于带有isp(imagesignalprocessing,图像信号处理,特指将图像传感器输出的raw图像做一系列的图像处理后转化成常见的彩色图像的硬件处理单元)硬件处理单元的产品或系统。

对于步骤s10,从硬件isp中读取白平衡分区统计信息。白平衡分区统计信息是众多isp硬件模块中的一个,isp硬件中设置白平衡分区统计模块的原因是为了让摄像头捕捉到的图像有更好的白平衡表现。一般的isp软件系统会根据白平衡的统计信息,找到图像中可能的白区(点),并判断最有可能的色温。根据估计的色温,在isp硬件处理链路中设置合理的白平衡增益,从而将图像中的白最好的还原成白色。白平衡硬件统计模块会将图像的画面等大小的分割成mxn的小区域,m和n是整数。具体的,白平衡统计信息包括:

每个小区域中的r通道的平均值;

每个小区域中的gr/gb通道平均值。根据isp硬件的不同,可以是gr通道的平均值和gb通道的平均值也可以是将gr和gb通道视为一个通道后的平均值对于分别统计gr通道和gb通道通道的情况,可以利用公式将这种情况转化为后一种情况。

每个小区域中的b通道的平均值;

白/灰像素的区间范围等可配置参数;

每个小区域中,符合白/灰像素区间范围像素的比例。即被统计像素点个数的归一化比例----countall数值等。

对于步骤20,当白平衡分区统计信息中被统计像素点的比例大于设定阈值时,才对白平衡分区统计信息进行色彩预测,若小于设定阈值,则直接判断该白平衡分区为非肤色区。

进一步的,步骤s20具体包括以下步骤:

s201、根据获取到的r,gr,gb和b通道的白平衡增益进行白平衡校正;

s202、将色域中的rgb值进行转换;

s203、将输入rgb值映射为输出rgb值;

s204、将色彩从rgb空间转换为ycbcr空间;

s205、将输入的rgb值归一化到0到1范围内。

如图1所示,具体的,图1中whitebalancecorrection为白平衡校正。通常摄像机中会运行有自动白平衡算法,自动白平衡算法会为白平衡校正提供r,gr,gb和b通道的白平衡增益rgain,ggain,bgain。

图1中colormatrixcorrection为色彩矩阵校正。用于将摄像机色域中的rgb值转换为常见色域中的rgb值,例如,srgb色域等。色彩矩阵校正的参数是一个三乘三的矩阵,且矩阵的每行的和为1。

图1中gammacorrection为gamma校正。gamma校正的参数通常为一个查找表。该查找表将输入rgb值映射为输出rgb值。

图1中rgb2ycbcr为rgb转ycbcr。用于将色彩从rgb空间转换为ycbcr空间。

图1中normalize为归一化运算,属于可选计算。该运算将输入的r、g、b值归一化到0到1范围内。

设白平衡分区统计信息为其中i,j分别为该分区的横向和纵向序号。设isp硬件在获取这组统计信息时,isp系统的白平衡增益分别为rgain,ggain,bgain;isp系统的色彩校正矩阵(ccm,colorcorrectionmatrix)为mccm;伽马(gamma)曲线为gammacurve,它可以是一组等间距输入值对应的输出数值;rgb转ycbcr的转换矩阵为mrgb2ycbcr,偏置向量为offsetrgb2ycbcr。那么基于白平衡分区统计信息的色彩预测会经过如下一些计算:

r1(i,j)=min(max(r1(i,j),0),1)

g1(i,j)=min(max(g1(i,j),0),1)

b1(j,j)=min(max(b1(i,j),0),1)

r2(i,j)=min(max(r2(i,j),0),1)

g2(i,j)=min(max(g2(i,j),0),1)

b2(i,j)=min(max(b2(i,j),0),1)

r3(i,j)=interpolate(gammacurve,r2(i,j))

g3(i,j)=interpolate(gammacurve,g2(i,j))

b3(i,j)=interpolate(gammacurve,b2(i,j))

其中,normalize是将白平衡分区统计平均值归一化到0和1的函数;min和max分别是从两个输入参数中去较小和较大的函数;interpolate是根据曲线gammacurve和输入参数(如r2(i,j))做插值计算的函数,该插值函数可以是线性插值,也可以是其他合理的插值方法。

进一步的,步骤s30具体包括以下步骤:

s301、判断某一个白平衡分区的cb,cr分量作为输入得到的多高斯模型的概率是否大于设定值,若是,s303、则判定该白平衡分区为肤色区,若否,s302、则判定该白平衡分区为非肤色区。

具体的,多高斯模型是肤色检测中的常见模型,多高斯模型如下:

其中,φ(x,μi,∑i)是输入为x,均值为μi,协方差矩阵为∑i的高斯函数,

x=(cb(i,j),cr(i,j))t,且

对于某一个白平衡分区,通过上述的色彩预测的方法可以计算得到它的cb,cr分量x=(cb(j,j),cr(i,j))t,如果

gmm((cb(i,j),cr(j,j))t)>th,其中1>th>0是一个预先设定的阈值,那么该分块(i,j)可以被判定为是一个肤色区域。

相比于现有的在ycbcr域图像逐点进行肤色检测算法,本方案充分利用了硬件isp的统计信息。以白平衡统计信息为基础,可以做到基于小分区的肤色检测。相比于现有做法,本方案对计算机资源的要求低,所需要的计算资源少,且能保证肤色检测的准确率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上述实施例的基于白平衡分区统计信息的肤色检测方法,本发明还提供了基于白平衡分区统计信息的肤色检测装置,如图6-8所示,该装置包括读取单元1、判断单元2、色彩预测单元3以及判别单元4;

读取单元1,用于读取白平衡分区统计信息;

判断单元2,用于判断白平衡分区统计信息中被统计像素点的比例是否大于设定阈值;

色彩预测单元3,用于对白平衡分区统计信息进行色彩预测;

判别单元4,用于根据色彩预测通过多高斯模型对某一个白平衡分区进行肤色判别。

进一步的,色彩预测单元3包括校正模块31、第一转换模块32、映射模块33、第二转换模块34以及归一化模块35;

校正模块31,用于根据获取到的r,gr,gb和b通道的白平衡增益进行白平衡校正;

第一转换模块32,用于将色域中的rgb值进行转换;

映射模块33,用于将输入rgb值映射为输出rgb值;

第二转换模块34,用于将色彩从rgb空间转换为ycbcr空间;

归一化模块35,用于将输入的rgb值归一化到0到1范围内。

进一步的,判别单元4包括判断模块41、第一判定模块42以及第二判定模块43;

判断模块41,用于判断某一个白平衡分区的cb,cr分量作为输入得到的多高斯模型的概率是否大于设定值;

第一判定模块42,用于判定该白平衡分区为肤色区;

第二判定模块43,用于判定该白平衡分区为非肤色区。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明中各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1