二维码三点方向检测
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NYH 02d2fa9225 V1.0 10 months ago
.idea/inspectionProfiles Signed-off-by: NYH <175484793@qq.com> 10 months ago
curve/validation Signed-off-by: NYH <175484793@qq.com> 10 months ago
data Signed-off-by: NYH <175484793@qq.com> 10 months ago
layers Signed-off-by: NYH <175484793@qq.com> 10 months ago
models/__pycache__ Signed-off-by: NYH <175484793@qq.com> 10 months ago
retinaface_gt_v1.1 Signed-off-by: NYH <175484793@qq.com> 10 months ago
utils Signed-off-by: NYH <175484793@qq.com> 10 months ago
weights Signed-off-by: NYH <175484793@qq.com> 10 months ago
widerface_evaluate Signed-off-by: NYH <175484793@qq.com> 10 months ago
LICENSE.MIT Signed-off-by: NYH <175484793@qq.com> 10 months ago
README.md Signed-off-by: NYH <175484793@qq.com> 10 months ago
convert_to_onnx.py Signed-off-by: NYH <175484793@qq.com> 10 months ago
detect_20221129_for_images.py Signed-off-by: NYH <175484793@qq.com> 10 months ago
detect_20221129_for_one_image.py Signed-off-by: NYH <175484793@qq.com> 10 months ago
test.jpg Signed-off-by: NYH <175484793@qq.com> 10 months ago
test_3dian_face.jpg Signed-off-by: NYH <175484793@qq.com> 10 months ago
test_fddb.py Signed-off-by: NYH <175484793@qq.com> 10 months ago
test_mobilenet.jpg Signed-off-by: NYH <175484793@qq.com> 10 months ago
test_resnet.jpg Signed-off-by: NYH <175484793@qq.com> 10 months ago
test_widerface.py Signed-off-by: NYH <175484793@qq.com> 10 months ago
train.py Signed-off-by: NYH <175484793@qq.com> 10 months ago

README.md

RetinaFace in PyTorch

A PyTorch implementation of RetinaFace: Single-stage Dense Face Localisation in the Wild. Model size only 1.7M, when Retinaface use mobilenet0.25 as backbone net. We also provide resnet50 as backbone net to get better result. The official code in Mxnet can be found here.

Mobile or Edge device deploy

We also provide a set of Face Detector for edge device in here from python training to C++ inference.

WiderFace Val Performance in single scale When using Resnet50 as backbone net.

| Style | easy | medium | hard | |:-|:-:|:-:|:-:| | Pytorch (same parameter with Mxnet) | 94.82 % | 93.84% | 89.60% | | Pytorch (original image scale) | 95.48% | 94.04% | 84.43% | | Mxnet | 94.86% | 93.87% | 88.33% | | Mxnet(original image scale) | 94.97% | 93.89% | 82.27% |

WiderFace Val Performance in single scale When using Mobilenet0.25 as backbone net.

| Style | easy | medium | hard | |:-|:-:|:-:|:-:| | Pytorch (same parameter with Mxnet) | 88.67% | 87.09% | 80.99% | | Pytorch (original image scale) | 90.70% | 88.16% | 73.82% | | Mxnet | 88.72% | 86.97% | 79.19% | | Mxnet(original image scale) | 89.58% | 87.11% | 69.12% |

FDDB Performance.

| FDDB(pytorch) | performance | |:-|:-:| | Mobilenet0.25 | 98.64% | | Resnet50 | 99.22% |

Contents

Installation

Clone and install
  1. git clone https://github.com/biubug6/Pytorch_Retinaface.git

  2. Pytorch version 1.1.0+ and torchvision 0.3.0+ are needed.

  3. Codes are based on Python 3

Data
  1. Download the WIDERFACE dataset.

  2. Download annotations (face bounding boxes & five facial landmarks) from baidu cloud or dropbox

  3. Organise the dataset directory as follows:

  ./data/widerface/
    train/
      images/
      label.txt
    val/
      images/
      wider_val.txt

ps: wider_val.txt only include val file names but not label information.

Data1

We also provide the organized dataset we used as in the above directory structure.

Link: from google cloud or baidu cloud Password: ruck

Training

We provide restnet50 and mobilenet0.25 as backbone network to train model. We trained Mobilenet0.25 on imagenet dataset and get 46.58% in top 1. If you do not wish to train the model, we also provide trained model. Pretrain model and trained model are put in google cloud and baidu cloud Password: fstq . The model could be put as follows:

  ./weights/
      mobilenet0.25_Final.pth
      mobilenetV1X0.25_pretrain.tar
      Resnet50_Final.pth
  1. Before training, you can check network configuration (e.g. batch_size, min_sizes and steps etc..) in data/config.py and train.py.

  2. Train the model using WIDER FACE:

    CUDA_VISIBLE_DEVICES=0,1,2,3 python train.py --network resnet50 or
    CUDA_VISIBLE_DEVICES=0 python train.py --network mobile0.25
    

Evaluation

Evaluation widerface val

  1. Generate txt file Shell python test_widerface.py --trained_model weight_file --network mobile0.25 or resnet50
  2. Evaluate txt results. Demo come from Here Shell cd ./widerface_evaluate python setup.py build_ext --inplace python evaluation.py
  3. You can also use widerface official Matlab evaluate demo in Here

    Evaluation FDDB

  4. Download the images FDDB to:

    ./data/FDDB/images/
    
  5. Evaluate the trained model using:

    python test_fddb.py --trained_model weight_file --network mobile0.25 or resnet50
    
  6. Download eval_tool to evaluate the performance.

TensorRT

-TensorRT

References

  • FaceBoxes
  • Retinaface (mxnet) @inproceedings{deng2019retinaface, title={RetinaFace: Single-stage Dense Face Localisation in the Wild}, author={Deng, Jiankang and Guo, Jia and Yuxiang, Zhou and Jinke Yu and Irene Kotsia and Zafeiriou, Stefanos}, booktitle={arxiv}, year={2019}