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 ! xvimagesink 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 OpenVINO™ Toolkit 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 GStreamer Video Analytics Plugin is licensed under the MIT license.
GStreamer is an open source framework licensed under LGPL. See license terms. You are solely responsible for determining if your use of Gstreamer requires any additional licenses. Intel is not responsible for obtaining any such licenses, nor liable for any licensing fees due, in connection with your use of Gstreamer
- OpenVINO™ 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
- OpenVINO™ Toolkit 2020.1 (Inference Engine 2.1.0) or above
- Linux* system with kernel 4.15 or above
- GStreamer framework 1.14 or above
- Start here: Getting Started Guide
- API reference
- Gstreamer VA plugin on YouTube: Full pipeline simulation using GStreamer; Full pipeline simulation using GStreamer (Samples)
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.