Skip to content

Releases: luxonis/depthai-core

Release v2.32.0

27 Jan 14:26
bd34eb5

Choose a tag to compare

Features

  • Add a device.getStatefunction, which returns the firmware state of the device in runtime
  • Add setProcessor function to select the processor for Sync and Demux nodes

Misc

  • Expand crashdump data in firmware with more context on what caused the crash

Release v2.31.1

23 Jan 12:53
1f36d9f

Choose a tag to compare

Bug fixes

  • Fix a hard to hit cache coherency bug in MessageGroup message
  • Remove fixed pattern noise for the OV9[2/7]82 sensor during bring scenes with low exposure times

Release v3.3.0

15 Jan 21:59

Choose a tag to compare

Features

  • Add Pipeline Debugging support
  • Add NeuralAssistedStereo node (classical stereo + neural depth fusion)
    • Uses VPP internally to fuse the classical stereo depth with neural depth
    • C++ examples here and Python examples here
  • Add VPP node and configuration API
    • C++ examples here and Python examples here
  • Expose XLinkBridges
    • For advanced use-cases, to configure the implicit XLink bridges created when crossing host-device boundary
    • C++ example here and Python example here
  • Add Housing calibration support in CalibrationHandler
  • [RVC4] Add SystemLogger node and expanded SystemInformation metrics
    • C++ example here and Python example here
  • [RVC4] Update StereoDepth presets on RVC4 with improved quality/fillrate trade-offs

Misc

  • Add binary services support to RemoteConnection and configurable callback thread count
  • Add resize mode to build method in NeuralNetwork, DetectionNetwork and SpatialDetectionNetwork nodes
  • 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 labelName support in keypoints/detections
  • Fix file corruption when recording long videos with H264 encoding with Record node
  • [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

28 Nov 13:50
465b6a1

Choose a tag to compare

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

27 Nov 07:33

Choose a tag to compare

Features

  • Extend DetectionParser and ImgDetections message with instance segmentation and keypoints parsing
    • Keypoints run on device for both RVC2 and RVC4
    • Instance segmentation runs on device for RVC4 and on host for RVC2
    • C++ examples here and Python examples here
  • Add support for the new Snaps&Events API:
    • Example for C++ here and for Python here
  • [RVC4] Add NeuralDepth node supporting the neural depth running on device
    • Supported on Luxonis OS 1.20.4 and newer
    • Four sizes supported
      • LARGE -> 768x480 @ 10.8 FPS
      • MEDIUM -> 576x360 @ 25.5 FPS
      • SMALL -> 480x300 @ 42.5 FPS
      • NANO -> 384x240 @ 59.7 FPS
    • Examples for C++ here and for Python here
  • [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 RemoteConnection to prioritize metadata over raw frames
  • Expose an embedded RPC on RemoteConnection called libraryVersion which returns the DepthAI version
  • Embedded visualizer is updated from 0.12.33 to 1.5.40
  • Stop extracting NeuralNetwork models to a temporary directory to reduce disk usage
  • [Python] Remove warnings on MacOS for duplicate symbols for CVSlider CVWindow when library is used alongside cv2
  • [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 the depthai-device process
  • [RVC2] Add bindings for setTransformation in 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

28 Nov 12:31
a99f241

Choose a tag to compare

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.Device constructor 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=0 is set

Misc

  • Add support to explicitly remove tracklets in ObjectTracker node
  • 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

24 Nov 17:31

Choose a tag to compare

Release v3.2.0-rc.0 Pre-release
Pre-release

Features

  • Extend DetectionParser and ImgDetections message with instance segmentation and keypoints parsing
    • Keypoints run on device for both RVC2 and RVC4
    • Instance segmentation runs on device for RVC4 and on host for RVC2
    • C++ example here and Python example here
    • Keypoints example for C++ here and for Python here
  • Add support for the new Snaps&Events API:
    • Example for C++ here and for Python here
  • [RVC4] Add NeuralDepth node supporting the neural depth running on device
    • Supported on Luxonis OS 1.20.4 and newer
    • Four sizes supported
      • LARGE -> 768x480 @ 10.8 FPS
      • MEDIUM -> 576x360 @ 25.5 FPS
      • SMALL -> 480x300 @ 42.5 FPS
      • NANO -> 384x240 @ 59.7 FPS
    • Examples for C++ here and for Python here
  • [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 RemoteConnection to prioritize metadata over raw frames
  • Expose an embedded RPC on RemoteConnection called libraryVersion which returns the DepthAI version
  • Embedded visualizer is updated from 0.12.33 to 1.5.40
  • Stop extracting NeuralNetwork models to a temporary directory to reduce disk usage
  • [Python] Remove warnings on MacOS for duplicate symbols for CVSlider CVWindow when library is used alongside cv2
  • [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 the depthai-device process
  • [RVC2] Add bindings for setTransformation in 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

20 Oct 19:05
89fd1e8

Choose a tag to compare

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 PointCloudData message

Bug fixes

  • Address MacOS weak vtables issues causing deadlocks in the new DynamicCalibration node
  • 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 NV12 type is requested
  • Use the correct ImgTransformations in 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_helper binary with better error handling
  • Reduce the number of symbols on Windows by performing more aggressive inlining
  • DynamicCalibration input control now has a shorter API to send commands to the node
  • Add intrinsics metadata to thermal frames
  • Update the examples using StereoDepth node with removing the explicit NV12 type request for better performance
  • Improve IMX678 support on RVC2 with better black level correction, improving brightness and color accuracy
  • [Python bindings] Add explicit numpy requirement to the Python wheels
  • [Python bindings] Add missing bindings to set the filter order on the StereoDepth node

Release v3.0.0

08 Sep 08:48

Choose a tag to compare

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

    • The ColorCamera and MonoCamera nodes have been replaced by a single, generic Camera node that works across all platforms.
    • It supports a variable number of outputs, where each can have an independent:
      • Type (NV12, RGB interleaved or planar, ...)
      • Size
      • FPS
    • Python and C++ examples.
  • ImageManip

    • The ImageManip node has been revised for more robust and predictable behavior (we now track the order of operations to make the output fully deterministic).
    • It now supports relative crops and can be used as a host-side node in addition to running on RVC2 and RVC4 devices.
    • Python and C++ examples.

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 -debug versions of the OS until this is resolved.

What's changed since v3.0.0-rc4

New features

  • DynamicCalibration node
    • Performs dynamic calibration on the camera to compensate for thermal and mechanical stress
    • Examples in Python and C++
  • Add support for a new revision of OAK-Thermal (R8)
  • Add host implementation to ImageAlign enabling higher FPS in pipelines that are partly running on host
  • Add a depthai-core-example project reference in README.md
  • Add ImgTransformations tracking to ObjectTracker

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

31 Jul 22:26
4adc1df

Choose a tag to compare

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