elsoori commited on
Commit
4d237f5
1 Parent(s): aba4251

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -0
app.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from ultralyticsplus import YOLO, render_result
3
+ import PIL.Image as Image
4
+ import numpy as np
5
+ import requests
6
+ from io import BytesIO
7
+
8
+ # Initialize Streamlit app
9
+ st.title("Blood Cell Detection with YOLOv8")
10
+
11
+ # Load YOLO model
12
+ model = YOLO('keremberke/yolov8m-blood-cell-detection')
13
+
14
+ # Set model parameters
15
+ model.overrides['conf'] = 0.25 # NMS confidence threshold
16
+ model.overrides['iou'] = 0.45 # NMS IoU threshold
17
+ model.overrides['agnostic_nms'] = False # NMS class-agnostic
18
+ model.overrides['max_det'] = 1000 # Maximum number of detections per image
19
+
20
+ # File uploader for image input
21
+ uploaded_file = st.file_uploader("Upload an image for detection", type=["jpg", "png"])
22
+
23
+ if uploaded_file:
24
+ # Open the uploaded image
25
+ image = Image.open(uploaded_file)
26
+
27
+ # Perform inference
28
+ results = model.predict(np.array(image))
29
+
30
+ # Display results
31
+ st.image(image, caption="Uploaded Image", use_column_width=True)
32
+
33
+ # Render detection results
34
+ rendered_image = render_result(model=model, image=image, result=results[0])
35
+
36
+ # Show the rendered result
37
+ st.image(rendered_image, caption="Detection Results", use_column_width=True)
38
+
39
+ # Display details of detected boxes
40
+ st.write("Detection Results:")
41
+ for box in results[0].boxes:
42
+ st.write(f"Bounding box: {box.xyxy}")
43
+ st.write(f"Confidence: {box.conf}")
44
+ st.write(f"Class: {box.cls}")
45
+
46
+ else:
47
+ st.write("Upload an image to start detection")