PFLD pytorch
1.0.0
Implementação do PFLD Um detector de marco facial prático por Pytorch.
pip3 install -r requirements.txtMarcos faciais mais amplos no wild (WFLW) é um novo conjunto de dados de rosto proposto. Ele contém 10000 faces (7500 para treinamento e 2500 para teste) com 98 marcos de referência totalmente manuais.
./data/WFLW/Mirror98.txt para WFLW/WFLW_annotations $ cd data
$ python3 SetPreparation.pytreinamento :
$ python3 train.pyUse Tensorboard, abra um novo terminal
$ tensorboard --logdir=./checkpoint/tensorboard/
Teste:
$ python3 test.py
Pytorch -> onnx
python3 pytorch2onnx.pyONNX -> NCNN
Como construir: https: //github.com/tencent/ncnn/wiki/how-to-build
cd ncnn/build/tools/onnx
./onnx2ncnn pfld-sim.onnx pfld-sim.param pfld-sim.binAgora você pode usar o pfld-sim.param e o pfld-sim.bin no ncnn:
ncnn::Net pfld;
pfld.load_param( " path/to/pfld-sim.param " );
pfld.load_model( " path/to/pfld-sim.bin " );
cv::Mat img = cv::imread(imagepath, 1 );
ncnn::Mat in = ncnn::Mat::from_pixels_resize(img.data, ncnn::Mat::PIXEL_BGR, img.cols, img.rows, 112 , 112 );
const float norm_vals[ 3 ] = { 1 / 255 . f , 1 / 255 . f , 1 / 255 . f };
in.substract_mean_normalize( 0 , norm_vals);
ncnn::Extractor ex = pfld.create_extractor();
ex.input( " input_1 " , in);
ncnn::Mat out;
ex.extract( " 415 " , out);PFLD: um detector de marco facial prático https://arxiv.org/pdf/1902.10859.pdf
Implementação do TensorFlow: https://github.com/guoqiangqi/pfld