Real-time face detection using YOLOv5 - Fork
Project description
What's New
2024.04 ncnn-android-yolov8-face
2023.04 yolov8-face (🔥🔥🔥↑)
2022.10 yolov7-face (🔥🔥🔥↑)
2022.8: yolov7
| Method | Test Size | Easy | Medium | Hard | FLOPs (B) @640 |
|---|---|---|---|---|---|
| yolov7-lite-t | 640 | 88.7 | 85.2 | 71.5 | 0.8 |
| yolov7-lite-s | 640 | 92.7 | 89.9 | 78.5 | 3.0 |
| yolov7-tiny | 640 | 94.7 | 92.6 | 82.1 | 13.2 |
| yolov7s | 640 | 94.8 | 93.1 | 85.2 | 16.8 |
| yolov7 | 640 | 96.9 | 95.5 | 88.0 | 103.4 |
| yolov7+TTA | 640 | 97.2 | 95.8 | 87.7 | 103.4 |
2021.12: Yolov5-face to TensorRT.
| Backbone | Pytorch(ms) | TensorRT_FP16(ms) |
|---|---|---|
| yolov5n-0.5 | 7.7 | 2.1 |
| yolov5n-face | 7.7 | 2.4 |
| yolov5s-face | 5.6 | 2.2 |
| yolov5m-face | 9.9 | 3.3 |
| yolov5l-face | 15.9 | 4.5 |
Pytorch=1.10.0+cu102 TensorRT=8.2.0.6 Hardware=rtx2080ti
2021.11: BlazeFace
| Method | multi scale | Easy | Medium | Hard | Model Size(MB) | Link |
|---|---|---|---|---|---|---|
| BlazeFace | Ture | 88.5 | 85.5 | 73.1 | 0.472 | https://github.com/PaddlePaddle/PaddleDetection |
| BlazeFace-FPN-SSH | Ture | 90.7 | 88.3 | 79.3 | 0.479 | https://github.com/PaddlePaddle/PaddleDetection |
| yolov5-blazeface | True | 90.4 | 88.7 | 78.0 | 0.493 | https://pan.baidu.com/s/1RHp8wa615OuDVhsO-qrMpQ pwd:r3v3 https://drive.google.com/file/d/1adi6ke2vCLQFcpbvFqWo_J4wZIfPqSMG |
| yolov5-blazeface-fpn | True | 90.8 | 89.4 | 79.1 | 0.493 | - |
2021.08: Add new training dataset Multi-Task-Facial,improve large face detection.
| Method | Easy | Medium | Hard |
|---|---|---|---|
| YOLOv5s | 94.56 | 92.92 | 83.84 |
| YOLOv5m | 95.46 | 93.87 | 85.54 |
QQ Group: 1164802745
Introduction
Yolov5-face is a real-time,high accuracy face detection.
Performance
Single Scale Inference on VGA resolution(max side is equal to 640 and scale).
Large family
| Method | Backbone | Easy | Medium | Hard | #Params(M) | #Flops(G) |
|---|---|---|---|---|---|---|
| DSFD (CVPR19) | ResNet152 | 94.29 | 91.47 | 71.39 | 120.06 | 259.55 |
| RetinaFace (CVPR20) | ResNet50 | 94.92 | 91.90 | 64.17 | 29.50 | 37.59 |
| HAMBox (CVPR20) | ResNet50 | 95.27 | 93.76 | 76.75 | 30.24 | 43.28 |
| TinaFace (Arxiv20) | ResNet50 | 95.61 | 94.25 | 81.43 | 37.98 | 172.95 |
| SCRFD-34GF(Arxiv21) | Bottleneck Res | 96.06 | 94.92 | 85.29 | 9.80 | 34.13 |
| SCRFD-10GF(Arxiv21) | Basic Res | 95.16 | 93.87 | 83.05 | 3.86 | 9.98 |
| - | - | - | - | - | - | - |
| YOLOv5s | CSPNet | 94.67 | 92.75 | 83.03 | 7.075 | 5.751 |
| YOLOv5s6 | CSPNet | 95.48 | 93.66 | 82.8 | 12.386 | 6.280 |
| YOLOv5m | CSPNet | 95.30 | 93.76 | 85.28 | 21.063 | 18.146 |
| YOLOv5m6 | CSPNet | 95.66 | 94.1 | 85.2 | 35.485 | 19.773 |
| YOLOv5l | CSPNet | 95.78 | 94.30 | 86.13 | 46.627 | 41.607 |
| YOLOv5l6 | CSPNet | 96.38 | 94.90 | 85.88 | 76.674 | 45.279 |
Small family
| Method | Backbone | Easy | Medium | Hard | #Params(M) | #Flops(G) |
|---|---|---|---|---|---|---|
| RetinaFace (CVPR20 | MobileNet0.25 | 87.78 | 81.16 | 47.32 | 0.44 | 0.802 |
| FaceBoxes (IJCB17) | 76.17 | 57.17 | 24.18 | 1.01 | 0.275 | |
| SCRFD-0.5GF(Arxiv21) | Depth-wise Conv | 90.57 | 88.12 | 68.51 | 0.57 | 0.508 |
| SCRFD-2.5GF(Arxiv21) | Basic Res | 93.78 | 92.16 | 77.87 | 0.67 | 2.53 |
| - | - | - | - | - | - | - |
| YOLOv5n | ShuffleNetv2 | 93.74 | 91.54 | 80.32 | 1.726 | 2.111 |
| YOLOv5n-0.5 | ShuffleNetv2 | 90.76 | 88.12 | 73.82 | 0.447 | 0.571 |
Pretrained-Models
| Name | Easy | Medium | Hard | FLOPs(G) | Params(M) | Link |
|---|---|---|---|---|---|---|
| yolov5n-0.5 | 90.76 | 88.12 | 73.82 | 0.571 | 0.447 | Link: https://pan.baidu.com/s/1UgiKwzFq5NXI2y-Zui1kiA pwd: s5ow, https://drive.google.com/file/d/1XJ8w55Y9Po7Y5WP4X1Kg1a77ok2tL_KY/view?usp=sharing |
| yolov5n | 93.61 | 91.52 | 80.53 | 2.111 | 1.726 | Link: https://pan.baidu.com/s/1xsYns6cyB84aPDgXB7sNDQ pwd: lw9j,https://drive.google.com/file/d/18oenL6tjFkdR1f5IgpYeQfDFqU4w3jEr/view?usp=sharing |
| yolov5s | 94.33 | 92.61 | 83.15 | 5.751 | 7.075 | Link: https://pan.baidu.com/s/1fyzLxZYx7Ja1_PCIWRhxbw Link: eq0q,https://drive.google.com/file/d/1zxaHeLDyID9YU4-hqK7KNepXIwbTkRIO/view?usp=sharing |
| yolov5m | 95.30 | 93.76 | 85.28 | 18.146 | 21.063 | Link: https://pan.baidu.com/s/1oePvd2K6R4-gT0g7EERmdQ pwd: jmtk, https://drive.google.com/file/d/1Sx-KEGXSxvPMS35JhzQKeRBiqC98VDDI |
| yolov5l | 95.78 | 94.30 | 86.13 | 41.607 | 46.627 | Link: https://pan.baidu.com/s/11l4qSEgA2-c7e8lpRt8iFw pwd: 0mq7, https://drive.google.com/file/d/16F-3AjdQBn9p3nMhStUxfDNAE_1bOF_r |
Data preparation
- Download WIDERFace datasets.
- Download annotation files from google drive.
cd data
python3 train2yolo.py /path/to/original/widerface/train [/path/to/save/widerface/train]
python3 val2yolo.py /path/to/original/widerface [/path/to/save/widerface/val]
Training
CUDA_VISIBLE_DEVICES="0,1,2,3" python3 train.py --data data/widerface.yaml --cfg models/yolov5s.yaml --weights 'pretrained models'
WIDERFace Evaluation
python3 test_widerface.py --weights 'your test model' --img-size 640
cd widerface_evaluate
python3 evaluation.py
Test
Landmark Visulization
First row: RetinaFace, 2nd row: YOLOv5m-Face
YOLO5Face was used in the 3rd place standard face recogntion track of the ICCV2021 Masked Face Recognition Challenge.
AXera demo
https://github.com/AXERA-TECH/ax-samples/blob/main/examples/ax_yolov5s_face_steps.cc
Android demo
https://github.com/FeiGeChuanShu/ncnn_Android_face/tree/main/ncnn-android-yolov5_face
OpenCV DNN demo
https://github.com/hpc203/yolov5-face-landmarks-opencv-v2
ONNXRuntime/MNN/TNN/NCNN C++ demo
https://github.com/DefTruth/lite.ai.toolkit/blob/main/lite/ort/cv/yolo5face.cpp
https://github.com/DefTruth/lite.ai.toolkit/blob/main/lite/mnn/cv/mnn_yolo5face.cpp
https://github.com/DefTruth/lite.ai.toolkit/blob/main/lite/tnn/cv/tnn_yolo5face.cpp
https://github.com/DefTruth/lite.ai.toolkit/blob/main/lite/ncnn/cv/ncnn_yolo5face.cpp
References
https://github.com/ultralytics/yolov5
https://github.com/DayBreak-u/yolo-face-with-landmark
https://github.com/xialuxi/yolov5_face_landmark
https://github.com/biubug6/Pytorch_Retinaface
https://github.com/deepinsight/insightface
Citation
-
If you think this work is useful for you, please cite
@article{YOLO5Face, title = {YOLO5Face: Why Reinventing a Face Detector}, author = {Delong Qi and Weijun Tan and Qi Yao and Jingfeng Liu}, booktitle = {ArXiv preprint ArXiv:2105.12931}, year = {2021} }
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yolov5_face-0.0.2a1.tar.gz.
File metadata
- Download URL: yolov5_face-0.0.2a1.tar.gz
- Upload date:
- Size: 9.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91d7614f126190bd9309295a3b8ef699f72b2310b551b543f859bd38482e1d53
|
|
| MD5 |
a1c6b4857a236d3181722102a86c79d2
|
|
| BLAKE2b-256 |
6f4f8d5164e719d11ca3ea45507c6d254a4e2402c3607fe2cb13a99fa9464c65
|
Provenance
The following attestation bundles were made for yolov5_face-0.0.2a1.tar.gz:
Publisher:
publish_to_pypi.yml on openscivision/yolov5-face
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yolov5_face-0.0.2a1.tar.gz -
Subject digest:
91d7614f126190bd9309295a3b8ef699f72b2310b551b543f859bd38482e1d53 - Sigstore transparency entry: 770065747
- Sigstore integration time:
-
Permalink:
openscivision/yolov5-face@07c1390e6c79cc757e58848154c2d780092dbe5e -
Branch / Tag:
refs/tags/v0.0.2a1 - Owner: https://github.com/openscivision
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@07c1390e6c79cc757e58848154c2d780092dbe5e -
Trigger Event:
push
-
Statement type:
File details
Details for the file yolov5_face-0.0.2a1-py3-none-any.whl.
File metadata
- Download URL: yolov5_face-0.0.2a1-py3-none-any.whl
- Upload date:
- Size: 134.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32dc492a6b4fbbd637db730cd588022b972e687c593fa53a973ac0c7107d3c0f
|
|
| MD5 |
8061d2042a24ea4536faa9f6a9a83394
|
|
| BLAKE2b-256 |
fa0dd6c5b42c52e5ef4a6ebcdf3d7b49a782431f3cf28a67f914106ea8f39841
|
Provenance
The following attestation bundles were made for yolov5_face-0.0.2a1-py3-none-any.whl:
Publisher:
publish_to_pypi.yml on openscivision/yolov5-face
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yolov5_face-0.0.2a1-py3-none-any.whl -
Subject digest:
32dc492a6b4fbbd637db730cd588022b972e687c593fa53a973ac0c7107d3c0f - Sigstore transparency entry: 770065771
- Sigstore integration time:
-
Permalink:
openscivision/yolov5-face@07c1390e6c79cc757e58848154c2d780092dbe5e -
Branch / Tag:
refs/tags/v0.0.2a1 - Owner: https://github.com/openscivision
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@07c1390e6c79cc757e58848154c2d780092dbe5e -
Trigger Event:
push
-
Statement type: