punpayut commited on
Commit
549f648
·
verified ·
1 Parent(s): ced5620

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -18
app.py CHANGED
@@ -18,7 +18,7 @@ mp_pose = mp.solutions.pose
18
  pose_complexity = 0 # ลด complexity เพื่อความเร็วบน Spaces, ลอง 0 หรือ 1
19
  use_static_image_mode = False # สำหรับวิดีโอไฟล์ จะถูก override เป็น True ใน process_video
20
 
21
- FALL_EVENT_COOLDOWN = 10
22
 
23
  # ----- 0. KEYPOINT DEFINITIONS (เหมือนเดิม) -----
24
  KEYPOINT_NAMES_ORIGINAL = [
@@ -255,9 +255,9 @@ def process_video_for_gradio(uploaded_video_path_temp): # เปลี่ยน
255
  processed_frame_display, results.pose_landmarks, mp_pose.POSE_CONNECTIONS,
256
  landmark_drawing_spec=mp.solutions.drawing_styles.get_default_pose_landmarks_style())
257
 
258
- cv2.putText(processed_frame_display, current_status_display.split(': ')[-1], (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)
259
  if prediction_label == "fall" and ((frame_count/fps) - local_last_fall_event_time < FALL_EVENT_COOLDOWN):
260
- cv2.putText(processed_frame_display, "FALL ALERT!", (10, 70), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 0, 255), 2, cv2.LINE_AA)
261
 
262
  processed_frames_list.append(processed_frame_display)
263
 
@@ -290,33 +290,37 @@ def process_video_for_gradio(uploaded_video_path_temp): # เปลี่ยน
290
 
291
 
292
  # --- สร้าง Gradio Interface ---
293
- # ตรวจสอบว่า example files มีอยู่ใน repo จริงๆ
294
- example_fall_path = "fall_example.mp4"
295
- example_nofall_path = "no_fall_example.mp4"
296
- examples_list = []
297
- if os.path.exists(example_fall_path):
298
- examples_list.append([example_fall_path])
299
- else:
300
- print(f"Warning: Example file '{example_fall_path}' not found in the repository root.")
301
- if os.path.exists(example_nofall_path):
302
- examples_list.append([example_nofall_path])
303
- else:
304
- print(f"Warning: Example file '{example_nofall_path}' not found in the repository root.")
305
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
306
 
307
  iface = gr.Interface(
308
  fn=process_video_for_gradio,
309
  inputs=gr.Video(label="Upload Video File (.mp4)"),
310
  outputs=[
311
- gr.Video(label="Processed Video with Detections"),
312
  gr.Textbox(label="Detection Summary (Events / Status)")
313
  ],
314
  title="AI Fall Detection from Video",
315
  description="Upload a video file (MP4 format recommended) to detect falls. " \
316
  "Processing may take time depending on video length.",
317
- examples=examples_list if examples_list else None,
318
  allow_flagging="never",
319
- cache_examples=False # ลองตั้งเป็น False เพื่อให้แน่ใจว่าไม่ได้ใช้ cache ที่มีปัญหา
320
  )
321
 
322
  if __name__ == "__main__":
 
18
  pose_complexity = 0 # ลด complexity เพื่อความเร็วบน Spaces, ลอง 0 หรือ 1
19
  use_static_image_mode = False # สำหรับวิดีโอไฟล์ จะถูก override เป็น True ใน process_video
20
 
21
+ FALL_EVENT_COOLDOWN = 5
22
 
23
  # ----- 0. KEYPOINT DEFINITIONS (เหมือนเดิม) -----
24
  KEYPOINT_NAMES_ORIGINAL = [
 
255
  processed_frame_display, results.pose_landmarks, mp_pose.POSE_CONNECTIONS,
256
  landmark_drawing_spec=mp.solutions.drawing_styles.get_default_pose_landmarks_style())
257
 
258
+ cv2.putText(processed_frame_display, current_status_display.split(': ')[-1], (10, 30), cv2.FONT_HERSHEY_DUPLEX, 0.7, (0, 255, 0), 2)
259
  if prediction_label == "fall" and ((frame_count/fps) - local_last_fall_event_time < FALL_EVENT_COOLDOWN):
260
+ cv2.putText(processed_frame_display, "FALL IS DETECTED!", (10, 70), cv2.FONT_HERSHEY_DUPLEX, 1.0, (0, 0, 255), 2, cv2.LINE_AA)
261
 
262
  processed_frames_list.append(processed_frame_display)
263
 
 
290
 
291
 
292
  # --- สร้าง Gradio Interface ---
 
 
 
 
 
 
 
 
 
 
 
 
293
 
294
+ # กำหนด list ของชื่อไฟล์ตัวอย่างของคุณ
295
+ example_filenames = [
296
+ "fall_example_1.mp4", # <<<< แก้ไขชื่อไฟล์ตามที่คุณใช้
297
+ "fall_example_2.mp4", # <<<< แก้ไขชื่อไฟล์ตามที่คุณใช้
298
+ "fall_example_3.mp4", # <<<< แก้ไขชื่อไฟล์ตามที่คุณใช้
299
+ "fall_example_4.mp4" # <<<< แก้ไขชื่อไฟล์ตามที่คุณใช้
300
+ ]
301
+
302
+ examples_list_for_gradio = []
303
+ for filename in example_filenames:
304
+ # ตรวจสอบว่าไฟล์ example มีอยู่ใน root directory ของ repo จริงๆ
305
+ if os.path.exists(filename): # Gradio examples ต้องการแค่ชื่อไฟล์ (ถ้าอยู่ใน root)
306
+ examples_list_for_gradio.append([filename]) # Gradio ต้องการ list ของ list
307
+ print(f"Info: Example file '{filename}' found and added.")
308
+ else:
309
+ print(f"Warning: Example file '{filename}' not found in the repository root. It will not be added to examples.")
310
 
311
  iface = gr.Interface(
312
  fn=process_video_for_gradio,
313
  inputs=gr.Video(label="Upload Video File (.mp4)"),
314
  outputs=[
315
+ #gr.Video(label="Processed Video with Detections"),
316
  gr.Textbox(label="Detection Summary (Events / Status)")
317
  ],
318
  title="AI Fall Detection from Video",
319
  description="Upload a video file (MP4 format recommended) to detect falls. " \
320
  "Processing may take time depending on video length.",
321
+ examples=examples_list_for_gradio if examples_list_for_gradio else None, # <<<< ใช้ list ใหม่นี้
322
  allow_flagging="never",
323
+ cache_examples=False
324
  )
325
 
326
  if __name__ == "__main__":