deepfake-detection-with-xception
Steps:
- Grab the required packages from requirements.txt using pip
prepare and train Dataset:
-
We have used the Kaggle Deepfake Challange dataset, Link: https://www.kaggle.com/c/deepfake-detection-challenge/data
-
Download the dataset and from
train_sample_videos
folder, extract faces from the videos. Put them in the corresponding folders insidedataset
. Classes are predefined already. -
Run
train_dataset.py
to train and generate models.
python3.py train_dataset.py dataset/ classes.txt result/
Predefined settings:
Epoch: 10 / 30 [First/Final stage]
Learning rate: 5e-3 / 5e-4
Batch size: 32 / 64
- Then take the best model from examining the graph and run
app.py
to detect videos. It can take a video file or a youtube-dl supported video link as a input. Note that we've tested online links only with Youtube so your results may vary.
Note:
There's also a basic image predictor which takes a LOT less time compared to a video. Use image_prediction.py
python3 image_prediction.py path_to_model.p classes.txt input_image.jpg
Credits:
Francois Chollet
Xception: Deep Learning with Depthwise Separable Convolutions
https://arxiv.org/pdf/1610.02357.pdf