This demo provides an inference pipeline for multi-channel yolo v3. The demo uses Yolo v3 Object Detection network. You can follow this page convert the YOLO V3 and tiny YOLO V3 into IR model and execute this demo with converted IR model.
NOTES: If you don't use this page to convert the model, it may not work.
Other demo objectives are:
On the start-up, the application reads command line parameters and loads the specified networks. The Yolo v3 Object Detection network is required.
NOTES:
- By default, Open Model Zoo 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 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 Reverse Input Channels section of Converting a Model Using General Conversion Parameters.
Running the application with the -h
option yields the following usage message:
To run the demo, you can use public pre-train model and follow this page for instruction of how to convert it to IR model.
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 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.
To achieve 100% utilization of one Myriad X, the thumb rule is to run 4 infer requests on each Myriad X. Option -nireq 32
can be added to above command to use 100% of HDDL-R card. The 32 here is 8 (Myriad X on HDDL-R card) x 4 (infer requests), such as following command:
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 demo uses OpenCV to display the resulting frames with detections rendered as bounding boxes. On the top of the screen, the demo reports throughput in frames per second. You can also enable more detailed statistics in the output using the -show_stats
option while running the demos.
General parameter for input video source is -i
. Use it to specify video files or web cameras as input video sources. 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 the -i
parameter.
To connect to IP cameras, use RTSP URIs: