Paper/3D vision

Neural Kernel Surface Reconstruction

침닦는수건 2023. 10. 20. 20:02
반응형

내 맘대로 Introduction

 

2023.10.18 - [Reading/Paper] - Neural Splines: Fitting 3D Surfaces with Infinitely-Wide Neural Networks

2023.10.19 - [Reading/Paper] - Neural Fields as Learnable Kernels for 3D Reconstruction

 

이전 두 논문, 즉 PCD를 MLP 기반 function으로 만든 kernel로 mesh하는 논문의 가장 끝판왕 논문이라고 할 수 있다. 사실 이 논문을 이해하기 위해서 위 두 논문을 연달아 보았다. 

 

 

이 논문 역시 한 마디로 정리하면 NKF처럼 point xyz + feature를 이용하여 neural kernel을 만들어내는 것인데 이 때 point feature를 multi resolution으로 사용하겠다는 차이가 있다. 사실 coarse-to-fine 개념을 어디서든 끝판왕 버전에서 등장하는데 똑같이 feature를 multi resolution으로 뽑아 feature 효율을 높이고 generalization 성능을 높이겠다는 전략이다. 

 

큰 컨셉 차이는 없어보이는데, 뒤에 kernel ridge regression할 때, 사용하는 수식이 조금 다른 듯 하다.

 

메모하며 읽기

그림에서 알 수 있다시피, NKF랑 전체 과정이 완전 동일하다. 다만 point feature를 뽑는 부분이 multi resolution화 되었다는 것과 feature 뽑을 때 normal도 같이 뽑아낸다는 정도의 변형이 있다.

normal을 같이 뽑는 이유는 수식 전개할 때 multi resolution에 대응되는 normal값이 있어야 matrix를 만들 수 있는데 interpolation해서 처리하기엔 성능 저하를 우려한 것 같다. 
3D Convolution을 이용해 point feature 뽑고 multi resolution voxel grid를 전부 다 채운다. 

그리고 각 resolution에 대응되는 kernel을 계산하는 순서다.


L개 resolution을 사전에 정의해서 사용하고 각 resolution은 2^3배씩 부피가 줄어드는 octree같은 구조이고 상위 level voxel 안에 하위 level voxel이 쏙 들어가는 구조다.

각 voxel은 feature와 동시에 normal 값들을 들고 있도록 한다.

kernel method 적용한단 소린데, NKF 랑 달리 Bezier kernel이 달린다. 

어떤 이유에서 넣었는지는 모르겠다. 의미를 설명한 부분은 없다. 

나와있는 설명으로는, 뒤에 kernel ridge regression을 풀 때 , system이 sparse해진다고 한다. (무슨 의미를 갖는지...? 수학 잘해야 알듯)

수학적으로 증명까지 이해하지 못해서 설명할 내용이 없음.

그냥 이렇게 풀었다더라; 

추가적으로 특정 level의 특정 voxel이 가치가 있는지 없는지 예측하는 모듈을 중간에 끼워서 사용하기도 했다고 한다. 

앞에 feature를 뽑는 모듈 학습 방법은 surface 주변, surface 멀리를 나눠서 SDF를 직접 supervision해주거나 SDF gradient로 supervision을 걸어주는 식이다. 

학습 데이터가 이미 mesh로 주어진 상황이기 때문에 사용할 수 있는 loss는 사실 상 다 넣은 듯.
반응형