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.


News & Event

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.


News & Event

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.


News & Event

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.


News & Event

Subscribe SUNIX eDM

Subscribe SUNIX eDM

Subscribe SUNIX eDM

Subscribe SUNIX eDM

Back to top
返回頂部
返回頂部