Single Face Analysis Pipeline Demo

This document presents a models ensemble as an example of DAG Scheduler implementation. It describes how to combine several models to perform multiple inference operations with a single prediction call. When you need to execute several predictions on the same data, you can create a pipeline, which combines the results from several models.

diagram

Prepare workspace to run the demo

In this example the following models are used:

age-gender-recognition-retail-0013

emotions-recognition-retail-0003

Clone the repository and enter single_face_analysis_pipeline directory

git clone https://github.com/openvinotoolkit/model_server.git
cd model_server/demos/single_face_analysis_pipeline/python

You can prepare the workspace that contains all the above by just running

make

Final directory structure

Once the make procedure is finished, you should have workspace directory ready with the following content.

workspace/
├── age-gender-recognition-retail-0013
│   └── 1       ├── age-gender-recognition-retail-0013.bin
│       └── age-gender-recognition-retail-0013.xml
├── config.json
└── emotions-recognition-retail-0003
    └── 1
        ├── emotions-recognition-retail-0003.bin
        └── emotions-recognition-retail-0003.xml

Deploying OVMS

Deploy OVMS with single face analysis pipeline using the following command:

docker run -p 9000:9000 -d -v ${PWD}/workspace:/workspace openvino/model_server --config_path /workspace/config.json --port 9000

Requesting the Service

Exemplary client single_face_analysis_pipeline.py can be used to request pipeline deployed in previous step.

pip3 install -r requirements.txt

Now you can create directory for text images and run the client:

python single_face_analysis_pipeline.py --image_path ../../common/static/images/faces/face1.jpg --grpc_port 9000
Age results: [[[21.099792]]]
Gender results: Female: 0.9483401 ; Male: 0.051659837
Emotion results: Natural: 0.02335789 ; Happy: 0.9449672 ; Sad: 0.001236845 ; Surprise: 0.028111042 ; Angry: 0.0023269346

Next step

For more advanced use case with extracting and analysing multiple faces on the same image see multi_faces_analysis_pipeline demo.