Paper/Human

Generative Human Geometry Distribution

침닦는수건 2025. 10. 27. 17:02
반응형

내 맘대로 Introduction

 

Geometry Distributions 을 준비하면서 동시에 준비한 듯한 논문. 데이터의 표현법을 고민했으니, 이 표현법을 사용해서 뭔가 새로운 시도를 해보고 싶었을 것이다. 그 결과 3D generative model의 새로운 접근을 보여준다. 기존 방식들은 SDF representation을 사용하므로 학습이 굉장히 어렵다. surface point sampling 방식에 따라서, 그리고 네트워크 크기에 따라서 말이다. 저자들이 이전 논문에서 제안한 방식은 학습만 된다면 데이터를 효과적으로 표현하는 대체재를 만들기 때문에  좀 더 효율적인 모델 학습이 가능할 것으로 기대된다.

 

일단 budget의 한계인지 사람 데이터로 scope를 줄여서 시도했다. objaverse 같은 수억 데이터를 직접 geom distr로 표현해서 뭔가를 시도해보기엔 죽기 전에 안 끝날 것이기 때문에 범위를 확 줄였고, 이미 distribution으로 표현된 데이터군을 선별한 듯 하다. 

 

SMPL로 이미 사람 데이터는 distribution화 되어있으므로, 별도로 geom distr를 scracth부터 학습하지 않고 SMPL distribution+feature을 decoding했을 때 surface point가 나오도록 학습을 한 뒤, feature만 generative model로 바꿔주는 식의 접근을 했다. 다시 말하면 SMPL에 입힐 변형량을 3D gen하는 방식.

 

메모

flow matching이 대세긴 대세인가 보다. 

diffusion model의 한 패러다임인데, 네트워크가 noise만 예측하는 것이 아니라 변형량 자체를 예측하도록 하는 방식.

foward-inverse 추적이 가능함.

일단 데이터의 distribution이 존재하는 사람 데이터로 시작.

SMPL fitting이 완료된 데이터를 SMPL vertex map + feature map으로 변환해서 준비해둔다. 

이를 위해서 (a)와 같은 denoiser 이전의 encoder + upsampler가 추가된다. 

샘플마다 feature map을 부여하고, 학습 과정에서 샘플 별 feature map이 학습되도록 함. 

나중에 이 feature map들만 싹 모아서 diffusion model의 학습 데이터로 이용.
Geom distr는 normal distribution을 source distribution으로 가정했지만 여기선 사람 데이터 distribution이 존재하므로 굳이 normal로 안 쓰고 SMPL distribution을 쓴다. 
사람 스캔 데이터 별로 SMPL 피팅이 완료되어있는데 SMPL surface point와 nearest point를 찾아서 매칭을 해둔다. 

여기서 smpl surface point는 무한개 뽑을 수 있기 때문에 pair가 사실 상 무한개 일것.

이 때 관찰된 하나의 문제는 nearest 매칭으로만 하고 끝내면 one-to-many matching이 되는데 high frequency 영역에서는 scan의 많은 점들이 하나의 SMPL 점으로 매칭될 것.

같은 값이 많이 학습 과정에서 들어가면 성능이 떨어지므로 매칭된 smpl 점을 살짝 NOISE 줘서 위치를 변화시켜 줌 .

일종의 트릭.
하나 더 surface point를 뽑을텐데, 사람이라는게 몸통은 잘 안움직이고 팔다리가 많이 움직이기 때문에 수치적으로 보면 xyz 중에 몸통 영역 xyz는 샘플이 자주되는 모양이 될테고 팔다리는 샘플이 자주 안되는 모양처럼 보일 것이다. 

다시말해 학습에 보여지는 xyz 범위가 너무 뭉친다는 것.

이를 해결하기 위해서 SCAN - SMPL different vector화 한다. 데이터를

변형량+방향을 예측하도록 하므로 이제는 값의 범위가 몸통이건 팔이건 상관없이 비슷비슷해진다. 따라서 안정적인 수치 범위를 확보할 수 있음.

이에 따라 네트워크의 출력도 변형량의 변화량으로 다시 정의됨.

위와 같이 정의해서 한번 학습이 완료되면 이제는 condition을 추가한다. 

image나 text, pose, normal condition이 추가될 수 있도록해서 한번 더 학습해준다. 


사소한 트릭으로 입력 SMPL vertex map을 넣을 때 뒤에다가 segmentation map이랑 smpl normal map을 같이 넣어줬다고 함.



condition으로 dino feature도 들어감.

데이터 셋은 THHUman이랑 4DDress 썼다고 함.

데이터 규모가 크진 않다. feasibility만 보는 수준.


geom distr representation이 새로운 3D gen 모델에 사용될 수 있음을 이론적을 보인 것이 크고, 아직 성능은 갈 길이 먼 듯 하다.


Nearest matching할 때 SMPL point에 noise를 주는 트릭은 이것 때문일 것 같다. 
반응형