用深度学习快速人脸建模
简介
脸部建模一直是计算机图像和视觉领域的热门话题,包括卡通人物建模、人脸艺术设计、人脸实时重构等等,尤其是交互式人脸建模。我们构建了一个快速的、交互的、基于深度学习的人脸建模框架。通过简单勾勒人脸图画(caricature),我们的模型可以迅速生成对应的三维人脸模型,并且可以同时拟合面部轮廓和细节表情。同时我们也提供了多种方式进行快速的模型修改。实验证明我们的结果具有高精度和快速度。
框架
非常推荐大家通过视频了解我们的框架:
Youtube: DeepSketch2Face(SIGGRAPH2017) Youtube
腾讯视频: DeepSketch2Face(SIGGRAPH2017) 腾讯视频
框架的流程如图所示:
初始绘制模式(Initial Sketching Mode)
我们采用了卷积神经网络(CNN)来学习二维绘画的人脸特征。如图所示,输入是 256 乘 256 大小的绘画图片,通过卷积层提取特征,结合每个像素点的双线性插值编码,利用不同的全连接层,最终输出一个 50 维的人脸向量和一个 16 维的表情向量。我们预设了 50 个人脸基底和 16 个表情基底,最终输出的模型则是向量和基底的点乘。我们可以做到近乎实时的渲染,即用户每勾勒一笔线条,迅速输出对应的拟合三维模型。(对于卷积层,我们采用了较老的 AlexNet。我们也试验了 Resnet 等更新的网络结构,在精度上没有特别显著的提升;同时考虑到实时绘制的速度要求,我们选择了这样一个折衷方案。)
以下是一些真实渲染结果:
连续绘制模式(Follow-up Sketching Mode)
利用同样的卷积神经网络以及区域变形技术(Laplacian deformation),我们给用户提供了简易修改的绘制方案。对于不精于从空白纸张绘制肖像的用户,或者不想生成复杂人脸形状的用户,可跳跃第一步直接进行连续绘制。在连续绘制模式下,由单向工程(二维 -> 三维)转变为双向工程 (二维 <-> 三维):用户可直接从当前生成或预设的三维模型得到一个二维的人脸轮廓,并基于这个人脸轮廓进行修改、删除、变形等操作;类似于第一步,这个二维轮廓可以生成相应的三维模型。
下图是一个典型的通过连续绘制模式生成的模型:
精细修改模式(Gesture-based Refinement)
我们提供了基于手势的精细修改模式。如图所示,用户可以通过相应的手势,选取图像的区域进行变形,如面颊凸起,眉毛修改、面部轮廓修改等等。用户的手势也是通过一个简单的卷积神经网络学习,输入是用户绘画的手势,输出是对应的操作。
其他
平均来讲,基于我们的框架,新手绘制一个人脸模型只需要 5~7 分钟,熟练后甚至在一两分钟内就画出一个逼真的人脸模型。我们支持多种模型格式输出,以便对接其他平台。用户在实时操作过程中可以无障碍地进行撤销和恢复操作。用户操作窗口本身也支持各种常见的渲染操作,如放大缩小旋转移动贴图等等。同时,我们也提供了一个用于人脸建模的数据库,包含极大量的人脸模型,及其不同的表情和夸张程度(levels of exaggeration)