SYDLAB_inha/NeRF

NeRF - "Instant Neural Graphics Primitive with a Multiresolution Hash Encoding" + Mixed dimension

빈그레 2024. 3. 31. 16:51

 

 

Multiresolution Hash Encoding

 

 

 

 

논문 리뷰 참고 

:https://velog.io/@damab/%EB%85%BC%EB%AC%B8-Instant-Neural-Graphics-Primitives

 

[논문] Instant Neural Graphics Primitives

Instant Neural Graphics Primitives with a Multiresolution Hash Encoding ✍ 핵심 어떤 테스크를 수행하는 Neural Network가 주어질 때, 모델 결과의 퀄리티와 학습 속도를 개선시켜주는 input emb

velog.io

 

간단소개

 

 

NeRF (Neural Radience Field)

: 3D 공간의 모든 점에서의 색상과 광도를 예측하는 방법

mesh와 voxel, point cloud같이 3D data를 rendering 하는 것이 아니라,

모든 방향에서 다 2D 이미지로서 볼 수 있으면 그것 자체를 3D rendering을 했다고 보는 것

 

 

1. [개요 및 소개]

- Neural Graphic Primitive를 즉각적으로 훈련시킬 수 있는 새로운 입력 인코딩 방법을 제안한다.

- 각기 다른 해상도에서 Feature vector를 효율적으로 학습하고 저장할 수 있게 해주어,

  더 작은 네트워크를 사용하면서도 높은 품질을 달성할 수 있도록 해준다.

 

***Neural Graphic Primitive 

: 컴퓨터 그래픽스에서 신경망을 사용하여 생성하거나 조작하는 기본적인 그래픽 요소

 

*** Feature vector

: 데이터(그래픽 요소)의 특성을 수치적으로 표현한 벡터 

  형태,크기,표면질감,빛의 반사도 등을 특징 벡터로 나타내어 이를 기반으로 더 복잡한 연산이나 렌더링 수행

  ex)이미지의 각 픽셀은 빨간색(R), 초록색(G), 파란색(B)의 강도로 표현됩니다. 각 색상은 0부터 255까지의 값으로 표현되며, 이를 조합해 수백만 가지의 다른 색상을 나타낼 수 있습니다. 예를 들어, 특정 픽셀의 RGB 값을 (255, 0, 0)으로 설정하면 해당 픽셀은 빨간색으로 표시됩니다. 이렇게 각 픽셀의 RGB 값을 모아서 하나의 큰 벡터를 만들 수 있습니다.

 

 

2.[Multiresolution Hash Encoding] //논문의 main contribution

- 다중 해상도 해시 테이블을 사용하여 신경망의 입력을 인코딩하는 새로운 방법을 제안한다.

- 각기 다른 해상도에서 feature vector를 효율적으로 저장할 수 있게 해주며 더 작은 네트워크를 사용하면서 높은 품질을 달성한다.

 

3. [실험]

- multiresolution hash encoding을 다양한 컴퓨터 그래픽스 작업에 적용해보았다.

- 여러 작업에서 뛰어난 성능을 보여줌

 

4. [결론]

- multiresolution hash encoding이 neural graphic primitive의 빠른 training과 고품질 결과를 가능하게 하는 강력한 방법임

- 다양한 그래픽스 및 머신 러닝 응용 프로그램에 유용할 것으로 기대

 

 

 

 

 

Multiresolution hash encoding

 

이미지이 각 pixel에서 ray를 쏜다

 

 

 

 

 

해당 ray위에 여러개의 sample point가 생성이 되고, 

해당 samplie point를 중심으로 우측 사진으로는 정사각형이지만 실제로, 정육면체가 감싸고 있음->voxel

 

sample point를 감싸고 있는 voxel의 좌표들을 가져온다. 

이러한 좌표값을 hash function의 입력값으로 넣는다.

 

색 다르게 있는 네모가 각기 다른 voxel 사이즈

voxel마다 생성한 feature들을 concatenation해서 최종적인 multi-resolution hash encoding 완성

 

각 sample 포인트가 hash기반으로 여러 레벨의 복셀로부터 인코딩 되는 것을 

multi resolution hasn encoding이라 한다. 

 

1. mesh 의 sample point의 위치값은 multi-resolution hash encoding 되어 첫번째 MLP에 입력된 뒤

density가 출력되어 

2. 샘플 포인트의 방향 값은 spherical harmonics encoding 되어 두번째 MLP에 입력되면 r,g,b를 출력한다.

 

 

volume rendering

: 각 ray위의 모든 sample point들을 모두 합쳐서 하나의 pixel color값을 만들어준

 

 

 

 

 

 

 

 

Instant-NeRF

 

 

 

 

 

 

 

 

 

 

 

 


 

 

Mixed Dimension Embedding

 

 

 

간단소개

 

 

1.[배경]

Embedding 표현은 수백 기가바이트의 메모리를 차지할 수 있다.
먼저 embedding에 대해서 알아보자.

***Embedding
: 자연어 처리 (NLP)나 컴퓨터 비전 등의 머신 러닝 분야에서 사용되는 용어로,
"고차원" 의 데이터를 ->  "저차원" 의 벡터공간에 표현하는 방법을 말한다.
ex) 임베딩을 통해 벡터 표현으로부터 이미지의 중요한 특징을 추출하고 이를 바탕으로 이미지 분류, 객체 감지, 이미지 검색 등의 작업을 수행한다.


이러한 문제를 해결하기 위해, 특정 embedding vector의 차원이 해당 vector의 Query Frequency에 따라 달라지는 mixed dimension embedding을 제안한다.
->query frequency에 따라 vector의 차원을 조정하겠다. 즉, 요청이 많이 발생하는 데이터( 특정 이미지 ) 에 대해서는 높은 차원의 벡터를 할당하는 것이다. 

***query frequency
: 특정 데이터나 정보가 요청되거나 검색되는 횟수
ex) DB,검색 엔진 등에서 사용자가 특정 항목을 얼마나 자주 조회하는지 나타내는 지표


 

 

 

2.[Mixed dimension embedding]

object(객체)의 인기도 즉, 요청 빈도에 따라 객체의 embedding 차원을 조정한다.
이 방법은 메모리 사용량을 크게 줄이면서 머신러닝 성능을 향상시킬 수 있다. 

 

 

 

3.[실험 결과]

-Crteo Kaggle 데이터셋에서 클릭률 예측을 위한 실험에서 mixed dimension layer는 절반의 파라미터를 사용화면서도 정확도를 0.1% 향상시켰다. 또한, 16배 적은 파라미터를 사용하면서 정확도를 유지할 수 있음을 보여줬다.

- 또한 gpu에서 2배 이상 빠르게 훈련된다.

 

 

4.[이론적 분석]

-이 논문에서는 데이터 제한 및 메모리 제한 상황에서 mixed layer embedding의 이점을 이론적으로 분석한다.
- 카테고리 값의 빈도가 충분히 치우쳐 있을 때, mixed dimension embedding은 matrix 복구에 더 우수하며, 왜곡률이 더 낮다. 

 

 

5.[결론]

메모리 제한된 recommendation system 환경에서 mixed dimension embedding이 어떻게 메모리 효율성과 머신 러닝 성능을 동시에 개선할 수 있는지를 이론적으로 보여준다.