PFLD pytorch
1.0.0
PFLDの実装Pytorchによる実用的なフェイシャルランドマーク検出器。
pip3 install -r requirements.txtワイルドインザワイルド(WFLW)のより広いフェイシャルランドマークは、新しい提案されたフェイスデータセットです。 98の完全に手動注釈付きランドマークを備えた10000の顔(トレーニング用の7500、テスト用の2500)が含まれています。
./data/WFLW/Mirror98.txt WFLW/WFLW_annotationsに移動します$ cd data
$ python3 SetPreparation.pyトレーニング :
$ python3 train.pyテンソルボードを使用して、新しい端末を開きます
$ tensorboard --logdir=./checkpoint/tensorboard/
テスト:
$ python3 test.py
pytorch-> onnx
python3 pytorch2onnx.pyonnx-> ncnn
構築方法:https://github.com/tencent/ncnn/wiki/how-to-build
cd ncnn/build/tools/onnx
./onnx2ncnn pfld-sim.onnx pfld-sim.param pfld-sim.binこれで、ncnnでpfldsim.paramおよびpfld-sim.binを使用できます。
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:実用的なフェイシャルランドマーク検出器https://arxiv.org/pdf/1902.10859.pdf
Tensorflow実装:https://github.com/guoqiangqi/pfld