This demo provides an inference pipeline for multi-channel face detection or human pose estimation. The demo uses Face Detection or Human Pose Estimation networks. You can use the following pre-trained models with the demo:
face-detection-retail-0004
human-pose-estimation-0001
For more information about the pre-trained models, refer to the https://github.com/opencv/open_model_zoo/blob/master/intel_models/index.md "Open Model Zoo" repository on GitHub*.
Other demo objectives are:
On the start-up, the application reads command line parameters and loads the specified networks. The Face Detection network is required.
NOTES:
- Running the demo requires using at least one web camera attached to your machine.
- By default, Inference Engine samples and demos expect input with BGR channels order. If you trained your model to work with RGB order, you need to manually rearrange the default channels order in the sample or demo application or reconvert your model using the Model Optimizer tool with
--reverse_input_channels
argument specified. For more information about the argument, refer to When to Specify Input Shapes section of Converting a Model Using General Conversion Parameters.
Running the application with the -h
option yields the following usage message:
Running the application with an empty list of options yields the usage message given above and an error message.
To run the demo, you can use public or pre-trained models. To download the pre-trained models, use the OpenVINO Model Downloader or go to https://download.01.org/opencv/.
NOTE: Before running the demo with a trained model, make sure the model is converted to the Inference Engine format (*.xml + *.bin) using the Model Optimizer tool.
For example, to run the demo with the pre-trained face detection model on FPGA with fallback on CPU with one single camera, use the following command:
To run the demo using two recorded video files, use the following command:
Video files will be processed repeatedly.
You can also run the demo on web cameras and video files simultaneously by specifying both parameters: -nc <number of cams> -i <video files sequentially, separated by space>
. To run the demo with a single input source (a web camera or a video file) but several channels, specify an additional parameter: -duplicate_num 3
. You will see four channels: one real and three duplicated. With several input sources, the -duplicate_num
parameter will duplicate each of them.
The same applies for the multi-channel-human-pose-estimation
demo except the model is human-pose-estimation-0001.xml
.
General parameter for input video source is -i
. Use it to specify video files and web cameras (USB cameras) as input video source. You can add the parameter to a sample command line as follows:
-nc <nc_value>
parameter simplifies usage of multiple web cameras. It connects web cameras with indexes from 0
to nc_value-1
. To see all available web cameras, run the ls /dev/video*
command. You will get output similar to the following:
You can use -i
option to connect all the three web cameras:
Alternatively, you can just set -nc 3
, which simplifies application usage.
If your cameras are connected to PC with indexes gap (for example, 0,1,3), use -i
parameter.
IP-cameras through RSTP URI interface are not supported.
The demo uses OpenCV to display the resulting bunch of frames with detections rendered as bounding boxes. On the top of the screen, the demo reports throughput (in frames per second). If needed, it also reports more detailed statistics (use -show_stats
option while running the demo to enable it).