{"id":22349631,"url":"https://github.com/AkinduID/FazeTrak","last_synced_at":"2025-12-30T23:25:06.230Z","repository":{"id":248365680,"uuid":"828494156","full_name":"AkinduID/EyeRiz","owner":"AkinduID","description":"EyeRiz is a smart webcam capable of face recognition, gesture-based face locking, tracking, and release the lock, developed For the CS3283 - Embedded Systems Project in Semester 5. ","archived":false,"fork":false,"pushed_at":"2025-02-10T08:32:56.000Z","size":65908,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-10T09:31:02.480Z","etag":null,"topics":["arduino","computer-vision","cplusplus","face-detection","gesture-recognition","mediapipe","opencv","pyqt5","python"],"latest_commit_sha":null,"homepage":"","language":"Python","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/AkinduID.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}},"created_at":"2024-07-14T10:22:42.000Z","updated_at":"2025-02-10T08:32:59.000Z","dependencies_parsed_at":"2024-07-14T11:44:30.798Z","dependency_job_id":"20c9dfc7-6183-4286-8245-a30078707d47","html_url":"https://github.com/AkinduID/EyeRiz","commit_stats":null,"previous_names":["akinduid/face-tracking-webcam","akinduid/eyeriz"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkinduID%2FEyeRiz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkinduID%2FEyeRiz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkinduID%2FEyeRiz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkinduID%2FEyeRiz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AkinduID","download_url":"https://codeload.github.com/AkinduID/EyeRiz/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245641695,"owners_count":20648712,"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":["arduino","computer-vision","cplusplus","face-detection","gesture-recognition","mediapipe","opencv","pyqt5","python"],"created_at":"2024-12-04T11:08:50.263Z","updated_at":"2025-12-30T23:25:06.225Z","avatar_url":"https://github.com/AkinduID.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FazeTrak\n\n\u003cdiv align=\"left\"\u003e\n\n\u003ca href=\"https://www.python.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Python-3776AB?style=flat\u0026logo=python\u0026logoColor=white\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://isocpp.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/C++-00599C?style=flat\u0026logo=c%2B%2B\u0026logoColor=white\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://www.qt.io/\"\u003e\u003cimg src=\"https://img.shields.io/badge/PyQt-41CD52?style=flat\u0026logo=qt\u0026logoColor=white\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://www.arduino.cc/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Arduino-00979D?style=flat\u0026logo=arduino\u0026logoColor=white\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://platformio.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/PlatformIO-FF7F32?style=flat\u0026logo=platformio\u0026logoColor=white\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://code.visualstudio.com/\"\u003e\u003cimg src=\"https://img.shields.io/badge/VS%20Code-007ACC?style=flat\u0026logo=visual-studio-code\u0026logoColor=white\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://opencv.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/OpenCV-5C3EE8?style=flat\u0026logo=opencv\u0026logoColor=white\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://mediapipe.dev/\"\u003e\u003cimg src=\"https://img.shields.io/badge/MediaPipe-2196F3?style=flat\u0026logo=google\u0026logoColor=white\"/\u003e\u003c/a\u003e\n\n**Smart face-tracking webcam system with gesture control and ESP32-C3 servo integration**\n\n\u003c/div\u003e\n\n---\n\n## 📋 Table of Contents\n\n- [Overview](#overview)\n- [Features](#features)\n- [Project Structure](#project-structure)\n- [Hardware Requirements](#hardware-requirements)\n- [Software Requirements](#software-requirements)\n- [Installation](#installation)\n- [Usage](#usage)\n- [System Architecture](#system-architecture)\n- [Documentation](#documentation)\n- [Contributing](#contributing)\n\n\n---\n\n## 🎯 Overview\n\nFazeTrak is an intelligent webcam system capable of real-time face detection, gesture-based control, and autonomous tracking. Developed for **CS3283 - Embedded Systems Project (Semester 5)**, the system combines computer vision, embedded systems, and robotics to create a self-centering camera platform.\n\nThe system uses:\n- **Desktop Application** (PyQt5) - Face/gesture detection and servo control\n- **ESP32-C3 Microcontroller** - Servo motor driver and command processing\n- **Pan-Tilt Mechanism** - Dual servo motors for 2-axis tracking\n- **Virtual Camera Integration** - Stream tracked video to Zoom, OBS, etc.\n\n---\n\n## ✨ Features\n\n- ✅ **Real-time Face Detection** - Powered by MediaPipe\n- ✅ **Gesture-based Control** - Lock/unlock tracking with hand gestures\n- ✅ **Autonomous Tracking** - Servos automatically center face in frame\n- ✅ **Virtual Camera Support** - Stream to OBS, Zoom, Teams\n- ✅ **Desktop Application** - Full PyQt5 GUI with live preview\n\n---\n\n## 📁 Project Structure\n\n```\nFace-Tracking-WebCam/\n├── desktop-app/\n│   ├── app/\n│   │   ├── main.py                 # PyQt5 GUI entry point\n│   │   ├── video_thread.py         # Video capture \u0026 face tracking\n│   │   ├── servo_controller.py     # Serial communication with ESP32-C3\n│   │   ├── gesture.py              # Hand gesture detection\n│   │    parameters\n│   ├── requirements.txt\n│   └── README.md\n├── device-firmware/\n│   ├── src/\n│   │   └── main.cpp                # ESP32-C3 servo control firmware\n│   ├── platformio.ini\n│   └── README.md\n├── assets/\n│   ├── esp32_c3_supermini.jpeg\n│   ├── circuit.png\n│   └── ...\n├── README.md\n└── .gitignore\n```\n\n---\n\n## 🔧 Hardware Requirements\n\n- **Microcontroller**: ESP32-C3 SuperMini\n- **Servos**: 2× SG90 Pan-Tilt Servos (180° range)\n- **Webcam**: Logitech C270 HD (or compatible USB camera)\n- **Servo Bracket**: Pan-Tilt mount\n- **USB Cable**: Type-C (ESP32-C3 connection)\n\n### Hardware Connections\n\n| ESP32-C3 Pin | Component |\n|--------------|-----------|\n| GPIO 4       | Pan Servo Signal |\n| GPIO 3       | Tilt Servo Signal |\n| GND          | Servo GND |\n| 5V           | Servo VCC (via external PSU) |\n\n---\n\n## 💻 Software Requirements\n\n### Desktop Application\n- Python 3.8+\n- PyQt5\n- OpenCV (cv2)\n- MediaPipe\n- pyvirtualcam\n\n### ESP32-C3 Firmware\n- PlatformIO\n- ESP32Servo library\n\n---\n\n## 📦 Installation\n\n### Desktop Application Setup\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/AkinduID/FazeTrak.git\n   cd FazeTrak/desktop-app\n   ```\n\n2. **Create virtual environment** (recommended)\n   ```bash\n   python -m venv venv\n   source venv/bin/activate  # On Windows: venv\\Scripts\\activate\n   ```\n\n3. **Install dependencies**\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n### ESP32-C3 Firmware Setup\n\n1. **Install PlatformIO**\n   ```bash\n   pip install platformio\n   ```\n\n2. **Navigate to firmware directory**\n   ```bash\n   cd device-firmware\n   ```\n\n3. **Build and upload**\n   ```bash\n   platformio run -t upload\n   ```\n\n---\n\n## 🚀 Usage\n\n### Starting the Desktop Application\n\n```bash\ncd desktop-app\npython -m app.main\n```\n\n**Controls:**\n- **Start Tracking** - Begin face detection and servo control\n- **Stop Tracking** - Stop the tracking system\n- **Hand Gestures**:\n  - ✋ **Open Palm** → Release face lock\n  - ✊ **Closed Fist** → Lock face and start tracking\n\n**Visual Feedback:**\n- 🔵 **Blue circle** - Raw face detection (noisy)\n- 🟡 **Yellow circle** - Kalman Filter estimate (smooth)\n- 🟢 **Green rectangle** - Face bounding box\n- 🟢 **Green line** - Servo aim vector\n\n---\n\n## 🏗️ System Architecture\n\n```\n┌─────────────────────────────────────┐\n│      Desktop Application (PyQt5)    │\n├─────────────────────────────────────┤\n│  ┌───────────────────────────────┐  │\n│  │  Video Input (Webcam)         │  │\n│  └──────────────┬────────────────┘  │\n│                 │                    │\n│  ┌──────────────▼────────────────┐  │\n│  │  Face Detection (MediaPipe)   │  │\n│  └──────────────┬────────────────┘  │\n│                 │                    │\n│  ┌──────────────▼────────────────┐  │\n│  │  Servo Control Algorithm      │  │\n│  └──────────────┬────────────────┘  │\n│                 │                    │\n└─────────────────┼────────────────────┘\n                  │ Serial @ 115200 baud\n         ┌────────▼─────────┐\n         │   ESP32-C3       │\n         ├──────────────────┤\n         │ Servo Driver     │\n         │ (PWM Generator)  │\n         └────────┬─────────┘\n                  │\n         ┌────────┴──────────┐\n         │                   │\n      ┌──▼──┐          ┌──▼──┐\n      │ Pan │          │Tilt │\n      │Servo│          │Servo│\n      └─────┘          └─────┘\n```\n\n---\n\n## 📚 Documentation\n\nFor detailed progress and technical documentation, see:\n- [GitHub Wiki](https://github.com/AkinduID/FazeTrak/wiki) - Weekly progress and technical details\n- [Desktop App README](desktop-app/README.md)\n- [Firmware README](device-firmware/README.md)\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Please follow these steps:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAkinduID%2FFazeTrak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAkinduID%2FFazeTrak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAkinduID%2FFazeTrak/lists"}