demo.mp4
This repository implements face re-identification using SCRFD for face detection and ArcFace for face recognition. It supports inference from webcam or video sources.
- Smaller versions of SCFRD face detection model has been added
- Face Detection: Utilizes Sample and Computation Redistribution for Efficient Face Detection (SCRFD) for efficient and accurate face detection. (Updated on: 2024.07.29)
- Added models: SCRFD 500M (2.41 MB), SCRFD 2.5G (3.14 MB)
- Face Recognition: Employs ArcFace: Additive Angular Margin Loss for Deep Face Recognition for robust face recognition. (Updated on: 2024.07.29)
- Added models: ArcFace MobileFace (12.99 MB)
- Real-Time Inference: Supports both webcam and video file input for real-time processing.
Project folder structure:
βββ assets/
β βββ demo.mp4
β βββ in_video.mp4
βββ faces/
β βββ face1.jpg
β βββ face2.jpg
β βββ ...
βββ models/
β βββ __init__.py
β βββ scrfd.py
β βββ arcface.py
βββ weights/
β βββ det_10g.onnx
β βββ det_2.5g.onnx
β βββ det_500m.onnx
β βββ w600k_r50.onnx
β βββ w600k_mbf.onnx
βββ utils/
β βββ helpers.py
βββ main.py
βββ README.md
βββ requirements.txt
- Clone the repository:
git clone https://github.com/yakyo/face-reidentification.git
cd face-reidentification
- Install the required dependencies:
pip install -r requirements.txt
-
Download weight files:
a) Download weights from following links:
Model Weights Size Type SCRFD 500M det_500m.onnx 2.41 MB Face Detection SCRFD 2.5G det_2.5g.onnx 3.14 MB Face Detection SCRFD 10G det_10g.onnx 16.1 MB Face Detection ArcFace MobileFace w600k_mbf.onnx 12.99 MB Face Recognition ArcFace ResNet-50 w600k_r50.onnx 166 MB Face Recognition b) Run below command to download weights to
weights
directory (linux):sh download.sh
-
Put target faces into
faces
folder
faces/
βββ name1.jpg
βββ name2.jpg
Those file names will be displayed while real-time inference.
python main.py --source assets/in_video.mp4
main.py
arguments:
usage: main.py [-h] [--det-weight DET_WEIGHT] [--rec-weight REC_WEIGHT] [--similarity-thresh SIMILARITY_THRESH] [--confidence-thresh CONFIDENCE_THRESH]
[--faces-dir FACES_DIR] [--source SOURCE] [--max-num MAX_NUM] [--log-level LOG_LEVEL]
Face Detection-and-Recognition
options:
-h, --help show this help message and exit
--det-weight DET_WEIGHT
Path to detection model
--rec-weight REC_WEIGHT
Path to recognition model
--similarity-thresh SIMILARITY_THRESH
Similarity threshold between faces
--confidence-thresh CONFIDENCE_THRESH
Confidence threshold for face detection
--faces-dir FACES_DIR
Path to faces stored dir
--source SOURCE Video file or video camera source. i.e 0 - webcam
--max-num MAX_NUM Maximum number of face detections from a frame
--log-level LOG_LEVEL
Logging level