tstone87 commited on
Commit
0b2e66c
·
verified ·
1 Parent(s): 13a0ff7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -36
app.py CHANGED
@@ -86,7 +86,7 @@ with tabs[0]:
86
  col1, col2 = st.columns([1, 1])
87
  with col1:
88
  st.markdown("**Add Your File**")
89
- st.write("Upload an image or video to scan for fire or smoke.")
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:
@@ -94,44 +94,50 @@ with tabs[0]:
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
 
 
86
  col1, col2 = st.columns([1, 1])
87
  with col1:
88
  st.markdown("**Add Your File**")
89
+ st.write("Upload an image or video (max 200MB) to scan for fire or smoke.")
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:
 
94
  status_placeholder = st.empty()
95
  if uploaded_file:
96
  try:
97
+ # Log file details
98
+ file_size_mb = uploaded_file.size / 1024 / 1024
99
+ status_placeholder.write(f"File size: {file_size_mb:.2f} MB, Type: {uploaded_file.type}")
100
 
101
+ if file_size_mb > 200:
102
+ status_placeholder.error("File exceeds 200MB limit. Please use a smaller file.")
103
+ else:
104
+ file_type = uploaded_file.type.split('/')[0]
105
+ status_placeholder.write(f"Processing {file_type} file...")
 
 
 
 
 
 
 
106
 
107
+ if file_type == 'image':
108
+ image = PIL.Image.open(uploaded_file)
109
+ results = model.predict(image, conf=confidence)
110
+ detected_frame = results[0].plot()[:, :, ::-1]
111
+ frame_placeholder.image(detected_frame, use_column_width=True)
112
+ status_placeholder.write(f"Objects detected: {len(results[0].boxes)}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
 
114
+ elif file_type == 'video':
115
+ # Save to temporary file
116
+ tfile = tempfile.NamedTemporaryFile(delete=False, suffix='.mp4')
117
+ tfile.write(uploaded_file.read())
118
+ tfile.close()
119
+
120
+ # Process video
121
+ cap = cv2.VideoCapture(tfile.name)
122
+ if not cap.isOpened():
123
+ status_placeholder.error("Failed to open video file. Check format or codec.")
124
+ else:
125
+ frame_count = 0
126
+ while cap.isOpened():
127
+ ret, frame = cap.read()
128
+ if not ret:
129
+ status_placeholder.write(f"Finished processing video. Processed {frame_count} frames.")
130
+ break
131
+ results = model.predict(frame, conf=confidence)
132
+ detected_frame = results[0].plot()[:, :, ::-1]
133
+ frame_placeholder.image(detected_frame, use_column_width=True)
134
+ status_placeholder.write(f"Frame {frame_count}: Objects detected: {len(results[0].boxes)}")
135
+ frame_count += 1
136
+ time.sleep(0.05)
137
+ cap.release()
138
+ # Clean up
139
+ import os
140
+ os.unlink(tfile.name)
141
  except Exception as e:
142
  status_placeholder.error(f"Error processing file: {str(e)}")
143