Releases: luxonis/depthai-core
Release v2.32.0
Features
- Add a
device.getStatefunction, which returns the firmware state of the device in runtime - Add
setProcessorfunction to select the processor forSyncandDemuxnodes
Misc
- Expand crashdump data in firmware with more context on what caused the crash
Release v2.31.1
Bug fixes
- Fix a hard to hit cache coherency bug in
MessageGroupmessage - Remove fixed pattern noise for the OV9[2/7]82 sensor during bring scenes with low exposure times
Release v3.3.0
Features
- Add Pipeline Debugging support
- More details can be found in the README
- The pipeline graph can be visualized with depthai_pipeline_graph
- C++ examples here and Python examples here
- Add NeuralAssistedStereo node (classical stereo + neural depth fusion)
- Add VPP node and configuration API
- Expose XLinkBridges
- Add Housing calibration support in
CalibrationHandler - [RVC4] Add SystemLogger node and expanded SystemInformation metrics
- [RVC4] Update
StereoDepthpresets on RVC4 with improved quality/fillrate trade-offs
Misc
- Add binary services support to
RemoteConnectionand configurable callback thread count - Add resize mode to build method in
NeuralNetwork,DetectionNetworkandSpatialDetectionNetworknodes - Add support for more frame types in
ImgFrame.setCvFrame() - [RVC4] Add support for manual white-balance
- [RVC4] Turn off dot projectors on pipeline stop
- [RVC4] Add temporal filter to NeuralDepth node
Bug fixes and stability
- Fix SSD parser regression and add
labelNamesupport in keypoints/detections - Fix file corruption when recording long videos with H264 encoding with
Recordnode - [RVC4] Turn off Nagle's algorithm to avoid latency spikes on Windows
- [RVC4] Fix a race condition in StereoDepth node changing the left and right input frames
- [RVC4] Fix camera mapping for custom RVC4 boards
- [RVC2] Fix an edge case for MessageGroup's cache coherency
- [RVC2] Remove false alarm warning in SpatialDetectionNetwork when input image was rotated
[RVC4] Luxonis OS compatibility
Integration tested on Luxonis OS 1.14.1, 1.18.3 and 1.23.1
Release v3.2.1
Bug fixes
- [RVC4] Fix a regression for IMX586 only working with the 4000x3000 sensor config at 30 FPS
On the LuxonisOS 1.20.5 and newer, up to 240 FPS is now supported
Release v3.2.0
Features
- Extend
DetectionParserandImgDetectionsmessage with instance segmentation and keypoints parsing - Add support for the new Snaps&Events API:
- [RVC4] Add NeuralDepth node supporting the neural depth running on device
- [RVC4] Switch the front LED to green when DepthAI is running
- [RVC2] Add tuning for the IMX577 sensor, removing the previously present blue tint
Bug fixes and stability
- Fix an edge case for IPv4LL discovery on MacOS luxonis/XLink#100
- [RVC4] Fix a small memory leak on RVC4 happening in Camera node and in StereoDepth when extended mode is enabled
- [RVC2] Fix a rare issue of IMU preventing a device reboot
- [RVC2] Patch ToF calibration that caused a minor bump in readout values in the middle of the frame
Misc
- Add HDR examples for C++ here and Python here
- Add priority implementation to
RemoteConnectionto prioritize metadata over raw frames - Expose an embedded RPC on
RemoteConnectioncalledlibraryVersionwhich returns the DepthAI version - Embedded visualizer is updated from
0.12.33to1.5.40 - Stop extracting NeuralNetwork models to a temporary directory to reduce disk usage
- [Python] Remove warnings on MacOS for duplicate symbols for
CVSliderCVWindowwhen library is used alongsidecv2 - [Python] Add support for Python3.14 and drop Python3.8
- [RVC4] Add support for flashing and reading housing calibration
- [RVC4] Refactored Camera stack with improved stability for startup and restarts
- Improves stability for multi-day runs
- Solves a rare case of camera getting stuck and unable to stream which required a device reboot
- [RVC4] Handle the timestamp change that will be present in LuxonisOS 1.21.0
- [RVC4] Add a
device.getProcessMemoryUsage()returning memory usage of just thedepthai-deviceprocess - [RVC2] Add bindings for
setTransformationin Python bindings for Script node - [RVC2] Allow DynamicCalibration to run on devices with older calibration with un-distortion disabled
- [RVC2] Autodetermine pool sizes to allow high resolution frames on IMX582 to run without explicit changes
- [RVC2] Improved handling of HDR for IMX582
- Limit the FPS to 10
[RVC4] Luxonis OS compatibility
Integration tested on Luxonis OS 1.14.1, 1.18.3 and 1.20.5
Release v2.31.0
Features
- Add tuning for the IMX577 sensor, removing the previously present blue tint
- Improve IMX678 support on RVC2 with better black level correction, improving brightness and color accuracy
New devices support
- Add support for a new revision of OAK-Thermal (R8)
- Add support for OAK-ToF (R4)
- Add support for a new revision of OAK-D-S2-[Pro]-Wide OV9728 variant (R8)
Bug fixes and stability
- Fix a rare issue of IMU preventing a device reboot
- Fix a timestamp overflow bug on the BNO08x IMU
- Fix an edge case where
dai.Deviceconstructor could get stuck indefinitely if the device lost connection at the wrong time by adding a timeout internally - Turn on the watchdog early during discovery of RVC2 USB devices to avoid soft bricking the device along with handling the case where the device gets into that state to recover it on the next boot
- Fully disable crashdump extraction when
DEPTHAI_CRASHDUMP=0is set
Misc
- Add support to explicitly remove tracklets in
ObjectTrackernode - Remove limitation for the maximum watchdog frequency from 4.5 seconds to unlimited ("infinity") by adding a software watchdog in firmware
Release v3.2.0-rc.0
Features
- Extend
DetectionParserandImgDetectionsmessage with instance segmentation and keypoints parsing - Add support for the new Snaps&Events API:
- [RVC4] Add NeuralDepth node supporting the neural depth running on device
- [RVC4] Switch the front LED to green when DepthAI is running
- [RVC2] Add tuning for the IMX577 sensor, removing the previously present blue tint
Bug fixes and stability
- Fix an edge case for IPv4LL discovery on MacOS luxonis/XLink#100
- [RVC4] Fix a small memory leak on RVC4 happening in Camera node and in StereoDepth when extended mode is enabled
- [RVC2] Fix a rare issue of IMU preventing a device reboot
- [RVC2] Patch ToF calibration that caused a minor bump in readout values in the middle of the frame
Misc
- Add HDR examples for C++ here and Python here
- Add priority implementation to
RemoteConnectionto prioritize metadata over raw frames - Expose an embedded RPC on
RemoteConnectioncalledlibraryVersionwhich returns the DepthAI version - Embedded visualizer is updated from
0.12.33to1.5.40 - Stop extracting NeuralNetwork models to a temporary directory to reduce disk usage
- [Python] Remove warnings on MacOS for duplicate symbols for
CVSliderCVWindowwhen library is used alongsidecv2 - [Python] Add support for Python3.14 and drop Python3.8
- [RVC4] Add support for flashing and reading housing calibration
- [RVC4] Refactored Camera stack with improved stability for startup and restarts
- Improves stability for multi-day runs
- Solves a rare case of camera getting stuck and unable to stream which required a device reboot
- [RVC4] Handle the timestamp change that will be present in LuxonisOS 1.21.0
- [RVC4] Add a
device.getProcessMemoryUsage()returning memory usage of just thedepthai-deviceprocess - [RVC2] Add bindings for
setTransformationin Python bindings for Script node - [RVC2] Allow DynamicCalibration to run on devices with older calibration with un-distortion disabled
- [RVC2] Autodetermine pool sizes in case to allow high resolution frames on IMX582 to run without explicit changes
- [RVC2] Improved handling of HDR for IMX582
- Limit the FPS to 10
Release v3.1.0
Features
- Automatically select the number of pools in Camera node
- Improves the performance at high resolutions for OAK1-Max
- Implement the maximum exposure cap in AE on RVC4
- Requires Luxonis OS v1.19.1
- Add setters to
PointCloudDatamessage
Bug fixes
- Address MacOS weak vtables issues causing deadlocks in the new
DynamicCalibrationnode - Turn on the watchdog early during discovery of RVC2 USB devices to avoid soft bricking the device along with handling the case where the device gets into that state to recover it on the next boot
- Fix the usage of RVC2 devices inside Linux containers because of missing udev support
- Fix undistortion on RVC4 for the chroma plane when
NV12type is requested - Use the correct
ImgTransformationsin SpatialDetectionNetwork on RVC4 in case depth was not aligned to RGB - Stability fixes for rare case with IMU halting the destruction on RVC2
- Fix a timestamp overflow bug on the BNO08x IMU on RVC2
Misc
- Update
zoo_helperbinary with better error handling - Reduce the number of symbols on Windows by performing more aggressive inlining
DynamicCalibrationinput control now has a shorter API to send commands to the node- Add intrinsics metadata to thermal frames
- Update the examples using
StereoDepthnode with removing the explicitNV12type request for better performance - Improve IMX678 support on RVC2 with better black level correction, improving brightness and color accuracy
- [Python bindings] Add explicit
numpyrequirement to the Python wheels - [Python bindings] Add missing bindings to set the filter order on the
StereoDepthnode
Release v3.0.0
DepthAI v3.0.0 release is out 🎉
We’re proud to announce a new major revision of the DepthAI library is now out of the release candidate stage and is fully released as v3.0.0!
Simplified API
We've simplified and unified the API to lower the barrier to entry and make development more intuitive. Core tasks like setting up camera streams, running neural networks, and building spatial pipelines are now streamlined with fewer lines of code.
We have removed many deprecated functions and simplified node constructors, creating a cleaner, more consistent, and easier-to-use library for newcomers as well as more experienced users.
Refreshed nodes
We've revisited some of the most fundamental nodes to make them more powerful and flexible.
-
Camera
-
ImageManip
New nodes
DepthAI v3 introduces new high-level nodes to simplify working with high level concepts (RGBD pointclouds, SLAM) as well as a node to perform dynamic calibration of stereo cameras.
- RGBD: This node makes it easy to work with synchronized and aligned color and depth data. It features an "autocreate" mode that automatically constructs the required input pipeline, delivering a ready-to-use RGBD message or a colored point cloud.
- VSLAM: We've added SLAM and VIO as host nodes, enabling advanced spatial AI applications. These are currently available on Linux and macOS and are in early preview.
- DynamicCalibration: This node performs dynamic calibration of stereo cameras, allowing you to achieve accurate depth perception even under high thermal and mechanical stress applied to the device.
Support for host nodes
DepthAI v3 now supports custom host nodes, allowing you to run parts of your pipeline on the host with custom logic while keeping the rest on-device. Whether you need to run complex post-processing in Python or integrate with external libraries, it’s all part of the same unified pipeline. See the Python and C++ examples.
Visualizer
Debugging and development just got easier with our new integrated visualizer. You can now visualize camera streams, neural network outputs, and detection overlays in real-time. The visualizer is also able to display the pipeline graph, making it a great tool for understanding and debugging your application's data flow.
See the Python and C++ examples.
A lot of nice to have features:
- Auto reconnect: If a device has a flaky connection and crashes, the library will now automatically try to reconnect instead of exiting, making your applications more resilient.
- Unified Coordinate System: We’ve standardized all coordinate systems. Camera, IMU, and spatial data now use the RDF (Right-Down-Forward) convention, eliminating inconsistencies when fusing data from multiple sensors.
- Native Model Zoo Support: Take advantage of the new Luxonis Model Zoo, which integrates natively into v3. Loading and deploying models is now seamless, with no boilerplate required.
- Remapping points between different frames: We've greatly improved the developer experience where detections from one image in the pipeline (on the input of the NN for example) need to be remapped to another image in the pipeline, that's still in full resolution by internally tracking all of the image operations that are applied to streams. See Python and C++ examples.
Support for RVC4 devices
DepthAI v3 brings support for both RVC2 and RVC4 devices, with a unified codebase that runs on both platforms. This allows you to prototype on one and deploy on another without code changes in most cases.
Migration from v2.x version of the library
We've prepared a porting guide to speed up the migration here.
Known issues
- On release flavors of the Luxonis OS on RVC4, the camera stack can get stuck in a bad state where cameras do not restart streaming, requiring a device reboot. It is recommended to use
-debugversions of the OS until this is resolved.
What's changed since v3.0.0-rc4
New features
- DynamicCalibration node
- Add support for a new revision of OAK-Thermal (R8)
- Add host implementation to
ImageAlignenabling higher FPS in pipelines that are partly running on host - Add a depthai-core-example project reference in README.md
- Add
ImgTransformationstracking toObjectTracker
Bug fixes and stability improvements
- Fix a crash on RVC2 when a device is partially calibrated
- Fix pink streams on small resolutions on OAK-D[-Pro]-Wides with the OV9728 sensor
- Fix a regression for replay that caused the first set of frames to be invalid
- Fix the rotation of the IMU rotation vector on RVC2
- Fix RVC4 Camera not being able to stream without calibration
- Fix a rare startup bug for ImageAlign on RVC4 where DSP failed to load the required module
- Fix an edge case in ImageManip node on RVC4 failing to resize to desired resolution(s)
Misc
- Add a way to set sensor type (color/mono) on the Camera node on RVC4 with
.setSensorType()- Allows quick switching and testing for OV9[2/7]82 sensors
- Improve ToF decoding performance on RVC2 to allow 30 FPS decoding
- Add ImgTransformations tracking in case of no calibration for a single source stream
- Add tests for
CalibrationHandler - Move the Python utilities to the root of the repository
- Add a test tag for the OAK4-S and make a test run for the OAK4-S on CI
- Combine the Python wheels (all python versions per architecture combined in one wheel) for a smaller size footprint on PyPi
- Improve the responsiveness of Python bindings to interrupts
- Improve the performance of the ToF node and examples; they now run at 30 FPS
Release v3.0.0-rc.4
Features
- Added ObjectTracker node on RVC4 which can also run as a host node.
- Based on OC-Sort algorithm
- Improved performance compared to the RVC2 implementation
- Examples
- Added support for runtime calibration changes on RVC4
- Support for undistorted outputs in Camera node on RVC4
- Added ToF Filtering
- Greatly reduces noise and improves quality
- Filtering is enabled by default on the ToF node
- The filters currently run on the host
- The filtering can also be used independently with the new ImageFilters node
- Example
Bug fixes
- Fixed an issue where using OV9728 at resolutions smaller than 640x400 forced a mono-only sensor config on RVC2
- Stabilized internal camera clock and monotonic clock syncing
- Fixed the Camera->IMU extrinsics setting in BasaltVIO node
- Fixed an edge case where dai.Device constructor could get stuck indefinitely if the device lost connection at the wrong time by adding a timeout internally
Misc
- Removed the deprecated imageIn input on DetectionParser which has been replaced by using ImgTransformations
- Skipped file locking for Zoo model downloads when filesystem is read-only
- getCalibration always returns the current active calibration, even when not set by setCalibration
- Changed the RGBD autocreate logic to use ToF depth on OAK-ToF instead of stereo.
- Added ToF RGB align example
- Added a convenience getNNArchive getter to NeuralNetwork node
RVC4 OS comaptibility
- Integration tested on Luxonis OS 1.6.0-debug, 1.14.1-debug and 1.15.0-debug
Known issues / caveats:
- On release flavors of the OS on RVC4, the camera stack can get stuck in a bad state, where cameras don't start streaming again and a reboot is needed
- It is recommended to use -debug versions of the OS, until this is resolved