Skip to content

Releases: luxonis/depthai-core

Release v3.5.0

18 Mar 11:46
527ad9d

Choose a tag to compare

Features

  • Add AutoCalibration node which automatically performs dynamic calibration
    • It can be turned on implicitly by setting the environment variable as DEPTHAI_AUTOCALIBRATION=ON_START or CONTINUOUS
    • The other option is to use it explicitly; C++ example here, Python example here
  • Merge v2.32.0 along with improvements on RVC2 in crashdump collection and device state retrieval

Misc

  • Set tracked undistortion coefficients on legacy calibration to 0 when undistortion is turned on
  • Add eventManager.waitForPendingUploads() to avoid losing Snaps and Events that are waiting in the queue at script exit
  • Expand the stability test to include NeuralAssistedStereo, FeatureTracker and ObjectTracker

[RVC4] Luxonis OS compatibility

Integration tested on Luxonis OS 1.14.1, 1.20.5 and 1.27.1

Release v3.4.0

09 Mar 11:26
ba7a920

Choose a tag to compare

Features

  • Add support for semantic segmentation

  • Add support for ingesting instance segmentation in the SpatialLocationCalculator to improve 3D detections

  • Add support for spatializing keypoints into 3D

  • [RVC4] Add support for USB protocol
    * Requires LuxonisOS 1.27.1 or newer
    * It can be forced with DEPTHAI_PROTOCOL=usb in the environment

  • Add isp output to Camera node

  • Add Gate node

  • [RVC4] Add support for HFR (High frame rate) on IMX586:

  • Add support for XLink packetization

    • Optionally packetize messages sent through XLink and limit the bitrate per connection
    • Useful in advanced scenarios to allow streams with large messages to run in the background
    • Usage example
  • Visualizer updated to 2.0.10

    • Support for live pipeline visualization when DEPTHAI_PIPELINE_DEBUGGING=ON is set
    • Visualize keypoints when showing ImgDetections
    • Automatically remap detections and annotations to the target stream
  • Add a new CalibrationMetrics output to DynamicCalibration node

  • Add support for a callback for Snaps & Events to get notified when an event gets sent to Hub example

  • [RVC4] Add support for external FSync

  • [RVC2] Add support for setting custom sensor tuning per sensor

  • [RVC2] Add support for setting sensor orientation in the Camera node

Bug fixes

  • Fix ownership when dai::Pipeline is copy-assigned to another variable
  • Fix replay for StereoDepth for the case where ImgTransformations aren't set

Misc

  • Deprecate creating nodes without pipeline.create
  • Make basalt a private dependency instead of public
  • ImageAlign:
    • Warn if a distorted image is sent to ImageAlign's alignTo
    • Use ImgTransformations to get intrinsics and distortion coefficients instead of relying on heuristics and global calibration
  • [RVC4] Add support for RVC4 devices to DeviceManager
  • [RVC2] Add new fields to ImgDetections inside Script node bindings

[RVC4] Luxonis OS compatibility

Integration tested on Luxonis OS 1.14.1, 1.20.5 and 1.27.1

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