Code Monkey home page Code Monkey logo

spl-mad's Introduction

SPL-MAD: Unsupervised Face Morphing Attack Detection via Self-paced Anomaly Detection


Note

This is the official repository of the paper: Unsupervised Face Morphing Attack Detection via Self-paced Anomaly Detection, accepted at IJCB2022.

Motivation

We studied the behavior of unsupervised anomaly detection through reconstruction error analyses on MAD data. Our study revealed that morphing attacks are more straightforward to reconstruct than bona fide samples when the reconstruction is learned on general face data. Then, we leverage the above-stated observation to present a novel unsupervised MAD solution via an adapted self-paced anomaly detection, namely SPL-MAD. The adapted SPL paradigm proved helpful in neglecting the suspicious unlabeled data in training and thus enhancing the reconstruction gap between bona fide and attack samples, leading to improving the generalizability of the MAD model.

Data preparation

Dataset

CASIA-WebFace: The CASIA-WebFace dataset is used for face verification and face identification tasks. The dataset contains 494,414 face images of 10,575 real identities collected from the web.

SMDD: SMDD is a synthetic face morphing attack detection development dataset. Additional morphing attack data is used as data containimitaion in our case. SMDD can be downloaded via SMDD Github.

Training

Example of training:

python train.py \
  --train_csv 'training_data.csv' \

where training_data.csv contains image path.

Testing

Example of testing:

python train.py \
  --test_csv 'test_data.csv' \
  --model_path 'casia_smdd.pth'

where test_data.csv contains image path and the corresponding label (bonafide or attack).

Models

The model trained on CAISA-WebFace and the training set of SMDD can be download via google driver. More information and small test can be found in test.py. Please make sure give the correct model path.

if you use SPL-MAD in this repository, please cite the following paper:

@inproceedings{splmad,
  author    = {Meiling Fang and
              Fadi Boutros and
              Naser Damer},
  title     = {Unsupervised Face Morphing Attack Detection via Self-paced Anomaly Detection},
  booktitle = {{IJCB}},
  pages     = {1--8},
  publisher = {{IEEE}},
  year      = {2022}
}

if you use SMDD dataset, please cite the following paper:

@article{SMDD,
    author    = {Damer, Naser and L\'opez, C\'esar Augusto Fontanillo and Fang, Meiling and Spiller, No\'emie and Pham, Minh Vu and Boutros, Fadi},
    title     = {Privacy-Friendly Synthetic Data for the Development of Face Morphing Attack Detectors},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
    month     = {June},
    year      = {2022},
    pages     = {1606-1617}
}

License

The implementation or trained models use is restricted to research purpuses. The use of the implementation/trained models for product development or product competetions (incl. NIST FRVT MORPH) is not allowed. This project is licensed under the terms of the Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license. Copyright (c) 2020 Fraunhofer Institute for Computer Graphics Research IGD Darmstadt.

spl-mad's People

Contributors

meilfang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

spl-mad's Issues

using the pretrained model

Hey! thanks for sharing your code

I was not able to test the pretrained model as it seems that the architecture from test.py does not correspond to the file with weights. Could you help with that?

[question] Interpretation of results

Hello,

I would like to use SPL-MAD for a research project (will cite), but I want to make sure I'm using it right. I've read your paper and run a few tests.

I believe the correct use is specifying at least one bonafide image and some attack images in the test csv, and for each run, comparing the prediction_score of each image with the threshold printed to stdout.

Could you confirm that prediction_scores above the threshold are predicted as having been morphed?

Kind regards, and thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.