Open sghong977 opened 1 year ago
코드를 대충 뜯어보자.
pretrained models: out/ (.pth.tar)
다운 받으면 NeuMan Dataset은 아래와 같이 구성되어있다.
우선, 폴더는 비디오 클립 기준으로 나뉘어있다. 아래 내용은 'bike'를 예시로 봤다.
학습에 필요한 것들. 모든 프레임에 대해 아래 내용들이 있다.
Depth Map
학습할때는 이렇게 불러온 값에 scale 곱하는 듯..?
KeyPoints & Pose
Segmentation
SMPL
아래 내용은 비디오별로 파일 하나만 있는 것.
파일 각각이 뭘 의미하는지는 Preprocessing 과정을 보면 좀더 알 수 있을 것 같다.
NeuMan Dataset 안에 있긴 하지만 새 비디오에 대해서 학습하고 싶을때는 다음과 같은 과정이 필요하다.
Q. 9번에서 smpl_cap에 카메라 내부, 외부 파라미터 있던데 어떻게 구하지
preprocessing에서 딴건 대충 알겠는데 pose를 안해봐서 모르겠음. densepose로 뽑은건 왜 이미지 사이즈랑 똑같지? OpenPose 보면 관절 keypoint 좌표 어딘지만 저장하지 않나..?
Pose Estimation OpenPose, DensePose 설명
아 졸려...
joblib.open()
smpl_output_romp.pkl ['verts', 'joints3d', 'joints2d_img_coord', 'pose', 'betas']
smpl_output_optimized.pkl ['pose', 'betas'] 모든 프레임에 대해 있음
render_360.py로 scene or human 360도 생성하는구나.
~~
-------아무말ㄹㄹ 렌더링 결과 보니까 camera pose랑 human pose 계속 바뀌네? camera pose도 같이 바뀌는구나 reposing 어떻게 되는지 한번 보자
motion_name={speedvault, ...} <- 이거 지정된 모션만 할 수 있나? 딴거 못하나 코드 중간에 보면 raw_verts, Ts를 직접 지정해도 되고, predefined 값을 써도 되는 것 같은데
train_mode가 bkg면 scene nerf 학습, 아니면 human nerf 학습. (smpl only, smpl and offset으로 나뉨. 읭?)
가장 먼저 Scene NeRF만 따로 학습하잖아. loss 2개였어. RGB랑 밀도에 대한 regularizer. mask를 보고 사람 없는데서만 ray 뽑을거니까 좌표는 알겠어. 근데 viewing direction은 어디서 가져오는거야?
train.py의 train_background() coarse_net, fine_net = vanilla.build_nerf(opt) train_scene = neuman_helper.NeuManReader.read_scene() vanilla_nerf_trainer.NeRFTrainer의 train()으로 학습
trainers/vanilla_nerf_trainer.py NeRFTrainer의 train_batch()를 볼게요 delay_iter만큼 돌기 전이면 rgb loss만 발생, 그 이후에는 empty_space_loss도 같이 발생시킴. coarse_rgb_loss, coarse_empty_space_loss, fine_rgb_loss, fine_empty_space_loss = self.loss_func(batch, device)
학습 중 validation? 방금 얘기한 loss들 찍고 render한 이미지 저장함. render_utils.render_vanilla()가지고 생성하는데, output은 render, depth 이렇게 두가지. 이 함수에서 coarse_net, fine_net 따로 받는데 딱히 없으면 coarse_net으로 통일
이거 지금 논문내용(- ppt에 정리)이랑 와리가리 하면서 보고있는데 이어서 쓰겠음. train_human()에 뭐가 많아서 잠깐 튕겨져나옴
smpl에서 static joint 3d랑 joint 3d가지고 먼 threshold를 계산했어 이게 나눠진거
betas는 학습은 안되는거구 그냥 모델에 넣기만 하는건가?
ray 데이터 따로 나눠놨네 봐야지
컨테이너 하나 좀비되고 뭔가 불길한데..... 컨테이너 안 만들어지기 시작함 악..
전처리 비디오 주의사항
2022.01.02 Progress
Survey 현황
Code
TO-DO
[과정] NeuMan 셋업
주의사항: GPU 기종에 따른 CUDA 버전 문제
[2023.01.11 추가] 하.......... 해결이 아니었음. preprocessing이 안돌아서 중간에 추가함. detectron2 이런거 다 깔리고 conda env도 만든줄 알았는데 아니었음. neuman_env만 있네??
ddde5018e348
)conda env create -f environment.yml
or cuda 버전 다르게 약간 수정conda activate neuman_env
canonical pose render 실행
[과정] 새로운 포즈 빌드해보기
AMASS (ICCV19)
render_{reposing, gathering}.py
에서 사용)Telegathering
무슨 warning이지... 암튼 돌아감
카메라 포즈와 사람들의 춤 동작이 바뀌었다.
[Optional] ZJU Mocap dataset