Releases: marovira/rad
Releases · marovira/rad
2.4.0
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 usetype
. This ensures compatibility and consistency with the STL. perform_safe_op
is now marked as[[nodiscard]]
.
Full Changelog
2.3.1
Feature Changes
- Update the
process_images
,process_images_parallel
andload_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
Feature Changes
- Removed unnecessary headers.
- Removed unnecessary universal references from functors.
- Marked functions as
[[nodiscard]]
andnoexcept
where appropriate - Bump dependency versions
- Added a script to automate the building of dependencies. See
tools/build_dependencies.py
.
Full Changelog
2.2.0
Feature Changes
- The return value of
rad::onnx::init_ort_api()
has now been markednodiscard
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 flexiblestd::vector
API.
Full Changelog
2.1.0
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 toonnx/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
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
andInputTensorSet
classes have been replaced withMemoryBackedTensorSet
, 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
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 ofcv::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 settingRAD_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
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.
- This feature includes the ability to request DML through
- 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
containscreate_environment
as well as a new function for initializing the API.onnx/common.hpp
contains theperform_safe_op
function.onnx/inference.hpp
containsperform_inference
.session.hpp
containscreate_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
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
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.