Instruct-NeRF2NeRF: Editing 3D Scenes with Instructions

2023. 9. 29. 08:31View Synthesis

Instruct-NeRF2NeRF: Editing 3D Scenes with Instructions

 

Ayaan Haque, Matthew Tancik, Alexei A. Efros, Aleksander Holynski, Angjoo Kanazawa

 

Abstract

텍스트 명령으로 NeRF 장면을 편집하는 방법을 제안합니다.

장면의 NeRF와 이를 재구성하는 데 사용된 이미지 모음을 고려할 때, 우리의 방법은 이미지 조건 diffusion 모델(InstructPix2Pix)을 사용하여 기본 장면을 최적화하면서 입력 이미지를 반복 편집하여 편집 명령을 존중하는 최적화된 3D 장면을 생성합니다.

우리는 제안된 방법이 대규모의 실제 장면을 편집할 수 있으며 이전 작업보다 더 현실적이고 타겟화된 편집을 수행할 수 있음을 보여줍니다.

 

 

1. Introduction

효율적인 신경 3D 재구성 기술의 등장으로 실제 3D 장면의 사실적인 디지털 표현을 포착하는 것이 그 어느 때보다 쉬워졌습니다.

과정은 간단합니다: 다양한 시점에서 장면의 이미지 모음을 캡처하고, 카메라 파라미터를 재구성하고, 포즈된 이미지를 사용하여 Neural Radiance Field를 최적화합니다 [26].

사용하기 쉽기 때문에 캡처된 3D 콘텐츠가 수동으로 생성된 자산의 전통적인 프로세스를 점진적으로 대체할 것으로 기대합니다.

불행하게도, 실제 장면을 3D 표현으로 변환하기 위한 파이프라인은 비교적 성숙하고 액세스 가능하지만, 3D 자산의 생성을 위해 필요한 다른 많은 도구(예를 들어, 3D 장면 편집에 필요한 도구)는 개발되지 않은 상태로 남아 있습니다.

 

3D 모델을 편집하기 위한 전통적인 과정은 주어진 대상을 수동으로 조각하고, 압출하고, 재-텍스처링하기 위해 전문화된 도구와 수년간의 학습을 포함합니다.

이 과정은 종종 명시적인 표면이 없는 신경 표현의 출현과 함께 더욱 더 관여합니다.

이는 3D 표현의 현대 시대를 위해 설계된 3D 편집 접근 방식, 특히 캡처 기술 자체와 유사하게 접근 가능한 접근 방식의 필요성을 더욱 동기 부여합니다.

그림 1: 명령어로 3D 장면 편집. 텍스트 기반 명령어를 사용하여 NeRF 장면을 일관성 있게 3D 편집하는 방법인 Instruct-NeRF2NeRF를 제안합니다. 우리의 방법은 로컬 및 전역 장면 편집의 다양한 컬렉션을 달성할 수 있습니다.

이를 위해 텍스트 명령만 입력하면 되는 3D NeRF 장면 편집 방법인 Instruct-NeRF2NeRF를 제안합니다.

우리의 접근 방식은 미리 캡처된 3D 장면을 기반으로 작동하며 결과 편집이 3D 일관된 방식으로 반영되도록 보장합니다.

예를 들어, 그림 1(왼쪽)에 표시된 사람의 3D 장면 캡처가 주어지면 "Give him a cowboy hat" 또는 "Turn him into Albert Einstein"와 같은 유연하고 표현적인 텍스트 명령을 사용하여 다양한 편집을 가능하게 할 수 있습니다.

우리의 접근 방식은 일상적인 사용자가 3D 장면 편집에 접근할 수 있고 직관적일 수 있도록 합니다.

 

3D 생성 모델이 존재하지만 이러한 모델을 규모에 맞게 학습하는 데 필요한 데이터 소스는 여전히 제한적입니다.

따라서 대신 2D diffusion 모델에서 모양과 외관 priors를 추출하기로 선택합니다.

구체적으로, 우리는 명령 기반 2D 이미지 편집을 가능하게 하는 최신 이미지 조건 diffusion 모델인 InstructPix2Pix[2]를 사용합니다.

불행히도 재구성된 NeRF에서 렌더링된 개별 이미지에 이 모델을 적용하면 시점 간에 일관성 없는 편집이 발생합니다.

이에 대한 해결책으로 DreamFusion[33]과 같은 최근 3D 생성 솔루션과 유사한 간단한 접근 방식을 고안했습니다.

Iterative Dataset Update (Iterative DU)라고 하는 기본 방법은 NeRF 입력 이미지의 "dataset"을 편집하고 편집된 이미지를 통합하기 위해 기본 3D 표현을 업데이트하는 것 사이를 번갈아 가며 수행합니다.

 

우리는 다양한 캡처된 NeRF 장면에 대한 접근 방식을 평가하여 DreamFusion [33]에서 제안된 score distillation sampling (SDS) loss의 나이브한 구현뿐만 아니라 방법의 ablate된 변형과 비교하여 설계 선택 사항을 검증합니다.

또한 동시 텍스트 기반 양식화 접근 방식에 대한 접근 방식을 정성적으로 비교합니다 [47].

우리의 방법이 사람, 객체 및 대규모 장면에 대해 광범위한 편집을 수행할 수 있음을 보여줍니다.

 

 

2. Related Work

Physical Editing of NeRFs

NeRF [26]은 보정된 사진에 의해 캡처된 장면의 사실적인 새로운 뷰를 생성하는 인기 있는 접근법이며 많은 후속 작업에서 확장되었습니다 [42].

그러나 NeRF를 편집하는 것은 근본적인 표현으로 인해 여전히 어려운 과제로 남아 있습니다.

한 가지 접근 방식은 최적화 프로세스에 물리 기반 귀납적 편향을 부과하여 재료 또는 장면 조명의 변경을 가능하게 하는 것입니다 [44, 1, 40, 27, 25].

또는 바운딩 박스 [30, 50]를 지정하여 공간 조작 및 기하학적 변형뿐만 아니라 다양한 객체 [52]의 쉬운 합성을 허용할 수 있습니다.

최근 연구인 ClimateNeRF [18]은 NeRF에서 대략적인 기하학을 추출하고 눈이나 홍수와 같은 날씨 변화를 적용하기 위해 물리적 시뮬레이션을 사용합니다.

대부분의 물리적 기반 편집은 재구성된 장면의 물리적 속성을 변경하거나 물리적 시뮬레이션을 수행하는 것을 중심으로 이루어집니다.

이 연구에서는 대신 임의의 창의적 편집을 활성화하는 데 초점을 맞추고 있습니다.

 

Artistic Stylization of NeRFs

이미지 스타일화 [8, 7]의 문헌에 따라, 최근 연구들은 NeRF의 예술적인 3D 스타일화를 탐구하고 있습니다 [5, 12, 13, 28, 53, 49].

이러한 접근 방식은 장면의 3D 일관 스타일화를 얻을 수 있지만, 주로 전역 장면 외관 변화에 초점을 맞추고 일반적으로 참조 이미지가 필요합니다.

다른 연구들은 CLIP [34]과 같은 시각적 언어 모델에서 잠재적 표현의 사용을 탐구했습니다.

EditNeRF [20]는 합성 데이터 세트의 객체 범주에서 학습된 잠재 코드를 조작하여 NeRF 편집을 탐구합니다.

사용성을 높이기 위해 (그리고 메쉬 [24, 10]과 같은 다른 3D 도메인에서 탐구한 바와 같이) ClipNeRF [46] 및 NeRF-Art [47]는 장면의 CLIP 임베딩과 짧은 텍스트 프롬프트 사이의 유사성을 장려하여 이 작업 라인을 확장합니다.

이러한 CLIP 기반 접근 방식의 한계는 지역화된 편집을 통합할 수 없다는 것입니다.

Distilled Feature Fields [15] 및 Neural Feature Fusion Fields [43]와 같은 방법은 LSeg [17] 및 DINO [4]와 같은 사전 학습된 모델의 2D 피쳐를 radiance 필드로 distill하여 영역의 지정을 가능하게 합니다.

이러한 접근 방식은 언어 또는 참조 이미지에 의해 지정된 지역화된 CLIP 유도 편집, 3D 공간 변환 [46] 또는 지역화된 장면 제거 [43]를 허용합니다.

본 연구에서는 직관적이고 순수하게 언어 기반의 편집 명령을 기반으로 3D 장면을 편집하는 보완적인 접근 방식을 제공합니다.

마스킹은 특정 로컬 변경을 가능하게 하는 반면, 명령 편집은 단일 객체 또는 전체 장면의 모양 또는 기하학에 더 유연하고 전체적인 변경을 할 수 있는 직관적인 높은 수준의 명령을 제공합니다.

최근의 명령 기반 2D 이미지 조건 diffusion 모델 [2]을 활용하여 마스크 없는 명령 편집을 가능하게 하여 보다 광범위한 직관적이고 내용 인식 3D 편집을 가능하게 하는 순수 언어 기반 인터페이스를 제공합니다.

 

Generating 3D Content

사전 학습된 대규모 모델의 최근 진전은 CLIP [14, 16]과 같은 비전 언어 모델을 통해 radiance 필드를 최적화하거나 DreamFusion [33] 및 후속 [48, 19, 23]에 제시된 텍스트 조건 diffusion 모델 [35, 37, 36]을 통해 처음부터 3D 콘텐츠를 생성하는 영역에서 빠른 진전을 가능하게 했습니다.

이러한 접근 방식은 임의의 텍스트 프롬프트에서 3D 모델을 생성할 수 있지만, (1) 합성 출력에 대한 세밀한 제어, (2) 장면으로 일반화할 수 있는 능력(즉, 공간에 고립된 단일 객체 이상의 모든 것), (3) 실제 접지가 부족하여 완전히 합성된 창작물을 생성에 부족함이 있다.

RealFusion [21] 및 SparseFusion [55]와 같은 동시 작업은 보이지 않는 부분이 환각되는 하나 또는 몇 개의 입력 이미지를 제공하여 접지를 탐구합니다.

이러한 모든 접근 방식에서 중심 과제는 2D diffusion 모델의 일관되지 않은 출력을 일관된 3D 장면으로 모으는 것입니다.

이 작업에서, 새로운 콘텐츠를 만드는 대신 2D diffusion priors를 사용하여 완전히 관찰된 장면의 실제 캡처된 NeRF를 편집하는 데 중점을 둡니다.

기존 NeRF 장면을 편집하는 것의 한 가지 이점은 (처음부터 3D 콘텐츠를 생성하는 것과 달리) 캡처된 이미지가 정의에 따라 3D 일관적이라는 것이며, 이는 생성된 이미지가 자연스럽게 더 일관되어야 함을 시사합니다.

는 또한 무조건적인 3D 콘텐츠 생성 방법 [33, 48, 19]에서 흔히 볼 수 있는 만화 같은 모양을 초래하는 특정 설계 결정을 피하는 데 도움이 됩니다.

 

Instruction as an Editing Interface

GPT[3] 및 ChatGPT[29]와 같은 large-language models (LLM)의 부상으로 복잡한 작업을 지정하기 위한 다음 "programming language"로 자연어가 부상하고 있습니다.

LLM은 언어, 특히 명령어를 사용하여 일련의 낮은 수준의 사양을 직관적이고 사용자 친화적인 인터페이스로 추상화할 수 있습니다 [31].

InstructionPix2Pix[2]는 로봇 내비게이션과 같은 다른 영역의 작업과 마찬가지로 2D 이미지 작업에서 명령의 효과를 보여줍니다.

우리는 3D 편집 영역에서 명령어 안내를 시연하는 첫 번째 작업을 제안합니다.

이는 일반적으로 전문 도구와 수년간의 경험이 필요한 작업의 난이도를 고려할 때 특히 중요합니다.

자연어 명령어를 사용함으로써 초보 사용자도 추가 도구나 전문 지식 없이 고품질의 결과를 얻을 수 있습니다.

 

 

3. Method

우리의 방법은 재구성된 NeRF 장면과 해당 소스 데이터를 입력으로 받아들입니다: 캡처된 이미지 세트, 해당 카메라 포즈 및 카메라 보정(일반적으로 COLMAP [38]과 같은 모션 시스템의 구조).

또한 우리의 방법은 "“turn him into Albert Einstein"와 같은 자연어 편집 명령을 입력으로 받아들입니다.

출력으로, 우리의 방법은 입력 이미지의 편집 버전뿐만 아니라 제공된 편집 명령의 적용을 받는 NeRF의 편집 버전을 생성합니다.

 

우리의 방법은 diffusion 모델의 도움으로 캡처된 시점의 이미지 콘텐츠를 반복적으로 업데이트한 후 표준 NeRF 학습을 통해 이러한 편집을 3D로 통합함으로써 이 작업을 수행합니다.

우리의 작업은 이미지 편집을 위한 diffusion 모델, 특히 인간이 제공한 명령을 사용하여 자연 이미지를 편집하도록 학습된 이미지 및 텍스트 조건화 diffusion 모델을 제안하는 InstructPix2Pix [2]의 최근 발전을 기반으로 합니다.

 

3.1. Background

Neural radiance fields

 

 

InstructPix2Pix

Denoising diffusion 모델 [39, 9]은 노이즈가 많은 샘플을 모델링된 데이터 분포를 향해 점진적으로 변환하는 방법을 학습하는 생성 모델입니다.

InstructPix2Pix[2]는 이미지 편집에 특화된 diffusion 기반 방법입니다.

RGB 이미지 c_I와 텍스트 기반 편집 명령 c_T에 기초하여, 모델은 노이즈가 많은 이미지(또는 순수 노이즈) z_t를 입력으로 하여, 편집된 이미지 z_0(명령 c_T가 적용되는 c_I의 편집 버전)의 추정치를 생성하는 것을 목표로 합니다.

공식적으로, diffusion 모델은

과 같이 디노이징 U-Net ϵ_ θ를 사용하여 입력 이미지 z_t에 존재하는 노이즈의 양을 예측합니다.

이 노이즈 예측 ^ϵ는 편집된 이미지의 추정치인 ^z_0을 도출하는 데 사용될 수 있습니다.

이 디노이징 프로세스는 임의의 시간 단계 t ∈ [0, T]에서 노이즈 이미지 z_t로 쿼리할 수 있으며, 즉 순수 노이즈 이미지 z_T까지 노이즈 양을 모두 포함합니다.

노이즈 양이 클수록, 즉 t의 값이 클수록 분산이 더 큰 ^z_0의 추정치가 생성되는 반면 t의 값이 작을수록 z_t의 가시적 이미지 신호에 더 부합하는 분산 추정치가 생성됩니다.

 

실제로, InstructPix2Pix는 잠재 diffusion 모델[36]을 기반으로 하며, 즉, diffusion 과정은 전적으로 인코딩된 잠재 영역에서 작동합니다.

이것은 위의 정의된 변수 c_I, z_0이 모두 RGB 이미지를 인코딩하여 생성된 잠재 이미지, 즉 E(I)임을 의미합니다.

마찬가지로, diffusion 모델로부터 RGB 이미지를 생성하기 위해서는 또한 디코더 ^I = D(^z_0)를 통해 예측된 ^z_0 잠재 영역을 디코딩해야 합니다.

 

3.2. Instruct-NeRF2NeRF

텍스트 명령뿐만 아니라 재구성된 NeRF 장면(교정된 이미지의 해당 데이터 세트 포함)이 주어지면, 해당 NeRF의 편집된 버전을 생성하기 위해 재구성된 모델을 편집 명령 쪽으로 미세 조정합니다.

개요는 그림 2에 나와 있습니다.

그림 2: 개요: 우리의 방법은 NeRF를 학습하는 동안 데이터 세트 이미지를 반복적으로 업데이트함으로써 재구성된 NeRF 장면을 점진적으로 업데이트합니다. (1) 학습 시점에서 이미지가 장면에서 렌더링되고, (2) 전역 텍스트 명령이 주어지면 InstructPix2Pix에 의해 편집되며, (3) 학습 데이터 세트 이미지가 편집된 이미지로 대체되며, (4) NeRF는 평소와 같이 학습을 계속합니다.

우리의 방법은 학습 데이터 세트 이미지가 diffusion 모델을 사용하여 반복적으로 업데이트되고 이후 이러한 업데이트된 이미지에 대한 NeRF를 학습하여 전역 일관 3D 표현으로 통합되는 교대 업데이트 체계를 통해 작동합니다.

이 반복 프로세스를 통해 diffusion priors에 3D 장면으로 점진적으로 침투할 수 있습니다.

이 프로세스는 장면에 대한 상당한 편집을 가능하게 할 수 있지만 이미지 조건 diffusion 모델(InstructPix2Pix)을 사용하면 원래 장면의 구조와 동일성을 유지하는 데 도움이 됩니다.

 

이 섹션에서는 먼저 단일 데이터 세트 이미지를 편집하는 과정에서 InstructPix2Pix를 사용하는 방법을 설명한 다음 데이터 세트 이미지를 점진적으로 업데이트하고 재구성된 NeRF를 다듬는 반복 절차를 설명합니다.

 

Editing a rendered image

InstructPix2Pix [2]를 사용하여 각 데이터 세트 이미지를 편집합니다.

다음 세 가지 입력이 필요합니다: 입력 조건화 이미지 c_I, 텍스트 명령 c_T 및 노이즈 입력 z_t.

시점 v에서 데이터 세트 이미지를 업데이트하기 위해 c_I에 대해 편집되지 않은 이미지 I_0^v를 사용하며, 이는 일반적으로 시점에서 원래 캡처된 이미지이거나, 시점이 편집되기 전에 물리적으로 캡처되지 않은 경우 NeRF의 렌더링입니다.

z_t의 경우, SDEdit [22]에서와 같이 최적화 단계 i에서 즉, N(0, 1)과 z_0 = E(I_i^v)의 선형 조합에서 현재 렌더의 노이즈가 있는 버전을 입력합니다.

단순화를 위해 이미지 I_i^v를 I_(I+1)^v ← U_θ(I_i^v, t; I_0^v, c_T)로 교체하는 프로세스를 나타내며, 여기서 노이즈 레벨 t는 일정한 범위 [t_min, t_max]에서 임의로 선택됩니다.

우리는 U_θ를 DDIM 샘플링 프로세스로 정의하며, 초기 시간 단계 t와 0 사이에 고정된 수의 중간 단계 s를 수행합니다.

 

이 프로세스는 두 가지 정보 소스를 혼합합니다: diffsuion 모델은 명령 c_T에 따라 원래 이미지 I_0^v를 편집하는 것을 목표로 하는 반면, diffusion U-Net z_t로 전달된 노이즈가 있는 이미지는 부분적으로만 노이즈가 발생하므로 현재 전역 3D 모델의 렌더링이 z_0(시점 v의 데이터 세트 이미지를 대체할 이미지)에 대한 diffusion 모델의 최종 추정치에 영향을 미칩니다.

중요한 점은 우리의 방법이 NeRF에서 렌더링, 이미지 편집 및 NeRF 업데이트 과정을 지속적으로 반복하지만, diffusion 모델은 편집되지 않은 이미지에 조건이 맞추어져 있으므로 일반적으로 반복 합성과 관련된 특성 드리프트를 방지할 수 있다는 것입니다.

 

Iterative Dataset Update

우리 방법의 핵심 구성 요소는 이미지가 NeRF로부터 렌더링되고 diffusion 모델에 의해 업데이트되며 이후 NeRF 재구성을 supervsie하는 데 사용되는 교대 프로세스입니다.

우리는 이 프로세스를 Iterative Dataset Update (Iterative DU)라고 합니다.

 

최적화가 시작되면 이미지 데이터 세트는 v로 표시된 원래 캡처된 이미지로 구성되며, 이는 I_0^v로 표시됩니다.

이 이미지는 별도로 캐시되며 모든 단계에서 diffusion 모델의 조건부로 사용됩니다.

각 반복 시 여러 이미지 업데이트 d를 수행한 다음 다수의 NeRF 업데이트 n을 수행합니다.

이미지 업데이트는 학습 시작 시 결정된 v의 랜덤 순서로 순차적으로 수행됩니다.

NeRF 업데이트는 항상 전체 학습 데이터 세트에서 랜덤 ray 세트를 샘플링하여 supervision 신호가 최근 업데이트된 데이터 세트 이미지의 오래된 정보와 픽셀의 혼합을 포함합니다.

 

우리의 편집 프로세스는 데이터 세트 이미지를 편집된 상대 이미지로 갑자기 대체합니다.

초기에 이러한 이미지는 일관성 없는 편집을 수행할 수 있습니다(InstructPix2Pix가 일반적으로 다른 시점에서 일관성 있는 편집을 수행하지 않기 때문에).

시간이 지남에 따라 이미지는 NeRF를 업데이트하는 데 사용되고 점진적으로 재렌더링 및 업데이트됨에 따라 편집된 장면의 전체적으로 일관된 묘사에 수렴하기 시작합니다.

이러한 진화 과정의 예는 그림 3에서 확인할 수 있습니다.

그림 3: Dataset Evolution: 학습을 시작할 때 편집된 이미지가 요청된 편집을 수행하지만 일관성이 없는 경우가 많습니다. NeRF를 반복적으로 학습하고 학습 데이터 세트를 업데이트한 후, 이미지가 점차 3D 일관성을 갖게 됩니다.

이 프로세스는 모든 대체 반복에서 style transfer를 통해 이미지가 업데이트되는 SNeRF [28]에서 제안된 접근 방식과 유사합니다.

SNeRF와 달리 iterative DU는 NeRF 업데이트 전반에 걸쳐 편집된 이미지를 유지하여 학습 데이터 세트에 대한 반영구적 업데이트를 효과적으로 수행합니다.

이 프로세스는 또한 DreamFusion [33]의 score distillation sampling (SDS) loss의 변형으로 해석될 수 있는데, 여기서 각 단계에서 이미지의 이산 세트를 업데이트하는 대신 각 그래디언트 업데이트에는 여러 시점에 걸쳐 분포된 ray의 랜덤 혼합이 포함되어 있으며 이러한 ray를 따라 계산된 그래디언트는 가장 최근의 NeRF 상태가 아닐 수 있습니다.

iterative DU의 사용은 각 반복에서 학습 ray 시점의 다양성을 극대화하는 것을 목표로 하며, 이러한 선택은 학습 안정성과 효율성을 모두 크게 향상시킵니다.

다음 섹션에서는 SDS loss를 애플리케이션에 대한 나이브한 적응과 비교합니다.

 

3.3. Implementation details

기본 NeRF 구현으로 NeRF Studio[41]의 'nerfacto' 모델을 사용합니다.

diffusion 모델에 의해 수행되는 업데이트의 강도와 일관성은 여러 매개 변수에 의해 결정됩니다.

이 중 [t_min, t_max] = [0.02, 0.98]에 대한 값은 노이즈의 양(따라서 원래 이미지에서 유지되는 신호의 양)을 정의합니다.

t에 관계없이 우리는 항상 20개의 디노이징 단계로 디노이즈된 이미지를 샘플링합니다.

diffusion 모델에는 텍스트 및 이미지 조정 신호에 해당하는 classifier-free guidance 가중치와 같은 추가 매개 변수가 있습니다.

이를 위해 s_I = 1.5 및 s_T = 7.5의 기본값을 사용하거나 NeRF 최적화 프로세스를 수행하기 전에 최적의 편집 강도를 달성하기 위해 이미지의 guidance 가중치를 손으로 조정할 수 있는 기능을 사용할 수 있습니다.

논문에 나와 있는 결과는 수동으로 선택한 guidance 값을 사용하지만 이를 조정하면 그림 5와 같이 장면 편집의 정도가 달라질 수 있습니다.

다른 모든 3D 하이퍼 파라미터는 모든 실험에서 고정됩니다.

최적화하는 동안 효율성을 위해 d = 1, n = 10과 같은 이미지를 한 번에 하나씩 업데이트합니다.

NeRF 학습의 경우 L1 및 LPIPS [54] loss를 사용합니다.

우리의 방법을 최대 30k 반복 동안 학습하는데, 이는 단일 NVIDIA Titan RTX(메모리 15GB)에서 약 1시간이 소요됩니다.

자세한 내용은 부록에 나와 있습니다.

그림 5: 가이던스 스케일: 이미지 가이던스를 변경하면 편집 내용이 원래 장면과 얼마나 유사한지 제어할 수 있습니다. 편집된 3D 장면에서 렌더링되는 것입니다.

 

4. Results

우리는 Nerfstudio[41]를 사용하여 최적화된 실제 장면에 대한 실험을 수행합니다.

우리는 복잡성이 다양한 다양한 장면을 편집합니다: 환경과 물체, 얼굴, 전신 초상화의 360개 장면.

장면은 스마트폰과 미러리스 카메라를 모두 사용하여 촬영되었습니다.

카메라 포즈는 COLMAP[38] 또는 PolyCam[32] 앱을 통해 추출되었습니다.

각 데이터 세트의 크기는 50-300개의 이미지입니다.

먼저 다양한 정성적 평가를 통해 우리의 접근 방식을 평가합니다.

설계 선택을 검증하기 위해 우리는 정성적 및 정량적으로 일련의 완화된 베이스라인과 비교합니다.

또한 동시 작업인 NeRF-Art[47]와 시각적 비교를 제공합니다.

그림 4: 정성적 결과: 우리의 방법은 실제 장면에 대해 다양하고 다양한 맥락적 편집을 수행할 수 있으며, 여기에는 하루의 시간을 조정하는 것과 같은 환경 변화, 장면의 특정 객체만을 수정하는 더욱 지역화된 변화 등이 포함됩니다.

4.1. Qualitative Evaluation

Editing 3D Scenes

정성적인 결과는 그림 1과 그림 4에 나와 있습니다.

각 편집에 대해 3D 일관성을 설명하기 위해 여러 뷰를 보여줍니다.

그림 1의 초상화 캡처에서 우리는 전역("Turn him into a Modigliani painting")부터 지역별 편집("Turn his face into a skull")까지 다양한 편집 범위를 달성할 수 있습니다.

DreamFusion의 작업만큼이나 완전히 새로운 개체를 추가하는 것도 어렵지만, 우리의 접근 방식은 "Give him a cowboy hat", "mustache"과 같은 맥락적 요소를 추가할 수 있습니다.

또한 우리의 방법은 그림 4의 세 번째 행에 있는 전신 초상화와 같이 그 사람에게 어느 정도 옷을 입힐 수 있습니다.

"As a bronze bust", "Make him a marble statue"와 같은 재료 변경을 달성할 수 있습니다.

"bronze"의 경우에는 뷰에 따라 약간의 변화도 포착됩니다.

우리의 접근 방식은 또한 초상화를 아인슈타인과 같은 주목할 만한 인물과 "Batman"과 같은 허구적 인물로 만들 수 있습니다.

이러한 편집은 곰상을 실제 북극곰, 팬더 및 회색 곰으로 바꾸는 것(그림 4, 마지막 행)과 같이 사람이 아닌 다른 주제로도 확장됩니다.

특히 이러한 편집은 대규모 장면(그림 4, 첫 번째 행, 그림 8, 아래)과 하루의 시간, 계절 및 눈이나 사막과 같은 기타 조건을 수정하는 지원 지침에도 적용됩니다.

그림 8: 베이스라인 비교: 섹션 4.1에 설명된 변형 모음과 모델을 비교합니다.

Ablation Study

우리의 접근 방식을 다음과 같은 변형과 비교하여 설계 선택을 검증합니다.

질적 차이는 그림 8에 나와 있습니다:


Per-frame Edit. 

우리의 가장 나이브한 베이스라인은 원래 NeRF에 의해 렌더링되는 새로운 경로의 모든 프레임에 독립적으로 InstructPix2Pix [2]를 적용하는 것입니다.

우리는 렌더링된 이미지를 c_I로 사용하고, c_T와 동일한 텍스트 명령을 사용합니다.

z_t의 경우 순수 노이즈를 사용합니다.

조정 이미지가 3D 일관됨에도 불구하고 편집된 이미지는 다른 뷰에서 일관되지 않은 상당한 분산을 가집니다.

우리는 그림 6에서 이러한 불일치를 설명합니다, 여기서 우리는 장면을 가로질러 카메라를 이동하고 각 프레임의 조각을 연결하여 이미지를 생성하는 것입니다.

예를 들어 보충 비디오를 참조하십시오.

그림 6: 일관성: 렌더링된 새로운 카메라 경로의 수직 슬라이스는 다양한 시점에서 일관성을 보여줍니다. 원래 NeRF 렌더링(위)은 편집된 결과(가운데)와 유사하게 “turn him into a clown"는 프롬프트를 사용하여 상당히 일관됩니다. 반대로 각 렌더링 프레임에서 InstructPix2Pix [2]를 독립적으로 실행하면 머리카락과 셔츠 색상이 달라지는 등 눈에 띄는 불일치가 발생합니다.

One time Dataset Update.

이 베이스라인에서는 모든 학습 이미지가 한 번 편집되고 NeRF가 편집된 이미지에 수렴될 때까지 학습되는 단일 데이터 세트 업데이트 단계를 수행합니다.

이 베이스라인의 품질은 프레임별 편집 결과의 3D 일관성에 크게 의존합니다.

이 접근 방식은 때때로 적절한 결과를 산출할 수 있지만, 대부분의 경우 초기 편집된 2D 이미지는 대체로 일관성이 없어서 그림 8과 같이 블러하고 아티팩트로 가득 찬 3D 장면으로 이어집니다.

이 문제는 맥락적 객체가 초상화에 추가될 때 더욱 두드러집니다.

 

DreamFusion (text-conditioned diffusion).

다음 접근 방식은 기존 NeRF 장면에 DreamFusion 최적화를 나이브하게 적용하는 것입니다.

특히 실제 이미지에서 얻은 밀도와 모양으로 초기화된 NeRF에서 시작하여 텍스트 전용 diffusion 모델인 StableDiffusion [36]을 사용하여 SDS loss [33]를 적용합니다.

이 방법이 빠르게 발산되므로 정성적인 결과를 논문에 포함하지 않는다는 것을 관찰했습니다.

이러한 발산의 이유는 이 설정에서 모든 이미지는 장면에 대한 텍스트 설명이 필요하고, 특히 360도 커버리지가 있는 모든 뷰에 걸쳐 장면과 일치하는 정확한 텍스트 설명을 찾기가 어려워지기 때문입니다.

이 실험은 이미지 조정의 중요성을 강조합니다.

 

SDS + InstructPix2Pix.

대신 이전 변형의 SDS loss와 함께 이미지 조절 생성 모델인 InstructPix2Pix를 사용하면 전체 장면에 대한 정확한 텍스트 설명에 대한 요구 사항을 피할 수 있습니다.

텍스트 조절 변형과 달리 이 접근 방식은 발산되지 않지만 그림 8의 세 번째 열에서 볼 수 있듯이 더 많은 아티팩트가 있는 3D 장면을 생성합니다.

우리는 이를 표준 SDS가 작은 전체 이미지 모음에서 ray를 샘플링하므로 모든 시점에서 랜덤으로 ray를 샘플링하는 것보다 최적화를 신뢰할 수 없다는 사실로 주로 돌립니다.

 

Ours + StableDiffusion.

마지막으로, (with Iterative DU) 접근 방식을 비교하지만, InstructPix2Pix 대신 StableDiffusion을 사용합니다.

이 접근 방식은 이미지 컨디셔닝이 부족하기 때문에 DreamFusion 베이스라인에서 볼 수 있는 것과 유사한 문제를 겪습니다.

발산하지는 않지만, 결과 장면이 블러리하고, 3D 밀도가 일관성이 없습니다.

정성적인 결과는 그림 8의 첫 번째 열에서 볼 수 있습니다.

그림 7: NeRF-Art와의 비교: CLIP 기반 방법 NeRF-Art와 논문에서 제공한 시퀀스 및 편집을 비교합니다.

Comparisons with NeRF-Art.

동시 작업인 NeRF-Art [47]와 비교하여 질적 비교를 제공합니다.

학습 코드는 사용할 수 없지만 제공된 맞춤형 장면을 사용하고 방법을 사용하여 유사한 편집을 수행합니다.

제공된 장면의 비교는 그림 7에 나와 있습니다.

텍스트 입력은 명령이 아니므로 모델이 정확히 편집할 내용에 대해 모호합니다.

예를 들어, "Van Gogh"의 예에서 모델이 Van Gogh 스타일로 그림을 만들어야 하는지 또는 얼굴을 Van Gogh의 얼굴처럼 만들어야 하는지 불분명합니다.

편집은 주관적이기 때문에 이러한 편집에 대한 선호도를 결정하고 경쟁 최신 기술을 참조할 수 있도록 독자에게 맡깁니다.

 

4.2. Quantitative Evaluation

편집은 근본적으로 주관적인 작업입니다.

따라서, 우리는 대부분 다양한 유형의 정성적 평가에 의존합니다.

독자에게 보충 비디오를 통해 성능을 평가할 것을 권장합니다.

그럼에도 불구하고, InstructPix2Pix의 평가 프로토콜에서 영감을 받아, 우리는 (1) 수행된 3D 편집과 텍스트 명령의 정렬을 측정하고 (1) (InstructPix2Pix 및 StyleGAN-Nada [6]에 표시된 것처럼) 두 장면에 걸쳐 총 10개 이상의 보조 정량적 메트릭을 보고합니다 (2) 표 1에 표시된 뷰 간 수행된 편집의 시간적 일관성을 측정합니다.

후자는 CLIP 방향 유사성과 유사한 새로운 메트릭이지만 새로운 렌더링된 카메라 경로의 인접 프레임에서 원본 이미지와 편집된 이미지 쌍 간의 방향 유사성을 측정합니다.

자세한 내용은 부록에 나와 있습니다.

표 1: 정량적 평가. 편집은 주관적이지만 텍스트에 대한 편집의 정렬과 CLIP 공간의 후속 프레임 간의 일관성을 평가하는 정량적 측정 기준을 제공합니다. 우리의 접근 방식은 프레임 단위 편집과 유사한 CLIP 유사성을 가져옴과 동시에 CLIP 공간에서 최고의 일관성을 달성합니다.

4.3. Limitations

우리의 방법은 대규모 공간 조작을 수행할 수 없는 것과 같은 InstructPix2Pix의 많은 제한 사항을 계승합니다.

또한 DreamFusion에서와 같이 우리의 방법은 한 번에 한 뷰의 diffusion 모델을 사용하므로 추가된 객체의 양면과 같은 유사한 아티팩트로 인해 어려움을 겪을 수 있습니다.

그림 9에서 두 가지 유형의 실패 사례를 보여줍니다: (1) InstructPix2Pix는 2D로 편집을 수행하지 못하므로 3D로 편집이 실패하고, (2)InstructPix2Pix는 2D로 편집에 성공하지만, 우리의 방법은 3D로 통합하지 못하는 큰 불일치를 가지고 있습니다.

그림 9: 제한 사항: InstructPix2Pix는 항상 원하는 편집(위)을 수행할 수 없으므로 우리 방법은 편집을 수행하지 않습니다. InstructPix2Pix는 2D로 정확하지만 일관되지 않은 편집을 생성할 수 있으며 이는 우리 방법이 3D(아래)로 통합하지 못합니다.

구체적으로, 우리의 방법은 1) 편집 텍스처, 2) 객체 교체, 3) 장면의 전역 속성 변경 등을 포함하는 명령 중심, 맥락적, 대규모 편집에 효과적입니다.

그러나 (테이블 위에 컵을 추가하는 것과 같이) 완전히 새로운 객체를 장면에 추가하는 것은 다양한 이유로 인해 어렵습니다.

InstructPix2Pix는 콘텐츠를 빈 영역에 추가하는 데 어려움을 겪고, 성공하더라도 종종 다른 이미지의 다른 위치에 객체를 배치하여 3D 재구성을 어렵게 합니다.

마찬가지로, InstructPix2Pix는 객체를 유사하게 현저한(뷰 일관성이 없는) 콘텐츠로 교체하지 않고 제거하기 때문에 유사한 아티팩트가 발생합니다.

우리는 diffusion 모델이 콘텐츠 추가, 콘텐츠 제거 및 전반적인 이미지 조작에서 개선됨에 따라 NeRF 편집을 위한 Iterative DU 프레임워크도 유사하게 개선될 것이라고 주장합니다.

제한 사항은 부록에서 추가로 설명합니다.

 

 

5. Conclusion

본 논문에서는 일상적인 사용자를 위한 3D 장면 편집의 민주화를 위한 유망한 단계인 Instruct-NeRF2NeRF를 소개했습니다.

우리의 방법은 자연 텍스트 명령을 사용하여 직관적이고 접근 가능한 NeRF 장면 편집을 가능하게 합니다.

우리는 사전 캡처된 NeRF 장면에서 작업하여 결과 편집이 3D 일관성을 유지하도록 보장합니다.

우리는 다양한 캡처된 NeRF 장면에 대한 방법의 결과를 보여주었고 사람, 객체 및 대규모 장면에 대해 광범위한 편집을 수행할 수 있는 능력을 입증했습니다.

 

 

 

A. Additional implementation details

우리의 방법에 대한 주요 입력은 실제 장면의 NeRF 재구성입니다.

이 재구성은 장면당 30,000번의 반복에 대해 학습된 NeRFstudio [41]의 'nerfacto' 모델을 사용하여 얻어집니다. InstructNeRF2NeRF를 실행하기 전에 NeRFstudio에서 옵티마이저를 다시 초기화합니다.

편집을 지정하기 위해 InstructPix2Pix [2]를 사용하며, 여기서 사용자는 지정된 편집에 대해 원하는 변경량을 탐색하기 위해 classifier free guidance 가중치를 지정합니다.

우리의 방법에서는 이 매개 변수를 상속합니다.

아래에는 논문에 표시된 시퀀스에 대해 다음과 같이 선택된 값이 나열되어 있습니다:

 

편집된 NeRF에 대한 최적화 프로세스는 diffusion 모델을 guidance로 사용하여 시간적으로 변화하는 이미지의 컬렉션을 생성할 수 있습니다(즉, 최적화 과정에서 변화).

결과적으로 최적화 프로세스는 표준 NeRF 최적화처럼 단일 수렴 지점을 갖지 않으며, 모든 이미지가 재구성된 모델에 의해 충분히 잘 설명됩니다.

따라서 편집된 NeRF는 최적화 과정에서 편집 유형과 강도도 달라지며, 최적화를 종료하고 편집된 장면을 시각화할 반복을 선택해야 합니다.

실제로 학습 길이에 대한 최적의 선택은 주관적인 결정입니다 — 사용자는 다양한 학습 단계에서 가장 잘 발견되는 더 미묘한 또는 더 극단적인 편집을 선호할 수 있습니다.

논문의 결과는 다양한 횟수의 반복 후에 표시됩니다.

작은 장면(예: 그림 1 및 그림 4는 각각 100개 미만의 이미지를 가지고 있음)의 경우 3000 - 4000, 더 큰 장면(각각 200-300개 이상의 이미지를 가지고 있는 나머지 장면)의 경우 7000 - 8000입니다.

 

InstructPix2Pix의 경우, 우리는 Diffusers 라이브러리 [45]에 포함된 공개 구현을 사용합니다.

 

B. Limitations

본 논문에서 언급한 바와 같이, 우리의 방법은 InstructPix2Pix의 많은 제한 사항을 계승하고 있습니다.

여기에는 (1) 큰 공간 조작을 수행할 수 없는 경우, (2) 명령어에서 언급된 객체와 해당 장면 객체 간의 바인딩을 수행할 수 없는 경우, (3) 큰 객체를 추가하거나 제거하는 경우가 포함됩니다.

또한 DreamFusion에서와 같이 우리의 방법은 한 번에 단일 뷰에 diffusion 모델을 사용하므로 추가된 객체에 대한 이중 면과 같은 유사한 아티팩트로 인해 어려움을 겪을 수 있습니다.

마지막으로, InstructPix2Pix에 제공된 편집 명령어가 때때로 다른 뷰보다 특정 뷰와 더 관련이 있다는 것에 주목할 필요가 있습니다.

예를 들어, "turn the man into a bear"는 명령어의 경우, 모든 뷰에 남자가 눈에 띄게 등장하지 않을 수 있으므로 특정 뷰에서 일관되게 편집하거나 편집하지 않을 수 있습니다.

우리의 프레임워크는 InstructPix2Pix와 그 후속 작업에서 개선된 사항을 쉽게 통합할 수 있습니다.

 

우리는 또한 편집된 NeRF 장면이 원래 재구성된 NeRF와 비교할 때 종종 약간 더 흐린 텍스처를 포함한다는 것에 주목합니다.

일부 초기 실험은 이것이 편집되지 않은 영역에서도 원래 이미지의 완전한 복사본을 생성하지 않는 경우가 많은 Stable Diffusion 오토인코더의 결과일 수 있음을 시사합니다.

오토인코더는 시각적으로 비교 가능한 결과를 생성하는 동시에 종종 전역적으로 3D 일관성이 없는 로컬 유사하지만 동일하지 않은 텍스처로 이미지를 생성합니다.

이 가설을 검증하기 위해 그림 10에서 Stable Diffusion (즉, InstructPix2Pix에서 사용하는 것과 동일한 오토인코더)을 사용하여 입력 이미지를 오토 인코딩하고 NeRF를 계속 학습하는 실험을 보여줍니다.

그 결과 장면은 점차 흐려집니다.

 

또한 최적화가 훨씬 오래 실행되면(즉, 편집된 이미지를 NeRF로 렌더링, 편집 및 전파하는 과정이 여러 번 반복되었을 때) 시각적 품질이 저하된다는 것을 알 수 있습니다.

또한 이는 오토인코더의 효과에 기인합니다.

 

C. Metrics

정량 평가에서는 CLIP Directional Score [6]와 CLIP Direction Consistency Score라는 두 개의 메트릭을 보고합니다.

CLIP Directional Score는 텍스트 캡션의 변화가 이미지의 변화와 얼마나 일치하는지를 측정하고, CLIP Consistency Score는 렌더 새로운 카메라 경로에서 인접한 각 프레임 쌍의 CLIP 임베딩의 코사인 유사도를 측정합니다.

 

보다 공식적으로 directional score를 위해 한 쌍의 이미지(주어진 시점에서 렌더링된 원래 및 편집된 NeRF)와 원본 및 편집된 장면을 설명하는 텍스트 프롬프트 쌍(예: "a photograph of a man" 및 "a photograph of a Tolkien Elf")을 인코딩합니다.

이를 사용하여 InstructPix2Pix [2] 및 StyleGAN-NADA [6]에 설명된 directional score를 계산합니다.

 

시간적 consistency loss를 위해, 우리는 원래 NeRF와 편집된 NeRF를 모두 사용하여 새로운 궤적으로부터 연속적으로 렌더링된 프레임 쌍을 인코딩합니다.

전체적으로, 우리는 원래 NeRF 렌더링 o_i, o_(i+1) 및 연속적인 새로운 뷰 i 및 i+1에 대한 편집된 NeRF 렌더링 e_i, e_(i+1)에 대응하는 C(o_i), C(o_(i+1))의 4개의 CLIP 임베딩이 남아 있습니다.

우리는 consistency loss를 (2)로 정의합니다.

이는 프레임에서 프레임으로 CLIP 공간 편집 방향의 변화를 효과적으로 측정하는 것과 같습니다.