tstone87 commited on
Commit
13a0ff7
·
verified ·
1 Parent(s): 5c1fa0a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -22
app.py CHANGED
@@ -16,7 +16,7 @@ st.markdown(
16
  """
17
  <style>
18
  .stApp {
19
- background-color: #f5f5f5;
20
  color: #1a1a1a;
21
  }
22
  h1 {
@@ -90,30 +90,50 @@ with tabs[0]:
90
  uploaded_file = st.file_uploader("", type=["jpg", "jpeg", "png", "mp4"], label_visibility="collapsed")
91
  confidence = st.slider("Detection Threshold", 0.25, 1.0, 0.4, key="upload_conf")
92
  with col2:
93
- frame_placeholder = st.empty() # Pre-create placeholder
94
  status_placeholder = st.empty()
95
  if uploaded_file:
96
- file_type = uploaded_file.type.split('/')[0]
97
- if file_type == 'image':
98
- image = PIL.Image.open(uploaded_file)
99
- results = model.predict(image, conf=confidence)
100
- detected_image = results[0].plot()[:, :, ::-1]
101
- frame_placeholder.image(detected_image, use_column_width=True)
102
- status_placeholder.write(f"Objects detected: {len(results[0].boxes)}")
103
- elif file_type == 'video':
104
- tfile = tempfile.NamedTemporaryFile(delete=False)
105
- tfile.write(uploaded_file.read())
106
- cap = cv2.VideoCapture(tfile.name)
107
- while cap.isOpened():
108
- ret, frame = cap.read()
109
- if not ret:
110
- break
111
- results = model.predict(frame, conf=confidence)
112
- detected_frame = results[0].plot()[:, :, ::-1]
113
- frame_placeholder.image(detected_frame, use_column_width=True)
114
  status_placeholder.write(f"Objects detected: {len(results[0].boxes)}")
115
- time.sleep(0.05)
116
- cap.release()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
 
118
  # Tab 2: Webcam
119
  with tabs[1]:
 
16
  """
17
  <style>
18
  .stApp {
19
+ background-color: #cdc0b0;
20
  color: #1a1a1a;
21
  }
22
  h1 {
 
90
  uploaded_file = st.file_uploader("", type=["jpg", "jpeg", "png", "mp4"], label_visibility="collapsed")
91
  confidence = st.slider("Detection Threshold", 0.25, 1.0, 0.4, key="upload_conf")
92
  with col2:
93
+ frame_placeholder = st.empty()
94
  status_placeholder = st.empty()
95
  if uploaded_file:
96
+ try:
97
+ file_type = uploaded_file.type.split('/')[0]
98
+ status_placeholder.write(f"Processing {file_type} file...")
99
+
100
+ if file_type == 'image':
101
+ image = PIL.Image.open(uploaded_file)
102
+ results = model.predict(image, conf=confidence)
103
+ detected_image = results[0].plot()[:, :, ::-1]
104
+ frame_placeholder.image(detected_image, use_column_width=True)
 
 
 
 
 
 
 
 
 
105
  status_placeholder.write(f"Objects detected: {len(results[0].boxes)}")
106
+
107
+ elif file_type == 'video':
108
+ # Save uploaded file to temporary location
109
+ tfile = tempfile.NamedTemporaryFile(delete=False, suffix='.mp4')
110
+ tfile.write(uploaded_file.read())
111
+ tfile.close()
112
+
113
+ # Open video with OpenCV
114
+ cap = cv2.VideoCapture(tfile.name)
115
+ if not cap.isOpened():
116
+ status_placeholder.error("Failed to open video file.")
117
+ else:
118
+ frame_count = 0
119
+ while cap.isOpened():
120
+ ret, frame = cap.read()
121
+ if not ret:
122
+ status_placeholder.write(f"Finished processing video. Processed {frame_count} frames.")
123
+ break
124
+ results = model.predict(frame, conf=confidence)
125
+ detected_frame = results[0].plot()[:, :, ::-1]
126
+ frame_placeholder.image(detected_frame, use_column_width=True)
127
+ status_placeholder.write(f"Frame {frame_count}: Objects detected: {len(results[0].boxes)}")
128
+ frame_count += 1
129
+ time.sleep(0.05) # Control playback speed
130
+ cap.release()
131
+ # Clean up temporary file
132
+ import os
133
+ os.unlink(tfile.name)
134
+
135
+ except Exception as e:
136
+ status_placeholder.error(f"Error processing file: {str(e)}")
137
 
138
  # Tab 2: Webcam
139
  with tabs[1]: