前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ICCV 2023 | 神经辐射场的参考导引可控修复

ICCV 2023 | 神经辐射场的参考导引可控修复

作者头像
用户1324186
发布2023-09-19 15:51:58
4060
发布2023-09-19 15:51:58
举报
文章被收录于专栏:媒矿工厂

作者:Ashkan Mirzaei, Tristan Aumentado-Armstrong 等 来源:ICCV 2023 论文题目:Reference-guided Controllable Inpainting of Neural Radiance Fields 论文链接:https://arxiv.org/abs/2304.09677 内容整理:王秋文

引言

长期以来,由于内容创建用途的广泛性,人们对编辑图像产生了浓厚的兴趣。与图像修复任务相对应的对象移除和插入是研究最多的编辑操作之一。当前的修复模型能够从概念上生成符合周围图像的内容,然而这些模型仅限于处理单个 2D 图像。本文的目标是在将这种模型应用于三维场景,在三维的编辑操作方面继续取得进展。相比于 2D 图像的修复,对三维场景进行修复需要考虑不同视角下的一致性。同时,基于 NeRF 的隐式神经表征方式使得直接基于几何理解编辑表征数据结构也是不可行的。一种解决方法是通过简单的像素对齐的损失或者是感知损失来约束神经辐射场进行填补,但这一做法不能满足填入与原场景有不同感知语义的新物体的需要。

本文使用了单个补全后的图像作为参考,从而避免了视角的不一致性,并提出了一种新的算法来解决单个图像作为参考所带来的距离参考视角较远位置的较差的视觉质量、视角依赖的影响以及被遮挡部分的问题。首先,为了对填补的区域进行几何层面的监督,作者使用了单目深度估计进行优化。此外,作者展示了如何从参考视角模拟非参考视角下的视角依赖外观。这实现了一种将非参考颜色(带有VDE)传播到 mask 的部分中的引导修复方法。最后,本文以视角一致的方式修复了被遮挡的外观和几何结构。

本文的主要贡献可以概括为:

  • 一种基于单参考的 3D 填补算法,可以避免距离参考视角较远的视角产生较差的质量
  • 一种统一的用于 mask 掉的区域和被遮挡的区域的重建监督的方法
  • 一种在没有多视图外观信息的情况下,在非参考视角下生成视角依赖的外观特征的方法
  • 与先前的工作相比获得了巨大的进步,不仅在新的修复后的视角的清晰度方面,而且在可控性方面,通过提供一张补全后的 2D 视角图像即可使用户能够将新的对象插入 3D 场景中

方法

本文设定的输入是

n

张图像,

\{I_i\}_{i=1}^n

,它们的相机变换矩阵

\{\Pi_i\}_{i=1}^n

,以及相应的进行编辑操作的 mask

\{M_i\}_{i=1}^n

,从而标出图中不想要的区域。假定有一个补全后的参考视角图像,

I_r

,其中

r\in\{1,2,\dots,N\}

,其中提供了用户希望可以在 3D 区域中修复的信息。

本文中对修补后的 NeRF 进行拟合的约束为:

L=L_{rec}^{unmasked}+\gamma_{depth}^{masked} L_{depth}^{masked}+\gamma_{rec}^{masked} L_{rec}^{masked}+\gamma_{do}L_{do}\quad(1)

其中,

L_{rec}^{unmasked},L_{depth}^{masked},L_{rec}^{masked},L_{do}

分别表示没有被 mask 掉的部分的外表损失,mask 掉的部分的几何损失,mask 掉的部分的视角依赖外观损失,被遮挡损失。

图1 本文方法整体框架示意图

监督参考视角的几何

首先,作者对 NeRF 模型

f_{\theta}

通过

N_{depth}

次迭代对没有 mask 的区域的像素进行监督,通过标准 NeRF 重建损失:

L_{rec}^{unmasked}=\mathbb{E}_{r\sim R_{unmasked}}||\hat{C}(r)-C_{GT}(r)||^2\quad(2)

其中,

R_{unmasked}

是在

\{I_i\odot(1-M_i)\}_{i=1}^n

中对应像素的光线的集合。

C_{GT}(r)

是光线

r

的真实颜色。当没有被 mask 掉的部分的几何和外观开始收敛的时候,被mask 掉的区域仍然保持没有拟合的状态。对于 mask 掉的区域仅能在

I_r

获得重建的指引,然而单一的图像只能提供外观信息,而无法直接提供几何监督。

为了解决上面所提到的问题,作者提出使用单目深度估计模型

\tilde{D}(\cdot)

来预测参考视角的未标定视差

\tilde{D}_r=\tilde{D}(I_r)

,并指导几何。然而,预测的参考深度

D^{-1}_r

在不同的坐标系中是非度量的,并且存在不准确的结果。因此,在使用

\tilde{D}_r\odot M_r

监督 NeRF 的视差之前,作者首先将

\tilde{D}_r

与渲染 NeRF 参考视角的视差

\hat{D}_r

。尽管在 mask 的区域是欠拟合的,

\hat{D}_r

中没有被 mask 掉的部分有着可靠的依据。

然而,并非所有未被 mask 的像素都同样重要:靠近 mask 边界的区域需要紧密对齐,以确保 mask 的边缘在最终结果中可见的程度最小,而远离 mask 的深度并不需要完全对齐,因为只有被 mask 掉的像素才会接受具有对齐参考视差的监督。因此,作者提出以加权的方式对齐未 mask 掉的像素上的参考视图的

\tilde{D}_r

\hat{D}_r

,从而为更靠近 mask 的点赋予更高的权重。

传统来说,2.5D 的视差图

\tilde{D}_r

一般通过尺度

a_0

和偏置

a_1

进行仿射变换得到

a_0 \tilde{D}_r+a_1 \mathbb{1}_{HW}

,其中

H

W

是图像的尺寸。此外,作者还进一步地增加了对齐的程度,以在 mask 边缘处具有更紧密的对齐。作者使用了两个额外的尺寸为

H\times W

的矩阵

\mathcal{H}

\mathcal{V}

,则对齐后的预测深度为:

D_r=a_0\tilde{D}_r+a_1 \mathbb{1}_{HW}+a_2\mathcal{H}+a_3\mathcal{V}\quad(3)

由于更靠近 mask 的像素对填补的应用更重要,作者使用如下的加权的目标函数来求解系数

a_i

F_{wf}(\{a_i\}_i)=\sum_{p\in I_r\odot(1-M_r)}\omega(p)[D_r(p)-\hat{D}_r(p)]^2\quad(4)

其中,

p

是源视角中没有被 mask 掉的像素,而

\omega(p)

p

的权重,是该像素与 mask 中心点的距离的倒数。

虽然

D_r

的配准有了显著的提升,但在

M_r

的边缘附近,错误的配准仍然存在。因此,作者进行了额外的优化步骤,在该步骤中,作者纠正

D_r

以促进 mask 周围更平滑,从而产生

D_r^{smooth}

在配准和平滑后,

D_r^{smooth}\odot M_r

通过如下方式对参考视图

I_r

的 mask 区域进行监督:

L_{depth}^{masked}=\mathbb{E}_{r'\in R_{masked}}[\hat{D_r(r')-D_r^{smooth}(r')}]^2\quad(5)

基于视角替代的视角依赖效果

既然修复区域已经在几何上受到深度损失

L_{depth}^{masked}

的影响,则也可以用

I_r

来监督掩蔽区域中的 NeRF 外观。作者将密度相关的的梯度分离了出来,以防止颜色损失影响场景的几何结构。然而,仅来自

I_r

的 mask 区域内的监督并不能考虑视角依赖的变化。为了弥补这一点,作者提出了一种方法,通过校正参考颜色以匹配其他视角下的周围环境,进而从非参考视点向 mask 区域添加视图依赖的效果。在这一部分,主要考虑一个目标视角

I_t\in\{I_i\}_{i=1}^n

图2 视角替代过程示意图

视角替代

本文的视角替代技术可以从参考视角观看场景,并将得到的点的颜色进行转换从而渲染得到目标视角下的颜色。直观上说,这使得模型可以为参考视角创建出多种版本,其中每一种对应着一个目标视角下的视角依赖效果。

图 2 展示了本文所提出的视角替代方法的流过程。考虑一个参考视角下的像素

p

,在标准的 NeRF 渲染过程中,光线经过像素

p

从相机原点

o_r

投射在场景中,可以被参数化为

x(t)=o_r+td_r^p

其中

d_r^p\in\mathbb{S}^2

是光线的方向。接着,在光线上采样出了着色点,并将着色点坐标与光线方向输入到 NeRF 模型中获得点的体密度

\sigma(x_i)

和在参考视角下的颜色

c(x_i,d_r^p)

。然而,除了在参考视角下的着色点颜色之外,还需要得到目标视角下对应着色点的颜色。因此,作者将视角方向

d_r^p

替换成了目标视角下的方向

d_{t,i}^p

,这一目标方向通过连接目标相机原点以及着色点得到:

d_{t,i}^p=(x_i-o_t)/||x_i-o_t||_2\quad(6)

作者在参考视角下对替换了视角方向后推理得到的结果进行体渲染,从而得到了渲染图像

I_{r,t}

。这样的图像拥有参考视角的几何结构,同时具有目标视角的外观。

残差的双边求解器

此时,在对目标视角的 mask 的区域进行监督之前,经过视角替换渲染得到的图像

I_{r,t}

中的 mask 的区域是没有经过拟合的,但是其中没有被 mask 的部分得到的颜色是有意义的。残差

\Delta_t=I_r-I_{r,t}

测量的呃事参考颜色与目标颜色间的差别。作者希望使用mask 外的残差值来对 mask 内的残差的合理值进行预测。作者基于残差在参考视角图像中没有边缘的区域不能存在高频的变化这一假设,也就是说,如果给定一个参考图像中没有强对比度图案的区域,我们应该希望残差在这一部分只有较为平滑的变化。因此,双边解算器

\mathcal{B}

,是修复 mask 内部残差的直观方法,因为它能够直接使用

I_r

的边缘进行引导。简言之,

\mathcal{B}

在额外 RGB 参考图像的结构的指导下,能够优化图像信号,平衡置信加权的重建保真度和双侧平滑度。这类似于在参考的指导下,从 mask 外部的区域扩散像素值到 mask 内。在本文的情况下,

\mathcal{B}

使用

I_r

作为参考输入(通过双边仿射进行边缘引导),同时使用

\Delta_t

作为目标(仅在 mask 外有效)。作者将 mask 外的置信度设置为最大可能值(

c_{\max}

),在 mask 内设为零,然后运行

\mathcal{B}

来获得修复残差:

\text{res}_t=\mathcal{B}(I_r,I_r-I_{r,t},(1-M_r)\times c_{\max})\quad(7)

然后,目标颜色被获得为

\hat{I}_{r,t}=I_r-\text{res}_t

。需要注意的是,

\text{res}_t

在 mask 外等于

\Delta_t

,只需要遮罩内的值进行监督。为了确保这种监督随着 NeRF 的变化而保持更新,每经过

N_{bilateral}

次迭代中,都会重新渲染视图替换的图像,运行

\mathcal{B}

,并计算

\hat{I}_{r,j}~~\forall j\in[1,n]

通过参考视角进行监督

在进行视角替换和双边求解器修补之后,可以得到

\{\hat{I}_{r,j}\}_{j=1}^n

。需要注意的是这样的图像是在参考视角下观察场景,但具有目标视角颜色的。作者利用这些经过双边求解器得到的颜色,来监督目标视角下在 mask 内的外观。为了实现这一目标,作者首先渲染出每个视角替换图像中被 mask 的部分,接着通过比较其与双边求解器得到的图像计算重建损失:

L_{rec}^{masked}=\frac{1}{n}\sum_{t=1}^n \mathbb{E}_{r'\sim \mathcal{R}_{masked}^r}||I_{r,t}(r')-\hat{I}_{r,t}(r')||^2\quad(8)

本文的视角依赖效果部分如图 3 所示。

图3 视角依赖效果部分示意图

被遮挡区域

虽然基于单参考图像进行修复可以防止视图不一致的修复所带来的问题,但它在修复区域中缺少多视角的信息。例如,当将一只鸭子插入场景中时,由于遮挡,从另一个角度观看场景自然会发现鸭子及其周围的新内容。本文提供了一种构建这些缺失细节的方法。

图4 遮挡处理方法的流程示意图

给定修复后的参考视图

(I_r,\Pi_r)

和目标图像

(I_t,\Pi_t)

,作者首先识别出 mask

M_t

I_t

中被遮挡的像素。给定参考视差图

D_r

,作者将每个像素

p_i\in I_r

逆投影到 3D 场景中,然后将其重新投影到

I_t

中,像素位置

p_{t,i}

I_t

中没有接收到投影点的每个掩码像素都是被遮挡的;即

Ir

中没有相应的像素来提供场景信息。这样就能够获得一个与它相关的被遮挡的 mask

\Gamma_t

。接下来,需要填补与

\Pi_t

相关的NeRF渲染,被

\Gamma_t

mask 得到:

\hat{I}^{(o)}_t=\text{Inp}(\hat{I}_t,\Gamma_t)

。最后,我们渲染视差图像

\hat{D}_t

,并填充它:

\hat{D}_t^{(o)}=\mathcal{B}(\hat{I}_t^{(o)},\hat{D}_t,\Gamma_t)

。同样的,作者在每

N_{do}

次迭代中重新计算

\hat{I}_t^{(o)}

以及

\hat{D}_t^{(o)}

。为了拟合,作者使用从

\Pi_t

中得到的遮挡像素的光线集

R_{do}

。在一组摄像机

T

上,然后使用一下的loss进行训练:

L_{do}=\mathbb{E}_{t\sim T,r\sim R_{do,t}}[||\hat{C}(r)+C_t(r)||^2+\epsilon(r)]\quad(9)

其中,

\epsilon(r)=\eta_{do}[\hat{D}(r)-D_t(r)]^2

实验

在本文中,作者使用前向场景数据进行实验。在定量评估中,使用了 SPIn-NeRF 数据集进行测试;在定性评估中,使用 SPIn-NeRF 和 LLFF 数据集进行比较。在定量实验中的结果如图 5 和图 6 所示。

图5 在全参考条件下的定量比较表

图6 在无参考条件下的定量比较表

可以看出本文的方法结合 stable diffusion 在有参考或者无参考的情况下均有最好的表现。定性的渲染比较结果以及场景的自由视结果分别如图 7 以及图 8 所示,可以看出本文修补后的NeRF可以渲染相对自然的图像。

图7 移除物体后修复的定性渲染比较

图8 移除物体后修复的自由视结果展示

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-14 15:53,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 方法
    • 监督参考视角的几何
      • 基于视角替代的视角依赖效果
        • 视角替代
        • 残差的双边求解器
        • 通过参考视角进行监督
      • 被遮挡区域
      • 实验
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档