/AdvFaces

Primary LanguagePython

AdvFaces: Adversarial Face Synthesis

By Debayan Deb, Jianbang Zhang, and Anil K. Jain

A tensorflow implementation of AdvFaces, a fully automatic adversarial face generatorthat learns to generate minimal perturbations in the salient facial regions via Generative Adversarial Networks. Once AdvFaces is trained, it can automatically generate imperceptible perturbations that can fool state-of-the-art face matchers with attack success rates as high as 97.22% and 24.30% for obfuscation and impersonation attacks, respectively.

Tensorflow release

Currently this repo is compatible with Tensorflow r1.14.0.

Citation

@article{deb2019advfaces,
title={Advfaces: Adversarial face synthesis},
author={Deb, Debayan and Zhang, Jianbang and Jain, Anil K},
journal={arXiv preprint arXiv:1908.05008},
year={2019}}

Usage

Training

  1. The configuration files for training are saved under config/ folder, where you can define the dataset prefix, training list, model file, attack setting (obfuscation or impersonation) and other hyper-parameters. Use the following command to run the default training configuration:
    python train.py config/default.py
    The command will create an folder under log/default/ which saves all the checkpoints, test samples and summaries. The model directory is named as the time you start training.

Testing

  • Run the test code in the following format:
    python test_adversaries.py
  • For example, if you want to use the pre-trained model, download the model and unzip it into pretrained folder. Then, run
    python test_adversaries.py

Pre-trained Model

OBFUSCATION MODEL:

Google Drive