:twisted_rightwards_arrows: Neural Network (NN) Streamer, Stream Processing Paradigm for Neural Network Apps/Devices.
Neural Network Support as Gstreamer Plugins.
NNStreamer is a set of Gstreamer plugins that allow Gstreamer developers to adopt neural network models easily and efficiently and neural network developers to manage neural network pipelines and their filters easily and efficiently.
NNStreamer: Stream Processing Paradigm for Neural Networks ... [pdf/tech report]
GStreamer Conference 2018, NNStreamer [media] [pdf/slides]
Naver Tech Talk (Korean), 2018 [media] [pdf/slides]
Samsung Developer Conference 2019, NNStreamer [media]
ResearchGate Page of NNStreamer
| | Tizen | Ubuntu | Android/NDK Build | Android/APK | Yocto | macOS | | :-- | :--: | :--: | :--: | :--: | :--: | :--: | | | 5.5M2 and later | 16.04/18.04/20.04 | 9/P | 9/P | Zeus and later | | | arm | | Available | Ready | Available| Ready | N/A | | arm64 | | Available | Ready | | Planned | N/A | | x64 | | | Ready | Ready | Ready | Available | | x86 | | N/A | N/A | N/A | N/A | N/A | | Publish | Tizen Repo | PPA | | JCenter | | Brew Tap | | API | C/C# (Official) | C | | Java | C | C |
Provide neural network framework connectivities (e.g., tensorflow, caffe) for gstreamer streams.
Provide easy methods to construct media streams with neural network models using the de-facto-standard media stream framework, GStreamer.
Note that this project has just started and many of the components are in design phase. In Component Description page, we describe nnstreamer components of the following three categories: data type definitions, gstreamer elements (plugins), and other misc components.
For more details, please access the following manuals. * For Linux-like systems such as Tizen, Debian, and Ubuntu, press here. * For macOS systems, press here. * To build an API library for Android, press here.
Although a framework may accelerate transparently as Tensorflow-GPU does, nnstreamer provides various hardware acceleration subplugins. - Movidius-X via ncsdk2 subplugin: Released - Movidius-X via openVINO subplugin: Released - Edge-TPU via edgetpu subplugin: Released - ONE runtime via nnfw(an old name of ONE) subplugin: Released - ARMNN via armnn subplugin: Released - Verisilicon-Vivante via vivante subplugin: Released - Qualcomm SNPE via snpe subplugin: Released - Exynos NPU: WIP
Contributions are welcome! Please see our Contributing Guide for more details.