• SinNerf理解和效果


    SinNerf 解决的问题

    该方法主要解决的问题是: 现有都使用多张照片来进行nerf 表示的学习,这篇文章的话,主要是想使用一张单视角的照片来Nerf表示的学习。通过从单张照片中得到的伪标签以半监督的形式来约束学习到的nerf表示。

    方法和结构

    具体的,该方式使用了两种伪标签,通过image wraping的方式重投影reference view 和 unseen view之间深度。这样做可以用来约束辐射场的几何连续性。第二个伪标签就是主要关注不可见views的语义质量。这里对看不见的views的约束是非常重要的。因为如果没有多视角的话,Nerf是没有能力学习潜在的几何形状的。
    这篇文章讲的是将可见的这一个view propagates到 看不见的view上。具体什么意思? 我的理解是就是,假设有50个相机对着一个物体,这些相机的位姿,内外参都是知道的,只是只有一个相机是有图像,其他的相机都没有图像。有图像的这一个相机就是reference view, 没有图像的就是unseen views。因为相机和相机的关系是知道的,可以通过image wraping,根据现有的reference view 和相机之间关系,去推算那些unseen view的深度。这些深度就作为unseen views的一个几何伪标签。本文还是用inverse deoth smoothness loss 去regularize那些因为occlusion而导致的预估深度不准确的情况。这个可以理解成是像素值在x位置的拉普拉斯。类似的还将unseen view 重新投影会reference views 来促进几何连续性。

    除了几何约束之外,还有一个语义约束。 这个语义约束由两部分组成,第一分部是叫local texture guidence,第二部分是global texture gudiance。 local texture guidence就是使用一个类似gan-based拟念。Nerf出来的照片当做是假的照片,并将reference images 变成小Patch, 然后把这些看成是real images。对于所谓的 global texture gudiance,直接是使用DINO-ViT 来提取reference view和unseen view的features,然后最小化他们之间的L2 distance。

    自己训练的效果

    因为笔者本地是只有RTX 4070, 所以按照它github上的指示调小了patch size 以及将precision 调整到了16。这些都会影响最终的效果。
    在这里插入图片描述

  • 相关阅读:
    kubernetes深入理解Pod对象之调度篇
    声网赵斌:RTE 体验提升,新一代 Killer App 将成为现实丨RTE 2022
    Arduino开发实例-DIY风速测量及显示
    Git Commit Message规范
    计算机毕业设计SSM大学体育馆预约系统【附源码数据库】
    神经网络重建治疗仪原理,神经网络修复视频教程
    redis 哨兵集群搭建
    GBASE 8C——SQL参考6 sql语法(11)
    靶机 DC-2
    基础springboot扫描讲解
  • 原文地址:https://blog.csdn.net/weixin_52668444/article/details/139727373