Skip to content

This repository contains a collection of GStreamer* elements to enable CNN model based video analytics capabilities (such as object detection, classification, recognition) in GStreamer* framework.

License

Notifications You must be signed in to change notification settings

tongtongxiaopeng1979/gst-video-analytics

 
 

Repository files navigation

OpenVINO Toolkit - DL Streamer repository

Overview

This repository contains GStreamer* elements that enable CNN model-based video analytics capabilities using OpenVINO Inference Engine across all Intel Hardware. These elements can be used to perform use cases such as object detection, classification, recognition and tracking. The above sample video demonstrates the following GStreamer pipeline that executes face detection and emotion classification, using specific CNN 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

In addition to the samples provided in this repository, please also review the following reference applications that use GStreamer Video Analytics plugin elements:

License

The GStreamer Video Analytics Plugin, part of OpenVINO Toolkit - DL Streamer, 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

Prerequisites

Hardware

Software

  • OpenVINO Toolkit 2020.2 (Inference Engine 2.1.0) or above
  • Linux* system with kernel 4.15 or above
  • GStreamer framework 1.14 or above

Getting Started

Samples

See the command-line examples and C++ example

Reporting Bugs and Feature Requests

Report bugs and requests on the issues page

Usage and integration into application

Pipelining and data flow

Details about pipeline construction and the data flow between pipeline elements

Metadata

Details about metadata generated by inference plugins and attached to video frames

Model preparation

Details about how to prepare Tensorflow*, Caffe*, and other models for the inference plugins

Plugins parameters

Elements list and properties list for each element

How to contribute

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.

About

This repository contains a collection of GStreamer* elements to enable CNN model based video analytics capabilities (such as object detection, classification, recognition) in GStreamer* framework.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 51.6%
  • C 27.6%
  • Dockerfile 8.2%
  • Python 6.6%
  • CMake 4.2%
  • Shell 1.1%
  • Objective-C 0.7%