Skip to content

Releases: marovira/rad

2.4.0

01 Nov 21:55
Compare
Choose a tag to compare

Feature Changes

  • Adds functions to retrieve the types of input and output tensors from an ONNX session.
  • Adds support for converting to/from 16-bit float images through OpenCV.
  • Adds support for adding tensors in 16-bit float. This includes the necessary templates and concepts to support 16-bit float data types.
  • Adds new functions to convert to/from image blobs (similar to cv::dn::bloblFromImages). These allow conversions with arbitrary numbers of channels as well as arbitrary data types.
  • Allow multi-channel images to be converted to tensors.
  • Adds functions to retrieve the names of input and output tensors from an ONNX session.

Breaking Changes

  • Template structs that previously used value_type now use type. This ensures compatibility and consistency with the STL.
  • perform_safe_op is now marked as [[nodiscard]].

Full Changelog

2.3.1...2.4.0

2.3.1

24 Sep 19:53
Compare
Choose a tag to compare

Feature Changes

  • Update the process_images, process_images_parallel and load_image functions to allow passing in OpenCV flags to determine how images get loaded. This allows loading files of arbitrary type and bit-depth.

Full Changelog

2.3.0...2.3.1

2.3.0

20 Sep 19:35
Compare
Choose a tag to compare

Feature Changes

  • Removed unnecessary headers.
  • Removed unnecessary universal references from functors.
  • Marked functions as [[nodiscard]] and noexcept where appropriate
  • Bump dependency versions
  • Added a script to automate the building of dependencies. See tools/build_dependencies.py.

Full Changelog

2.2.0...2.3.0

2.2.0

22 Apr 23:33
Compare
Choose a tag to compare

Feature Changes

  • The return value of rad::onnx::init_ort_api() has now been marked nodiscard regardless of whether the library is compiled to throw on failure. This is mainly to enforce good practices on the environments where exceptions aren't enabled.
  • The functionality for arrays has been expanded. Conversions to and from tensors for batches of arrays are now supported.
  • CI/CD functionality has been revamped and significantly improved.

Deprecations/Removals

  • The overload to convert to and from tensors for std::array has been removed in favour of the more flexible std::vector API.

Full Changelog

2.1.0...2.2.0

2.1.0

03 Jan 01:29
Compare
Choose a tag to compare

Breaking Changes

  • The onnx/common.hpp has been renamed to better describe its purpose. The contained function has not changed. Please see below for details.
  • The ContiguousContainer concept has been removed. See below for details.

Feature Changes

  • The ContiguousContainer concept is now superseded by the one from Zeus.
  • The onnx/common.hpp header has been renamed to onnx/perform_safe_op.hpp to be clearer on what the header contains. To simplify workflows, the header is now included in all ONNX headers, so users don't have to manually include it themselves.
  • All SDKs have been updated to their latest versions.

Full Changelog

2.0.0...2.1.0

2.0.0

26 Sep 00:44
Compare
Choose a tag to compare

Breaking Changes

  • The tensor API has been completely rebuilt to allow for better expressiveness. Please see below for the new versions.
  • The inference API has been changed to allow workflows where networks have to be run in succession.
  • The Findonnxruntime.cmake script has been deprecated in favour of linking against ONNXRuntime through their provided scripts.

Feature Changes

  • The InputTensor and InputTensorSet classes have been replaced with MemoryBackedTensorSet, which collapses the functionality of both into a single unit. This allows to more clearly express the intent of the class as well as make it easier to use.
  • All template types are now correctly checked with concepts.
  • Code is now properly unit tested.
  • RAD is now cross-compiled correctly on GCC and Clang for Linux!

Full Changelog

1.4.0...2.0.0

1.4.0

17 Aug 18:32
Compare
Choose a tag to compare

Feature Changes

  • RAD now has full support for batch inferences using ONNXRuntime. The following functions have been added:
    • rad::onnx::images_to_tensor for conversion between a batch of cv::Mat and a single tensor.
    • rad::onnx::images_from_tensor for conversion between a batch of tensors into a batch of images.
  • RAD now requires the latest version of OneAPI's TBB (2021.10.0).

Bug Fixes

  • Failure to initialise ONNXRuntime can now be detected. This can be accomplished by either the return of rad::onnx::init_ort_api or by an exception which can be enabled by setting RAD_ENABLE_THROW_ON_FAILED_ORT_INIT to true when configuring CMake.
  • Error messages when performing inferences are now more descriptive.
  • Updates the usage of TBB's namespace to match what the documentation suggests.

Full Changelog

1.3.0...1.4.0

1.3.0

11 Jul 01:33
Compare
Choose a tag to compare

Breaking Changes

  • The entire API for the ONNX namespace has been re-structured. If you use any of the old functions, see below for the new versions.

Feature Changes

  • The ONNX module now has support for DirectML execution provider from ONNXRuntime.
    • This feature includes the ability to request DML through find_package.
    • Also updates CopySharedLibs to copy the necessary DLLs.
  • Re-structures how the headers are organized, allowing for more flexibility when including and limiting scope. Please note that the old header onnx.hpp now wraps the entire namespace. The headers have been split as follows:
    • onnx/env.hpp contains create_environment as well as a new function for initializing the API.
    • onnx/common.hpp contains the perform_safe_op function.
    • onnx/inference.hpp contains perform_inference.
    • session.hpp contains create_session_from_file as well as the new functions for using the DML provider.
    • tensor.hpp contains the functions to convert from/to tensors. Note that the system has been re-structured and the functions that convert to tensors now return a tensor as opposed to receiving a set as input. This allows greater flexibility in how tensors are made. Please see the API for further details.
  • Updates OpenCV to the latest version.

Bug Fixes

  • CopySharedLibs now requires ONNXRuntime when copying DLLs as a safeguard.

Full Changelog

1.2.0...1.3.0

1.2.0

30 May 23:50
Compare
Choose a tag to compare

Feature Changes

  • Updates to latest version of ONNXRuntime (v1.15.0)

Fixes

  • Fixes the path for CopySharedLibs.cmake so it can be installed correctly.

Full Changelog

1.1.0...1.2.0

1.1.0

05 May 21:01
Compare
Choose a tag to compare

Feature Changes

  • Adds an overload for creating an ORT session with custom options.
  • Adds functions to retrieve the dimensions of input/output tensors.

Fixes

  • Fixes how TBB DLLs are copied for Windows builds. Script will now copy only the DLLs that match the build configuration.
  • Improves CopySharedLibs to provide a more streamlined experience. The script is now generated with the correct version numbers for all libraries so they don't have to be passed in manually.

Full Chagelog

1.0.0...1.1.0