Spaces:
Sleeping
Sleeping
Commit ·
cf9c906
1
Parent(s): f760b79
fix: display bounding boxes
Browse files- .gitignore +1 -0
- app.py +23 -4
- models/best.pt +3 -0
.gitignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
venv
|
app.py
CHANGED
|
@@ -1,8 +1,11 @@
|
|
| 1 |
import streamlit as st
|
| 2 |
from ultralytics import YOLO
|
| 3 |
from PIL import Image
|
|
|
|
|
|
|
|
|
|
| 4 |
|
| 5 |
-
model = YOLO("./models/
|
| 6 |
classNames = ["license-plate", "vehicle"]
|
| 7 |
|
| 8 |
st.title("Number Plate and Vehicle Detection using YOLOv8")
|
|
@@ -12,9 +15,25 @@ st.write("This is a web app to detect number plates and vehicles in images using
|
|
| 12 |
image = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"])
|
| 13 |
|
| 14 |
if image is not None:
|
|
|
|
| 15 |
st.image(image, caption="Uploaded Image", use_column_width=True)
|
| 16 |
-
|
| 17 |
-
img = Image.open(
|
| 18 |
results = model.predict(img, conf=0.5)
|
| 19 |
json_results = results[0].tojson()
|
| 20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
from ultralytics import YOLO
|
| 3 |
from PIL import Image
|
| 4 |
+
import json
|
| 5 |
+
import cv2
|
| 6 |
+
import numpy as np
|
| 7 |
|
| 8 |
+
model = YOLO("./models/best.pt")
|
| 9 |
classNames = ["license-plate", "vehicle"]
|
| 10 |
|
| 11 |
st.title("Number Plate and Vehicle Detection using YOLOv8")
|
|
|
|
| 15 |
image = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"])
|
| 16 |
|
| 17 |
if image is not None:
|
| 18 |
+
st.header("Original Image")
|
| 19 |
st.image(image, caption="Uploaded Image", use_column_width=True)
|
| 20 |
+
st.info("Detecting...")
|
| 21 |
+
img = Image.open(image)
|
| 22 |
results = model.predict(img, conf=0.5)
|
| 23 |
json_results = results[0].tojson()
|
| 24 |
+
encoded_json_results = str(json_results).replace("\n", '').replace(" ", '')
|
| 25 |
+
encoded_json_results = json.loads(encoded_json_results)
|
| 26 |
+
for pred in encoded_json_results:
|
| 27 |
+
x1 = int(pred['box']['x1'])
|
| 28 |
+
y1 = int(pred['box']['y1'])
|
| 29 |
+
x2 = int(pred['box']['x2'])
|
| 30 |
+
y2 = int(pred['box']['y2'])
|
| 31 |
+
|
| 32 |
+
img = np.array(img)
|
| 33 |
+
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
|
| 34 |
+
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 0, 255), 2)
|
| 35 |
+
cv2.putText(img, pred['name'], (x1, y1), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
|
| 36 |
+
st.header("Detected Image")
|
| 37 |
+
st.image(img, caption="Detected Image", use_column_width=True)
|
| 38 |
+
st.header("JSON Results")
|
| 39 |
+
st.write(encoded_json_results)
|
models/best.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a5e6ccbbf682c831317053a88ca70f463790dee7c9760e4323f5f9d6f39464ce
|
| 3 |
+
size 22470702
|