0 有用
3 下载

带有关键点检测的超轻量级人脸检测器

文件列表(压缩包大小 9.02M)

免费

概述

实现功能

  • Retinaface-mobile0.25的训练/测试/评估/ncnn C++推理
  • Face-Detector-1MB slim和RFB版本的训练/测试/评估/ncnn C++推理
  • 人脸5个关键点检测
  • 支持onnx导出
  • 网络parameter和flop计算

带有关键点检测的超轻量级人脸检测器


提供了一系列适合移动端部署包含关键的人脸检测器: 对Retinaface-mobile0.25修改anchor尺寸,使其更适合边缘计算; 重新实现了Face-Detector-1MB 并添加了关键点检测和ncnn C++部署功能, 在绝大部分情况下精度均好于原始版本.

测试的运行环境

  • Ubuntu18.04
  • Python3.7
  • Pytorch1.2
  • CUDA10.0 + CUDNN7.5

精度

Widerface测试
  • 在wider face val精度(单尺度输入分辨率:320*240)
方法 Easy Medium Hard
libfacedetection v1(caffe) 0.65 0.5 0.233
libfacedetection v2(caffe) 0.714 0.585 0.306
version-slim(原版) 0.765 0.662 0.385
version-RFB(原版) 0.784 0.688 0.418
version-slim(our) 0.795 0.683 0.34.5
version-RFB(our) 0.814 0.710 0.363
Retinaface-Mobilenet-0.25(our) 0.811 0.697 0.376
  • 在wider face val精度(单尺度输入分辨率:640*480)
方法 Easy Medium Hard
libfacedetection v1(caffe) 0.741 0.683 0.421
libfacedetection v2(caffe) 0.773 0.718 0.485
version-slim(原版) 0.757 0.721 0.511
version-RFB(原版) 0.851 0.81 0.541
version-slim(our) 0.850 0.808 0.595
version-RFB(our) 0.865 0.828 0.622
Retinaface-Mobilenet-0.25(our) 0.873 0.836 0.638

ps: 测试的时候,长边为320 或者 640 ,图像等比例缩放.

Parameter and flop

方法 parameter(M) flop(M)
version-slim(our) 0.343 98.793
version-RFB(our) 0.359 118.435
Retinaface-Mobilenet-0.25(our) 0.426 193.921

ps: 320*240作为输入

使用


安装

下载安装

  1. 下载此项目文件
  2. 安装 “Pytorch version 1.1.0+”和“torchvision 0.3.0+”
  3. 代码基于Python 3

数据

  1. 数据集目录如下
    ./data/widerface/
     train/
       images/
       label.txt
     val/
       images/
       wider_val.txt
    

ps: wider_val.txt只包含val文件名,不包含标签信息。

  1. 我们提供了上面目录结构中使用的数据集。

Link: 来自google cloud百度云 密码: ruck

训练

  1. 训练前,你可以在data/config.py and train.py中检查一下网络配置(如batch_size, min_sizes and steps 等)

  2. 使用WIDER FACE训练模型:

    CUDA_VISIBLE_DEVICES=0 python train.py --network mobile0.25 or 
    CUDA_VISIBLE_DEVICES=0 python train.py --network slim or
    CUDA_VISIBLE_DEVICES=0 python train.py --network RFB
    

如果你不想进行训练,我们也提供了一个./weights的训练模型

mobilenet0.25_Final.pth 
RBF_Final.pth
slim_Final.pth

评估

评估widerface val

  1. 生成txt文件
    python test_widerface.py --trained_model weight_file --network mobile0.25 or slim or RFB
    

评估txt结果.演示

cd ./widerface_evaluate
python setup.py build_ext --inplace
python evaluation.py
  1. 你也可以使用widerface的MATLAB官方演示

C++_inference _ncnn

  1. 生成onnx文件

    python convert_to_onnx.py --trained_model weight_file --network mobile0.25 or slim or RFB
    
  2. onnx文件更改为ncnn(*.param和*.param)

    cp *.onnx ./Face_Detector_ncnn/tools
    cd ./Face_Detector_ncnn/tools
    ./onnx2ncnn face.param face.bin
    
  3. 将*.param和*.bin放进模型中

    cp face.param ../model
    cp face.bin ../model
    
  4. 建立项目(在CmakeList.txt中设置opencv路径)

    mkdir build
    cd build
    cmake ..
    make -j4
    
  5. 运行

    ./FaceDetector *.jpg
    

我们在 "./model"中提供了转换后的文件

face.param
face.bin

参考

@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}

来源https://github.com/biubug6/Face-Detector-1MB-with-landmark

理工酷提示:

如果遇到文件不能下载或其他产品问题,请添加管理员微信:ligongku001,并备注:产品反馈

评论(0)

0/250

免费 登录即可免费下载

·圈子

位酷友已加入

正直的烤面包

积分 • 4004

圈子: 计算机
标签:
算法计算机人工智能python
文件编号:1362
上传时间:2021-03-25
文件大小:9.02M