How eko-347m4n/face-tracking-recognition works
This is a real-time face-tracking and recognition application with blink-based liveness checks. The main workflow initializes the camera and known-face dataset, then runs a threaded pipeline that captures frames, detects or tracks faces within selected regions, identifies faces, checks liveness, and returns results for display. Dataset caching and automatic reloads support operation as the image collection changes. The pipeline excerpt is partial, so links for detection and liveness follow documented behavior; uncertain internal wiring is omitted.
Main entry points: main.py Application Orchestrator · processing_pipeline.py Threaded Pipeline · dataset_manager.py Dataset Manager · camera_handler.py Camera Handler
Components 16
Application Control
- Application Orchestrator
main.py - Camera Handler
core/camera_handler.py
Frame Processing
- Threaded Pipeline
core/processing_pipeline.py - ROI Utilities
core/roi.py
Identity and Liveness
- Face Matcher
core/recognizer.py - Blink Detector
core/anti_spoofing.py - Landmark Utilities
core/face_utils.py
Data and Presentation
- Dataset Manager
core/dataset_manager.py - Image Loader and Encoder
core/utils.py - Encoding Cache
core/dataset_manager.py - Frame Display
core/display.py
Other components
- Operator
- Webcam
- Face Images
- Face Detector
- Object Tracking
Connections 19
- Operator → Application Orchestrator: starts and quits
- Webcam → Camera Handler: provides video
- Application Orchestrator → Camera Handler: initializes
- Camera Handler → Application Orchestrator: returns capture
- Application Orchestrator → Dataset Manager: loads and reloads
- Dataset Manager → Face Images: reads images
- Dataset Manager → Image Loader and Encoder: loads and encodes
- Dataset Manager → Encoding Cache: reads and writes
- Application Orchestrator → Threaded Pipeline: starts and stops
- Application Orchestrator → Face Detector: creates detector
- Threaded Pipeline → Face Detector: detects faces
- Threaded Pipeline → Object Tracking: tracks faces
- Threaded Pipeline → ROI Utilities: selects and draws ROI
- Threaded Pipeline → Face Matcher: matches encodings
- Threaded Pipeline → Blink Detector: checks blinks
- Blink Detector → Landmark Utilities: calculates eye ratio
- Threaded Pipeline → Application Orchestrator: queues display data
- Application Orchestrator → Frame Display: renders results
- Operator → Frame Display: views output