Differentiable Surface Triangulation
研究生生涯阅读的第一篇图形学论文
一、主要工作:
本文提出了一个基于一种曲面三角划方式(DWDT)的可微框架,它能够在空间上,优化任何逐顶点或逐面的可微目标函数,并将此扩展到了三维空间。
因为其在保留三角几何、拓补含义的基础上,将三角组合结构解耦,使其可以使用梯度下降等方法进行学习,可以应用于pytorch,TensorFlow框架
二、实现方法:
DWDT部分
输入:给定的二维的点集
输出:组成三角的triplets
DT的操作,即选出德劳内三角划分,是通过使用voronoi cell来进行的。DT的定义是,当且仅当三角外心为三个顶点voronoi cell的交集。
为了赋值使三角划分可微,引入一个Inclusion Score的概念
这个Score最重要的部分在于, 他引用了reduced voronoi cell 的概念,并且将单一的二进制结果变成了连续的距离(外心距离最近的cell边界的距离),对i个三角形,其值为三个点的和
接下来是给每一个点加权,权的作用是控制三角形形状,其体现的几何意义是,更大的权重促使边界远离顶点,从而影响score值
至此,2d部分的处理结束。
3D曲面参数化部分
输入:给定三维曲面
输出:三维的点坐标,每一个三角形的Score值
用LSCM方法,构造一个2d到3d的bijective的映射,三维曲面先分解成不同的面片,然后对每一个面片进行映射变换。
优化过程
本文提供了几个自己设计的loss函数,并通过实验,对比了ADAM,LBFGS,模拟退火等优化算法的效果优劣。这部分重点在于,size的loss,curvature的loss函数:
这两个函数写的十分简略,相关的A,LSE函数本文并未提及具体原理,但是两个loss函数原理可以理解。分别是:通过叉乘的模(面积),来优化三角大小;通过三角形边与曲率正负向的点积,来优化边的方向。
三、效果
与对实现特定应用的算法进行比较,实现了sota的效果,实验主要集中在处理三角形大小,以及调整三角形边的朝向上,实验效果很好。
四、不足
时间开销大,不能处理大量数据,需要划分面片再拼接,导致边界误差大
五、个人想法
我觉得这篇论文,目前优化的方法基于梯度下降,通过定义不同的loss function来实现不同的优化效果,人为设定的损失函数对效果影响较大,并且对学习率、不同loss组合的权重分配等参数的设定,还是需要人为调参,依赖经验。
在进行网格优化时,如果已有目标网格,能否通过分析目标网格的inclussion score,来督促学习方向?能否设置一个target network,通过不断更新自己的policy network,来达到使网格模型定向地朝着目标网格进行优化的目的?比如提供人像面部网格,能否通过此框架,来学习出不同人种面部建模特征,然后定向地优化三角网格。
此外,整个框架的可微性建立在V和W结合的S值,我觉得这一部分有提升的可能。本文在体现空间几何结构时,只通过权重,仅考虑边上两点之间的位置关系;体现空间拓补结构时,只是在计算score时,对三顶点求和,体现拓补结构。但是我对网格几何学习还太少,暂无相关提升思路。
最后,我觉得三角网格对顶点和边的一一对应要求很严格,它在每一次迭代中,都需要重新参数化(因为点和边的关系每次迭代都发生变化),不知道是否能找到一个更加普遍性的方式,来指引网格优化的方向。
六、后续任务
最重点的是如何可微,去把可微的概念搞清楚
未完待续