Draw Face Attributes C++ Sample¶
This sample demonstrates how construct and control GStreamer pipeline from C++ application, and how to access metadata attached by inference elements to image buffer.
How It Works¶
The sample utilizes GStreamer function
gst_parse_launch to construct the pipeline from string representation. Then callback function is set on source pin of
gvawatermark element in the pipeline.
The callback is invoked on every frame, it loops through inference metadata attached to the frame, converts raw tensor data into attributes and text labels (conversion depends on the model), and visualizes labels around detected objects.
Note that this sample doesn’t contain .json files with post-processing rules as post-processing of classification results performed by sample itself (inside callback function), not by
The sample uses by default the following pre-trained models from OpenVINO™ Toolkit Open Model Zoo
face-detection-adas-0001 is primary detection network for finding faces
age-gender-recognition-retail-0013 age and gender estimation on detected faces
emotions-recognition-retail-0003 emotion estimation on detected faces
facial-landmarks-35-adas-0002-0009 generates facial landmark points
head-pose-estimation-adas-0001 estimates head pose
Before running samples (including this one), run script
download_models.sh once (the script located in
samples top folder) to download all models required for this and other samples.
build_and_run.sh compiles the C++ sample into subfolder under
$HOME/intel/dl_streamer, then runs the executable file.
If no input parameters specified, the sample by default streams video example from HTTPS link (utilizing
urisourcebin element) so requires internet conection. The command-line parameter INPUT_VIDEO allows to change input video and supports
local video file
web camera device (ex.
RTSP camera (URL starting with
rtsp://) or other streaming source (ex URL starting with
prints GSreamer pipeline string as passed to function
starts the pipeline and visualizes video with bounding boxes around detected faces, facial landmarks points, head pose, and text with classification results (age/gender, emotion) for each detected face