Skip to main content

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. This fork exposes an API for face detection and facial landmark detection capabilities with minimal requirements for the API and guards for optional dependencies.

Installation

Install the package from pip, with optional dependencies cli for the cli tool and train for training:

python -m pip install yolov5-face

Face Detect CLI

To detect from a webcam or images, run:

python -m pip install yolov5-face[cli]
yolov5-face-detect --weights <model.pt> --source <0|path>

Parameters:

  • --weights: model .pt path(s) (default: runs/train/exp5/weights/last.pt)
  • --source: input source (default: 0 for webcam; can also be a file/folder)
  • --img-size: inference size in pixels (default: 640)
  • --project: output directory root (default: runs/detect)
  • --name: output run name (default: exp)
  • --exist-ok: reuse existing --project/--name without incrementing
  • --save-img: save annotated outputs
  • --view-img: display a live window

Model Architecture

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

  1. Download WIDERFace datasets.
  2. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yolov5_face-0.0.2.tar.gz (9.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yolov5_face-0.0.2-py3-none-any.whl (137.5 kB view details)

Uploaded Python 3

File details

Details for the file yolov5_face-0.0.2.tar.gz.

File metadata

  • Download URL: yolov5_face-0.0.2.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

Hashes for yolov5_face-0.0.2.tar.gz
Algorithm Hash digest
SHA256 777a36440f1c62df9b891ee234b11245c42be8d22cb335c2730d0549137cb4c5
MD5 7cf9b1e670d8e4e09fc8be8f473b3273
BLAKE2b-256 e8bc0b7447c88393d1aa56472f2e7190b04a3de43adeab3224bf3b1e689648b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for yolov5_face-0.0.2.tar.gz:

Publisher: publish_to_pypi.yml on openscivision/yolov5-face

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yolov5_face-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: yolov5_face-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 137.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for yolov5_face-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a0433e12aa97c02c23b48456a1d6c6d7c7734a77c33d057231444a3f12ab719b
MD5 b66f3c84f35410b944b6c17b602ed4d1
BLAKE2b-256 27e4e82d1af8d85108804cd982b5a76c607d554066485bc644b59dfbeb783de2

See more details on using hashes here.

Provenance

The following attestation bundles were made for yolov5_face-0.0.2-py3-none-any.whl:

Publisher: publish_to_pypi.yml on openscivision/yolov5-face

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page