Prismai / activity_web /README.md
Satyam S
PRISM AI — with demo attendance button
af32e72
|
Raw
History Blame Contribute Delete
1.84 kB
# 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.