目录

目录

Deep Implicit Templates for 3D Shape Representation


<DIT> Deep implicit templates for 3D shape representation

review

  • 这种变形场类方法,最大的问题应该在于当 层级结构 / 拓扑 发生大的改变时,这种很大程度由位置决定的对应关系是否无法准确反应结构上的变化,从而导致degenerates的行为
  • deformed implicit field 思路很像,那篇也是清华的
    • deformed implicit field 除了位置修正外还有标量\(\Delta s\)修正;本篇只有位置修正
      • deformed implicit field在表面上的点变形后不一定还在表面上;需要用 最近邻算法 来计算变形后的形状相关点的位置
      • 本篇在表面上的点,变形后一定还在表面上(变形前后的点的SDF值均为0)
    • deformed implicit field 是一个超参数网络,从code得到位置修正、\(\Delta S\)修正的网络 参数;本篇是一个LSTM,输入code+p输出位置修正
    • 对于模板的理解与deformed implicit field 完全不同:
      • deformed implicit field认为模板是一种对类别中形状公共捕捉/“存储”,甚至模板本身不一定是一个valid SDF
      • 本篇认为模板就是一个valid shape,甚至可以选择数据集中的某个具体物体形状作为模板(user defined templates
    • 📌 对于structure discrepancy结构差异性的考虑,本篇不如deformed implicit field.
      • deformed implicit field有考虑用一个标量修正来cover一定的结构修改;位置修正只包括形状修改
      • 而本篇把结构修改和几何修改全部都用位置变化来cover
        • 比如下图,仔细看最上面一行chair的关键点,其实就是有问题的:最左边的chair,黄色的点是【可以坐的区域 / 椅面的边缘】,而最右边的chair,黄色的点是【沙发把手的边缘】;这显然**在语义上就不是相关的两个点**
          https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20210111155948737.png
  • 因为有很多谨慎的设计(1. 使用LSTM warp而不是MLP warp 2.对canonical的正则化 3. 对空间扭曲的正则化),从transfer的效果上看要比deformed implicit field好一些?
    效果不如deformed implicit field
本篇:Deep Implicit Templates for 3D Shape Representationdeformed implicit field
texture transferhttps://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20201229180439537.pnghttps://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20201229180759966.png
label transferkeypoint detection PCK accuracy
https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20210104120316992.png
label transfer IOU banchmark
https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20210104114757341.png
细节对比:本篇结果出现了错误的语义对应https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20210116172741451.pnghttps://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20210116172801005.pnghttps://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20210116173201127.png

Motivation

  • 把一个具体shape表征为 conditional deformations of a template,建立起 category level 的dense correspondence
    注意是 conditional deformations,相当与Deformed NeRF那篇,有一个deformation code
    https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20201229171836408.png
  • 把一个条件空间变换 分解为 若干个仿射变换
  • training loss经过谨慎设计,无监督地保证重建的精度 + plausible template

overview

  • https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20201229171755900.png
  • https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20201229173256894.png
  • warping函数把首先把一个点p映射到一个canonical position ,然后在模板SDF中query这个canonical position来获取SDF值
  • 照搬原DeepSDF训练是不行的:尤其容易学出一个过分简单的template和过拟合到一个复杂的transformer(这里译作变换器更合适),最终带来不准确的correspondence
  • 目标:
    • 一个最优的template,能够表达一组物体的公共结构
    • together with a 空间变换器,能够建立精确的稠密的相关性
    • 学到的模型应保留DeepSDF的表达能力和泛化能力,因此支持mesh补间和形状补完

spatial warping LSTM

  • 实践发现用MLP来表达warping function不太合适:
    • Q: 考虑理论上的原因
    • MLP和LSTM作warping的对比:warping的补间
      https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20201229172212443.png
  • 把一个点的空间变换表示为多步仿射变换:
    • \((\alpha^{(i)},\beta^{(i)},\phi^{(i)},\psi^{i})={\rm LSTMCell}(c,p^{(i-1)},\phi^{(i-1)},\psi^{(i-1)})\)
    • 其中\(\phi\)\(\psi\)是输出和cell state,\(\alpha\)\(\beta\)是仿射变换的参数,角标\((i)\)代表迭代的i-th step
    • \(p\)的更新:\(p^{(i)}=p^{(i-1)}+(\alpha^{(i)} p^{(i-1)}+\beta^{(i)})\)
    • 迭代重复S=8次,得到最终的warping的输出
  • 训练loss
    • reconstruction loss
      • 因为warping函数是迭代的,从 Curriculum deepsdf, Yueqi Duan et al.2020得到启发,用progressive reconstruction loss
      • https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20201229175034719.png
    • regularization loss
      • point-wise regularization
        • 认为 所有 meshes都normlized 到一个单位球,并和canonical pose对齐
        • 因此,引入一个逐点的loss,通过 ==约束每个点的在warping前后的变化== 来实现这种正则化
        • https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20201229175243291.png
        • Huber kernel:原点附近是二次函数,以外是线性函数
        • Q: 这样似乎只能保证canonical pose对齐,并不能保证canonical space具有单位大小
          • A: 笔者推测:用泛泛的位置变化的大小,来提供一种对所有物体的表征都处于canonical pose的约束;
      • point pair regularization 对空间扭曲程度的限制
        • 尽管deform时空间扭曲是不可避免的,极端的空间扭曲还是可以避免的
        • https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20201229175618093.png
        • 其中,\(\Delta p=T(p,c)-p\)是点p的position shift,
          \(\epsilon = 0.5\)是控制扭曲容忍度的参数,对于防止shape collapse(形状崩塌,指学到过于简单的shape template)很关键
        • 笔者理解:距离越接近的一对点,position shift的差距(大小差距)应越小;即,距离越接近的一对点,变形的差距应越小
          • Q: 考虑这里只有模的差距?如果考虑方向的差距,是否对法向量也会有一定的约束?
            A: 注意这里是"位移向量"的方向差距,不是"法向量"的方向差距
        • 下图是在有无此loss的情况下学到的template;
          可见,如果没有point pair regularization,会学到过于简单的template
          https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20201229175909233.png

results

  • 形状补间的效果:
    https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20201229180146944.png
  • 因为已经建立起了shape correspondense,可以做关键点检测的迁移
    https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20201229180103315.png
  • 应用:texture transfer,等
    https://longtimenohack.com/posts/paper_reading/2021cvpr_zheng_deep/image-20201229172342590.png