面部单张照片的非完整发丝建模方法

2019-03-14 12:42王仁泉郑晓博桂义勇李舒琪吴礼尉
电脑知识与技术 2019年1期
关键词:肖像发型滤波

王仁泉 郑晓博 桂义勇 李舒琪 吴礼尉

摘要:人们的头发是人的外表特征的一个重要因素,但是同时头发的建模和重建是在计算机视觉领域是一个难点,在本篇论文中,我们主要参考相关计算机视觉的工作,主要关注相关的理论研究在实际用户生活的应用,并且关注在移动端和PC端上的性能表现。由于在实际使用场景的限制,我们采用了一种发丝的追踪算法,并且通过优化方法得到深度,在仅仅使用一张人像照片的条件下,实现对人物发丝进行3D建模,并且达到了可被接受的效果。对发丝进行追踪和建模,并进行优化,这为我们对人像的发型作出个性化的修饰包括改变颜色,改变发型等等提供了可能。

关键词:发丝追踪;人像处理;发型替换;3D重建

中图分类号:TP393      文献标识码:A      文章编号:1009-3044(2019)01-0222-03

人的外表特征作为人的一个基本特征自然而然是各个研究人员关注研究的热点,同时人们对让自己变得更美的追求也驱使着视觉处理与计算机图形学领域的公司和研究机构的研究人员解决这些问题,近年来也不乏一些显著的研究成果,例如,通过积分图得到特征,用于人脸识别(Viola, Way and Jones, 2004),又或者实现图片乃至视频的人脸替换(Korshunova et al., 2017)。但是人们的头发的研究和应用仍然处于相对落后的阶段。通过发型作为每个人拥有并且引人注目的一种外表特征自然而然受到许多人的关注。但是对发型进行修饰是需要先对每一缕发丝进行建模。传统方法采用的是通过拍摄多张照片,将多张照片的信息来构建发丝的模型(Silver et al., 2017)。由于在实际的应用地中,用户输入信息仅仅只有一张照片,我们无法通过传统的建模方法实现三维重建,因此我们需要通过一种不同于传统三维建模的方法来实现可靠和健壮的发丝三维建模。

不同于人的身体和骨骼可以通过对平面就能估计出人体的大致模型,人类的发丝是由数以千计的线状构成的,这些发丝的各自的姿态各有不同。并且发丝与发丝之间还会产生交错的连接。并且,除了外表面的发丝之外,还有存在于外表面之下的发丝,这些发丝很难通过对图形进行扫描计算进行建模和重建,因此我们必须对这些存在于发丝之下的发丝进行建模和重建。

本篇论文中,我们从实际运用的视角出发,即在只有用户的面颊照片的情况下,运用一些常规建模,并且辅以用户熟悉的一些基本操作来帮助我们提高对发型的建模和重建的效果。

1单照片发丝建模

由于并没有足够完全多的信息用于模型的构建,而且我们的模型只用于对照片的后续的修饰和改变,因此我们并不需要完美的发型的模型来帮助我们实现对发型的修饰和改造。我们需要一个能够能够一定程度上满足我们的要求的建模方法以达到性能和质量的平衡。

1.1肖像的获得

在进行建模之前,我们需要对输入的照片作出一定的假设,以达到简化我们工作。首先我们假设这个照片是被建模者的面部前方照片,也就是说这个照片需要拥有从面对视角能看到的完整面部和所有可以被见到的发丝,同时还要覆盖用户的肩部和拍摄背景。

为了从背景中提取用户的肖像,我们需要用户在肖像中进行操作来选择出肖像所在的区域,我们可以在用户选择的基础上运用神经网络使用边缘检测(Xie and Tu, 2017)来从背景中获取到人体的画像,或者我们也可以使用传统的Lazysnapping(Li et al., 2004)来选定用户的画像。

由于人类的头发特别是女性的发型的边界并不是非常明晰的,尽管在上一步的边缘检测中,我们已经获得了足够好的用户肖像,但是我们为了进一步对肖像质量进行优化,需要对在原有的基础上对肖像进行进一步的优化处理,通过对原有图像圈定范围的缩放(Levin, Lischinski and Weiss, 2008)得到最后的肖像部分。

1.2发丝2D模型的构造

目前很多模型都是通过寻找发根,在一块区域的基础上按照发丝的走向得到发丝的2D模型的(例如(Paris et al., 2008))经过这种建模方法的效果很好,但是在发丝表面之下发丝是没有办法去有效的建模的,这是因为他根据一块区域去确定的一根发丝的走向,但是实际情况是存在很多例外情况,因此这样生成的模型存在很大的错误情况。同时根据区域来确定单个发丝不能很好的去估计发丝之下的情况,我们不能够很好的获得发丝表面之下的发丝情况,因此这种模型存在很大的偏差,同时这个问题也是所以三维发丝模型重建中遇到的不可避免的最主要的问题。

因此我们采用了Gabor滤波器(Jain and Farrokhnia, 1990)对每一个像素的每一个方向进行一次滤波,以响应最大的方向来作为该像素发丝的方向,我们采用方向核矩阵[{Kθ}]图形[I]进行过滤,其中[K]是表示方向为[θ]的滤波核,我们让[Fx,y,θ=(Kθ*I)(x,y)]成为在[θ]方向下的响应,其中[*]表示的是卷积操作,[x]和[y]分别表示像素所在的位置,我们通过对[(x,y)]周围的像素经过进行多次滤波之后,取响应最大的值的方向作为像素[(x,y)]的方向,即[θx,y=argmaxxθ(Fx,y,θ)]。

我们用于估计发丝方向的的滤波核则为:

[Kθu,v=exp-12u2σ2u+v2σ2vcos2πuλ]

其中[u=u cosθ+v sinθ]以及[v=-u sinθ+v cosθ],[u]与[v]与滤波核的大小成正比例,[λ]则控制滤波提取特征的粗细粒度。因为人类的眼睛難以察觉到[5°]的细小角度变化,并且为了提高计算的效率,我们将[180°]分成32份,然后对这32份去响应最大值的[θ]作为这个像素的发丝的方向的估计。

除了计算得到方向[θ]之外,我们还需要计算每个像素的置信度,通过置信度来估计每个像素数属于某一缕发丝的可能性:

[wx,y=θdθ,θ?Fθ-Fθ20.5]

其中[d(θ1,θ2)]表示两个方向的小于等于[180°]的角度(Paris, Brice?o and Sillion, 2004)。通过计算置信度,我们能够消除不可靠的一些方向估计,获得更高质量的2D模型构建。

1.3 发丝的跟踪连接

我们在获得了发丝的方向之后,需要把每一个属于一缕发丝的像素连接在一起,也就是需要将发丝的像素点连接成一串发丝,为了达到这个目的,我们首先对发丝的方向图形进行非最大抑值的操作(Jakob, Moon and Marschner, 2009)来计算,这样我们能够解决当两根发丝交叉的时候,能够解决得到正确的发丝方向。只有当同时满足:

[wp>whighwp-maxwpL,wpRwp>?]

的时候,像素[p]才会被认为是一个种子像素。其中[w(pL)]和[w(pR)]是通过[p]点并且与[θ(p)]角度垂直的线上的两个采样点,并且采样点位于[p]点的两侧且到[p]点的距离相等。

当我们得到了一个种子像素[p]之后,我们在种子像素的两侧根据[θ(p)]去延展这个像素(Paris, Brice?o and Sillion, 2004)。当如果有两个可能的方向的时候,从所有的可能的方向[θ(p)]中选取弯折程度最小的方向[v(p)],并且沿着这个方向移动一定的位置作为下一个步来连接发丝。(Chai et al., 2012)也就是:

[pi+1=pi+δv(pi)]

其中[p]指的是中[pi]指的是第[i]次跟踪连接过程。

与此同时,使用了确定度和健康点来去掉噪点:从一缕发丝中的一个健康点中出发,从预测角度的两个方向中的任意一个开始,直到健康的降低为0,当追踪连接状态(即确定度)为确定的时候,追踪连接的方向就用当前的方向图确定,然后将健康点的值恢复成为默认初始值。而当追踪连接状态为不确定时,追踪的方向则由上一次追踪连接的方向确定,通过这样的方式来追踪弯曲的头发。每完成一步,健康点都会减去1。(Chai et al., 2012)

每经过一步[i],我们都会根据以下的规则更新跟踪状态:

1) 如果[i=0],则设置跟踪状态到“不确定”;

2) 如果[wpi<wlow],则改变状态到“不确定”;

3) 如果[wpi≥wlow]并且[arccosvpi?vpi-1>θmax],则改变状态到“不确定”;

4) 如果[wpi≥wlow]并且[arccosvpi?vpi-1≤θmax],则改变状态到“确定”;

5)其他情况则保持跟踪状态不变。

由于前述的连接和2D的建模中会有误差的传导,因此我们需要在连接完之后对2D模型进行错误的修正。因此我们使用了中央纠正来传导的累积错误。对于每一个2D模型的顶点[p],我们对[p]和[p]方向成直角且通过[p]的线上的两个点[pL]和[PR]采样得到每个点的置信度。然后我们使用一个三角函数[?t]并且有[?0=wp],[?-1=wpL]以及[?1=wpR],然后我们应用函数[argmax?(t)]得到[p]。(Chai et al., 2012)除此之外,我们还可以采样颜色通道和alpha通道来获取顶点位置。

1.4发丝的三维重建

在获得了可接受质量的2D的发丝模型后,我们就可以用于生成3D模型,我们主要通过以下的步骤来生成3D模型:首先,我们需要通过优化方法来估计深度信息,然后我们使用估计出来的深度模型得到头部边界,然后通过头部模型来生成更多的发丝来弥补表面发丝之下的发丝。

为了估计照片的深度信息,我们做了如下的假定,我们认定轮廓周围的深度为0,同时头部中央的面颊的深度也为0。额头部分发丝的深度小于面部,其他头发的深度应该位于这两者之间,并且应该注意到之前估计到的发丝的遮挡关系。

在深度的估计过程中,我们有如下的限制(Chai et al., 2012):

1) 深度限制使深度位于轮廓和面颊中央之间。

2) 发丝限制保证了发丝的建模的柔顺自然,不发生不自然的曲折。

3)近邻限制保证了深度的连贯性,也就是说周围的具有相同方向的发丝具有连贯的深度。

让[pi]作为一缕发丝的第[i]个最高点。[zp是p点]的深度。因此根据以上的限制,我们有如下的定义式(Chai et al., 2012):

[EZpi=zpi-zpi2]

[ESpi=zpi-zpi-1+zpi+122]

[ENpi=zpi-q∈NpizqNpi2]

其中[zp]对[p]的深度限制,而[Np]则表示近临的与[p]不属于同一缕发丝,但却属于同一个方向的邻居最高点[p]。

最后们通过梯度下降或者高斯下降法使下列方程使E最小化,即:

[E=wZEZ+wSES+wNEN]

此时[argzminE(zpi)]也就是最后估计的深度。通过三维重建,最后得到我们的3D模型。

2局限性和展望

经过能够得到能够接受质量的3D模型,但是获得3D模型的计算代价十分高昂,难以在用户移动端设备上流畅的运行。并且3D模型的建立依赖于用户的输入,需要通过用户的输入来识别用户的肖像,并将肖像与背景分离。同时由于信息的局限性,三维模型不能很好的反映看不见的(例如背后和表层发丝之下)的三维模型,并且三维模型的构建仍然有提升的空间。

随着最近深度网络的崛起和异构处理器算力的提高,我們能够在用户的移动设备上使用深度学习来帮助构建3D模型。例如将肖像从人物的背景中提取出来,同时我们可以使用深度神经网络来帮助构建我们的从图像中构建图像的深度模型(Id, 2015)。并且在发丝的方向的判断上面,我们可以使用多层卷集神经网络来减少终端的计算量并且提高识别的精确度。

參考文献:

[1] Chai, M. et al.Single-view hair modeling for portrait manipulation, ACM Transactions on Graphics,2012,31(4):1-8.

[2] Id, O. S.AutoHair: Fully Automatic Hair Modeling from A Single Image, 2015,116:1-1.

[3] Jain, A. K. and Farrokhnia, F. Unsupervised texture segmentation using Gabor filters, Pattern recognition,1900,24(12):14-19.

[4] Jakob, W., Moon, J. T. and Marschner, S.Capturing hair assemblies fiber by fiber,ACM Transactions on Graphics,2009,28(5):1.

[5] Korshunova,I.et al. Fast Face-Swap Using Convolutional Neural Networks,in Proceedings of the IEEE International Conference on Computer Vision,2017:3697-3705.

[6] Levin, A., Lischinski, D. and Weiss, Y.A closed-form solution to natural image matting, IEEE Transactions on Pattern Analysis and Machine Intelligence,2008,30(2):228-242.

[7] Li, Y. et al. Lazy snapping, ACM SIGGRAPH 2004 Papers on-SIGGRAPH 2004(04):303.

[8] Paris, S. et al. Hair photobooth: geometric and photometric acquisition of real hairstyles, in ACM Transactions on Graphics (TOG),2008:30.

[9] Paris, S., Brice?o, H. M. and Sillion, F. X. Capture of hair geometry from multiple images, ACM SIGGRAPH 2004 Papers on   - SIGGRAPH 2004,04,1(212):712.

[10] Silver, D. et al. Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm,2017:1-19.

[11]  Viola, P., Way, O. M. and Jones, M. J.2004-Robust_Real-Time_Face_Detection.pdf,2004,57(2):137-154.

[12] Xie, S. and Tu, Z.Holistically-Nested Edge Detection,International Journal of Computer Vision, 2017,125(1-3):3-18.

猜你喜欢
肖像发型滤波
大自然的肖像
大自然的肖像
地毯肖像
发型
好别致的发型
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波
基于随机加权估计的Sage自适应滤波及其在导航中的应用
基于Sage—Husa滤波的GNSS/INS组合导航自适应滤波