基于人脸检测的红眼去除方法

文档序号:6525013阅读:225来源:国知局
专利名称:基于人脸检测的红眼去除方法
技术领域
本发明涉及一种图像处理技术领域的方法,特别是一种基于人脸检测的红眼去除方法。
背景技术
红眼现象是指照相机在闪光灯模式下拍摄人像照片时,在照片中的人眼瞳孔处会呈现红色斑点状。其成因是人的瞳孔在环境光比较暗时会放大,近距离闪光灯的强光经过放大的瞳孔,打在视网膜后的微血管组织上,反射回红色的光线,造成实际成像的照片呈现“红眼”。红眼主要受环境亮度、对象年龄、闪光灯光线反射入镜头的角度和特定的人群或人种的影响。有时占据整个瞳孔范围,色彩较红,有时仅出现于瞳孔的部分区域,呈金色状。人们根据红眼的成因,采用了一些方法来消除其对照片的影响,如提高环境亮度、使用外置闪光灯、缩短与被摄对象的距离、使被摄对象不直视照相机镜头等等。不少照相机都具有红眼减弱功能,其工作方式就是在成像闪光之前加闪一次,使被摄对象的瞳孔在预闪后缩小,成像时红眼效应就会减轻一些。但这一功能往往不能确保红眼现象的完全消除,而且要求被摄对象在预闪时必须直视照相机,年龄较小的孩子注意力不易集中,常常达不到预期效果。随着数码影像技术日益成熟,数码照片有取代传统胶片的趋势。照片的数码化不仅带来了摄取和保存的便利,还为成像后照片的修正带来了可能。因此,近年来已有多种利用数字图像处理技术的红眼去除方案问世。
经对现有技术文献的检索发现,中国专利申请号为200410087987.1的专利申请涉及红眼的去除方法,该专利根据个别设定的检测条件,从图像中检测肤色像素、白色像素和红色像素,根据位于该红眼像素候补的周边区域内的肤色像素和白色像素的个数判断该红色像素候补的周边是眼睛区域,其红色像素是否构成红眼。然后采用降低红眼像素的色度进行红眼修正。但该专利技术是在颜色信息的基础上进行红眼去除处理,而基于颜色信息的方法在实际应用中的效果不够稳定,对于光照不佳的照片常常会漏检红眼。此外对所有的红眼照片做同一处理,则在一些情况下效果不佳(特别是在红眼偏金色时)。

发明内容
本发明针对现有技术的不足和缺陷,提供一种基于人脸检测的红眼去除方法。使其运用快速的人脸检测算法缩小了红眼的搜索范围,并根据瞳孔的颜色进行修正。在没有人工参与的情况下,也能够精确检测并修正数码照片中红眼,同时兼顾图像处理的速度。
本发明是通过以下技术方案实现的,本发明包括三个步骤(1)人脸检测采用机器学习算法训练得到的人脸分类器,并结合肤色信息得到照片中的人脸区域;(2)红眼检测根据人脸区域红色度分布,将检测到的区域分为典型红眼和弱红眼两种不同的类型进行红眼区域的检测;(3)红眼修正在找到的红眼区域进行色彩的修正和边界的平滑,使修正后的照片恢复正常的色彩。
本发明中,首先检测照片中人脸,可以缩小红眼搜索的范围,也可以得到红眼的大概尺度,有利于检测的准确性。
其中人脸分类器是采用机器学习的方法,在矩形特征的基础上,对大量的人脸灰度图进行训练而得到的。这种人脸检测的算法的稳定性好,与其他的人脸检测算法相比速度较快。
上述人脸分类器处理的是灰度图像,对于一般的彩色数码照片,还可以增加肤色像素的判断,以排除在对应的灰度图像中误检出的人脸区域。在各种颜色模型中,HSV模型用色彩的色调(H)、饱和度(S)和亮度(V)为三要素来表示颜色,体现了人眼辨别颜色的特点,比较适合于描述和分析肤色区域。一般的数码照片通常是用RGB或YCbCr颜色空间来表示,在肤色判别的时候需要转换到HSV空间进行处理。但是肤色特征受光照条件的影响较大,在光照过强或光照不足的环境中获得的人脸区域若直接进行肤色判定,常有漏检现象。而在肤色判定前对待检区域做光照补偿,则可以有效地降低肤色判定中的漏检率。
在人脸区域检测红眼,最重要的信息是色彩。带有红眼的照片之所以容易区别,就是因为瞳孔处的红色斑点和平时对人眼色彩的认知差别很大。因此色调是红眼判别的重要线索。此外,在红眼现象中,有些红眼在照片中呈现红色圆形状,几乎占据了整个瞳孔位置,其红色调较纯;另外有一些红眼在照片中的形状不定,只占据了部分瞳孔位置,色彩往往偏黄或偏暗,红色调不如前者纯。前一种现象常常出现在对象为白色人种和环境光线较好的条件下,后一种现象则往往出现在对象为其他人种或环境光线较差的条件下。在此,可将两者分别称为典型红眼和弱红眼,检测的时候区别对待。
在人脸检测部分已将人脸所在的区域用方形的窗口表示,而瞳孔所在的位置相对于人脸是固定的,可以在人脸窗口中的一定范围内搜寻红眼。方形的人脸窗口带有一些背景,有的背景具有红色区域,会影响到红眼的检测。在缩小范围后,背景已被排除在外,因而对红眼的搜索基本限制在脸部区域。
红眼的位置确定以后,修正工作的目标是调整红眼像素的色彩值,使其恢复正常的颜色。修正最主要的是要解决瞳孔色彩偏红的问题,在RGB空间里,红色用R通道的值来表示,对于红眼修正而言在RGB空间中对R通道进行调整,是简便而直观的方法。但仅对R通道进行调整往往是不够的,在一些情况下,G通道值和R通道值相差较大,仅降低R通道值会使修正后的红眼显得偏绿或偏蓝。因此,在对R通道进行减色处理的同时,还需要对G通道和B通道做出适当调整。在对红眼像素进行修正后,被修正区域的边界会同周围的像素有差别,使得修正后的红眼边界过渡不自然。因此需要加入适当的平滑处理。
与现有技术相比,本发明所揭示的红眼去除方法,通过在人脸区域内检测红眼区域,可以在很大程度上减少红眼检测的搜索范围,降低误报率。而本发明采用的人脸检测算法与其他现有的算法相比有速度快,检测结果稳定性好的优势,从而保证了方法整体的速度和稳定性。此外,本发明通过计算待检区域的红色度分布将红眼分成两类,增强了算法对不同条件下红眼的处理能力,同时提高了红眼定位的准确度。


图1是本发明方法原理框图。
图2是人脸检测流程图。
图3是矩形特征的示意图。
具体实施例方式
如图1所示,本发明包括三个步骤,分别为人脸检测、红眼检测和红眼修正。
人脸检测步骤包括三部分,人脸分类器、肤色判别和光照补偿。如图2所示,在人脸检测步骤中,输入的彩色照片先被转换成灰度图像。人脸分类器在灰度图像中检测出图像中一个或多个人脸,并将人脸的位置用方框标出。然后在原图像(彩色照片)中计算对应检出区域中肤色像素的个数,当肤色像素个数在区域中的比例达到一定阈值THskin时,即可将该区域判断为人脸区域。否则就对该检出区域进行光照补偿,再计算肤色像素并判断是否为人脸区域。
人脸分类器是通过机器学习的算法对大量人脸图像训练后得到的。该分类器采用了矩形特征。矩形特征也被成为类哈尔特征(Haar-like feature),如图3所示,包括边界特征、线条特征和中心包围特征3类,共14种。矩形特征的值表示为黑色区域像素值之和减去白色区域像素值之和。在一个特定的方形区域,有尺度大小不一、数量众多的矩形特征。如在24x24的方形区域中,有117951种不同的矩形特征。机器学习的算法就是在这大量的矩形特征中找出数量不大的一部分,用以判别人脸。通过事先对人脸图像的训练,机器学习算法给出用于判别人脸的这些矩形特征在方形区域中的相对位置和阈值,从而构成人脸分类器。
原图像对应的灰度图通过人脸分类器后,得到用方形框出的人脸候选区域。通过在原图像对应区域计算肤色像素的比例,可以排除一些误检区域。本方法采用的肤色模型是在HSV颜色空间的,H、S、V分别代表色彩的色调、饱和度和亮度。若将某像素的色彩值分别用R(红)、G(绿)、B(蓝)表示,则将像素从RGB空间根据以下公式转换到HSV空间H=H1ifB≤G360-H1ifB>G]]>S=max(R,G,B)-min(R,G,B)max(R,G,B)]]>
V=max(R,G,B)255]]>当HSV在下述范围内,即可认为是肤色像素H∈
∪[340,360]而且S∈
而且V∈

如果一个人脸候选区域没有通过第一次肤色判别,则要对该区域进行光照补偿。具体是对RGB空间的三个颜色通道分别做直方图均衡化。每个颜色通道中最亮的小部分像素和最暗的小部分像素的值分别被重新设定为255和0,而中间大部分像素的值线性则映射到其余的值区间内。在光照补偿后,再进行一次肤色判别。候选区域只要通过任一次肤色判别,即被确定为人脸区域。
如图1所示,红眼检测步骤由红色度计算、红眼类型判定、红眼区域分割三部分构成。
对于红眼特有的色彩没有一个很好的量化方法,但一般而言,红眼处像素的红色调比起其他色彩的色调要更纯一些。此外,也考虑到使红色度对红色和非红色区域的区隔度较大,本发明将坐标为(x,y)处像素的红色度(redness)定义为redness(x,y)=exp((R(x,y)2G(x,y)2+B(x,y)2+K)/L)]]>其中R(x,y)、G(x,y)、B(x,y)分别为该像素在RGB空间表示的值,常数K用于避免在G(x,y)和B(x,y)都为零时出现奇点,L为调整系数。
典型红眼的红色度值比较高,占的面积较大;而弱红眼的红色度值较低,所占面积较小。比较它们的归一化红色度直方图,可以发现典型红眼的直方图一般集中于左侧,红眼像素和背景的区分度较大,可以用固定阈值法选定阈值。而弱红眼的归一化直方图分布比较平均,红眼像素和背景的区分度较小,不宜采用固定阈值法。但弱红眼在图像中所占的面积一般不会超过瞳孔面积的一半,且红眼处的红色度仍是周边区域内最高的部分,可以根据弱红眼的面积来取划分阈值。通过对多幅人脸图像做统计,得到瞳孔面积与人脸面积的比值。从而在获得人脸区域的同时也就得到相应瞳孔的面积。令瞳孔面积为Sp,搜寻范围为Si,则可以确定弱红眼的阈值,使阈值之上的像素个数与整体像素比为
ratio=0.5·SpSi]]>上述计算归一化红色度直方图的范围,是在人脸窗口中瞳孔的大致位置及周边区域。
在一个人脸区域中有两个红眼搜索区域,每个搜索区域经过阈值划分得到掩模后,一般会得到一个红眼区域和几个噪声区域。噪声区域是由于脸部个别像素点偏红造成的,面积小于红眼区域。因此可以在该区域内对所有相通块的面积进行计算,留下面积最大的作为红眼区域。
为了修正红眼,并还原瞳孔真实、自然的色彩,红眼像素的修正需要对R、G、B三个颜色通道都进行调整。可以根据下列公式计算修正后各通道值Rc=G+B2]]>Bc=B+Rc2]]>Gc=G+Rc2]]>Rc、Bc、Gc分别为修正后的R、B、G通道的值。
为了使修正后的红眼区域和周边的像素过渡平缓,本发明对于每个红眼边缘像素,都应用如下3×3的模板进行平滑1Σwijw00w01w02w10w11w12w20w21w22]]>式中Wij是加权系数,其中斜向相邻点W00,W02,W20,W22取1,四相邻点W01,W10,W12,W21取2,中心点W11取4。
权利要求
1.一种基于人脸检测的红眼去除方法,其特征在于,包括三个步骤(1)人脸检测采用机器学习算法训练得到的人脸分类器,并结合肤色信息得到照片中的人脸区域;(2)红眼检测根据人脸区域红色度分布,将检测到的区域分为典型红眼和弱红眼两种类型进行红眼区域的检测;(3)红眼修正在找到的红眼区域进行色彩的修正和边界的平滑,使修正后的照片恢复正常的色彩。
2.根据权利要求1所述的基于人脸检测的红眼去除方法,其特征是,所述的人脸检测步骤包括三部分人脸分类器、肤色判别和光照补偿,输入的彩色照片先被转换成灰度图像,人脸分类器在灰度图像中检测出图像中一个或多个人脸,并将人脸的位置用方框标出,然后在原图像即彩色照片中计算对应检出区域中肤色像素的个数,当肤色像素个数在区域中的比例达到一定阈值时,即将该区域判断为人脸区域,否则就对该检出区域进行光照补偿,再计算肤色像素并判断是否为人脸区域。
3.根据权利要求2所述的基于人脸检测的红眼去除方法,其特征是,所述的人脸分类器,是通过机器学习的算法对大量人脸图像训练后得到的,该分类器采用了矩形特征,包括边界特征、线条特征和中心包围特征3类,共14种,矩形特征的值表示为黑色区域像素值之和减去白色区域像素值之和,在一个特定的方形区域,有大小尺度、数量众多的矩形特征,机器学习的算法在这大量的矩形特征中找出较小数量的一部分用以判别人脸,通过事先对人脸图像的训练,机器学习算法给出用于判别人脸的这些矩形特征在方形区域中的相对位置和阈值,从而构成人脸分类器。
4.根据权利要求2所述的基于人脸检测的红眼去除方法,其特征是,通过在原图像对应区域计算肤色像素的比例,排除一些误检区域,具体采用的肤色模型是在HSV颜色空间的,H、S、V分别代表色彩的色调、饱和度和亮度,若将某像素的色彩值分别用R、G、B表示,则将像素从RGB空间根据以下公式转换到HSV空间H=H1ifB≤G360-H1ifB>G]]>S=max(R,G,B)-min(R,G,B)max(R,G,B)]]>V=max(R,G,B)255]]>当HSV在下述范围内,即认为是肤色像素H∈
∪[340,360]且S∈
且V∈

5.根据权利要求2所述的基于人脸检测的红眼去除方法,其特征是,如果一个人脸候选区域通过第一次肤色判别失败,则要对该区域进行光照补偿,具体是对RGB空间的三个颜色通道分别做直方图均衡化,每个颜色通道中最亮的小部分像素和最暗的小部分像素的值分别被重新设定为255和0,而中间大部分像素的值线性则映射到其余的值区间内,在光照补偿后,再进行一次肤色判别,候选区域只要通过任一次肤色判别,即被确定为人脸区域。
6.根据权利要求1所述的基于人脸检测的红眼去除方法,其特征是,所述的红色度,是指坐标为(x,y)处像素的红色度定义为redness(x,y)=exp((R(x,y)2G(x,y)2+B(x,y)2+K)/L)]]>其中R(x,y)、G(x,y)、B(x,y)分别为该像素在RGB空间表示的值,常数K用于避免在G(x,y)和B(x,y)都为零时出现奇点,L为调整系数。
7.根据权利要求1所述的基于人脸检测的红眼去除方法,其特征是,所述的红眼区域的检测,具体为典型红眼用固定阈值法选定阈值;弱红眼根据其面积来取划分阈值,通过对多幅人脸图像做统计,得到瞳孔面积与人脸面积的比值,从而在获得人脸区域的同时也就得到相应瞳孔的面积,令瞳孔面积为Sp,搜寻范围为Si,则确定弱红眼的阈值,使阈值之上的像素个数与整体像素比为ratio=0.5·SpSi]]>上述计算归一化红色度直方图的范围,是在人脸窗口中瞳孔的大致位置及周边区域。
8.根据权利要求1或者7所述的基于人脸检测的红眼去除方法,其特征是,所述的红眼区域,是指在一个人脸区域中有两个红眼搜索区域,每个搜索区域经过阈值划分得到掩模后,会得到一个红眼区域和几个噪声区域,噪声区域是由于脸部个别像素点偏红造成的,面积小于红眼区域,因此在该区域内对所有相通块的面积进行计算,留下面积最大的作为红眼区域。
9.根据权利要求1所述的基于人脸检测的红眼去除方法,其特征是,所述的红眼区域进行色彩的修正,是指对R、G、B三个颜色通道都进行调整,根据下列公式计算修正后各通道值Rc=G+B2]]>Bc=B+Rc2]]>Gc=G+Rc2]]>Rc、Bc、Gc分别为修正后的R、B、G通道的值。
10.根据权利要求1所述的基于人脸检测的红眼去除方法,其特征是,所述的红眼区域进行边界的平滑,是指为了使修正后的红眼区域和周边的像素过渡平缓,对于每个红眼边缘像素,都用如下3×3的模板进行平滑1Σwijw00w01w02w10w11w12w20w21w22]]>式中Wij是加权系数,其中斜向相邻点W00,W02,W20,W22取1,四相邻点W01,W10,W12,W21取2,中心点W11取4。
全文摘要
一种图像处理技术领域的基于人脸检测的红眼去除方法,包括三个步骤(1)人脸检测采用机器学习算法训练得到的人脸分类器,并结合肤色信息得到照片中的人脸区域;(2)红眼检测根据人脸区域红色度分布,将检测到的区域分为典型红眼和弱红眼两种类型进行红眼区域的检测;(3)红眼修正在找到的红眼区域进行色彩的修正和边界的平滑,使修正后的照片恢复正常的色彩。本发明运用快速的人脸检测算法缩小了红眼的搜索范围,并根据瞳孔的颜色进行修正。在没有人工参与的情况下,也能够精确检测并修正数码照片中红眼,同时兼顾图像处理的速度。
文档编号G06T5/00GK1750017SQ20051003011
公开日2006年3月22日 申请日期2005年9月29日 优先权日2005年9月29日
发明者赵群飞, 路明, 施鹏飞, 李立鸿, 森泽太平 申请人:上海交通大学, 宾得株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1