Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/FalkoMatern/Exploiting-Visual-Artifacts

Implementation of "Exploiting Visual Artifacts to Expose Deepfakes and Face Manipulations"
https://github.com/FalkoMatern/Exploiting-Visual-Artifacts

Last synced: about 2 months ago
JSON representation

Implementation of "Exploiting Visual Artifacts to Expose Deepfakes and Face Manipulations"

Awesome Lists containing this project

README

        

# Exploiting Visual Artifacts to Expose Deepfakes and Face Manipulations

This repository contains an implementation of the methods described in the paper "Exploiting Visual Artifacts to Expose Deepfakes and Face Manipulations".

Please cite the paper if you use the code.

## Cite

@inproceedings{matern2019exploiting,
title={Exploiting Visual Artifacts to Expose Deepfakes and Face Manipulations},
author={Matern, Falko and Riess, Christian and Stamminger, Marc},
booktitle={2019 IEEE Winter Applications of Computer Vision Workshops (WACVW)},
pages={83--92},
year={2019}
}

## Usage

### Dependencies

- Python2.7
- Packages as listed in requirements.txt
- Dlib: shape_predictor_68_face_landmarks.dat

### Installation

Setup and activate Python2.7 virtual environment
pip install -r requirements.txt
download and extract http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

### Run

#### Evaluate Images

process_data.py evaluates a single image or a folder containing multiple images.

The output is saved as a .csv file containing the scores of the classifers and a flag indicating if the segmentation for the sample was valid.
The -f flag will additionally save the feature vectors as single .npy file.

Specify the pipeline with -p. Options: 'gan', 'deepfake', 'face2face'.

Example:

python process_data.py -i img_folder -o save_folder -p deepfake -f

#### Fit Classifiers
A basic implementation to fit the classifiers to new data is provided in fit_classifiers.py.

The script requires the output files of process_data.py.
Additionally, the ground-truth labels have to be saved as a .csv file with columns: 'Filename', 'Label'.
To use new classifiers change the path in process_data.py accordingly.

Example:

python fit_classifiers.py -f features.npy -s scores.csv -l labels.csv -o save_folder