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 대회 등이 열리고 있음.
※ 딥페이크 관련 자주 사용되는 라이브러리
'기타 개발 관련' 카테고리의 다른 글
[GIT] GIT 전략 (1) - 일반 배포 프로세스 (0) | 2025.03.16 |
---|---|
[Git] 깃 체리픽을 통해 실 서버 배포 후 충돌날 때 이력 맞추기. (2) | 2023.05.09 |
OS별 DNS 캐시 삭제 방법 (0) | 2021.07.31 |
Git 명령어 총 정리 (0) | 2021.07.20 |