基于标签传递的人像分割
2019-02-27赵明君毛明禾
赵明君 李 杰 毛明禾
(1.国网新疆电力有限公司信息通信公司,乌鲁木齐,830002;2.河海大学计算机与信息学院,南京,210098)
引 言
人像分割是人脸识别、3D人体重建、运动捕捉等领域重要的预置技术。利用人像分割技术从不同背景的图像中自动提取出人体目标,为后续处理算法提供基本的执行条件。由于其分割质量的好坏直接影响算法的输出结果,因此研究精确可靠的人像分割算法具有重要意义。
人像分割属于图像分割领域。现有的图像分割理论主要分为聚类分析、小波变换、模糊集理论和深度学习等几个大类,这几类算法各有其优缺点。其中,基于聚类分析的图像分割算法起步较早,在其发展的初期,仅提取像素的灰度值作为聚类特征展开分析,在早期的低像素级遥感图像中广泛应用,但随着如今图像色彩复杂度提高而逐步淘汰。1967年,Macquen[1]提出了k均值(k-means)聚类法,此方法能有效应用于图像分割中,且不需要提供前背景的原始样本。然而其不足在于初始聚类中心完全凭经验设置,而初始聚类的选择又极大影响图像分割的效果。近年来,多尺度图像分析逐渐成为图像分割领域的有力工具。以小波变换[2]为代表的多尺度分析法一定程度上解决了消噪过程中带来的边缘弱化问题。
上述分割模型均属于无监督分割模型,无须任何前置条件即能实现图像分割,但缺少初始像素语义信息,无法总结出合适的关于前背景像素集的特征映射,往往只能解决背景相对简单的待分割图像。而以近些年非常热门的深度学习[3-4]为代表的有监督分割算法,前期需要高质量的数据集进行大量训练,而高质量数据集因需要囊括具有不同背景、色散、光照、目标尺寸和角度的图片而较难获得。
标签传递方法是一种基于图的半监督学习方法,能够分割背景复杂的图像,并且不需要经过大量训练。基于以上原因,本文提出了一种改进的基于标签传递的人像分割算法。在经典的标签传递方法基础之上,引入了在医学图像分割中表现良好的模糊理论[5],能够更好地检测复杂背景中的人像;同时,引入SLIC超像素分割算法[6],提高边缘检测能力。经过实验证明,本文方法相对于经典的分割方法,有较好的可行性和更高的分割精度。
1 算法基本流程
本文提出的基于标签传递的人脸分割算法的基本流程如图1所示,包括色彩空间转化、肤色提取、形态学处理、人脸检测和标签传递模型处理几个步骤,最终得到分割之后的图像。
图1 分割算法的基本流程Fig.1 Flowchart of presented portrait segmentation algorithm
2 人脸检测预处理
2.1 色彩空间转化
对人脸区域的可行区域做预测,首先需要提取合适的色彩特征,并且该特征能够与肉眼对色彩的直观感受相吻合。而计算机的常用色彩RGB编码仅通过红、黄、蓝三原色的混合比例对颜色特征进行编码,并不能很好地反映肉眼接触颜色的直观感受,为了保证肤色提取的可靠性,需要将RGB色彩空间转化为YCbCr空间,该编码方式降低了光线亮度对于颜色特征码的影响,且只需通过一次线性变换即可完成色彩空间的切换,如式(1)所示。
2.2 肤色提取
通过颜色空间转化为YCbCr,肤色分布规律能够被更简单地表征,这是因为引入YCbCr颜色空间有助于联合亮度、蓝色通道分量和红色通道分量等图像特征对肤色区域建模,并以此为基础提出简单快速的阈值筛选法检测图片中疑似的人脸区域。大量实验表明,不同人种间肤色的差异主要反映在亮度特征的取值上,对颜色不同通道分量的影响较小。因此本文利用YCbCr特征空间对肤色区域筛选时,只需关注其中的Cb,Cr的取值。在海量图片中对人体肤色进行统计分析,总结出肤色区域具有良好的聚类特性,即满足77≤Cb≤127,133≤Cr≤173。故人脸检测预处理只需采用Cb,Cr归一化与阈值法即可将人脸与非人脸分离出来,得到二值灰度图。
2.3 形态学处理
由于图片中裸露的肤色并不一定是人脸,一些与人脸肤色较为接近的背景区域可能会被错误地识别,所以需要进一步处理归一化阈值筛选后的二值图像。为解决这个问题,需要利用形态学处理中的开运算与闭运算[7]来消除干扰项,可以较好地平滑检测出疑似人脸轮廓。不同的是,开运算可凸显出目标对象细小的轮廓和空洞点,闭运算通常用作填补对象的空洞,增加检测人脸的连通性。而本文只需检测出人脸的大致轮廓与位置,并不需要关注人脸中的细节。因此,本文只需选择闭运算处理二值灰度图即可得到人脸区域的候选项。此处采用的闭运算模板大小为5*5。
2.4 人脸尺寸比对
经形态学的开闭运算可获取若干候选人脸。然而,一些类肤色的背景混杂项会严重干扰灰度阈值模型的筛选,形成人脸区域的误检。为了避免输出错误的人脸,一个可行的方法是对所有检测得到的人脸进行尺寸比选,剔除那些与真实人脸形状差异较大的候选项。本文采用的尺寸比对人脸候选项的步骤如下:
(1)对人脸候选项按照一定的空间顺序统一编号;
(2)为每个候选项人脸刻画外接矩形,即矩形的四条边刚好与闭运算处理后的人脸轮廓相切;
(3)排查每一个候选项对应的外接矩形,将长宽比小于1或大于2的外接矩形提取出来,剔除其相应的人脸候选项;
(4)保留未被剔除的人脸候选项,以相应外接矩形框的形式在图中标记并编号。
经过尺寸比对后的输出的图像能够检测出脸部区域,为后续分割运算中样本点标注行为提供重要参考。
3 基于模糊标签传递思想的人体分割算法
基于标签传递理论的分割算法的核心就是由前期已知样本点的标签属性为传播源,通过若干次迭代式近邻传播,使得图中所有的像素点分配有标签属性γ={0,1}的计算过程。设定标签0代表背景属性,1代表前景属性。
将分辨率为N的原图看作像素集I={I1,I2,…,Il,Il+1,…,IN},其中l代表前序已采集到样本像素的总量,记子集L={I1,I2,…,Il}为采集到的样本集,U={Il,Il+1,…,IN}为属性待定的像素点。经典标签传递算法将图像分割问题看作是为每一个像素Ii分配一个标签γi的运算过程。
为监督每一次迭代的标签分配结果,定义关于像素Ii的标签状态量Si={s0,s1}。假设像素Ii属于前景像素,则Si0=0,Si1=1。反之像素Ii属于背景像素,则Si0=1,Si1=0,将所有N个像素级标签矩阵联立可得全局标签状态量S⊂RN×2。
3.1 初始化
在迭代未开始时,需要设置样本集L和未知集U的状态量。根据上文对标签的定义,设置确知前景点的初始状态:Si0=0,Si1=1。确知背景点的初始状态:Si0=1,Si1=0。而设置未知集U的初始状态量为Si0=Si1=0。
3.2 定义标签传递规则
在标签传递算法尚未开始前,仅有通过脸部配准采集的少许样本信息,未知标签的像素点占有绝大多数比例。因此,初始状态矩阵S的稀疏度非常高,需要通过多次迭代来消除矩阵的稀疏度,使得每一个像素都对应一个非零的标签量。标签传递需遵循的思想是:(1)任意未知像素的标签由其邻近点决定;(2)色彩相近的邻近像素对标签传递有更大的决定权重。基于这两条,首先给出任意两像素之间相似度的计算方法
式中:ca,cb表示像素a,b的RGB颜色特征;‖ca- cb‖表示像素a,b在RGB空间上的距离,即R,G,B三个通道的欧几里得距离
给出任意两像素之间的相似度定义后,组建全局图片的相似度矩阵W⊂RN×N为
给出全局相似度矩阵的定义后,根据式(5)完成单步迭代过程
式中Λ为对角矩阵。定义式(5)的核心思想是,经过一轮迭代后的标签状态矩阵S(n+1)的取值与迭代前的标签状态量S(n)、根据样本信息设定的初始状态量S(0)有关,其中权值β∈[0,1]表示迭代更新后的标签状态矩阵与初始状态量S(0)的相关性。β越大,该相关性就越小,即迭代更新后的状态量更接近于本次迭代前的状态量取值。
3.3 获取标签传递的最终结果
迭代次数足够大时,标签状态矩阵S的取值趋于稳定,达到收敛状态。此时,对此刻标签矩阵S内的所有元素展开分析,得到所有未知像素的属性标签为
式(6)提出了利用像素点之间的颜色相似度拟合全局标签分配结果的思想,除此之外,还需要考虑到像素空间相似性对于最终标签分配的影响因素。因此,对标签传递的计算过程做出修改,利用吉布斯能量函数将色彩和空间上的相似性合并,共同决定最终的标签传递结果
式(7)为吉布斯能量的构造式,记号EFgd(i),EBgd(i)分别表示像素i分别被标记为前景(γi=1)、背景(γi=0)所需的能量开销。ξ可根据对分割轮廓光滑度的需要自主设定,ξ越大,分割轮廓越平滑。变量Enb(i)体现了像素i的标签分配结果受其邻域影响,表达式为
根据式(8,9)的设定,变量Enb(i)的取值与中心点i的8邻域标签分布情况相关,‖cm- cn‖2反映像素m,n之间的梯度大小。从式(8)可以看出,已知邻接点与未知像素的空间距离越短,或两者间的色彩梯度差异越小,其对未知像素的标签分配拥有更大的决定权重。通过这样的思想保证了分割轮廓小尺度下的平滑性。
在完成吉布斯能量的构建后,利用图论中的最大流最小割定理[8]的最小化吉布斯能量函数,求得取最小能量值下的全局标签分布,即得到最终的图像分割结果。
4 基于过分割预处理优化标签传递算法
传统的标签传递分割能够较好地依据已知标签点实现前景目标的提取,然而其精度有待提高。由于目前彩色图像颜色的复杂性,不同颜色交织出现在前景和背景中,前、背景共有色彩的情况也越来越普遍。这种情况带来一个新的问题,真实的前景或背景区域中也存在高梯度轮廓,大量混杂于真实的前背景边界中,仅利用像素相似度获得的候选轮廓的置信程度不高,最终影响标签传递算法的分割质量。
回归标签传递算法中的相似度定义表明现有方法仅仅关注全局像素之间的相似度。颜色相近的区域在原有算法中被分拆为像素个体分别讨论,本文用颜色相近像素组成的区域块之间的相似度代替原有算法中的像素相似度。这样一方面降低了后续吉布斯能量建模的计算复杂度;另一方面可以自主设定过分割的程度,比较不同过分割程度下的轮廓相似性,结合像素颜色相似度定义,综合得出真实的前背景分界线。
4.1 SLIC过分割
在SLIC过分割算法开始之前,需要将像素特征表征为Pi=[li,ai,bi,xi,yi]T,其中li,ai,bi为像素Pi的色彩表征空间由RGB转化为CIELAB的分量值,xi,yi表示像素Pi相对于图像左上角的相对坐标。
在一次SLIC过分割前,需要预置过分割后超像素数量k,初始的过分割聚类中心选择遵循这样的规则[8]:(1)第一次采样点为最左上角点3×3邻域内梯度最小点;(2)下一个过分割中心点在本中心点位移 N/k的3×3邻域内寻找;(3)过分割中心点通过迭代的方式反复更新,遍历以本轮迭代确定的过分割点为中心的2 N/k×2 N/k矩形区域内所有像素点,分别比较访问像素点与聚类中心的颜色接近程度,若访问像素点的色差更小,此超像素的中心就替换为该访问像素点。
4.2 多层次相似度矩阵的构建
由于选取不同的k值会输出不同的超像素分割结果,超像素分割识别出的强边界也不同,本文提出选取多个k值得到不同强度的超像素分割结果,生成金字塔型的多层超像素集合,结合经典标签传递算法对应的像素相似度定义,构建多层相似度定义,具体算法如下
本节阐述了利用两种不同强度的过分割结果优化相似度矩阵的改进算法,引入两种不同强度的过分割可以有效地增加空间约束,同时加强算法在小尺度过分割后的纠错能力。以优化式(12)代替式(2,4)代入标签传递式(5)中,完成对传统标签传递算法的优化,最终仍使用最大流最小割算法最小化吉布斯能量函数,实现基于多层次过分割预处理的优化标签算法。
5 仿真实验与分析
本文采用LFW数据集作为图像分割实验的测试集,其中LFW数据集包含13 233张图像。该数据集包含了光线照射角、光照强度、脸部表情与姿势等诸多因素各异情形下拍摄的图像,选取该数据集的目的是降低图像中奇异特征对分割实验的偶然影响,使得实验结果更具客观性与独立性。
实验基于Windows 7,64位操作系统,硬件配置为英特尔酷睿i7 8700型处理器,主频为3.2 GHz,内存为32 GB,NVIDIA Geforce GTX 960型显卡。实验参数设置为两次过分割得到的超像素个数为k1=40,k2=80,参数β=0.81,α1=0.15,α2=0.25。从LFW数据集中选取600幅包含人体的图像作为测试集,通过抠取其中的人体对象测试算法的分割性能,结果如图2所示。
为了定量地分析图像分割的精确度,本文提出了以式(13)作为衡量分割精确度的定量评价指标。
式中:T表示当前测试图像中构成真实人体区域的像素集,E表示运用分割算法抠取出的人体区域组成像素集,S(A)代表组成集合A的总像素个数。从式(13)可以看出,Pr越大,代表图像的分割精度越高。
本文选取了基于混合高斯模型的Grabcut算法、经典标签传递算法、前期分层神经网络算法[9]和本文提出的优化算法进行对比实验,对选取的这600张试验图片进行人体分割性能测试,并通过平均精确度Pˉr对3种分割算法展开性能分析,如表1所示。
由表1可以看出,本文提出的优化算法的分割精确度较未优化时提升了3.7%,较Grabcut算法提升了5.9%,表明利用不同过分割结果构建的多层次相似度模型能够更好地反映前背景像素的分布情况,提升分割的精确度;比基于深度学习的前期分层神经网络算法[9]降低了2.0%,但是本文方法优势在于不需要大量高质量的数据集进行训练。
图2 传统标签传递算法与本文算法的分割效果对比Fig.2 Segmentation effect comparison of traditional algorithm and the presented algorithm
表1 不同分割算法的精确度性能对比Tab.1 Average accuracy comparison of different algorithms
6 结束语
本文提出了一种改进的基于标签传递的人像分割算法。算法引入了模糊集和SLIC超像素技术,设定两个不等的过分割数,先后得到两种不同的超像素分布结果,结合现有的像素级相似矩阵对标签传递算法进行改进。最终的仿真实验验证了本文优化算法具有较好的可行性和更高的分割精度。但是,目前本文算法的应用仅限于对单个人体目标进行自动分割,接下来的工作重点将侧重于完善基于人脸检测结果的样本像素采样方式,以满足对多人体目标实现自动抠取的算法需求。