File size: 2,546 Bytes
c08dce4 9067733 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
---
title: Facial Anti-Spoofing Detection
emoji: 🐢
colorFrom: pink
colorTo: purple
sdk: gradio
sdk_version: 3.21.0
app_file: app.py
pinned: false
---
# Face Anti-Spoofing using Deep-Pixel-wise-Binary-Supervision
- Anti-Spoofing for Face Recognition task using the Deep Pixel-wise Binary Supervision Technique. The paper can be found here https://arxiv.org/pdf/1907.04047v1.pdf
- This Project implements the DeePixBiS model using Python OpenCV, and the Pytorch Framework. This project is inspired from https://github.com/voqtuyen/deep-pix-bis-pad.pytorch
- The Trained weights are already saved up as './DeePixBiS.pth' file which can be run on the model.
- Training Data has been taken from the NUAA Imposter dataset (863 images subset)
### Deep Pixel-wise Binary Supervision
This framework uses CNN and densely connected neural network trained using both binary and pixel-wise binary supervision simultaneously.
This is a frame level algorithm, which performs the task individually and independently on each frame, thus making computation and time feasable for practical use.
Each pixel/patch of the frame is given a binary label depending on whether it is bonafide or an attack, trying to generate the depth-map of the image. Note that this framework does not generate a precise depth map, rather it does not need to. In the testing phase, the mean of this feature map is used as the score. If the score is greater than a threshold value, it is declared to be real.
The model architecture uses the first 8 layers of the DenseNet-161 architecture, for feature extraction.
### About the Project
We use the OpenCV library for the image preproccsing for the model. OpenCV offers several cascades for the task of object Detection. We use the Frontal-Face Haar Cascade to detect a "face" in the frame. Once a face is detected it has a bounded box to find its location, and the face is extracted, leaving aside the other non-important details in the frame. The training-data(frames) ready to pass through the model is trained using the Adam Optimizer.
The Loss function is a weighted sum using the binary and pixel-wise binary cross-entropy loss function.
### Requirements
- Python 3.6+
- OpenCV
- Numpy
- PyTorch
### Training the Model
1. Run `python Train.py`
2. After Training is complete the program will generate the file "./DeePixBiS.pth", containing weights of the model
### Recognizing
1. Run `python Test.py`
### TODO
1. Make directories for easy handling of python files.
2. Add a config file for easy hyperparameters tuning.
|