CN1635547A - 检测和校正图像中的红眼的方法 - Google Patents
检测和校正图像中的红眼的方法 Download PDFInfo
- Publication number
- CN1635547A CN1635547A CN 200310116034 CN200310116034A CN1635547A CN 1635547 A CN1635547 A CN 1635547A CN 200310116034 CN200310116034 CN 200310116034 CN 200310116034 A CN200310116034 A CN 200310116034A CN 1635547 A CN1635547 A CN 1635547A
- Authority
- CN
- China
- Prior art keywords
- pixel
- candidate
- red
- eye region
- red eye
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种检测图像中的红眼的方法,其特征在于包括以下步骤:识别所述图像中的眼区;识别所述眼区内的第一数目的候选红眼区域;缩小所述第一数目的候选红眼区域,得到第二数目的候选红眼区域,所述第二数目小于或等于所述第一数目;扩大所述第二数目的候选红眼区域,得到第三数目的候选红眼区域,所述第三数目小于或等于所述第二数目;以及从所述第三数目的候选红眼区域中选择不多于一个的候选红眼区域,作为所述图像中检测到的红眼。
Description
技术领域
本发明涉及图像处理,并且特别涉及检测和校正图像中的红眼的方法。
背景技术
红眼是人的瞳孔周围出现的不自然红色调。它通常是由血管的闪光反射光引起的。目前,有许多校正红眼的方法。有些方法要求用户的干预。这样对大多数用户来说不便。有些方法可以自动地检测和校正红眼,但是它们在整幅图像中搜索红眼,并且因而需要更多时间。另外,现有检测和校正红眼的方法的准确性不高。
发明内容
本发明的目的是提供一种能快速检测图像中的红眼,并且准确校正检测到的红眼的方法。
为了实现以上目的,本发明提供一种检测图像中的红眼的方法,其特征在于包括以下步骤:
识别所述图像中的眼区;
识别所述眼区内的第一数目的候选红眼区域;
缩小所述第一数目的候选红眼区域,得到第二数目的候选红眼区域,所述第二数目小于或等于所述第一数目;
扩大所述第二数目的候选红眼区域,得到第三数目的候选红眼区域,所述第三数目小于或等于所述第二数目;以及
从所述第三数目的候选红眼区域中选择不多于一个的候选红眼区域,作为所述眼区内检测到的红眼。
按照本发明的方法,在脸部图像中,或更具体地在脸部图像中识别的眼区内,自动地检测红眼。因而,能快速和准确地检测红眼。
由以下连同附图对优选实施例的描述,本发明的其他特点和优点将更加明显,附图通过例子说明本发明的原理。
附图说明
图1是本发明的方法的示意流程图;
图2是图1步骤105的一个示例处理的示意流程图;
图3是图1步骤105的另一个示例处理的示意流程图;
图4是图1步骤106的一个示例处理的示意流程图;
图5是图1步骤107的一个示例处理的示意流程图;
图6是图1步骤107的一个示例处理的示意流程图;
图7是图1步骤108的一个示例处理的示意流程图;
图8是图1步骤110的一个示例处理的示意流程图;
图9A表示一幅包括两个红眼的图像;
图9B表示检测到两个红眼;
图9C表示校正两个红眼;
图9D表示检测到的红眼的灰度图像;
图9E表示在对图9D的灰度图像执行高斯平滑处理之后的结果灰度图像;以及
图10示意表示一个图像处理系统,其中能实现图1至图8所示的各处理。
具体实施方式
在以下描述中,关于怎样识别候选人脸区域、怎样识别人脸中的眼区,能参考由相同申请人于2000年9月15日提交的第00127067.2号中国专利申请,由相同申请人于2001年9月6日提交的第01132807.X号中国专利申请,由相同申请人于2002年12月13日提交的第02155468.4号中国专利申请,由相同申请人于2002年12月30日提交的第021600163.3号中国专利申请,由相同申请人于2003年6月18日提交的第03137345.3号中国专利申请等。这些申请这里参考引入。然而,在这些申请中公开的识别候选人脸区域的方法和识别眼区的方法对本发明不构成限制。本发明可以利用任何识别候选人脸区域的常规方法或识别图像之内的眼区的方法。
图1是本发明的方法的示意流程图。流程在步骤101开始。然后在步骤102,在待处理图像之内识别一个候选人脸区域。
然后,在步骤103,在步骤102识别的候选人脸区域中识别两个眼区。这两个眼区是左眼区和右眼区。
如上所述,为了实现步骤102和103,本发明能使用任何识别候选人脸区域和识别人脸中眼区的常规方法。
其次,在步骤104,将两个眼区中的一个设为当前眼区,并且首先经受处理(步骤105至108)。
在步骤105,在当前眼区之内识别当前眼区内的第一数目的候选红眼区域。
为了识别一个眼区之内的一个候选红眼区域,考虑眼区内的像素的特征值。在本发明中,将红眼内包括的一个像素,即一个具有红眼特征的像素称为“红眼像素”。
在步骤105,例如考虑到了眼区内像素的颜色方差或纹理,或颜色方差和纹理的组合。图2主要涉及考虑眼区内的像素的颜色方差。图3主要涉及考虑眼区内的像素的纹理。
图2和图3所示流程的任何一个可以用来识别当前眼区内的第一数目的候选红眼区域,并且以下在本说明书中将非常详细地描述。
优选地,如果组合使用,图2和图3的两个流程将极大地增加本发明的方法的准确性。更优选地,如果首先执行图3流程,并且根据图3流程的结果执行图2流程,本发明的方法将更省时。
在图1步骤105之后,为步骤106。
在步骤106,缩小第一数目的候选红眼区域。结果,得到第二数目的候选红眼区域。
按照本缩小处理,为第一数目的候选红眼区域中每个候选红眼区域中的每个像素至少估计一个特征值。如果估计的特征值不满足对红眼像素设置的标准,则将被评估的像素从相关候选红眼区域中除去。因而,使第一数目的候选红眼区域中的大多数的面积减少。如果一个候选红眼区域内包括的所有像素被除去,则这个候选红眼区域不存在,并且不再考虑。
因而,第二数目,即在执行步骤106之后的候选红眼区域的总数,可能小于第一数目,即在执行步骤106之前的候选红眼区域的总数。图4表示使候选红眼区域缩小的一例,并且将在以下详细描述。
在步骤106之后,进行到步骤107。
在步骤107,扩大第二数目的候选红眼区域。结果,得到第三数目的候选红眼区域。
在本步骤,考虑第二数目的候选红眼区域各自的边界像素。“边界像素”是指位于候选红眼区域边缘的像素。如果一个边界像素附近的像素满足为红眼像素设置的标准,则将这些像素包括在相关候选红眼区域中。因而,使第二数目的候选红眼区域的大多数的面积增加,并且不可避免地使有些候选红眼区域相互合并。这样引入步骤107的另一个功能。
步骤107的另一个功能是,有选择地除去合并的候选红眼区域,有选择地组合合并的候选红眼区域,或有选择地保持合并的候选红眼区域中的一个而除去其他候选红眼区域。
除去的候选红眼区域不再加以考虑。
因而,第三数目,即在执行步骤107之后的候选红眼区域的总数,可能小于第二数目,即在执行步骤107之前的候选红眼区域的总数。图5和图6表示扩大候选红眼区域的一例,并且将在以下详细描述。
步骤107之后是步骤108。
在步骤108,将不多于一个的候选红眼区域选择为该眼区内检测到的一个红眼。
在步骤108,估计第三数目的候选红眼区域内的像素的大量特征值。根据估计值,除去第三数目的候选红眼区域中的大多数。然后对剩下的候选红眼区域评分,并且仅对具有最大得分的候选红眼区域作进一步考虑。如果仅有具有最大得分的候选红眼区域满足标准,则将它选择为当前眼区内检测到的红眼。否则,当前眼区内没有检测到红眼。图7表示选择不多于一个的候选红眼区域的例子,并且将在以下详细描述。
然后在步骤109,判定在步骤108是否选择一个候选红眼区域。如果判定结果为“是”,处理转到步骤110;否则转到步骤111。
在步骤110,校正所选择的候选红眼区域,即检测到的红眼。图8详细描述校正红眼的处理。在步骤110之后,处理转到步骤111。
在步骤111,判定两个眼区是否都考虑了。如果判定结果为“是”,处理转到步骤113;否则转到步骤112。
在步骤112,设定另一眼区为当前眼区,处理转到步骤105。
在步骤111,处理结束。
图2是图1步骤105的一个示例处理的示意流程图。
图2流程基于颜色方差理论。一般地,红眼内像素的亮度和颜色激烈变化。以(x,y)为中心的眼区域的特性可以用下列公式(1)来表示:
其中:
(x,y)是像素的坐标;
Rx,y是以(x,y)为中心的眼区域;
|Rx,y|是眼区域Rx,y的面积,即眼区域Rx,y内的像素数;
Pr是以(x,y)为中心的瞳孔区域;
|Pr|是瞳孔区域Pr的面积,即瞳孔区域Pr内的像素数;
r是眼区域Rx,y内的一个像素
P是瞳孔区域Pr内的一个像素。
对于候选人脸区域内的各像素,限定一个眼区域和一个瞳孔区域,两者以这个像素为中心。然后,对这个像素使用以上公式(1)计算方差值。如果计算的方差值大于一个对应阈值,则认为这个像素是一个红眼像素。
实际上,对各像素计算两个方差值。这两个方差值分别称为水平颜色方差值和垂直颜色方差值。当两个方差值都大于它们的对应阈值时,则认为该像素是一个红眼像素。
如图2所示,处理在步骤201开始。在步骤202,将变量R设置为1。在步骤203,将另一个变量C设置为1。
在步骤204,以像素(R,C)为中心,限定一个瞳孔区域。
为了限定人脸中的一个瞳孔区域,人脸的宽度、人脸的高度、眼区域的宽度、眼区域的高度、瞳孔区域的宽度、瞳孔区域的高度可以满足以下关系:
(1)眼的宽度=0.2*脸的宽度;
(2)眼的高度=0.2*脸的高度;
(3)瞳孔的宽度=0.1*脸的宽度;
(4)瞳孔的高度=0.1*脸的高度。
在步骤205,计算在步骤204限定的瞳孔区域的r(红)值、g(绿)值和b(蓝)值。
在本发明中,区域的r值定义为该区域中包括的所有像素的r值的平均;区域的g值定义为该区域中包括的所有像素的g值的平均;以及区域的b值定义为该区域中包括的所有像素的b值的平均。
因而,步骤205对应于以上公式(1)中的
然后在步骤206,仍以像素(R,C)为中心,限定一个水平眼区域。这里,水平眼区域的宽度可以是一个眼区域的宽度,并且水平眼区域的高度可以是一个瞳孔区域的高度。
其次,在步骤207,对在步骤206限定的水平眼区域,使用以上公式(1)计算水平颜色方差ScatterH,其中Rx,y是水平眼区域。
在步骤208,判定ScatterH是否大于第一阈值。第一阈值的范围为600至2500,并且优选地为1200。
如果步骤208的判定结果为“否”,处理转到步骤213;否则转到步骤209。
在步骤209,仍以像素(R,C)为中心,限定一个垂直眼区域。这里,垂直眼区域的宽度可以是一个瞳孔区域的宽度,并且垂直眼区域的高度可以是一个眼区域的高度。
其次,在步骤210,对在步骤209限定的垂直眼区域,使用以上公式(1)计算垂直颜色方差ScatterV,其中Rx,y是垂直眼区域。
在步骤211,判定ScatterV是否大于第二阈值。第二阈值的范围为600至2500,并且优选地为1200。
如果步骤211的判定结果为“否”,处理转到步骤213;否则转到步骤212。
在步骤212,将候选人脸区域内的(R,C)处的像素标记为一个红眼像素。然后,处理转到步骤213。
在步骤213,在使变量C递增之后,判定C是否大于候选人脸区域的宽度。
如果步骤213的判定结果为“否”,处理转到步骤204;否则转到步骤214。
在步骤214,在使变量R递增之后,判定R是否大于候选人脸区域的高度。
如果步骤214的判定结果为“否”,处理转到步骤203;否则转到步骤215。
在步骤215,处理结束。
通过以上步骤201至215,可以将多个像素标记为一个眼区内的红眼像素。这些红眼像素可以构成图1步骤105中的第一数目的候选红眼区域。
图3是图1步骤105的另一个示例处理的示意流程图。
图3流程基于纹理理论。表示明显纹理特征的像素认为是红眼像素。按照形态学,开运算和闭运算具有不同结果。因而,通过使用不同的模板尺寸,能将开运算和闭运算用来提取兴趣区域(例如,一个红眼区域)。为了说明开运算和闭运算,可以参考Digital ImageProcessing,Kenneth R.Castleman,Prentice Hall Inc.,Copyright 1996。
如图3所示,处理在步骤301开始。然后,在步骤302,对候选人脸区域产生一幅灰度图像。根据候选人脸区域内的对应像素(x,y)的r(红)、g(绿)和b(蓝)值,计算灰度图像中像素(x,y)的灰度,它是一幅彩色图像。像素的灰度定义为:
r-max(g,b) (2)
然后,在步骤303,通过对在步骤302产生的灰度图像执行闭运算,产生一幅闭图像。在闭运算中,使用3*3模板。
其次,在步骤304,通过对在步骤302产生的灰度图像执行开运算,产生一幅开图像。在开运算中,使用9*9模板。
然后,在步骤305,通过从闭图像中减去开图像,产生一幅目标图像。
在步骤306,对目标图像执行高斯平滑处理。这里,在目标图像中,各像素具有一个灰度值。如果目标图像中一个像素的灰度大于灰度的阈值,则认为候选人脸区域内对应像素是一个红眼像素。
特别地,在步骤307,将变量R设置为1。在步骤308,将变量C设置为1。
在步骤309,判定目标图像中(R,C)处的像素的灰度是否大于第三阈值。第三阈值为目标图像中像素的最大灰度值的50%至70%的范围内,并且优选地为目标图像中像素的最大灰度值的53%。
如果步骤309的判定结果为“否”,处理转到步骤311;否则转到步骤310。
在步骤310,将候选人脸区域内(R,C)处的像素标记为一个红眼像素。当然,为了以后使用目标图像,目标图像中(R,C)处的像素可以设置为255。
然后,处理转到步骤311。
在步骤311,在使变量C递增之后,判定C是否大于候选人脸区域的宽度。
如果步骤311的判定结果为“否”,处理转到步骤309;否则转到步骤312。
在步骤312,在使变量R递增之后,判定R是否大于候选人脸区域的高度。
如果步骤312的判定结果为“否”,处理转到步骤308;否则转到步骤313。
在步骤313,处理结束。
如上参考图1所述,图3和图2的流程可以一起使用。通常,首先执行图3的处理。如果由图3的处理将一个像素检测为红眼像素,那么用图2的处理来估计该像素。仅当像素估计为一个红眼像素时,这个像素才可能认为是一个红眼像素。在执行图2处理之前,由于图3处理过滤大量非红眼像素,所以减少了大量计算操作。
图4是图1步骤106的一个示例处理的示意流程图。
处理在步骤401开始。
在步骤402,对候选人脸区域产生一幅双灰度图像。这个双灰度图像也可以是图3处理的结果,图2处理的结果,或图3和图2处理组合的结果。
在该双灰度图像中,具有255灰度的像素对应于候选人脸区域内标记为红眼像素的像素,并且具有0灰度的像素对应于候选人脸区域内没有标记为红眼像素的像素。
在步骤402,对在步骤402产生,或由图1步骤105产生的灰度图像,执行一个“标号分割”处理。按照“标号分割”处理,识别红眼像素块,并且确定红眼像素块的数目。
在步骤404,将变量I设置为1。
在步骤405,计算第I红眼像素块的面积(即第I红眼像素块内的像素数),并且判定计算的面积是否小于第四阈值。第四阈值是候选人脸区域的高度、宽度最小值的一定倍数的平方。这里的一定倍数在0.05至0.02范围内,并且优选地为0.1。
例如,如果候选人脸区域的高度为189,并且候选人脸区域的宽度为153,则高度和宽度中较小一个为153。令一定倍数为0.1。0.1乘153得15.3。取整数“15”。15的平方为225。因而,本候选人脸区域的第四阈值可以取值“225”。
这里有另一个例子。假定候选人脸区域的高度为135,并且候选人脸区域的宽度为109。高度和宽度中较小一个为109。0.1乘109得10.9。取整数“10”。10的平方为100。因而,本候选人脸区域的第四阈值可以取值“100”。
如果步骤405的判定结果为“是”,处理转到步骤410(也就是,将第I红眼像素块保持为原样);否则转到步骤407。
在步骤407,对第I红眼块内的各红眼像素,在候选人脸区域内计算第一红度。一个像素的第一红度定义为:
第一红度=r/(r+g+b) (3)
其中r、g和b是指像素的r(红)、g(绿)和b(蓝)值。
可选择地,与一个像素的3*3像素邻域对应的区域的第一红度也可以用作该像素的一个指标。
在本发明中,一个区域的第一红度定义为该区域包括的所有像素的第一红度的平均。
在步骤408,根据在步骤407计算的第一红度的值,为第I红眼像素块计算一个临时阈值。
例如,可以首先对第一红度值按降序排序,形成一个数组。并且将数组中特定位置的值认为是临时阈值。
在步骤409,如果一个像素的第一红度不大于临时阈值,将这个像素的灰度从255变为0。也就是,如果灰度图像中其对应像素的第一红度不大于临时阈值,原来是红眼像素的像素不再被认为是红眼像素。
在步骤410,在使变量I递增之后,判定I是否大于红眼像素块数。
如果步骤410的判定结果为“否”,处理转到步骤405;否则转到步骤411。
在步骤411,处理结束。
图5和图6是图1步骤107的一个示例处理的示意流程图。图1步骤107能大致分成三个子步骤。在第一子步骤,对于红眼像素块的边界像素附近的像素,如果附近的这些像素满足预定条件,则通过吸收这些像素来增加红眼像素块的主体。在第二子步骤,对于与红眼像素块的边界像素相临的像素,如果这些与边界像素相临的像素满足预定条件,则通过吸收这些像素来增加红眼像素块的主体。第三子步骤是防止红眼像素块相互合并,并且除去不满足预定条件的红眼像素块。图5示例表示第一和第二子步骤,以及图6示例表示第三子步骤。
如图5所示,处理在步骤501开始。在步骤502,将变量I设置为1。在步骤503,计算第I红眼像素块的第一红度和色调。
如本说明书前面定义,一个块(它其实是一个区域)的第一红度定义为该块包括的所有像素的第一红度的平均。
一个像素的第一红度如上由公式(3)定义。
一个块(区域)的色调定义为该块(区域)包括的所有像素的色调值的平均。
一个像素的色调定义为:
色调=min(h,360-h) (4)
其中h是指候选人脸区域内像素的色调值。
然后在步骤504,定位第I红眼像素块的一个边界像素。
在步骤505,计算边界像素的亮度。一个像素的亮度定义为:
亮度=(r+g+b)/3 (5)
其中r、g和b是指像素的r(红)、g(绿)和b(蓝)值。
在步骤506,判定在步骤505计算的亮度是否大于第五阈值。第五阈值在80至120的范围内,并且优选地为100。
如果步骤506的判定结果为“是”,处理转到步骤509;否则转到步骤507。
在步骤507,判定在步骤505计算的亮度是否大于第六阈值。第六阈值在40至60的范围内,并且优选地为50。
如果步骤507的判定结果为“是”,处理转到步骤508;否则转到步骤510。
在步骤509,对于第I红眼像素块内与边界像素相临的每个像素,如果一个与边界像素间隔一个像素的对应像素满足第一条件,则将该与边界像素相临的像素添加到第I红眼像素块中。
例如,第I红眼像素块的一个边界像素的坐标为(i,j)。步骤509的功能是检查在(i+2,j)、(i-2,j)、(i,j-2)和(i,j+2)的像素是否满足第一条件。
例如,如果在(i+2,j)的像素满足第一条件,则将在(i+1,j)的像素添加到第I红眼像素块中。
设边界像素为像素A,并且与像素A间隔一个像素的像素为像素B,以及将像素A与像素B之间的像素(即与边界像素A相临的一个对应像素)添加到第I红眼像素块中。那么第一条件可以这样定义,以便像素A和像素B满足下列要求:
(1)像素B的饱和度大于0.9乘像素A的饱和度。这里,系数0.9可以在0.7至1范围内。
(2)像素B的第一红度大于0.8乘第I红眼像素块的第一红度。这里,系数0.8可以在0.7至0.9范围内。
(3)像素B的色调小于5乘第I红眼像素块的色调(在步骤503计算)。这里,系数5可以在2至10范围内。
在步骤509之后,为步骤510。
步骤508与步骤509类似。唯一不同是在步骤508估计第二条件。
设边界像素为像素A,并且与像素A间隔一个像素的像素为像素B,以及将像素A与像素B之间的像素(即与边界像素A相临的一个对应像素)添加到第I红眼像素块中。那么第二条件可以这样定义,以便像素A和像素B满足下列要求:
(1)像素B的饱和度大于1乘像素A的饱和度,并且像素B与像素A的亮度之间的绝对差小于0.1乘像素A的亮度。这里,系数1可以在0.8至1.2范围内,并且系数0.1可以在0至0.3范围内。
(2)像素B的第一红度大于0.8乘第I红眼像素块的第一红度。这里,系数0.8可以在0.7至0.9范围内。
(3)像素B的色调小于5乘第I红眼像素块的色调(在步骤503计算)。这里系数5可以在2至10范围内。
在步骤507、508或509之后,为步骤510。
在步骤510,判定像素的添加是否满足第五条件。
设本次(即从步骤505到步骤509的当前循环)添加到第I红眼像素块中的像素数为“count2”,上次(即从步骤505到步骤509的前次循环)添加到第I红眼像素块中的像素数为“count1”,扩大第I红眼像素块的次数为“times”。
那么,添加像素所满足的第五条件可以这样定义:
(1)count1/count2大于0且小于1。这里值“0”是一个在0至0.5范围内的阈值,并且值“1”是一个在0.8至2范围内的阈值。
(2)count2小于4乘眼区域的宽度,其中眼区域的宽度为人脸区域的宽度和人脸区域的高度中的最小值乘以1/10。这里,值“4”是一个在1至8范围内的阈值,值“1/10”是一个在1/5至1/15范围内的阈值。
(3)times小于1/2乘眼区域的宽度。这里,值“1/2”是一个在1/10至1范围内的阈值。
如果步骤510的判定结果为“是”,处理转到步骤511;否则转到步骤512。
在步骤511,判定是否定位另一个边界像素。如果步骤511的判定结果为“是”,处理转到步骤505;否则转到步骤512。
步骤512的处理与步骤505到511的处理类似。步骤512的主要目的是,对于每个与红眼像素块的边界像素相临的像素,如果这个像素满足第三条件(类似于第一条件)或第四条件(类似于第二条件),则将这个像素添加到该红眼像素块中。
例如,一个红眼像素块的一个边界像素的坐标为(i,j)。步骤512的功能之一是检查在(i+1,j)、(i-1,j)、(i,j-1)和(i,j+1)的像素是否满足第三条件(或第四条件)。
例如,如果在(i+1,j)的像素满足第三条件,将在(i+1,j)的像素添加到第I红眼像素块中。
然后,在步骤513,在使变量I递增之后,判定I是否大于红眼像素块数。如果步骤513的判定结果为“否”,处理转到步骤503;否则转到步骤514。
在步骤504,处理结束。
如图6所示,处理在步骤601开始。在步骤602,将变量I设置为1。在步骤603,判定第I红眼像素块是否与另一个红眼像素块,比方说块A相合并。步骤603可以实现为检查一个红眼像素块内的一个像素的3*3像素邻域是否包括另一个红眼像素块内的一个像素。如果是,将两个红眼像素块相互合并。
如果步骤603的判定结果为“否”,处理转到步骤611;否则转到步骤604。
在步骤604,对第I红眼像素块计算特征值C1,并且对块A计算特征值C2。
红眼像素块的特征值定义为红眼像素块的向量[第一红度,色调,饱和度,Y通道值,Cb通道值,Cr通道值]和权向量[0.920728,0.000282347,-0.0750816,0.000145816,0.00336445,0.000197533]的点积。
在以上向量中,块的第一红度、块的色调已在本说明书中前面定义。
一个块(区域)的饱和度定义为该块(区域)包括的所有像素的饱和度值的平均。
一个块(区域)的Y通道值定义为该块(区域)包括的所有像素的Y通道值的平均。
一个块(区域)的Cb通道值定义为该块(区域)包括的所有像素的Cb通道值的平均。
其次,在步骤6051,判定C1是否小于或等于第八阈值。这里,第八阈值使用费舍尔分类法通过训练而得到(R.A.Fisher,“The Use ofMultiple Measures in Taxonomic Problems,”Ann.Eugenics,1936)。第八阈值在0.5至1.5范围内,并且优选地为0.835。
如果步骤6051的判定结果为“否”,处理转到步骤6052;否则转到步骤6091。
在步骤6052,判定C2是否小于或等于第八阈值。
如果步骤6052的判定结果为“否”,处理转到步骤606;否则转到步骤6092。
在步骤606,计算C1与C2之间的绝对差C3。然后,在步骤607,判定C3是否大于第九阈值。
如果步骤607的判定结果为“是”,处理转到步骤610;否则转到步骤608。
在步骤608,除去具有C1和C2中较小值的红眼像素块。也就是,除去的块不再认为是一个红眼像素块。然后,步骤转到步骤611。
在步骤610,将第I红眼像素块和块A组合成一个块。然后处理转到步骤611。
在步骤6091,除去第I红眼像素块。也就是,第I块不再认为是红眼像素块。然后处理转到步骤6053。
在步骤6053,判定C2是否小于或等于第八阈值。
如果步骤6053的判定结果为“否”,处理转到步骤611;否则转到步骤6092。
在步骤6092,除去块A。也就是,块A不再认为是红眼像素块。然后处理转到步骤611。
在步骤611,在使变量I递增之后,判定I是否大于红眼像素块数。如果步骤611的判定结果为“否”,处理转到步骤603;否则转到步骤612。
在步骤612,处理结束。
在图6处理之后,在候选人脸区域内识别多个红眼像素块。各红眼像素块与候选人脸区域内的一个候选红眼区域相对应。
图7是图1步骤108的一个示例处理的示意流程图。图7的目的是根据多个候选红眼区域各自的红度、饱和度、色调、Cr通道值、Cb通道值、Y方差、红度方差、色调方差、r方差中的至少一个,选择不多于一个的候选红眼区域。
区域的饱和度、区域的色调和区域的Cb通道值已在本说明书前面定义。区域的Cr通道值定义为该区域包括的所有像素的Cr通道值的平均。这里,Cr是颜色空间(Y,Cb,Cr)内的一个通道。
本实施例包含三种类型的红度,它们是第一红度、第二红度和第三红度。一个像素的第一红度和一个区域的第一红度已在本说明书中前面定义。第二红度和第三红度将做如下说明。
如图7所示,处理在步骤701开始。在步骤702,将变量I设置为1。在步骤703,计算第I红眼像素块的第一红度、第二红度、第三红度、饱和度值和Cr通道值。
如本说明书前面定义,一个像素的第一红度定义为r/(r+g+b)(即公式(3))。并且一个块(即一个区域)的第一红度定义为该块(区域)包括的所有像素的第一红度的平均。
一个像素的第二红度由公式(6)定义:
第二红度=r2/(r2+g2+b2) (6)
其中r、g和b是指像素的r(红)、g(绿)和b(蓝)值。
一个块(即一个区域)的第二红度定义为该块(区域)包括的所有像素的第二红度的平均。
一个像素的第三红度由公式(7)定义:
第三红度=r-max(g,b) (7)
一个块(即一个区域)的第三红度定义为该块(区域)包括的所有像素的第三红度的平均。
在步骤703之后,处理转到步骤704。在步骤704,判定在步骤703计算的所有以上值是否在各自范围内。
例如,一个块的第一红度应该大于一个在0.3至0.7范围内,并且优选地为0.37的阈值。
一个块的第二红度应该大于一个在0.3至0.7范围内并且优选地为0.415的阈值。
一个块的第三红度应该大于一个在1至100范围内并且优选地为11的阈值。
一个块的饱和度值应该大于一个在0.1至0.5范围内并且优选地为0.12的阈值。
一个块的Cr通道值应该大于一个在80至200并且优选地为138的阈值。
如果步骤704的判定结果为“是”,处理转到步骤705;否则转到步骤706。
在步骤706,除去第I红眼块。也就是,第I红眼块不再认为是一个红眼像素块。然后处理转到步骤707。
在步骤705,对于第I红眼像素块,根据这个块的第二红度、这个块的Cb通道值、这个块的Y方差、这个块的第三红度方差、这个块的第二红度方差,以及这个块的色调、这个块的色调方差、这个块的r方差和这个块的第一红度,计算得分。
一个红眼像素块的得分按下列方式计算:
(1)得到这个块的第二红度、这个块的Cb通道值、这个块的Y方差、这个块的第三红度方差、这个块的第二红度方差、这个块的色调、这个块的色调方差、这个块的r方差、这个块的第一红度,并且根据这些值形成一个九维向量。
(2)通过对一个训练集执行费舍尔分类法和选择法,得到一个权向量{0.35352,0.00177666,-0.000882568,0.00124642,0.337243,0.00010886,-0.000689163,0.000666636,-0.303867}。
(3)计算(1)中的向量和(2)中的向量的内积,并且对红眼像素块得到一个得分。
在步骤705之后,为步骤707。
在步骤707,在使变量I递增之后,判定I是否大于红眼像素块数。如果步骤707的判定结果为“否”,处理转到步骤703;否则转到步骤708。
在步骤708,定位具有最大得分的红眼像素块。
在步骤709,判定所定位的红眼像素块是否大于第十阈值。第十阈值在0.2至0.5范围内,并且优选地为0.32。第十阈值使用费舍尔分类法通过训练得到。
如果步骤709的判定结果为“是”,处理转到步骤710;否则转到步骤711。
在步骤710,仅保持具有最大得分的红眼像素块,而除去其他红眼像素块。也就是,选择一个候选红眼区域。
在步骤711,除去所有红眼像素。也就是,无选择红眼区域。
在步骤712,处理结束。
图8是图1步骤110的一个示例处理的示意流程图,即校正红眼的处理。
在图8例子中,通过将各像素的R、G、B值改为新R、G、B值,校正红眼区域内的各像素。
如图8所示,处理在步骤801开始。在步骤802,对由先前检测步骤得到的灰度图像,执行高斯平滑处理。
在步骤803,将变量I设置为1。
在步骤804,判定灰度图像中第I像素的灰度是否为0。
如果步骤804的判定结果为“是”,处理转到步骤813;否则转到步骤805。
在步骤805,对于候选人脸区域内的对应像素,计算第二红度P1。
实际上,第二红度P1计算为:
P1=r2/(r2+g2+b2)+c1 (8)
其中c1是一个在[0,1]范围内的经验常数。如果P1>1,设P1=1。因而,P1在[0,1]范围内。
在步骤806,对第I像素计算一个指标P2。指标P2指示第I像素离红眼区域的边界有多远。一个像素的P2值越小,该像素与红眼区域的边界之间的距离越小。
实际上,一个像素的指标P2计算为:
P2=nGray/10+c2 (9)
其中nGray是灰度图像中像素的灰度,以及c2是[0,0.9]范围内的一个经验常数。如果P2>1,设P1=1。因而,P2在[0,1]范围内。
在步骤807,校正系数P计算为:
P=P1*P2 (10)
在步骤808,判定P是否等于0。如果步骤808的判定结果为“是”,处理转到步骤813;否则转到步骤809。
在步骤809,将第I像素的R、G、B值转换成Y通道值、Cr通道值、Cb通道值。
在步骤810,新Y、Cr、Cb通道值计算如下:
新Y=Y;
新Cr=(1-P)*Cr; (11)
新Cb=(1-P)*Cb。
在步骤811,将新Y值、新Cr值、新Cb值转换成新R、新G、新B值。
在步骤812,将第I像素的原R、G、B值改变为新R、G、B值。
在步骤813,在使变量I递增之后,判定I是否大于灰度图像中的像素数。
如果步骤813的判定结果为“否”,处理转到步骤804;否则转到步骤814。
在步骤814,处理结束。
图9A至图9E说明一个实例。图9A表示在图1步骤102识别的一个候选人脸区域。图9B表示通过图1步骤103至108,在左眼区域内检测到一个红眼区域901,以及在右眼区域内检测到一个红眼区域902。
取红眼区域901作为例子。图9D表示在图1步骤108之后得到的红眼区域901的灰度图像。
图9E表示在对图9D灰度图像执行高斯平滑处理(图8步骤802)之后的结果灰度图像。
关于红眼区域902,同样执行类似处理。
图9C表示其中红眼已得到校正的人脸。
图10示意表示一个图像处理系统,其中能实现图1至图8所示的各处理。图10所示图像处理系统包括一个CPU(中央处理单元)1001,一个RAM(随机存取存储器)1002,一个ROM(只读存储器)1003,一个系统总线1004,一个HD(硬盘)控制器1005,一个键盘控制器1006,一个串行端口控制器1007,一个并行端口控制器1008,一个显示器控制器1009,一个硬盘1010,一个键盘1011,一个照相机1012,一个打印机1013,和一个显示器1014。在这些部件中,与系统总线1004连接的有CPU1001,RAM1002,ROM1003,HD控制器1005,键盘控制器1006,串行端口控制器1007,并行端口控制器1008,和显示器控制器1009。硬盘1010与HD控制器1005连接,并且键盘1011与键盘控制器1006连接,照相机1012与串行端口控制器1007连接,打印机1013与并行端口控制器1008连接,以及显示器1004与显示器控制器1009连接。
图10中各部件的功能在本领域内周知,并且图10所示体系结构为常规。这样的体系结构不仅适用于个人计算机,而且适用于手提式设备,例如掌上PC、PDA(个人数字助理)、数字照相机等。在不同应用中,可以省略图10所示部件中的有些。例如,如果整个系统是一个数字照相机,能省略并行端口控制器1008和打印机1013,并且系统能实现为一个单片微型计算机。如果应用软件存储在EPROM或其他非易失存储器中,能省略HD控制器1005和硬盘1010。
图10所示整个系统由计算机可读指令来控制,这些指令通常作为软件存储在硬盘1010中(或如上所述,存储在EPROM或其他非易失存储器中)。软件也能从网络(图中未示出)下载。保存在硬盘1010或从网络下载的软件能装入RAM1002,并且由CPU1001执行,以实现软件所限定的功能。
对本领域技术人员,根据图1至图8所示流程图中的一个或多个,研制一块或多块软件,不涉及创造性工作。
虽然以上所述参考了本发明的特定实施例,但是本领域技术人员将会理解,这些只是说明性的,并且在不违反本发明的原理下,其范围由附加权利要求限定,能实现这些实施例的许多改变。
Claims (20)
1.一种检测图像中的红眼的方法,其特征在于包括以下步骤:
识别所述图像中的一个眼区;
识别所述眼区内的第一数目的候选红眼区域;
缩小所述第一数目的候选红眼区域,得到第二数目的候选红眼区域,所述第二数目小于或等于所述第一数目;
扩大所述第二数目的候选红眼区域,得到第三数目的候选红眼区域,所述第三数目小于或等于所述第二数目;以及
从所述第三数目的候选红眼区域中选择不多于一个的候选红眼区域,作为所述眼区内检测到的红眼。
2.按照权利要求1的方法,还包括以下步骤:
修正所述红眼中包括的像素的特征值,以便消除所述红眼。
3.按照权利要求1的方法,其特征在于对于所述第二数目的候选红眼区域的每个候选红眼区域,所述扩大所述第二数目的候选红眼区域的步骤包括以下步骤:
定位所述候选红眼区域的一个边界像素;
定位一个不包括在所述候选红眼区域中的、但是与所述边界像素相临的第一像素;
定位一个不包括在所述候选红眼区域中的、但是与所述第一像素相临的第二像素;
如果所述边界像素和所述第二像素满足一个条件,将所述第一像素添加到所述候选红眼区域中。
4.按照权利要求3的方法,其特征在于所述条件包括第一条件,其中:
所述边界像素的亮度大于一个在80至120范围内的第五阈值,
所述第二像素的饱和度大于0.7至1乘所述边界像素的饱和度,
所述第二像素的第一红度大于0.7至0.9乘所述候选红眼区域的第一红度,以及
所述第二像素的色调小于2至10乘所述候选红眼区域的色调。
5.按照权利要求3的方法,其特征在于所述条件包括第二条件,其中:
所述边界像素的亮度大于一个在40至60范围内的第六阈值,
所述第二像素的饱和度大于0.8至1.2乘所述边界像素的饱和度,
所述第二像素与所述边界像素的亮度之间的绝对差小于0至0.3乘所述边界像素的亮度,
所述第二像素的第一红度大于0.7至0.9乘所述候选红眼区域的第一红度,以及
所述第二像素的色调小于2至10乘所述候选红眼区域的色调。
6.按照权利要求1的方法,其特征在于对于所述第二数目的候选红眼区域中的每一个候选红眼区域,所述扩大所述第二数目的候选红眼区域的步骤包括以下步骤:
定位所述候选红眼区域的一个边界像素;
定位一个不包括在所述候选红眼区域中的、但是与所述边界像素相临的第一像素;
如果所述边界像素和所述第一像素满足另一个条件,则将所述第一像素添加到所述候选红眼区域中。
7.按照权利要求6的方法,其特征在于所述另一个条件包括第三条件,其中:
所述边界像素的亮度大于一个在80至120范围内的第五阈值,
所述第一像素的饱和度大于0.7至1乘所述边界像素的饱和度,
所述第一像素的第一红度大于0.7至0.9乘所述候选红眼区域的第一红度,以及
所述第一像素的色度小于2至10乘所述候选红眼区域的色调。
8.按照权利要求6的方法,其特征在于所述另一个条件包括第四条件,其中:
所述边界像素的亮度大于一个在40至60范围内的第六阈值,
所述第一像素的饱和度大于0.8至1.2乘所述边界像素的饱和度,
所述第一像素与所述边界像素的亮度之间的绝对差小于0至0.3乘所述边界像素的亮度,
所述第一像素的第一红度大于0.7至0.9乘所述候选红眼区域的第一红度,以及
所述第一像素的色调小于2至10乘所述候选红眼区域的色调。
9.按照权利要求3的方法,其特征在于所述扩大所述第二数目的候选红眼区域的步骤还包括以下步骤:
如果两个候选红眼区域相互合并,并且所述两个候选红眼区域中的一个的特征值小于第八阈值,则除去所述一个候选红眼区域。
10.按照权利要求3的方法,其特征在于所述扩大所述第二数目的候选红眼区域的步骤还包括以下步骤:
如果两个候选红眼区域相互合并,所述两个候选红眼区域的特征值都大于第八阈值,并且两个特征值之间的绝对差小于第九阈值,则将所述两个候选红眼区域组合成一个候选红眼区域。
11.按照权利要求3的方法,其特征在于所述扩大所述第二数目的候选红眼区域的步骤还包括以下步骤:
如果两个候选红眼区域相互合并,所述两个候选红眼区域的特征值都大于第八阈值,并且两个候选红眼区域的特征值之间的绝对差大于第九阈值,则将所述两个候选红眼区域中具有较低特征值的一个候选红眼区域除去。
12.按照权利要求1的方法,其特征在于所述从所述第三数目的候选红眼区域中选择不多于一个的候选红眼区域的步骤包括以下步骤:
计算所述第三数目的候选红眼区域中的每一个候选红眼区域的得分;以及
选择一个具有最大得分的候选红眼区域。
13.按照权利要求12的方法,其特征在于所述计算所述第三数目的候选红眼区域中的每一个候选红眼区域的得分的步骤包括以下步骤:
对所述候选红眼区域,计算第二红度、Cb通道值、Y方差、第三红度方差、第二红度方差、色调、色调方差、r方差、第一红度方差,形成一个九维向量;
计算所述九维向量和一个权向量的内积,得到所述候选红眼区域的所述得分。
14.按照权利要求13的方法,其特征在于通过对一个训练集执行费舍尔分类法和选择法,得到所述权向量。
15.按照权利要求1的方法,其特征在于对于所述眼区内的每个像素,所述识别所述眼区内的第一数目的候选红眼区域的步骤包括以下步骤:
限定一个以所述像素为中心的瞳孔区域;
根据所述瞳孔区域,计算所述像素的颜色方差;以及
如果所述颜色方差大于第一阈值和第二阈值中的至少一个,则将所述像素标记为一个红眼像素,所述红眼像素和其他红眼像素一起,形成所述第一数目的候选红眼区域中的一个。
16.按照权利要求1的方法,其特征在于所述识别所述红眼区内的第一数目的候选红眼区域的步骤包括以下步骤:
产生所述图像的一幅灰度图像;
通过使用第一模板对所述灰度图像执行闭运算,产生一幅闭图像;
通过使用第二模板对所述灰度图像执行开运算,产生一幅开图像;
通过从所述闭图像减去所述开图像,产生一幅目标图像;
对所述目标图像执行高斯平滑处理;以及
对所述目标图像中具有大于第三阈值的灰度的每个像素,将原图像中的一个对应像素标记为一个红眼像素,所述红眼像素和其他红眼像素一起,形成所述第一数目的候选红眼区域中的一个。
17.按照权利要求1的方法,其特征在于对于所述第一数目的候选红眼区域的每个候选红眼区域,所述缩小所述第一数目的候选红眼区域的步骤包括以下步骤:
计算所述候选红眼区域内每个像素的第一红度;
计算所述候选红眼区域内像素的所述第一红度的临时阈值;
从所述候选红眼区域中除去其第一红度小于所述临时阈值的像素。
18.按照权利要求2的方法,其特征在于对于所述红眼包括的每个像素,所述修正所述红眼包括的像素的特征值的步骤包括以下步骤:
根据所述像素的红度和指示所述像素离所述红眼的边界有多远的指标,计算所述像素的一个校正系数;以及
根据所述校正系数,修正所述像素的特征值。
19.按照权利要求18的方法,其特征在于还包括以下步骤:
将所述像素的R、G、B值转换成Y、Cr、Cb值;
计算新Cr值和新Cb值;
将Y、新Cr、新Cb值转换成新R、G、B值;
用新R、G、B值代替原R、G、B值。
20.按照权利要求2的方法,其特征在于在所述修正所述红眼中包括的像素的特征值的步骤之前,还包括以下步骤:
对所述红眼的灰度图像执行高斯平滑处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101160349A CN100468453C (zh) | 2003-12-29 | 2003-12-29 | 检测和校正图像中的红眼的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101160349A CN100468453C (zh) | 2003-12-29 | 2003-12-29 | 检测和校正图像中的红眼的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1635547A true CN1635547A (zh) | 2005-07-06 |
CN100468453C CN100468453C (zh) | 2009-03-11 |
Family
ID=34843534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003101160349A Expired - Fee Related CN100468453C (zh) | 2003-12-29 | 2003-12-29 | 检测和校正图像中的红眼的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100468453C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447026A (zh) * | 2008-12-26 | 2009-06-03 | 北京中星微电子有限公司 | 一种红眼检测装置及其检测方法 |
CN104573715A (zh) * | 2014-12-30 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 图像主体区域的识别方法及装置 |
CN104637031A (zh) * | 2013-11-12 | 2015-05-20 | 华为终端有限公司 | 眼部图像处理方法和装置 |
CN104063850B (zh) * | 2014-06-24 | 2017-02-01 | 广东互维科技有限公司 | 红眼修复方法 |
-
2003
- 2003-12-29 CN CNB2003101160349A patent/CN100468453C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447026A (zh) * | 2008-12-26 | 2009-06-03 | 北京中星微电子有限公司 | 一种红眼检测装置及其检测方法 |
CN101447026B (zh) * | 2008-12-26 | 2013-02-13 | 北京中星微电子有限公司 | 一种红眼检测装置及其检测方法 |
CN104637031A (zh) * | 2013-11-12 | 2015-05-20 | 华为终端有限公司 | 眼部图像处理方法和装置 |
WO2015070723A1 (zh) * | 2013-11-12 | 2015-05-21 | 华为终端有限公司 | 眼部图像处理方法和装置 |
CN104637031B (zh) * | 2013-11-12 | 2017-08-29 | 华为终端有限公司 | 眼部图像处理方法和装置 |
CN104063850B (zh) * | 2014-06-24 | 2017-02-01 | 广东互维科技有限公司 | 红眼修复方法 |
CN104573715A (zh) * | 2014-12-30 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 图像主体区域的识别方法及装置 |
US10121095B2 (en) | 2014-12-30 | 2018-11-06 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method and device for recognizing subject area of image |
Also Published As
Publication number | Publication date |
---|---|
CN100468453C (zh) | 2009-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1305010C (zh) | 在考虑其噪声的情况下改变数字图像的方法和系统 | |
CN1691130A (zh) | 图像处理设备、方法和程序 | |
CN1253790C (zh) | 指令调度方法和指令调度设备 | |
CN101038672A (zh) | 一种图像跟踪方法及系统 | |
CN1592915A (zh) | 用户可定义的图像基准点 | |
CN1774031A (zh) | 图像处理装置及图像处理方法、以及计算机程序 | |
CN1684492A (zh) | 图像词典作成装置、编码装置、图像词典作成方法 | |
CN1599406A (zh) | 图像处理方法和装置及其程序 | |
CN101079953A (zh) | 信息处理系统、信息处理设备、信息处理方法以及程序 | |
CN1675919A (zh) | 摄像系统及图像处理程序 | |
CN1904999A (zh) | 动态图像显示装置及动态图像显示方法 | |
CN1678056A (zh) | 图像处理装置与方法、记录介质以及程序 | |
CN1400806A (zh) | 采用自适应二值化的图象处理方法和设备 | |
CN1926863A (zh) | 多通路视频编码 | |
CN1531711A (zh) | 由数字图象计算转换图象的方法和系统 | |
CN1510656A (zh) | 显示装置、显示方法和显示程序 | |
CN1801183A (zh) | 信息处理装置和方法以及程序 | |
CN1220390C (zh) | 图像处理设备和图像处理方法 | |
CN1678021A (zh) | 图像处理设备和方法、记录媒体和程序 | |
CN1873625A (zh) | 一种基于功能覆盖率的随机激励的自动产生方法 | |
CN1171462C (zh) | 固体彩色摄像装置 | |
CN1817047A (zh) | 用于处理具有排列的不同色彩分量的图像的图像处理装置,图像处理程序,电子照相机,以及图像处理方法 | |
CN1856801A (zh) | 逐像素有差别和准正则地修改数字图像的方法和系统 | |
CN1841407A (zh) | 图像处理装置 | |
CN101038674A (zh) | 一种图像跟踪方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090311 Termination date: 20161229 |