Spaces:
Running
Running
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 Monitoringruns the activity classification pipeline.Attendancelets you enroll students and mark attendance from a classroom photo.
Run it
From the repo root:
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.pydirectly. - Output files are written to
activity_web/runtime/. - Large videos can take a while because the pipeline performs full face detection and classification.