기타 개발 관련

Deep Fakes 란 무엇인가? 용어 및 관련 기술 정리

개발자 케빈 2021. 11. 14. 19:11

1. 얼굴을 조작하는 기술 (Facial Manipulations) - 총 4가지가 있음. 

1-1. Face Synthesis : 아예 존재하지 않던 가상의 얼굴을 만들어서 그 얼굴을 이용해 합성하는 방법

1-2. Facial Attributes : 기존에 존재하던 얼굴에서 특정한 속성만 바꾸는 방법  

  Ex) 안경을 쓰지 않는 사람에게 안경을 씌운다던지, 머리 숱이 없는 사람에게 머리 숱을 입히는 등의 방법 

1-3. Facial Expression : 표정을 바꾸는 방법 

  • Source : victim person 피해자 (이 사람의 표정을) 
  • Target : reference person (이 사람이 하는 표정으로 바꿈) 

-> 피해자 입장에서는 자신이 직접 하지 않은 표정이나 말에 대해서 직접 한 것처럼 보이게 됨 ; 개인정보 침해 등의 우려가 존재 

1-4. Face Swap 서로다른 사람의 얼굴을 서로 교체하는 방법

  • Source : reference person  
  • Target : victim person 피해자 (이 사람의 Identity를) 

-> Target 의 Identity를 Source에 입힘. 

※ 흔히 알려진 deep fakes는 facial Expression, face swap을 의미함. 그 중에서도 주로 Face Swap이 대부분

 

2. Face Swap에 관한 두 가지 접근 

     2-1. 전통적인 컴퓨터 그래픽 기반의 기술을 통한 스와핑 

     2-2. 딥 러닝 기술을 이용해 학습하는 방법의 스와핑 기술  

  - Few-shot :  그 중에서도 몇 장 없는 사진을 통해 학습하는 기술

  - Multi-shot : 여러 사진을 학습 해 조금 더 전문적인 학습을 하는 기술 

※ 주로 휴대폰 어플등을 이용한 방법은 2-1 방법, 또는 2-2중에서도 Few-shot 방법이다.

    이유) 휴대폰이라는 한계 뿐만 아니라, 실시간으로 처리해야 되기 때문

3. Face Swap 관련 기술 

  • AutoEncoder : 딥러닝 아키텍처 중 하나, 이미지에 대한 (feature)특징 등을 얻을 수 있는기술 
  • Encoder 파트와 Decoder 파트로 나뉨

  - Encoder : input x -> feature z 

  - Decoder : feature z -> output x` 

 

  -> 인코더 파트에서 특정 대상(target)의 특징을 뽑아 내, 디코더 파트에서 해당 특징 들을 특정 대상(source)에 입힘 

  ※ 주요 Feature들을 잘 압축하는 기술이 중요 

 

  • 딥 페이크는 3가지 단계로 이루어짐. 

A. EXTRACTION(추출) : 학습을 위해 이미지에서 사람의 얼굴을 추출하는 과정 

alignment file -> 68개의 랜드마크로 구성된 형태로써 특정 얼굴이 있을 때 그 얼굴에서 주요 랜드마크의 위치가 어디인지 기록해 놓은 파일  

이러한 파일을 이용해 학습 과정이나 변환 과정에서 많은 도움을 얻을 수 있다. 

 

B. Traning(학습) - (주로 TensorFlow기반) 

: Encoder 는 target과 source를 같게,  Decoder는 각 각

 

※. Encoder는 <공유>가 되어 있음 -> 공유 되고 있는 Feature를 학습 -> 눈 코 입의 위치 등등-> 유사한 feature 학습!!

    Decoder에선 아이덴티티 한 부분에 대해 학습 -> 즉 피해자에 대한 아이덴티티한 부분에 대해 잘 학습한다.

 

C. Converting(변환) 단계 

 Original Face A -> Encoder -> Latent Face A -> Decoder B -> Reconstructed Face B from A 

  

4. 기타 참고하면 좋은 점

  • 딥페이크를 만들 때의 이미지는 1000장 (30초 이상의 영상이면 가능 -> 초마다 30프레임 가정)에서 10000장 정도가 좋음
  • 가능하면 각도, 조명 등 다양하게 구성하는 것이 좋음
  • 트레이닝은 약 하루 내외
  • 무료로 제공되는 코랩에서도 하루만 학습해도 괜찮음
  • 딥페이크로 인한 악용을 막기 위해 DeepFake Detection 대회 등이 열리고 있음.

※ 딥페이크 관련 자주 사용되는 라이브러리