论文笔记:Automatic Unpaired Shape Deformation Transfer

 

SIGGRAPH Asia 2018的文章,首次提出了一个全自动的变形迁移方法,且不需要成对的训练数据。

论文主页:http://geometrylearning.com/ausdt/

 

目标

首先明确几个概念,我这里提到的“形状”是指网格模型的identity信息,也就是这个模型是人还是猫,是什么体型之类的;“姿态”指动作信息,比如站立、举起右手。deformation要求只改变姿态而保留形状。

Deformation transfer(变形迁移),给定源模型的两个姿态S和S’,目标模型T,目标是抽取出从S到S’之间的潜在运动,并将这个运动信息迁移到T上,得到具有S的姿态和T的形状的模型T’。源模型和参考模型不必有相同的顶点数和拓扑,但一般要求初始姿态相同。下图是本文的一个例子,将瘦子S的变形迁移到胖子T上。

论文笔记:Automatic Unpaired Shape Deformation Transfer_第1张图片

 

现有的问题

1、需要已知源和目标模型point-wise的对应关系,即已知所有顶点或部分关键点的对应

2、需要成对的数据,也就是需要源和目标有一一对应的姿态

 

本文的解决方案

1、提出VAE-Cycle GAN框架解决了上述两个问题,变分自编码器将网格模型编码到隐空间,cycle GAN用来建立两个隐空间之间的映射关系

2、基于光场距离提出了一个三维形状的视觉相似性度量网络

 

  • VAE-Cycle GAN

训练阶段:输入:源网格序列S,目标网格序列T,S和T序列中的网格不需要成对

测试阶段:输入:源网格s;输出:由t变形得到的t',具有t的形状和s的姿态

论文笔记:Automatic Unpaired Shape Deformation Transfer_第2张图片

VAE:基于图卷积的变分自编码器,编码器Enc将模型序列编码到隐空间,得到更紧凑的表示,解码器Dec从隐空间恢复三维形状。这里使用两个VAE分别对S和T序列进行编码。对于输入的网格序列,将第1个网格作为初始姿态,后面的网格可以由初始姿态变形得到,因此VAE提取到的特征能够代表网格的变形信息。

 

Cycle GAN:

在隐空间中建立源\widetilde{S}到目标\widetilde{T}的映射G,将源的变形信息迁移到目标上,然后用目标的解码器Dec_{T}解码,就能重构出具有源姿态的目标网格。

 

cycle-consistency loss循环一致性约束:

Cycle GAN的灵感来自ICCV2017一篇做图像风格迁移的文章,引入这个约束能够更好地学习源和目标之间的映射。简单来说就是将映射结果再反向映射回去,约束它能够得到原来的输入。

论文笔记:Automatic Unpaired Shape Deformation Transfer_第3张图片

 

视觉相似性度量:

那么怎么保证迁移过来的只有动作信息而不包含形状(也就是identity)信息呢?文章的解决方法是让\widetilde{s}G(\widetilde{s})的光场距离尽可能小,也就是identity信息不会被G迁移过来,T同理。

但是光场距离是不可导的,因此文章提出了一个神经网络SimNet来拟合光场距离,具体可以看论文。

 

循环一致性约束和视觉相似性度量都是组成GAN损失函数的一部分。

 

我的一点看法

1、这个方法能够全自动的处理,效果也很好,输入的模型数量也不算多(相比起其他神经网络的输入),但是考虑到实际应用的话,是不太可能也没有必要得到这么多源网格的已有姿态的,更多的情况下我们只有一个源网格。把问题再扩展开来,甚至目标网格和源网格都只有一个,它们的姿态不相同,要解决的问题是把源变成目标的姿态,当然这里就不存在源的变形问题了,是另一个工作pose transfer要解决的问题。

2、对于每一组源和目标网格序列,虽说不要求它们的姿态一一对应,但是都要重新训练一次网络,训练好的网络只能用来处理这一组数据,个人感觉局限性比较大,不过可能本身就是用于两组序列的transfer的?是我没有理解它的应用。同时又回到了第一点说的问题,如果我都有这么多姿态了,用插值的方法估计也能得到结果。

你可能感兴趣的:(论文笔记)