File size: 2,934 Bytes
f994a03 c5ee215 f994a03 c5ee215 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
---
title: Video Human Fall Detector
emoji: 🐠
colorFrom: purple
colorTo: red
sdk: gradio
sdk_version: 5.25.0
app_file: app.py
pinned: false
license: apache-2.0
short_description: Fall Detection Demo using LightCLIP
---
# Fall Detection Demo using LightCLIP on Hugging Face Spaces
This project demonstrates a lightweight, transformer-based approach to detect human falls in video clips using a vision–language model (VLM). The demo is designed for complex scenes including multiple persons, obstacles, and varying lighting conditions. It employs a sliding-window technique to check multiple frames for robust detection and aggregates predictions over time to reduce false alarms.
## Overview
The demo uses a pre-trained LightCLIP (or CLIP) model to compute image–text similarity scores between video frames and natural language prompts. Two prompts are used:
- **Fall Prompt:** "A person falling on the ground."
- **Non-Fall Prompt:** "A person standing or walking."
For each window of frames extracted from the video, the model computes similarity scores for each frame. The scores are aggregated over a sliding window, and if the average score for the "fall" prompt exceeds a defined threshold, a fall event is registered along with an approximate timestamp.
## Project Files
- **app.py:** The main application file containing the Gradio demo.
- **requirements.txt:** Lists all the required Python libraries.
- **README.md:** This file.
## How to Run
1. **Clone or download the repository** into your Hugging Face Spaces.
2. Ensure the project is set to use the **GPU plan** in Spaces.
3. Spaces will automatically install the required libraries from `requirements.txt`.
4. Launch the demo by running `app.py` (Gradio will start the web interface).
## Code Overview
- **Frame Extraction:** The video is processed using OpenCV to extract frames (resized to 224×224).
- **LightCLIP Inference:** The demo uses the Hugging Face Transformers library to load a CLIP model (acting as LightCLIP). It computes image embeddings for each frame and compares them to text embeddings of the fall and non-fall descriptions.
- **Temporal Aggregation:** A sliding window (e.g. 16 frames with a stride of 8) is used to calculate average "fall" scores. Windows exceeding a threshold (e.g. 0.8) are flagged as fall events.
- **User Interface:** A simple Gradio UI allows users to upload a video clip and displays the detection result along with a representative frame and list of detected fall times.
## Customization
- **Model:** Replace `"openai/clip-vit-base-patch32"` in `app.py` with your own LightCLIP model checkpoint if available.
- **Threshold & Window Size:** Adjust parameters such as the detection threshold, window size, and stride for better results on your dataset.
- **Deployment:** This demo is configured to run on a GPU-backed Hugging Face Space for real-time inference.
Enjoy experimenting with fall detection!
|