CoolFace
Apppublic

Manos21/Image_Classifier

sourceHugging Facemitupdated 1y agoView on Hugging Face
0likes
app.py60 linesDownload Raw Back to root
1 2import cv23import numpy as np4import streamlit as st5from tensorflow.keras.applications.mobilenet_v2 import (6    MobileNetV2,7    preprocess_input,8    decode_predictions9)10from PIL import Image11 12def load_model():13    model = MobileNetV2(weights="imagenet")14    return model15 16def preprocess_image(image):17    img = np.array(image)18    img = cv2.resize(img, (224, 224))19    img = preprocess_input(img)20    img = np.expand_dims(img, axis=0)21    return img22 23def classify_image(model, image):24    try:25        processed_image = preprocess_image(image)26        predictions = model.predict(processed_image)27        decoded_predictions = decode_predictions(predictions, top=3)[0]28        return decoded_predictions29    except Exception as e:30        st.error(f"Error classifying image: {str(e)}")31        return None32 33def main():34    st.set_page_config(page_title="AI Image Classifier", page_icon="🖼️", layout="centered")35    st.title("AI Image Classifier")36    st.write("Upload an image and let AI tell you what is in it!")37 38    @st.cache_resource39    def load_cached_model():40        return load_model()41 42    model = load_cached_model()43    uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "png"])44 45    if uploaded_file is not None:46        st.image(uploaded_file, caption="Uploaded Image", use_container_width=True)47        btn = st.button("Classify Image")48 49        if btn:50            with st.spinner("Analyzing Image..."):51                image = Image.open(uploaded_file)52                predictions = classify_image(model, image)53                if predictions:54                    st.subheader("Predictions")55                    for _, label, score in predictions:56                        st.write(f"**{label}**: {score:.2%}")57 58if __name__ == "__main__":59    main()60