下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

深度学习快速人脸建模作用讲解

作者:课课家教育     来源: http://www.kokojia.com点击数:1250发布时间: 2017-11-05 13:00:56

标签: 系统计算机深度学习

  欢迎各位阅读本篇,深度学习的概念源于 人工神经网络的研究含多隐层的多层感知器就是一种深度学习结构。本篇文章讲述了深度学习快速人脸建模作用讲解,课课家教育平台提醒各位:本篇文章纯干货~因此大家一定要认真阅读本篇文章哦!

深度学习快速人脸建模作用讲解_系统_计算机_深度学习_课课家教育

  简介

  脸部建模一直是计算机图像和视觉领域的热门话题,包括卡通人物建模、人脸艺术设计、人脸实时重构等等,尤其是交互式人脸建模。我们构建了一个快速的、交互的、基于深度学习的人脸建模框架。通过简单勾勒人脸图画(caricature),我们的模型可以迅速生成对应的三维人脸模型,并且可以同时拟合面部轮廓和细节表情。同时我们也提供了多种方式进行快速的模型修改。实验证明我们的结果具有高精度和快速度。

  框架的流程如图所示:

框架的流程如图所示:    

  初始绘制模式(Initial Sketching Mode)

  我们采用了卷积神经网络(CNN)来学习二维绘画的人脸特征。如图所示,输入是 256 乘 256 大小的绘画图片,通过卷积层提取特征,结合每个像素点的双线性插值编码,利用不同的全连接层,最终输出一个 50 维的人脸向量和一个 16 维的表情向量。我们预设了 50 个人脸基底和 16 个表情基底,最终输出的模型则是向量和基底的点乘。我们可以做到近乎实时的渲染,即用户每勾勒一笔线条,迅速输出对应的拟合三维模型。(对于卷积层,我们采用了较老的 AlexNet。我们也试验了 Resnet 等更新的网络结构,在精度上没有特别显著的提升;同时考虑到实时绘制的速度要求,我们选择了这样一个折衷方案。)

我们采用了卷积神经网络(CNN)来学习二维绘画的人脸特征。

  以下是一些真实渲染结果:

以下是一些真实渲染结果:    

  连续绘制模式(Follow-up Sketching Mode)

  利用同样的卷积神经网络以及区域变形技术(Laplacian deformation),我们给用户提供了简易修改的绘制方案。对于不精于从空白纸张绘制肖像的用户,或者不想生成复杂人脸形状的用户,可跳跃第一步直接进行连续绘制。在连续绘制模式下,由单向工程(二维 -> 三维)转变为双向工程 (二维 <-> 三维):用户可直接从当前生成或预设的三维模型得到一个二维的人脸轮廓,并基于这个人脸轮廓进行修改、删除、变形等操作;类似于第一步,这个二维轮廓可以生成相应的三维模型。

  下图是一个典型的通过连续绘制模式生成的模型:

下图是一个典型的通过连续绘制模式生成的模型:    

  精细修改模式(Gesture-based Refinement)

  我们提供了基于手势的精细修改模式。如图所示,用户可以通过相应的手势,选取图像的区域进行变形,如面颊凸起,眉毛修改、面部轮廓修改等等。用户的手势也是通过一个简单的卷积神经网络学习,输入是用户绘画的手势,输出是对应的操作。

我们提供了基于手势的精细修改模式。

  其他

  平均来讲,基于我们的框架,新手绘制一个人脸模型只需要 5~7 分钟,熟练后甚至在一两分钟内就画出一个逼真的人脸模型。我们支持多种模型格式输出,以便对接其他平台。用户在实时操作过程中可以无障碍地进行撤销和恢复操作。用户操作窗口本身也支持各种常见的渲染操作,如放大缩小旋转移动贴图等等。同时,我们也提供了一个用于人脸建模的数据库,包含极大量的人脸模型,及其不同的表情和夸张程度(levels of exaggeration)

平均来讲,基于我们的框架,新手绘制一个人脸模型只需要 5~7 分钟

  结尾

  有了这个软件,再也不用担心不会建模了!更多关于模型的细节和数学公式。

  深度学习:

  深度不足会出现问题

  在许多情形中深度2就足够表示任何一个带有给定目标精度的函数。但是其代价是:图中所需要的节点数(比如计算和参数数量)可能变的非常大。理论结果证实那些事实上所需要的节点数随着输入的大小指数增长的函数族是存在的。

  我们可以将深度架构看做一种因子分解。大部分随机选择的函数不能被有效地表示,无论是用深的或者浅的架构。但是许多能够有效地被深度架构表示的却不能被用浅的架构高效表示。一个紧的和深度的表示的存在意味着在潜在的可被表示的函数中存在某种结构。如果不存在任何结构,那将不可能很好地泛化。

  大脑有一个深度架构

  例如,视觉皮质得到了很好的研究,并显示出一系列的区域,在每一个这种区域中包含一个输入的表示和从一个到另一个的信号流(这里忽略了在一些层次并行路径上的关联,因此更复杂)。这个特征层次的每一层表示在一个不同的抽象层上的输入,并在层次的更上层有着更多的抽象特征,他们根据低层特征定义。

  需要注意的是大脑中的表示是在中间紧密分布并且纯局部:他们是稀疏的:1%的 神经元是同时活动的。给定大量的神经元,仍然有一个非常高效地(指数级高效)表示。

  认知过程逐层进行,逐步抽象

  人类层次化地组织思想和概念;

  人类首先学习简单的概念,然后用他们去表示更抽象的;

  工程师将任务分解成多个抽象层次去处理;

  学习/发现这些概念(知识工程由于没有反省而失败?)是很美好的。对语言可表达的概念的反省也建议我们一个稀疏的表示:仅所有可能单词/概念中的一个小的部分是可被应用到一个特别的输入(一个视觉场景)。

  小结:您可以不采纳我的答案,但请您一定要考虑下我的建议哦! 文章中不足及错误之处在所难免,敬请专家和读者给予批评指正。当然如果大家还想了解更多方面的详细内容的话呢,不妨关注课课家教育平台,在这个学习知识的天堂中,您肯定会有意想不到的收获的!

赞(12)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程