How sandeepsawhney2015/rpi-facial-recognition-door-chime works
The product is a Raspberry Pi smart doorbell with a Mac webcam prototype. Its implemented workflows capture frames, run object and/or face recognition, annotate results, and either display them locally or stream them to a browser; a separate tool enrolls faces into the shared local database. The graph distinguishes these runnable paths and the face-processing and persistence layers. Door-state gating, greetings, and notifications are documented goals, not implemented components. Relationships for unsampled enrollment behavior and networking follow README descriptions.
Main entry points: camera_stream.py Pi recognition stream · database.py Face database · main.py Mac doorbell app · face_identifier.py Face detection and embeddings
Components 15
Capture and detection
- Pi camera
- Mac webcam
- YOLO detection
main.py
Face identity
- Face detection and embeddings
face_identifier.py - Face matching and labels
main.py - Pi face matching
camera_stream.py - Face enrollment
test_faces.py - Face database
database.py
Display and streaming
- Pi recognition stream
camera_stream.py - Pi YOLO stream
camera_stream_yolo_backup.py - Pi camera check
camera_stream_backup.py - Mac doorbell app
main.py
Other components
- Entrance visitor
- Browser viewer
- Tailscale tunnel
Connections 20
- Entrance visitor → Pi camera: appears before
- Entrance visitor → Mac webcam: appears before
- Pi camera → Pi recognition stream: captures frames
camera_stream.py - Pi camera → Pi YOLO stream: captures frames
camera_stream_yolo_backup.py - Pi camera → Pi camera check: captures frames
camera_stream_backup.py - Mac webcam → Mac doorbell app: reads frames
main.py - Mac doorbell app → YOLO detection: runs detection
main.py - Mac doorbell app → Face detection and embeddings: gets face data
main.py - Mac doorbell app → Face matching and labels: matches embeddings
main.py - Face matching and labels → Face database: loads embeddings
main.py - Pi recognition stream → Face detection and embeddings: gets face data
camera_stream.py - Pi recognition stream → Pi face matching: matches embeddings
camera_stream.py - Pi recognition stream → Face database: loads embeddings
camera_stream.py - Face enrollment → Face detection and embeddings: extracts embeddings
README.md - Face enrollment → Face database: saves embeddings
README.md - Face database → Face database: reads and writes SQLite
database.py - Pi recognition stream → Browser viewer: streams MJPEG
README.md - Pi YOLO stream → Browser viewer: streams MJPEG
camera_stream_yolo_backup.py - Pi camera check → Browser viewer: streams MJPEG
camera_stream_backup.py - Tailscale tunnel → Browser viewer: forwards stream access
README.md