한국인공지능학회

Recent trends of text-to-image translation models [1/4] ( UNIST 유재준 교수님 ) / 텍스트-이미지 생성 모델 개요

Suhd 2023. 1. 20. 19:27

일정에 적힌 세션 내용은 위의 제목과 같았지만

실제로 교수님께서는 Controllable Image Synthesis라는 주제로 발표를 하셨습니다.

목차는 다음과 같습니다.

  • Controllable Image Synthesis의 개념 및 역사
  • Controllable Image Synthesis의 지향점

​​

 

DALL·E 2 ( https://openai.com/dall-e-2/ )

 

 

옛날부터 Image를 잘 다루는(manipulate) 방식에 대해서는 꾸준한 연구가 있어왔다.

하지만 2014년 GAN이 등장하고

이후 2016년 입력하는 text에 조건부적인 이미지 생성 모델을 다루기 시작함으로써

CV 분야는 의도된 이미지 생성에 있어 혁신을 이루었다.

 

그렇다면 생성 모델이 무엇인가?

 

주어진 데이터에 대해 그 데이터 분포를 얻었을 때 확률 모델을 사용해서

그 분포를 근사(approximate)할 수 있는 모델

이런 생성 모델의 특징 중 하나는

학습이 잘 된 생성 모델을 가지고 Sampling(뽑기)을 할 수 있다는 점이고

이를 가지고 많은 재미있는 연구를 할 수 가 있다.

 

 

이때 학습 데이터 내에 존재하는 분포를

latent distribution ( 잠재 분포 )라고 한다.

우리가 생성 모델을 학습시키면서 바라는 점이라 한다면

우리가 모르는 데이터에 숨겨진 정보 분포를 모델에 잘 학습하여 근사하고

최종적으로 학습 데이터와 비슷한 성격을 지닌 다양한 출력을 얻어내는 것이다.

하지만 중요한 점이

이 모델을 우리가 다루기(manipulate) 쉬워야 한다.

input으로 주는 parameter, 모델의 구조같은 것들이 다루기 쉬워야 한다.​

 

 

하지만 원초적인 질문부터 하고 시작해보자.

왜 지금 생성 모델이 HOT 한가?

가공할만한 모델의 성능 때문이다.​

Space opera theater

 

위의 그림은 요즘 뉴스에서도 떠들썩 했던

미술대회에서 상을 받았다는 AI로 만든 그림이다.

이전에는 상상할 수 없었던 것들이 현재

매우 빠른 시간에

놀라운 성능으로 가능해지고 있다.

더 나아가 요즘에는

이미지를 넘어 동영상까지 생성해내기 시작한다.

그것도 좋은 성능으로...!

fireworks(폭죽)이라는 단어를 text-conditioned diffusion model에 넣어 만든 비디오

정말 그럴듯한 이미지와 동영상들이 쏟아져 나오고 있으며

순식간에 인간보다 뛰어난 작품을 생성해내는 것을 보아

인류는 지금 매우 큰 도약을 하였다는 것이 실감나기 시작한다!

 

피그말리온 조각상 ( 출처 : 위키피디아 )

 

 

기술적인 진보에 열광하는 측면도 있겠지만

개인에게는 자신의 상상을 실현하는 도구로써 사용된다는 점도 주목할만 하다.

과거 사람들은 무언가를 생성할 때,

수많은 고민과

수많은 시행 착오를 거쳐

창작의 고통을 겪었다면

이제는

자신이 원하는 캐릭터를 만나고 싶다면

NovelAI라는 이미지 및 텍스트 생성 모델을

웹에서 사용 가능하게 만든 사이트에 방문하면 된다.

위처럼 간단한 스케치를 그려서 전달하면​

상상 이상의 결과를 순식간에 받아볼 수 있다.

( TMI : 최대한 얌전한 이미지를 가져오려고 노력했다....! )

 

 


 

이제 본론으로 들어가보자.

 

왜 생성 모델 중에서도 Controllable 생성 모델에 집중해야 하는가?

우리의 목표는 모델을 잘 컨트롤 하고 싶은 것이다

현재 상당히 잘 동작한다고 평이 좋은 stable diffusion 모델을 가지고

" 라면을 먹는 내 최애 캐릭터 "를 그려달라고 하면

아래와 같은 당혹스러운 그림들이 자주 출력된다.​

 

모델이 손가락과 젓가락과 면 등

디테일한 부분들은 잘 처리해내지 못하는 것을 볼 수 있다.

또한 라면을 젓가락으로 먹어야 한다는 사실을

모델이 이해하지 못했다는 사실 또한 알 수 있다.​

https://twitter.com/fchollet/status/1581725361234407424

 

https://twitter.com/fchollet/status/1581725361234407424

 

또 다른 예시로

"salmon in the river" 를 모델에 전달하게 되면

갑자기 생 연어 회가 강에서 떠다니는 것을 볼 수 도 있다.

틀린 것은 아니지만, 우리가 바라는 것은 아니다.

우리는 굳이 추가적인 설명 없이도 우리가 원하는 결과를 내뱉는 모델,

더 쉽게 control(조작) 할 수 있는 모델을 원한다.

아쉽게도 현재로서는 부족한 점이 많이 보인다.

 

잘 동작하기는 한다. 하지만 우리가 원하는 방식은 아니다

 

골치아픈 점은 위 문제를 해결하는 것 또한 문제라는 점이다.

어떤 부분이 문제인지 정확히 알기가 어렵기 때문이다.

모델은

프로그램을 통해 짜여진 network로 이루어져 있기에

학습된(leraned) 신경망(network)를 수정하는 작업은 매우 까다로운 작업이다.

그래서 Controllable 하다는 말은

내부의 어떤 부분이 어떻게 동작되는 지를 정확이 이해하고 있어

특정 부분을 변화시키면 어떻게 바뀌는 지에 대해 확실히 알고 있다는 뜻이기에

우리가 원하는 방향대로 출력을 내뱉는(생성해 내는) 모델을 만들기 위해서는

모델이 Controllable 해야 한다는 것이 매우 중요하다.​

Controllable한 생성모델이 중요하다!

 
 

어떤 Controllable image synthesis에 초점을 두어야 하는가?

그러기 위해 Controllable image synthesis의 정의(definision)을 알아야 한다.​

A method that allows users to explicitly generate or edit desired content in an image in a semantically meaningful way, without affecting unintended parts.

명백하게 원하는 대로 생성할 수 있고 원하는 컨텐츠를 수정할 수 있는 method(방법)인데

내가 의도하지 않은 부분은 건들여지지 않아야 하며, 인간에게 의로운 의미를 지니는 방향으로 진행되어야 한다.

아주 당연한 이야기처럼 보이지만

현재 모델은 이걸 못하고 있다...

그리고 더 중요한 것은

(and most importantly) It should be easy!

그 방법이 매우 쉬워야 한다!

그럼 어떻게 쉬워야 하는가?

  • 직관적이고(intuitive way)
  • 사람에게 친숙한 방식이고(human-friendly way)
  • 해석 가능해야 한다 (interpretable way)

그럼 이제 다음을 생각해보자.

사람에게 가장 직관적인 방법이면서 컴퓨터도 이해하기 쉬운 방법이 무엇인가?

 

'문자' 이거나 '문자의 변형' 이다.

'그림' 이거나 '그림의 변형' 이다.

모든 의미는 문자를 통해 전달 될 수 있다.

이미지 또한 의미를 전달 할 수 있는 매우 유용한 수단이다.

이때, 문자와 이미지는

사람과 컴퓨터에게 모두 친숙하다.

 

이제 위의

문자와 이미지를 통해 Contorl해보자고 하는데

Control 하는 방식에 따라

3가지로 나눌 수 있다.

  1. Conditional Image Synthesis
  2. GAN Space-based Image Synthesis
  3. Causally Controllable Image Synthesis

Conditional Image Synthesis​

생성 모델에 prior Condition을 줄 것인데 ( 사건 발생의 원인을 부여하겠다는 의미 )

이 또한 3가지로 나눌수 있다

  • Label control
  • Visual control
  • Text control
 

Label control

자세히 이야기 하자면,

하나의 그림에 대해

그림에 어떤 것이 존재하는지?

그림의 사물이 어디에 존재하는지?

더 나아가 그림의 사물이 어떤 사물의 어떤 방향에 존재하는지?

와 같은 label을 사용해 control 하는 것이다.

또 다른 방법으로 이미지에 박스를 쳐서 의미론적 마스크(semantic mask)를 주는 경우도 있다.


Visual control,

according to differnet input priors

Visual.

이미지의 변형을 주는 것이다.​

pix2pix

스케치를 전달해 줄 수 도 있고​

StarGAN v2: Diverse Image Synthesis for Multiple Domains

유재준 교수님이 직접 참여하신 논문이기도 한

StarGAN v2라고 해서

이미지 자체를 전달해 줄 수 도 있다.

이 논문 같은 경우 input을 넣으면 input 특성을 유지해서

여성과 남성으로 변형시킨다던지

다른 종류의 동물로 변형시키는 것이 가능하다.

 

Text control

이 글의 주 topic인

문자 혹은 문자의 변형을 전달하는 것이다.

이미지의 Caption(자막, 설명) 일 수 도 있고

사람의 말을 담은 Dialogue(담화)일 수도 있다.

두 번째에 해당하는 Dialogue(담화)를 전달하는 모델의 대표적인 예라고 한다면

그 유명한 DALL·E이다.

https://openai.com/dall-e-2/
https://openai.com

 

GAN Space-based Image Synthesis

GAN Inversion이라고 불리는 분야

 

앞선 Conditional Image Synthesis는

좋은 성능을 보였고

이미지 생성을 Controllable한 영역으로 안내하기는 하였지만

여전히 impractical한 부분이 부분이 존재한다.

바로 데이터셋의 의존성이 매우 크다는 점이다.

텍스트에서 이미지로의 변환이 이루어 지려면

모델 학습에 있어

텍스트 데이터와 이미지 데이터

둘 다 충분히 많이 있어야 한다.

하지만 이 둘을 항상 만족시키기란 매우 어렵다.

그렇다면,

이미 좋은 성능을 보이는 생성모델이 존재하고 있다면

GAN을 잘 사용해서

새로운 성격의 이미지를 만들어 낼 수 있도록 해보자는 것이

GAN Space-based Image Synthesis 라고 할 수 있다.

이 방법론은

앞서 GAN이 좋은 성능을 내었기 때문에 사용해보자는 것인데​

이전 GAN이 Z라는 Latent Vector를 받아서 output Image를 내보내는 것이라면,​

이를 거꾸로,

현실 이미지 X가 있고, 학습된 MLP가 존재한다면

X를 만들어 낼만한 Latent Vector Z 가 무엇인지를 질문하는 과정이다.

그래서 GAN Inversion이라고 불린다.

Latent Vector Z 를 찾기 위해

새로운 MLP를 학습하던지, Optimization 문제를 풀던지 한다.

( Optimization을 이용해 Z를 구하다 서로 다른 이미지마다 매번 Optimization 문제를 풀어야 하기 때문에 그리 좋지 않을 수 있고, 그렇다면 Z를 생성해내는 새로운 인코더 MLP를 학습시키면 속도는 빠르지만 Z의 품질이 인코더의 성능에 의존한다는 문제점이 생긴다. 훗날에는 이 둘을 합성한 방법을 통해 Z를 구하는 방법이 제안되었다. )

어떻게든 다양한 방식을 통해 X에 대응하는 Z를 얻어내기만 하면

Image를 조작할 수 있는 조건이 완성된다. (이렇게 조작하는 방식을 Latent Walk라고 부른다.)

우리는 학습된 이미지 생성 Generator가 있기 때문에

Z와 저 Generator를 가지고 있다면

Z를 특수한 방법으로 약간씩 수정해

output Image를 우리가 원하는 특징을 가지는 이미지로 변형시킬 수 있다는 것이다...!

​​

Causally Controllable Image Synthesis

: 나중에 다루도록 하자.​


 

그 중에서 첫 번째에 해당하는

Conditional Image Synthesis

Text control 에 대해

앞으로의 글에서 다룰 것이다.