{"id":29200278,"url":"https://github.com/professorlearncode/pixid","last_synced_at":"2025-07-02T10:35:36.417Z","repository":{"id":301901899,"uuid":"1010622392","full_name":"ProfessorlearnCode/PixID","owner":"ProfessorlearnCode","description":"pixID – Offline smart attendance system using ESP32-S3 CAM and local face recognition. Built with Flask, runs offline, and supports IR-based gesture capture.","archived":false,"fork":false,"pushed_at":"2025-06-29T13:38:24.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-29T14:31:05.370Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ProfessorlearnCode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-29T13:18:27.000Z","updated_at":"2025-06-29T13:38:45.000Z","dependencies_parsed_at":"2025-06-29T14:31:12.217Z","dependency_job_id":"6486b6c5-72c7-40b1-a592-1b700ba349c5","html_url":"https://github.com/ProfessorlearnCode/PixID","commit_stats":null,"previous_names":["professorlearncode/pixid"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ProfessorlearnCode/PixID","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfessorlearnCode%2FPixID","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfessorlearnCode%2FPixID/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfessorlearnCode%2FPixID/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfessorlearnCode%2FPixID/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProfessorlearnCode","download_url":"https://codeload.github.com/ProfessorlearnCode/PixID/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfessorlearnCode%2FPixID/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263121437,"owners_count":23416996,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-02T10:35:35.030Z","updated_at":"2025-07-02T10:35:36.402Z","avatar_url":"https://github.com/ProfessorlearnCode.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📸 pixID – Smart Offline Facial Recognition Attendance System\n\n**pixID** is a lightweight, offline-capable attendance system that uses facial recognition, built using the **ESP32-S3 CAM** and a local **Flask server**. Designed with minimal hardware and no reliance on cloud services, it’s perfect for classroom, lab, or small office environments.\n\n---\n\n## 🎯 Project Objective\n\nTo create a **smart, secure, and offline-first facial recognition system** that:\n- Automatically logs attendance using facial data\n- Works without internet access\n- Is cost-effective and hardware-friendly\n- Can later sync with cloud-based systems\n\n---\n\n## 🧠 How It Works\n\n1. **ESP32-S3 CAM** acts as a Wi-Fi access point.\n2. When triggered (manually or by IR sensor), it captures a face image and sends it to a local server.\n3. A **Flask backend**:\n   - Processes the image\n   - Matches it with known faces using `face_recognition` (Python)\n   - Logs attendance in a CSV file\n   - Updates a simple web dashboard\n4. LED feedback on the ESP32 provides status cues.\n\n---\n\n## 🚀 Features\n\n- 🔒 **Offline support** (no internet required after setup)\n- 🎞️ Face capture via `/capture` endpoint or IR gesture\n- 🧠 Local face recognition using Python + `face_recognition`\n- 🧾 Attendance logged in `attendance_log.csv`\n- 🖥️ Web dashboard to view attendance records\n- 💡 LED status indicator (capturing / success / failure)\n- 🔌 Powered via standard 12V laptop adapter\n\n---\n\n## 📦 Tech Stack\n\n| Component       | Tech Used                      |\n|----------------|---------------------------------|\n| Camera Board    | ESP32-S3 CAM                   |\n| Server Backend  | Flask (Python)                 |\n| Recognition     | `DeepFace` (ArcFace)   |\n| Communication   | HTTP (image POST to Flask)     |\n| Storage         | CSV log, local known_faces DB  |\n| Triggering      | Manual + IR gesture-based      |\n\n---\n\n## 📁 Project Structure\n\n```\n\napp/\n├── app.py                   ← Main Flask server\n├── data/\n│   ├── embeds/              ← Eembeddings.pkl\n│   ├── imgDataset           ← Training images\n│   │   └── known_faces/     ← Original photo records\n│   │   │   └── person1/\n│   │   │   └── person2/\n│   │   │   └── person3/\n│   ├── logs/                ← Attendance CSV file\n│   └── processed/           ← Original photo records\n├── templates/               ← Frontend HTML pages\n├── static/                  ← CSS \u0026 JS assets\n├── uploads/                 ← Enhanced images for recognition\n├── images/                  ← Raw images from ESP32\n├── utils/\n│   └── prepare_embeds.py    ← Use this after adding new known faces\n├── requirements.txt\n\n````\n\n---\n\n## 🧪 Setup Instructions\n\n### 1. 🔧 ESP32 Setup\n\n- Flash the ESP32-S3 CAM with `pixid_cam_code.ino`\n- Ensure it:\n  - Creates a SoftAP network\n  - Runs a `/capture` route\n  - Takes and POSTs images to Flask server\n\n### 2. 🧠 Flask Server Setup\n\n```bash\ngit clone https://github.com/yourusername/pixID.git\ncd pixID/server\n\n# Create virtual environment (optional)\npython -m venv venv\nsource venv/bin/activate    # For Windows: venv\\Scripts\\activate\n\n# Install dependencies\npip install -r ../requirements.txt\n\n# Run server\npython app.py\n````\n\nServer will listen at `http://192.168.4.1:5000` (ESP32’s network)\n\n---\n\n### 3. 📂 Enroll Faces\n\n* Add clear, front-facing images in `imgdataset/known_faces/`\n* Filenames will be used as (e.g., `1.jpg` → \"in /Farzam\")\n\n---\n\n### 4. 🎯 Trigger Attendance Capture\n\n* Connect to ESP32 Wi-Fi\n* Visit `http://192.168.4.1/capture` to trigger capture manually\n* IR-based gesture capture also supported (customizable in `.ino` file)\n\n---\n\n## 📊 Dashboard\n\n* Flask hosts a basic web dashboard at `/dashboard`\n* View recent attendance records with timestamps\n\n---\n\n## 📝 Notes\n\n* No cloud service used — all computation and logging are local\n* You can later integrate cloud sync (e.g., Firebase or Google Sheets API)\n* Recognition is best with clear, evenly lit faces from front view\n* IR sensor is optional but adds hands-free interaction\n\n---\n\n## 🔮 Future Plans\n\n* Add real-time face detection on ESP32 preview\n* Implement cloud-based sync (Firebase or S3)\n* Optimize power usage (deep sleep cycles)\n* Add mobile-friendly dashboard\n\n---\n\n## 🙌 Acknowledgements\n\n* Inspired by CS50, AI, and IoT coursework\n* Built with ❤️ by Farzam Asad as an exploration into practical AI + embedded systems\n\n---\n\n\u003e *pixID is a proof-of-concept project for learning, exploration, and showcasing embedded + AI integration.*\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprofessorlearncode%2Fpixid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprofessorlearncode%2Fpixid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprofessorlearncode%2Fpixid/lists"}