Files
FastDeploy/examples/vision/faceid/insightface/rknpu2/python/README.md
Hu Chuqi e2de3f36d3 [Doc] Add English version of some documents (#1221)
* Update README_CN.md

* Create README.md

* Update README.md

* Create README_CN.md

* Update README.md

* Update README_CN.md

* Update README_CN.md

* Create README.md

* Update README.md

* Update README_CN.md

* Create README.md

* Update README.md

* Update README_CN.md

* Rename examples/vision/faceid/insightface/rknpu2/cpp/README.md to examples/vision/faceid/insightface/rknpu2/README_EN.md

* Rename README_CN.md to README.md

* Rename README.md to README_EN.md

* Rename README.md to README_CN.md

* Rename README_EN.md to README.md

* Create build.md

* Create environment.md

* Create issues.md

* Update build.md

* Update environment.md

* Update issues.md

* Update build.md

* Update environment.md

* Update issues.md
2023-02-06 11:11:00 +08:00

4.8 KiB

English | 简体中文

InsightFace Python Deployment Example

FastDeploy supports the deployment of InsightFace models like ArcFace\CosFace\VPL\Partial on RKNPU.

This directoty provides the example that infer_arcface.py fast finishes the deployment of InsighFace models like ArcFace on CPU/RKNPU.

Two steps before deployment:

# Download the example code for deployment
git clone https://github.com/PaddlePaddle/FastDeploy.git
cd examples/vision/faceid/insightface/python/

# Download ArcFace model files and test images
wget https://bj.bcebos.com/paddlehub/fastdeploy/ms1mv3_arcface_r100.onnx
wget https://bj.bcebos.com/paddlehub/fastdeploy/rknpu2/face_demo.zip
unzip face_demo.zip

# CPU inference
python infer_arcface.py --model ms1mv3_arcface_r100.onnx \
                        --face face_0.jpg \
                        --face_positive face_1.jpg \
                        --face_negative face_2.jpg \
                        --device cpu
# GPU inference
python infer_arcface.py --model ms1mv3_arcface_r100.onnx \
                        --face face_0.jpg \
                        --face_positive face_1.jpg \
                        --face_negative face_2.jpg \
                        --device gpu

The visualized result is as follows

Prediction Done!
--- [Face 0]:FaceRecognitionResult: [Dim(512), Min(-2.309220), Max(2.372197), Mean(0.016987)]
--- [Face 1]:FaceRecognitionResult: [Dim(512), Min(-2.288258), Max(1.995104), Mean(-0.003400)]
--- [Face 2]:FaceRecognitionResult: [Dim(512), Min(-3.243411), Max(3.875866), Mean(-0.030682)]
Detect Done! Cosine 01: 0.814385, Cosine 02:-0.059388

InsightFace Python interface

fastdeploy.vision.faceid.ArcFace(model_file, params_file=None, runtime_option=None, model_format=ModelFormat.ONNX)
fastdeploy.vision.faceid.CosFace(model_file, params_file=None, runtime_option=None, model_format=ModelFormat.ONNX)
fastdeploy.vision.faceid.PartialFC(model_file, params_file=None, runtime_option=None, model_format=ModelFormat.ONNX)
fastdeploy.vision.faceid.VPL(model_file, params_file=None, runtime_option=None, model_format=ModelFormat.ONNX)

ArcFace model loading and initialization, among which model_file is the exported ONNX model format

Parameter

  • model_file(str): Model file path
  • params_file(str): Parameter file path. No need to set when the model is in ONNX format
  • runtime_option(RuntimeOption): Backend inference configuration. None by default, which is the default configuration
  • model_format(ModelFormat): Model format. ONNX format by default

predict function

ArcFace.predict(image_data)

Model prediction interface. Input images and output prediction results

Parameter

  • image_data(np.ndarray): Input data in HWC or BGR format

Return

Return the fastdeploy.vision.FaceRecognitionResult structure. Refer to Vision Model Prediction Results for its description

Class Member Property

Pre-processing Parameter

Users can modify the following preprocessing parameters based on actual needs to change the final inference and deployment results.

Member Variables of AdaFacePreprocessor

The followings are the member variables of AdaFacePreprocessor

  • size(list[int]): This parameter changes the resize used during preprocessing, containing two integer elements for [width, height] with default value [112, 112]
  • alpha(list[float]): Preprocess normalized alpha, and calculated as x'=x*alpha+beta. Alpha defaults to [1. / 127.5, 1.f / 127.5, 1. / 127.5]
  • beta(list[float]): Preprocess normalized beta, and calculated as x'=x*alpha+beta. beta defaults to [-1.f, -1.f, -1.f]

Member Variables of AdaFacePostprocessor

The followings are the member variables of AdaFacePostprocessor

  • l2_normalize(bool): Whether to perform l2 normalization before outputting the face vector. Default false.

Other Documents