我是靠谱客的博主 虚心路人,最近开发中收集的这篇文章主要介绍caffe 人脸关键点检测_1M人脸检测模型(含关键点),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Face-Detector-1MB-with-landmark

实现功能

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++部署功能, 在绝大部分情况下精度均好于原始版本.

1.jpg

测试的运行环境

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作为输入

Contents

Installation

Clone and install

Pytorch version 1.1.0+ and torchvision 0.3.0+ are needed.

Codes are based on Python 3

Data

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.

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

Link: from google cloud or baidu cloud Password: ruck

Training

Before training, you can check network configuration (e.g. batch_size, min_sizes and steps etc..) in data/config.py and train.py.

Train the model using 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

If you don't want to train, we also provide a trained model on ./weights

mobilenet0.25_Final.pth

RBF_Final.pth

slim_Final.pth

Evaluation

Evaluation widerface val

Generate txt file

python test_widerface.py --trained_model weight_file --network mobile0.25 or slim or RFB

Evaluate txt results. Demo come from Here

cd ./widerface_evaluate

python setup.py build_ext --inplace

python evaluation.py

You can also use widerface official Matlab evaluate demo in Here

C++_inference _ncnn

Generate onnx file

python convert_to_onnx.py --trained_model weight_file --network mobile0.25 or slim or RFB

Onnx file change to ncnn(*.param and *.param)

cp *.onnx ./Face_Detector_ncnn/tools

cd ./Face_Detector_ncnn/tools

./onnx2ncnn face.param face.bin

Move *.param and *.bin to model

cp face.param ../model

cp face.bin ../model

Build Project(set opencv path in CmakeList.txt)

mkdir build

cd build

cmake ..

make -j4

run

./FaceDetector *.jpg

We also provide the converted file in "./model".

face.param

face.bin

References

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

最后

以上就是虚心路人为你收集整理的caffe 人脸关键点检测_1M人脸检测模型(含关键点)的全部内容,希望文章能够帮你解决caffe 人脸关键点检测_1M人脸检测模型(含关键点)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部