Releases: nnstreamer/nnstreamer
NNStreamer v2.4.1
Pre-release for Tizen 9.0
: Tizen 9.0 M1 release (sync to Tizen 7.0 and 8.0)
- nnstreamer v2.4.1
- nnstreamer-edge v0.2.5
- ml-api v1.8.5
- mlops-agent v1.8.5
NNStreamer 2.1.1 Devel/Unstable
2.1.0 -> 2.1.1
- Tizen 7.0 M1 RCx preparation and NNStreamer Mini Summit 2022-04 release.
- NNStreamer-Edge refactoring (module for Among-Device AI (a.k.a. Edge-AI))
- Ongoing effort of nnstreamer-edge separation from nnstreamer.
- In the future, nnstreamer-edge will provide among-device AI functions and nnstreamer will provide gstreamer plugins for such functions. Non-gstreamer systems may connect to nnstreamer-edge based pipelines without gstreamer as clients.
- NNStreamer-Edge will be using AITT as its default backend, leaving protocol issues to AITT.
- In the future, nnstreamer-edge will be compatible with non-Linux ultra-lightweight systems (e.g., Tizen-RT)
- ML-Service API preparation is going on at api.git.
- Major features
- MQTT timestamping w/ NTP. (later will be migrated to nnstreamer-edge & aitt)
- Query (later will be migrated to nnstreamer-edge & aitt): robustness support, mqtt-hybrid protocol, performance fixes for multi-clients.
- More coverage for SNPE support: quantized model support, SNPE dimension bug workaround, fixes from/for production team.
- Flexible tensor support w/ decoder, converter, flatbuffer.
- Minor features
- MQTT unittest basis, generic stream support, android support, timeout handling, ... (and many!)
- Utility functions exported for plugin writers.
- Tensorflow-lite delegation refactored for generality: may use XNNPACK more easily.
- Tensorflow-lite multi-lib support.
- PyTorch: support complex output tensor formats.
- NNStreamer multi-lib support.
- Decoder: boundingbox-yolov5
- Filter: TRIx-Engine support. (NPUs of Samsung 2022 TV)
- Docker support refactored and cleaned up.
- Fixes
- ARMNN build errors.
- Android errors
- Build errors with recent compiler updates. (gcc 11)
- Fixes upstreamed from productions
- Errors w/ library updates: Lua >= 5.3, GLib >= 2.68
- Regression fixes: openvino, edgetpu, tensorrt
- Memory leaks in C++ subplugin infra.
- Known issues: PPA/Launchpad build broken!
2.0.0 -> 2.1.0
- 2.1.0 is a devel version for 2.2.0 release, which is planned to be the LTS release of 2022.
What's Changed
- Start 2.1.0 development by @myungjoo in #3509
- [Gst/MQTT] Introduce the Unix epoch synchronization using NTP @OPEN sesame 09/29 10:29 by @wooksong in #3427
- [test/mqtt] Test mqtt w/ or w/o broker by @anyj0527 in #3514
- README update: add recent papers by @myungjoo in #3511
- [Build] fix build warning by @jaeyun-jung in #3516
- [snpe] Support uint8 input/output type by @anyj0527 in #3499
- [QUERY] Robustness support of MQTT-hybrid by @gichan-jang in #3510
- [Query] Set TCP_NODELAY option to avoid buffering algorithm by @again4you in #3521
- [Doc] Fix the simple typo in tensor_quey doc @OPEN sesame 10/13 13:34 by @again4you in #3519
- [armnn] compilation error - unused parameter by @jvuillaumier in #3522
- [build] Enable build for cerbero by @anyj0527 in #3517
- [Query] separate hybrid feature by @jaeyun-jung in #3520
- [svace] fix svace issue by @jaeyun-jung in #3525
- [MQTT] Wait until connection is established. by @gichan-jang in #3518
- Fix #3440, macos build issues by @myungjoo in #3532
- [Query] Use hash table for shared data of query server. @OPEN sesame 10/18 13:10 by @gichan-jang in #3524
- [fix/openvino] Handle unused var in openvino filter @OPEN sesame 10/29 14:50 by @anyj0527 in #3538
- [fix/edgetpu] Fix unused var error and enable the test when tflite2 is available by @anyj0527 in #3537
- [trivial] Fix sub-plugin check in TensorRT test by @anyj0527 in #3545
- [UNITTEST] Add a skip option to the script running test cases by @wooksong in #3534
- [Test] Fix build issue with GCC 11 [-Werror=maybe-uninitialized] by @jvuillaumier in #3549
- [Converter/Doc] doc to convert octet stream by @jaeyun-jung in #3533
- [test/tf2lite] Add tests for tf2lite2 sub-plugin by @anyj0527 in #3552
- [Build] Add g_memdup2() support for glib >= 2.68 by @jvuillaumier in #3550
- [TEST] Disable MQTT Test when broker is not available. by @gichan-jang in #3551
- [Common] util function to handle tensors by @jaeyun-jung in #3546
- Tflite external delegate by @jvuillaumier in #3557
- [Query] Add message handling thread for server. by @gichan-jang in #3526
- [Converter] convert bytes or flex-tensor without properties by @jaeyun-jung in #3529
- [Spec] Enable SNPE filter on both In-House and public infra @OPEN sesame 11/11 17:20 by @again4you in #3541
- [Flatbuf] support flexible tensors by @gichan-jang in #3535
- [Doc] Add nnstreamer tutorials by @gichan-jang in #3561
- [fix/mqttsrc] Set MQTT persistence mode of mqttsrc to None by @anyj0527 in #3563
- [Android/mqtt] Add mqtt sources to nnstreamer.mk @OPEN sesame 11/16 10:38 by @anyj0527 in #3566
- [Query] null ptr in finalize callback by @jaeyun-jung in #3564
- [Protobuf] Support flextensors for protobuf. by @gichan-jang in #3536
- [Flexbuf] Support flexible tensors for flexbuf. by @gichan-jang in #3539
- [Query] detach option on msg thread by @jaeyun-jung in #3568
- [Elements] handle single mem chunk by @jaeyun-jung in #3547
- tensor_filter TFLite subplugin - XNNPACK delegate @OPEN sesame 11/29 12:40 by @jvuillaumier in #3577
- [fix/query] Fix the order of calling
g_socket_listener_set_backlog
by @anyj0527 in #3581 - [Doc] Fix bad links @OPEN sesame 12/01 19:10 by @niley7464 in #3584
- [Query] fix invalid socket mode by @jaeyun-jung in #3586
- [Spec] Add restricted_element_vd for VD element @OPEN sesame 11/02 06:05 by @again4you in #3585
- [Query] util function to send gst-buffer by @jaeyun-jung in #3583
- [Query] Change tensor query to accpet ANY caps @OPEN sesame 11/30 17:57 by @gichan-jang in #3573
- [Mux/Merge] Change meta copy policy by @gichan-jang in #3574
- multilib correction - #3554 follow up by @jvuillaumier in #3582
- [Query] util function to receive data by @jaeyun-jung in #3587
- [Query/CodeClean] remove unnecessary util functions by @jaeyun-jung in #3589
- [Query] set default timeout by @jaeyun-jung in #3590
- meson: use version_copmare() @OPEN sesame 12/06 13:15 by @myungjoo in #3592
- [doc] query and image update by @niley7464 in #3593
- [Common] change log level to get tensor-config by @jaeyun-jung in #3596
- [Doc] Add meson build example. by @gichan-jang in #3597
- Test: enhancing log behaviors for unittest by @myungjoo in #3571
- [Query] fix invalid data size by @jaeyun-jung in #3600
- [filter] Add a time duration log of filter open @OPEN sesame 12/10 12:27 by @anyj0527 in #3599
- [Query] Change error message when GstMeta is invalid. by @gichan-jang in #3595
- [TEST] Change filesink buffer mode. by @gichan-jang in #3602
- [Dec/Sub] Add octet-stream decoder subplugin. @OPEN sesame 12/10 14:24 by @gichan-jang in #3556
- [Query] Set timestamp for each buffer. @OPEN sesam...
LTS 2.0.1 Maintanance Release
This is a LTS release 2.0.1, including bugfixes for 2.0 LTS release.
What's Changed
- [lts/2.0.y][Hotfix] Fix mqtt related test failure on lts/2.0.y branch by @anyj0527 in #3578
- [2.0.y][Build] Add g_memdup2() support for glib >= 2.68 by @myungjoo in #3576
- [lts/2.0] fix build issue by @jaeyun-jung in #3580
- [Spec] Add restricted_element_vd for VD element by @again4you in #3588
- [For LTS branch][fix/bug] Fix destructor of cpp class subplugin by @anyj0527 in #3633
- Support the SNPE on DA Robot Vacuum cleaner by @again4you in #3645
- [lts][for tizen 6.5] Hot fix for snpe filter and release 2.0.1 lts by @anyj0527 in #3702
- [lts/6.5][fix/snpe] Handle zero dim models by @anyj0527 in #3718
Full Changelog: v2.0.0...v2.0.1
Long-Term-Stable 2.0 Release
This is the LTS release of 2022, version 2.0.0.
The key features of 2.0 release include:
- The first release with edge-AI (among-device AI) elements.
- Stream data types are expanded to support flexible tensors (for schema-less streams) and sparse tensors.
- The original stream type,
other/tensor''' (single tensor), will be obsoleted. Please use
other/tensors''' with ```num_tensors=1''' instead.
- The original stream type,
- A few more hardware accelerators and neural network frameworks are adopted.
For more information, please refer to https://github.com/nnstreamer/nnstreamer/wiki/Release-Note-v2.0.0
NNStreamer 1.7.2 Devel/Unstable
1.7.2 is the second devel-unstable release for 1.8 RC.
Note that 1.7.1+a is released with Tizen 6.5 M1.
1.7.1 -> 1.7.2 (includes a huge amount of changes)
- NNStreamer for Edge-AI project started.
- Main festures of 1.8.0 release and its immediate successors will be "Edge-AI", which allows distributed on-device AI inferences.
- The new stream type, "Flex-Tensor", is introduced. Dimensions and types of tensor stream may vary per frame without cap-renegotiations.
- Many nnstreamer's tensor-* elements support Flex-Tensor.
- You may use tensor-converter to convert between flex-tensor and (static) tensor.
- MQTT-SINK and MQTT-SRC elements are added for edge-AI systems with MQTT pub/sub streams.
- MQTT streams support "ANY" capabilities.
- Assuming that clocks of nodes are synchronized by NTP or other mechanisms, pipeline users may send timestamp related info via MQTT streams for multi-source synchronization.
- Tensor-crop, a new nnstreamer-gstreamer element.
- Basic feature only (cropping a tensor stream with information of another tensor stream)
- Major features
- GSTPipeline to PBTXT parser. You can use PBTXT-pipeline visualization tools with the parsed results.
- FlexBuffers support.
- TVM support
- Tensor-IF with custom (user code plugged at run-time) conditions
- Tensorflow-lite delegation designation is generalized.
- Tensorflow2-lite XNNPACK delegation
- NNTrainer-inference can be attached as a filter along with both API sets.
- CAPI: updated documentation, added new enums for recent nnstreamer features, ...
- API interface and implementation is separated to another git repository for better architecture.
- Tensor-converter and Tensor-decoder support custom ops.
- Minor features
- Filter subplugin priority with ini file configuration.
- Decoder/Bounding-Box improved: output tensor mapping, clamp bounding box locations, labeling issues, more options.
- Decoder/Pose-Estimation improved: proper labeling.
- Testcases added for gRPC, Android, Tensor-rate, ...
- Refactoring (reduce complexity, remove duplicity, build options, ...)
- Android build & release upgraded.
- Converter usability upgrade: property to list subplugins, subplugin naming/install rules.
- Pytorch: exception handling, Android build
- gRPC: per-IDL packaging, interface updates, common-code revise, async mode, ...
- Support Tensorflow 2.4 API (TF has broken backward compatibility again)
- Tensor-transform: may operate on chosen tensor or channel only.
- Fixes
- Android resource leak.
- CAPI timing, header issues, seg-faults, memory leaks, ...
- MacOS build errors.
- TensorRT dependency bugs
- Edge-TPU compatibility issues.
- Unit test fixes (memory leaks, resource leaks, skip disabled features, ...)
- Fixed reported issues (security, memory leaks, query-caps, ...)
- Extra
- Support for Python 2.x is dropped.
- Automated doc-page generation with Hotdoc.
- Android build now includes GST-Shark for performance profiling.
NNStreamer 1.7.1 Devel/Unstable
1.7.1 is the first devel-unstable release after 1.6.0 LTS release.
1.7.0 -> 1.7.1
- Major features
- Tensor-IF, a new element. It allows to create conditional branches based on tensor values.
- Join, a new element. It merges output sinks from src pads of different elements with the same GST-Cap.
- Tensor-rate, a new element. It allows throttling by generating QoS messages.
- TensorRT support
- TF1-lite and TF2-lite coexistance
- TFx-lite NNAPI, GPU Delegation
- Minor features
- hw-accel options for tensor-filters are refactored
- python3-embed enabled if python3 >= 3.8
- Subplugin initialization optimization.
- Docker scripts for Ubuntu developers.
- Fixes
- flatbuf dependency related with tensorflow-lite.
- tensor-decoder configures framerate.
- Dynamic dimension related API issues fixed.
- MacOS, Yocto compatibility issues fixed. (A few Yocto known issues are still remaining.)
- License mismatches resolved.
- A few Test cases fixed.
- Packaging issues fixed and style cleaned-up.
- Extra
- A lot of interesting sample applications are added.
NNStreamer 1.6.0, LTS Release of 1.6.y
Linux Foundation AI Announcement
NNStreamer 1.6.0 is the next LTS version.
NNStreamer 1.6.0 targets Tizen 6.0 M2 release and next-year Android products.
Release Note of NNStreamer 1.6.0
We will attach binary packages as soon as CD system publishes them.
NNStreamer 1.0.1, LTS Release of 1.0.y
For Tizen 5.5 Mx long-term stable maintance, we release NNStreamer 1.0.y LTS v1.0.1.
Commits for 1.0.y LTS is managed in review.tizen.org (tizen_5.5 branch) and will be mirrored back to github.com/nnstreamer/nnstreamer.
In 1.0.y series, we will add critical hotfixes for 1.0 and additional requirements for Tizen 5.5 Mx only.
Changes from 1.0.0 to 1.0.1
- All patches from 1.0.0 to 1.2.0 that were merged before 2019/10/14 (6cd9067), the last master commit before Tizen 5.5 M2 release.
- Allow non-tensor inputs with Pipeline's appsrc
- nnfw (Neural Network Runtime of Tizen) integration
- Bugfixes requested by quality assurance team for Tizen 5.5 releases
- [HOTFIX] Duplicated free with appsrc/do-not-free-mode. (workaround)
RPM binaries are from download.tizen.org (reference build of Tizen 5.5 M3)
NNStreamer 1.4.0
1.3.1 -> 1.4.0
- Stable release with API changes
- Tensor-filter subplugin API has been updated.
- Stability fixes & added unit test cases
- C-API updates
1.3.0 -> 1.3.1 (1.4 RC2)
- 1.3.1 is a devel version for 1.4.0 release.
- Support C++ class custom filters. (C++ class as a NN model)
- A tensor-filter instance may have multiple model files easily.
- Updated env-var handling logic for non-Tizen devices.
- Unit test: higher visibility & behavior correctness fixes.
- Auto-generated test cases for tensor-filter sub-plugins (extensions).
- Android/Java support with more convinient methods.
- Support gcc9
- Support openVino as a tensor-filter, allowing to accelerate with Intel NCS/Myriad.
- Support NCSDK as a tensor-filter.
- Support ARMNN as a tensor-filter. (support TF-Lite and Caffe models)
- Reduce asserts and add error handling routines.
- Support Androdi/SNAP as a tensor-filter.
- Support hardware accelerators & 8-bit quantization for NNFW-Runtime & stabilize NNFW-Runtime support with test cases.
- Support Edge-TPU and its runtime as a tensor-filter.
- Filter subplugins refactored to have a single source file (.cc)
- Support model reload
- A lot of fixes for bugs found by Coverity, SVACE, and other static analysis tools
1.2.0->1.3.0 (1.4 RC1)
- Development releases started.
NNStreamer 1.3.0
Release of NNStreamer 1.3.0
1.3.0 (odd-mid-version) is a development version.