68、Learning Object-Compositional Neural Radi

简介

官网:https://zju3dv.github.io/object_nerf/
在这里插入图片描述
设计了一种新的双通路架构,其中场景分支编码场景几何和外观,而对象分支编码以可学习的对象激活码为条件的每个独立对象。为在严重杂乱的场景中生存训练,提出一种场景引导的训练策略,以解决遮挡区域的3D空间模糊性,并学习到每个物体的清晰边界。

实现过程

论文实现基于体素方法NSVF
在这里插入图片描述
场景分支旨在编码整个场景的几何形状和外观,在可编辑场景渲染中渲染周围背景,并协助对象分支识别遮挡区域,场景分支以空间坐标x为输入,插值后的场景体素以x处的 f s c n f_{scn} fscn和光线方向d为输入,输出场景的颜色 c s c n c_{scn} cscn和透明度 σ s c n σ_{scn} σscn
对象分支采用额外的对象体素特征 f o b j f_{obj} fobj(有助于拓宽学习分解能力,并且为所有对象共享)以及对象激活代码 l o b j l_{obj} lobj,以条件输出仅包含特定对象在其原始位置的颜色 c o b j c_{obj} cobj和透明度 σ o b j σ_{obj} σobj,其他所有内容都被删除。训练过程中将一堆打乱的对象激活码分配给训练射线,同时学习对多个对象进行编码,而不需要分别为每个对象进行训练

对象分支

对象辐射场应该只在对象占据的区域是不透明的,其他地方是透明的(即零不透明度),论文利用2D实例分割作为目标分支的监督信号。

假设在一个场景中有K个注释对象的训练过程,以及一个可学习的对象代码库 L = { l o b j k } L = \{ l^k_{obj}\} L={lobjk},批量训练集 N r N_r Nr 中的每条射线 r,我们选择一个对象 k 作为训练目标,并将对象激活码 l o b j k l^k_{obj} lobjk 分配给对象分支输入,最后得到渲染颜色 C ^ o b j k \hat{C}^k_{obj} C^objk,2D对象不透明度 O ^ ( r ) o b j k \hat{O}(r)^k_{obj} O^(r)objk
在这里插入图片描述
其中 a i = 1 − e x p ( − σ o b j j δ j ) a_i = 1 - exp(-\sigma_{obj_j}\delta_j) ai=1exp(σobjjδj),2D对象不透明度 O ^ ( r ) o b j k \hat{O}(r)^k_{obj} O^(r)objk以满足2D实例掩模,最小化到对应实例掩模M ®k的平方距离,同时最小化了带掩膜的渲染物体颜色和地面真实颜色之间的平方距离
在这里插入图片描述
w ( r ) k w(r)^k w(r)k是实例掩码的0到1信号之间的平衡权重

场景引导、3D掩膜训练策略

在这里插入图片描述

在现实世界的场景扫描中,目标对象经常被其他前景遮挡,从而产生不完整的实例掩码,直接使用这些不完整的掩模作为监督可能会过度杀灭部分对象并学习破碎的辐射场,不能简单地忽视对空白区域的监督,否则模型将在无监督区域呈现意外的浮动。

场景引导:
利用场景分支的透射率来指导目标分支的偏差采样,称为场景引导,显著减少了遮挡区域内的点采样,减轻了对目标分支的错误监督

当目标对象经常被其他实例遮挡时,学习到的对象辐射度场仍然会受到影响,如上图中的d
在这里插入图片描述

3D掩膜:
采用3D保护掩模来停止应用于被遮挡区域的梯度,通过场景分支在线渲染场景深度 d s c n d_{scn} dscn,并以较小的距离 ε 沿相机方向轻微推动它,利用3D保护模板来保护被遮挡的部分,该模板是通过从比推送的场景深度 d s c n + ε d_{scn} + ε dscn+ε 更远的3D空间中减去可见实例空间来构建的。

在对象分支的训练过程中,显式地修剪3D保护掩模内的射线样本。

假设两个标注对象之间的距离通常大于ε,如果可以在没有任何遮挡的情况下查看目标对象,3D保护掩码将允许对对象和周围空间进行足够的点采样,因此实例监督信号将引导对象分支对目标对象进行编码,并消除其他一切,如果目标对象被遮挡,则遮挡区域的“空”信号的梯度将被遮挡,而可见区域仍然可以得到适当的监督

实验证明,3D保护掩模对ε的选择不敏感
在这里插入图片描述

loss

场景分支损失
在这里插入图片描述
总损失
在这里插入图片描述

场景编辑

在背景阶段,在修剪目标区域的点采样的同时,从场景分支中获取场景颜色和不透明度 { c s c n i , σ s c n i } i = 1 N \{c_{scn_i}, σ_{scn_i}\}^N_{i=1} {cscniσscni}i=1N,从而将原始物体从场景中移除,在对象阶段,对K个目标物体发射光线,并按照用户定义的操作将物体特定的颜色和不透明度 { c o b j i k , σ o b j i ∣ k } i = 1 N   K = 1 K \{c^k_{obj_i},σ^k_{obj_i|}\}^N_{i=1} \ ^K_{K=1} {cobjikσobjik}i=1N K=1K变换到所需的位置,按照光线方向的距离排序,聚合所有的不透明度和颜色,并使用积分规则渲染像素颜色
在这里插入图片描述

实验

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值