Abs6187 commited on
Commit
79f7e52
·
verified ·
1 Parent(s): d9688c2

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -0
app.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from ultralytics import YOLO
3
+ from PIL import Image
4
+ import os
5
+
6
+ # Load the trained YOLOv8 model
7
+ model = YOLO("best.pt")
8
+
9
+ # Define the prediction function
10
+ def predict(image):
11
+ results = model(image) # Run YOLOv8 model on the uploaded image
12
+ results_img = results[0].plot() # Get image with bounding boxes
13
+ return Image.fromarray(results_img)
14
+
15
+ # Get example images from the images folder
16
+ def get_example_images():
17
+ examples = []
18
+ image_folder = "images"
19
+ for filename in os.listdir(image_folder):
20
+ if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
21
+ examples.append(os.path.join(image_folder, filename))
22
+ return examples
23
+
24
+ # Streamlit UI for Helmet Detection with YOLO
25
+ st.title("Helmet Detection with YOLOv8")
26
+ st.markdown("Upload an image to detect helmets.")
27
+
28
+ # Allow the user to upload an image
29
+ uploaded_image = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
30
+
31
+ if uploaded_image is not None:
32
+ # Open the uploaded image using PIL
33
+ image = Image.open(uploaded_image)
34
+
35
+ # Display the uploaded image
36
+ st.image(image, caption="Uploaded Image", use_column_width=True)
37
+
38
+ # Run the model prediction
39
+ st.subheader("Prediction Results:")
40
+ result_image = predict(image)
41
+
42
+ # Display the result image with bounding boxes
43
+ st.image(result_image, caption="Detected Image", use_column_width=True)
44
+
45
+ # Optionally, show example images from the folder
46
+ if st.checkbox('Show example images'):
47
+ example_images = get_example_images()
48
+ for example_image in example_images:
49
+ img = Image.open(example_image)
50
+ st.image(img, caption=os.path.basename(example_image), use_column_width=True)