MATLAB Answers

DeepFake detection using Deep Learning

20 views (last 30 days)
Nabiilah on 11 Jun 2020
Answered: Mahesh Taparia on 16 Jun 2020
Hi, I have created a CNN model using ResNet50, to classify my images according to the 'RealCeleb' or 'FakeCeleb' labels where they have another celebs pasted on their body, i.e. deepfake.
Class 1 = Celeb1: 'RealCeleb', Class 2 = Celeb2 : 'RealCeleb', Class 3 = Image 1 + Celeb 2's face from Image 2 : 'FakeCeleb'
When testing the network using another image of Celeb 2 (that is not in my training set), I found that it would sometimes match with Class 2, which is correct and othertimes with class 3, which is also technically correct.
Q1. Would uploading more pictures into class 2 reduce the likelihood of class 3 being predicted?
Q2. Is there a better way of doing this, i.e. using another deep learning model? and why would you recommend it?

Answers (1)

Mahesh Taparia
Mahesh Taparia on 16 Jun 2020
Regarding your Q1, try to keep equal number of images for each class to avoid data imbalance. Moreover, if dataset is less then increase it by doing data augmentation. Try with different architectures/ loss functions/ optimizers etc.
Regarding your Class 3, it is not clear how you are creating it. Are you taking only face of Celeb 2? How you are mixing it with Celeb 1?
One thing you can try, mix the Class 1 & Class 2 data and label as Real and Class 3 as Fake. Make it a 2 class problem to check how accurately model is predicting real/ fake image. After that, try to classify the predicted real image into class 1 and class 2.
Hope it will help!

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by