2020. 5. 31. 01:01ㆍResearch
이 포스팅에서 다룰 논문은 2020년에 나온 "GANprintR: Improved Fakes and Evaluation of the State-of-the-Art in Face Manipulation Detection"이라는 논문이다.
Introduction
DeepFake와 같은 digitial manipulation을 통해 이미지나 비디오 상의 사람 얼굴을 조작하는 기술이 등장함에 따라서 이를 악용하는 사례가 발생해왔고, 이에 대해 많은 사람들은 우려를 표하고 있다. 특히나 일반 대중들도 공개된 얼굴 이미지 데이터 베이스 등에 쉽게 접근할 수 있기 때문에 이러한 문제는 더욱 커질 수밖에 없는 상황이다. 이에 대한 대응으로 fake 이미지 또는 비디오를 판별해내려는 연구 역시 함께 진행이 되고 있는데, 이 연구는 그와 반대로 어떻게 그러한 판별 모델을 더 잘 속일 수 있을지에 대해서 연구를 하였다.
현재 fake 얼굴 이미지, 비디오를 생산해내는 기술은 다음과 같은 4가지 카테고리로 분류할 수 있는데, 이 연구에서는 첫 번째 케이스인 GAN을 통한 얼굴 전체 합성에 대해서 다룬다.
- 얼굴 전체 합성
- 서로 다른 사람의 얼굴을 swap
- 얼굴의 특징을 조작 (안경을 씌운다든지...)
- 얼굴 표정 조작
GAN-Fingerprint Removal
이 연구에서 fake 정보 판별을 위해 사용한 기법은 autoencoder에 기반을 두고 있다. 논문에서는 GAN fingerprint라는 용어를 사용하는데, 이는 real 이미지와 구분되는 discriminative information을 뜻한다. GAN fingerprint는 high frequency signal을 가지고 있으며, 이와 같은 high frequency signal은 autoencoder를 통해서 효과적으로 제거할 수 있다.
GAN fingerprint
이 연구에서 GAN fingerprint라고 언급하는 것은 "Do GANs leave artificial fingerprints?"라는 논문에서 따온 개념이며, 해당 연구에서는 각각의 GAN 모델들마다 생성한 이미지에 특유의 fingerprint 패턴을 남긴다는 점을 밝혔다.
연구에서 사용한 autoencoder 모델은 사실 특별한 게 없다. 위의 그림(Figure 2)에서 보듯이 encoder와 decoder로 이루어져 있고, encoder를 통해 latent feature를 만들고 이를 다시 reconstruct하는 과정을 통해 원본 이미지의 중요한 정보를 가장 잘 표현하는 latent feature를 학습하는 방식이다. 이를 식으로 나타내면 다음과 같다.
$\psi$는 encoder를 나타내고 $\gamma$는 decoder를 의미한다. Encoder에서는 원본 이미지 $X$로 부터 중요한 feature 정보를 담은 latent featrue vector인 $l$을 뽑아내고, decoder에서는 $l$을 원본 이미지와 비슷하게 reconstruct하여 $X'$를 생성해낸다. 이 과정에서는 다음과 같은 loss function이 사용되었다.
위의 loss function을 통해 reconstruction loss를 최소하여 autoencoder를 학습시킬 수 있고, $L$이 거의 0에 가까워지면 encoder $\psi$는 원본 이미지 $X$로부터 불필요한 정보를 거의 모두 제외하고 중요한 정보만을 모아 latent feature $l$을 뽑아낼 수 있는 상태가 된다. Latent feature vector의 크기를 작게 잡을 수록 뽑아낼 수 있는 핵심 정보의 양이 줄어들기 때문에 encoder는 더욱 중요한 정보만을 엄선하여 encoding을 하게 될 것이다.
사실 여기까지는 별 특별한 것이 없는데, 주목할만한 부분은 Figure 2에서도 볼 수 있듯이, training에는 real face 이미지만을 사용한다는 점이다. 그 이유는 natural feature만을 담고 있는 real image만으로 학습을 해야 autoencoder가 natrual image의 core feature를 학습하게 되고, 이를 통해 fake image의 discriminative feature를 더욱 민감하게 판별할 수 있기 때문이다.
Databases
위에서 살펴본 것과 같은 방식으로 모델을 학습시키기 위해서는 실제 사람 얼굴 데이터와 GAN을 통해 새롭게 생성된 사람 얼굴 데이터가 모두 필요하다. 다음은 본 논문에서 사용한 데이터베이스들이다.
1. Real Face Images
- CASIA-WebFace: IMDB에서 추출한 10,575 장의 배우 이미지
- VGGFace2
2. Synthetic Face Images
- TPDNE: FFHQ 데이터셋으로 학습시킨 StyleGAN으로 생성한 합성 이미지
- 100K-Faces: StyleGAN으로 생성한 10만 장의 합성 이미지
- PGGAN: PGGAN으로 생성한 8만장의 합성 이미지
실험 셋업
전처리
1. Background
인물 얼굴 사진의 배경은 실제 이미지 데이터셋과 합성 이미지 데이터셋 간에 두드러지는 차이로 인식될 가능성이 매우 크기 때문에 배경의 특징을 통해 가짜 판별을 하지 않도록 배경 요소를 제거할 필요가 있다.
2. Head pose
GAN을 통해서 생성된 합성 이미지 데이터셋은 진짜 이미지 데이터셋과는 다르게 다양한 head pose(정면을 보는 사진, 얼굴 측면 사진...)를 갖고 있지 않기 때문에 이와 같은 요소가 판별기의 성능에 영향을 줄수 있다.
위와 같은 진짜 이미지와 합성 이미지 간의 괴리를 없애기 위해서 CVPR '14에 발표된 "One Millisecond Face Alignment with an Ensemble of Regression Trees"에 소개된 landmark estimation 방법을 통해서 이미지 마다 68개의 얼굴 landmark 지점을 추출한다. 그리고 눈 부분을 나타내는 landmarks를 기준으로 하여 안면 부분을 지정하고, 그 밖의 부분은 crop하여 안면 부분만 최대한 보존하고 배경은 최대한 제거한 이미지를 얻는다. 또한 Landmark 정보를 통해서 head pose 역시 파악할 수 있기 때문에 정면을 바라보고 있는 사진이 아닌 것들은 모두 제외시킬 수 있다.
이 논문에서는 이렇게 배경이 제거된 정면 사진들을 앞에서 소개한 GanPrintR 모델에 넣어서 fingerprint를 제거하였고, 이렇게 생성된 더욱 robust한 합성 이미지들로 iFakeFaceDB라는 새로운 데이터셋을 구성하였다. 아래의 사진들은 실제 iFakeFaceDB에 있는 이미지 데이터들이다.
Facial Manipulation Detection System
GANPrintR을 통해 GAN fingerprint가 제거된 이미지들이 기존의 판독 모델들을 얼마나 잘 속일 수 있는지 파악하기 위해서 3가지 SOTA 모델을 활용하였다.
1. XceptionNet
Xception은 Inception 모델에 depthwise separable convolution을 추가한 것인데, Xception 기반의 모델을 사용한 이유는 동일한 용량의 파라미터에 대해서 더 좋은 성능을 내기 때문으로 보인다. 이 연구에서는 구체적으로 "FaceForensics++: Learning to Detect Manipulated Facial Images"의 방식대로 모델을 학습하였다고 한다.
2. Steganalysis
데이터 은폐를 위해서 데이터를 다른 데이터 속에 숨기는 기술인 steganography를 판독하기 위한 steganalysis를 통해 실험을 진행하였다.
3. Local Artifact
눈, 치아와 같은 얼굴의 특정 부분이 이미지의 진위를 판별하는데 중요한 역할을 하기 때문에 특정 얼굴 부분에서 추출된 특징을 통해 이미지의 진위를 판별하도록 classifier를 학습시킨다.
GAN-Fingerprint Removal을 적용한 이미지 실험
위의 결과를 보면 GANprintR을 적용한 이미지는 latent feature representation의 크기를 줄였음에도 불구하고 이미지의 resolution이 잘 보존되고 있고, latent vector 크기를 줄일 수록 판별 모델의 error를 증가시켰다. 즉, GANPrintR을 거치면서 GAN 생성 이미지 특유의 high-frequency fingerprint들이 제거되었고, 이를 통해 이미지의 자연스러움을 증가시켰다.
결론
GANPrintR을 통해 fake image forensic을 어렵게 만든 결과 이미지의 진위 구분이 어려워졌다. 아직 합성 이미지 판독을 위해 연구할 것이 많다.
Repo
https://github.com/joaocneves/gan_fingerprint_removal
'Research' 카테고리의 다른 글
[CV Study] Unsupervised Representation Learning With Deep Convolutional Generative Adversarial Networks (0) | 2020.06.11 |
---|---|
[CV Study] Generative Adversarial Nets (0) | 2020.06.11 |
[CV Study] Learning Deep Features for Discriminative Localization (CVPR '16) (0) | 2020.05.31 |
[CV Study] Spatial Transformer Networks (NIPS '15) (0) | 2020.05.30 |
[CVPR 2020] Designing Network Design Spaces (1) | 2020.05.08 |