| import streamlit as st |
| from PIL import Image, ImageOps |
| import keras |
| from matplotlib.image import imread |
| import numpy as np |
| import tensorflow as tf |
| from torchvision import transforms |
|
|
|
|
|
|
| def predict(image): |
| image1=imread(image) |
| img_ar = np.asarray(image1) |
| img_ar_rs = img_ar/255.0 |
| shape = img_ar_rs.shape |
| print(shape) |
| img_ar_rs1 = img_ar_rs.reshape(-1,shape[0],shape[1],shape[2]) |
| image = tf.image.resize(img_ar_rs1, (32, 32)) |
| print(image.shape) |
| pred = model.predict(image) |
| if(pred > 0.5): |
| return 'AI-generated' |
| else: |
| return 'Real' |
|
|
|
|
| st.title("Predicting whether an image is real or if it is AI-generated") |
| model = keras.models.load_model('model.keras') |
| uploaded_file = st.file_uploader("Upload a real or an AI-generated image",type=['png','jpg','jpeg']) |
|
|
|
|
| if uploaded_file is not None: |
| st.image(uploaded_file, caption='Uploaded Image', use_column_width=True) |
| if st.button("Check"): |
| result = predict(uploaded_file) |
| st.text(result) |