This repository contains GStreamer elements that enable CNN model-based video analytics capabilities in the GStreamer framework. These elements include such things as object detection, classification, and recognition. Example above shows concise GStreamer pipeline that runs detection & emotion classification, using specific models on a video file:
gst-launch-1.0 filesrc location=cut.mp4 ! decodebin ! videoconvert ! gvadetect model=face-detection-adas-0001.xml ! gvaclassify model=emotions-recognition-retail-0003.xml model-proc=emotions-recognition-retail-0003.json ! gvawatermark ! ximagesink sync=false
The solution leverages:
- Open-source GStreamer framework for pipeline management
- GStreamer plugins for input and output, such as media files and real-time streaming from a camera or network
- Video decode and encode plugins, including either CPU-optimized plugins or GPU-accelerated plugins, based on VAAPI
In addition, the solution installs the following Deep Learning-specific elements, also available in this repository:
- Inference plugins leveraging Intel OpenVINO for high-performance inference using CNN models
- Visualization of computer vision results (such as bounding boxes and labels of detected objects) on top of video stream
The following diagram shows how the GVA plugin fits into the common software stack.
Diagram color key:
- GVA plugin components: light blue
- Oher Intel components: dark blue
- Standard GStreamer components: gray
- Linux kernel: green
The GStreamer Video Analytics Plugin is licensed under the MIT license.
- The Intel(R) OpenVINO(TM) toolkit has information about the hardware requirements for inference elements
- On platforms with Intel Gen graphics, see the gstreamer-vaapi for hardware accelerated video decode and encode requirements
- Intel(R) OpenVINO(TM) toolkit 2019 R1 (Inference Engine 1.6.0) or above
- Linux* system with kernel 4.15 or above
- GStreamer framework 1.14 or above
- Start here: Getting Started Guide
- API reference
See the command-line examples and C++ example
Report bugs and requests on the issues page
Details about pipeline construction and the data flow between pipeline elements
Details about metadata generated by inference plugins and attached to video frames
Details about how to prepare Tensorflow*, Caffe*, and other models for the inference plugins
Elements list and properties list for each element
Pull requests aren't monitored, so if you have bug fix or an idea to improve this project, post a description on the issues page.
* Other names and brands may be claimed as the property of others.