Inspiration
Taking attendance manually interrupts class, while scattered check-in records make it difficult to understand participation over time. We built Presence to explore how face recognition and data analytics can simplify check-in and turn attendance records into useful insights.
What it does
Presence is a prototype for automated attendance, designed to reduce manual work and support identity-verification workflows that help staff create a safer environment.
The camera can recognize multiple registered individuals, displaying names, face boxes, and match scores. Participants can be removed from the demo gallery while guests can be temporarily registered and identified on site and then deleted afterward. Unmatched faces in the database appear as “Unknown.”
The attendance system manages course rosters, sessions, and saved check-ins. Our Databricks integration calculates attendance rates, late-arrival rates, and daily trends, then displays the exported results in Presence.
How we built it
We built the frontend with HTML, CSS, and JavaScript, featuring UCF and Full Sail themes. A Node.js backend manages PostgreSQL-based attendance workflows, with PGlite supporting our local demo. Our Python recognition pipeline uses OpenCV, YuNet face detection, and SFace embeddings. A Databricks PySpark notebook validates attendance records, removes exact duplicates, rejects conflicting records, and calculates aggregate metrics. We manually export its JSON report and import it into the app.
Challenges we ran into
We also needed to handle uncertain matches, avoid duplicate check-ins, and preserve existing attendance functionality as we added features. Presenting results accurately was another challenge: face similarity scores are not accuracy percentages, and synthetic attendance data must be clearly distinguished from real records.
Accomplishments that we're proud of
Saving attendance against classes and sessions, with history and corrections. Analyzing 1,080 fictional attendance records in Databricks and displaying the results in Presence. Demonstrating how recognition-assisted check-in can support staff verification by making unmatched participants visible, while keeping decisions with staff.
What we learned
Computer vision becomes useful when it supports a clear workflow. We also realized that simply recognizing a person wouldn't solve our problem. As a result, we had to handle uncertainty, preserve accurate records, and give users understandable feedback.
What's next for Presence
We want to connect recognition and classroom attendance into a smoother check-in experience, automate the Databricks report transfer, and measure recognition errors under different lighting conditions and camera positions. The main purpose of Presence is to automate identity verification and attendance to help staff create a safer environment, whether in a classroom, airport, concert, or a doctor’s office.
Built With
- css
- databricks
- ffmpeg
- html
- https
- javascript
- node.js
- onnx
- opencv
- pglite
- postgresql
- pyspark
- python
- runpod
- sface
- sql
- unbuntu
- yunet
Log in or sign up for Devpost to join the conversation.