| | import streamlit as st |
| | import tensorflow as tf |
| | from tensorflow.keras.preprocessing import image |
| | import numpy as np |
| | from PIL import Image |
| |
|
| | |
| | model = tf.keras.models.load_model('deepfake_detection.h5') |
| |
|
| | |
| | def load_and_preprocess_image(uploaded_image): |
| | img = Image.open(uploaded_image) |
| | img = img.resize((150, 150)) |
| | img_array = image.img_to_array(img) |
| | img_array = np.expand_dims(img_array, axis=0) |
| | img_array = img_array / 255.0 |
| | return img_array |
| |
|
| | |
| | def predict_image(uploaded_image): |
| | img_array = load_and_preprocess_image(uploaded_image) |
| | prediction = model.predict(img_array) |
| | |
| | if prediction < 0.5: |
| | return "Fake" |
| | else: |
| | return "Real" |
| |
|
| | |
| | st.title("Deepfake Image Classification") |
| | st.write("Upload an image and the model will predict whether it's Real or Fake.") |
| |
|
| | |
| | uploaded_image = st.file_uploader("Choose an image...", type=["jpg", "jpeg"]) |
| |
|
| | |
| | if uploaded_image is not None: |
| | st.image(uploaded_image, caption="Uploaded Image", use_column_width=True) |
| | st.write("") |
| | |
| | if st.button("Predict"): |
| | result = predict_image(uploaded_image) |
| | if result == "Fake": |
| | st.write("The image is **<span style='color:red;'>Fake</span>**", unsafe_allow_html=True) |
| | else: |
| | st.write("The image is **<span style='color:cyan;'>Real</span>**", unsafe_allow_html=True) |
| |
|