|
import cv2 |
|
import numpy as np |
|
import gradio as gr |
|
from tensorflow.keras.utils import img_to_array |
|
from tensorflow.keras.models import load_model |
|
import os |
|
|
|
model = load_model(r'deepfake_detection_model.h5') |
|
|
|
def predict_image(img): |
|
|
|
x = img_to_array(img) |
|
|
|
x = cv2.resize(x, (256, 256), interpolation=cv2.INTER_AREA) |
|
|
|
x /= 255.0 |
|
|
|
x = np.expand_dims(x, axis=0) |
|
|
|
prediction = np.argmax(model.predict(x), axis=1) |
|
|
|
if prediction == 0: |
|
return 'Fake Image' |
|
else: |
|
return 'Real Image' |
|
|
|
|
|
|
|
|
|
description_html = """ |
|
<p>This model was trained by Rudolf Enyimba in partial fulfillment of the requirements |
|
of Solent University for the degree of MSc Artificial Intelligence and Data Science</p> |
|
<p>This model was trained to detect deepfake images.</p> |
|
<p>The model achieved an accuracy of <strong>91%</strong> on the test set.</p> |
|
<p>Upload a face image or pick from the samples below to test model accuracy</p> |
|
""" |
|
|
|
|
|
example_data = ['AI POPE.jpg'] |
|
|
|
|
|
gr.Interface( |
|
fn=predict_image, |
|
inputs='image', |
|
outputs='text', |
|
title='Deepfake Image Detection(CNN)', |
|
description=description_html, |
|
allow_flagging='never', |
|
examples=example_data |
|
).launch() |