Hailo8 Application – Face Recognition
Introduction
Face recognition is a type of biometric identification. A typical workflow includes face detection, deep network feature extraction (128~512 dimensions), similarity calculation (cosine or L2), and threshold judgment. To improve accuracy, Angular and Margin Loss functions from ArcFace or CosFace are commonly used. The system manages a feature database and calibrates thresholds using EER/DET/ROC. It supports 1:1 verification and 1:N identification. Typical applications include smartphone/laptop unlocking, smart access control and attendance, photo album grouping, missing person matching, attendance statistics, and helmet identity linkage on construction sites.
Current technical challenges include:
- Lighting and shadow variations, poses, expressions, face occlusion (e.g., masks), age, and makeup changes (Feature Drift)
- Device and location shifts
- Long-tail distributions and few-shot scenarios
- Model updates
- Liveness detection and prevention of deepfake attacks
Models Used
Object Detection: SCRFD
The purpose of object detection is to classify and group objects based on their features and attributes, and provide coordinates for each detected object. In face recognition tasks, it frames the face in the image to facilitate subsequent feature extraction and matching. SCRFD is a convolutional neural network that runs on the Hailo8 accelerator at 5299 frames/sec (excluding pre/post-processing). The Hailo model can be downloaded from the Hailo Model Zoo.
Recognition: ArcFace
ArcFace converts the detected faces into feature vectors. Each individual generates a unique vector. ArcFace also runs on Hailo8 at 5186 frames/sec. The Hailo model is available from the Hailo Model Zoo.
Implementation
Development Platform
Hardware | Dell XE4 / Intel 12th Alder Lake i7-12700 |
---|---|
OS | Ubuntu 22.04 Kernel 6.8 |
Hailo AI Accelerator / HailoRT | SUNIX AIEH2000 / Single Hailo8 AI inference processors / HailoRT 4.20.0 |
API | OpenCV 4.8.0 / XTensor Stack 0.24.7 / XTL 0.7.7 |
Development Workflow
Object Detection
- Resize the input image to match the model input size (pre-processing).
- Run SCRFD inference using HailoRT.
-
Read raw tensor data (Raw Output Data) from HailoRT and perform post-processing to output
std::vector
.
-
FaceRecognitionObject
stores face BBox information after detection.
Recognition
- Crop faces from the image using the BBox for ArcFace inference.
- Resize the cropped face to the ArcFace model input size.
- Run ArcFace inference using HailoRT.
- Read raw tensor data from HailoRT and perform post-processing to obtain the results.
Database Search
Use the feature vectors from ArcFace to search the database and retrieve names and other personnel information.
Workflow
- Image Input & SCRFD Preprocessing: Capture images from cameras and resize for SCRFD model input.
- SCRFD Face Detection: Raw data is decoded via BBox to get face coordinates.
- Image Cropping & ArcFace Preprocessing: Crop each face and resize for ArcFace input.
- Feature Extraction & ArcFace Post-processing: Extract feature vectors and normalize for consistent comparison.
- Database Search: Calculate similarity with stored feature vectors to determine identity match.
- Final Output: System outputs BBox and name. If matched, can trigger access control or other applications.
Execution Results
The system can accurately recognize the same person under different camera angles and perspectives. Even when images come from different cameras with varying poses, the ReID module successfully matches feature vectors to the same identity, demonstrating the effectiveness of the Detection + Recognition system for cross-view and multi-camera conditions. It is suitable for smart surveillance and cross-scene identity tracking applications.
Hailo8 Application – Face Recognition
Introduction
Face recognition is a type of biometric identification. A typical workflow includes face detection, deep network feature extraction (128~512 dimensions), similarity calculation (cosine or L2), and threshold judgment. To improve accuracy, Angular and Margin Loss functions from ArcFace or CosFace are commonly used. The system manages a feature database and calibrates thresholds using EER/DET/ROC. It supports 1:1 verification and 1:N identification. Typical applications include smartphone/laptop unlocking, smart access control and attendance, photo album grouping, missing person matching, attendance statistics, and helmet identity linkage on construction sites.
Current technical challenges include:
- Lighting and shadow variations, poses, expressions, face occlusion (e.g., masks), age, and makeup changes (Feature Drift)
- Device and location shifts
- Long-tail distributions and few-shot scenarios
- Model updates
- Liveness detection and prevention of deepfake attacks
Models Used
Object Detection: SCRFD
The purpose of object detection is to classify and group objects based on their features and attributes, and provide coordinates for each detected object. In face recognition tasks, it frames the face in the image to facilitate subsequent feature extraction and matching. SCRFD is a convolutional neural network that runs on the Hailo8 accelerator at 5299 frames/sec (excluding pre/post-processing). The Hailo model can be downloaded from the Hailo Model Zoo.
Recognition: ArcFace
ArcFace converts the detected faces into feature vectors. Each individual generates a unique vector. ArcFace also runs on Hailo8 at 5186 frames/sec. The Hailo model is available from the Hailo Model Zoo.
Implementation
Development Platform
Hardware | Dell XE4 / Intel 12th Alder Lake i7-12700 |
---|---|
OS | Ubuntu 22.04 Kernel 6.8 |
Hailo AI Accelerator / HailoRT | SUNIX AIEH2000 / Single Hailo8 AI inference processors / HailoRT 4.20.0 |
API | OpenCV 4.8.0 / XTensor Stack 0.24.7 / XTL 0.7.7 |
Development Workflow
Object Detection
- Resize the input image to match the model input size (pre-processing).
- Run SCRFD inference using HailoRT.
-
Read raw tensor data (Raw Output Data) from HailoRT and perform post-processing to output
std::vector
.
-
FaceRecognitionObject
stores face BBox information after detection.
Recognition
- Crop faces from the image using the BBox for ArcFace inference.
- Resize the cropped face to the ArcFace model input size.
- Run ArcFace inference using HailoRT.
- Read raw tensor data from HailoRT and perform post-processing to obtain the results.
Database Search
Use the feature vectors from ArcFace to search the database and retrieve names and other personnel information.
Workflow
- Image Input & SCRFD Preprocessing: Capture images from cameras and resize for SCRFD model input.
- SCRFD Face Detection: Raw data is decoded via BBox to get face coordinates.
- Image Cropping & ArcFace Preprocessing: Crop each face and resize for ArcFace input.
- Feature Extraction & ArcFace Post-processing: Extract feature vectors and normalize for consistent comparison.
- Database Search: Calculate similarity with stored feature vectors to determine identity match.
- Final Output: System outputs BBox and name. If matched, can trigger access control or other applications.
Execution Results
The system can accurately recognize the same person under different camera angles and perspectives. Even when images come from different cameras with varying poses, the ReID module successfully matches feature vectors to the same identity, demonstrating the effectiveness of the Detection + Recognition system for cross-view and multi-camera conditions. It is suitable for smart surveillance and cross-scene identity tracking applications.
Hailo8 Application – Face Recognition
Introduction
Face recognition is a type of biometric identification. A typical workflow includes face detection, deep network feature extraction (128~512 dimensions), similarity calculation (cosine or L2), and threshold judgment. To improve accuracy, Angular and Margin Loss functions from ArcFace or CosFace are commonly used. The system manages a feature database and calibrates thresholds using EER/DET/ROC. It supports 1:1 verification and 1:N identification. Typical applications include smartphone/laptop unlocking, smart access control and attendance, photo album grouping, missing person matching, attendance statistics, and helmet identity linkage on construction sites.
Current technical challenges include:
- Lighting and shadow variations, poses, expressions, face occlusion (e.g., masks), age, and makeup changes (Feature Drift)
- Device and location shifts
- Long-tail distributions and few-shot scenarios
- Model updates
- Liveness detection and prevention of deepfake attacks
Models Used
Object Detection: SCRFD
The purpose of object detection is to classify and group objects based on their features and attributes, and provide coordinates for each detected object. In face recognition tasks, it frames the face in the image to facilitate subsequent feature extraction and matching. SCRFD is a convolutional neural network that runs on the Hailo8 accelerator at 5299 frames/sec (excluding pre/post-processing). The Hailo model can be downloaded from the Hailo Model Zoo.
Recognition: ArcFace
ArcFace converts the detected faces into feature vectors. Each individual generates a unique vector. ArcFace also runs on Hailo8 at 5186 frames/sec. The Hailo model is available from the Hailo Model Zoo.
Implementation
Development Platform
Hardware | Dell XE4 / Intel 12th Alder Lake i7-12700 |
---|---|
OS | Ubuntu 22.04 Kernel 6.8 |
Hailo AI Accelerator / HailoRT | SUNIX AIEH2000 / Single Hailo8 AI inference processors / HailoRT 4.20.0 |
API | OpenCV 4.8.0 / XTensor Stack 0.24.7 / XTL 0.7.7 |
Development Workflow
Object Detection
- Resize the input image to match the model input size (pre-processing).
- Run SCRFD inference using HailoRT.
-
Read raw tensor data (Raw Output Data) from HailoRT and perform post-processing to output
std::vector
.
-
FaceRecognitionObject
stores face BBox information after detection.
Recognition
- Crop faces from the image using the BBox for ArcFace inference.
- Resize the cropped face to the ArcFace model input size.
- Run ArcFace inference using HailoRT.
- Read raw tensor data from HailoRT and perform post-processing to obtain the results.
Database Search
Use the feature vectors from ArcFace to search the database and retrieve names and other personnel information.
Workflow
- Image Input & SCRFD Preprocessing: Capture images from cameras and resize for SCRFD model input.
- SCRFD Face Detection: Raw data is decoded via BBox to get face coordinates.
- Image Cropping & ArcFace Preprocessing: Crop each face and resize for ArcFace input.
- Feature Extraction & ArcFace Post-processing: Extract feature vectors and normalize for consistent comparison.
- Database Search: Calculate similarity with stored feature vectors to determine identity match.
- Final Output: System outputs BBox and name. If matched, can trigger access control or other applications.
Execution Results
The system can accurately recognize the same person under different camera angles and perspectives. Even when images come from different cameras with varying poses, the ReID module successfully matches feature vectors to the same identity, demonstrating the effectiveness of the Detection + Recognition system for cross-view and multi-camera conditions. It is suitable for smart surveillance and cross-scene identity tracking applications.
Hailo8 Application – Face Recognition
Introduction
Face recognition is a type of biometric identification. A typical workflow includes face detection, deep network feature extraction (128~512 dimensions), similarity calculation (cosine or L2), and threshold judgment. To improve accuracy, Angular and Margin Loss functions from ArcFace or CosFace are commonly used. The system manages a feature database and calibrates thresholds using EER/DET/ROC. It supports 1:1 verification and 1:N identification. Typical applications include smartphone/laptop unlocking, smart access control and attendance, photo album grouping, missing person matching, attendance statistics, and helmet identity linkage on construction sites.
Current technical challenges include:
- Lighting and shadow variations, poses, expressions, face occlusion (e.g., masks), age, and makeup changes (Feature Drift)
- Device and location shifts
- Long-tail distributions and few-shot scenarios
- Model updates
- Liveness detection and prevention of deepfake attacks
Models Used
Object Detection: SCRFD
The purpose of object detection is to classify and group objects based on their features and attributes, and provide coordinates for each detected object. In face recognition tasks, it frames the face in the image to facilitate subsequent feature extraction and matching. SCRFD is a convolutional neural network that runs on the Hailo8 accelerator at 5299 frames/sec (excluding pre/post-processing). The Hailo model can be downloaded from the Hailo Model Zoo.
Recognition: ArcFace
ArcFace converts the detected faces into feature vectors. Each individual generates a unique vector. ArcFace also runs on Hailo8 at 5186 frames/sec. The Hailo model is available from the Hailo Model Zoo.
Implementation
Development Platform
Hardware | Dell XE4 / Intel 12th Alder Lake i7-12700 |
---|---|
OS | Ubuntu 22.04 Kernel 6.8 |
Hailo AI Accelerator / HailoRT | SUNIX AIEH2000 / Single Hailo8 AI inference processors / HailoRT 4.20.0 |
API | OpenCV 4.8.0 / XTensor Stack 0.24.7 / XTL 0.7.7 |
Development Workflow
Object Detection
- Resize the input image to match the model input size (pre-processing).
- Run SCRFD inference using HailoRT.
-
Read raw tensor data (Raw Output Data) from HailoRT and perform post-processing to output
std::vector
.
-
FaceRecognitionObject
stores face BBox information after detection.
Recognition
- Crop faces from the image using the BBox for ArcFace inference.
- Resize the cropped face to the ArcFace model input size.
- Run ArcFace inference using HailoRT.
- Read raw tensor data from HailoRT and perform post-processing to obtain the results.
Database Search
Use the feature vectors from ArcFace to search the database and retrieve names and other personnel information.
Workflow
- Image Input & SCRFD Preprocessing: Capture images from cameras and resize for SCRFD model input.
- SCRFD Face Detection: Raw data is decoded via BBox to get face coordinates.
- Image Cropping & ArcFace Preprocessing: Crop each face and resize for ArcFace input.
- Feature Extraction & ArcFace Post-processing: Extract feature vectors and normalize for consistent comparison.
- Database Search: Calculate similarity with stored feature vectors to determine identity match.
- Final Output: System outputs BBox and name. If matched, can trigger access control or other applications.
Execution Results
The system can accurately recognize the same person under different camera angles and perspectives. Even when images come from different cameras with varying poses, the ReID module successfully matches feature vectors to the same identity, demonstrating the effectiveness of the Detection + Recognition system for cross-view and multi-camera conditions. It is suitable for smart surveillance and cross-scene identity tracking applications.