Paper/Human

POCO: 3D Pose and Shape Estimation with Confidence

침닦는수건 2024. 5. 7. 11:21
반응형

내 맘대로 Introduction

 

top-down 방식의 HMR 논문들의 공통점은 추정값에 대한 confidence가 없다는 것이다. keypoint는 애초에 heatmap으로 추정하기 때문에 confidence를 쉽게 얻어낼 수 있지만 파라미터를 추정하는 HMR 시리즈는 confidence를 얻어내기 어렵다. 생각해보면 당연히 필요한 것이었는데 명확히 방법론이 없어서 구현되지 못했던 내용.

 

조건은 기존 HMR에 그대로 갖다 붙일 수 있도록 구현해야하는 것 + confidence가 실제 uncertainty를 잘 반영할 것 2가지다.

 

핵심은 생각보다 간단하다. 그냥 uncertainty(혹은 confidence)를 추정하는 네트워크를 추가하고 loss term의 분모에다 갖다 붙이는 것이다. 그러면 pose loss가 클 때 uncertainty는 덩달아 커지고, 작을 땐 같이 작아지기 때문이다. 

 

하지만 그 과정에서 단순히 분모에다 붙이면 uncertainty distribution이 gaussian noise이라고 암묵적으로 가정하게 되는 것인데 실제 uncertainty distribution은 더 복잡하기 때문에 uncertainty distribution 모델링에 힘쓴 것이 주 내용이다.

 

메모


기존 Regressor에 갖다 붙일 수 있는 uncertainty regressor를 붙이는 내용

a) 가장 심플하게 구현
b) 조금 더 심화
c) 최종 심화

순서로 설명하기 때문에 따라가면서 이해하기 아주 좋음. 구성이 탄탄한 논문.
------------------------------
Normalizing flow에 대해 이해를 해야 함.

이건 simple distribution - > complex distribution으로 mapping하는 과정이라고 보면 됨. 구현은 f(simple distr.) 처럼 함수 하나. 

대신 수학적으로 simple<-> complex가 invertible함이 밝혀져있고, 두 분포 간의 관게는 수식(1)과 같이 표현할 수 있다. 

가장 간단한 방식은 수식(2)과 같이 기존 pose loss 분모에 uncertainty를 갖다 붙이는 방식이다.

pose loss 자체가 MSE loss + pose param 자체도 gaussian으로 만들어졌으므로 전체가 대충 gaussian이다. 따라서 분모에 제곱형태로 나눠주기만 하면 큰 무리없이 전체를 gaussian distr.로 모델링 가능.

pose loss 커지면 sigma도 커지고
pose loss 작아지면 sigma도 작아지도록 유도 됨.
그런데 모조리 gaussian이라고 가정하는 것에는 무리가 있음. image 분포도 그렇고 uncertainty도 gaussian이라고 퉁 쳐버리는 것은 성능 이슈가 있을 수 있음

따라서 gaussian 보단 복잡한 모델링을 하기 위해서 normaling flow 적용.

f(gaussian) 함수를 하나 만들어서 추가해줌. gaussian <->complex 간의 관계는 수식(1)에 따라서 추적

loss를 수식(4)처럼 쓰면 학습도 가능.
수식(4)를 보면 f(z)로 만든 새 분포 자체가 loss에 그대로 들어감.

즉, f(z)가 추정값이 그 자체가 loss이므로 학습 초기 불안정성이 큼.

따라서 중간에 기준 잡아줄 gaussian 하나 추가.

z -> Q(z) : 새 gaussian 뱉어주는 네트워크.

최종적으로 f(z)는 residual만 뱉으면 되므로 안정성 향상됨.

위 내용까지 해도 잘 동작할 수 있겠지만 성능 향상을 위해

새로 추가한 NFlow network에 image feature를 추가 입력으로 해줌.

Normalizing flow 자체가 uncertainty modeling을 위한 것인데 뭘보고 uncertainty distribution을 예측할지 정보가 있긴 해야 한다.

가장 직관적인 것이 image feature. 따라서 image feature를 regressor 단에서 끌어와서 입력으로 넣어줌.

수식은 그대로 유지되고 weighting factor만 추가됨.

NFlow net이 uncertainty distribution을 예측하면 그 scale을 결정해주는 NN sc net도 image feature를 받는 것이 당연.

근데 image feature와 더불어 pose 까지 받으면 uncertainty scale 결정하는데 도움이 많이 될 것 (직관적으로도)

그래서 여기다 pose param을 추가 입력으로 넣어줌.

원래 regressor 학습 시키는 loss 그대로에 normalizing flow loss가 추가 된 형태

기존 2d/3d regression loss 내부에 uncertinaty가 녹아들어있음 수식(3)과 같이 업데이트된 pose param을 최적화하니까.


갖다 붙이면 기존 regression 성능도 오름.
반응형