Paper/Generation

Arc2Face: A Foundation Model for ID-ConsistentHuman Faces

침닦는수건 2024. 10. 8. 10:54
반응형

내 맘대로 Introduction

 

arcface 논문을 낸 그룹에서 후속 연구 느낌으로 낸 논문. arcface가 Face ID embedding을 훌륭하게 해주는 네트워크인 점을 이용해서 arcface embedding을 condition으로 사용하는 face 전용 diffusion model을 만들었다. 

 

diffusion model을 학습시킬만큼의 높은 자유도 ID embedding이 확보되어야 하므로 Webface42M + FFHQ + CelebHQ를 섞어서 arcface부터 large scale로 다시 학습시키고, 그것을 다시 diffusion model 학습에 활용했다.

 

SD의 새로운 버전이라고 볼 수도 있어서 기존 controlnet 같은 trick이 다 가능하다는 점도 눈에 띈다.

 

메모

앞서 요약한대로, arcface embedding conditioned SD 모델이다. 

심플하다. 

대신 ID embedding을 사용할 때 그냥 다른 encoder를 학습시킨게 아니라 

CLIP에 "a photo of {ID embed}"와 같이 섞어서 넣어주는 방식이라는 점. CLIP도 재학습된다. 

주목해야 할 점은 오히려 분석에 있다. 

SD를 뒷받침할 만한 large scale arcface embedding이 필요한데 

기존 데이터셋 중 나름 크다고 하는 FFHQ 70k 이미지를 사용해도 부족하다.

1명 당 1장의 이미지가 있기 때문에 id 분별력이 떨어진다는 것.

따라서 Webface42M 처럼 1명당 이미지가 여러개고 스케일도 훨씬 큰 데이터가 절대적으로 존재해야 학습이 가능하다고 한다.

"webface42m 10%"가 100%에 준하는 결과를 보이는 것을 보면 1명 당 여러장 >>> 이미지 개수 인 것 같다.

SD1.5에 

CLIP을 learnable로 열어두고

CLIP에 입력(text)에 ID embedding을 끼워넣어 재학습.

-> 의도는 CLIP features space와 ID embedding space가 자연스럽게 merging되도록 설계한 것.

-> 단순 MLP를 썼을 때보다 성능이 좋았다고 함.
webface42M을 쓰는게 좋은데, 해상도가 100 단위로 너무 작으므로 GFPGAN(텐센트에서 만든거라 성능이 괜찮은 SR)을 붙여서 4배씩 불려서 사용했다고 한다.
기존 알고리즘들보다 ID 유지력 (결과 사진을 다시 arcface embedding을 하고 원래 사진과 simiarlity를 비교함)이 뛰어남.

사람들 눈에도 훨씬 자연스럽게 보였다고 함.
수치로도 좋음

CLIP 자체에 ID embedding을 입력으로 넣어주는 방식이 MLP보다 약간이지만 성능이 더 뛰어남. 

PCA로 ID embedding을 보면 N을 작게 쓰면 터무니 없음( ID embedding이 진짜 복잡하다는 말. ->arcface파워가 굉장히 중요)
반응형