썸네일 출처: https://creativecloud.adobe.com/ko/discover/article/which-personality-test-is-right-for-your-creative-team
[가상인간연구팀 심홍매]
이미지 합성에서 이미지의 얽힘(entanglement)문제를 푸는 건 아주 중요하고 어려운 문제입니다. 예를 들어 사람의 얼굴에 있는 모든 수염을 자동으로 제거하거나, 혹은 완벽하게 수염을 붙히는 경우에도 수염과 얼굴 사이에는 일종의 얽힌(entanglement) 관계가 있기 때문에 최종 생성 된 사진은 다소 위화감이 생길 수 있습니다.
또한 서로 다른 물체를 합성하고 제거하는데 있어서 난이도는 천차만별입니다. 실 생활에서 몇가지 예를 들어보면 이해가 쉽습니다. 예를 들어 카레에서 강황을 제거하는 것은 고기 국수에서 고기를 골라내는 것보다 훨씬 더 어렵고, 커피 한잔 내에서 단맛을 줄인다는 것은 사실상 불가능합니다.
새로운 이미지를 완벽하게 생성하고 합성하기 위해 모델은 다양한 객체를 생성하는 학습을 할 수 있어야 하며 , 이상적으로는 서로 다른 특징(feature)과 개념(concept)을 분리할 수 있어야 합니다. 만약 모델이 나이, 성별, 머리 색, 피부 색, 감정 등을 분리 할 수 있다면, 우리는 하나의 프레임워크에서 이러한 구성 요소를 자유롭게 수정할 수 있고, 더 유연하게 이미지 생성 제어가 가능하여 얽힘(entanglement)를 극복하고 얼굴 이미지를 보다 더 디테일하게 생성 및 편집을 할 수 있을 겁니다.
지난 몇년간, 사용자가 슬라이더나 혹은 기존의 UI 인터페이스를 통해 이미지 내의 얼굴 핵심 특징을 유지하면서, 일부 특징을 추가,제거,변경할 수 있는 인터랙티브한 얼굴 편집 모델을 만들기 위한 시도들은 많았습니다. 하지만 GAN의 latent space 상의 잠재 된 특징(feature)과 스타일의 얽힘(entanglement)으로 인해 얼굴 특징을 임의로 편집할 만큼 기술이 성숙되어 있지는 않았습니다. 그중에서도 가장 어려운 부분은 바로 머리 색깔과, 헤어 스타일을 바꾸는 것입니다. 헤어라인과 얼굴 레이아웃을 다시 계산하지 않고 캐릭터의 헤어를 디자인(sizzling) 해주는 건 거의 불가능합니다.
최근 Adobe는 WACV 2022 컨퍼런스에서 이러한 근본적인 문제에 대해 새로운 접근 방식을 제안하는 “Latent to Latent: A Learned Mapper for Identity Preserving Editing of Multiple Face Attributes in StyleGAN-generated Images”라는 논문을 발표했습니다.
논문에서는 얼굴의 latent encoding을 입력으로 받고, 원하는 속성이 변경되어 편집 된 이미지의 latent space encoding를 출력하는 latent-to-latent(L2L) 변환을 수행하도록 신경망을 훈련하는 방법을 제안하였습니다. 전체 생성 파이프라인을 통해 네트워크를 end-to-end 방식으로 훈련함으로써 시스템은 기존 generator 아키텍처의 latent space에 적응 할 수 있으며 개인의 identity를 유지하는 것과 같은 보존 속성(Conservation properties)들은 학습 손실의 형태로 인코딩 될 수 있습니다.
아래 논문에서 제안한 latent-to-latent 네트워크 학습을 위한 임베딩 프레임워크 아키텍쳐 [그림 4] 를 통해 좀 더 자세히 설명을 드리겠습니다.
저자들은 학습 가능한 f 네트워크( [그림4] 참고) 외에도 고정 가중치를 가진 사전 훈련된 여러 구성 요소를 통해 정보가 흐르고 그 기반으로 네트워크가 학습 될 수 있도록 프레임워크를 만들었습니다. 이러한 구성 요소를 통해 다양한 정보 흐름을 적용하면 latent-to-latent 네트워크의 훈련에 기여하는 다양한 손실 함수를 정의할 수 있다는 장점이 있습니다.
위에서 설명한것과 같이 f(파란색으로 표시)를 제외한 모든 네트워크는 훈련 중에 고정되어 있습니다. 학습은 attribute loss (회색), cycle loss (빨간색), identity loss(녹색), neighborhood loss(보라색) 의 계산으로 이어지는 다양한 정보 흐름을 기반으로 합니다. 볼드 처리된 회색 화살표는 훈련 시간 동안 정보의 흐름을 보여줍니다. 그외의 기타 다른 모든 구성 요소는 학습 중에만 사용됩니다.
저자들은 네트워크가 독립적으로 제어할 수 있는 속성의 수는 인식기(recognizer)의 역량에만 제한을 받기에 속성 인식기가 있으면 해당 속성기를 모든 얼굴에 추가 할 수 있다고 합니다. 논문에서는 총 35가지 얼굴 속성을 조정 할 수 있는 latent-to-latent 네트워크를 훈련하였습니다.
latent-to-latent 네트워크가 훈련되면 미세 조정 없이도 임의의 이미지에 재 사용할 수 있습니다. 이러한 특성은 논문에서 제안한 아키텍쳐가 한번에 최종 사용자에게 완성된 상태로 배포할 수 있다는 것을 의미합니다. 이렇게 되면 신경망을 실행하기 위해 여전히 로컬 리소스는 필요하지만, 프레임워크가 분리되어 있기 때문에, 새로운 이미지에 대해서 추가 이미지 별 학습 없이 바로 모델에 던져서 임의로 변경할 수 있음을 의미합니다([그림6]데모 동영상 참고). 해당 방식의 주요 작업 결과 중 하나는 바로 네트워크가 타켓 벡터의 속성만 변경하여 latent space에서 identity 특성을 “freeze”할 수 있다는 것입니다.
[그림4]의 아키텍쳐에서 볼수 있듯이 학습한 네트워크는 35개의 latent 변환을 할 수 있지만 InterFaceGAN, GANSpace 및 StyleFlow 과 같은 유사한 알고리즘과의 비교 테스트를 수행하기 위해 속성 변환 수를 연령, 대머리, 수염, 표정, 성별, 안경, 피치, Yaw 등 총 8개로 축소하였습니다. InterFaceGAN에 대머리 및 수염을 추가하는 것과 같이 기존 알고리즘에 8가지 속성 중 제공되지 않는 속석들에 대해서도 도구화 작업을 다시 하였다고 합니다.
예상대로 라이벌 알고리즘들에서는 더 큰 수준의 얽힘(entanglement) 발생했습니다. 예를 들어, 한 테스트에서 InterFaceGAN과 StyleFlow는 나이를 적용하라는 요청을 받았을 때 캐릭터의 성별까지 변경을 하는가 하면 헤어 컬러까지 변경하였습니다( [그림5] 참고 ) . 최종 정량화된 실험 결과에서는 latent-to-latent 방식은 Yaw(head angle) 실험을 제외한 나머지 7가지 속성의 비교 실험에서 모두 기존 SOTA에 도달하거나 초과한걸 확인 할 수 있습니다. (논문 참고)
위에서 소개한 프레임워크를 구현한 인터페이스에서는 sliders를 자유롭게 움직여 성별과 수염을 원하는 만큼 빠르게 변경할 수 있음을 확인 할 수 있습니다.
해당 논문에서는 latent-to-latent 방식을 통해, 하나의 프레임워크 안에서 target 속성을 자유롭게 리얼타임급으로 편집할 수 있다는게 가장 큰 장점이 아닌가 생각합니다. 이 논문외에도 얽힘(entanglement) 관련 문제를 개선 하기 위한 연구들은 많이 진행되고 있는데요 이러한 기술이 계속해서 발전해나간다면 마우스 몇번의 움직임만으로 다양한 신규 이미지를 생성 할 수 있고, 또한 이러한 이미지를 활용하여 재미있는 서비스까지 만들 수 있지 않을까 기대해봅니다! 🙂