Releases: stereolabs/zed-sdk
ZED SDK 5.1.2
https://www.stereolabs.com/en-fr/developers/release#512-2b6224afd2d4
5.1.2
SDK
- Fixed corrupted frame detection, which could lock upon closing the camera if only
Camera::readwas used and notCamera::grab. - Fixed Virtual Stereo opening from ZED Ones when the right ZED One has the cameraID 0.
- Fixed an issue preventing the proper load of a saved
sl::InputTypefor a virtual stereo configuration. - Added support for uncalibrated mode in CameraOne for ZED Ones. This is enabled with the environment variable
export ZED_SDK_ALLOW_UNCALIBRATED_MODE=1. Like Camera, this allows retrieving unrectified images, streaming, or recording when the calibration file is invalid or cannot be found. - Fixed
CAMERA_MOTION_SENSORS_NOT_DETECTEDwhen opening a CameraOne when forcing the disablement of the IMU (with the environment variableZED_SDK_IMU_DISABLE=1). - Reduced the CPU memory usage by the self-calibration process during the call to
sl::Camera::open(). This usage is now limited to a temporary pool of 40MB. - Added beta support of H264 software (CPU) encoding for Orin Nano for SVO recording / local streaming.
Tools
- Added support for Drag & Drop of a saved
sl::InputTypein ZED Depth Viewer; it is now easier to open a stream or virtual stereo setup.
SLAM
- Fixed repeatability issues of GEN_3 SLAM module. This ensures greater consistency and reliability in module performance across all operational scenarios.
- Added missing support of landmark2D for
POSITIONAL_TRACKING::GEN_1. - Fixed an issue of
POSITIONAL_TRACKING::GEN_3producing incorrect gravity alignment when the first metadata of an SVO was corrupted.
Object Detection
- Fixed a random crash occurring when using Custom Object Detection and repeatedly setting custom parameters for multiple hours.
- Fixed a random crash when tracking objects whose estimators failed to initialize; tracks now bail out safely when measurements disappear mid-frame.
- Improved Object Detection velocity accuracy.
- Fixed segmentation mask output when using
CUSTOM_YOLOLIKE_BOX_OBJECTSwithenable_segmentation = true. - Fixed
CUSTOM_YOLOLIKE_BOX_OBJECTpost-processing when using YOLOv10 models. Previously, only a small subset of the detected objects was returned.
ZED SDK 5.1.1
https://www.stereolabs.com/en-fr/developers/release/5.1#511-2b6224afd2d4
5.1.1
Bug Fixes
SDK
- Fixed an issue preventing setting a specific value for
sl::InitParameters::depth_minimum_distancein all Neural depth modes.
SLAM
- Improved overall stability of
POSITIONAL_TRACKING::GEN_3. This update resolves random race conditions. - Fixed a GPU stream synchronization issue that occurred when using
POSITIONAL_TRACKING::GEN_3withDEPTH_MODE::NONE. This race condition resulted in inconsistent computation. - Improved runtime performance of
getPositionalTrackingLandmarksandgetPositionalTrackingLandmarks2Dmethods. Performance gains are especially visible in large mapped areas.
Tools
- Fixed a camera opening issue when using multiple instances of ZED Explorer simultaneously.
Fusion
- Added missing documentation for the
FUSION_REFERENCE_FRAMEenum.
Wrappers
Python
- Added missing
override_gravityfield inFusionConfiguration.
Samples
- Improved error handling in samples to use comparison operators (
<,>,<=,>=) instead of equality checks (==,!=) when testingERROR_CODE::SUCCESSfor camera opening and frame grabbing. This follows best practices for distinguishing between warnings (negative values) and errors (positive values).
ZED SDK 5.1.0
https://www.stereolabs.com/en-fr/developers/release/5.1#510-8a756bc18083fc9b21b949fb5fa8ffbb
5.1.0
SDK
DEPTH
- Improved depth for close range, the new ZED SDK now provides depth values even at very short range.
CAPTURE
- Enhanced GMSL camera acquisition, resulting in improved overall stability and fewer frame drops.
- Introduced Live Virtual Stereo from 2 ZED X One cameras directly via the API. It uses the Camera class and new functions sl::InputType::setVirtualStereoFromCameraIDs or sl::InputType::setVirtualStereoFromSerialNumbers. It shows significant performance optimization: CPU usage decreased by 60%, making this version 2.5x more CPU efficient than ZED_MediaServer, even in IPC mode. Refer to the sample virtual stereo/cpp for an example on how to use it
- Introduced an uncalibrated mode for Virtual Stereo. This enables viewing unrectified images, recording to SVO, or streaming for future calibration or troubleshooting purposes. Note: depth sensing, positional tracking, and other modules are not available in this mode.
- Improved self-calibration in the near-range scenario. Improved robustness to more challenging conditions, and self-diagnostic. Added a new warning sl::ERROR_CODE::POTENTIAL_CALIBRATION_ISSUE returned by the sl::Camera::open function, if camera calibration is poor and may require a recalibration. To verify this, open ZED_DepthViewer and perform a visual check on the scene (is the depth image full, are planes flat, are objects' shapes correct, …).
- Added OpenCV fisheye calibration support for Camera and CameraOne.
- Added support for Windows for CameraOne API. It is now possible to stream or read SVOs from ZED X Ones on Windows.
- Added a new function getSensorsDataBatch() to retrieve all high-frequency sensor data associated with the latest grabbed frame.
- Added new sl::VIEW to handle more color conventions. Added additional 3-channel (BGR) and GRAY color modes. DEPTH and CONFIDENCE views are now retrieved in color.
- Fixed hue control for USB cameras
- Improved VIDEO_SETTINGS reset calls. Now all the settings can be reset with the base function sl::Camera::setCameraSettings(setting, sl::VIDEO_SETTINGS_VALUE_AUTO), for sl::Camera and sl::CameraOne (in live and streaming mode).
- Removed the default parameter camera_type from sl::InputType::setFromCameraID and bus_type from sl::InputType::setFromSerialNumber. Also removed the enum CAMERA_TYPE. Now, objects Camera and CameraOne handle the camera and bus types automatically.
- Fixed an inconsistency in frame rate selection with GMSL Cameras when the requested frame rate was not supported.
- Set default sdk_verbose of InitParametersOne to 1 to match InitParameters.
- Fixed rectified field of view for some sl::CameraOne. On some camera the rectified field of view was much lower than expected. To revert to the previous rectification, set the environment variable: ZED_SDK_OLD_FOV_COMPUTE=1
- Resolved an issue that could prevent GMSL cameras from detecting and reporting faulty sensors.
- Added DRIVER_FAILURE in the enum sl::ERROR_CODE. This error code can be returned when the driver's initialization has failed. When using gmsl cameras, it is then recommended to restart it with sudo systemctl restart zed_x_daemon.service
OBJECT DETECTION
- Fixed a random crash when using Custom Objection Detection for multiple hours.
- Fixed an issue where object or skeleton velocity could become NaN when camera motion was computed with a null time delta.
RECORDING
- Reduced system load and enhanced stability for SVO2 recording
- Fixed a bug where ZED X One recording and reading using SVO gen1 was allowed but unsupported.
- Restored the ability to play back and re-record and SVO with new recording settings.
- Added exposure and gain values in ZED X SVO metadata. Other cameras will be done in a later release.
- Fixed IMU calibration handling in some SVOs where the IMU calibration was not extracted properly
STREAMING
- Switched default streaming mode back to GEN2 with high-frequency IMU data. Users can still use the lighter streaming version GEN1 by setting the environment variable ZED_SDK_STREAM_VERSION=1. Important: The Receiver must match or exceed the sender's version for compatibility.
- Added AUTO_ANALOG_GAIN_RANGE, AUTO_DIGITAL_GAIN_RANGE, and AUTO_EXPOSURE_TIME_RANGE camera control values in streaming.
- Reduced streaming latency by 21–38 % across modes on Jetsons.
SLAM
- Improved robustness to dynamic objects and image corruptions of positional tracking GEN3, resulting in more accurate and reliable positional tracking performance.
- Added a 2D tracking Mode to GEN3, improving accuracy in flat floor environments: enabled by the PositionalTrackingParameters::enable_2d_ground_mode setting. This mode constrains positional tracking to two dimensions, recommended for grounded robots and vehicles.
- Improved relocalization performance of GEN3 in known environments. Increases relocalization accuracy and frequency, reducing localization drift.
- Added a new SPATIAL_MEMORY status in GEN3 to indicate whether tracking is active and relocated in a pre-mapped environment, performing loop closure, or relocating.
- Fixed the first call to getPosition(), which now returns sl::POSITIONAL_TRACKING::OK instead of previously returning sl::POSITIONAL_TRACKING::UNAVAILABLE.
- Fixed invalid retrieved landmarks with null position.
FUSION
- Added support for object detection streaming from sl::Camera to sl::Fusion in the network configuration.
- Improved incoming data association in the Fusion API when using a local network configuration.
INSTALLER
- Improved installers' size on Linux Desktop with TensorRT 10 - about 40% smaller
- Added beta support for JetPack 7 / Jetson Thor. Video decoding and encoding are not yet available because of the current JetPack 7 release limitation and will be in a later update.
- Added support for C++17; the ZED SDK now uses C++17 and requires a compatible compiler. Fixed external support for C++20.
- Added support for CUDA 13 compatibility
- Added explicit ZED SDK versioning for Docker images and ZED SDK download link; each patch will now be available.
- Dropped support for the older Jetpack L4T35.3
Wrappers
PYTHON
- Improved Python Wrapper GPU data transfer using CuPy. sl.Mat.get_data() now supports explicit error and clearer warnings. Added instructions to set up and validate CuPy integration with PyZed
- Added support for Python 3.14
- Fixed setters of sl.FusionConfiguration in the Python wrapper.
- Fixed Python wrapper's gnss_mode interpreted as a GNSS_STATUS in both GNSSData and FusedPositionalTrackingStatus
- Added docstring in Python stubs so that users can see the methods, classes, and attributes docs in-code.
- Added missing Fusion SpatialMapping methods in the Python wrapper.
ISAAC SIM
- Added ZED X One (GS and 4K) camera support
- Added Virtual ZED X camera support
TOOLS
ZED Studio
- Introduced a new tool for viewing and managing multiple cameras, streams, and SVOs in one app. It supports customizable layouts with drag-and-drop panels, synchronized playback and recording, and group control of settings. The tool enables multi-camera streaming, simplifies data collection, and supports command-line options to auto-load sources at launch. On Windows, it is now the default application for opening SVO files.
ZED Sensor Viewer
- Enabled SVO playback and seeking in the ZEDSensorViewer tool. Also added a toggleable camera view to the UI to view the camera feed along with sensor data for both Live mode and SVO mode.
ZED Diagnostic
- Improved GMSL diagnostic in ZED_Diagnostic for detecting potential driver mismatches, issues with capture card power/connection, and GMSL cable status.
ZED Media Server
- The ZED Media Server tool is now considered deprecated, the new more efficient Virtual Stereo API should be used instead.
- Fixed adaptive GOP size depending on the FPS of the cameras.
ZED Calibration
- Fixed the CLI argument --cimud of the ZEDCalibration tool to now handle all GMSL cameras.
SAMPLES
- Added hello_zed_gpu.py script in tutorials/tutorial1 - hello ZED/python to validate the usage of CuPy with the ZED SDK Python API.
- Improved Python sample performances using GPU data transfer with CuPy in the GLViewer for depth sensing and object detection samples instead of CPU copy.
- Improved Python object detection samples; legacy is removed. Added a new pytorch_yolov8_cupy_preproc, a YOLOv8 inference CuPy optimized sample. Also updated default weights to yolo11m.pt (previously it was yolov8m.pt)
- Improved Positional Tracking Sample by enhancing the display for clearer visualization of tracking data, and adding functionality to save and read .area files, allowing for easier management of mapped environments. Also introduced the use of SPATIAL_MEMORY for better tracking of feedback.
- Refactored the global localization GNSS reader. Now the same class can be used to read GNSS data from a live device or from a recorded SVO file.
- Added the sample virtual stereo/cpp for an example on how to use the new VirtualStereo API from two ZED X One cameras.
ZED SDK 5.0.7
https://www.stereolabs.com/en-fr/developers/release/5.0#507-b1c25d6cde63b9ff6afa80f4e2d1fc33
5.0.7
Bug Fixes
- Fixed a
std::future_errorthat could randomly occur with different frequencies on various setups when the health_check feature is enabled. - Fixed a crash that could happen when reading SVO2 files, particularly at end of file.
Wrappers
- Fixed a
TypeErrorwhen callingget_camera_informationfrom a ZEDOne with the Python API.
Tools
- Depth Viewer now allows drawing a Region of Interest (ROI) on the image. This feature is accessible from the settings panel. The mask is saved and can be loaded later by the ZED SDK.
ZED SDK 5.0.6
https://www.stereolabs.com/en-fr/developers/release/5.0#506-b1c25d6cde63b9ff6afa80f4e2d1fc33
5.0.6
Bug Fixes
- Fixed a crash that occurred with USB cameras when unplugging and re-plugging a ZED, or when calling sl::Camera::reboot in a running application.
- Fixed an issue where sl::GeoPose returned empty pose_data.
- Fixed an issue where sl::Pose::valid from sl::Fusion::getPosition always returned true.
- Improved image sharpening, which previously caused reduced image quality compared to ZED SDK 4.
- Fixed SVO recording from streaming or from the ZED Media Server in Gen2, where high-frequency IMU data were missing.
Wrappers
- Updated struct SL_GNSSData in the C wrapper.
- Added the missing enable_hdr parameter in sl.InitParametersOne in the ZED Python API.
Tools
- Fixed IMU biais calibration in ZED_Calibration (--cimu command line option)
ZED SDK 5.0.5
https://www.stereolabs.com/en-fr/developers/release/5.0#505-b1c25d6cde63b9ff6afa80f4e2d1fc33
5.0.5
Bug Fixes
- Fixed a regression in simultaneous GMSL camera listing in multiprocess setups. The ZED X camera can now be concurrently listed and opened in different processes without issues.
- Fixed an issue when parsing calibration file for ZED X One in QHPlus resolution.
- Fixed a segfault that could occur when restarting the positional tracking module while having the grab running in parallel.
- Fixed a bug in SVO recording where the camera model could be incorrectly set in the internal metadata.
Wrappers
- Added the operators
<,<=,>and>=for all enums of the ZED Python API (pyzed). Previously, only==and!=were available.
ZED SDK 5.0.4
https://www.stereolabs.com/developers/release#504-b1c25d6cde63b9ff6afa80f4e2d1fc33
5.0.4
SDK
- Fixed the Positional tracking GEN_3 area map behavior to match GEN_1/GEN_2. It now updates the loaded area map, and it is also possible to save it.
Bug Fixes
- Fixed a bug that could cause the
getAreaExportStatefunction to return an error code when saving an area map using Positional Tracking GEN_3. - Fixed an issue preventing retrieval of the absolute positional tracking covariance using Positional Tracking mode GEN_3.
- Fixed an issue causing CameraOne to return 0 in
focal_length_metric. - Fixed a conversion issue in
findFloorPlaneleading to a possible wrong output transform depending on the used coordinate system.
Samples
- Fixed all Python samples to support both .svo and .svo2 file formats. Previously, some samples only recognized the .svo extension.
- Fixed samples to continue on WARNING-level grab results (negative
ERROR_CODE), stopping only on ERROR-level. This improves robustness when occasional issues, like image degradation detected byenable_image_validity_check, occur but the ZED SDK remains functional.
Tools
- Fixed a crash in ZED Diagnostic Tool when optimizing AI models.
Wrappers
- Fixed an OpenGL installation issue on Windows platforms with Python versions 3.12+ when using the script
get_python_api. - Fixed a binary compatibility issue between the ZED Python API (
pyzed) andnumpythat occurred specifically on Windows platforms with Python versions 3.9, 3.10, and 3.11. This fix ensures stable integration and prevents runtime errors related to ABI mismatches in these configurations.
ZED SDK 5.0.3
https://www.stereolabs.com/developers/release#503-01552fd28a68e574d70fcf78818f9e1b
5.0.3
SDK
- Changed the default value of
svo_real_time_modefromtruetofalsefor CameraOne'sInitParametersOne, to match the stereo camera's default parameters. - Improved the Python API setup script for better error handling, particularly for permission issues and unsupported platforms.
Bug Fixes
- Fixed a race condition that could occur when repeatedly setting the object detection runtime parameters.
- Fixed an accuracy regression in the Object Detection module's preprocessing, introduced in version 5.0.0. Bounding boxes could have an incorrect offset when using certain camera resolutions, such as HD1200.
- Fixed an issue on Windows where the SVO file could not be correctly parsed from within the fusion calibration file.
- Fixed an issue with ZED X One SVO recording making the resulting SVO size the same size as if recorded with a stereo camera when using the default bitrate. ZED X One SVO recording now have expected sizes.
- Fixed a memory leak issue that occurred when repeatedly starting and stopping recordings.
Samples
- Fixed an incorrect type in OpenGL window initialization in Python samples that could lead to a crash.
Tools
- Fixed ZEDSVOEditor -export-to-mcap option when using a SVO recorded with a ZEDOne.
ZED SDK 5.0.2
https://www.stereolabs.com/developers/release#502-ga-dd38a90c2359bfc27d07c490fdadd733
5.0.2
SDK
- Significantly improved the accuracy of
NEURALandNEURAL_PLUSdepth modes, even compared to the NEURAL model released in 5.0.0 EA, with enhanced temporal stability and robustness against reflections, repetitive patterns, and complex-structured objects. - Added NEURAL model files in the ZED SDK installer to avoid additional downloads at runtime.
- Added supporting functions
isCameraOne,isAvailable,supportHDR, andgetAvailableCameraFPSto easily check cameras compatible and available modes and capabilities. - Switched default streaming mode to GEN1 while GEN2 is being improved and stabilized. Users can still use streaming GEN2 by setting the environment variable ZED_SDK_STREAM_VERSION=2.
Bug Fixes
- Fixed a crash that occurred when calling
retrieve_objectsusingCUSTOM_BOX_OBJECTSwith the resolution set to VGA. - Fixed a rare undefined behavior that led to random values when calling
getCurrentFPS. - Fixed a rare crash that could occur after repeatedly opening and closing the same camera within the same process.
- Fixed a possible race condition when opening multiple GMSL cameras from different processes.
- Fixed a crash when using Fusion with multiple cameras and multiple GPUs.
- Fixed an accuracy regression with body fitting in NEURAL modes.
- Fixed a
UDPSocketcrash when streaming from a Jetson to a desktop. - Fixed an issue that prevented
enableRecordingfrom working with localhost. This is now supported. - Fixed a memory leak in Local Streaming IPC mode (with the ZED Media Server).
- Fixed a segmentation fault on the sender side in Local Streaming that occurred randomly after some time.
- Fixed
getVideoSettings(sl::VIDEO_SETTINGS::WHITEBALANCE_AUTO)on ZED-X / ZED-XOne, which was returning an incorrect value at launch (noticeable in ZED Explorer with multiple cameras).
Tools
- Added focal length information (in millimeters) in ZED Explorer, within the 'Calibration' window.
- Added SVO auto-repair support in ZED Explorer. It will now attempt to auto-repair corrupted SVO files upon opening, similar to ZED Depth Viewer (or SDK).
- Fixed ZED Explorer framerate calculator.
- Fixed model downloads in ZED Diagnostic tool when GPU is not available.
- Fixed minor UI issues in ZED Explorer.
- Fixed minor UI issues in ZED Media Server.
- Fixed video settings control through receiver/host in ZED Media Server. Users can now control virtual ZED-X camera video settings from the receiver side.
- Fixed stop signal handling in CLI mode for a proper and clean exit in ZED Media Server.
- Added support for different ZED-XOne camera models connected to ZED Media Server (identical resolution is still required).
- Added support for multiple JSON configuration files for virtual cameras in CLI mode via the
--configoption in ZED Media Server.
Wrappers
- Improved Python wrapper performance when using multiple cameras in multiple threads.
- Improved pip installation behavior in the Python wrapper: now uses
--force-reinstallby default to avoid issues with stalepyzedafter reinstallation. - Fixed Docker images with OpenGL display; they are now available again.
- Fixed minor issues in the C and C# wrappers.
Samples
- Improved C++ and Python samples for camera streaming and recording. They are now available and optimized for both single and multi-camera setups.
ZED SDK 5.0.1
https://www.stereolabs.com/developers/release#501-rc-e3e315a2d07b432b0db3e2b5d5c8d257
5.0.1 RC
Please note that 5.0.1 and 5.0.0 are not binary compatible. The Python API package will only work with 5.0.1. You should compile it from source if needed to run with 5.0.0.
SDK
- Added SVO real-time mode pausing function.
- Added dedicated setter functions for the Object Detection and Body Tracking runtime parameters. New
retrieveObjectsandretrieveBodiesfunctions without runtime parameters have been added as well. - Added functions
ENU2GeoandGeo2ENUinsl::Fusion, making it easy to compute latitude-longitude coordinates of a 3D point. See the C++ Geoloc playback sample (convert2Geofunction). - Improved SVO playback for large files.
- Added covariance output for Positional Tracking
GEN_3. - Improved Positional Tracking
GEN_3loop closure detection and map optimization. - Reduced Positional Tracking
GEN_3area mapping file size and saving/loading times. - Improved Region of Interest precision when using Object Detection or Body Tracking. The boxes are now filtered depending on the ratio in the region of interest mask instead of the center and bounding box edges.
- Improved Python API code autocompletion support for most IDEs by including the .pyi stub in the .whl package.
- Improved Object Detection fusion internal synchronization — the process is now safer and more efficient.
- Added ONNX model name as a prefix in the optimized model name when using Object Detection with a custom YOLO-like ONNX model.
Bug fixes
- Fixed ZED X auto-recovery function. A regression introduced in 5.0.0 prevented the GMSL camera recovery in case of an interruption.
- Fixed a rare crash that could occur when enabling NEURAL depth mode.
- Fixed a deadlock in the Object Detection module with the new internal threaded mode introduced in 5.0.0.
- Fixed an unclosed file descriptor on Jetson when using SVO H26X input. This could lead to undefined behavior if the Camera class was opened and closed hundreds of times in the same instance processing hardware-decoded SVOs.
- Fixed a regression when using multiple GPUs. It now correctly uses the selected device ID.
- Fixed multiple bugs in
setSVOPositionfunctions using index or timestamp input. It should now set the expected frame. - Fixed a small memory leak when using Fusion.
- Fixed AI model optimization log when using ROS.
- Fixed Object Detection crash when passing an invalid or missing custom YOLO-like ONNX file.
- Fixed undefined behavior in Object Detection and Body Tracking when processing detector output.
- Fixed incorrect
retrieveImageoutput when using specific resolutions. The issue could affect grayscale or low-resolution images. - Fixed
isVideoSettingsSupportedfunction with theAEC_AGC_ROIsetting that would return invalid results.
Tools
- Fixed ZEDfu NEURAL depth mode optimization.
- Improved Depth Viewer camera open when switching between camera models.
- Improved ZED Explorer firmware update GUI on ZED X for clarity.
Samples
- Added support for YOLOv11, YOLOv12, and more when using a custom YOLO-like ONNX model. Check out the dedicated documentation page.
- Updated C++ Spatial Mapping sample.
- Updated C++ Positional Tracking sample.
Camera Driver
- Added support for Jetson RT Kernel for ZED X camera with dedicated drivers.
Deprecation
- Using
retrieveObjectsandretrieveBodieswith runtime parameters is now deprecated. Setting runtime parameters should now be done using the dedicated setters.