Spaces:
Sleeping
Sleeping
File size: 1,231 Bytes
1b7d31e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
import streamlit as st
from ultralytics import YOLO
from main_view import Main_View
from upload_view import Upload_View
from camera_view import Camera_View
# ✅ Initialize session state
if "page" not in st.session_state:
st.session_state.page = "Main" # Default page
class App:
def __init__(self):
self.model = self.load_model()
self.main_view = Main_View(self)
self.upload_view = Upload_View(self, self.model)
self.camera_view = Camera_View(self, self.model)
@st.cache_resource
def load_model(_self):
"""Load the YOLOv8 model (cached)."""
with st.spinner("Loading model... ⏳"):
model = YOLO("best.pt")
return model
def change_page(self, page_name):
"""Change active page."""
st.session_state.page = page_name
st.rerun() # Force rerun Streamlit to update UI
def show(self):
"""Display only the active view."""
if st.session_state.page == "Main":
self.main_view.show()
elif st.session_state.page == "Upload":
self.upload_view.show()
elif st.session_state.page == "Camera":
self.camera_view.show()
# Start the app
app = App()
app.show() |