AURAVISION - The Multiperson Real-Time Face Recognition System is a deep learning-based application designed for real-time face detection and recognition of multiple individuals in a frame. It uses advanced face detection techniques like MTCNN for face localization(detection) and DLIB for face recognition. The system efficiently handles multiframes and batched frames, leveraging GPU acceleration for fast and accurate results.
This solution is ideal for applications such as automated attendance systems and surveillance systems, ensuring secure and reliable recognition even in real-time scenarios.
To detect and recognize multiple faces in real-time using deep learning techniques with high accuracy and optimized performance on GPU-powered systems like NVIDIA DGX.
- 📋 Attendance System – Automate attendance tracking by recognizing faces in real-time.
- 🛡️ Surveillance System – Enhance security through continuous face monitoring and identification.
- 🧑🤝🧑 Real-time face detection and recognition of multiple people.
- 🎯 High-accuracy vector embeddings for precise face matching.
- 📦 Handles multiframes and batched frames efficiently.
- ⚡ Optimized for GPU acceleration with CUDA (Batch size: 1 for GPU, 32 for DGX).
- 🔄 Buffer management with LOCK & UNLOCK to prevent deadlock issues.
- 🎥 Frame-wise processing using OpenCV.
- 🖼️ Resolution reduction through down-sampling and up-sampling techniques.
- 🌐 Flask-based web interface for easy real-time monitoring.
- Python 3.8+: Core programming language.
- OpenCV: Image and video processing.
- TensorFlow: Deep learning framework for face detection.
- MTCNN: Multi-task Cascaded Convolutional Networks for face detection.
- DLIB: For generating face embeddings and face recognition.
- CUDA: For GPU acceleration, boosting real-time performance.
- Flask: To build a web interface for real-time result visualization.
- NumPy & Pandas: Data handling and manipulation.
- P-Net (Proposal Network): Proposes candidate facial regions using non-maximum suppression.
- R-Net (Refine Network): Refines proposals by returning bounding box coordinates.
- O-Net (Output Network): Final face detection output with precise facial landmarks.
To highlight detected faces with bounding boxes:
for face in faces:
x, y, w, h = face['box']
cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
output_path = "output.jpg"
cv2.imwrite(output_path, image)
print("Output saved successfully at:", output_path)git clone https://github.com/vidhi-github/multiperson_face_detection.git
cd multiperson_face_detectionpython -m venv myenv- Windows:
myenv\Scripts\activate- Linux/macOS:
source myenv/bin/activatepip install tensorflow
pip install mtcnn
pip install opencv-python
pip install dlibpython app.pyNavigate to the DGX server's IP address:
http://<DGX_IP_address>:<application_port>
scp -r -P <port_number> <local_folder> user@<DGX_IP>:<remote_folder>python3 app.py- The system displays a real-time video feed with bounding boxes around detected faces.
- Recognized faces are matched using DLIB embeddings with real-time updates on the web interface.
- The processed frames are saved locally for further review.
- The system manages buffer overflow by cleaning it whenever it exceeds a threshold (e.g., 10 frames).
- Implements a LOCK & UNLOCK mechanism to prevent deadlock issues when processing multiframes and batched frames.
The Multiperson Face Recognition System offers a robust solution for real-time face detection and recognition using advanced deep learning techniques. With efficient GPU utilization, buffer management, and accurate face embeddings, the system is suitable for large-scale deployments like attendance automation and surveillance systems.
✨ Built by: Vidhi Jindal
💡 Thanks for exploring this project. Happy Learning!