1. 这篇文章究竟讲了什么问题?

通过体积风格转移的方法,来高效地构造颜色外观上符合要求的、异质单反射体积。

网络使用了一个体积的自编码器,并且使用了 stylizing kernel predictor

2. 这个问题的性质是什么?如果不完全是一个新问题,那为什么它“仍然重要”?

属于改进性质的问题,之前已经有不少人研究过了体积上的风格迁移,但是文章提出的方法能够得到更好的效果。

同时这篇 paper 也属于 Artistic Appearance Design,传统的方法需要较为复杂的人工调整才能得到较好的效果,而本文的方法不需要人工干预,效率更高。

3. 这篇文章致力于证明什么假设?

证明它的这套风格迁移的框架是 work 的,并且效果很好

4. 有哪些与这篇文章相关的研究?

  • Neural Style Transfer for Images
  • Neural Style Transfer for 3D Contents
  • Artistic Appearance Design
  • Differentiable Rendering

5. 这篇文章提出的问题解决方案中,核心贡献是什么?

  • 核心 idea

    • 提出了一个将颜色外观从二维图形转移到三维图形上的框架

    Untitled.png

  • 细节

    • 设计了一个多尺度的基于 kernel 的神经网络来进行任意的风格迁移并保证时间上的一致性

      Untitled%201.png

      • SKP
        • 首先使用 CNN (VGG) 来提取多个尺度的二维图片上的特征
        • 然后选用 channel-wise 的均值和方差(实际网络中用的是标准差)进行拼接,得到一个特征向量
        • 将这个向量通过一系列全连接层映射到一个 kernel 上
      • VolAE
        • 经典的 encoder-decoder 结构,中间带有 skip 连接
        • 在 decode 阶段将前面 SKP 得到的 kernel 插入进来,来将二维的风格加入到生成的体积中
    • 引入了一个密度感知的 instance normalization 层,来避免色彩偏移

      • 色彩偏移 / 色差

      • 为什么会出现色彩偏移?

        • 在一些场景里(比如烟雾模拟),voxel 的分布非常不均匀,一些稀疏却非常致密的 voxel 会导致训练困难,进而产生色彩偏移
      • 解决

        • 使用 DAIN (density-aware instance normalization) 来给这一部分的 voxel 更大的权重

        • 加入了一个平滑的密度 mask: $\textbf{m} = 1 - \text{exp}(-\lambda\textbf{V}_\sigma^2)$

        • 于是均值和方差变为:

          Untitled%202.png

      • 效果

        Untitled%203.png

    • 实现了一个分析性的可微体积渲染层,这样可以方便 loss 的计算

      • 分析性 → 简化模型

        • 假设

          1. 物体的相位函数是各项异性的,且只被环境光照亮
          2. 每个 pixel 上只发射一条光线,且只考虑一次散射
        • 简化模型

          1. ray marching 的 sample 是等距离的

          Untitled%204.png

          1. 每次 sampling 的辐射度都是从各向异性的相位方程中采样出来的

          Untitled

      • 光源使用环境光,这样可以渲染出比较均匀的体积,避免网络将点光源产生的阴影当作特征进行学习

      • 不使用通用的 DTRT 框架,因为太慢了

    • Loss

      • Gran Loss 不好
        • 收敛慢
        • 有 artifacts
      • 用 Histogram Loss
      • 另外加上了 total variation loss 和 temporal loss,前者是正则化项,来增强空间平滑性,后者是时域上的平滑性

      Untitled

6. 实验是如何设计的?

  1. 使用 pytorch 实现了整个网络,并与以前的方法进行对比
  2. 对比不同的 loss function 的效果
  3. 对比不同的 kernel、views 的效果
  4. 尝试各种场景的 demo

7. 实验是在什么样的数据集基础上运行的?

  1. volume 数据集
    • 使用 mantaflow 生成了大量体积数据集
    • simulate 100 groups of smokes with a resolution of 64 × 64 × 64
    • 20 * 128 x 128 x 128
      • 避免网络对低分辨率的体积过拟合
      • 增加鲁棒性
  2. style image 数据集
    • DTD 数据集

8. 实验结果能否有力地支持假设?

  1. 与传统方法对比是投票投出来的

    1. user study

    Untitled

    b. 不过确实,风格迁移不太好有非常量化的评价指标,毕竟不存在 ground truth

  2. loss 效果好

    1. histogram loss 最符合输入图片的色彩分布

      Untitled

    2. temporal loss

      加上之后可以消除 flicker

  3. 不同的 kernel

    Untitled

    作者对比了一大堆,但是毕竟我们也不知道 ground truth,所以其实只是呈现了一些不同的效果

  4. 训练所用的视角数量

    越多越好,符合直觉

    Untitled

  5. 其他 demo

    1. 通过调整 volume 的分辨率可以调整风格结构的尺寸
    2. 这套方法能够模拟玉石这种半透明材料
      1. 只要输入的风格图片是真实世界中的半透明材料上采集的即可
    3. 可以模拟动态的火焰

9. 这篇文章的贡献是什么?

  1. 提出了一个将颜色外观从二维图形转移到三维图形上的通用框架
  2. 设计了一个多尺度的基于 kernel 的神经网络来进行任意的风格迁移,并保证了时域上的一致性
  3. 引入了一个 DAIN 层,来避免色彩偏移
  4. 实现了一个简化的可微体积渲染层,方便 loss 的计算,提高训练效率

10. 下一步可以做什么?

  1. 缺少细节
    1. 比如毛发、纤维这种都还不行
    2. 因为直接使用的是均值和方差,可能需要补充更多的统计信息
  2. 没法对体积本身进行同时的风格迁移
    1. 尝试套用 TNST,但是效果并不是很好
    2. 需要探索一种联合迁移优化的方案