# sarkarroni748-cpu/face_recognition_model- architecture

> Architecture diagram of the GitHub repository sarkarroni748-cpu/face_recognition_model-, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sarkarroni748-cpu/face_recognition_model-
- Repository: https://github.com/sarkarroni748-cpu/face_recognition_model-

## Overview

This is a webcam-based face-recognition attendance application. At startup, it loads enrolled faces from the picture folder and prepares an attendance session; during capture, a background recognition worker identifies faces, and the main loop displays labels. Attendance is managed through MySQL, and detected names can be spoken. The recognition-to-attendance-marking connection is omitted because that call is not visible in the sampled excerpt.

Main entry points: [`face_ricognition.py`](https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/face_ricognition.py) (Capture and display loop), [`db_manager.py`](https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/db_manager.py) (Attendance manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_capture["Capture and display"]
  node_main["Capture and display loop"]
end

subgraph group_recognition["Face recognition"]
  node_face_loader["Load known faces"]
  node_recognition_worker["Recognition worker"]
  node_face_analysis["FaceAnalysis model"]
  node_label_map["Current face labels"]
end

subgraph group_attendance["Attendance records"]
  node_db_manager["Attendance manager<br/>[db_manager.py]"]
  node_mysql[("MySQL database")]
end

subgraph group_voice["Voice feedback"]
  node_speech["Speech functions"]
end

node_user(("Operator"))
node_webcam(("Webcam"))
node_picture_folder["Enrolled face images"]
node_speech_engine["Text-to-speech engine"]
node_speaker(("Audio output"))

node_user -->|"starts"| node_main
node_webcam -->|"video frames"| node_main
node_main -->|"loads enrollment"| node_face_loader
node_picture_folder -->|"image files"| node_face_loader
node_face_loader -->|"extracts embeddings"| node_face_analysis
node_main -->|"initializes and syncs"| node_db_manager
node_db_manager -->|"creates and updates"| node_mysql
node_main -->|"starts session"| node_db_manager
node_main -->|"dispatches frames"| node_recognition_worker
node_recognition_worker -->|"detects and embeds"| node_face_analysis
node_recognition_worker -->|"writes results"| node_label_map
node_main -->|"reads labels"| node_label_map
node_main -->|"speaks detected names"| node_speech
node_speech -.->|"sends text"| node_speech_engine
node_speech_engine -.->|"produces audio"| node_speaker

click node_main "https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/face_ricognition.py"
click node_face_loader "https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/face_ricognition.py"
click node_recognition_worker "https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/face_ricognition.py"
click node_face_analysis "https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/face_ricognition.py"
click node_label_map "https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/face_ricognition.py"
click node_db_manager "https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/db_manager.py"
click node_speech "https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/face_ricognition.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main toneBlue
class node_face_loader,node_recognition_worker,node_face_analysis,node_label_map toneAmber
class node_db_manager,node_mysql toneMint
class node_speech toneRose
class node_user,node_webcam,node_picture_folder,node_speech_engine,node_speaker toneIndigo
```

## Components

### Capture and display

- [Capture and display loop](https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/face_ricognition.py): `face_ricognition.py`

### Face recognition

- [Load known faces](https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/face_ricognition.py): `face_ricognition.py`
- [Recognition worker](https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/face_ricognition.py): `face_ricognition.py`
- [FaceAnalysis model](https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/face_ricognition.py): `face_ricognition.py`
- [Current face labels](https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/face_ricognition.py): `face_ricognition.py`

### Attendance records

- [Attendance manager](https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/db_manager.py): `db_manager.py`
- **MySQL database**

### Voice feedback

- [Speech functions](https://github.com/sarkarroni748-cpu/face_recognition_model-/blob/main/face_ricognition.py): `face_ricognition.py`

### Other components

- **Operator**
- **Webcam**
- **Enrolled face images**
- **Text-to-speech engine**
- **Audio output**

## Connections

- Operator → Capture and display loop: starts
- Webcam → Capture and display loop: video frames
- Capture and display loop → Load known faces: loads enrollment
- Enrolled face images → Load known faces: image files
- Load known faces → FaceAnalysis model: extracts embeddings
- Capture and display loop → Attendance manager: initializes and syncs
- Attendance manager → MySQL database: creates and updates
- Capture and display loop → Attendance manager: starts session
- Capture and display loop → Recognition worker: dispatches frames
- Recognition worker → FaceAnalysis model: detects and embeds
- Recognition worker → Current face labels: writes results
- Capture and display loop → Current face labels: reads labels
- Capture and display loop → Speech functions: speaks detected names
- Speech functions → Text-to-speech engine: sends text
- Text-to-speech engine → Audio output: produces audio
