|
import streamlit as st |
|
from tensorflow.keras.models import load_model |
|
from PIL import Image |
|
import numpy as np |
|
|
|
st.title("Skin Cancer Image Classification") |
|
st.write("Upload an image and let the model guess whether it is a cancer or not.") |
|
|
|
model = load_model("densenet_imagenet_model.keras") |
|
|
|
def process_image(img): |
|
img = img.resize((170,170)) |
|
img = np.array(img) |
|
img = img / 255.0 |
|
img = np.expand_dims(img, axis=0) |
|
return img |
|
|
|
|
|
file = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"]) |
|
|
|
if file is not None: |
|
img = Image.open(file) |
|
st.image(img, caption="Uploaded Image") |
|
image = process_image(img) |
|
|
|
prediction = model.predict(image) |
|
predicted_class = np.argmax(prediction) |
|
|
|
class_names = ["It is NOT Cancer!", "A melanocytic nevus is usually a noncancerous condition where pigment-producing skin cells group together. It is a type of growth on the skin that contains nevus cells (a type of skin cell). "] |
|
st.write(class_names[predicted_class]) |
|
|