Spaces:
Build error
Build error
File size: 1,703 Bytes
0e2ca4b 6ed927a bf23a2d 6ed927a 0e2ca4b 6ed927a 0e2ca4b 6ed927a 0e2ca4b 6ed927a 0e2ca4b 6ed927a 0e2ca4b 6ed927a 0e2ca4b 6ed927a 0e2ca4b 6ed927a 0e2ca4b 6ed927a 0e2ca4b 6ed927a 0e2ca4b 6ed927a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
import streamlit as st
import cv2
import numpy as np
from transformers import pipeline
# Set up the CLIP classifier
model_name = "openai/clip-vit-large-patch14-336"
classifier = pipeline("zero-shot-image-classification", model=model_name)
labels_for_classification = ["genuine face", "morphed face"]
# Define the restoration function
def restore(image):
# Convert the image to float32
image = np.float32(image)
# Apply a median blur to the image
image = cv2.medianBlur(image, 5)
return image
# Define the enhancement function
def enhance(image):
# Convert the image to grayscale
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Apply histogram equalization to the image
equalized = cv2.equalizeHist(gray)
return equalized
# Define the Streamlit app
def app():
# Create a file uploader
uploaded_file = st.file_uploader("Choose an image file", type=["jpg", "jpeg", "png"])
if uploaded_file is not None:
# Read the image file
image = np.asarray(bytearray(uploaded_file.read()), dtype=np.uint8)
image = cv2.imdecode(image, cv2.IMREAD_COLOR)
# Classify the image using CLIP
scores = classifier(image, candidate_labels=labels_for_classification)
if scores[0]['label'] == "genuine face":
st.write("The image contains a genuine face")
else:
st.write("The image contains a morphed face")
# Restore the image
restored = restore(image)
st.image(restored, caption="Restored Image")
# Enhance the image
enhanced = enhance(restored)
st.image(enhanced, caption="Enhanced Image")
# Run the app
if __name__ == "__main__":
app()
|