Spaces:
Runtime error
Runtime error
import streamlit as st | |
import numpy as np | |
import tensorflow as tf | |
from huggingface_hub import from_pretrained_keras | |
from PIL import Image | |
burmese_snake_classifer_pretrained = from_pretrained_keras('jojo-ai-mst/burmese_snake_classifier') | |
snake_nonsnake_classifier_pretrained = from_pretrained_keras('jojo-ai-mst/snake_nonsnake_classifier') | |
class_names = ['Bungarus fasciatus (Banded Krait)', 'Chrysopelea ornata (Golden Tree Snake)', "Daboia siamensis (Eastern Russell's viper)", 'Fowlea piscator (Checkered Keelback)', 'Laticauda colubrina (Sea Snake)', 'Lycodon aulicus (Wolf Snake)', 'Naja kaouthia(Cobra)', 'Ophiophagus_hannah(King Cobra)', 'Rhadophis helleri (Heller Red necked keelback)', 'Trimeresurus_sp (Asian Palm Pit vipers)'] | |
def is_snake(img_array): | |
prediction = snake_nonsnake_classifier_pretrained.predict(img_array) | |
score = prediction[0][0] | |
if score < 0.2: | |
return False | |
return True | |
def classify_snake(img_array): | |
predictions = burmese_snake_classifer_pretrained.predict(img_array) | |
score = tf.nn.softmax(predictions[0]) | |
result = "This image most likely belongs to {} with a {:.2f} percent confidence.".format(class_names[np.argmax(score)], 100 * np.max(score)) | |
return result | |
def predict_img(input_img): | |
img_array = np.expand_dims(input_img, 0) | |
if is_snake(img_array): | |
return classify_snake(img_array) | |
else: | |
return "This image is not containing snake or poorly containing snake that MMDeepSnake can't detect snake in the image" | |
st.title("MM DeepSnake") | |
st.subheader('MM DeepSnake AI classifies snakes species in Myanmar, currently only 10 species') | |
with st.sidebar: | |
st.write(""" | |
At the moment, we support | |
- Trimeresurus_sp (Asian Palm Pit vipers) - မြွေစိမ်းမြီးခြောက် | |
- Rhadophis helleri (Heller Red necked keelback) - လည်ပင်းနီမြွေ | |
- Lycodon aulicus (Wolf Snake) - မြွေဝံပုလွေ | |
- Fowlea piscator (Checkered Keelback) - ရေမြွေဗျောက်မ | |
- Daboia siamensis (Eastern Russell's viper) - မြွေပွေး | |
- Chrysopelea ornata (Golden Tree Snake) - ထန်းမြွေ | |
- Bungarus fasciatus (Banded Krait) - ငန်းတော်ကြား | |
- Ophiophagus hannah(King Cobra) - တောကြီးမြွေဟောက် | |
- Laticauda colubrina (Sea Snake) - ဂျက်မြွေ | |
- Naja kaouthia (Cobra) - မြွေဟောက် | |
""") | |
uploaded_file = st.file_uploader("Upload Snake Image", type=['png', 'jpg','jpeg'], accept_multiple_files=False,label_visibility="visible") | |
if uploaded_file is not None: | |
original = Image.open(uploaded_file) | |
st.image(original, use_column_width=True) | |
original = original.resize((300,300)) | |
img= np.array(original.convert('RGB')) | |
result = predict_img(img) | |
st.write(result) | |