Spaces:
Running
Running
Upload 13 files
Browse files- models/best.pt +3 -0
- models/efficientnetb0_smartvision.h5 +3 -0
- models/mobilenetv2_smartvision.h5 +3 -0
- models/resnet50_smartvision.h5 +3 -0
- models/vgg16_smartvision.h5 +3 -0
- pages/1_Classification.py +101 -0
- pages/2_Object_Detection.py +29 -0
- pages/3_Model_Performance.py +17 -0
- pages/4_About.py +18 -0
- pages/5_Live_Webcam.py +71 -0
- runs/detect/smartvision_yolov8/args.yaml +109 -0
- runs/detect/smartvision_yolov82/args.yaml +109 -0
- runs/detect/smartvision_yolov83/args.yaml +109 -0
models/best.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bb47ce1829c5cd0ece4b0c8e43efa3be8dd8397544442b3e16f639731122c7c3
|
| 3 |
+
size 6235626
|
models/efficientnetb0_smartvision.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7a76bbec7da9f14c7898651a464f49e145d353e062d462e5a8d48a6907e00bde
|
| 3 |
+
size 24964704
|
models/mobilenetv2_smartvision.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:10043aec73e398b58c5aa2f74df3d22b90b3499978476e9cdb62f7a18ed4b156
|
| 3 |
+
size 17604776
|
models/resnet50_smartvision.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4555881d7c3e2570e863290c17626a60f3a065d17c3e19ba85d71397855b4585
|
| 3 |
+
size 107692984
|
models/vgg16_smartvision.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f5f6321aec279d87554bc18692f19a82383a57c853369974967eca9908e92968
|
| 3 |
+
size 62268384
|
pages/1_Classification.py
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
import numpy as np
|
| 3 |
+
from PIL import Image
|
| 4 |
+
import tensorflow as tf
|
| 5 |
+
|
| 6 |
+
st.set_page_config(page_title="Image Classification", layout="wide")
|
| 7 |
+
st.title("Image Classification")
|
| 8 |
+
|
| 9 |
+
# ---------------------------------------------------
|
| 10 |
+
# CLASS LABELS (MUST MATCH TRAINING ORDER EXACTLY)
|
| 11 |
+
# ---------------------------------------------------
|
| 12 |
+
CLASS_NAMES = [
|
| 13 |
+
"person", # 0
|
| 14 |
+
"bicycle", # 1
|
| 15 |
+
"car", # 2
|
| 16 |
+
"motorcycle", # 3
|
| 17 |
+
"airplane", # 4
|
| 18 |
+
"bus", # 5
|
| 19 |
+
"train", # 6
|
| 20 |
+
"truck", # 7
|
| 21 |
+
"traffic light", # 8
|
| 22 |
+
"stop sign", # 9
|
| 23 |
+
"bench", # 10
|
| 24 |
+
"bird", # 11
|
| 25 |
+
"cat", # 12
|
| 26 |
+
"dog", # 13
|
| 27 |
+
"horse", # 14
|
| 28 |
+
"cow", # 15
|
| 29 |
+
"elephant", # 16
|
| 30 |
+
"bottle", # 17
|
| 31 |
+
"cup", # 18
|
| 32 |
+
"bowl", # 19
|
| 33 |
+
"pizza", # 20
|
| 34 |
+
"cake", # 21
|
| 35 |
+
"chair", # 22
|
| 36 |
+
"couch", # 23
|
| 37 |
+
"potted plant", # 24
|
| 38 |
+
"bed" # 25
|
| 39 |
+
]
|
| 40 |
+
|
| 41 |
+
# ---------------------------------------------------
|
| 42 |
+
# MODEL LOADING (CACHED)
|
| 43 |
+
# ---------------------------------------------------
|
| 44 |
+
@st.cache_resource
|
| 45 |
+
def load_model(path):
|
| 46 |
+
return tf.keras.models.load_model(path)
|
| 47 |
+
|
| 48 |
+
MODEL_PATHS = {
|
| 49 |
+
"VGG16": "models/vgg16_smartvision.h5",
|
| 50 |
+
"ResNet50": "models/resnet50_smartvision.h5",
|
| 51 |
+
"MobileNetV2": "models/mobilenetv2_smartvision.h5",
|
| 52 |
+
"EfficientNetB0": "models/efficientnetb0_smartvision.h5"
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
# ---------------------------------------------------
|
| 56 |
+
# FILE UPLOAD
|
| 57 |
+
# ---------------------------------------------------
|
| 58 |
+
uploaded_file = st.file_uploader("Upload Image", type=["jpg", "jpeg", "png"])
|
| 59 |
+
|
| 60 |
+
if uploaded_file:
|
| 61 |
+
|
| 62 |
+
try:
|
| 63 |
+
col1, col2 = st.columns(2)
|
| 64 |
+
|
| 65 |
+
# -----------------------
|
| 66 |
+
# Image Preprocessing
|
| 67 |
+
# -----------------------
|
| 68 |
+
image = Image.open(uploaded_file).convert("RGB")
|
| 69 |
+
resized_image = image.resize((224, 224))
|
| 70 |
+
|
| 71 |
+
with col1:
|
| 72 |
+
st.subheader("Uploaded Image")
|
| 73 |
+
st.image(image, width="stretch")
|
| 74 |
+
|
| 75 |
+
img_array = np.array(resized_image) / 255.0
|
| 76 |
+
img_array = np.expand_dims(img_array, axis=0)
|
| 77 |
+
|
| 78 |
+
# -----------------------
|
| 79 |
+
# Predictions
|
| 80 |
+
# -----------------------
|
| 81 |
+
with col2:
|
| 82 |
+
st.subheader("Model Predictions")
|
| 83 |
+
|
| 84 |
+
for model_name, path in MODEL_PATHS.items():
|
| 85 |
+
|
| 86 |
+
model = load_model(path)
|
| 87 |
+
predictions = model.predict(img_array, verbose=0)[0]
|
| 88 |
+
|
| 89 |
+
top5_indices = np.argsort(predictions)[-5:][::-1]
|
| 90 |
+
|
| 91 |
+
st.markdown(f"### {model_name} - Top 5 Predictions")
|
| 92 |
+
|
| 93 |
+
for idx in top5_indices:
|
| 94 |
+
class_name = CLASS_NAMES[idx]
|
| 95 |
+
confidence = predictions[idx]
|
| 96 |
+
st.write(f"{class_name} — {confidence:.3f}")
|
| 97 |
+
|
| 98 |
+
st.divider()
|
| 99 |
+
|
| 100 |
+
except Exception as e:
|
| 101 |
+
st.error(f"Error during classification: {e}")
|
pages/2_Object_Detection.py
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
from ultralytics import YOLO
|
| 3 |
+
from PIL import Image
|
| 4 |
+
import numpy as np
|
| 5 |
+
|
| 6 |
+
st.title("Object Detection (YOLOv8)")
|
| 7 |
+
|
| 8 |
+
@st.cache_resource
|
| 9 |
+
def load_model():
|
| 10 |
+
return YOLO("models/best.pt")
|
| 11 |
+
|
| 12 |
+
model = load_model()
|
| 13 |
+
|
| 14 |
+
confidence = st.slider("Confidence Threshold", 0.1, 1.0, 0.25)
|
| 15 |
+
|
| 16 |
+
uploaded_file = st.file_uploader("Upload Image", type=["jpg","jpeg","png"])
|
| 17 |
+
|
| 18 |
+
if uploaded_file:
|
| 19 |
+
try:
|
| 20 |
+
image = Image.open(uploaded_file)
|
| 21 |
+
img_array = np.array(image)
|
| 22 |
+
|
| 23 |
+
results = model.predict(img_array, conf=confidence)
|
| 24 |
+
annotated = results[0].plot()
|
| 25 |
+
|
| 26 |
+
st.image(annotated, width="stretch")
|
| 27 |
+
|
| 28 |
+
except Exception as e:
|
| 29 |
+
st.error(f"Detection failed: {e}")
|
pages/3_Model_Performance.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
import pandas as pd
|
| 3 |
+
|
| 4 |
+
st.title("Model Performance Comparison")
|
| 5 |
+
|
| 6 |
+
data = {
|
| 7 |
+
"Model": ["VGG16","ResNet50","MobileNetV2","EfficientNetB0"],
|
| 8 |
+
"Accuracy": [0.83,0.88,0.85,0.91],
|
| 9 |
+
"Inference Time (ms)": [150,100,50,80]
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
df = pd.DataFrame(data)
|
| 13 |
+
|
| 14 |
+
st.dataframe(df, use_container_width=True)
|
| 15 |
+
|
| 16 |
+
st.bar_chart(df.set_index("Model")["Accuracy"])
|
| 17 |
+
st.bar_chart(df.set_index("Model")["Inference Time (ms)"])
|
pages/4_About.py
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
|
| 3 |
+
st.title("About SmartVision AI")
|
| 4 |
+
|
| 5 |
+
st.markdown("""
|
| 6 |
+
Dataset: COCO 25-Class Subset
|
| 7 |
+
Models Used:
|
| 8 |
+
- VGG16
|
| 9 |
+
- ResNet50
|
| 10 |
+
- MobileNetV2
|
| 11 |
+
- EfficientNetB0
|
| 12 |
+
- YOLOv8
|
| 13 |
+
|
| 14 |
+
Built with:
|
| 15 |
+
- TensorFlow
|
| 16 |
+
- PyTorch
|
| 17 |
+
- Streamlit
|
| 18 |
+
""")
|
pages/5_Live_Webcam.py
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
import cv2
|
| 3 |
+
import time
|
| 4 |
+
from ultralytics import YOLO
|
| 5 |
+
|
| 6 |
+
st.title("Live Webcam Object Detection")
|
| 7 |
+
|
| 8 |
+
# -----------------------------
|
| 9 |
+
# Load YOLO Model
|
| 10 |
+
# -----------------------------
|
| 11 |
+
@st.cache_resource
|
| 12 |
+
def load_model():
|
| 13 |
+
return YOLO("models/best.pt")
|
| 14 |
+
|
| 15 |
+
model = load_model()
|
| 16 |
+
|
| 17 |
+
# -----------------------------
|
| 18 |
+
# Sidebar Settings
|
| 19 |
+
# -----------------------------
|
| 20 |
+
confidence = st.sidebar.slider("Confidence Threshold", 0.1, 1.0, 0.4)
|
| 21 |
+
|
| 22 |
+
start = st.button("Start Webcam")
|
| 23 |
+
stop = st.button("Stop Webcam")
|
| 24 |
+
|
| 25 |
+
frame_placeholder = st.empty()
|
| 26 |
+
fps_placeholder = st.empty()
|
| 27 |
+
|
| 28 |
+
# -----------------------------
|
| 29 |
+
# Webcam Logic
|
| 30 |
+
# -----------------------------
|
| 31 |
+
if start:
|
| 32 |
+
|
| 33 |
+
cap = cv2.VideoCapture(0)
|
| 34 |
+
|
| 35 |
+
if not cap.isOpened():
|
| 36 |
+
st.error("Webcam not detected.")
|
| 37 |
+
else:
|
| 38 |
+
st.success("Webcam started. Press Stop to end.")
|
| 39 |
+
|
| 40 |
+
prev_time = 0
|
| 41 |
+
|
| 42 |
+
while cap.isOpened():
|
| 43 |
+
|
| 44 |
+
ret, frame = cap.read()
|
| 45 |
+
if not ret:
|
| 46 |
+
st.warning("Failed to read frame.")
|
| 47 |
+
break
|
| 48 |
+
|
| 49 |
+
# YOLO Prediction
|
| 50 |
+
results = model.predict(frame, conf=confidence, verbose=False)
|
| 51 |
+
annotated_frame = results[0].plot()
|
| 52 |
+
|
| 53 |
+
# FPS Calculation
|
| 54 |
+
current_time = time.time()
|
| 55 |
+
fps = 1 / (current_time - prev_time) if prev_time != 0 else 0
|
| 56 |
+
prev_time = current_time
|
| 57 |
+
|
| 58 |
+
# Display Frame
|
| 59 |
+
frame_placeholder.image(
|
| 60 |
+
annotated_frame,
|
| 61 |
+
channels="BGR",
|
| 62 |
+
width="stretch"
|
| 63 |
+
)
|
| 64 |
+
|
| 65 |
+
fps_placeholder.write(f"FPS: {fps:.2f}")
|
| 66 |
+
|
| 67 |
+
if stop:
|
| 68 |
+
break
|
| 69 |
+
|
| 70 |
+
cap.release()
|
| 71 |
+
cv2.destroyAllWindows()
|
runs/detect/smartvision_yolov8/args.yaml
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
task: detect
|
| 2 |
+
mode: train
|
| 3 |
+
model: yolov8n.pt
|
| 4 |
+
data: smartvision_dataset/detection/data.yaml
|
| 5 |
+
epochs: 90
|
| 6 |
+
time: null
|
| 7 |
+
patience: 100
|
| 8 |
+
batch: 16
|
| 9 |
+
imgsz: 640
|
| 10 |
+
save: true
|
| 11 |
+
save_period: -1
|
| 12 |
+
cache: false
|
| 13 |
+
device: cpu
|
| 14 |
+
workers: 8
|
| 15 |
+
project: null
|
| 16 |
+
name: smartvision_yolov8
|
| 17 |
+
exist_ok: false
|
| 18 |
+
pretrained: true
|
| 19 |
+
optimizer: auto
|
| 20 |
+
verbose: true
|
| 21 |
+
seed: 0
|
| 22 |
+
deterministic: true
|
| 23 |
+
single_cls: false
|
| 24 |
+
rect: false
|
| 25 |
+
cos_lr: false
|
| 26 |
+
close_mosaic: 10
|
| 27 |
+
resume: false
|
| 28 |
+
amp: true
|
| 29 |
+
fraction: 1.0
|
| 30 |
+
profile: false
|
| 31 |
+
freeze: null
|
| 32 |
+
multi_scale: 0.0
|
| 33 |
+
compile: false
|
| 34 |
+
overlap_mask: true
|
| 35 |
+
mask_ratio: 4
|
| 36 |
+
dropout: 0.0
|
| 37 |
+
val: true
|
| 38 |
+
split: val
|
| 39 |
+
save_json: false
|
| 40 |
+
conf: null
|
| 41 |
+
iou: 0.7
|
| 42 |
+
max_det: 300
|
| 43 |
+
half: false
|
| 44 |
+
dnn: false
|
| 45 |
+
plots: true
|
| 46 |
+
end2end: null
|
| 47 |
+
source: null
|
| 48 |
+
vid_stride: 1
|
| 49 |
+
stream_buffer: false
|
| 50 |
+
visualize: false
|
| 51 |
+
augment: false
|
| 52 |
+
agnostic_nms: false
|
| 53 |
+
classes: null
|
| 54 |
+
retina_masks: false
|
| 55 |
+
embed: null
|
| 56 |
+
show: false
|
| 57 |
+
save_frames: false
|
| 58 |
+
save_txt: false
|
| 59 |
+
save_conf: false
|
| 60 |
+
save_crop: false
|
| 61 |
+
show_labels: true
|
| 62 |
+
show_conf: true
|
| 63 |
+
show_boxes: true
|
| 64 |
+
line_width: null
|
| 65 |
+
format: torchscript
|
| 66 |
+
keras: false
|
| 67 |
+
optimize: false
|
| 68 |
+
int8: false
|
| 69 |
+
dynamic: false
|
| 70 |
+
simplify: true
|
| 71 |
+
opset: null
|
| 72 |
+
workspace: null
|
| 73 |
+
nms: false
|
| 74 |
+
lr0: 0.01
|
| 75 |
+
lrf: 0.01
|
| 76 |
+
momentum: 0.937
|
| 77 |
+
weight_decay: 0.0005
|
| 78 |
+
warmup_epochs: 3.0
|
| 79 |
+
warmup_momentum: 0.8
|
| 80 |
+
warmup_bias_lr: 0.1
|
| 81 |
+
box: 7.5
|
| 82 |
+
cls: 0.5
|
| 83 |
+
dfl: 1.5
|
| 84 |
+
pose: 12.0
|
| 85 |
+
kobj: 1.0
|
| 86 |
+
rle: 1.0
|
| 87 |
+
angle: 1.0
|
| 88 |
+
nbs: 64
|
| 89 |
+
hsv_h: 0.015
|
| 90 |
+
hsv_s: 0.7
|
| 91 |
+
hsv_v: 0.4
|
| 92 |
+
degrees: 0.0
|
| 93 |
+
translate: 0.1
|
| 94 |
+
scale: 0.5
|
| 95 |
+
shear: 0.0
|
| 96 |
+
perspective: 0.0
|
| 97 |
+
flipud: 0.0
|
| 98 |
+
fliplr: 0.5
|
| 99 |
+
bgr: 0.0
|
| 100 |
+
mosaic: 1.0
|
| 101 |
+
mixup: 0.0
|
| 102 |
+
cutmix: 0.0
|
| 103 |
+
copy_paste: 0.0
|
| 104 |
+
copy_paste_mode: flip
|
| 105 |
+
auto_augment: randaugment
|
| 106 |
+
erasing: 0.4
|
| 107 |
+
cfg: null
|
| 108 |
+
tracker: botsort.yaml
|
| 109 |
+
save_dir: C:\Users\asmis\OneDrive\Desktop\Smartvision\runs\detect\smartvision_yolov8
|
runs/detect/smartvision_yolov82/args.yaml
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
task: detect
|
| 2 |
+
mode: train
|
| 3 |
+
model: yolov8n.pt
|
| 4 |
+
data: smartvision_dataset/detection/data.yaml
|
| 5 |
+
epochs: 90
|
| 6 |
+
time: null
|
| 7 |
+
patience: 100
|
| 8 |
+
batch: 16
|
| 9 |
+
imgsz: 640
|
| 10 |
+
save: true
|
| 11 |
+
save_period: -1
|
| 12 |
+
cache: false
|
| 13 |
+
device: cpu
|
| 14 |
+
workers: 8
|
| 15 |
+
project: null
|
| 16 |
+
name: smartvision_yolov82
|
| 17 |
+
exist_ok: false
|
| 18 |
+
pretrained: true
|
| 19 |
+
optimizer: auto
|
| 20 |
+
verbose: true
|
| 21 |
+
seed: 0
|
| 22 |
+
deterministic: true
|
| 23 |
+
single_cls: false
|
| 24 |
+
rect: false
|
| 25 |
+
cos_lr: false
|
| 26 |
+
close_mosaic: 10
|
| 27 |
+
resume: false
|
| 28 |
+
amp: true
|
| 29 |
+
fraction: 1.0
|
| 30 |
+
profile: false
|
| 31 |
+
freeze: null
|
| 32 |
+
multi_scale: 0.0
|
| 33 |
+
compile: false
|
| 34 |
+
overlap_mask: true
|
| 35 |
+
mask_ratio: 4
|
| 36 |
+
dropout: 0.0
|
| 37 |
+
val: true
|
| 38 |
+
split: val
|
| 39 |
+
save_json: false
|
| 40 |
+
conf: null
|
| 41 |
+
iou: 0.7
|
| 42 |
+
max_det: 300
|
| 43 |
+
half: false
|
| 44 |
+
dnn: false
|
| 45 |
+
plots: true
|
| 46 |
+
end2end: null
|
| 47 |
+
source: null
|
| 48 |
+
vid_stride: 1
|
| 49 |
+
stream_buffer: false
|
| 50 |
+
visualize: false
|
| 51 |
+
augment: false
|
| 52 |
+
agnostic_nms: false
|
| 53 |
+
classes: null
|
| 54 |
+
retina_masks: false
|
| 55 |
+
embed: null
|
| 56 |
+
show: false
|
| 57 |
+
save_frames: false
|
| 58 |
+
save_txt: false
|
| 59 |
+
save_conf: false
|
| 60 |
+
save_crop: false
|
| 61 |
+
show_labels: true
|
| 62 |
+
show_conf: true
|
| 63 |
+
show_boxes: true
|
| 64 |
+
line_width: null
|
| 65 |
+
format: torchscript
|
| 66 |
+
keras: false
|
| 67 |
+
optimize: false
|
| 68 |
+
int8: false
|
| 69 |
+
dynamic: false
|
| 70 |
+
simplify: true
|
| 71 |
+
opset: null
|
| 72 |
+
workspace: null
|
| 73 |
+
nms: false
|
| 74 |
+
lr0: 0.01
|
| 75 |
+
lrf: 0.01
|
| 76 |
+
momentum: 0.937
|
| 77 |
+
weight_decay: 0.0005
|
| 78 |
+
warmup_epochs: 3.0
|
| 79 |
+
warmup_momentum: 0.8
|
| 80 |
+
warmup_bias_lr: 0.1
|
| 81 |
+
box: 7.5
|
| 82 |
+
cls: 0.5
|
| 83 |
+
dfl: 1.5
|
| 84 |
+
pose: 12.0
|
| 85 |
+
kobj: 1.0
|
| 86 |
+
rle: 1.0
|
| 87 |
+
angle: 1.0
|
| 88 |
+
nbs: 64
|
| 89 |
+
hsv_h: 0.015
|
| 90 |
+
hsv_s: 0.7
|
| 91 |
+
hsv_v: 0.4
|
| 92 |
+
degrees: 0.0
|
| 93 |
+
translate: 0.1
|
| 94 |
+
scale: 0.5
|
| 95 |
+
shear: 0.0
|
| 96 |
+
perspective: 0.0
|
| 97 |
+
flipud: 0.0
|
| 98 |
+
fliplr: 0.5
|
| 99 |
+
bgr: 0.0
|
| 100 |
+
mosaic: 1.0
|
| 101 |
+
mixup: 0.0
|
| 102 |
+
cutmix: 0.0
|
| 103 |
+
copy_paste: 0.0
|
| 104 |
+
copy_paste_mode: flip
|
| 105 |
+
auto_augment: randaugment
|
| 106 |
+
erasing: 0.4
|
| 107 |
+
cfg: null
|
| 108 |
+
tracker: botsort.yaml
|
| 109 |
+
save_dir: C:\Users\asmis\OneDrive\Desktop\Smartvision\runs\detect\smartvision_yolov82
|
runs/detect/smartvision_yolov83/args.yaml
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
task: detect
|
| 2 |
+
mode: train
|
| 3 |
+
model: yolov8n.pt
|
| 4 |
+
data: smartvision_dataset/detection/data.yaml
|
| 5 |
+
epochs: 90
|
| 6 |
+
time: null
|
| 7 |
+
patience: 100
|
| 8 |
+
batch: 16
|
| 9 |
+
imgsz: 640
|
| 10 |
+
save: true
|
| 11 |
+
save_period: -1
|
| 12 |
+
cache: false
|
| 13 |
+
device: cpu
|
| 14 |
+
workers: 8
|
| 15 |
+
project: null
|
| 16 |
+
name: smartvision_yolov83
|
| 17 |
+
exist_ok: false
|
| 18 |
+
pretrained: true
|
| 19 |
+
optimizer: auto
|
| 20 |
+
verbose: true
|
| 21 |
+
seed: 0
|
| 22 |
+
deterministic: true
|
| 23 |
+
single_cls: false
|
| 24 |
+
rect: false
|
| 25 |
+
cos_lr: false
|
| 26 |
+
close_mosaic: 10
|
| 27 |
+
resume: false
|
| 28 |
+
amp: true
|
| 29 |
+
fraction: 1.0
|
| 30 |
+
profile: false
|
| 31 |
+
freeze: null
|
| 32 |
+
multi_scale: 0.0
|
| 33 |
+
compile: false
|
| 34 |
+
overlap_mask: true
|
| 35 |
+
mask_ratio: 4
|
| 36 |
+
dropout: 0.0
|
| 37 |
+
val: true
|
| 38 |
+
split: val
|
| 39 |
+
save_json: false
|
| 40 |
+
conf: null
|
| 41 |
+
iou: 0.7
|
| 42 |
+
max_det: 300
|
| 43 |
+
half: false
|
| 44 |
+
dnn: false
|
| 45 |
+
plots: true
|
| 46 |
+
end2end: null
|
| 47 |
+
source: null
|
| 48 |
+
vid_stride: 1
|
| 49 |
+
stream_buffer: false
|
| 50 |
+
visualize: false
|
| 51 |
+
augment: false
|
| 52 |
+
agnostic_nms: false
|
| 53 |
+
classes: null
|
| 54 |
+
retina_masks: false
|
| 55 |
+
embed: null
|
| 56 |
+
show: false
|
| 57 |
+
save_frames: false
|
| 58 |
+
save_txt: false
|
| 59 |
+
save_conf: false
|
| 60 |
+
save_crop: false
|
| 61 |
+
show_labels: true
|
| 62 |
+
show_conf: true
|
| 63 |
+
show_boxes: true
|
| 64 |
+
line_width: null
|
| 65 |
+
format: torchscript
|
| 66 |
+
keras: false
|
| 67 |
+
optimize: false
|
| 68 |
+
int8: false
|
| 69 |
+
dynamic: false
|
| 70 |
+
simplify: true
|
| 71 |
+
opset: null
|
| 72 |
+
workspace: null
|
| 73 |
+
nms: false
|
| 74 |
+
lr0: 0.01
|
| 75 |
+
lrf: 0.01
|
| 76 |
+
momentum: 0.937
|
| 77 |
+
weight_decay: 0.0005
|
| 78 |
+
warmup_epochs: 3.0
|
| 79 |
+
warmup_momentum: 0.8
|
| 80 |
+
warmup_bias_lr: 0.1
|
| 81 |
+
box: 7.5
|
| 82 |
+
cls: 0.5
|
| 83 |
+
dfl: 1.5
|
| 84 |
+
pose: 12.0
|
| 85 |
+
kobj: 1.0
|
| 86 |
+
rle: 1.0
|
| 87 |
+
angle: 1.0
|
| 88 |
+
nbs: 64
|
| 89 |
+
hsv_h: 0.015
|
| 90 |
+
hsv_s: 0.7
|
| 91 |
+
hsv_v: 0.4
|
| 92 |
+
degrees: 0.0
|
| 93 |
+
translate: 0.1
|
| 94 |
+
scale: 0.5
|
| 95 |
+
shear: 0.0
|
| 96 |
+
perspective: 0.0
|
| 97 |
+
flipud: 0.0
|
| 98 |
+
fliplr: 0.5
|
| 99 |
+
bgr: 0.0
|
| 100 |
+
mosaic: 1.0
|
| 101 |
+
mixup: 0.0
|
| 102 |
+
cutmix: 0.0
|
| 103 |
+
copy_paste: 0.0
|
| 104 |
+
copy_paste_mode: flip
|
| 105 |
+
auto_augment: randaugment
|
| 106 |
+
erasing: 0.4
|
| 107 |
+
cfg: null
|
| 108 |
+
tracker: botsort.yaml
|
| 109 |
+
save_dir: C:\Users\asmis\OneDrive\Desktop\Smartvision\runs\detect\smartvision_yolov83
|