Deepfake 기술 요약 및 오픈소스 정리(유투브 포함)
https://www.youtube.com/watch?v=AmUC4m6w1wo
https://www.youtube.com/watch?v=cQ54GDm1eL0&t=47s
이제 얼굴 공개 안하고 유튜브해도 되겠네요! 딥페이크 코드 공개
https://www.youtube.com/watch?v=chtiVzX356g
Deepfake 윤리와 비윤리
기업들은 비즈니스에서 Deepfake를 사용하여 긍정적인 영향을 미치는 현실적인 환상을 만들고 있다. Deepfakes를 사용하면 이제 한 가지 이유 때문에 온라인에서 보는 이미지나 비디오를 신뢰하기가 어렵고 이러한 미디어는 변경되거나 가짜일 수 있다. 반면에 Deepfake SW를 윤리적으로 사용하는 사람들도 많이 있고 Deepfake가 사회적, 법률적 문제에 대해 논의하고 있다. 따라서 연구자들은 현재 사용할 수 있는 최고의 오픈 소스 Deepfake 소프트웨어 검토하는것이 필요하다.
Deepfake 개요
Deepfake라는 단어는 "Deep Learning"과 "Fake"를 합쳐서 만들어졌고 정교한 인공지능 모델에 의해 심하게 조작 생성된 콘텐츠(미디어)라고 할 수도 있다. Wikipedia에 따르면 이는 기존 이미지, 오디오 또는 비디오를 수정하여 다른 사람을 완전히 표현하는 합성 미디어라고도 한다. Deepfake 기술의 결과로 나타나는 사진, 소리, 비디오는 마치 실제처럼 재현된다.
이러한 Deepfake의 작동 방법은 주로 애플리케이션과 기본 알고리즘에 따라 다르다. Disney의 연구 논문에 따르면 인코더-디코더, GAN(Generative Adversarial Networks), 기하학 기반 딥페이크 등을 포함한 다양한 기술이 있다.
Deepfake를 생성하는데는 추출(Extraction), 훈련(Training), 변환(Conversion)이라는 세 가지 주요 프로세스가 있다.
(1) 추출(Extraction)
원본과 스왑용 미디어 샘플에서 관심 있는 영역을 탐지하고 압착하는 작업이며 하드웨어 기능에 따라 효율적인 탐지를 선택하는 많은 알고리즘이 있을 수 있다.예를들어 Faceswap에는 CPU 또는 GPU 효율성을 기반으로 추출(extraction), 정렬(alignment) 및 마스킹(masking)을 위한 몇 가지 다양한 옵션이 있다.
추출(extraction) 은 단순히 전체 영상에서 얼굴을 식별하고, 정렬(alignment) 은 모든 얼굴(눈, 코, 턱 등)의 중요한 특징을 찾아낸다. 마지막으로 마스킹(masking) 은 관심 영역을 제외한 이미지의 다른 요소를 차단한다. 평범한 하드웨어에서 리소스 집약적인 알고리즘을 선택하면 오류가 발생하거나 허용 가능한 결과를 렌더링하는 데 상당히 오랜 시간이 걸릴 수 있으므로 옵션을 선택할 때 출력에 소요되는 전체 시간이 중요하다.
하드웨어 외에도 선택은 입력 비디오에 손 움직임, 안경과 같은 얼굴 장애물이 있는지 여부 등과 같은 매개변수에 따라 달라진다. 결국 필요한 요소는 추출에 몇 가지 false positive(실제 양성, 예측 음성)[Confusion Matrix 참조]들이 있으므로 출력을 정리하는 것이다. 최종적으로 원본 영상과 가짜 영상(스와핑에 사용)에 대해 추출이 반복된다.
(2) 훈련(Training)
이것이 Deepfake를 만드는 핵심이다.
훈련(Training)은 인코더와 디코더로 구성된 신경망 에 관한 것이다 . 여기에서는 추출된 데이터가 알고리즘에 공급되어 나중에 변환을 위한 모델을 생성한다. 인코더는 입력을 벡터 표현으로 변환하여 디코더에서 수행한 것처럼 벡터에서 얼굴을 다시 생성하도록 알고리즘을 학습한다.
그 후 신경망은 반복을 평가하고 손실(Loss) 점수를 할당하여 원본과 비교한다. 알고리즘이 계속 반복되면서 이 손실 값은 시간이 지남에 따라 떨어지고 목표치에 다다르면 중지된다. 훈련은 시간이 많이 걸리는 프로세스이며, 일반적으로 수행되는 반복과 입력 데이터의 품질에 따라 출력이 향상된다.
예를 들어 Faceawap은 원본 이미지와 교체용 이미지 각각 최소 500개를 제안한다. 또한 최상의 재현을 위해 독특한 조명으로 가능한 모든 각도를 포괄하여 이미지가 서로 크게 달라야 한다. 훈련 기간에 따라 일부 애플리케이션(예: Faceswap)을 사용하면 훈련을 중간에 중지하거나 나중에 계속할 수 있다. 특히 출력의 사실적 특성은 알고리즘의 효율성과 입력에 따라 달라지고 하드웨어 성능에 따라서도 달라진다.
(3) 변환(Conversion)
이것은 Deepfake 생성의 마지막 부분이다. 변환 알고리즘에는 소스 비디오, 훈련된 모델 및 소스 정렬 파일이 필요하다. 이어서 색상 교정, 마스크 유형, 원하는 출력 형식 등과 관련된 몇 가지 옵션을 변경할 수 있다.
이러한 몇 가지 옵션을 구성한 후 최종 렌더링을 기다리면 된다.
언급한 대로 Faceswap은 많은 알고리즘과 함께 작동하며 허용 가능한 Faceswap을 얻기 위해 그 사이에서 재현할 수 있다.
(4) 비디오 딥페이크 만들어보기
Creating (Basic) Deepfake Videos
https://geekflare.com/deepfakes/
What are Deepfakes and How to Create Them?
You don't trust everything you see on the internet, do you? This article gives some of the best reasons not to and explains how to create deepfakes with Faceswap.
geekflare.com
Deepfake 오픈소스 Best 10
https://geekflare.com/best-open-source-deepfake-software/
8 Best Open Source Deepfake Software for Realistic Illusions
Modern businesses are using deepfakes to create realistic illusions that positively impact their businesses. With Deepfakes, it is now hard to trust any
geekflare.com
... 업데이트 중
[ 퀴즈 ]
(1) Ensemble AI Model 4가지 & 특징 : https://dev-sites.tistory.com/61
(2) Confusion Matrix : Measure(Metric)의 기본
[ ] 양성 | [ ] 음성 | |
[ ] 양성 | ? | ? |
[ ] 음성 | ? | ? |
(3) Precision = ?
(4) Recall = ?
(5) mAP = ?
(6) F1-Score = ?
AI 딥러닝 관련 유투브 강좌
https://dev-sites.tistory.com/51