🥇DSL 23-2 모델링 프로젝트 우수팀 선정🥇
프로젝트 결과물로 구성한 메타버스 전시회에 놀러오세요!
↪️🖼️ 메타버스 전시회
연세대학교 데이터사이언스 학회 Data Science Lab 9기 & 10기,
Team CV_B,
김서진 | 박서연 | 윤형진 | 임선민 |
🎞️ 발표 영상 → 추후 추가 예정
📚 발표 자료
Data Science Lab 23-2 모델링 프로젝트에서 선보인 CV_B 특별전 에 오신 여러분을 환영합니다!
이번 전시가 특별한 이유는
첫 번째, 일상적인 풍경을 화가들의 화풍으로 재해석했다는 것,
두 번째, 이를 3D로 구현하여 입체감을 불어넣었다는 것입니다.
전시는 작품 생성의 파이프라인을 따라 다음의 두 코너로 구성되어 있습니다.
- AdaIN을 통한 고전과의 만남
- NeRF를 통해 살아난 입체
아래에 관람객 여러분의 이해를 도울 해설을 준비했으니, 함께 둘러보시겠습니다!
- Style Transfer 모델 AdaIN(Adaptive Instance Normalization)
- 3D view를 생성하는 모델 NeRF(Neural Radiance Fields)
를 활용해, 기존 NeRF 데이터셋에 화풍을 입히고 3D로 구현하는 하나의 파이프라인을 완성하였습니다.
-
NeRF LLFF(Local Light Field Fusion)
- 일정 거리에서 front-facing
- 고해상도
- 8개의 scene
style transfer 모델인 AdaIN 은 Adaptive Instance Normalization의 약자로,
adaptive라는 이름처럼 미리 학습하지 않은 이미지에 대해서도 transfer가 가능합니다.
기존 CIN(Conditional Instance Normalization)의 learned parameter
스타일 이미지의 평균과 분산이라는 통계량으로 대체하여
- 학습시켜야 할 파라미터를 줄이면서
- 임의의 스타일에 대해서도 적용 가능한 모델을 구축했습니다.
🎯Q. style transfer를 위해 AdaIN 을 선택한 이유?
→ 이번 프로젝트를 통한 최종적인 목표는 style transfer와 NeRF 모델을 합쳐 end-to-end로
스타일링된 이미지의 3D view를 생성할 수 있는 모델을 구축하는 것입니다.
- NeRF의 구동 시간이 오래 걸리는 만큼 style transfer 과정을 최대한 간소화
(임의의 이미지에 대해서도 구동 가능하면서 GAN처럼 heavy하지 않은 AdaIN 선택) - Style-GAN 등 style transfer GAN 내부에서 핵심적인 스타일링 임무 담당하는 것도 사실은 AdaIN
NeRF 는 9개의 FC layer로 구성된(MLP) 3D view synthesis 모델입니다.
view synthesis란 몇 개의 시점에서 촬영된 불연속적 이미지로부터 알지 못하는 시점에서의 모습을 추측하여
이미지가 연속적으로 구성될 수 있도록 하는 기술입니다.
일부 시점에서의 2D 이미지만 주어져도, 나머지 시점에서의 이미지들을 생성해낼 수 있기 때문에
이들을 모두 합치면 물체를 입체적으로 보는 것과 같은 효과를 얻을 수 있는 것입니다.
- input: 물체의 위치 정보 (x, y, z), 방향 정보 (
$\theta, \phi$ )
In our model...,- 위치 정보 (x, y, z): stylized 이미지의 값
- 방향 정보 (
$\theta, \phi$ ): 기존 NeRF 데이터셋(LLFF)의 값
- output: (새롭게 생성하고픈 view에서의) 물체의 RGB값, density값(투명도의 역수)
- 새롭게 생성하고픈 view로부터 물체를 향해 ray 발사
- ray 상의 여러 포인트 sampling → 각 포인트에서의 output 예측
- 처음 8개 FC layer: 위치 정보 (x, y, z)만 통과시켜 density 예측
- 마지막 1개 FC layer: 방향 정보 (
$\theta, \phi$ )를 합쳐 RGB 예측
(1) Positional Encoding
5차원의 저차원 input → 고차원으로 매핑, high-frequency 정보 보존
(2) Volume Rendering
모델의 output인 한 ray상의 여러 sample 포인트에서의 RGB, density값을 하나의 pixel로 병합
.mp4를 .gif로 변환하여 업로드하는 과정에서 부득이하게 화질 저하가 발생하여
원본은 메타버스 전시회에서 확인 부탁드립니다!
input | output |
---|---|
input | output |
---|---|
-
-
라이브러리 설치 문제로 Colmap 사용 실패
colmap을 통해 카메라 매개변수를 직접 얻는 데 실패하여 기존 데이터셋의 positional encoding 변수 활용 -
모델 size
Tensorflow 기반 공식 코드의 모델 사이즈 및 데이터셋이 커서 PyTorch 버전으로 재설계, 서버 활용 학습
-
-
- end-to-end 모델로 완성하기 위한 작업 진행 중
- 보다 발전된 버전의 NeRF 사용하여 모델 고도화
- 직접 촬영한 이미지로도 학습 예정
(end-to-end로 완성하는 작업 마무리 이후 추가 예정)
python run.py --config configs.txt
- main (실제 구동하는 파일)
main.py
- model (모델 내부 구조 파일)
encoder.py
decoder.py
- data (사용한 데이터 or 데이터 생성 파일) (예시입니다! 각 팀의 프로젝트 파일 구조에 따라 자유롭게 완성해주세요)