Wvolf's picture
Update app.py
8b91f63
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'
# Define the Gradio Interface with the desired title and description
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>
"""
# Define example images and their true labels for users to choose from
example_data = ['AI POPE.jpg']
custom_css = """
div {background-color: whitesmoke;}
"""
gr.Interface(
fn=predict_image,
inputs='image',
outputs='text',
title="Deepfake Image Detection(CNN)",
description=description_html,
allow_flagging='never',
examples=example_data,
css=custom_css
).launch()