基于深度学习和水平集的人脸分割方法
技术领域
本发明属于图像分割技术领域,具体涉及一种能够减少过分割和欠分割现象,匹配速度快,准确度高,可实时高效分割的基于深度学习和水平集的人脸分割方法。
背景技术
人脸是人类的一个重要的生物特征,包含了丰富的特征信息和结构信息。人脸分割作为人脸信息处理中的一项关键技术,在身份验证、基于内容的图像检索、自动监控、人机交互等方面有着重要的应用价值。人脸分割主要是指在图像中确定人脸的位置和区域,以便于实施人脸检测以及脸部重要特征的测量和描述;并为人脸识别、表情分析等面部的高级理解打下技术基础。因此,人脸分割的准确性和高效性,直接影响图像识别等后期处理的质量。
目前,针对人脸分割的方法主要有以下几种:1、根据人脸颜色与周围环境颜色的不同,利用肤色在彩色空间中呈现出来的聚类特征,实施肤色分割。这种人脸分割方法的特点是算法简单,但却不能分割背景复杂的人脸图像、以及不同肤色的人脸图像。2、利用背景差分法来分割运动中的人脸图像,通过比较运动图像序列中相邻图像帧之间的差值,定位人脸位置。该方法的优点是可以将人脸与静止的背景区分开,但是,当场景中还存在其他的运动物体时,会产生误分割的现象。3、利用边缘提取算法来提取面部轮廓。该方法只适用于背景单一的人脸图像。4、曲线拟合的方法。该方法先检测人脸的轮廓点,然后对检测到的轮廓点进行椭圆拟合,但对于形状不规则的人脸无法进行有效分割。5、基于模板的分割方法。该方法需要确定模板形状,分割效果受模板的影响较大。6、基于活动轮廓模型的人脸分割方法。该方法对噪声较敏感,且对弱边缘易出现过分割的现象。
近年来,以活动轮廓模型为基础的、与其他方法和理论相结合的人脸图像分割方法,受到了研究者们的关注;其目的主要是为了克服:1、基于边界的活动轮廓模型,由于仅仅利用了边界附近图像梯度的局部信息,使其对于初始轮廓非常敏感的问题。2、基于区域的活动轮廓模型,虽然利用了全局信息,但对于初始轮廓的敏感度存在一定程度下降的问题。故为了避免针对背景太复杂或者灰度不均匀的人脸图像,人脸分割算法的执行效果不理想的情况,有必要对现有技术的人脸分割技术予以改进。
发明内容
本发明就是针对上述问题,提供一种能够减少过分割和欠分割现象,匹配速度快,准确度高,可实时高效分割的基于深度学习和水平集的人脸分割方法。
本发明所采用的技术方案是:该基于深度学习和水平集的人脸分割方法包括如下步骤:
步骤一、使用深度学习模型,来学习样本形状,为构造水平集的先验形状奠定基础,并且使图像分割模型能够适用于任意先验形状;深度学习模型采用的是深度玻尔兹曼机,由多层受限制玻尔兹曼机叠加而成,在深度学习模型中各单元层之间均为无向连接,把以前深度学习模型中复杂的上下层的反馈系数训练简单化,从而使得深度玻尔兹曼机深度学习模型有了强大的数据泛化能力,使得其性能优于其它深度学习模型;在深度玻尔兹曼机的基础上,通过深度玻尔兹曼机学习目标形状样本,从而生成形状模板,模型如下:
其中v是可见单元,h是隐单元,W是权值矩阵,a和b是参数;
步骤二、构造去均值平均绝对差度量进行形状匹配,去均值平均绝对差度量算法能够使每一个图像的像素值都被充分利用,算法的优点在于通过在运算中减掉均值从而减轻了自相关运算时因为数值接近而造成的匹配失败;比较两幅图像对应点的像素值的去均值平均绝对差,若这个去均值绝对差的值小于0.10,就认为这两点相似,形状库中与待分割图像相似点最多的形状就是待分割目标的匹配形状;该匹配算法实现较为方便,精度较为准确,运算复杂度适中;对于部分遮挡的图像也可以得到理想的分割效果;并且还利用匹配到的形状模板得到活动轮廓的初始轮廓线,以便于轮廓曲线更加贴近目标边界,并使其向感兴趣的区域收敛,提高分割方法的分割效率和分割准确率;
所述采用的去均值平均绝对差度量来进行形状匹配,模型如下:
步骤三、根据深度玻尔兹曼机学习得到的先验形状,建立新的形状能量项;在深度玻尔兹曼机深度学习模型中,三层的学习结构能够有效地表达形状样本的形状结构;在三层学习结构的最底层能够检测到样本形状的局部特征,并将这些局部特征向上一层传递,使得上一层能够检测到更加复杂的样本形状特征,即样本形状的全局形状特征;再通过条件概率推理可以产生出一个先验形状;由于深度玻尔兹曼机深度学习模型生成的先验形状是由概率表示的,因此,形状的表示就由原来的二维矩阵v的表示方式替换为由概率定义的形状P的表示方式;其中,P:Ω→[0,1];这样,先验形状的形状能量项就可以表示为:
EDBM-Shape(pi)=EDBM(pi,h1,h2;θ)
步骤四、使用局部高斯分布来描述图像的全局信息,构建新的图像能量项;使用具有不同均值和方差的高斯分布来描述局部图像能量强度;能量最小化的过程就是通过一个交错的水平集演化,并估计在一个迭代过程中局部能量均值和方差,由局部能量的均值和方差构成空间变化函数来处理强度的不均匀性和空间变化的强度噪声,还能够分割具有相似的强度而有不同的方差的区域,模型如下:
其中,
是局部拟合能量泛函,
是平滑项,∫
ΩH(φ(x,y))dxdy是正则项,惩罚水平集函数,避免水平集函数重新初始化,μ、ν是参数;
步骤五、将新的形状能量项和新的图像能量项整合为一个能量项,并以此能量项来驱动轮廓曲线的演化;将形状能量项和图像能量项线性整合为一个能量项,并以此能量项来驱动轮廓曲线的演化,模型如下:
其中,λ为各项能量项在整合能量项中的权重,且λ>0。
所述步骤三,为了形状能量项能够很好地与水平集函数的能量项完美融合,有效地驱动水平集活动轮廓曲线的演化,将先验形状的形状能量项公式改进为:
Eshape(pi)=E(EDBM-Shape(pi),φ(pi),δ)
其中,φ(pi)是pi的符号距离函数,δ是形状能量项的参数。
所述步骤四,为了能够有效地运用图像的局部强度信息,需要在图像每一个像素点的邻域内分区描述图像的局部能量特性;对于图像域Ω内的每一个像素点x邻域,满足:
其中,ο
x表示点x的邻域,ρ表示该邻域的半径。
本发明的有益效果:本发明基于人脸形状的多样性和复杂性、人脸图像轮廓边界模糊以及背景复杂等特点,提出了一种基于深度学习和水平集的人脸分割方法,即在图像分割模型中引入深度学习的方法,使用玻尔兹曼机来学习人脸样本的形状信息,然后将形状信息引入到采用变分水平集和高斯分布拟合表达的能量模型中,实现人脸的快速、准确分割;所以其具有如下特点:1、分割人脸图像时鲁棒性强;无论是遮挡、光照不同、背景相似、光线太暗都不会影响分割结果,极大地减少了过分割和欠分割现象的发生。2、采用局部高斯分布拟合模型,不仅利用图像的局部均值,而且利用了图像的局部方差来拟合图像能量项,能更好地表示图像的局部变化,方便图像的分割。3、构建形状模型采用的深度学习的模型,在提高效率的同时,也能更好的表达人脸不同的形状特征,满足全局形变和局部形变。4、使用去均值平均绝对差度量来匹配形状,加快了匹配速度,也提高了匹配准确度。5、在分割人脸图像时迭代次数少,速度快,有利于人脸的实时分割。
附图说明
图1是本发明的算法总体流程图。
具体实施方式
根据图1的算法总体流程图,详细说明本发明的具体步骤。该基于深度学习和水平集的人脸分割方法包括:样本学习、人脸检测、样本匹配、求解形状的符号距离函数、初始化人脸分割的轮廓曲线、移动轮廓曲线到人脸中心位置、求解水平集函数、得到分割结果。
步骤一、首先使用深度学习模型,来学习样本形状,在样本库中(本发明选的是MSRC人脸图像数据集)选取具有代表性的人脸图像(例如:选30幅),并对其进行二值化,将处理后的二值图像作为样本形状,然后,将样本形状经过对齐、缩放、旋转等一系列配准处理,在得到配准后的训练样本形状后,将这些形状样本作为深度玻尔兹曼机深度学习模型的初始输入样本,通过深度玻尔兹曼机的三层学习,将样本划分为四个模块同步学习,在三层学习结构的最底层检测样本形状的局部特征,这些局部特征向上一层传递,使得上一层能够检测到更加复杂的样本形状特征(即样本形状的全局形状特征),生成先验形状集合(选30幅训练形状,可以生成600幅的形状集合),为构造水平集的先验形状奠定基础,并且使图像分割模型能够适用于任意先验形状;通过深度玻尔兹曼机学习目标形状样本,从而生成形状模板,模型如下:
其中v是可见单元,h是隐单元,W是权值矩阵,a和b是参数;
步骤二、输入待分割图像,对待分割图像进行归一化处理,包括:坐标中心归一化,X-shearing归一化,缩放归一化,旋转归一化。
通过上述四步骤就可以得到归一化后的图像,公式如下:
其中,x和y是像素点的初始位置,x'和y'是像素点变化后的位置,区域f(x,y)的矩是:
中心矩为:
图像的协方差矩阵M为
λ
1,λ
2是M的特征值,[e
1x,e
1y]
T,[e
2x,e
2y]
T是对应的特征向量。
对归一化处理后的图像进行人脸检测,采用基于肤色识别的方法对人脸进行检测,将肤色范围设定为100≤B≤120,140≤R≤160,将此范围内的像素点设置成白色,其余部分(背景部分)设置成黑色,然后再进行中值滤波、形态学处理,以达到平滑效果,并将像素点少于1000的部分舍弃;
将处理后的待分割图像使用去均值平均绝对差度量算法与经过深度玻尔兹曼机学习得到的样本形状库进行形状匹配,该形状匹配算法能够在像素级对检测到的人脸与先验形状进行相似性度量,找到相似性程度最高的先验形状作为本次分割的先验形状。比较两幅图像对应点的像素值的去均值平均绝对差,若这个去均值绝对差的值小于0.10,就认为这两点相似,形状库中与待分割图像相似点最多的形状就是待分割目标的匹配形状;并且还利用匹配到的形状模板得到活动轮廓的初始轮廓线,以便于轮廓曲线更加贴近目标边界,并使其向感兴趣的区域收敛,提高分割方法的分割效率和分割准确率;
所述采用的去均值平均绝对差度量来进行形状匹配,模型如下:
步骤三、将匹配得到的样本形状的深度学习结果作为待分割图像的先验形状,建立新的形状能量项;在深度玻尔兹曼机深度学习模型中,三层的学习结构能够有效地表达形状样本的形状结构;在三层学习结构的最底层能够检测到样本形状的局部特征,并将这些局部特征向上一层传递,使得上一层能够检测到更加复杂的样本形状特征,即样本形状的全局形状特征;再通过条件概率推理可以产生出一个先验形状;由于深度玻尔兹曼机深度学习模型生成的先验形状是由概率表示的,因此,形状的表示就由原来的二维矩阵v的表示方式替换为由概率定义的形状P的表示方式;其中,P:Ω→[0,1];这样,先验形状的形状能量项就可以表示为:
EDBM-Shape(pi)=EDBM(pi,h1,h2;θ)
为了形状能量项能够很好地与水平集函数的能量项完美融合,有效地驱动水平集活动轮廓曲线的演化,将先验形状的形状能量项公式改进为:
Eshape(pi)=E(EDBM-Shape(pi),φ(pi),δ)
其中,φ(pi)是pi的符号距离函数,δ是形状能量项的参数。
先验形状的符号距离函数(sign distance function,简称SDF),又可以称为定向函数,即在空间中的一个有限区域上确定一个点到区域边界的距离,并同时对距离的符号进行定义:点在区域边界内部为正,外部为负,位于边界上时为0;将先验形状的符号距离函数进行膨胀、腐蚀以及平移等操作,使其更加贴近人脸轮廓,将处理后的轮廓作为人脸分割的初始轮廓线,这样就能够减少分割时间并提高分割的精度;将初始轮廓曲线使用椭圆拟合的方法将其定位到人脸中心位置,将初始轮廓和检测到的人脸轮廓分别利用最小二乘法做椭圆拟合,其中椭圆可以表示为:
Ax2+Bxy+Cy2+Dx+Ey+F=0
椭圆中心为(x
c,y
c),且
为了避免零解,并将解的任何整数倍都视为对同一椭圆的表述,约束条件设为A+C=1,对轮廓线上的点做最小二乘处理,就可以得到方程中的各个系数,最小二乘处理的过程就是求目标函数
的最小值来确定椭圆的各个系数,其中,
求初始轮廓的中心(x
c1,y
c1)和检测到的人脸轮廓的中心(x
c0,y
c0)的距离,即d(x,y)=(x
c0-x
c1,y
c0-y
c1),则移动后轮廓上的点为:
(x',y')=(x1+xc0-xc1,y1+yc0-yc1)
步骤四、使用局部高斯分布来描述待分割图像的信息,构建新的图像能量项,使用二重积分来拟合图像能量,第一重积分使用一个核函数来描述图像每一个像素点周围邻域内呈高斯分布的图像局部能量,再将这一局部能量以二重积分的形式整合到水平集变分方程中,
局部高斯分布能量拟合模型与其他模型的不同之处在于:
1、该模型的拟合能量是一个二重积分,第一重积分是使用一个核函数来描述图像的一个像素点周围邻域内图像的局部能量的的高斯分布特性的,然后这个局部能量以二重积分的形式整合到本文的水平集变分方程中。
2、该模型中两个提出的变量的能量泛函:图像的局部强度和方差,是从变分原理准确推导出来的,而不是根据经验定义的。
这就使得本发明的图像能量项能够更好地描述图像的能量。
为了能够有效地运用图像的局部强度信息,本发明需要在图像每一个像素点的邻域内分区描述图像的局部能量特性。对于图像域Ω内的每一个像素点x邻域,满足:
其中ο
x表示点x的邻域,ρ表示该邻域的半径。用
来表示不连接的图像区域的集合,
而N表示的是区域的序数。
就是邻域ο
x的划分。本发明使用最大后验概率(Maxmium a posterioriprobability,MAP)来分割这片邻域ο
x。Ω
i∩ο
x的后验概率为P(y∈Ω
i∩ο
x|g(y)),g(y)是邻域ο
x的灰度值。
根据贝叶斯定律(Bayes rule)可得出:
其中,P(g(y)|y∈Ω
i∩ο
x)是区域Ω
i∩ο
x的概率密度,比如这个区域的灰度值分布;P(y∈Ω
i∩ο
x)是区域Ω
i∩ο
x在所有可能的区域ο
x的先验概率;P(g(y))是灰度值g(y)的一个先验概率,与区域的选择无关,因此可以被忽略。考虑到所有分区的先验有可能是相同的,比如
P(y∈Ω
i∩ο
x)可以被忽略。假设像素点在每个区域内都是独立的,最大后验概率只有P
i,x(g(y))的像素点在区域ο
x内时才能获得:
概率密度Pi,x(g(y))的描述方法有很多种,有固定标准差的高斯密度、全高斯密度、非参数概率密度估计等。在本模型中,将图像区域内的灰度归纳为不同均值和方差的高斯分布,这样就能够使得分割时效果更好,因此本发明的概率密度Pi,x(g(y))为:
其中,ui(x)、σi(x)分别是图像局部密度的均值和标准差。
为了更好地表达局部二值拟合能量的能量泛函,引入了权重函数ω(x-y),该权重函数是一个非负函数并且满足在|x-y|>ρ、
时ω(x-y)=0。当像素点y越接近邻域ο
x中心x时权重函数的值越大,权重函数ω(d)是一个具有局部特性的简化高斯核函数,在图像的像素点y与近邻域ο
x的中心x的距离|d|下降的时候不断地接近0,即:
其中a实常数,当∫ω(d)dy=1,也就是说图像的像素点y在近邻域οx的内部时,局部二值拟合能量的能量泛函可以重新写为:
由于权重函数的局部特性,即在
时ω(x-y)=0,需要在图像域Ω内的所有中心像素点x范围内最小化能量泛函
因此,可以将其重新定义为一个二重积分能量泛函:
图像域可以被分为两个区域:前景和背景:Ω1、Ω2,Ω1、Ω2能被描述为零水平集φ的内部区域和外部区域:Ω1={φ<0}、Ω2={φ>0}。该能量泛函使用Heaviside函数,用水平集的方法可以表示为:
其中,M1(φ(y))=H(φ(y)),M2(φ(y))=1-H(φ(y)),
为了提高计算效率,避免初始化,本发明在该模型的能量泛函中加入正则项来惩罚水平集函数,使其一直符合符号距离函数,加入长度项来保持平滑演化。因此,本发明的图像能量项设置为:
步骤五、将新的形状能量项和新的图像能量项以相同的比重整合为一个能量项,即E=(1-λ)Eimage+λEshape,其中0<λ<1,在本模型中取值为λ=0.5。将整合的能量项作为驱使水平集演化的一个能量项,再在该水平集方程中在加入正则项来惩罚水平集函数使其一直符合符号距离函数,加入长度项来保持水平集方程保持平滑演化并以此能量项来驱动轮廓曲线的演化;分割模型进入迭代,将迭代步长设置为0.1,进行水平集函数的迭代演化,直至分割完成。将形状能量项和图像能量项线性整合为一个能量项的模型如下:
其中,λ为各项能量项在整合能量项中的权重,且λ>0。
本发明方法,能够根据现实生活中人脸图像的灰度不均匀、背景复杂、光照不均匀、部分遮挡等特性,采用了深度玻尔兹曼机学习先验形状,进而构建形状能量项;并使用满足高斯分布的图像局部均值和方差来表示图像能量,进而构建图像能量项;将形状能量项和图像能量项线性组合为驱动水平集演化的能量项,实现对具有不同特性人脸图像的分割。
本发明的实验结果使用错误率作为分割结果的评价标准,错误率(False Rate,FR)是在1997年由Pichumani R.提出的评价标准。对于图像分割算法来说错误率是指图像分割不准确的程度,错误率的值越小,说明图像分割算法精度越大,当错误率的值等于0时,精度达到最优。评价标准的具体计算公式表示如下:
其中,VTP=VT∩VS、VFN=VT-VS、VFP=VS-VT,VT、VS分别表示图像分割算法分割得到的目标轮廓内部区域和待分割目标内部的真实区域。
本发明的实验结果中错误率保持在0.1以内,分割效果比较理想,解决了以往图像分割算法在分割人脸时的过分割和欠分割现象,提高了人脸分割的准确度。
本发明在分割人脸图像时所用的时间平均为6s,大大缩短了人脸分割的时间,提升了人脸分割的时间效率。
本发明在不同的人脸测试图像分割的过程中,分割结果都很稳定,错误率和分割时间都在一定范围内浮动,使得该发明能够维持很好的鲁棒性。
经过大量实验表明,本发明对于分割人脸图像具有效率高、准确度高和鲁棒性强的特点。