Spaces:
Runtime error
Runtime error
from ultralytics import YOLO | |
import streamlit as st | |
from PIL import Image | |
import requests | |
from bs4 import BeautifulSoup | |
model = YOLO('resource/best_yolov8x.pt') | |
classes = ['Acrochordus-granulatus', 'Ahaetulla-nasuta', 'Ahaetulla-prasina', 'Argyrogena-fasciolata', 'Boiga-cyanea', 'Boiga-cynodon', 'Boiga-multomaculata', 'Boiga-trigonata', 'Bungarus-caeruleus', 'Bungarus-fasciatus', 'Cerberus-rynchops', 'Chrysopelea-ornata', 'Coelognathus-radiatus', 'Daboia-russelii', 'Dendrelaphis-cyanochloris', 'Dendrelaphis-pictus', 'Dendrelaphis-tristis', 'Echis-carinatus', 'Enhydris-enhydris', 'Fordonia-leucobalia', 'Fowlea-piscator', 'Gerarda-prevostiana', 'Homalopsis-buccata', 'Hydrophis-platurus', 'Indotyphlops-braminus', 'Laticauda-colubrina', 'Laticauda-laticaudata', 'Lycodon-aulicus', 'Macropisthodon-plumbicolor', 'Malayopython-reticulatus', 'Naja-kaouthia', 'Naja-naja', 'Oligodon-arnensis', 'Oreocryptophis-porphyraceus', 'Ovophis-monticola', 'Psammodynastes-pulverulentus', 'Ptyas-korros', 'Ptyas-mucosa', 'Python-bivittatus', 'Rhabdophis-subminiatus', 'Sinomicrurus-macclellandi', 'Trimeresurus-albolabris', 'Trimeresurus-erythrurus', 'Trimeresurus-popeiorum', 'Xenochrophis-piscator', 'Nil-object'] | |
col1, col2 = st.columns([2,1]) | |
col1.title('Snake Detection System') | |
photo = col2.file_uploader('Upload an Image (JPEG)', type='jpg') | |
if photo: | |
col2.success('Successfully Uploaded') | |
col1.image(photo) | |
image = Image.open(photo) | |
try: | |
bx = model(image)[0].boxes[0] | |
col1.write(f"Result: {(classes[int(bx.cls[0])])}") | |
txt = classes[int(bx.cls[0])] | |
genus, species = txt.split('-') | |
data = requests.get(f'https://reptile-database.reptarium.cz/species?genus={genus}&species={species}') | |
bs = BeautifulSoup(data.content, 'html.parser') | |
desc = bs.find('td', string='Comment').find_next_sibling('td').text | |
col1.write(desc) | |
except: | |
col1.write(f"Result: Could not detect") | |
else: | |
col1.write('Please Upload an Image of a Snake') | |
col1.write('Result will be shown as soon as the image is uploaded') |