본문 바로가기
Paper Summary

Occupancy Networks: Learning 3D Reconstruction in Function Space, CVPR’19

by ChanwooKim 2023. 3. 26.

논문 링크 : https://openaccess.thecvf.com/content_CVPR_2019/papers/Mescheder_Occupancy_Networks_Learning_3D_Reconstruction_in_Function_Space_CVPR_2019_paper.pdf

1. Introduction

In this paper, we propose a novel approach to 3D reconstruction based on directly learning the continuous 3D occupancy function (Fig. 1d). Instead of predicting a voxelized representation at a fixed resolution, we predict the complete occupancy function with a neural network fθf_\theta which can be evaluated at arbitrary resolution. This drastically reduces the memory footprint during training. At inference time, we extract the mesh from the learned model using a simple multi-resolution isosurface extraction algorithm which trivially parallelizes over 3D locations.

  • 본 논문에서는 continuous 3D occupancy function의 학습을 기반으로하는 3D reconstruction에서의 novel한 접근을 제안한다. 고정된 resolution에서 voxelized representation을 예측하는 대신에 임의의 resolution에서 평가할 수 있는 신경망 fθf_\theta 를 사용하여 완전한 occupancy function을 예측한다. 이렇게 하면 학습 중 memory 사용량이 크게 줄어든다. inference 시에 저자는 simple multi-resolution iso-surface extraction을 사용해 학습된 model에서 mesh를 추출한다.

Contribution:

We introduce a new representation for 3D geometry based on learning a continuous 3D mapping. We show how this representation can be used for reconstructing 3D geometry from various input types. We experimentally validate that our approach is able to generate high-quality meshes and demonstrate that it compares favorably to the state-of-the-art.

  • continuous 3D mapping의 학습을 기반으로 하는 3D geometry에 대한 새로운 representation 소개
  • 다양한 input type에서 3D geometry를 reconstruction하는 데 위의 제안되는 representation이 어떻게 사용될 수 있는지 보여줌.
  • 논문의 접근 방법이 high-quality mesh를 생성할 수 있다는 것의 검증과 sota와의 비교

3. Method

In this section, we first introduce Occupancy Networks as a representation of 3D geometry. We then describe how we can learn a model that infers this representation from various forms of input such as point clouds, single images and low-resolution voxel representations. Lastly, we describe a technique for extracting high-quality 3D meshes from our model at test time.

  • 이 section에서는 occupancy network를 3D geometry에 대한 representation으로써 소개한다. 그리고 point cloud, single image, low-resolution voxel representation등 여러 type의 input으로 부터 이 representation을 추론하는 model을 학습하는 방법을 설명한다. 마지막으로 테스트 시에 model에서 high-quality mesh를 추출하는 방법을 설명한다.

3.1. Occupancy Networks

  • 이상적으로는 fixed된 개별 3D location 뿐만 아니라 가능한 모든 3D point p에 대한 occupancy를 추론하고싶다. 결과 함수를 3D object의 occupancy function이라고 한다.

Our key insight is that we can approximate this 3D function with a neural network that assigns to every location pR3p \in \mathbb{R}^3 an occupancy probability between 0 and 1. Note that this network is equivalent to a neural network for binary classification, except that we are interested in the decision boundary which implicitly represents the object’s surface.

  • 논문의 핵심 idea는 모든 location p에 0과 1사이의 occupancy 확률을 할당하는 neural network를 사용하여 이 3D 함수을 approximation할 수 있다는 것이다. 이 network는 object surface를 implicit 하게 표현하는 decision boundary에 관심이 있다는 점을 제외하고 binary classification을 위한 neural network와 동일하다.

When using such a network for 3D reconstruction of an object based on observations of that object (e.g., image, point cloud, etc.), we must condition it on the input. Fortunately, we can make use of the following simple functional equivalence: a function that takes an observation x ∈ X as input and has a function from pR3p \in \mathbb{R}^3 to R as output can be equivalently described by a function that takes a pair (p, x) ∈ R3\mathbb{R}^3 × X as input and outputs a real number. The latter representation can be simply parameterized by a neural network fθ that takes a pair (p, x) as input and outputs a real number which represents the probability of occupancy:

  • image, point cloud등의 object의 관찰을 기반으로 3D reconstruction을 위한 network를 사용할때에는 input에 대한 조건을 지정해야한다. 이는 다음과 같은 간단한 functional equivalence를 사용할 수 있는데, 관측값 x 를 input으로 사용하고 p 에서 R까지의 함수를 출력으로 갖는 함수는 pair (p, x)을 입력으로 받아 실수를 출력하는 함수로 동일하게 설명할 수 있다. 후자의 표현은 (p, x) 쌍을 input으로 사용하여 occupancy probability를 나타내는 실수를 출력하는 neural network fθf_\theta 에 의해 간단히 파라미터화 할 수 있다.

We call this network the Occupancy Network.

→ 여기서 observation이란, 데이터의 feature를 얘기하는 것. 예를 들면 image를 input으로 쓰면 image의 ResNet feature를 사용함.

3.2. Training

To learn the parameters θ of the neural network fθ(p,x)f_\theta(p,x), we randomly sample points in the 3D bounding volume of the object under consideration: for the i-th sample in a training batch we sample K points pijR3,j=1,...,Kp_{ij} \in \mathbb{R}^3, j= 1,...,K. We then evaluate the mini-batch loss L B at those locations:

  • 파라미터 neural network fθ(p,x)f_\theta(p,x) 에 대한 θ\theta 를 학습하기 위해 object에 대한 3D bounding volume 에서 random하게 point를 sampling 한다. → training batch의 i 번째 샘플에 대해 K 개의 point를 샘플링한다. 그리고 mini-batch loss를 사용하여 평가한다.
  • 여기서 xix_i 는 batch B\mathcal{B} 에 대한 i번째 observation. oijo_{ij}  는 point pijp_{ij} 에 대한 true occupancy. 그리고 L\mathcal{L}은 cross entropy classification loss이다.

The performance of our method depends on the sampling scheme that we employ for drawing the locations pijp_{ij} that are used for training. In Section 4.6 we perform a detailed ablation study comparing different sampling schemes. In practice, we found that sampling uniformly inside the bounding box of the object with an additional small padding yields the best results.

  • 성능은 pijp_{ij} 의 샘플링 방식에 따라 다른데, section 4.6 에서 샘플링 방식에 대한 ablation study를 수행한다. 실제로, small padding을 추가하여 object에 대한 bounding box 내에서 uniformly sampling 하는 것이 최상의 결과를 산출한다는 것을 발견했다.

Our 3D representation can also be used for learning probabilistic latent variable models. Towards this goal, we introduce an encoder network gψ_ ψ (·) that takes locations pijp_{ij} and occupancies oijo_{ij} as input and predicts mean μψ and standard deviation σψ of a Gaussian distribution qψ(z(pij,oij)j=1:K)q_ψ(z|(p_{ij}, o_{ij})_{j=1:K}) on latent zRLz \in \mathbb{R}^L as output. We optimize a lower bound [21, 39, 59] to the negative log-likelihood of the generative model p((oij)j=1:K(pij)j=1:K):p((o_{ij})_{j=1:K}|(p_{ij})_{j=1:K}):

  • 논문의 3D representation은 또한 probabilistic latent variable model을 학습하는 데에도 사용할 수 있다. 이를 위해서, location pijp_{ij} 와 occupancy oijo_{ij} 를 input으로 하고 output으로 latent z에 대한 Gaussian distribution qψ(z(pij,oij)j=1:K)q_ψ(z|(p_{ij}, o_{ij})_{j=1:K}) 의 mean μψ 와 standard deviation μψ 를 예측하는 encoder network gψ_ ψ (·) 를 소개한다. 이에 대한 loss는 다음과 같다.
  • 논문은 generative model에 대한 negative log-likelihood의 lower bound를 최적화한다. KL은 KL-divergence이고, p0(z)p_0(z) 는 latent variable ziz_i 에 대한 prior distribution, 그리고 ziz_iqψ(z(pij,oij)j=1:K)q_ψ(z|(p_{ij}, o_{ij})_{j=1:K}) 에 따라 sampling 되었다.

3.3. Inference

For extracting the isosurface corresponding to a new observation given a trained occupancy network, we introduce Multiresolution IsoSurface Extraction (MISE), a hierarchical isosurface extraction algorithm (Fig. 2). By incrementally building an octree [30, 46, 66, 73], MISE enables us to extract high resolution meshes from the occupancy network without densely evaluating all points of a high-dimensional occupancy grid.

  • 학습된 occupancy network에 새로운 observation이 주어지면 이와 일치하는 isosurface를 뽑기위한hierarchical isosurface extraction algorithm인 Multi-resolution IsoSurface Extraction (MISE) 를 소개한다. octree를 점진적으로 구축함으로써 MISE를 사용하면 고차원 occupancy grid의 모든 점을 dense하게 평가하지 않고도 occupancy network에서 high resolution mesh를 추출할 수 있다.

We first discretize the volumetric space at an initial resolution and evaluate the occupancy network fθ_ θ (p, x) for all p in this grid. We mark all grid points p as occupied for which fθ(p, x) is bigger or equal to some threshold τ. Next, we mark all voxels as active for which at least two adjacent grid points have differing occupancy predictions. These are the voxels which would intersect the mesh if we applied the marching cubes algorithm at the current resolution.

  • 먼저 initial resolution에서 volumetric space를 이산화하고 이 grid 의 모든 p에 대해 occupancy network fθ_ θ  를 평가한다. fθ_ θ (p, x)가 임계값 τ보다 크거나 같은 모든 grid point p를 occupy된 것으로 표시한다. 다음으로, 적어도 두 개의 인접 grid point가 다른 occupancy prediction을 갖는 모든 voxel을 활성(빨간 점)으로 표시한다.

We subdivide all active voxels into 8 subvoxels and evaluate all new grid points which are introduced to the occupancy grid through this subdivision. We repeat these steps until the desired final resolution is reached. At this final resolution, we apply the Marching Cubes algorithm [44] to extract an approximate isosurface.

  • 모든 활성화된 voxel을 8개의 sub voxel로 세분화하고 원하는 최종 resolution에 도달할 때 까지 이러한 과정을 N번 반복한다. 이 최종 resolution에서 우리는 marching cube 알고리즘을 적용하여 대략적인 isosurface를 추출한다. (τ에 대한 첨언. threshold τ는 논문의 occupancy network에서 유일한 hyperparameter이다. 이는 추출된 3D surface의 두꺼움을 결정한다. 실험에서는 validation set에서 이 threshold를 cross-validate 한다고 한다.)

Our algorithm converges to the correct mesh if the occupancy grid at the initial resolution contains points from every connected component of both the interior and the exterior of the mesh. It is hence important to take an initial resolution which is high enough to satisfy this condition. In practice, we found that an initial resolution of 323^3 was sufficient in almost all cases.

  • 초기 resolution에서 occupancy grid가 mesh 내부와 외부의 연결된 모든 component의 point를 포함하는 경우 알고리즘은 올바른 mesh로 수렴한다. 따라서, 이 조건을 만족할 만큼 충분히 높은 초기 resolution을 취하는 것이 중요하다. 실제로, 저자는 거의 모든 경우에 초기 resolution이 32332^3 이면 충분하다는 것을 발견했다.

The initial mesh extracted by the Marching Cubes algorithm can be further refined. In a first step, we simplify the mesh using the Fast-Quadric-Mesh-Simplification algorithm [20]. Finally, we refine the output mesh using first and second order (i.e., gradient) information. Towards this goal, we sample random points pkp_k from each face of the output mesh and minimize the loss.

  • Marching Cube 알고리즘에 의해 추출된 초기 mesh는 더 세분화될 수 있다. 첫 번째 단계에서 Fast-Quadric-Mesh-Simplification algorithm을 사용하여 mesh를 단순화한다. 마지막으로 gradient 정보를 사용하여 output mesh를 refine한다. 이 목표를 위해 output mesh의 각 면에서 임의의 점 pkp_k 를 샘플링하고 loss를 최소화한다.

where n(pkp_k) denotes the normal vector of the mesh at pkp_k. In practice, we set λ = 0.01. Minimization of the second term in (6) uses second order gradient information and can be efficiently implemented using Double-Backpropagation [15]. In addition, our approach also allows to efficiently extract normals for all vertices of our output mesh by simply backpropagating through the occupancy network.

  • 여기서 n(pkp_k) 는 mesh의 법선 벡터를 나타낸다. 논문에서는 λ 를 0.01로 두었다. 2번째 term을 minimizing 하는 것은 2차 gradient 정보를 사용하여 Double-Backpropagation을 통해 효율적으로 구현할 수 있다고 한다. 게다가 논문의 접근 방식은 occupancy network를 통해 단순히 backpropagation 함으로써 output mesh의 모든 vertex에 대한 normal을 효율적으로 추출할 수 있다.

3.4. Implementation Details

  • 5개의 ResNet block이 있는 fully-connected neural network를 사용하여 occupancy network를 구현. input type에 따라 다른 encoder architecture 사용. conditional batch normalization 사용하여 input에 대해 condition 지정. single view 3D recon을 할 때에는 ResNet18 사용하였고, point cloud 일때는 PointNet encoder, voxel화 된 input에 대해서는 3D convolutional neural network 사용하였음. unconditional mesh generation일 때는 PointNet을 encoder network로 사용하였음.ㄸ

4. Experiments

Conditional Batch Normalization (CBN) is a class-conditional variant of batch normalization.

First, we analyze the representation power of occupancy networks by examining how well the network can reconstruct complex 3D shapes from a learned latent embedding.

Second, we condition our occupancy networks on images, noisy point clouds and low resolution voxel representations, and compare the performance of our method to several state-of-the-art baselines.

Finally, we examine the generative capabilities of occupancy networks by adding an encoder to our model and generating unconditional samples from this model.

  • 3가지 유형의 실험을 하였다.
  1. network가 학습된 latent embedding에서 복잡한 3D shape을 얼마나 잘 reconstruction 할 수 있는지 조사하여 표현력 분석
  1. occupancy network를 image, noisy point cloud, low resolution voxel representation에 대해 실험하고 network를 sota baseline과 비교
  1. 모델에 encoder를 추가하고 이 모델에서 unconditional sample을 생성하여 occupancy network의 생성 기능 조사

Dataset:

ShapeNet

Metrics:

  1. Volumetric IoU
  • 또는 평가에서는 체적 IoU, Chamfer-L 1 거리 및 일반 일관성 점수를 사용합니다. 체적 IoU는 두 메시 합집합의 체적과 그 교집합 체적의 몫으로 정의됩니다. 경계 체적에서 무작위로 100,000개 점을 샘플링하고 그 점이 실측/예측 메시 외부에 있는지 확인하여 교차점과 합집합의 편향되지 않은 추정치를 얻습니다.
  1. Chamfer-L1L_1
  • Chamfer-L 1 거리는 정확도 및 완전성 메트릭의 평균으로 정의됩니다. 정확도 메트릭은 정답 메시의 가장 가까운 이웃에 대한 출력 메시의 점의 평균 거리로 정의됩니다. 완전성 메트릭은 유사하게 정의되지만 반대 방향입니다. 두 메쉬에서 100k 포인트를 무작위로 샘플링하고 KD-트리를 사용하여 해당 거리를 추정하여 두 거리를 효율적으로 추정합니다. Fan et al. [17] 우리는 현재 객체의 경계 상자의 최대 가장자리 길이의 1/10을 단위 1로 사용합니다.
  1. normal consistency score
  • 방법이 더 높은 차수의 정보를 얼마나 잘 포착할 수 있는지 측정하기 위해 한 메쉬의 법선과 다른 메쉬의 해당하는 가장 가까운 이웃의 법선의 평균 절대 내적으로 법선 일관성 점수를 정의합니다.

4.1. Representation Power

  • 주황색이 논문에서 제시한 ONet. IOU는 다양한 Resolution에서도 항상 높게 제시되지만, Parameter수는 압도적으로 낮음.

4.2. Single Image 3D Reconstruction

  • Qualitative Results
  • Quantitative results
  • Qualitative Results for Real Data (Synthetic data에서 학습하고 real data에 적용)

4.3. Point Cloud Completion

We apply our method to the problem of reconstructing the mesh from noisy point clouds. Towards this goal, we subsample 300 points from the surface of each of the (watertight) ShapeNet models and apply noise using a Gaussian distribution with zero mean and standard deviation 0.05 to the point clouds.

4.4. Voxel Super-Resolution

As a final conditional task, we apply occupancy networks to 3D super-resolution [62]. Here, the task is to reconstruct a high-resolution mesh from a coarse 32 3 voxelization of this mesh.

4.5. Unconditional Mesh Generation

Our goal is to explore how well our model can represent the latent space of 3D models. Indeed, we find that our model can generate compelling(설득력 있는) new models.

4.6. Ablation Study

Effect of sampling strategy

Table.4 (a) 가장 높은 성능 → 2048개의 point uniform sampling

Effect of architecture

Table.4 (b) CBN : conditional batch normalization

5. Conclusion

In this paper, we introduced occupancy networks, a new representation for 3D geometry. In contrast to existing representations, occupancy networks are not constrained by the discretization of the 3D space and can hence be used to represent realistic high-resolution meshes.

  • 이 논문에서 저자는 3D geometry에 대한 새로운 representation인 occupancy network를 소개했다. 기존 representation과 달리 occupancy network는 3D 공간의 이산화에 의해 제한되지 않아 high-resolution mesh representation에 사용할 수 있다.

Our experiments demonstrate that occupancy networks are very expressive and can be used effectively both for supervised and unsupervised learning. We hence believe that occupancy networks are a useful tool which can be applied to a wide variety of 3D tasks.

  • 실험으로는 occupancy network가 매우 expressive하고 effective함을 보여줌. 따라서, occupancy network는 다양한 3D task에 적용될 수 있는 유용한 network이다.

  • 학부생 때 만든 것이라 오류가 있거나, 설명이 부족할 수 있습니다.

Uploaded by N2T