Spaces:
Sleeping
Sleeping
File size: 1,840 Bytes
af32e72 | 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 | # Activity Classification Web App
This adds a basic Flask backend and a browser frontend on top of the existing classroom activity classification pipeline.
## What it does
- Upload a classroom video from the browser
- Run the existing `StudentActivityPipeline`
- Return the generated JSON summary, CSV, and annotated video download links
- Show per-clip predictions in a table
- Enroll students from photos or videos using local embeddings derived from fine-tuned RetinaFace-aligned face crops
- Mark attendance from a classroom photo with fine-tuned RetinaFace detection and local embedding matching
- Delete an enrolled student from the roster and remove their stored attendance rows
## Tabs
- `Activity Monitoring` runs the activity classification pipeline.
- `Attendance` lets you enroll students and mark attendance from a classroom photo.
## Run it
From the repo root:
```bash
source /Users/satyam/Desktop/classroom-ai-project/.venv/bin/activate
python -m activity_web.backend.app
```
Then open `http://127.0.0.1:5000`.
### Important: ffmpeg for browser playback
The pipeline saves per-student clips as MP4 files. To ensure those clips are encoded in H.264
so modern browsers can play them inline, install `ffmpeg` and make it available on your PATH
before running the server. If `ffmpeg` is not found the app will fall back to a basic encoder
which may produce MP4 files that some browsers cannot decode.
Installation examples:
- Windows (Chocolatey): `choco install ffmpeg`
- macOS (Homebrew): `brew install ffmpeg`
- Ubuntu/Debian: `sudo apt install ffmpeg`
## Notes
- The app reuses `ACTIVITY CLASSIFICATION PIPELINE/student_activity_pipeline.py` directly.
- Output files are written to `activity_web/runtime/`.
- Large videos can take a while because the pipeline performs full face detection and classification.
|