OR-NeRF论文笔记

OR-NeRF论文笔记

文章目录

  • OR-NeRF论文笔记
  • 论文概述
  • Abstract
  • 1 Introduction
  • 2 Related Work
  • 3 Background
  • 4 Method
    • 4.1 Multiview Segmentation
    • 4.2 Scene Object Removal
  • 5 Experiments
    • Datasets
    • Metrics
    • Multiview Segmentation
    • Scene Object Removal
  • 6 Conclusion

论文概述

目的:与RO-NeRF的任务一致,均为3d object removal任务。但他支持单个视图上通过用户给的点或文本提示移除3D物体。

方法:通过三维几何和稀疏对应关系将用户注释扩散到所有视图,从而确保了三维一致性并减轻了处理负担。然后,应用最新的二维分割模型 Segment-Anything (SAM) 来预测mask,并使用二维内绘模型(LaMa)来生成颜色监督。最后,我们的算法应用了深度监督和感知损失,以保持对象移除后几何和外观的一致性。

Abstract

用于新视图合成的神经辐射场(Neural Radiance Fields,NeRF)的出现提高了人们对三维场景编辑的兴趣。编辑的一项基本任务是从场景中移除目标,同时确保视觉合理性和多视图一致性。然而,当前的方法面临着一些挑战,如耗时的对象标记、移除特定目标的能力有限以及移除后的渲染质量受到影响。本文提出了一种名为 ORNeRF 的新型物体移除pipeline,它能在单个视图上通过用户给出的点或文本提示移除三维场景中的物体,与之前的作品相比,能在更短的时间内实现更好的性能。我们的方法通过三维几何和稀疏对应关系将用户注释扩散到所有视图,从而确保了三维一致性并减轻了处理负担。然后,应用最新的二维分割模型 Segment-Anything (SAM) 来预测mask,并使用二维内绘模型(lama)来生成颜色监督。最后,我们的算法应用了深度监督和感知损失,以保持对象移除后几何和外观的一致性。实验结果表明,与之前的研究相比,我们的方法能在更短的时间内实现更好的编辑质量,同时兼顾质量和数量。

1 Introduction

NeRF在重建三维场景方面取得重大成果,最近研究将其功能扩展到三维场景编辑方面,其中一项重要的编辑操作是从三维场景中移除物体。这项任务的实际应用面临一些挑战,主要障碍在于如何准确定位不需要的物体,我们往往很容易对一张图片识别出不需要的物体,但要求用户对每个视图都进行标注是不切实际的。此外,删除后的多视图一致性和内容的合理性也是一个难题。

一些工作尝试解决上述问题,但结果并不令人满意。例如Object-NeRF 和 ObjectSDF对NeRF训练 分解成background和object,从而实现对特定的object进行渲染,然而,由于缺失对移除部分的监督,从而无法确保完成一个合理移除区域。NeRF-Object-Removal(RO-NeRF)和SPIn-NeRF使用了LaMa生成color和depth的先验知识,然后根据这些先验直接进行重建NeRF。虽然这两个方法对编辑质量得到提升,但是,RO-NeRF需要所有视角下的mask作为输入;而SPIn-NeRF使用一系列分割预处理,甚至涉及到网络训练,花大量时间为每个场景生成masks。DFFs应用了预训练的语言模型支持text-prompt编辑,通过从语言模型中提取出的向量特征在训练NeRF中对齐,可以消除对masks的依赖。但是,如果预训练的目标检测器效果不好,它将无法定位移除的区域。

我们提出了一个新的pipeline叫OR-NeRF,支持对单个图像的点和文本prompt,从3D场景中提出物体。优点在于多视角分割任务耗时更少,移除物体任务的效果优于以往方法。具体方法如下:

  1. Points prompt on a single view to other views: a point projection strategy by using COLMAP sparse reconstruction to find correspondences from 2D points to 3D sparse point cloud, and further projects 3D points to all 2D images with camera parameters.
  2. Use SAM to predict masks.
  3. Use 2D inppainting model LaMa to get color priors for the removal area.
  4. Scene object removal algorithm using TensoRF(backbone) with depth supervision and perceptual loss.

TensoRF is a SOTA model for improving rendering quality considering time and performace trade-off.

Time consuming: Generated at approximately two frames per second on an RTX 3090 GPU.

我们在多样的数据集上测试了多视角分割场景物体移除的效果。

Contributions:

  1. A novel pipeline for efficient object removal from 3D scenes, allowing for both points and text prompts on a single image.
  2. Experimental results demonstrate that our method achieves better editing quality and requires less time for multiview segmentation than previous methods, as evidenced by both quality and quantity analyses.

在这里插入图片描述

2 Related Work

  1. Multiview Segmentation

2D分割被研究的很透彻,但3D场景下的分割往往被忽视,尽管它像3D编辑这样的下游任务有着关键作用。

  • 有几个自监督方法被提出,但他们常常产生不准确的masks,很难应对复杂场景。
  • 为了应对这些挑战,半监督策略仅需部分标注,或用户提供一些合理的prompt。
  • Semantic NeRF传播这部分labels给稠密语义分割,利用一些in-place就地标注,预测语义label并渲染。
  • NeRF和SPIn-NeRF进一步创建了一个完整的pipeline,利用一张图上的points prompt在所有视角生成Masks。它们利用了one-shot分割去预测一个初始的mask,再根据video分割去生成所有视角的masks,通过视图像序列为一个video。最后,他们利用semantic NeRF对masks进行refine。
  • 然而,以上提到的方法需要训练网络,消耗过多资源,无法保证一个准确的mask,复杂的框架往往会积累错误
  1. Scene Object Removal

NeRF有很多3D场景编辑的任务,往往聚焦在多种多样的编辑类型,包括了纹理编辑、几何编辑、物体-中心编辑,如移除物体、甚至是多种操纵方式。

  • Object-NeRF和ObjSDF
    • 分解了NeRF training为背景和物体两个分支,支持对特定的物体进行渲染(通过设定物体ID)。
    • 但是他们会在移除区域生成黑色空洞,因为在训练过程中没有对删除部分的监督/先验知识。
  • NeRF-In [37], NeRF-ObjectRemoval [9], and SPIn-NeRF
    • 利用了2D inpainting方法LaMa获取移除部分的先验知识,在删除物体后直接由这些先验知识重建场景。
    • 虽然实现了更好的渲染效果,但这些方法需要较高的preconditions,例如标注/生成所有视角的masks,这需要依赖昂贵的时间和硬件资源。
  • Combine pre-trained language models
    • 支持text-prompt的编辑方式,因此不对masks有需求。
    • 但是,移除区域的渲染效果很差,因为没有算法学习删除后的pixel value。

3 Background

  1. NeRF
  2. SPIn-NeRF
    1. 用户对一个视角标注一组点。
    2. 结合一系列系列分割方法获得所有视角下的masks。
    3. 使用2D inpainting model LaMa进行mask生成color和depth的先验。
    4. 删除物体后的场景将由改进后的NeRF(depth监督+感知loss)与这些先验直接对其重建。

4 Method

4.1 Multiview Segmentation

[通俗易懂]

在这里插入图片描述

4.2 Scene Object Removal

在这里插入图片描述

  • Color Loss
    • 在这里插入图片描述

    • R表示训练的批量大小。两个C (r) 分别是GT和rendered的RGB图像的pixels。

  • Depth Loss(geometric consistency
    • 在这里插入图片描述

    • 在这里插入图片描述

    • z表示从当前3D位置到相机位置的距离。

  • Perceptual Loss(exhibit inconsistency)
    • 在这里插入图片描述

    • 聚焦于masked区域的perceptual loss。

5 Experiments

Datasets

  • 从不同的3D重建数据集中选择12个场景,包括了NeRF LLFF data, IBRNet data [51], and LLFF real-world data。场景选择时包含了不同类型的场景和不同的移除操作类型(例如slogans的灵活度很高)。
  • 由于3D重建数据集中不包含物体masks的GT,我们将SPIn-NeRF数据集合并,它包含了人工打标的物体masks以及物体移除后的场景。
  • 对于多视角分割的评估,利用了SPIn-NeRF数据集中所有的10个场景。
  • 对于场景物体移除的评估,利用了SPIn-NeRF数据集中的8个场景(删除两个重复场景,确保物体的布局多样化)

Metrics

  1. 多视图分割任务的指标
    1. Acc(pixel-wise accuracy):预测类别正确的像素数占总像素数的比例。
    2. IoU(intersection over union):交并比。
  2. 3D场景物体移除任务的指标(与移除后的GT对比)
    1. PSNR(peak signalto-noise ratio):峰值信噪比
    2. LPIPS(learned perceptual image patch similarity):感知图像块相似性
    3. FID(Frechet inception distance):FID 分数

Multiview Segmentation

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

Scene Object Removal

  • dir:直接用LaMa先验训练NeRF
  • dp:部分深度
  • da:全部深度
  • lpips:全部深度+使用感知损失
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6 Conclusion

  1. 针对3D场景下的物体移除任务,提出了一个新的pipeline OR-NeRF,支持对单个视角的点/文本prompt。
  2. 强调了方法在渲染质量和时间消耗上的优势。
  3. 缺点是inpainting model的能力,更鲁棒的2D图像修复技术,例如基于diffusion的方法能够实现更合理的物体修复结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【软件工程】漫谈增量过程模型:软件开发的逐步之道

🍎个人博客:个人主页 🏆个人专栏: 软件工程 ⛳️ 功不唐捐,玉汝于成 目录 前言: 正文 增量过程模型(Incremental Process Model) 主要特点和阶段: 优点&#xff1…

TCP 协议为什么要设计三次握手 TCP 协议,是一种可靠的,基于字节流的,面向连接的传输层协议。

文章目录 TCP 协议为什么要设计三次握手TCP 协议,是一种可靠的,基于字节流的,面向连接的传输层协议。TCP 通信双方的数据传输是通过字节流来实现传输的客户端向服务端发送连接请求并携带同步序列号 SYN。 今天我们来谈谈tcp的三次握手 TCP 协…

Vue2+element-ui 实现select选择器结合Tree树形控件实现下拉树效果

效果&#xff1a; DOM部分 &#xff1a; // 设置el-option隐藏的下拉选项&#xff0c;选项显示的是汉字label&#xff0c;值是value // 如果不设置一个下拉选项&#xff0c;下面的树形组件将无法正常使用 <el-form-item label"报警区域" prop"monitorId"…

如何让python在手机上运行,python程序在手机上运行

大家好&#xff0c;给大家分享一下python怎么在手机上运行爱心代码&#xff0c;很多人还不知道这一点。下面详细解释一下。现在让我们来看看&#xff01; 1. 写在前面的话 天天都在PC端运行Python代码的我&#xff0c;今天突然灵光一现&#xff0c;想着是不是能够在移动端运行P…

CSS 缩减顶部

<template><!-- mouseenter"startAnimation" 表示在鼠标进入元素时触发 startAnimation 方法。mouseleave"stopAnimation" 表示在鼠标离开元素时触发 stopAnimation 方法。 --><!-- 容器元素 --><div class"container" mou…

通用搜索的工作原理

了解 Google 的通用搜索结果为何如此重要&#xff0c;通用搜索的发展方向&#xff0c;以及它对您意味着什么。 让我们从回答一个显而易见的问题开始&#xff1a; 什么是通用搜索&#xff1f; 网络上有一些通用搜索的定义&#xff0c;但我更喜欢从马的嘴里听到这样的事情。 …

与擎创科技共建一体化“数智”运维体系,实现数字化转型

小窗滴滴小编获取最新版公司简介 前言&#xff1a; 哈喽大家好&#xff0c;最近分享的互联网IT热讯大家都挺喜欢&#xff0c;小编看着数据着实开心&#xff0c;感谢大家支持&#xff0c;小编会继续给大家推送。 新岁即将启封&#xff0c;我们一年一期的运维干货年末大讲也要…

【halcon深度学习】dev_display_dl_data 移植到C# 上篇

效果展示 前言 在研究halcon深度学习的时候,会发现halcon的例程里面用到了大量的二次封装库函数。这些库函数内部也是由基础的算子组成。我们在halcon的开发环境里面用的很爽,但是一旦要在C#中使用,就会报错。 一开始,我想避开这个移植过程,直接使用halcon引擎(HDevEngi…

深入Mybatis数据源

数据源是持久层框架中最核心的组件之一&#xff0c;在实际工作中比较常见的数据源有 C3P0、Apache Common DBCP、Proxool 等。作为一款成熟的持久化框架&#xff0c;MyBatis 不仅自己提供了一套数据源实现&#xff0c;而且还能够方便地集成第三方数据源。 javax.sql.DataSourc…

C++系列-第1章顺序结构-3-输出类cout

C系列-第1章顺序结构-3-输出类cout 在线练习&#xff1a; http://noi.openjudge.cn/ https://www.luogu.com.cn/ 总结 本文是C系列博客&#xff0c;主要讲述输出类cout的用法 cout介绍与基本用法 在C中&#xff0c;cout 是用于输出&#xff08;打印&#xff09;数据的工具&…

文华财经鬼谷数据期货量化分析系统指标公式

鬼谷数据量化主图源码 安装流程——打开文华财经软件——右上角指标管理器——新建指标——复制源码——安装成功 鬼谷数据主图源码 安装流程——打开文华财经软件——右上角指标管理器——新建指标——复制源码——安装成功文华财经期货软件擒龙量化主图指标公式HH:HHV(HIGH…

系列四、Eureka自我保护

一、Eureka自我保护 1.1、故障现象 保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护。一旦进入保护模式&#xff0c;Eureka Server将会尝试保护其服务注册表中的信息&#xff0c;不再删除服务注册表中的数据&#xff0c;也就是不会注销任何微服务。如…

交叉编译aarch64架构支持openssl的curl、libcurl

本文档旨在指导读者在x86_64平台上交叉编译curl和openssl库以支持aarch64架构。在开始之前&#xff0c;请确保您的系统环境已正确配置。 1. 系统环境准备 系统是基于Ubuntu 20.04 LTS&#xff0c;高版本可能会有问题。首页&#xff0c;安装必要的开发工具和库文件。打开终端并…

【C++拷贝构造函数】动态分配与成员对象

系列文章目录 &#x1f308;座右铭&#x1f308;&#xff1a;人的一生这么长、你凭什么用短短的几年去衡量自己的一生&#xff01; &#x1f495;个人主页:清灵白羽 漾情天殇_计算机底层原理,深度解析C,自顶向下看Java-CSDN博客 目录 系列文章目录 一、拷贝构造函数是什么&am…

Factory Method工厂模式(对象创建)

Factory Method&#xff08;对象创建&#xff09; 链接&#xff1a;工厂模式实例代码 解析 目的 在软件系统中&#xff0c;经常面临着创建对象的工作&#xff1b;由于需求的变化&#xff0c;需要创建的对象的具体类型经常变化。 如何应对这种变化&#xff1f;如何绕过常规的…

Django(四)

1.数据库操作 MySQL数据库 pymysql import pymysql# 1.连接MySQL conn pymysql.connect(host"127.0.0.1", port3306, userroot, passwd"root123", charsetutf8, dbunicom) cursor conn.cursor(cursorpymysql.cursors.DictCursor)# 2.发送指令 cursor.…

《整机柜服务器通用规范》由OCTC正式发布!浪潮信息牵头编制

近日&#xff0c;中国电子工业标准化技术协会开放计算标准工作委员会&#xff08;OCTC&#xff09;正式批准发布了《整机柜服务器通用规范》&#xff0c;该标准由浪潮信息牵头&#xff0c;中国工商银行、中国质量认证中心、英特尔、中国计量科学研究院等十余家单位联合编制&…

SLAM PnP问题以及相关基础知识

目标泛函 目标泛函是在优化问题中使用的一种数学工具&#xff0c;目标泛函是一个函数&#xff0c;它将一个或多个函数映射到一个实数。它常用于描述需要最小化或最大化的函数。在优化问题中&#xff0c;我们通常希望找到使得某个特定函数取得最大值或最小值的变量值。目标泛函…

Java—Throwing Exceptions

一、指定方法引发的异常 上一节展示了如何为ListOfNumbers类中的writeList&#xff08;&#xff09;方法编写异常处理程序。有时&#xff0c;代码捕获可能在其中发生的异常是适当的。然而&#xff0c;在其他情况下&#xff0c;最好让调用堆栈更上层的方法处理该异常。例如&…

51系列--数码管显示的4X4矩阵键盘设计

本文介绍基于51单片机的4X4矩阵键盘数码管显示设计&#xff08;完整Proteus仿真源文件及C代码见文末链接&#xff09; 一、系统及功能介绍 本设计主控芯片选用51单片机&#xff0c;主要实现矩阵键盘对应按键键值在数码管上显示出来&#xff0c;矩阵键盘是4X4共计16位按键&…