TSAS Challenge
TSAS Challenge
attendance tracking system for educational institutions. Instead of the traditional method of
taking attendance manually, this system would use technology to automate the process.
This automation helps not only with recording attendance but also with tracking student
engagement and punctuality.
Key Objectives:
1. Automate Attendance: Replace the manual roll-call with technology like facial
recognition or RFID cards. This way, students are marked present simply by being
in the room or by swiping a card. It saves time and reduces human error.
2. Analyze Engagement: Beyond tracking who is present, the system would collect
data on engagement and punctuality. For example, it could help teachers
understand attendance patterns, punctuality trends, and identify students who might
need support.
3. Optimize Energy Use: Make the system energy-efficient. For example, cameras or
sensors could activate only when students are in the room, saving energy and
extending the lifespan of the devices.
4. Ensure Privacy and Security: Handle students’ data with care, ensuring that
privacy laws are followed. This is important since the system would collect sensitive
data like attendance and possibly facial recognition information.
Deliverables
● Face Recognition with Fallback to QR/RFID: Use face recognition as the primary
method and QR or RFID as a backup. This ensures attendance verification even in
low-light conditions or for students without an RFID.
● Voice-Activated Attendance: Add voice recognition as an alternative, especially for
younger students or students with accessibility needs.
● On-Device Face Recognition: Use edge devices (e.g., Raspberry Pi) to process
facial recognition locally. This minimizes data transfer to servers, improving speed
and protecting student privacy.
● Real-Time Data Compression: Compress data before storing or transferring it,
conserving bandwidth and reducing storage requirements.
● Shared Camera Feeds: Use one camera to serve multiple classrooms with
advanced algorithms that detect individuals’ locations, limiting the need for multiple
cameras in the same area.
● Centralized Data Storage: Instead of each device storing data independently, sync
them to a centralized server at scheduled intervals to optimize data processing and
storage needs.
1. Hardware
○ Raspberry Pi 4 (for edge processing and low-cost computing)
○ ESP32 (for RFID scanning and low-power connectivity)
○ Camera Module (compatible with Raspberry Pi for facial recognition)
○ RFID/NFC Sensors (for alternative or dual authentication)
○ Wi-Fi Router (for network connectivity)
○ Optional: Portable power sources (if you need a mobile demo setup)
2. Software and Tools
○ Operating System: Raspbian OS for Raspberry Pi
○ Programming Languages: Python for development, JavaScript/HTML/CSS
for front-end (optional)
○ Machine Learning Library: OpenCV for facial recognition; TensorFlow Lite
(optimized for edge devices)
○ Database: SQLite or Firebase (for small-scale, real-time data storage)
○ Development Environment: Jupyter Notebook (for prototyping ML models),
Visual Studio Code (for coding)
○ Data Analysis: Pandas, NumPy for engagement analysis
○ Energy Monitoring Tools: PowerTOP (Linux) to optimize energy on
Raspberry Pi
○ Privacy and Security: Implement basic encryption libraries in Python (like
PyCryptodome) for secure data handling
○ Video Creation: OBS Studio (screen recording), Canva or Adobe Premiere
(video editing)
● Objective: Finalize the plan, assign roles, and set up the hardware and software
environment.
● Tasks:
○ Define team roles: e.g., programming, hardware setup, data analysis,
documentation, and video editing.
○ Install Raspbian OS on the Raspberry Pi.
○ Set up Python and essential libraries (OpenCV, TensorFlow Lite, Pandas,
etc.).
○ Test the camera module and RFID/NFC sensors to ensure compatibility.
1. System Overview
This dual approach enhances accuracy and provides additional data insights.
● Hardware:
○ RFID reader and tags (to identify students uniquely)
○ Camera (to capture student images for facial recognition)
○ Processing Unit (e.g., Raspberry Pi for edge processing, ESP32 for RFID)
● Software:
○ Python: The main programming language for integration.
○ OpenCV: For facial recognition or engagement analysis.
○ TensorFlow Lite: If you need advanced machine learning models for AI on
Raspberry Pi.
○ Database: SQLite or Firebase to store attendance and engagement data.
○ Encryption Libraries: PyCryptodome or similar for securing data.
3. System Architecture
● RFID Module: Reads the RFID tag each student carries (e.g., a card or keychain)
and logs the student’s ID in the database.
● AI Module (Facial Recognition): Captures a photo of the student after the RFID
scan for verification or to analyze engagement.
● Data Synchronization: Store attendance data in a database that logs RFID and AI
data for cross-verification.
4. Integration Steps
import time
import sqlite3
# Set up database
conn = sqlite3.connect('attendance.db')
cursor = conn.cursor()
def log_rfid():
while True:
if rfid_reader.in_waiting:
rfid_id = rfid_reader.readline().decode().strip()
conn.commit()
log_rfid()
import face_recognition
known_faces = [face_recognition.load_image_file("student1.jpg")]
def recognize_face():
cap = cv2.VideoCapture(0)
ret, frame = cap.read()
if ret:
face_locations = face_recognition.face_locations(frame)
face_encodings = face_recognition.face_encodings(frame,
face_locations)
matches =
face_recognition.compare_faces(known_encodings, face_encoding)
if True in matches:
match_index = matches.index(True)
return student_id
cap.release()
recognized_student = recognize_face()
● When a student swipes their RFID tag, trigger the camera to capture their image.
● Use RFID as the initial identification and facial recognition as verification to
confirm the student’s identity.
● If both methods match, log the student as present in the database.
python
Copier le code
def log_attendance(rfid_id):
recognized_student = recognize_face()
if recognized_student and recognized_student == rfid_id:
conn.commit()
else:
log_attendance("Student1")
● Log arrival times and duration of each student’s attendance in the database.
● Analyze patterns, such as repeated lateness or absence, using Python and data
analysis libraries (e.g., Pandas).
● Video: Record a demo showing the RFID and facial recognition working together.
● Documentation: Describe the architecture, functions, and data flow.
Summary Workflow: