ICCV 2023
Meta
https://arxiv.org/abs/2309.14291
Tiled Multiplane Images for Practical 3D Photography
The task of synthesizing novel views from a single image has useful applications in virtual reality and mobile computing, and a number of approaches to the problem have been proposed in recent years. A Multiplane Image (MPI) estimates the scene as a stack
arxiv.org
https://github.com/facebookresearch/TMPI
아.. 이 분야 너무 알아야하는 용어나 추가 지식도 많고 해서 쉬운 이해를 위해 초록글씨(추가조사)가 많을겁니다ㅠ_ㅠ
다 알고계시는 분은 슉슉 넘어가세요~!
Figure 1: 우리의 3D photography방법 개요를 보여준다.
왼쪽: single RGB 이미지와 추정된 monocular depth map을 사용해, 장면을 여러 개의 작은 MPIs로 이루어진 타일형 그리드로 재현한다.
중간: 2×2 타일형 그리드의 MPIs 시각화를 보여주며, 각각 3개의 RGBA layers를 가진다.
오른쪽: novel view는 각 MPI 타일을 목표 카메라의 프러스텀으로 왜곡(warping)하고 합성(compositing)하여 렌더링한다.
보여지는 768×1152 픽셀 이미지는 7×11 그리드의 4-레이어 MPIs를 사용해 생성되었다.
0. Abstract
single image로부터 synthesizing novel views은 가상현실(virtual reality, VR)과 모바일 컴퓨팅에서 유용한 응용을 제공하며, 최근 몇 년간 이 문제를 해결하기 위한 다양한 접근법이 제안되었다.
Multiplane Image(MPI) :
- scene을 RGBA layers 스택으로 estimate
- textured meshes, layered depth images보다
복잡한 appearance effect를 모델링하고, depth error를 완화하며 soft edge를 더 잘 synthesize 가능- (추가:초록글씨) =>
1. 복잡한 장면의 외형을 잘 표현. 2. 깊이 오류를 줄이고. 3. 물체의 부드러운 가장자리를 더 자연스럽게 합성한다. - RGBA : Red, Green, Blue, Alpha : Alpha는 투명도(Opacity)를 나타내며, 평면 간 블렌딩이나 부드러운 가장자리 표현에 사용.
- (1) Textured Meshes : Textured Meshes는 3D 장면을 geometry mesh로 표현하고, 메쉬 표면에 texture를 입힌 방식이다.
- • 메쉬: 삼각형이나 사각형 같은 다각형(polygon)으로 3D 장면의 형상을 나타냄.
• 텍스처: 메쉬 표면에 색상 또는 이미지를 입혀 외형을 더 사실적으로 만듦.
• 주로 게임 그래픽, 3D 모델링, 가상현실(VR) 등에서 사용된다.
- • 메쉬: 삼각형이나 사각형 같은 다각형(polygon)으로 3D 장면의 형상을 나타냄.
- (2) Layered Depth Images (LDI) :
- 장면을 여러 깊이 레이어로 나누어 표현하는 방식
- 각 레이어는 특정 깊이에서 픽셀 정보를 포함.
- 깊이 값이 있는 모든 픽셀을 계층적으로 저장하여 시점 이동이나 새로운 뷰 합성에 활용.
- LDI는 MPI와 비슷한 개념이지만, 층(layer)의 표현 방식에서 차이가 있다.
- (추가:초록글씨) =>
- neural radiance fields(NeRF)와 달리, MPI는 그래픽 하드웨어에서 효율적으로 렌더링가능
- 그러나 MPIs는 highly redundant, plausible 결과를 얻기 위해 많은 depth layer가 필요
- local image region영역의 depth complexity가 전체 이미지에 비해 낮다는 관찰
-> Tiled Multiplane Image (TMPI) : MPI를 많은 작은 tiled regions으로 나누고 각각 몇 개의 depth planes만 갖도록 함
Tiled Multiplane Image (TMPI) :
- in the wild에서 single-view 3D photography을 위해 adaptive depth planes을 가진 TMPI를 생성하는 방법을 제안
- 합성 결과는 state-of-the-art single-view MPI방법과 비교할 만한 품질을 가지며, 계산 비용은 더 낮다.
- adaptive depth planes :고정된 간격이 아닌, 타일별로 가장 적합한 depth 위치에 배치된 평면
1. Introduction
Novel View Synthesis, NVS
- input images 셋들을 사용해 새로운 카메라 position에서의 view 생성
- 사진과의 three dimensional interaction 3차원 상호작용(: 3D공간으로 )을 가능하게 함.
- 오랜 연구 주제였으며, 초기 연구는 interpolation within dense structured image sets조밀한 구조화 이미지 세트 내 보간(interpolation)에 의존 [20, 11, 8].
- 예: 여러 각도에서 촬영된 이미지를 바탕으로 중간 시점을 계산.
- 그러나, 많은 이미지를 캡처하기 위해 요구되는 특수 장비 때문에 이러한 방법은 실험실 환경으로 제한되었다 [46].
- 예: 다수의 정밀하게 정렬된 카메라, 전문 촬영 장비 / 제한된 환경
현대 모바일 및 VR 기기에서 novel view synthesis을 제공할 수 있는 잠재적 응용이 이 문제에 대한 관심을 불러일으킴
기술을 더 쉽게 접근 가능하도록 만드는 방법을 찾는 연구자들을 독려했다.
- 1) 가상현실(VR) 및 증강현실(AR) : VR/AR 장치에서 사용자 시점에 따라 장면을 실시간으로 렌더링.
- 2) 영화 및 애니메이션 :3D 장면을 만들기 위해 실제로 여러 각도에서 촬영할 필요 없이, 단일 이미지로 다양한 시점 생성.
- 3) 건축 및 디자인 : 단일 사진으로 건축 구조를 3D로 재구성하여 설계 검토. 건축가가 건물 내부와 외부를 다양한 각도에서 확인.
- 4) 의료 영상 :의료 영상(CT, MRI 등)을 활용해 환자의 장기를 3D로 재구성하여 다양한 시점에서 분석.
- 5) 로봇 공학 및 자율주행 :
로봇이 단일 카메라 입력으로 주변 환경의 3D 구조를 이해.자율주행차가 단일 카메라로 주변 차량과 도로의 구조를 예측.
3D photography :
- 일상적인 촬영 환경에서 single 이미지로부터 novel view synthesis을 사용하는 것
- 최근 몇 년간 제안된 다양한 장면 표현 방식 :정확도를 높이고 제약을 줄이기 위해 learning-based technique(딥러닝) 발전을 활용해왔다.
- 가장 최근의 방법 중 하나 NeRF [26, 50] :
- multi-layer perceptrons을 사용해 장면 표현
- novel view synthesis에서 high bar높은 기준을 정의
- high quality가 상당한 데이터와 계산 비용을 요구
multiplane image (MPI)라는 alternate representation :
- 장면을 stack of fronto-parallel RGBA planes으로 정의하며, 이를 warped왜곡하고 novel viewpoints에서 렌더링가능 [53, 26, 9]
- 빠른 렌더링 속도, mesh or point-based 방법보다 aliasing이 적다는 장점 [38, 47, 29].
- aliasing : 컴퓨터 그래픽에서 해상도의 한계로 선 등이 우둘투둘하게 되는 현상
• 시간적 안정성 : 연속된 프레임 사이에 시각적 변화가 부드럽고 일관되게 유지되는 것. 특히 움직임이 있는 장면에서 중요: 예: VR/AR, 게임, 애니메이션 등에서 프레임 간 깜빡임(flickering)이나 왜곡이 있으면 몰입감을 해치고 사용자가 어지러움을 느낄 수 있음. - aliasing : 시간적 안정성이 필요한 응용에서 중요
- aliasing : 컴퓨터 그래픽에서 해상도의 한계로 선 등이 우둘투둘하게 되는 현상
- 그러나 MPI 단점 :
- highly redundant scene representation
-> 장면 내 모든 깊이 변화를 포착하고 재구성하기 위해 필요한 RGBA planes의 수가 매우 많을 수 있다. - 대부분의 장면은 occupied space보다 free space가 많기 때문에 MPI의 대부분의 planes은 매우 sparse하다.
- 이는 representation으로서 비효율적 + 생성, 전송, 저장하는 데 비용이 많이 든다 [2].
- highly redundant scene representation
->TMPI가 MPI의 단점 해결,
모바일 및 VR 기기에서 실질적으로 구현 가능한 경량화된 3D photography 솔루션을 제안
- envision하는 application : 3D video conferencing, telepresence, and VR passthrough (3D 화상 회의, 원격 존재감) 등 [49].
- image plane를 여러 개의 작은 MPIs로 나누고 각 MPI에 few planes만 포함하도록 -> computational, memory 관점에서 더 효율적인 표현을 제공함
- 그러나 기존 MPI 방법을 타일에 직접 사용하는 단순한 접근법은 novel view에서 boundary artifacts를 생성
- boundary artifacts : planes의 수가 적을 때, MPI planes의 고정된 간격이 타일의 full depth range를 포착하지 못해서 발생, 작은 영역의 outlier에 sentsitive.
- 타일 간 경계에서 발생하는 시각적 오류, 타일 간 깊이 표현이 부드럽게 연결되지 않아 경계선이 드러나는 문제. 타일 경계가 부자연스럽게 보이거나, 깜빡이는(flickering) 현상.
- 왜 고정된 간격의 MPI Planes가 문제가 되는가?
- MPI의 고정 간격
- • 기존 MPI 방식에서는 깊이 평면(planes)을 일정한 간격으로 배치:
- • 예를 들어, 이미지 전체 깊이 범위를 [0.1, 10]이라고 가정하면, 이를 5개의 평면으로 나눌 때:
- • 평면 1: 0.1 • 평면 2: 2.575 • 평면 3: 5.05 • 평면 4: 7.525 • 평면 5: 10
- 각 평면은 고정된 위치에 배치되며, 특정 깊이에 해당하는 데이터를 수집.
- 타일마다 다른 깊이 복잡성 : 실제 장면에서 타일마다 깊이 복잡성이 다름:
- 1. 단순한 타일: • 예: 하늘, 벽 등 깊이가 거의 일정. • 이 경우, 고정된 간격의 평면이 불필요하게 많이 배치됨.
- 2. 복잡한 타일: • 예: 물체 경계, 나뭇가지 등 깊이가 급격히 변함. • 고정된 간격의 평면으로는 이러한 급격한 변화를 충분히 표현하지 못함.
- Full Depth Range를 포착하지 못하는 이유 •
- 타일의 깊이 범위(full depth range)는 타일마다 다르다.
- 어떤 타일은 깊이가 [1, 2] 사이에 집중될 수 있고, • 다른 타일은 깊이가 [0.1, 10]에 걸쳐 분포될 수 있음.
- 고정 간격의 평면은 모든 타일에 동일하게 배치되므로, 각 타일의 깊이 범위를 제대로 반영하지 못함:
- 1. 단순한 타일에서는 평면이 너무 많이 할당됨. 2. 복잡한 타일에서는 평면이 부족하여 세부적인 깊이 변화를 표현하지 못함.
- 타일의 깊이 범위(full depth range)는 타일마다 다르다.
- MPI의 고정 간격
- 우리는 학습된 learnt confidence weights를 사용한 clustering-based approach을 제안
- 이를 통해 tile별 MPI planes을 예측하여 local depth features을 더 잘 표현.
- lightweight경량화되었으며, MPI-based 3D photography에서 sota와 comparable한 결과를 생성
< Main contribution >
1. view synthesis tasks을 위한 practical representation실질적인 표현으로 tiled multiplane images를 demonstrate.
2. 3D photography를 위해 single RGB input으로부터 tiled multiplane images를 생성하기 위한 learning framework
3. adaptive MPI plane positioning 를 위한 새로운 접근법 개발.
2. Related Work
현대 3D photography의 선구자는 image-based rendering (IBR)에 관한 초기 연구였다.
- 보통 novel view를 생성하기 위해 convex hull(볼록껍질) of a large set of images에서 interpolation을 사용
- Levoy 등 [20]과 Gortler 등 [11] : 사중선형 보간(quadrilinear interpolation)으로 novel view를 렌더링하는 canonical twoplane parameterization 제안
- [20]Light field rendering. [11]The lumigraph.
- Gortler 방법 : rendering quality 향상하기 위해 geometric proxies기하학적 프록시를 사용하는 초기 사례를 제공했다.
- Davis 등 [8],Unstructured light fields. : 비구조적 이미지를 대상으로 interpolation-based view synthesis을 확장
- Chai 등 [5],Plenoptic sampling. : 뛰어난 전광 샘플링(plenoptic sampling) 분석은, 큰 거리에서는 interpolation으로 view synthesis 하기 위해 필요한 이미지 수가 비현실적으로 많다는 점을 증명
결과적으로 최근 view synthesis 방법의 대다수는 high sampling requirements을 극복하기 위해 learnt priors을 활용
- Chai 등 [5]Plenoptic sampling.의 분석 : view-interpolation을 위한 샘플링 요구사항이 장면의 geometric information와 반비례 관계다
- => view synthesis 품질을 개선하기 위해 coarse geometric proxies를 활용
(세밀한 기하학적 정보 ㄴㄴ 단순하게 간략화) [34, 35, 13].- [13] Worldsheet: Wrapping the world in a 3d sheet for view synthesis from a single image.
[34] Free view synthesis.
[35 ]Stable view synthesis.
- [13] Worldsheet: Wrapping the world in a 3d sheet for view synthesis from a single image.
- Mildenhall 등 [26] : 이 프록시는 multiplane image(MPI)의 형태를 취하며, 이를 통해 Chai 등 [5]의 샘플링 한계를 극복하는 보간 기반 view synthesis을 달성했다.
Local light field fusion: Practical view synthesis with prescriptive sampling guidelines.
- MPIs : Zhou 등 [53]이 처음 제안했으며, input stereo cameras의 outside the convex hull의 novel view를 extrapolating하는 데 사용되었다
(Tucker와 Snavely [42]는 MPI가 Szeliski와 Golland [40]의 초기 “투명 시트(stack of acetates)” volumetric model의 한 예로 간주될 수 있다고 관찰했다).- [53] Stereo magnification: Learning view synthesis using multiplane images.
[42] Single-view view synthesis with multiplane images.
- [53] Stereo magnification: Learning view synthesis using multiplane images.
- Mildenhall 등 [26]과 Srinivasan 등 [39] : 각각 MPI를 사용한 view-interpolation 및 외삽의 이론적 한계를 제공했다.
- Flynn 등 [9] : 학습된 경사하강법을 사용하여 여러 뷰에서 MPI를 생성 Deepview: View synthesis with learned gradient descent.
- Attal 등 [1]과 Broxton [3] : MPI 개념을 확장하여 360도 뷰 합성을 위한 동심 RGBA 구체를 제안
- [1] MatryODShka: Real-time 6DoF video view synthesis using multi-sphere images.
[3] Immersive light field video with a layered mesh representation.
- [1] MatryODShka: Real-time 6DoF video view synthesis using multi-sphere images.
- Wizadwongsa 등 [48]과 Li [22] : MPI의 이산적 RGBA 평면을 연속적인 신경 표면으로 대체하여 더 높은 품질의 결과를 달성
- Tucker와 Snavely [42] : single 뷰에서 MPI를 생성할 수 있는 강력한 데이터 사전을 학습하도록 허용하는 규모 불변 방법을 사용
- 자연 상태(single-view) 이미지로부터 novel view를 생성하는 것을 목표로 하는 최근의 “3D photography” 연구의 한 갈래이다.
- Li 등 [23], Han 등 [12], 그리고 Luvizon 등 [25]의 방법은 이러한 접근법의 MPI 기반 예제이다.
- [23] Synthesizing light field from a single image with variable mpi and two network fusion.
[12] Singleview view synthesis in the wild with learned adaptive multiplane images.
[25] Adaptive multiplane image generation from a single internet picture.
- [23] Synthesizing light field from a single image with variable mpi and two network fusion.
- 그러나 MPI는 over-parameterized scene representation이다.
최근의 방법들 [24, 10, 25, 12]은 depth planes의 더 신중한 배치를 통해 이러한 단점을 어느 정도 극복하려 했다.- 차례대로
[24] Learning the depths of moving people by watching frozen people.
[10] Liveview: dynamic target-centered mpi for view synthesis.
[25] Adaptive multiplane image generation from a single internet picture.[12] Singleview view synthesis in the wild with learned adaptive multiplane images.
- 차례대로
- 그럼에도 불구하고, 높은 중복성은 메모리와 계산 자원을 크게 소모하며, 모바일 및 AR/VR 응용에서의 광범위한 채택을 제한한다.
- =>이러한 use cases에서는 depth-based warping을 포함한 더 효율적인 novel view synthesis 접근법이 필요 [6, 49].
- [6] Passthrough+ real-time stereoscopic view synthesis for mobile mixed reality.
[49] Neuralpassthrough: Learned real-time view synthesis for vr.
- [6] Passthrough+ real-time stereoscopic view synthesis for mobile mixed reality.
- 이는 종종 복원(inpainting)을 동반한다 [18, 19]. Shih 등 [38]은 왜곡된 뷰의 비가시 영역(disoccluded regions)을 복원하는 데 계층화된 깊이 표현을 사용하는 것을 제안했다. Li 등 [21]은 이 일반적인 접근법을 360도 입력에 적용했다. Wiles 등 [47]은 깊이 맵을 사용하여 신경 특징의 포인트 클라우드를 생성한 후, 이를 생성 네트워크를 사용해 novel view로 투영하고 렌더링했다.
- [18] Practical 3d photography.
[19] One shot 3d photography.
[38] 3d photography using context-aware layered depth inpainting.
[21] Omnisyn: Synthesizing 360 videos with wide-baseline panoramas.
[47] Synsin: End-to-end view synthesis from a single image.
- [18] Practical 3d photography.
- Choi 등 [7] : 단일 깊이 맵 대신 확률 볼륨을 추정하여 어려운 영역에서의 불확실성을 처리했다.
- Niklaus 등 [29] : 깊이의 기하학적 및 의미적 왜곡을 제거하기 위해 세분화를 사용했다.
- 그러나 깊이 기반 왜곡은 경계 아티팩트를 가지며 깊이 추정의 오류에 과도하게 민감하다. Jampani 등 [14]은 이러한 단점을 해결하기 위해 알파 매트를 사용한 부드러운 계층화를 제안했지만, MPI는 본질적으로 블렌딩을 통해 이러한 아티팩트를 처리할 수 있다.
- [7] 3d ken burns effect from a single image.
[29] Extreme view synthesis.
[14] Slide: Single image 3d photography with soft layering and depth-aware inpainting.
- [7] 3d ken burns effect from a single image.
마지막으로, 우리의 view synthesis 리뷰는 최근 인기를 얻고 있는 NeRFs [27, 50]를 언급하지 않고는 완성되지 않는다.
- NeRFs
[27] Nerf: Representing scenes as neural radiance fields for view synthesis (2021)
[50] Neural fields in visual computing and beyond. (2022) - 시간 및 데이터 요구사항을 개선하려는 큰 진전 [51, 28], 그래도 interactive applications에는 여전히 비용이 많이 든다.
- [51] pixelnerf: Neural radiance fields from one or few images.
[28] Instant neural graphics primitives with a mul tiresolution hash encoding.
- [51] pixelnerf: Neural radiance fields from one or few images.
- 일부 최근 연구 [33, 41, 43] : single large radiance field를 smaller sub-components로 분해하여 효율성을 개선할 수 있음을 보임
- Kilonerf: Speeding up neural radiance fields with thousands of tiny mlps (2021)
Block-nerf: Scalable large scene neural view synthesis (2022)
Mega-nerf: Scalable construction of largescale nerfs for virtual fly-throughs (2022) - 이는 우리가 multiplane images에 채택한 접근 방식과 유사
- Kilonerf: Speeding up neural radiance fields with thousands of tiny mlps (2021)
<추가 조사>
1. KiloNeRF: Speeding Up Neural Radiance Fields with Thousands of Tiny MLPs (2021)
• 기존 NeRF의 문제점 : NeRF는 하나의 대규모 MLP를 사용해 장면을 표현하며, 이는 높은 계산 비용과 렌더링 속도의 문제를 야기.
• KiloNeRF의 접근법:
• **수천 개의 작은 MLP(Tiny MLP)**를 사용해 장면을 표현:
• 장면을 작은 지역으로 나누고, 각 지역을 처리하는 작은 MLP를 독립적으로 학습.
• 광선(rays)을 각 지역에 매핑하여, 해당 지역의 작은 MLP만 활성화해 연산 효율성을 증가.
• GPU 병렬 처리를 활용해 렌더링 속도를 획기적으로 개선.
차별점
• 속도 개선 : 기존 NeRF보다 100배 이상 빠른 렌더링 가능.
• 효율성 : 각 MLP가 장면의 국소적(local) 정보를 처리하므로, 계산량을 대폭 줄임.
2. Block-NeRF: Scalable Large Scene Neural View Synthesis (2022)
• 기존 NeRF의 문제점 : NeRF는 주로 소규모 장면에 최적화되어 있어, 대규모 장면(예: 도시, 공원 등)을 처리하기 어렵다.
• Block-NeRF의 접근법:
• 장면을 블록(block) 단위로 나누어 학습:
• 장면을 여러 블록으로 분할하고, 각 블록을 독립적으로 학습하여 전체를 표현.
• 블록 간의 매끄러운 전환(smooth transitions)을 보장하기 위해 **중복 영역(overlap regions)**을 추가 학습.
• Hierarchical Level of Detail (LOD):
• 시점에 따라 필요한 해상도의 블록만 렌더링하여 속도를 최적화.
차별점
• 확장성 : 대규모 장면에서도 효과적으로 작동.
• 효율적 렌더링 : Hierarchical LOD를 통해 가까운 영역은 고해상도로, 먼 영역은 저해상도로 처리.
3. Mega-NeRF: Scalable Construction of Large-Scale NeRFs for Virtual Fly-Throughs (2022)
방법
• 기존 NeRF의 문제점 : 대규모 장면을 처리할 때, 계산량이 급증하고 학습 및 렌더링 속도가 느려짐.
• Mega-NeRF의 접근법:
• **장면을 클러스터(cluster)**로 나누고, 각 클러스터를 독립적인 NeRF로 학습:
• 클러스터는 공간적 거리와 시각적 유사성을 기준으로 분할.
• 클러스터 선택 최적화 : 특정 시점에서 보이는 클러스터만 활성화하여 렌더링 속도를 개선.
• Data Pruning : 불필요한 데이터(보이지 않는 영역)를 제거해 효율성을 높임.
차별점
• 가상 비행(Virtual Fly-Through) : 대규모 장면에서 사용자가 이동하며 탐험하는 시나리오에 최적화.
• 효율성 : 클러스터링 및 데이터 선택을 통해 학습과 렌더링 모두에서 속도 향상.
논문 방법 적용 대상 차별점
KiloNeRF 수천 개의 작은 MLP로 장면 표현 소규모 장면 렌더링 속도와 효율성에 집중, 소규모 장면에서 100배 이상 속도 향상.
Block-NeRF 블록 단위로 장면 분할 및 Hierarchical LOD 대규모 장면 블록 기반 학습으로 확장성과 효율적 렌더링 제공, 도시 규모 장면 처리 가능.
Mega-NeRF 클러스터링을 통해 장면 분할, 필요 영역만 활성화 대규모 장면 가상 비행 시나리오에 최적화, 클러스터링과 데이터 제거로 학습/렌더링 효율화.
=>
• KiloNeRF: 소규모 장면에서 빠른 렌더링을 원할 때 유용.
• Block-NeRF: 대규모 장면의 확장성 있는 학습과 렌더링을 위한 선택.
• Mega-NeRF: 대규모 장면에서 사용자의 이동과 탐험에 최적화된 솔루션.
3. Method
전통적인 MPI는 (기준) reference view I 의 camera frustum 안에서 N개의 fronto-parallel planes 집합으로 scene을 표현
- Reference View : 장면을 촬영한 기준 시점
- Camera Frustum : 카메라가 볼 수 있는 3차원 공간!!!!!의 영역,
카메라 렌즈에서 나오는 빛이 닿는 범위, 일반적으로, 카메라 렌즈의 모양에 따라 피라미드 형태로 표현.- Frustum의 구성 요소:
- Far Plane: 카메라에서 가장 먼 평면. / Near Plane: 카메라에 가장 가까운 평면.
- FOV(Field of View): 카메라가 볼 수 있는 시야각.
- 예시) 책상이 카메라 시야 안에 들어오는 공간이 Camera Frustum.
카메라로 책상 위의 사물을 찍는다고 가정 : 책상 밖의 공간은 Frustum 바깥이므로 촬영되지 않음.
- Frustum의 구성 요소:
- Fronto-Parallel Planes : 카메라의 렌즈와 평행한 2D 평면들
Frustum (3D 공간)안에 여러 개의 평면이 겹겹이 쌓여 있다고 상상.- 각 평면은 카메라와 정면으로 평행(fronto-parallel)하게 배치.
- 역할
- NVS에서는 Fronto-Parallel Planes를 사용해 3D 장면을 표현:
- 1. RGBA 이미지 : 각 평면에 색상(RGB)과 투명도(A)를 저장.
- 2. 깊이 정보 : 평면들이 카메라와의 거리에 따라 쌓여, 장면의 깊이를 표현.
- 예시) 책상을 Frustum 안에서 보며, 책상 위의 물체가 3개 층(planes)으로 나뉘었다고 가정:
- 1. 첫 번째 평면(plane 1): 책상 표면.
2. 두 번째 평면(plane 2): 책상 위의 책.
3. 세 번째 평면(plane 3): 책상 위의 컵.
- 각 평면은 RGBA 이미지와 연관되어 있다.
- planes을 어떤 depth에도 배치할 수 있지만, 일반적으로는 차이(disparity, 역깊이=inverse depth, 1/depth)에서 linearly하게 배열된다 [53, 9, 26, 42]. (linearly : 간격 일정, nonlinearly : 가까운물체 작은간격, 먼물체는 크게설정)
- novel view는 \(I_t\)는 평면들을 target camera’s image space으로 homography를 통해 왜곡하고, 이를 오버(over) operator [31]를 사용해 앞에서부터 뒤로 front-to-back 합성하여 렌더링
- :
- 각각 \(i^{th}\) plane에서의 \(\alpha_i\) : warped alpha (현재 평면의 왜곡된 투명도 값.), \(c_i\) : color channels
- Over Operator는 투명도와 색상을 사용해, 앞에서부터 뒤로 평면을 합성하여 최종 이미지를 생성.
- Front-to-Back Compositing : 앞에서부터 뒤로 평면을 겹치는 방식:가까운 평면(앞쪽)을 먼저 렌더링하고, 뒤에 있는 평면(멀리 있는)을 차례로 합성.
- 어떻게 동작하는가?
- 1. 각 평면의 투명도(Alpha Channel): 평면의 Alpha 값(A)으로 가까운 평면의 가시성을 결정. 뒤에 있는 평면이 Alpha 값에 따라 가려지거나 보임.
- 2. Over Operator:
- \(I_t = \alpha_i c_i + (1 - \alpha_i) I_{t-1} \) :
- •\( \alpha_i\) : 현재 평면의 투명도. • \(I_{t-1}\) : 이전까지 합성된 이미지. • \(c_i \): 현재 평면의 색상 값.
- 왜 필요한가? 앞뒤의 모든 평면을 자연스럽게 합성하여 하나의 최종 이미지를 생성.
예시 : 물체가 앞에 있을수록 Alpha 값이 커서 더 뚜렷이 보이고, 뒤에 있는 평면은 더 희미하게 합성.
- MPI에서 Homography: • 카메라의 위치가 바뀌었을 때, 기존 평면의 픽셀 좌표를 새로운 시점에서 다시 계산.
- 예시 정면에서 벽이 사각형으로 보였다면, 측면에서는 사다리꼴처럼 변형.
- 정면에서 본 건물의 벽을 측면에서 보려면 픽셀 위치를 재배치(warp)해야 함:
- Fronto-Parallel Planes(카메라와 평행한 평면)을 새로운 시점에서 보이도록 왜곡.
- warping and compositing왜곡과 합성은 그래픽 하드웨어에서 매우 효율적으로 수행할 수 있어, novel view를 real-time rendering실시간으로 렌더링할 수 있다 [26].
- Warping과 Compositing은 행렬 연산(matrix operations)으로 수행되며, 이는 GPU에서 병렬적으로 처리 가능
- 또한 각 평면의 alpha channel을 통해 MPI는 soft edges를 표현하고(부드럽게), 장면 복원 errors를 soft edges 처리하여 depth-based warping 방법보다 시각적으로 덜 거슬리는 artifact를 생성.
- 그러나 장면의 모든 깊이 변화를 포착하기 위해 필요한 planes N 의 수는 일반적으로 매우 많음
대부분의 평면이 매우 sparse하다는 점을 고려해, 우리는 기준 이미지 reference image를 a tiled grid of many small MPIs로 표현하는 방법을 제안한다 (Figure 3). - 주어진 I 과 monocular depth estimator를 통해 얻은 depth map으로, 각 타일 영역 내에서 n ≪ N depth planes을 배치하도록 예측, 이 예측을 통해 single forward pass를 사용해 MPI의 RGBA 이미지 생성.(n: tile이 사용하는 local depth plane 수)
(추가) 전통적인 MPI는 장면을 표현할 때 모든 경우를 다 포함하려고 불필요하게 많은 평면을 사용한다는 의미. 예를 들어, 어떤 픽셀에 겹치는 물체가 최대 2개뿐인데도 불구하고, 5개의 평면을 만들어 낭비한다.
반면, TMPI는 실제로 필요한 만큼만 평면을 생성. 만약 어떤 픽셀에서 물체가 2개만 겹친다면, 그 픽셀에 딱 2개의 평면만 만들어 훨씬 효율적으로 표현한다는 뜻.
이 차이는 필요 없는 계산이나 메모리 사용을 줄이고, 장면을 표현하는 데 필요한 자원을 절약할 수 있다는 장점으로 이어진다. TMPI는 장면의 깊이 구조를 더 똑똑하게 파악해서 최적화한다고 보면 된다.
3.1. Tiled Multiplane Image Representation
- scene representation은 m개의 tiles set을 기반, 각 타일은 source image I 에서 2D pixel locations x1, x2, ..., xm에 있는 크기 h의 square sliding block을 나타냄.
- 위치 xk는 stride r 에 의해 결정되는 regular grid에 놓인다.
- 각 타일은 n front-parallel RGBA planes으로 구성되며, 이들의 depth placement는 고정되어 있지 않고 타일마다 다르게 변한다.
- 우리는 j-th tile의 i-th 평면의 \(\alpha_j^i\) 알파 채널, \(c_j^i\) 컬러 채널, \(d_j^i\)깊이를 각각 나타냄
그러면 multiplane image (TMPI) representation Γ(I) :
for all i = 1, 2, ..., n and j = 1, 2, ..., m.
- 우리는 j-th tile의 i-th 평면의 \(\alpha_j^i\) 알파 채널, \(c_j^i\) 컬러 채널, \(d_j^i\)깊이를 각각 나타냄
- ordering on this set of 4-tuplets :
• 조건: d_k \leq d_{k+1} :
• 깊이 d 는 정렬된 상태로 표현.
• 즉, 타일 내 평면의 깊이가 앞에서 뒤로 순서대로 배치.
각 타일의 n 개 평면과 전체 m 개의 타일을 모두 포함하여 mn 개의 4-튜플로 표현.
- traditional MPIs와 마찬가지로, novel view :
- 모든 planes을 target camera의 image space로 왜곡하여 미분 가능한 방식으로 렌더링
- 그러나 평면의 depth가 타일에 따라 다르고, 따라서 I의 픽셀에 따라 다르기 때문에, target image plane에서 planar inverse warp(평면 역왜곡,목표 이미지를 기준으로 각 평면의 원래 위치(기준 시점)로 변환하는 연산.)을 homography로 직접 계산할 수 없다.
- 대신, 각 평면은 shifted intrinsic matrix(조정된 내재 행렬)로 계산된 homography를 통해 tile space에서 왜곡되어야 하며, 모든 왜곡된 평면은 각 타일 위치에서 target view로 sequentially 합성되어야 한다(Algorithm 1).
- 이는 MPIs보다 tiled multiplane images의 렌더링을 덜 효율적이고 덜 elegant하게 만들지만(Equation 1),
이는 differentiability미분 가능성이 요구되는 훈련 중에만 해당- • 내재 행렬(Intrinsic Matrix): 카메라의 내부 매개변수(초점 거리, 렌즈 왜곡 등)를 정의하는 행렬.
- • Shifted Intrinsic Matrix: • 각 타일의 위치와 깊이에 따라 행렬이 조정되어 Homography를 계산. 타일별로 깊이가 다르기 때문에, 타일마다 변환된 내재 행렬을 사용.
- 덜 elegant : 전통적인 MPI 방식은 간단한 수식으로 전체 장면을 처리할 수 있지만, TMPI는 타일 단위로 복잡한 계산이 필요.
- 이는 MPIs보다 tiled multiplane images의 렌더링을 덜 효율적이고 덜 elegant하게 만들지만(Equation 1),
- inference 단계에서는 타일이 hardware-accelerated rasterization를 사용해 textured quads로 렌더링
-> 이 단계는 traditional MPIs와 마찬가지로 효율적, texture memory requirements은 더 낮음 - 따라서 이런 compact form은 TMPIs가 networks, mobile devices, VR headsets에서 렌더링하는 데 적합
- Rasterization:• 3D 공간의 평면을 2D 화면에 렌더링하는 과정. / gpu hardware로 빠르게 수행한다는 말
- 내 생각 NeRF가 너무 고해상도인것에 비해 TMPI는 이런 경량화 Task에 초점맞춘듯 다른 결로
- 여러 MPI를 locally 블렌딩하는 것은 Mildenhall 등 [26]의 light field fusion과 관련
- 그러나 이건 scalar weights스칼라 가중치를 사용해 결과를 블렌딩하기 전에 각 MPI를 별도로 렌더링하는 방법
- 우리의 방법은 훨씬 더 finer scale에서 작동, 모든 MPIs의 plane을 함께 synthesize해 novel view를 생성
3.2. Single-View 3D Photography
single RGB input에서 tiled multiplane images를 생성하는 접근법(Figure 2).
- 전반적인 우리의 방법 : 이미지 평면을 학습된 confidence 및 outlier-corrected depth(보정된)를 기반으로 regular tiled grid로 분할
- 각 타일에 대해 n개 fronto-parallel depth planes의 배치 : 예측된 confidence 추정치로 가중치가 부여된 pixel depth values을 클러스터링함으로써 결정.
- 이는 small depth plane budget n (plane 개수의미)을 사용할 때, 일반적으로 사용되는 차이에서의 균등 간격(equal spacing in disparity) [53, 9, 26, 42]이 비효율적이라는 점에 기인.
- 따라서 goal : 타일 내 모든 depth variation를 최적으로 나타내는 평면을 예측하는 것
- 예측된 planes을 사용-> fully convolutional network는 타일별 MPI를 구성하는 n개 RGBA 이미지 생성.
- Han 등 [12]의 adaptive plane method과 달리, 우리는 RGBA 이미지를 single forward pass에서 생성.
생성된 TMPI는 graphics hardware의 rasterization pipeline을 사용해 textured quads 집합으로 렌더링된다.- Han 등 [12] - 장면의 깊이 변화에 따라 Depth Plane의 위치를 동적으로 조정.
- • 예: 깊이 변화가 많은 영역에 더 많은 Plane을 배치.
- 자세히 설명하면, source image I 주어졌을 때, monocular depth estimator를 사용해 depth map Z 를 얻는다.
- 그런 다음, two-headed U-Net Θ(·)이 confidence map C와 denoised depth D를 예측
- 목표는 subsequent후속 k-means clustering step의 outliers 민감도를 ameliorates완화하는 표현을 학습하는 것이다.
- confidence , depth의 joint prediction공동 예측은 Weder 등 [45]의 깊이 라우팅(depth-routing) 및 [15]의 aleotoric 불확실성 uncertainty estimation과 유사하다.
- predicted depth, confidence, original color image는 size h, stride r인 m개 square sliding blocks집합 으로 펼쳐짐 :
- 개별 타일 대신 I, Z 에서 Θ(·)( two-headed U-Net)를 실행하면 non-local features 을 고려할 수 있어, 바람직하지 않은 tiling artifacts를 방지할 수 있다.
- 기존 방식의 문제점: • 타일 단위로 독립적인 연산을 수행하면 타일 경계에서 불연속적인 아티팩트(Visual Artifacts)가 발생.
- 추가로, unfolding step 펼치는 단계에서 r < h로 설정하면 이웃 타일들이 overlap겹칠 수 있다.
- 이는 tile boundaries의 gaps을 방지하고, 이웃 간 타일별 작업을 regularizes.
- 그러나 이로 인해 타일 수가 증가하고 ->계산 요구 사항도 증가
- 우리는 품질과 계산 효율성의 good balance을 위해 r = h − h/8인 스트라이드 값을 empirically경험적으로 결정.
Per-Tile Planes Prediction:
- 다음으로, i-th tyile의 feature를 최적으로 나타내는 n개의 depth plane \(\{z^i_{j=1,...,n}\}\)을 예측.
- 평면을 disparity에서 선형적으로 간격을 두는 일반적인 접근법 : n이 작아질수록 정확도가 떨어짐.
- Luvizon 등 [25]은 depth values의 히스토그램을 통해 식별된 depth discontinuities에 planes을 배치
- 그러나 parameter settings에 민감하며, discontinuities이 없는 smooth surfaces매끄러운 표면에서는 실패.
불연속성: 깊이 값이 급격히 변화하는 영역.
- 그러나 parameter settings에 민감하며, discontinuities이 없는 smooth surfaces매끄러운 표면에서는 실패.
Han 등 [12]과 Li 등 [23]은 learning-based approach을 채택한다.
[23] Synthesizing light field from a single image with variable mpi and two network fusion.
[12] Singleview view synthesis in the wild with learned adaptive multiplane images.
- 전자는 multi-headed self-attention을 사용해 선형 배치를 조정하며, 평면 간 상호작용을 모델링할 수 있지만 계산 비용이 크다(Table 2).
- 후자는 CNN을 사용해 평면을 직접 예측
그러나 강력한 정규화 없이 direct 접근법은 topological order를 결여하고 fixed placement로의 strong bias을 보인다.
적대적 손실(adversarial loss)은 이를 개선할 수 있지만, 훈련을 더 불안정하게 만든다.- Topological Order 결여: Depth Plane이 올바른 깊이 순서로 정렬되지 않을 수 있음.
- Fixed Placement로의 Bias: CNN이 Depth Plane을 항상 고정된 위치에 예측하려는 경향이 있음.
- Adversarial Loss: • 하지만, 이로 인해 훈련이 불안정해질 수 있음. 적대적 손실을 추가하면 모델이 더 유연하게 학습 가능.
- 우리는 depth가 알려진 상태에서 plane positioning평면 배치를 간단한 clustering problem로 설정할 수 있음을 관찰.
- 따라서 각 타일의 depth \(D^i\) 에 대해 k-means clustering을 사용해 \(\{z^i_j\}\)(각 클러스터 중심?)를 예측.
- Standard k-means은 outliers에 민감 -> 이웃 타일 간 plane predictions이 크게 달라져 novel view에서 artifacts를 생성할 수 있다.
- 이상값이 클러스터 중심을 왜곡하여, Depth Plane 배치가 부정확해질 수 있음.
독립적으로 클러스터링을 수행하면, 이웃 타일의 Depth Plane 배치가 크게 달라질수있음- 가중치가 적용된 k-means clustering : 중요한 깊이를 중심으로 평면을 배치해 효율성과 표현력을 동시에 개선한다.
각 타일 내의 깊이 값을 그룹화하여 중요한 깊이 수준을 찾을 수 있다. - 가중치 적용 이유:• 타일 내 픽셀의 신뢰도 맵(Confidence Map)을 사용해, 신뢰도가 높은 픽셀에 더 큰 영향을 주도록 한다
이상치(outlier)나 노이즈의 영향을 줄이기 위해 필수적
- 가중치가 적용된 k-means clustering : 중요한 깊이를 중심으로 평면을 배치해 효율성과 표현력을 동시에 개선한다.
- 한편, n개 depth planes과 함께 clustering은 각 입력 픽셀에 레이블을 할당하므로, 이산화된 깊이discretized depth를 나타내는 레이블 맵을 생성.
- Discretization(이산화):연속적인 값을 구간으로 나눠, 각 값이 특정 구간에 속하도록 표현.
- .연속적인 깊이 값을 n 개의 Depth Plane으로 나눠, 각 픽셀이 어느 Plane에 속하는지 결정.
- 또한, k-means의 클러스터 중심은 입력 샘플에 대해 미분 가능하다.
- 수학적으로 출력이 입력의 작은 변화에 따라 연속적으로 변하는 성질. • k-means 알고리즘에서 클러스터 중심은 입력 데이터에 의해 결정: • 중심(Depth Plane 위치)은 데이터의 평균으로 계산되므로, 데이터가 조금 변하면 중심도 연속적으로 변함.
- 따라서, 가중치가 적용된 k-means으로 생성된 discretized depth map에 대한 self-supervised reconstruction loss을 통해 입력을 필터링하도록 Θ(·)을 training함으로써 outlier problem를 해결한다.
- Weighted k-means란? • **가중치가 적용된 k-means(Weighted k-means)**는 클러스터 중심을 업데이트할 때, 각 샘플의 신뢰도(Confidence)를 반영. ->이상값(outliers)의 영향을 줄이고, 더 안정적인 Depth Plane 배치를 가능하게 만듦.
- \(\text{Cluster Center} = \frac{\sum (\text{Confidence} \times \text{Data})}{\sum (\text{Confidence})}\)
- Self-Supervised Reconstruction Loss
- \text{Loss} = \| \text{Discretized Depth Map (Weighted k-means)} - \text{Output of } \Theta(\cdot) \|
- • Weighted k-means로 생성된 Discretized Depth Map과 \Theta(\cdot) 의 출력 간의 차이를 계산:
- Weighted k-means란? • **가중치가 적용된 k-means(Weighted k-means)**는 클러스터 중심을 업데이트할 때, 각 샘플의 신뢰도(Confidence)를 반영. ->이상값(outliers)의 영향을 줄이고, 더 안정적인 Depth Plane 배치를 가능하게 만듦.
- (1) Clustering과 Depth Plane
- • n 개의 Depth Plane을 결정하는 과정에서, k-means 클러스터링을 사용.
- • 각 픽셀의 깊이 값( z )을 n 개의 Depth Plane 중 하나에 속하도록 할당:
- • 클러스터 중심: 각 Depth Plane의 깊이를 나타냄.
- • 픽셀 레이블: 각 픽셀이 어떤 Depth Plane에 속하는지 표시.
- (2) 레이블 맵 생성 • Clustering 결과는 각 픽셀에 **클러스터 ID(레이블)**를 할당:
- • 픽셀이 속한 클러스터를 나타내는 값.
- • 이 레이블은 **이산화된 깊이(Discretized Depth)**를 표현:
- • 연속적인 깊이 값이 n 개의 Depth Plane에 따라 구간화됨.
- • n 개의 Depth Plane을 결정하는 과정에서, k-means 클러스터링을 사용.
- weighted k-means에서는 클러스터 중심이 각 iteration반복에서 구성 요소 샘플의 confidence-weighted mean으로 업데이트된다.
- Θ(·)의 depth output을 직접 supervise하지 않기 때문에, 네트워크는 outlierfiltering을 넘어 discrete reconstruction을 개선하는 모든 수정 사항을 학습할 수 있으며, 결과적으로 각 타일 내에서 n개의 depth planes 배치를 최적화.
- 가중 평균(Weighted Mean): \(\text{Cluster Center} = \frac{\sum (\text{Weight} \times \text{Data})}{\sum (\text{Weight})}\)
- 여기서 가중치는 각 데이터 포인트의 **신뢰도(Confidence)
반복 수행: • 중심이 수렴할 때까지 과정을 반복.
Neural Network \Theta(·) 의 학습
(1) Depth Output을 직접 Supervise하지 않는다는 의미
- • Supervise란 모델이 명시적인 정답(Label)을 학습 신호로 사용하는 것.
- • 여기서는 \Theta(·) 의 출력(Depth Map)에 대해 정답을 제공하지 않음.
- • 대신, Weighted k-means로 생성된 Discretized Depth Map을 간접적인 학습 신호로 사용:
- • \Theta(·) 는 직접 정답과 비교되지 않고, Weighted k-means 결과를 복원하도록 학습.
(2) Self-Supervised 방식의 장점
• 모델은 단순히 Discretized Depth를 복원하는 것뿐만 아니라, Outlier를 필터링하고 더 나은 Reconstruction을 학습할 수 있음.
• Outlier Filtering: 이상값이 클러스터 중심에 미치는 영향을 최소화.
• Discrete Reconstruction 개선: Weighted k-means 결과에만 의존하지 않고, 네트워크 자체가 복원 품질을 향상시킴.
Per-Tile MPI Generation:
- \(\{z^i_j\}\)와 discrete depth map이 주어지면, discrete labels을 alpha mask로 사용해 \(I^i\)에서 RGBA 레이어를 벗겨내며, 각 타일의 preliminary MPI(초기 MPI)를 estimate
- 각 평면의 masked RGB regions은 Gaussian pyramid에서 유효한 값을 upsampling하여 복원된다.
- 두 번째 네트워크 Ψ(·) : 이러한 추정을 정제해 각 타일의 최종 n개의 RGBA 이미지 생성.
- Zhou 등 [53] 및 Tucker와 Snavely [42]를 따라, RGBA output을 입력 이미지 \(I^i\)와 learnt background의 pixel-wise blend 픽셀 단위 블렌드로 나타냄
- 하지만, 이들 연구와 TMPI는 달리 평면마다 배경 이미지 \(B_j^i\)를 예측:
- \(\alpha*i_k\) : 각 평면마다 예측된 alpha값
• RGBA 레이어를 “벗겨낸다”는 것은 이미지에서 특정 Depth Plane(깊이 평면)에 해당하는 픽셀들을 추출한다는 뜻.
• Depth Plane은 장면의 특정 깊이에 있는 평면을 나타냄.
• Masked:
• 특정 Depth Plane에 속하는 픽셀만 선택(마스킹)하여 그 외의 픽셀은 제외.
즉, Masked RGB Regions는 특정 Depth Plane에 속하는 픽셀들의 색상 정보만 남긴 부분을 의미합니다.
1. 입력 데이터:
• \(\{z^i_j\}\): 각 타일의 Depth Plane 위치. 즉, “이 타일에서 특정 깊이 위치는 여기다!“라고 알려줌.
• Discrete Depth Map : 타일 안의 각 픽셀이 어느 Depth Plane에 속하는지 .
• 예: 어떤 픽셀은 첫 번째 깊이 평면, 다른 픽셀은 두 번째 깊이 평면에 속한다고 표시.
2. Alpha Mask 생성:
• Alpha Mask: 특정 Depth Plane에 속하는 픽셀을 골라내기 위한 마스크.
• 역할: 입력 이미지()에서 특정 Depth Plane에 속하는 픽셀만 추출하는 데 사용.
• 예: Depth Plane 1은 Alpha 값이 높고, 나머지는 0에 가까움.
3. Preliminary MPI(초기 MPI) 생성:
• Alpha Mask를 사용해 입력 이미지()에서 Depth Plane별로 RGBA 레이어를 분리.
• 결과적으로 각 타일은 여러 개의 초기 RGBA 레이어로 구성됨.
- 왜 두 단계를 나누는가?
- • 초기 RGBA 이미지: 간단한 계산으로 Depth Plane별 데이터를 분리하여 Rough한 표현을 얻음.
- • 최종 RGBA 이미지: 정제된 데이터를 사용해 Novel View 생성에 적합한 고품질 결과를 얻음.
- • Ψ(·) 네트워크가 초기 데이터를 보완하고 최적화.
4. 결손 데이터 복원:
• RGBA 레이어 중 일부 영역은 데이터가 부족(구멍, 빈 공간)할 수 있음.
• 이를 채우기 위해 Gaussian Pyramid 방식을 사용: : 이미지를 축소했다가 다시 확장하면서, 빈 공간을 주변 데이터로 채워 자연스럽게 복원.
1. Ψ(·) 네트워크가 하는 일:
• 앞에서 만든 초기 RGBA 이미지는 아직 거칠고 정확하지 않음.
• Ψ(·)라는 네트워크가 이 초기 RGBA 이미지를 더 정교하게 다듬어서 최종 RGBA 이미지를 만듦.
• 타일 하나당 개의 RGBA 레이어(평면)를 만들어냄.
2. RGBA 출력: 기존 연구와 TMPI의 차이
• 기존 연구(Zhou와 Tucker 등):
• RGBA 이미지를 만들 때 **입력 이미지()**와 하나의 배경 이미지를 섞어서 사용.
• 이 배경 이미지는 Depth Plane 전체에 공통으로 사용됨.
• TMPI 방식:
• TMPI는 기존 연구와 다르게, **각 Depth Plane마다 별도의 배경 이미지()**를 학습하고 사용.
• 즉, 평면마다 더 세밀하고 맞춤형 배경 이미지를 생성함.
TMPI에서 각 Depth Plane마다 별도의 배경 이미지를 학습하고 사용한다는 의미
1. 기존 연구에서의 배경 이미지 처리
• 기존 연구(Zhou [53], Tucker와 Snavely [42]):
• 모든 Depth Plane에서 하나의 공통 배경 이미지만 사용.
• 예를 들어:배경 이미지 가 하나 있고, Depth Plane이 5개라면, 각 Depth Plane은 동일한 를 사용하여 합성.
• 문제점:배경 이미지가 평면마다 다르게 보정되지 않으므로, Depth Plane별로 세밀한 조정이 어렵고 표현력이 떨어질 수 있음.
2. TMPI의 차별점
• 각 Depth Plane마다 개별적인 배경 이미지()를 학습:
• 타일 의 -번째 Depth Plane에 대해 별도의 배경 이미지를 학습하고 사용.
• 즉, Depth Plane별로 맞춤형 배경 이미지를 생성하여 더 세밀한 표현 가능.
•이점:각 Depth Plane의 특성에 맞춘 배경을 사용하므로, 표현력이 더 좋아짐.
• 예를 들어:
• 가까운 물체(Depth Plane 1)는 흐릿한 배경이 적합.
• 먼 물체(Depth Plane 5)는 더 선명한 배경이 필요.
3. 쉽게 이해하기
• 기존 방식:
• 모든 평면(Depth Plane)이 같은 배경 이미지를 공유.
• 모든 Depth Plane에서 배경이 똑같아, 표현이 단조롭고 세밀하지 않음.
• 모든 사람이 동일한 배경 사진 앞에서 찍은 단체 사진.
• 개별 사진마다 다른 배경이 필요하더라도, 하나의 배경만 사용.
• TMPI 방식:
• 각 Depth Plane마다 다른 배경 이미지를 사용.
• Depth Plane의 거리나 특성에 맞는 배경을 따로 학습하여 더 자연스럽고 정교한 결과를 만들어냄.+
• 각 사람이 자신만의 배경을 사용하여 사진을 찍음.
• 사진마다 맞춤형 배경이 제공되므로, 더 자연스럽고 다양한 표현 가능.
쉽게 이해하는 핵심
1. Ψ(·) 네트워크:
• 초기 RGBA 이미지를 다듬고 더 정확한 최종 이미지를 만들어줌.
2. TMPI만의 차별점:
• 기존 방법은 평면에 하나의 배경 이미지만 사용.
• TMPI는 각 평면마다 다른 배경 이미지를 사용해서, 더 섬세한 결과를 만들어냄.
4. Training Procedure
- Θ(·) : input depth Z 와 weighted k-means clustering으로 생성된 타일별 discrete depth maps간의 L1 loss를 최소화함으로써 self-supervised으로 training.
- 이후 Θ(·)를 freeze하고, Han 등 [12]의 warp-back strategy을 따라 (가상적인)pseudo ground truth multi-view training data를 생성해 novel view synthesis작업에서 MPI generation network Ψ(·)을 훈련한다.
- pseudo ground truth multi-view training data : Pseudo Ground Truth는 실제 데이터가 아니라, 모델이나 알고리즘이 생성한 근사값으로, 실제 참값처럼 훈련 과정에서 사용
Multi-View Training Data : 다양한 카메라 각도에서 촬영된 동일한 장면의 데이터를 의미. - 단일 뷰 이미지와 깊이 정보를 사용해 다중 뷰 데이터를 “생성”한다.
- Pseudo GT는 가상의 기준 데이터를 의미하며, 실제 Ground Truth가 없는 경우 이를 대신 사용한다.
- 이 논문에서는 Multi-View Training Data()가 부족하기 때문에 Pseudo GT를 생성하여 훈련에 사용한다.
- Pseudo GT 생성 과정
1. 왜곡(Warping): • 단일 뷰 이미지와 깊이 맵을 사용해 입력 이미지를 다른 시점(view)으로 변환.
• 예를 들어, 기존 카메라 위치에서 목표 카메라 위치로 이미지를 재투영(reprojection)한다.
2. 비가시 영역 복원(Inpainting): 왜곡 과정에서 발생하는 **비가시 영역(disocclusions)**을 채운다. 특별히 훈련된 네트워크를 사용해 자연스러운 복원을 수행한다.
3. Pseudo GT로 사용: 이렇게 생성된 다중 뷰 이미지를 기준 데이터처럼 사용하여 모델을 훈련한다.
- pseudo ground truth multi-view training data : Pseudo Ground Truth는 실제 데이터가 아니라, 모델이나 알고리즘이 생성한 근사값으로, 실제 참값처럼 훈련 과정에서 사용
- 이는 single-view images를 monocular depth를 사용해 target camera로 왜곡하고, 특별히 trained 네트워크로 disocclusion holes비가시 영역을 복원inpainting하는 과정
- view-synthesis training objective : synthesized color image \(I_t\)에 대해 a combination of VGG, structural similarity [44], and L1 losses 조합으로 구성되며, 각각 0.1, 0.25, 1.0의 가중치를 갖는다.
- 두 네트워크 모두 COCO 데이터셋 [4]의 111K images와 Ranftl 등 [32](DPT)의 monocular depth method을 사용.
5. Experiments
5.1. Implementation
- PyTorch로 구현, 8개의 Nvidia Tesla V100 GPU에서 훈련.
- 256×384 images 사용, 각 16개의 샘플로 구성된 8개(=16*8=128) mini-batches에서 그래디언트를 누적.
- 두 네트워크 Θ(·) and Ψ(·) : learning rate 1 × 10^(−3)및 200 epochs마다 재시작되는 cosine annealing(조정) schedule을 사용하는 Adam optimizer 사용.
- Adam optimizer : 학습 속도(learning rate)를 자동으로 조정하며, 빠르게 수렴하도록 설계.
- TMPI renderer의 vectorized implementation벡터화 구현(Algorithm 1)
: mini-batch당 약 100ms의 속도로 실행, 효율적인 병렬 계산을 가능하게 한다.- Vectorized Implementation:
- 벡터화된 구현을 통해, 데이터를 한꺼번에 처리: 예: 픽셀 단위로 반복하지 않고, 전체 배열(array) 또는 벡터(vector) 단위로 계산.
- Vectorized Implementation:
1. Input (입력)
- • \(\Gamma(I), \leq\) : TMPI의 표현으로, 타일별로 정렬된 (ordered) 평면 데이터를 나타냅니다.
- • 각 타일에는 Alpha(투명도), Color(색상), Depth(깊이) 정보가 포함.
- • R : 상대적 회전(Relative Rotation): Reference View에서 Novel View로 변환하는 회전 행렬.
- • t : 상대적 이동(Relative Translation): Reference View에서 Novel View로 이동하는 벡터.
- • K : 카메라 내재 행렬(Camera Intrinsics): 카메라의 초점 거리, 센서 크기, 렌즈 왜곡 등을 정의.
2. Output (출력)
- \(I_t\) :HxW 크기의 Novel View 이미지 ( 3 -채널, RGB).
- 생성된 새로운 시점에서의 최종 결과 이미지.
3. 초기화
•\( I_t \leftarrow 0^{3 \times H \times W}\) : H x W 크기의 빈 이미지를 초기화 (모든 픽셀 값을 0으로 설정).
• \(T_t \leftarrow 1^{H \times W}\) : Depth Buffer를 초기화: 각 픽셀의 깊이를 추적하기 위한 버퍼.
4. 메인 루프 (각 TMPI 평면 처리)
Step 1: 타일의 데이터 순회
• \(\text{foreach} (\alpha, c, d, x) \in \Gamma(I), \leq\) :
• TMPI의 각 타일에 대해:
• \alpha : 투명도 (Alpha Channel) / c : 색상 (Color Channel). / d : 깊이 (Depth). / x : 타일의 위치.
Step 2: Shifted Intrinsic Matrix 계산
• \(\hat{K} \leftarrow K - \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} \):
• 타일의 깊이에 따라 조정된 내재 행렬 (\( \hat{K} \)) 계산.
• K : 카메라의 원래 내재 행렬.
• 타일의 위치 x 를 반영하여 변환.
Step 3: 픽셀 순회
• \(\text{foreach } u \in [1, …, s] \times [1, …, s] \):
• 각 타일의 픽셀( u )을 순회하며 렌더링.
• 픽셀 변환 (Homography):
• \(\mathbf{n} \leftarrow [0, 0, 1]^T \) : 평면의 법선 벡터 정의 (z축 방향).
• [u_s, 1]^T \leftarrow \hat{K}(R - t\mathbf{n}^T/d)\hat{K}^{-1}[u, 1]^T : 픽셀 u 의 위치를 Homography를 통해 새로운 시점에서의 위치 u_s 로 변환.
Step 4: Alpha Blending 및 Depth Buffer 업데이트
• 가중치 계산:
• w \leftarrow \alpha(u_s)T_t(u + x) :
• 현재 픽셀의 Alpha 값과 Depth Buffer를 사용해 가중치 w 를 계산.
• 이미지 업데이트:
• I_t(u + x) \leftarrow I_t(u + x) + w \cdot c(u_s) :
• 현재 타일의 색상 정보를 Novel View 이미지에 더함.
• Depth Buffer 업데이트:
• T_t(u + x) \leftarrow T_t(u + x)(1 - \alpha(u_s)) :
• 투명도를 고려해 Depth Buffer를 갱신.
5. 최종 이미지 반환
• 모든 타일과 평면을 처리한 후 최종 Novel View \( I_t\) 를 반환.
6. 주요 개념과 해석
1) Shifted Intrinsic Matrix ( \hat{K} )
• 타일별 위치를 반영해 조정된 카메라 행렬.
• 타일마다 깊이와 위치가 다르므로, 타일별로 변환된 내재 행렬 사용.
2) Homography 변환
• 픽셀 좌표를 새로운 시점(Target View)에서의 좌표로 변환.
• R 과 t 를 사용해 회전 및 이동을 반영.
3) Depth Buffer ( T_t )
• 각 픽셀의 깊이를 추적하여 Alpha Blending 과정에서 적절히 합성.
4) Alpha Blending
• 투명도 \alpha 를 사용해 각 타일의 색상을 합성하여 최종 이미지를 생성.
5.2. Baselines
- TMPI를 네 가지 state-of-the-art singleview 3D photography과 비교 :
- Tucker 등 [42] (SVMPI), Li 등 [23] (VMPI), Li 등 [22] (MINE), 그리고 Han 등 [12] (AdaMPI).
- VMPI, AdaMPI :
TMPI같이, 파이프라인의 첫 단계에서 monocular estimator를 사용해 depth 복원.
모든 방법의 input은 동일, 그러나 단일 제약 없는 RGB 이미지로 구성되므로, 우리는 이를 end-to-end 3D photography approaches으로 평가. - 그럼에도 불구하고, 계산 및 메모리 성능을 평가할 때 추가적인 depth estimation step 고려(Table 2).
- 일반적으로 3D Photography는 특정 조건이나 입력 데이터에 따라 나뉘어 평가되기 쉽습니다. • 이는 현실적인 활용 가능성을 높이고, 기존 연구들과 비교했을 때 더 강력한 비교 프레임워크를 제공하는 방식입니다.
- 그러나 이 연구는 단일 RGB 이미지라는 제약 없는 입력에서 End-to-End로 모든 단계를 통합하여 평가한 점에서 차별화를 강조.
- • “추가적인 Depth Estimation Step을 고려한다”는 의미:
• 3D Photography 작업의 전체 계산 성능과 메모리 효율성을 평가할 때, 단순히 모델의 렌더링 단계만 비교하지 않음.
• 파이프라인의 첫 단계인 깊이 복원 과정까지 포함해서 전체적인 성능을 평가.
• 이는 TMPI와 VMPI, AdaMPI 같은 모델들이 단안 깊이 추정기를 사용하는 특징을 공정하게 반영.
왜 중요한가? • Monocular Depth Estimator는 파이프라인의 필수적인 부분이지만, 계산 비용이 클 수 있음.
• 따라서 이 단계에서 발생하는 추가적인 리소스 사용을 무시하면, 모델 간의 성능 비교가 왜곡될 수 있음.
• 마지막 문장은 성능 평가가 깊이 복원 단계까지 포함한 전체적인 관점에서 이루어졌음을 강조. - Depth Estimation 단계는 추가적인 계산 및 메모리 비용이 발생. • TMPI는 이 단계의 효율성을 높여 계산 비용을 절감하면서도, 최종 결과는 VMPI나 AdaMPI에 비해 비슷하거나 더 나은 품질을 제공.
- VMPI, AdaMPI :
- 우리는 모든 기준 방법에서 N=32 개의 Depth Plane 사용, N=8로 설계된 VMPI만 예외로 한다.
- 우리는 뉴럴 래디언스 필드(NeRF)에 기반한 단일 뷰 방법 [51]이나 Nicklaus 등 [29], Shih 등 [38]의 최근 연구와는 비교하지 않음
- 모바일 및 VR 기기를 대상으로 하는 TMPI에 비해 계산 요구량이 너무 크기 때문
- NeRF에 관한 최근 연구는 인상적인 렌더링 속도를 보여주었지만, 훈련은 여전히 비용이 많이 들고, 더 나아가 많은 수의 input views, static scene 필요.
- Jampani 등 [14]의 방법은 MPI 기반이 아니지만 관련이 있다. 그러나 해당 연구의 저자들은 코드를 공개하지 않았다.
5.3. Testing Datasets
Spaces [9], Tanks and Temples [17] 데이터셋에서 모든 방법을 테스트
- Spaces : 16개의 카메라로 구성된 purpose-built(목적에의해 특별히 만들어진) 장비를 사용해 촬영된 100개의 indoor, outdoor scenes으로 구성.
- 동일한 장면을 여러 각도에서 촬영한 다중 뷰 데이터를 제공한다.
- Tanks and Temples : dataset의 Intermediate split을 사용 (challenging outdoor environments의 고해상도 비디오 8개의 uniformly sampled frames균일 샘플링 프레임으로 구성)
- 모든 장면의 camera poses, depth maps 계산 :COLMAP [37, 36]
- depth maps : monocular depth의 scale ambiguity스케일 모호성을 해결하는 방법 -> target views로의 올바른 reprojection재투영을 가능하게 한다.
- 스케일 모호성 : 단일뷰로 정확한 depth 알기 어려워서 이를 보정
- test 방법 : 각 데이터셋에서 1000개의 source views 랜덤선택, source view 를 350×630으로 스케일을 조정, capture sequence에서 다음 이미지를 view synthesis을 위한 target로 사용.
- 350×630 ; 이 해상도 선택은 specified hardware에서 더 큰 이미지를 처리할 때 기준 방법이 메모리 부족 때문에
- depth maps : monocular depth의 scale ambiguity스케일 모호성을 해결하는 방법 -> target views로의 올바른 reprojection재투영을 가능하게 한다.
- Figure 5에서는 Davis dataset [30]에 대한 우리의 고해상도 결과 제시.
• 소스 뷰(Source View): 우리가 알고 있는 기존의 카메라 각도에서 본 이미지.
• 목표 뷰(Target View): 우리가 합성해야 할 새로운 시점에서의 이미지.
• Tanks and Temples 데이터셋이나 유사한 3D View Synthesis 데이터셋에서는:
• 특정 장면(예: 건물, 조각상)을 다양한 카메라 각도, 위치, 시점에서 촬영한 일련의 이미지를 캡처 시퀀스라고 부릅니다.
• 예를 들어:
• 한 장면에서 카메라를 움직이며 촬영:
1. 첫 번째 이미지: 정면
2. 두 번째 이미지: 약간 오른쪽에서 본 시점
3. 세 번째 이미지: 더 오른쪽에서 본 시점
• 이렇게 순차적으로 얻은 이미지들이 캡처 시퀀스를 구성.
5.4. Evaluation Metrics
rendered views 네 가지 metric으로 정량적으로 평가 :
- PeakSignal to Noise Ratio (PSNR) 피크 신호 대 잡음비
- Structural Similarity [44] (SSIM) 구조적 유사성
- Learned Perceptual Image Patch Similarity [52] (LPIPS) with a VGG-16 backbone 학습된 지각 이미지 패치 유사성
- the mean absolute error (L1). 평균 절대 오차
이전 연구 [12, 42, 23]를 따라, Disocclusion 영역을 고려해 이미지 가장자리에서 15%를 잘라낸다.
- Disocclusion(비가림): 카메라 시점이 이동하거나 장면이 변형될 때, 원래 가려져 있던 영역이 새롭게 나타나는 현상.
추가로, 어떤 방법으로든 합성된 뷰에서 남은 픽셀 중 15% 이상이 비어 있는 경우, 모든 기준 방법에서 결과를 제외한다.
- 비어 있는 픽셀(Empty Pixels)의 의미 : 합성된 이미지에서 값이 없는 픽셀. 다음과 같은 이유로 발생:
- 1. Disocclusions: 새로운 시점에서 가려져 있던 영역이 드러나지만, 원본 데이터에 정보가 없어 채우지 못한 경우.
- 2. 잘못된 렌더링: 모델이 해당 영역을 정확히 합성하지 못해 빈 공간으로 남는 경우.
- 빈 픽셀이 많으면 평가 결과 왜곡 • PSNR, SSIM, LPIPS, MAE 같은 지표는 실제 값이 있는 픽셀에서만 계산되므로, 빈 픽셀이 많으면 신뢰할 수 없는 값이 나올 가능성이 높다.
- • 결과적으로 모델 간의 비교가 불공정해질 수 있다.
- • 빈 픽셀이 많을수록 합성 결과를 정확히 평가하기 어려워진다.
5.5. Results
- Table 1은 두 개의 테스트 세트에 대한 모든 방법의 정량적 평가를 제시한다.
- Tanks and Temples에 대한 정성적 결과는 Figure 4에, Spaces에 대한 결과는 Figure 9에 표시한다.
- 우리의 접근법은 n=4개의 depth planes과 tile size h = 64를 사용
- 타일당 fewer planes훨씬 적은 평면 수를 가졌음에도 불구하고 우리의 방법이 경쟁력 있는 성능을 보이는 이유는 각 타일에서 adaptive placement of depth planes하여 기준 방법의 single MPI보다 더 넓은 depth range 를 효과적으로 커버할 수 있기 때문.
- Memory and computational performance은 Table 2에서 평가.
- VMPI, AdaMPI, 우리의 방법은 Ranftl 등 [32]의 DPT를 사용한 monocular depth estimation의 additional overhead를 가진다.
- 우리의 접근법은 AdaMPI보다 실행 시간, 피크 메모리, 공간 요구 사항이 낮으면서도 유사한 품질의 결과를 달성한다.
- Table 3은 우리의 plane placement strategy을 평가
- monocular depth input에 작은 양의 Gaussian noise(λ = 0, σ² = 1×10⁻³)가 추가된 상황에서 각 타일의 평면으로 정의된 discretized depth map의 복원 품질을 측정한다. 우리는 이 접근법을 inverse disparity space에서 depth planes을 선형적으로 간격을 두는 단순한 방식과 vanilla unweighted k-means기본적인 비가중치 k-평균과 비교한다.
- 우리의 방법은 outliers에 robust하며 훨씬 더 나은 복원 결과를 제공.
• Q25 (25th Percentile Error): 하위 25%의 오차.
2. 각 Variant의 설명
• Vanilla k-means:
• 기본적인 k-means 알고리즘을 사용해 depth plane을 균등하게 클러스터링.
• Outlier에 민감하며, neighboring tiles 간의 depth plane 배치가 불안정.
• Linear plane spacing:
• Depth Plane을 Disparity(역깊이)에 따라 선형적으로 배치.
• 복잡한 장면에서는 효과가 떨어지고, smooth한 depth variation을 처리하지 못함.
• Ours : Weighted k-means Clustering 방법.
• Confidence Weight와 Self-Supervised Reconstruction Loss를 사용해 Outlier를 완화하고, 타일 간의 Depth Plane 배치를 최적화.
Figure 6: 위에서 아래로: 입력 이미지 (Davis 데이터셋); DPT [32]로부터의 역 단안 깊이; 각 타일의 역-깊이 범위에서 네 개의 평면을 선형적으로 배치하여 만든 단순한 이산화(discretization); 가중치가 적용된 클러스터링 기반의 네 개 평면으로 구성된 우리의 이산화 방식. 우리의 표현은 후퇴하는 표면(receding surfaces)에서 더 세밀한 변화를 보여주며, 타일 아티팩트(tiling artifacts)가 적게 발생한다.
- Figure 6은 Davis 데이터셋 [30] 샘플에서 linear spacing과의 정성적 비교를 보여준다.
- Figure 7은 타일 크기와 plane 수가 view synthesis 품질에 미치는 영향을 평가한다.
- 일반적으로 결과는 작은 타일과 많은 planes이 품질을 향상한다는 직관을 uphold지지한다.
- 그러나 평면 수가 8개를 초과하는 경우 이 경향은 명확하지 않다.
- Khakhulin 등 [16]과 Hu 등 [13]이 관찰한 바와 같이, 축소 모델이 중복된 기하학을 효과적으로 처리하지 못한다는 점을 뒷받침한다.
- 또한, depth planes 수가 많아지면 모델 complexity가 비례적으로 증가 -> 동일한 훈련 단계에서도 수렴 속도가 느려짐
6. Limitations
이전에 관찰한 바와 같이, 타일 다중평면 이미지는 training 중 differentiable rendering을 위해 traditional MPI의 우아한 왜곡, 합성 방정식 elegant warping and compositing equations을 활용할 수 없다.
또한, 일부 경우에서 타일 간 thin features을 일관되게 복원하지 못한다(Figure 8).
7. Conclusion
single RGB 입력에서 tiled multiplane images를 추정하는 3D photography 방법을 제안한다.
이 방법은 MPI 타일 내에서 adaptively spacing a small number of depth planes으로 local features을 더 잘 나타내는 새로운 접근법을 포함한다.
우리의 방법은 lightweight 경량화되어 있으며, 모바일 및 VR 기기에서 novel view synthesis을 실현하는 방향을 제시한다.
Loss, MPI 네트워크(Ψ(·)) 학습
1. VGG Loss (Perceptual Loss) → 가중치 0.1
• 이미지의 고수준 특징(feature) 보존을 위해 사용됨
• VGG 네트워크를 활용하여 합성된 이미지와 실제 이미지 사이의 고수준(perceptual) 차이를 측정
2. Structural Similarity (SSIM) Loss → 가중치 0.25
• 이미지 구조 정보를 보존하는 역할
• 픽셀 단위의 단순 차이(mean absolute error, MSE)가 아니라, 이미지의 대비, 밝기, 구조적 차이까지 반영
• SSIM이 높을수록 사람이 보기에도 더 자연스러운 이미지를 생성함
3. L1 Loss (Mean Absolute Error, MAE) → 가중치 1.0
• 픽셀 단위에서 합성된 이미지와 실제 이미지의 차이를 직접 계산
• 모델이 생성한 이미지가 정확하게 원본에 가까워지도록 유도
• L1 Loss: 픽셀 단위에서 정확한 값을 예측하는 데 도움을 줌
• SSIM Loss: 이미지 구조(Structure)를 보존하여 더 자연스러운 이미지를 생성하도록 유도
• VGG Loss: 고수준 특징을 보존하여 사람이 보기에도 더 실제 같은 결과를 만듦
즉, 단순한 픽셀 손실만 사용하면 흐릿한 이미지가 생성될 위험이 있기 때문에, 추가적으로 이미지의 구조(SIM)와 의미론적 특징(VGG)을 보존하기 위한 방식
\( \mathcal{L} = 0.1 \cdot \mathcal{L}_{VGG} + 0.25 \cdot \mathcal{L}_{SSIM} + 1.0 \cdot \mathcal{L}_{L1} \)
Loss를 적용한 Training 과정
• 먼저 Θ(·) 네트워크(깊이 추정기)를 Freeze(고정) → 즉, 더 이상 학습하지 않음
• 이후 Ψ(·) 네트워크(MPI 생성 네트워크)를 학습
• 학습할 때 Han et al. [12]의 warp-back strategy를 사용하여 pseudo ground truth(가짜 다중 시점 데이터)를 생성
• 생성된 이미지와 실제 타겟 이미지를 비교하며 VGG, SSIM, L1 Loss를 조합하여 학습
Han et al. [12]의 warp-back strategy는 pseudo ground truth multi-view training data(가짜 다중 시점 학습 데이터)를 생성하는 과정 참조 :
즉, Warp-back strategy를 활용하여 **단일 이미지(single-view image)**를 다른 시점(viewpoint)에서 본 것처럼 변환(warp) 한 후,
이를 바탕으로
Ψ(·) 네트워크(MPI 생성 네트워크)를 학습할 때 사용될 pseudo ground truth(가짜 GT)를 생성하여 학습 데이터를 만듦
warp-back strategy :
(1) Monocular Depth를 사용한 Warping
• 원본 단일 이미지(RGB) → Monocular Depth Estimator를 사용하여 깊이 정보를 추출
• 이 깊이 정보를 기반으로 Homography(호모그래피) 변환을 적용하여 이미지를 target 카메라 시점으로 변환
• 즉, 원본 이미지에서 얻은 깊이 맵을 활용하여 새로운 시점에서 warped된 이미지를 생성
(2) Disocclusion (비가시 영역) Inpainting
• 새로운 시점에서 변환된(warped) 이미지에는 **disocclusion holes (비가시 영역, 보이지 않았던 부분이 드러난 빈 공간)**이 존재
• 이를 해결하기 위해 학습된 Inpainting 네트워크를 사용하여 disocclusion 영역을 보완
• 즉, Inpainting을 통해 빈 영역을 채워 pseudo ground truth 이미지 생성