Repository navigation
Features
-
Multi-stream PointCloud
PointCloudnow merges any number of depth streams (each with optional aligned color) into onePointCloudData. Add streams withgetDepthInput(name)andgetColorInput(name)setTargetCoordinateSystem(deviceId, ...)puts the point cloud in the coordinate system of a camera or the housing of any device in the pipeline- [RVC4]
useGPU()moves the deprojection to the GPU to reduce the CPU load. The CPU stays the default, because it is faster - A Python example and a C++ example are available
-
[Beta promotion] Stitching node
- Now available as
dai.node.Stitching, also in builds without beta features - Calibrated panorama stitching is now the default and needs undistorted inputs. Use
setUseInputCalibration(false)for feature-based stitching dai.beta.node.Stitchingis deprecated and will be removed in a future release- Multi-device panorama examples are available in Python and C++
- Now available as
-
[Beta promotion] ImgDetectionsFilter node
- Now available as
dai.node.ImgDetectionsFilter. Filters detections by label, confidence, size, region of interest and count, also at runtime throughinputConfig - Merges detections from multiple cameras into one reference image (for example a stitched panorama) and removes duplicates with
NMSorAVERAGE - Runs on RVC4 with one input. With multiple inputs, and on RVC2, it runs on the host
- The interface changed (
inputs[name]andoutreplaceinputandoutput).dai.beta.node.ImgDetectionsFilteris deprecated and will be removed in a future release - A single-camera example and a multi-device panorama example in Python and C++ are available
- Now available as
-
Resize mode from NN archives
NeuralNetwork,DetectionNetworkandSpatialDetectionNetworkbuilt from a camera now use theresize_mode(CROP,STRETCHorLETTERBOX) declared in the NN archive. Archives without it useCROP, as before- Override it with the
resizeModeargument ofbuild
-
[RVC2] Multi-device calibration (
pipeline.setMultiDeviceCalibration) is now supported on RVC2 devices -
Align.setInterpolation(...)selects the interpolation (BICUBIC,BILINEARorNEAREST_NEIGHBOR).AUTOkeeps the previous behavior -
New
dai.node.Depth.getSupportedAlgorithms(device)andgetDefaultAlgorithm(device)return the depth algorithms that a device supports and the one thatAUTOselects -
New
Device.getProtocol()returns the connection protocol (USB or TCP/IP) -
[RVC4]
setAutoFocusTrigger()now runs one focus scan and then holds the focus. The AF mode is reset for each session -
[RVC2] New
Device.Config.dangerousIrPowerOverrideoption removes the combined dot and flood power limit on boards that have one. Full power on both emitters can crash the device
Bug fixes
- Alignment
- ImageAlign and Align now keep the depth near the image edges for rotated and distorted cameras
- [RVC4] Align now uses correct offsets for rotated cameras and keeps the configured output size
- ImageAlign no longer crashes when the
inputAlignToframe has no distortion coefficients ImgDetections.transformTo()no longer distorts boxes at some rotations when mapping to a non-square image- [RVC2] StereoDepth depth alignment is now correct after decimation (for example on OAK-D-SR)
- [RVC4] Stability
- Resolved a firmware crash when a device is opened right after the previous session closes (USB, OS >= 1.41.0)
- Resolved crashes on USB session close, at StereoDepth stop, at VideoEncoder stop with MJPEG decoder input, and in the logger at shutdown
- Resolved crashes in ImageManip crops with fractional dimensions and in FeatureTracker with an invalid input
- Fix for GPU memory corruption
- ImageManip no longer adds a black border around a cropped rotated rectangle
- crash dump retrieval retries when the dump is not ready yet
- [RVC2] Stability
- On OAK-D Pro PoE, the dot projector and the flood light now share one intensity budget of 1.0 (for example 50% dot + 50% flood). Before, both emitters at full intensity could draw too much power and crash the device
- Resolved a rare firmware crash in the PoE network stack under heavy TCP traffic
- Resolved warp timeouts and all-zero output frames caused by the hardware filter interrupt handling
- Camera-module EEPROM access no longer resets the other sensor on a shared I2C bus (for example OAK-FFC-3P)
- RVC2 crash dumps are now saved when device strings are not valid UTF-8
- [RVC4 OS >= 1.47.0] depthai-gate v0.0.30
- Resolved issue where firmware would crash because gate would accept new session before the old process had exited
- USB transfers now have a time limit, and the gate recovers after a failed transfer, so the USB connection no longer stalls
- A session that starts late is no longer reported as a crash when the device closes
- When the firmware cannot start, the host now gets an error instead of no response
- Old crash dumps are deleted when a new session starts
- ObjectTracker
srcImgDetectionnow keeps the original normalized coordinates - NeuralAssistedStereo with
rectifyImages=falseno longer rectifies the frames pipeline.start()now throws an exception instead of aborting the process when the device link drops during the asset transfer- [PoE/TCP] The host now closes the socket after a connection reset, so many reconnects no longer cause "Too many open files"
- Resolved possible memory corruption in XLink after a read timeout
- A USB boot with an incomplete firmware upload now fails at once instead of waiting for the boot timeout
Device.performHealthCheck()now stops on Ctrl+C and accepts ashouldStopcallback- Holistic record requires the video encoding settings only when video encoding is enabled
Performance
- [RVC4 OS >= 1.46.0] NeuralDepth uses new optimized LENS models. Model FPS with the balanced performance profile:
- N 384x240: 120.42 → 251.17 FPS (+109%)
- S 480x300: 73.91 → 153.78 FPS (+108%)
- M 576x360: 48.21 → 120.73 FPS (+150%)
- L 768x480: 26.72 → 68.31 FPS (+156%)
- XL 864x540: 22.00 → 52.06 FPS (+137%)
- 2XL 960x600: 17.21 → 42.97 FPS (+150%)
- 3XL 1056x660: 14.90 → 33.99 FPS (+128%)
- 4XL 1248x780: 9.85 → 23.56 FPS (+139%)
- XLink now reads up to 8 MiB messages per transfer resulting in up to 12% higher USB throughput for large messages on RVC4
- [RVC4] Undistorted Camera outputs now use the GPU and are 3 to 4 times faster. Plain resizes are up to 4.8 times faster for large frames
Misc
-
[RVC4] The OS power profile is logged on connection, and a warning is shown when the power profile limits the IR intensity
-
Startup notifications
- After a device connects, DepthAI shows notices that apply to your DepthAI version, platform or device, for example a new release or a bootloader update
- Set
DEPTHAI_DISABLE_STARTUP_NOTIFICATIONS=1to turn them off
-
[RVC4] Added support for
readCcmEepromRaw()andwriteCcmEepromRaw() -
NN archive loading and model zoo downloads in Python release the GIL, so other threads no longer stall while a large model loads
-
Added missing Python bindings and fixed incorrect ones
-
Added Python 3.15 wheels
[RVC4] Luxonis OS compatibility
Integration tested with Luxonis OS 1.35.0, 1.41.0, 1.45.0 and 1.46.0