Spaces:
Runtime error
Runtime error
| #!/usr/bin/env python | |
| # -*- coding: utf-8 -*- | |
| """ | |
| ------------------------------------------------- | |
| @File Name: app.py | |
| @Author: yash mohite | |
| @Date: 2023/5/15 | |
| @Description: | |
| ------------------------------------------------- | |
| """ | |
| from pathlib import Path | |
| from PIL import Image | |
| import streamlit as st | |
| import config | |
| from utils import load_model, infer_uploaded_image, infer_uploaded_video, infer_uploaded_webcam | |
| # setting page layout | |
| st.set_page_config( | |
| page_title="Defect Detection with YOLOv8", | |
| page_icon="π€", | |
| layout="wide", | |
| initial_sidebar_state="expanded" | |
| ) | |
| # main page heading | |
| st.title("Defect Detection with YOLOv8") | |
| # sidebar | |
| st.sidebar.header("DL Model Config") | |
| # model options | |
| task_type = st.sidebar.selectbox( | |
| "Select Task", | |
| ["Rust","Scratch","Fabric"] | |
| ) | |
| model_type = None | |
| model_type = st.sidebar.selectbox( | |
| "Select Model", | |
| config.DETECTION_MODEL_LIST | |
| ) | |
| confidence = float(st.sidebar.slider( | |
| "Select Model Confidence", 30, 100, 50)) / 100 | |
| model_path = "" | |
| if model_type: | |
| model_path = Path(config.DETECTION_MODEL_DIR, str(model_type)) | |
| else: | |
| st.error("Please Select Model in Sidebar") | |
| # load pretrained DL model | |
| try: | |
| model = load_model(model_path) | |
| except Exception as e: | |
| st.error(f"Unable to load model. Please check the specified path: {model_path}") | |
| # image/video options | |
| st.sidebar.header("Image/Video Config") | |
| source_selectbox = st.sidebar.selectbox( | |
| "Select Source", | |
| config.SOURCES_LIST | |
| ) | |
| source_img = None | |
| if source_selectbox == config.SOURCES_LIST[0]: # Image | |
| infer_uploaded_image(confidence, model) | |
| elif source_selectbox == config.SOURCES_LIST[1]: # Video | |
| infer_uploaded_video(confidence, model) | |
| elif source_selectbox == config.SOURCES_LIST[2]: # Webcam | |
| infer_uploaded_webcam(confidence, model) | |
| else: | |
| st.error("Currently only 'Image' and 'Video' source are implemented") |