目录

目录

Meshlet Priors for 3D Mesh Reconstruction


<Meshlet> Meshlet priors for 3d mesh reconstruction

Motivation

  • 输入点云,输出mesh
  • 过去的学习shape的方法,在学习先验时有两种:
    • object级别的先验,没有和pose解耦;
    • smooth regularizer先验,会损失local detail
  • 本篇想学习的是那些处于canonical pose下的local natural meshlets,用local natural meshlets,这种meshlets在不同物体、不同类别之间完全是shared,然后用这样纯粹的局部先验来拼出一个完整mesh
https://longtimenohack.com/posts/paper_reading/2020cvpr_badki_meshlet/image-20201216162000056.pngP指的是测试时的物体在数据集物体pose分布内,红P指不在数据集pose分布内
N指的是低噪声,红N指moderate noise
T指训练集见过的物体类别,T指训练集没有见过的物体类别
可以看到,本篇重点强调学出那些和pose解耦了的局部的meshlets,用这些meshlets来拼出完整mesh

geodesic parameterization

  • Geodesic polar coordinates on polygonal meshes.
  • 把一个顶点和周围的点映射到这个顶点的切平面的坐标上;然后把切平面通过变换变换到canonical pose(即顶点位移到坐标原点,切平面的法向量即z轴,切平面的u,v轴和x,y轴重合)
  • 这样,可以实现pose解耦,学到那些各种各样的局部的meshlets
  • https://longtimenohack.com/posts/paper_reading/2020cvpr_badki_meshlet/image-20201216163007426.png

VAE

  • 用VAE把各种meshlets压缩到一个latent space
  • 然后应用它fit一个点云集合的时候,首先用encoder提取一个初始的latent code,然后auto-decoder来更新几步latent code
  • https://longtimenohack.com/posts/paper_reading/2020cvpr_badki_meshlet/image-20201216162658302.png

overall optimization

  • 首先随便初始化一个rough mesh,从这个rough mesh提取meshlets,保证每个vertex至少被3个meshlets cover
    • 注意,这样训练时就有两个量要迭代优化更新:一个是mesh,一个是一组meshlets;
    • 其中,每个meshlets由顶点和形状code构成
  • 迭代:更新每一个局部的local shape
    • 用point cloud和meshlets“拼成的mesh”的loss来更新每一个meshlet的形状
  • 迭代:再让local shape形成global consistency
    • 最小化更新后的meshlets的形状和“拼成的mesh”的误差
    • 首先固定meshlets的形状code,更新mesh顶点
    • 然后固定mesh顶点,更新meshlet的形状code
  • https://longtimenohack.com/posts/paper_reading/2020cvpr_badki_meshlet/image-20201216163105638.png