Artificial Intelligence/Computer Vision

[논문리뷰] FaceForensics++: Learning to Detect Manipulated Facial Images

oranz.23 2021. 3. 10. 04:26

개요

    이 논문은 당시 명확하고 사용성이 좋은 SOTA method를 제시했을 뿐만 아니라, 1000개의 영상으로 부터 추출된 180만 장 이상의 이미지 데이터셋, 그리고 자동화된 탐지 성능 벤치마크를 온라인으로 제공함으로써 DeepFake Detection Task 분야의 초석을 다진 논문으로, ICCV 2019에 등재되었습니다. 각각에 대한 링크는 다음과 같습니다.

 

코드: github.com/ondyari/FaceForensics/

벤치마크: kaldir.vc.in.tum.de/faceforensics_benchmark/

데이터셋: github.com/ondyari/FaceForensics/blob/master/dataset/README.md 참조 (구글폼 작성 후 링크 받는 방식)

 

 

Face Manipulation Methods

    Face Manipulation는 크게 4가지로 나눌 수 있습니다. 새로운 얼굴을 만들어내는 Face Synthesis, 얼굴에서 헤어스타일, 안경 착용 여부 등 일부 특징만 변경하는 Facial Attributes, 표정을 바꾸는 Facial Expression, 다른 사람의 얼굴로 바꾸어버리는 Face Swap입니다. 이 분야에서 가장 널리 알려진 딥페이크가 Face Swap에 속합니다. 그리고 이 논문은 윤리적으로 문제가 되는 Facial Expression과 Face Swap에 대한 Detection을 목적으로 하고 있습니다. 그리고 해당 문제 해결을 위한 폭넓은 데이터베이스 구축을 위해 총 4가지 method에 대한 Detection을 수행하였습니다. 4가지 method에 대한 간략한 설명입니다. 

 

- FaceSwap

    graphics-based approach입니다. Source video에서 매 프레임마다 얼굴의 기준점들을 바탕으로 face region을 추출해내고 3D template 모델을 생성하여 target video에 영사한 다음, 자연스럽게 보이도록 texture, shape, color를 수정하는 방식입니다. 비교적 lightweight한 method로, CPU로 수행 가능한 방법입니다.

 

- DeepFakes

    learning-based approach입니다. GAN 방식에 기초한 모델로, Source와 Target에서 모두 face 부분을 crop해내고 두 개의 Autoencoder에서 encoder 부분을 공유하여 encoder는 둘의 공통적인 얼굴 특징을 학습하도록, decoder는 각각의 개별적인 특성을 학습하도록 유도한 후 decoder 부분을 교체함으로써 얼굴을 swap하는 방식입니다. 

 

- Face2Face

    graphics-based approach이며, facial expression에 속합니다. source와 target에서 각각 keyframe을 선정해내어 이를 바탕으로 다른 조명 환경과 표정으로 재합성해내는 방식입니다.

 

- NeuralTextures

    learning-based approach이며, facial expression에 속합니다. DeepFakes와 마찬가지로 GAN 베이스 모델이며, Target의 neural texture와 rendering network를 photometric recontruction loss와 adversarial loss를 사용하여 학습합니다. 

 

추가적으로, 이 논문에서는 realistic한 학습 환경을 위해 compression을 통해 비디오의 화질을 다양화하는 postprocessing을  진행했음을 밝히고 있습니다.

 

Forgery Detection

출처: Deep Learning for Deepfakes Creation and Detection: A Survey

 

    위의 그림에서 볼 수 있듯이 Deepfake Video Detection에서는 크게 프레임 이미지에서 인위적인 요소를 찾는 방법과 프레임 사이의 연결성에서 찾는 방법으로 나뉩니다. 그리고 이 논문은 전자에 속합니다. 총 204명의 사람들을 대상으로 같은 task를 수행하도록 하여 사람에 비해 얼마나 잘 탐지하는지를 관찰하고 있습니다.

 

Face Detection

    목표가 어디까지나 face reenactment에 대한 detection이기 때문에, 전체 프레임 이미지를 집어넣는 것보다 face 부분을 crop해서 집어넣는 것이 효과적일 것입니다. 때문에 이를 위한 face tracking method로 당시 SOTA였던 Face2Face를 활용하였고, 보수적으로 접근하여 탐지된 face region의 1.3배 영역을 crop한 후 input으로 사용하였습니다. 이는 실험적으로 단순히 전체 이미지를 넣는 것보다 성능을 무척 향상시킨다는 것이 증명되었습니다.

 

Detection based on Steganalysis Features

    이 방법 외에 사용된 다른 detection method는 모두 딥러닝 기반 방법이기 때문에, 이는 종종 논문에서 'hand-crafted feauture'를 사용했다고 언급됩니다. 이 feature들을 사용해서 SVM (Support Vector Machine)으로 분류하였습니다. 높은 화질의 이미지에서는 사람보다 큰 차이로 잘 탐지하지만, 많은 compression이 가해진 low quality 이미지에 대해서는 사람보다 낮은 성능을 보였습니다.

 

Detection based on Learned Features

    다음과 같은 총 5가지의 뉴럴넷 아키텍처 기반의 method들을 사용하였습니다. 그냥 논문 저자 이름으로 부르는 Method들이 있으므로 유의하시기 바랍니다.

 

Detection Accuracy

 

Cozzolino et al. : 위의 steganalysis feature들을 가지고 CNN을 이용하여 분류하였습니다.

Bayar And Stamm : constrained convolutional layer 1개, 일반 convolutional layer 2개, max pooling layer 2개, fully-connected layer 3개를 사용한 모델입니다. constrained convolutional layer는 이미지의 high-level content를 압축하기 위해 사용된다고 합니다.

Rahmouni : 4가지 통계량 평균, 분산, 최솟값, 최댓값을 활용하는 CNN-based 모델입니다. 

MesoNet : 영상에서의 face tampering을 탐지하기 위한 InceptionNet 기반 모델입니다.

XceptionNet : ImageNet 데이터셋으로 train된 ResNet 기반의 separable convolution들을 가진 모델입니다. 마지막 fully-connected layer이 2개의 output을 가지도록 수정하였고 이 수정사항에 맞추어 학습되도록 새로 pre-training을 진행하였습니다.

 

 

Evaluation

 

Detection Accuracy Table

    결과적으로는 XceptionNet이 모든 화질의 이미지에 대해서 가장 좋은 성능을 보였다. 또한, manipulation method에 따라 보았을 때 GAN 기반인 NeuralTextures method가 one model per manipulation이 성립하므로 일반화가 어려워 전반적으로 가장 낮은 성능을 보였다. DeepFakes 또한 GAN 기반이지만 고정된 post-processing pipeline을 사용함으로써 일관성이 생긴다고 분석하고 있다. 앞서 말했듯, 이 논문은 method를 제안할 뿐 아니라 benchmark와 dataset을 publish함으로써 facial forgery 분야의 발전에 크게 기여하고 있다. 이러한 노력에 힘입어 정확도가 향상된 모델은 물론, scarce data 환경에서도 detect할 수 있는 모델이 나왔으면 하는 바람이다.