Muhammad Anas Akhtar commited on
Commit
ec2091c
·
verified ·
1 Parent(s): aa1bca4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -8
app.py CHANGED
@@ -80,6 +80,11 @@ def create_output_writer(cap, output_path):
80
 
81
  raise ValueError("Could not initialize any video codec")
82
 
 
 
 
 
 
83
  def process_video(video_path, progress=gr.Progress()):
84
  """
85
  Process the video file and return the path to the processed video
@@ -116,14 +121,19 @@ def process_video(video_path, progress=gr.Progress()):
116
 
117
  # Process frame
118
  if frame_count % process_every_n_frames == 0:
119
- # Convert frame to RGB for the model
120
- frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
121
-
122
- # Detect objects
123
- detections = object_detector(frame_rgb)
124
 
125
- # Draw bounding boxes
126
- frame = draw_bounding_boxes(frame, detections)
 
 
 
 
 
 
 
 
127
 
128
  # Write the frame
129
  out.write(frame)
@@ -181,4 +191,4 @@ demo = gr.Interface(
181
  )
182
 
183
  if __name__ == "__main__":
184
- demo.launch()
 
80
 
81
  raise ValueError("Could not initialize any video codec")
82
 
83
+ def frame_to_pil(frame):
84
+ """Convert OpenCV frame to PIL Image"""
85
+ rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
86
+ return Image.fromarray(rgb_frame)
87
+
88
  def process_video(video_path, progress=gr.Progress()):
89
  """
90
  Process the video file and return the path to the processed video
 
121
 
122
  # Process frame
123
  if frame_count % process_every_n_frames == 0:
124
+ # Convert frame to PIL Image for the model
125
+ pil_frame = frame_to_pil(frame)
 
 
 
126
 
127
+ try:
128
+ # Detect objects
129
+ detections = object_detector(pil_frame)
130
+
131
+ # Draw bounding boxes
132
+ frame = draw_bounding_boxes(frame, detections)
133
+ except Exception as e:
134
+ print(f"Error processing frame {frame_count}: {str(e)}")
135
+ # Continue with the original frame if detection fails
136
+ pass
137
 
138
  # Write the frame
139
  out.write(frame)
 
191
  )
192
 
193
  if __name__ == "__main__":
194
+ demo.launch()