Skip to main content

DeepFaceDrawing 개요

이 글은 DeepFaceDrawing의 핵심 개념을 정리하고, 이미지-투-이미지 변환 기법을 자세히 소개하는 개요입니다. 이 글은 AI 번역본입니다. 오역이 있을 경우 댓글로 알려주세요.
Created on September 12|Last edited on September 12
이 글에서는 다음에서 제시된 핵심 아이디어를 살펴보겠습니다. DeepFaceDrawing: 스케치로부터 얼굴 이미지를 딥 생성하기 Shu-Yu Chen, Wanchao Su, Lin Gao, Shihong Xia, Hongbo Fu 작성

논문 | 코드 \rightarrow

목차






이미지-투-이미지 변환이란?

이미지-투-이미지 변환은 …의 한 종류입니다 컴퓨터 비전 입력 이미지와 출력 이미지 사이의 매핑을 학습하는 것을 목표로 하는 딥러닝 작업들. 이미지-투-이미지 변환은 한 장면의 가능한 한 표현을 다른 표현으로 변환하는 작업입니다.
높은 수준에서 보면, 픽셀로부터 픽셀을 예측하는 것입니다. 다음과 같은 예시 작업이 있을 수 있습니다:
  • 딥 이미지 인페인팅 - 이 경우 입력 이미지는 일부 픽셀 값이 누락되어 손상되어 있으며, 과제는 출력에서 그 빈 영역을 채우는 것입니다. 다음은 딥러닝을 활용한 이미지 인페인팅 소개.
  • 이미지 색채화 - 흑백 이미지를 입력으로 넣고, 가능한 한 사실적으로 색을 입힌 결과를 얻고자 합니다. 다음은 Boris Dayma가 다룬 DeOldify 소개 기사.
  • 스케치에서 이미지로 - 객체의 스케치를 입력으로 넣고, 현실감 있는 이미지를 출력으로 얻고자 합니다. 이 글에서 다루는 논문은 스케치를 이미지로 변환하는 예시입니다. 이제 자세히 살펴보겠습니다.
    
  • 
그림 1: 이미지-투-이미지 번역 과제의 예시. (출처)
이미지-투-이미지 번역의 최근 발전으로 자유롭게 그린 스케치에서 얼굴 이미지를 빠르게 생성할 수 있게 되었습니다. 그러나 이러한 기법들은 모두 입력 스케치에 쉽게 과적합되는 문제가 있습니다. 그 결과, 전문가가 정교하게 그린 스케치를 요구하게 되어, 이 기법들을 기반으로 한 응용 프로그램을 사용할 수 있는 사람이 제한됩니다.
이러한 딥러닝 기반 해법들은 입력 스케치를 강한 제약으로 간주하고, 누락된 질감과 음영 정보를 추론하려고 합니다. 따라서 문제(작업)는 다음과 같이 정식화됩니다. 재구성 문제입니다. 더 나아가, 이러한 모델들은 현실적인 이미지와 그에 대응하는 에지 맵 쌍으로 학습됩니다. 그래서 테스트에 사용하는 스케치 역시 에지 맵과 유사한 품질을 갖춰야 합니다.

소개: DeepFaceDrawing

DeepFaceDrawing의 저자들은 과적합 문제와 전문가 수준의 스케치를 요구하는 한계를 해결하기 위해 새로운 스케치 기반 이미지 합성 방식을 제안했습니다. 본 연구의 기여는 다음과 같습니다:
  • 입력 스케치를 …라는 발상 소프트 이미지 합성을 유도하는 데 하드 제약이 아닌 소프트 제약으로 활용한다 — 핵심 아이디어는 이를 암묵적으로 적용하는 것이다 그럴듯한 얼굴 스케치의 공간을 학습하다 실제 얼굴 스케치 이미지로부터 이 공간을 학습하고, 그 안에서 가장 가까운 점(다양체 사영을 사용)을 찾아서 대략적인 입력 스케치. 이를 통해 제안된 방법은 거칠거나 불완전한 스케치로부터도 고품질의 얼굴 이미지를 생성할 수 있다.
  • 로컬에서 글로벌로 확장하는 접근 — 제한된 학습 데이터 때문에 전역적으로 그럴듯한 얼굴 스케치 공간을 직접 학습하는 것은 현실적이지 않습니다. 따라서 저자들은 핵심 얼굴 구성요소의 특징 임베딩을 학습하는 방법을 제안했습니다. 핵심 구성요소에는 눈, 입, 코가 포함됩니다. 핵심 아이디어는 입력 스케치의 해당 구성요소들을, 학습된 구성요소 다양체에 가깝도록 끌어당기는 것입니다.
  • 임베딩된 구성요소 특징을 다채널 특징 ���을 중간 결과로 활용해 정보 흐름을 개선하면서 현실적인 이미지로 매핑하는 새로운 딥 뉴럴 네트워크(자세한 내용은 다음 절에서 다룹니다).
제안된 딥러닝 프레임워크를 살펴보기 전에, TwoMinutePapers의 영상 하나를 소개합니다. 이 영상은 이 특정 딥러닝 과제에 대한 직관을 높이는 데 도움이 됩니다.



제안된 방법 개요

이 절에서는 고품질 스케치-이미지 변환을 가능하게 하는 모델 프레임워크를 간단히 소개합니다. 프레임워크는 세 가지 주요 모듈로 구성됩니다: CE(Component Embedding), FM(Feature Mapping), IS(Image Synthesis). 이 프레임워크는 두 단계로 학습됩니다. 이제 이 프레임워크의 세부 사항을 살펴보겠습니다.
그림 2DeepFaceDrawing 아키텍처 개요

그림 2는 프레임워크가 스케치(단일 채널 이미지)를 입력으로 받아 512 × 512 해상도의 고품질 얼굴 이미지를 생성함을 보여준다. 따라서 이 프레임워크는 고해상도 스케치-이미지 합성이 가능하다.

구성요소 임베딩(CE) 모듈과 학습 단계 II 학습

아키텍처 설계

첫 번째 서브네트워크는 각 얼굴 구성요소의 특징 임베딩을 학습하는 CE 모듈로, 이를 사용하여 담당합니다 별도의 오토인코더 네트워크따라서 이 모듈은 구성 요소 스케치를 의미론적으로 유의미한 특징 벡터로 변환한다. 오토인코더에 대해 더 알아보려면 다음을 참고하라. W&B를 활용한 딥 생성 모델링을 향하여 보고서.
사람의 얼굴은 뚜렷한 구조를 가지므로 얼굴 스케치는 다섯 가지 구성 요소로 분해한다: 왼쪽 눈, 오른쪽 눈, 코, 입, 나머지(앞의 네 구성 요소를 제거한 이후의 스케치). 생성되는 얼굴의 유연성을 최대한 활용하기 위해 왼쪽 눈과 오른쪽 눈은 서로 독립적으로 다룬다. 이렇게 다섯 구성 요소가 주어지면, 각 구성 요소의 특징 임베딩을 학습하기 위해 다섯 개의 별도 오토인코더 네트워크를 사용한다.
  • 각 오토인코더는 5개의 인코딩 층(일반적으로 합성곱 층)과 5개의 디코딩 층(일반적으로 디컨볼루션 층)으로 구성된다. 병목 구간은 잠재 공간 차원이 512인 완전연결 층이다. 저자들은 잠재 변수의 개수를 달리하며 실험했지만, 해당 설정에서는 512가 가장 좋은 성능을 보였다.
    
  • 
그림 3: CE 모듈에서 특징 차원 수에 대한 제거 실험 결과. (출처)
  • 단순한 합성곱층이나 디컨볼루션층 외에도, 저자들은 인코더와 디코더에 잔차 블록을 사용했다. 그림 4는 CE 모듈의 아키텍처를 요약한다. Conv2D 블록 그리고 ConvTrans2D 블록 배치 정규화와 Leaky ReLU 활성화를 따르는 합성곱/디컨볼루션 층이다.
    
  • 
그림 4구성 요소 임베딩 모듈의 아키텍처. (출처)

단계 II 학습

DeepFaceDrawing은 두 단계로 학습된다. 첫 번째 단계에서는 구성 요소 임베딩을 학습하는 데 초점을 맞춘다. 이 단계에서는 다음만 학습한다 구성 요소 임베딩 구성 스케치를 사용해 특징 임베딩을 위한 다섯 개의 개별 오토인코더를 학습하는 방식으로 모듈을 구성한다. 학습은 자기 지도 방식으로 수행되며, 입력 스케치 구성 요소와 복원된 이미지 사이의 평균제곱오차(MSE) 손실을 사용한다.

특징 매핑(FM) 모듈 - 단계 IIII 학습

아키텍처 설계

두 번째 서브네트워크는 특징 매핑과 이미지 합성 두 모듈로 구성된다. 이 절에서는 FM 모듈과 두 번째 단계에서의 학습 방법을 다룬다.
FM은 구성 요소를 특징 벡터학습 1단계에서 학습된 보틀넥 벡터 해당 특징 맵.
  • 먼저, 입력 구성 요소 이미지의 구성 요소 벡터를 해당 구성 요소 매니폴드로 사영한다. 이를 위해 고정된 CE 모듈의 인코더를 사용한다.
  • 그다음 구성 요소 벡터를 이 매니폴드에서 샘플링한다. 샘플링된 벡터는 32채널의 다중 채널 특징 맵으로 매핑된다. 입력 구성 요소 스케치는 단일 채널이지만, 저자들은 학습의 두 번�� 단계에서 다중 채널 특징 맵을 사용하기로 결정했다.
  • 이 매핑은 다섯 개의 개별 디코딩 모델을 사용하여 수행된다. 각 디코딩 모델은 완전 연결 층과 다섯 개의 디코딩 층으로 구성된다. 각 특징 맵은 32개 채널을 가지며, 스케치 도메인에서 해당 구성 요소와 동일한 공간 크기를 갖는다.
    
그림 5: 특징 매핑 모듈의 아키텍처. (출처)
  • “왼쪽 눈”, “오른쪽 눈”, “코”, “입”에 대한 결과 특징 맵은 입력 스케치에서 얼굴 구성 요소의 정확한 위치에 따라 “나머지” 특징 맵에 다시 배치된다. 이로써 개별 구성 요소의 특징 맵이 결합된다.

단계 IIII FM 학습

먼저 학습이 완료된 CE 인코더를 고정(동결)한 상태에서 전체 네트워크를 종단 간으로 학습한다. 전체 네트워크는 학습 불가능한 CE 인코더, FM 모듈, IS 모듈로 구성된다. 다음으로 IS를 설명한다.

이미지 합성(IS) 모듈

아키텍처 설계

결합된 특징 맵을 바탕으로 IS 모듈은 이를 사실적인 얼굴 이미지로 변환한다. 이 모듈은 조건부 GAN 아키텍처로, 생성기는 입력으로 특징 맵을 받고 판별기가 생성 과정을 지도한다. 자세한 내용은 다음을 확인하라 조건부 GAN에 대한 블로그 글.
그림 6과 7은 생성기와 판별기의 아키텍처 설계를 요약한다.

그림 6이미지 합성 모듈의 생성기 아키텍처. (출처)

그림 7: 이미지 합성 모듈의 판별기 아키텍처. (출처)


단계 IIII IS 학습

IS의 GAN은 GAN 손실로 학습한다. 생성된 이미지의 픽셀 단위 품질을 보장하기 위해 L1 손실도 사용한다. 실제 이미지와 생성 이미지 간의 고수준 차이를 비교하기 위해 퍼셉추얼 손실을 적용한다.

결과

정성적·정량적 평가 모두에서 이 시스템이 기존 방법과 대안적 해법보다 우수한 생성 성능을 보임이 확인되었다.
그림 8: DrawFaceDrawing을 사용한 스케치-이미지 합성 예시. (출처)

추가 자료

이 논문의 저자들은 학습 스크립트를 오픈 소스로 공개하지 않았다. GitHub 저장소에 제공된 코드는 서비스를 통해 공개되어 있어, 스케치를 그리면 모델이 그 스케치를 바탕으로 실제감 있는 이미지를 생성해 준다. 다양한 파라미터를 조정해 보며 실험해 볼 수도 있다.
이 코드는 Jittor 딥러닝 프레임워크를 사용하며, 곧 PyTorch를 사용하는 버전도 공개될 예정이다.

이 대화형 플랫폼을 확인해 보세요 \rightarrow

그림 9: 대화형 드로잉 도구. (출처)


결론

이 보고서가 이 프레임워크를 이해하는 데 도움이 되기를 바랍니다. 보고서가 유용했다면 소식을 들을 수 있으면 좋겠습니다. 또한 개선할 점이나 제안이 있다면 편하게 알려 주세요. 마지막으로, 제가 작성한 다른 두 개의 보고서를 소개합니다. 투 미닛 페이퍼.


이 글은 AI가 번역한 기사입니다. 오역이 있을 수 있으니 댓글로 알려 주세요. 원문 보고서는 아래 링크에서 확인할 수 있습니다: 원문 보고서 보기
Kurt Starck
Kurt Starck •  
Would like to learn how implement weights and bias model to make my chatbot images talk on real time basis. Answer bots hooked into OpenAI GPT-3 platform.
Reply