前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【笔记】《Deep Detail Enhancement for Any Garment》的思路

【笔记】《Deep Detail Enhancement for Any Garment》的思路

作者头像
ZifengHuang
发布2020-10-10 10:12:27
1.2K0
发布2020-10-10 10:12:27
举报
文章被收录于专栏:未竟东方白未竟东方白

近来关注了下近年火热起来的衣物布料增强,于是看了前段时间刚刚新鲜出炉的Adobe和miHoYo参与的这篇文章,这篇文章运用网络实现了低性能代价的衣物褶皱增强效果,效果也还算可以

这篇文章对于数学的要求不会很高,我尽量总结成了这份笔记,里面也许还有很多理解不透彻或理解错误的地方,请谅解


大意

这是个利用多个网络组合运用从低分辨率的衣物褶皱纹理上学习高清化的方法,并且在处理前用了一个类型分类网络来提高流水线的性能,处理时用了另一个网络来评估结果的损失,网络处理的方法和超分辨率问题有些接近,是在对模型的法线图进行细节强化。整篇论文的根本目的是寻找一种执行效率较高的逼近高精度布料模拟渲染效果的方法


流水线简介

如下图,首先从模型上得到二维法线图,然后将法线图切割为小块喂给一个分类网络去获得估计的分块的布料材质,得到材质后将材质类别和法线图小块一起喂给另一个负责增强的网络对图片进行法线细节增强,但是这里负责增强的网络所使用的损失是由另一个网络来提供的,得到的法线用RGB平滑重新组合成法线图后替换掉一开始的粗糙法线图


模型转二维法线

流水线的开头提到的模型得到二维法线图,文中说自己使用了UV参数化方法,所使用的方法在RelatedWorks有给出。转为二维法线图来处理是比较成熟的纹理高清化方法,这样可以保证衣服整体的褶皱形状不变的情况下可以对一些褶皱细节进行增强。上面图中的法线明显被烘焙到对象法线贴图空间中所以呈现了彩虹色。这里还有一点要注意的就是在布料模拟问题中,角色身上的布料通常是依据材质进行分块的

参考:https://zhuanlan.zhihu.com/p/62348785


法线图裁剪

由于不同材质的布料在运动时产生的褶皱会有不同的特性,例如丝绸和粗麻布不同的柔性得到的褶皱不同,为了减少网络处理的素材的尺寸数量级,文章用批剪裁将法线贴图裁剪为很多小分块,后面再进行融合,在这里由于之后要进行融合所以裁剪的时候需要预留一定的重叠空间


法线图分类

由于前面说到不同材质褶皱特性不同,这里文章训练了一个分类网络,使用的是常用的经典网络VGG18,通过交叉熵损失来训练,目的是将法线图所属的布料材质类型估算出来,让得到的材质类型一起被输入接下来的细节增强网络中。由于单单依赖一个小块进行分类是不准确的,因此文章在训练完成后,将所有法线图小块经过这个网络进行估计,然后用投票法决定当前处理的布块是什么材质的


法线图增强

为了增强法线图,文章采用了另一个很常用的网络UNet的结构,这个网络常用于语义分割任务,但是可能是由于UNet良好的计算性能,同时照顾高低分辨率内容,输入与输出的分辨率一致等特性,文章通过修改损失函数的方法将其用于法线图增强的任务上

在这里文章比较特别地用了一个预训练的VGG19网络来作为损失函数,这个网络原先用于图像分类,但是这里选用了VGG19中间一些层的输出作为特征来计算损失。损失函数分为了两部分,一部分是法线图增强前后内容特征是否保持着,另一部分是风格是否吻合

对于内容特征的保持,文章比较粗糙法线图和增强后的法线图在VGG19提取出的特征矩阵的差异作为损失使用

而对于风格的吻合,这里仍然用VGG19中间层的输出作为特征矩阵,然后使用对应的掩码消去不属于图像的背景部分,剩下的特征部分与自己的转置进行点乘得到Gram矩阵。Gram矩阵常常用在风格迁移中度量目标矩阵自己的特征向量之间的关系,风格迁移中当两张图片的Gram矩阵接近时代表着他们有类似的内部特征关系(详细介绍在结尾)。文章对得到的Gram矩阵进行了误差计算,得到的值作为风格损失Lstyle来衡量增强后的图是否和粗糙的法线图拥有相同的风格,下面的R是有效像素的数量

两个损失组合在一起来训练UNet,训练素材是随机剪裁的法线图,总的损失函数如下,这里的权重选择是人为指定的超参数:


法线图融合

网络输出的增强后的法线图,尽管训练的时候是随机裁剪的,但是应用的时候是带有重叠地有规律裁剪的,增强后的法线分块拼接起来,在重叠的区域使用RGB的平均值来替代


二维法线还原到模型

三维还原部分除了可以直接用法线贴图的方法应用外,文章还使用了基于法线图的顶点变形方法和一个后处理约束方法。首先对于原来的顶点,文章用迭代梯度优化的方式改变目标表面上的顶点p来最小化下面的能量函数:

这个能量函数中np是对应顶点增强后的法线,q是顶点p的所有有连接的相邻点,Δ是拉普拉斯算子,p0是表面优化变形前的初始位置

  1. 函数第一项由于让单位法线向量与顶点和相邻点构成的单位向量点乘平方,因此就是在最大化新的顶点与周围顶点向量所形成的夹角,让顶点偏向新的法线方向并让新的法线方向尽可能地独立
  2. 函数第二项使用了权重和拉普拉斯算子,由于拉普拉斯算子是空间二阶导,因此这里最小化拉普拉斯算子目的是配合权重选择让新生成的表面顶点变化时缓和一些
  3. 函数第三项是最小化新顶点与原来位置的距离,这主要也是配合权重让表面不要过度变形

完成对顶点的第一步变形后,由于第一步的无视物理碰撞的变形可能导致某些部分发生穿模现象,文章又使用了一个2012年提出的后处理步骤进行约束,相似地迭代最下化下面这条能量函数:

这里首先能搜索得到进入其他网格中的顶点p,将那些点映射到物体网格表面的最近位置p*,然后开始迭代一方面保持顶点不要差距太远一方面用Nabla算子计算梯度减少这些点的位置突变


数据集生成

这篇文章的数据集生成没有什么特别,就是在人物动作上绑定衣物然后进行低精度的运动模拟和高精度的运动模拟,模拟途中类似上面的流水线一样从数据中不断暂停-裁剪-得到一对数据进行训练,为了防止物理模拟的不确定性造成的影响,文章是从高精度的模型上用低精度采样用的模型一样的方法进行了下采样然后来得到法线数据集的


量化评估

文中为了量化法线增强流程产生的结果,对风格特征定义了一个"改进分数"(improvement score),也就是使用前面法线图增强部分中提取出来的风格损失Lstyle,通过比率比较增强后的风格损失与增强前的风格损失的插值相比较GT的插值究竟有多少。由于这个比率值乘上了100因此越接近100就代表增强后的法线风格越接近真实高分辨率法线的风格

文中通过对相同衣物相同动作进行大量量化评估并求平均值和方差来评估网络的效果

文章还额外量化了获取不到高精度布料模拟结果的情况,文中使用统计了低精度的特征矩阵,改进后的特征矩阵和并不能对应的高精度的特征矩阵,通过将特征矩阵用类似SVD的方法降维成大量二维向然后计算出它们之间的倒角距离C1和C2,用下面的方法来评分

这样文章得到另一个表格,这个表格中A是已经拥有数据的衣物,B是新的衣物,C是紧身的衣物,因此B还能有较好的提升,C由于紧身的原因低精度的法线本身就足够精确所以提升不大


与其他方法的对比

文章最后与几种奇奇怪怪的方法进行了对比,都应用在法线图优化上,分别是2018年的超分辨率网络,Photoshop中的图片锐化算法,2018年的DeepWrikles网络,其中DeepWrinkles效果对于文章中的数据集的效果最好,但是难以应对没有见过的数据,这里不知道为什么超分辨率算法似乎效果非常糟糕,可能没有进行过专门的训练


总结

文章最后提出了可能的优化方向:

  1. 目前仍需要分类网络的协助,希望可以应对没有见到过的类型
  2. 目前需要在法线图上进行优化,希望可以之间在三维结构上进行优化
  3. 目前需要假设衣物的每个部分的材质相同,无法处理复杂的混合材质

相关研究

衣物布料运动模拟从05年就开始有很多的研究了,然后自然也有就有人想要优化效果和性能,主要分为几个思路,下面这里都是相关方向比较新和全面的研究:

  1. 使用人工设计的优化器处理的思路,Gillette在2015将这个思路应用在实时衣物模拟动画上:Russell GilleŠe, Craig Peters, Nicholas Vining, Essex Edwards, and Alla She‚er. 2015. Real-Time Dynamic Wrinkling of Coarse Animated Cloth. In SCA (SCA ’15). 10.
  2. 统计已有的数据进行的数据驱动处理思路,Guan在2012提出了一个比较全面的系统:Peng Guan, LoreŠa Reiss, David A Hirshberg, Alexander Weiss, and Michael J Black.2012. Drape: Dressing any person. ACM Transactions on Graphics (TOG) 31, 4 (2012),1–10.
  3. 基于机器学习的思路,Alldieck在2019基于深度图进行了处理:Œiemo Alldieck, Marcus Magnor, Bharat Lal Bhatnagar, Christian Œeobalt, and Gerard Pons-Moll. 2019a. Learning to reconstruct people in clothing from a single RGB camera. In Proceedings of the IEEE Conference on Computer Vision and Paˆern Recognition. 1175–1186.
  4. Holden等人2019年研究了如何对这个问题进行PCA优化:Daniel Holden, Bang Chi Duong, Sayantan DaŠa, and Derek Nowrouzezahrai. 2019. Subspace neural physics: fast data-driven interactive simulation. In Proceedings of the 18th annual ACM SIGGRAPH/Eurographics Symposium on Computer Animation. 1–12.

然后最接近这篇文章思路的是2018年Lahner设计的DeepWrinkles,这个网络用GAN去优化法线图,效果很好:Zorah Lahner, Daniel Cremers, and Tony Tung. 2018. Deepwrinkles: Accurate and realistic clothing modeling. In Proceedings of the European Conference on Computer Vision (ECCV). 667–684.

2019年Ma等人将布料类别的独热编码合并进了网络中,如果不知道怎么给网络喂入额外信息的话这篇可能有用:Qianli Ma, Jinlong Yang, Anurag Ranjan, Sergi Pujades, Gerard Pons-Moll, Siyu Tang, and Michael J Black. 2019. Learning to Dress 3D People in Generative Clothing. arXiv preprint arXiv:1907.13615 (2019).

2019年Alldieck等人介绍了如何将衣物进行UV参数化,如果想做这方面的话值得看一看:Œiemo Alldieck, Gerard Pons-Moll, Christian Œeobalt, and Marcus Magnor. 2019b. Tex2shape: Detailed full human body geometry from a single image. In Proceedings of the IEEE International Conference on Computer Vision. 2293–2303.

而这篇文章的网络结构主要是image-to-image方法,跟随着Gatys在2015提出的框架:

Leon Gatys, Alexander S Ecker, and MaŠhias Bethge. 2015. Texture synthesis using convolutional neural networks. In Advances in neural information processing systems. 262–270.


Gram矩阵

Gram矩阵常常用在风格迁移中度量目标矩阵自己的特征向量之间的关系,计算表现矩阵自己点乘自己的转置,也就是一个没有减去均值的协方差矩阵。因为点乘的对象包括通道自身,所以Gram矩阵的对角线元素可以体现出特征在图片中出现的量

风格迁移中当两张图片的Gram矩阵接近时代表着他们有类似的内部特征关系,因此通常用Gram矩阵来计算误差

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未竟东方白 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档