오픈AI, 위화감 없이 두 얼굴을 합성해 주는 ‘글로우’ 기술 발표
※ 아래 글은 정보통신기술진흥센터(IITP)가 발간하는 주간기술동향 1855호(2018. 7. 18. 발행)에 기고한 원고입니다.
▶ IITP에서 PDF 포맷으로 퍼블리싱한 파일을 첨부합니다. 가독성이 좋으니 참고하시기 바랍니다.
오픈AI, 위화감 없이 두 얼굴을 합성해 주는 ‘글로우’ 기술 발표.pdf
◾ 인공지능 관련 비영리 연구기관으로 설립된 ‘오픈AI(OpenAI)’는 위화감 없이 두 얼굴 사진을 합성할 수 있는 기술인 ‘Glow(글로우)’를 발표
▸ 오픈AI의 연구원인 프라풀라 다리왈과 더크 킹마에 의해 개발된 글로우는 ‘가역 1×1 중첩(invertible 1x1 convolutions)’ 기술을 이용하는 이미지 생성 인공지능임
▸ 글로우는 두 사진을 합성할뿐더러 합성의 정도를 조절할 수 있는데, 가령 왼쪽 입력 창에 천체 물리학자 닐 디그래스 타이슨의 얼굴을 넣고, 오른쪽 입력 i창에 여배우 라시다 리 존스의 얼굴을 넣은 뒤 어느 쪽을 많이 반영할 것인지 조작할 수 있음
Glow: Better Reversible Generative Models
(클릭하면 링크 사이트에서 두 얼굴 합성을 체험해 볼 수 있습니다)
▸ 합성 창의 MIX 버튼 위치를 중앙 위치로 설정하면 두 사진 이미지를 균일하게 합성하게 되는데, 결과는 실재 인물일 것 같은 자연스러운 남성의 얼굴이 생성됨
▸ MIX 조절 버튼을 왼쪽으로 옮기게 되면 결과 값은 왼쪽 입력 창에 있는 디그래스 타이슨의 특징이 더 강하게 반영하지만, 이 역시 MIX가 중앙일 때 나온 것과 마찬가지로 상당히 자연스러운 느낌을 줌
▸ MIX 조절 버튼을 오른쪽으로 옮기면 당연히 리 존스의 얼굴 특징이 더 많이 반영되며, 결과 값은 약간 중성적 느낌이 나는 여성의 사진을 생성함
▸ 오픈AI는 글로우를 ‘더 나은 가역적 생성 모델(better reversible generative model)'이라 설명하고 있는데, 한쪽 이미지와 다른 한쪽의 이미지 사이를 쉽게 오가며 다양한 합성 이미지를 생성할 수 있다는 뜻을 담고 있음
<자료> OpenAI Blog
[그림 1] 글로우를 이용한 두 사진의 다양한 합성
◾ 글로우는 얼굴 사진의 합성 외에도 사진에 ‘나이, 수염, 미소’ 등의 속성을 추가하여 이미지를 자연스럽게 변화시키는 기능도 제공함
<자료> Fast Company
[그림 2] 얼굴 속성 값의 변화
▸ 글로우는 학습한 이미지를 토대로 자동으로 레이블을 붙일 수 있는 것도 특징인데, 데모용으로 준비된 3만 명의 얼굴 사진을 학습시키면 자동으로 ‘미소, 나이, 가는 눈, 금발, 수염’ 등의 레이블을 설정함
▸ 자동으로 설정된 레이블은 나중에 자유롭게 조작할 수 있으며, 새로 입력된 이미지에 속성 변화를 추가할 수 있음
▸ 가령 왼쪽 입력 창에 유명 AI 연구자인 제프리 힌튼의 얼굴 사진을 세팅하고, ‘웃음-나이-금발-턱수염’ 등의 속성 값을 최대로 하고, ‘가는 눈’ 속성 값을 최대로 하면(눈 크게 뜨기 설정), 오른쪽의 출력 창에 설정을 반영한 변경된 사진이 생성됨
▸ 수염이 검은 것이 약간의 위화감을 주기는 하지만, 실재한다고 해도 이상하지 않은 남성의 얼굴이 생성되며 AI가 독자적으로 판단해 만들어 낸 것 같은 느낌은 주지 않음
◾ 오픈AI는 글로우를 깃허브(GitHub)에 공개해 누구나 자유롭게 사용해 보도록 하고 있음(https://github.com/openai/glow)
▸ 글로우를 동작시키기 위해는 기계학습 오픈소스 라이브러리인 텐서플로우(TensorFlow)와 우버가 만든 텐서플로우용 오픈소스 분산 딥러닝 프레임워크인 호로보드(Horovod)가 필요하며, 구체적인 조작 방법 등은 글로우 문서에 설명되어 있음
▸ 문서는 ‘https://d4mucfpksywv.cloudfront.net/research-covers/glow/paper/glow.pdf’에서 다운로드 받을 수 있음
▸ 두 연구원은 한 사진에서 다른 사진으로 넘어가는 도중의 변환 이미지 완성도에 대해 ‘부자연스러운 합성이 보인다’며, 보다 자연스러운 변화를 주기 위해 자동회귀모형(autoregressive model)과 VAE 기법을 사용해 개선하고 싶다는 뜻을 밝히고 있음
▸ VAE(Variational Autoencode, 변동 자동 인코딩)는 딥러닝 모델 중 하나로, 학습 데이터를 바탕으로 그 특징을 파악하여 학습한 데이터 세트와 비슷한 데이터를 생성할 수 있음