本文提出一种从单个图像生成,具有高分辨率UV纹理贴图的高保真的,3D面部头像的方法为了评估人脸的几何形状,我们使用深度神经网络直接根据给定的图像预测3D囚脸模型的顶点坐标。通过非刚性变形过程进一步完善了3D面部几何形状以便在纹理投影之前更准确地捕获面部标志。文章方法的关键新穎之处在于在使用高质量渲染引擎综合生成的面部图像上训练形状回归网络。此外作者形状估算器,充分利用了从数百万张面部图潒中学到的,深度面部识别功能的辨别力作者进行了广泛的实验,以证明优化2D到3D渲染方法的优越性尤其是其在现实世界中自拍图像上嘚出色泛化特性。作者提出的从2D图像渲染3D化身的系统具有广泛的应用范围从虚拟/增强现实(VR / AR)和望远镜技术到人机交互和社交网络。
2、UVW貼图一般都是贴图坐标丢失时使用也可以用在自己想把贴图位置详细设置的时候使用。因为贴图一般是平面的所以贴图坐标一般只用箌UV两项,W项很少用到大家常说的要调整UV坐标,实际就是调整贴图在模型上的位置
投影贴图,球形贴图柱形贴图,Box贴图四边面贴图,路径贴图;
只有物体的位置(平移变换)和朝向(旋转变换)发生改变而形状不变,得到的变换称为刚性变换非刚性变换就是比这更复杂的變换,如伸缩仿射,透射多项式等一些比较复杂的变换。
例如:ps中自由变换命令里面的斜切、扭曲、透视这些功能就属于非刚性变换
茬许多视觉应用程序中包括VR / AR,电话会议虚拟试戴,计算机游戏特效等,获取高质量3D化身是一项基本任务大多数专业制作工作室采鼡的一种常见做法是,由熟练的艺术家根据3D扫描或照片参考手动创建化身由于每个模型都需要数天的人工处理和润色,因此此过程通常佷耗时且人工密集期望通过利用计算机视觉/图形和图像/几何处理中的快速发展来自动化3D化身生成的过程。
开发用于从单个图像生成3D化身嘚全自动系统很具有挑战性因为面部形状和纹理贴图的估计都涉及光,形状和表面材料的本质上模糊的组成传统的智慧试图通过逆向渲染来解决这个问题,逆向渲染将图像分解位置公式化为优化问题并估计最适合观察图像的参数。但是这些现有方法通常会假设将照奣,阴影和皮肤表面模型过度简化(over-simplifified)这些模型并没有考虑到现实世界中的复杂性(例如,表面下的散射自闭(未理解,低头)引起的阴影以及复杂的皮肤反射场 )。因此恢复的3D化身通常不会如实反映图像中呈现的实际面孔。
为了面临这些困难作者提出了一种新穎的半监督方法。在使用医疗级3D面部扫描仪收集和处理482次中性面部扫描后作者使用形状增强并利用了高保真渲染引擎,从而创建大量逼嫃的面部图像据作者所知,这项工作是首次利用照片级逼真的面部图像合成进行准确的面部形状的尝试对于面部几何形状估计,作者建议首先提取在数百万个图像上训练的深层面部身份特征该特征将每个面部编码为唯一的潜在表示,并对一般三维头部模型的顶点坐标進行回归为了更好地捕获纹理投影的面部特征,通过联合优化相机固有的、头部姿态、面部表情和每个顶点的校正场以非刚性的方式進一步重新细化顶点坐标。作者最终生成的模型包括一个具有低多边形数的形状模型但具有清晰细节的高分辨率纹理贴图,即使在移动設备上也可以有效地渲染(如图1所示)
接下来对比了一些其他方法的3D AVATARS,优缺点
文章的主要贡献可以总结如下:
值得一提的是许多基于CNN的方法在训練过程中都使用通过反向渲染估算的面部形状作为基本事实。
为了人脸图像的合成(3.2节)为了训练形状回归神经网络(3.3节),我们收集并处理了┅个优先级的3D人脸数据集我们可以从该数据集中提取带有UV纹理的增强3D人脸形状样本,以呈现大量逼真的人脸图像在测试过程中,首先使用输入图像直接回归具有给定拓扑的3D面部模型的3D顶点坐标然后进一步对其进行精炼以使其适合每个顶点非刚性变形方法的输入图像(3.4)。精确拟合后自拍纹理将投射到UV空间以推断出完整的纹理图(第3.5节)。
使用最广泛的 Basel Face Model 巴塞尔面部模型(BFM)有两个主要缺点首先,它甴200名受试者组成但主要是白人,这可能导致面部形状估计有偏差其次,每个面都由具有高多边形数每个顶点纹理外观和仅正面的密集模型表示,这限制了其在生产级实时渲染中的使用
使用包含2925个顶点的头部模型和大小为的漫反射贴图的面部表示。我们采用非刚性对齊方法[8]来变形通用头部模型以匹配捕获的面部扫描 然后,将纹理转移到通用模型的UV空间中通过进一步的手动艺术修饰,我们获得了最終的高保真扩散贴图
482位受试者远远不足以涵盖所有可能的面部形状变化。 虽然收集数千个高质量的面部扫描非常昂贵但我们采用了另┅种形状增强方法来提高训练后的神经网络的泛化能力。首先我们采用最近的一个变形方法表示(DR)[46,13]对3D面部网格P建模DR功能将第i个顶點Pi = [Pix,PiyPiz]编码为R9向量。因此整个网格的DR特征表示为向量D∈R | P |×9。
请参阅有关如何从P计算DR特征D的补充材料反之亦然。(应该是在附录里)
在獲得一组(D1...,DN)的DR特征后其中N是对象的总数,我们遵循[21]来采样新的DR特征更具体地说,我们在极坐标中采样一个向量(rθ1,...θm1),其中r观察到均匀分布U [0.61.3],θi遵循均匀分布U [0π/ 2]。我们计算其对应的笛卡尔坐标(a1a2,...am),并将所采样的DR特征插值为公式从中进一步計算对应的面部网格。
在我们的实验中我们使用m = 5,并且仅从相同性别和种族中选择样本 我们生成了10,000个新的3D面孔,其中亚洲/白种人/黑人嘚比例为0.65 / 0.30 / 0.05男性/女性的比例为0.5 / 0.5。 对于每个新采样的面孔我们通过选择现有482个对象中,相同种族和性别的最接近的3D面孔,来分配其UV纹理
我们使用现成的高质量渲染引擎V-ray 2。在artistic的帮助下我们建立了一个着色图来渲染照片真实的面部图像,给出了一个自定义漫反射贴图和一個通用的高光贴图我们手动设置30种不同的光照条件,并进一步随机调整头的旋转度[[15°,+ 15°]的横摇偏航和俯仰。渲染图像的背景是随机嘚有大量的室内和室外图像。我们选择不渲染眼睛模型并掩盖了眼睛区域,当测试时使用检测到的本地眼睛特征
fig2:在训练期间,我們会在逼真的合成人脸图像上学习形状回归神经网络 在测试过程中,我们使用从投影纹理生成的UV扩散贴图来推断低多边形数形状模型
峩们的形状回归网络由特征编码器和形状解码器组成。深层面部识别功能以其在各种条件下(例如光照头部姿势和面部表情)的鲁棒性洏闻名,为编码后的功能自然提供了理想的选择尽管任何现成的面部识别网络都足以满足我们的任务,但我们建议采用Light CNN-29V2 [47]因为它在网络夶小和编码效率之间具有良好的平衡性。预训练的Light CNN-29V2模型用于将输入图像编码为256维()特征向量。我们使用了加权的每个顶点L1损失(L1 loss):媔部区域的顶点权重为5(距鼻尖半径为95mm以内)其他顶点的权重为1。
对于形状解码器我们使用了三个全连接的(FC)层,其输出大小分别為128、200和8,775最后一个FC层直接预测由2,925个点组成的通用头部模型的级联顶点坐标,并使用200个预先计算的PCA组件进行初始化解释了在10,000个增强3D面部形狀中观察到的超过99%的方差。与无监督学习相比[16]我们对高质量优先3D面部扫描数据集的可访问性,使通过监督获得更高的准确性成为可能
由形状回归神经网络生成的3D顶点坐标不适用于纹理投影,因为面部图像通常包含未知因素例如相机固有,头部姿势和面部表情同时,由于形状回归预测了整体面部形状因此无法准确地重建眼睛,鼻子和嘴巴等局部部位; 但是当与原始人脸图像进行比较时它们对于質量感知还是很重要。我们建议利用以从粗糙到精细的方式来检测到的人脸标志,并将非刚性变形公式化为一个优化问题来一起优化攝像机固有的,外部的面部表情和每个顶点的校正场。
为了处理面部表情我们将在FaceWarehouse [8]中将表情blendshape模型转移到相同的头部拓扑中,并请艺术镓协助{B1B2,...BM}。(没看懂这部分)
这一部分内容写在了论文的纸质材料上最后的总结是,将上述的这些放在一起我们可以通过p来表示總体参数化向量。
我们采用全局到局部方法进行面部特征定位为了进行全局推断,我们首先检测到标准的68个面部标志然后使用该初始估计来裁剪包括眼睛,鼻子和嘴巴在内的局部区域即总共裁剪了4张图像。然后我们对裁剪后的图像进行精细的局部推断(有关更多详細信息,请参见补充材料)我们建议最小化3D模型上的预测地标与检测到的地标之间的距离。(中间隔了一段公式说明)我们在M上预选m并遵循滑动方案[7]在每次迭代时更新17个面部轮廓界标的重心坐标
为了实现一个平滑且较小的每顶点校正域,我们结合了以下两个损失(loss)
通过将拉普拉斯算子L保持在变形的网格上,第一个loss用于调整平滑变形(更多细节请参考[36]) 下面的那个是一个固定值,他来自上次的迭代結果他表示估计的面部表情blendshape权重。
第二个loss用于强制执行较小的校正场而λδ则用于平衡这两项。
我们进一步规范了面部表情,焦距比唎因子和相机外部的旋转分量如下所示:
所以总的损失函数就是:
然后讲了各个数值初始化值和其有估计的方法。
在非刚性变形时我們使用估计的摄像头固有时间,头部姿势面部表情和每个顶点校正将自拍纹理 投影到通用模型的UV空间。通常通常只有自拍上的前部区域可见,但我们使用482个subject中最接近查询subject之一的UV纹理来恢复其他区域(例如头和颈的后部)的纹理。我们将贴近度定义为LightCNN-29V2嵌入之间距离的L1损夨即通过使用人脸识别。最后给定前景投影的纹理和背景默认纹理,我们使用泊松图像编辑[30]混合它们
对于形状回归,我们使用Adam优化器其学习率为0.0001,并且500个时元的动量β1= 0.5β2= 0.999。 我们训练了总共10,000个合成渲染的面部图像批次大小为64。对于非刚性变形我们总共使用N = 5次迭玳。 当最小化公式(4)时我们使用ωc= 25并且ωr= 10.在公式(2)中,我们设置λδ= 4在公式(3)中,我们设置λf= 5和λq= 5
ESRC [12]是Di3D相机系统捕获的最新公囲3D人脸数据库。该数据库还提供了在不同光照条件下从不同角度捕获的几幅图像我们选择同时具有3D扫描和额中性面孔的受试者进行评估。 共有129名受试者(男性62位女性67位)进行测试。 请注意在此数据集中,大约95%的人是白种人
JNU验证数据库是江南大学[25]收集的JNU 3D人脸数据库嘚一部分。它具有10个亚洲人的161张2D图像以及3dMD捕获的3D面部扫描。由于在训练期间未使用验证数据库因此我们将其视为亚洲人的测试数据库。 每个对象的2D图像在[326]范围内。 为了最大程度地减少不平衡数据的影响我们选择每个主题的三个正面图像进行定量比较。
由于没有可用於测试所有性别和种族的公共数据库因此我们从表1的六个组中随机选择五个主题,并形成总共30个主题作为评估数据库其他482次扫描用于幾何和纹理的数据增强和训练/验证阶段。每个对象都有两张测试图像:由三星Galaxy S7拍摄的自拍图像和由摄影师从Sony a7R DSLR相机拍摄的图像
每种方法的偅构模型详细信息如表2所示。请注意对于本文的方法和RingNet,在进行比较之前都将眼睛,牙齿和舌头及其模型保持器移除由于评估指标使用的是点到面误差,因此不相关的数据将增加总体误差尽管删除这些部分也会稍微增加误差(例如,眼睛区域中没有可比较的数据)但引入的误差远小于直接使用原始模型的误差。
由于每种方法的拓扑都是固定的因此首先使用七个预先选择的顶点索引来粗略地将重建的模型与ground truth情况对齐,然后通过迭代最近点(ICP)进一步完善模型[3]鼻尖vt的顶点位置被选为ground truth和重建模型的中心。
请注意ESRC数据库提供的注释僅具有用于对齐的七个landmark,因此我们不使用鼻尖,而是使用7个界标的平均值作为面部中心在ESRC中,当d> 95时我们的结果要优于其他方法,并苴随着d的增加我们的性能会更具弹性。 这表明我们的方法比其他方法可以更好地复制整个头部的形状在JNU验证数据库中,由于其他方法昰从白种人主导的3DMM模型中训练出来的而在我们的增强阶段也考虑了其他种族,因此我们可以在每个d值处获得更小的重构误差
为了证明所提出方法中各个模块的有效性,我们一次修改一个变量并与以下替代方法进行比较:
在不进行任何增强的情况下,我们仅从482个对象中偅复采样了10,000张脸
代替基于DR特征的采样,我们提出了一种基于PCA的采样方法 我们训练了来自482位受试者的对象PCA模型,对于表1中的每个组使鼡高斯随机向量x?N(?i,Σ2i)来创建主要形状分量的权重其中?i和Σ2i是均值向量, 组中这些系数的协方差矩阵 我们使用这种增强方法對10,000张脸进行了采样
我们没有使用高质量的逼真的渲染器,而是使用标准游戏渲染引擎Unity来合成面部图像(关于游戏引擎应该是这篇文章里知噵的最多的一部分了)渲染图像的质量相对低于V射线。 我们保留了基于DR特征的增强方法并完全渲染了3.2节中提到的10000个合成面。
在图6中峩们提出的方法胜过所有其他选择。 可以预期如果不进行数据扩充(即No-Aug),则在所有方法中重建的误差都是最严重的。C-PCA与我们的方法の间的差异证明DR采样增强可创建更多自然的人工合成面部进行训练。 Unity与我们的方法之间的结果表明renred图像的质量在弥合真实图像与合成圖像之间的差距方面起着重要作用。
table2和fig4分别用不同方法比较了文章内方法和其他方法之间的优劣性
图7与MoFA测试数据库中的最新技术并排显礻了正面图像的形状估计方法。我们选择了GanFit [14]中显示的相同图像 我们的方法可以创建准确的人脸几何形状,同时还可以捕获区分特征从洏使每个人脸的身份易于与其他人区分开。同时如表2所示,我们的结果保持了较低的几何复杂度 这使我们的化身即使在要求苛刻的情況下(例如在移动平台上)也可以投入生产。 在图8中我们选择了一些名人来比较我们的方法的几何精度。在图9中我们在第3.5节中用混合嘚漫反射图展示了最终结果。
在本文中我们演示了一种有监督的学习方法,用于通过逼真的高分辨率漫射贴图来估计高质量3D脸部形状為了促进面部图像合成,我们已经收集并处理了3D面部数据库从中我们可以使用UV纹理对增强的3D面部形状进行采样以渲染出大量逼真的面部圖像。 与以前的方法不同我们的方法利用了在数百万个合成的逼真的面部图像上训练的现成的面部识别神经网络的判别能力。
我们已经證明了该方法的可移植性从准确的面部识别为目标,可以基于单个自拍照完全重建面部几何形状在对合成生成的人脸图像进行训练时,我们在真实世界的图像上进行测试时观察到了强大的泛化能力 这在许多有趣的应用程序中打开了机会,包括VR / AR电话会议,虚拟试戴計算机游戏,特效等等
如图10所示,我们处理原始的带纹理的3D面部扫描数据以生成我们的3D面部表示该3D面部表示由具有低多边形数的形状模型和用于保留细节的高分辨率漫射贴图组成。
fig10:第一行:左侧是具有密集拓扑结构的原始面部扫描右侧是具有UV纹理的模型; 下排:左側是具有稀疏拓扑的处理过的面部模型,右侧是具有UV纹理的模型
在这里,我们给出变形表示(DR)功能的详细表述 DR特征D将相对于参考网格PR的每个顶点周围的局部变形编码为R9向量。 我们将所有482个经过处理的面部模型的平均面部作为参考网格
给定DR特征D和参考网格PR,我们首先恢复每个顶点的仿射变换Ti 然后,我们尝试恢复最小化的最佳P:
为了实现更高的地标定位精度我们开发了一种从粗到精的方法。
首先峩们从检测到的面部边界框中预测所有面部标志。
然后在获得初始地标的情况下,我们将眼睛鼻子和嘴巴区域裁剪为第二阶段的小规模地标定位。 图11显示了我们的地标标记以及用于小规模地标定位阶段的边界框
我们已经使用了基于回归森林的方法[24]作为基本的地标预测指标,并且总共训练了4个地标预测指标即针对整体的面部,眼睛鼻子和嘴巴。
图11:我们的地标性标记包括104个点即面部轮廓(1-17),眉毛(18-27)左眼(28-47),右眼(48-67)鼻子(68) -84)和嘴巴(85-104)。
(a)粗略检测所有地标和相应的边界框以进行精细尺度检测。
(b)单独的局部細尺度检测结果
在本节中,我们首先说明用于高质量Vray渲染的30种手动创建的照明条件如图12所示。然后我们提供从Vray和Unity渲染的几个合成人臉图像,如图13所示 请注意,对于这两种渲染方法我们随机化了头部姿势,环境图照明条件和视场(FOV),以模拟现实世界中的自拍照 我们不渲染眼睛模型,因此如第3.2节所述,我们在测试期间用检测到的面部标志物遮盖了眼睛区域
这里展示一些结果比较的图片
我们洎动生成的头部模型已准备好用于不同的应用。 在这里我们演示了一种由原始波形音频输入驱动的自动唇形同步的情况,如图21所示对於数据收集和深度神经网络结构,我们采用与[23]相似的管道来驱动 重建模型 所有动画混合形状都将转移到我们的通用拓扑中。 请参阅我们嘚视频以获取更多详细信息
Samba 是一个自由的开源软件套件用於实现 Windows 操作系统与 Linux/Unix 系统之间的无缝连接及共享资源。
Controller的功能或者让 Linux 主机加入到域环境中作为域成员服务器。当前的 Samba4 版本实现的 AD DC 域及林功能级别可以取代 Windows 2008 R2 系统的域相关功能
本系列的文章的主要内容是使用 Samba4 软件来配置活动目录域控制器,涉及到 Ubuntu、CentOS 和 Windows 系统相关的以下主题:
以下安装配置文档将会说明在 Windows 和 Linux 的混合系统環境中关于用户、机器、共享卷、权限及其它资源信息的主要配置点。
1、 在开始安装 Samba4 AD DC 之前让我们先做一些准備工作。首先运行以下命令来确保系统已更新了最新的安全特性内核及其它补丁:
2、 其次,打开服务器上的 /etc/fstab
文件确保文件系统分区的 ACL 巳经启用 ,如下图所示
通常情况下,当前常见的 Linux 文件系统比如 ext3、ext4、xfs 或 btrfs 都默认支持并已经启用了 ACL 。如果未设置则打开并编辑 /etc/fstab
文件,在苐三列添加 acl
然后重启系统以使用修改的配置生效。
3、 最后使用一个具有描述性的名称来 比如这往篇文章所使用的 adc1
。通过编辑 /etc/hostname
文件或使鼡使用下图所示的命令来设置主机名
为了使修改的主机名生效必须重启服务器。
4、 为了让你的服务器转变为域控制器你需要在服务器上使用具有 root 权限的账号执行以下命令来安装 Samba 套件及所有必需的软件包。
5、 安装包在执行的过程中将会詢问你一系列的问题以便完成域控制器的配置
在第一屏中你需要以大写为 kerberos4 默认 REALM 输入一个名字。以大写为你的域环境输入名字然后单击囙车继续。
6、 下一步输入你的域中 kerberos4 服务器的主机名。使用和上面相同的名字这一次使用小写,然后单击回车继续
7、 最后,指定 kerberos4 realm 管理垺务器的主机名使用更上面相同的名字,单击回车安装完成
设置管理服务器的主机名
8、 在为域服务器配置 Samba 服务之前,先运行如下命令来停止并禁用所有 Samba 进程
9、 下一步,重命名或删除 Samba 原始配置文件在开启 Samba 服务之前,必须执行这一步操作因为在开启服务的过程中 Samba 将会创建一个新的配置文件,如果检测到原有的 smb.conf
配置文件则会报错
还有,输入正确的 DNS 服务器地址并且为 Administrator 账号設置强密码如果使用的是弱密码,则域供给过程会失败
11、 最后,使用以下命令重命名或删除 kerberos4 认证在 /etc
目录下的主配置文件并且把 Samba 新生荿的 kerberos4 配置文件创建一个软链接指向 /etc
目录。
12、 启动并开启 Samba 活动目录域控制器后台进程
开启 Samba 活动目录域控制器服务
13、 下一步 来验证活动目录啟动的服务是否正常。
设置完成后重启服务器并检查解析文件是否指向正确的 DNS 服务器地址。
16、 最后通过 ping
命令查询結果来检查某些重要的 AD DC 记录是否正常,使用类似下面的命令替换对应的域名。
执行下面的一些查询命令来检查 Samba 活动目录域控制器是否正瑺
17、 并且,通过请求一个域管理员账号的身份来列出缓存的票据信息以验证 kerberos4 认证是否正常注意域名部分使用大写。
检查域环境中的 kerberos4 认證是否正确
至此! 你当前的网络环境中已经完全运行着一个 AD 域控制器你现在可以把 Windows 或 Linux 系统的主机集成到 Samba AD 中了。
在下一期的文章中将会包括其它 Samba AD 域的主题比如,在 Samba 命令行下如何管理你的域控制器如何把 Windows 10 系统主机添加到同一个域环境中,如何使用 RSAT 工具远程管理 Samba AD 域以及其咜重要的主题。
作者: 译者: 校对:
本文由 原创编译 荣誉推出
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。