Age and Gender Recognition via REST API#

This article describes how to use OpenVINO™ Model Server to execute inference requests sent over the REST API interface. The demo uses a pretrained model from the Open Model Zoo repository.

Download the pretrained model for age and gender recognition#

Download both components of the model (xml and bin file) using curl in the model directory

curl --create-dirs https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/2/age-gender-recognition-retail-0013/FP32/age-gender-recognition-retail-0013.bin https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/2/age-gender-recognition-retail-0013/FP32/age-gender-recognition-retail-0013.xml -o model/1/age-gender-recognition-retail-0013.bin -o model/1/age-gender-recognition-retail-0013.xml

Start OVMS docker container with downloaded model#

Start OVMS container with image pulled in previous step and mount model directory :

docker run --rm -d -u $(id -u):$(id -g) -v $(pwd)/model:/models/age_gender -p 9000:9000 -p 8000:8000 openvino/model_server:latest --model_path /models/age_gender --model_name age_gender --port 9000 --rest_port 8000

Requesting the Service#

Clone the repository

git clone https://github.com/openvinotoolkit/model_server.git

Enter age_gender_recognition python demo directory:

cd model_server/demos/age_gender_recognition/python

Download sample image using the command :

wget https://raw.githubusercontent.com/openvinotoolkit/open_model_zoo/2022.1.0/models/intel/age-gender-recognition-retail-0013/assets/age-gender-recognition-retail-0001.jpg

Install python dependencies:

pip3 install -r requirements.txt

Run age_gender_recognition.py script to make an inference:

python3 age_gender_recognition.py --image_input_path age-gender-recognition-retail-0001.jpg --rest_port 8000

Sample Output :

age-gender-recognition-retail-0001.jpg (1, 3, 62, 62) ; data range: 0 : 239
{'outputs': {'prob': [[[[0.9874807]], [[0.0125193456]]]], 'age_conv3': [[[[0.25190413]]]]}}

Output format :

Output Name

Shape

Description

age_conv3

[1, 1, 1, 1]

Estimated age divided by 100

prob

[1, 2, 1, 1]

Softmax output across 2 type classes [female, male]