Tags give the ability to mark specific points in history as being important
-
2.0.1
Release: 2.0.158ad7191 · ·Release 2.0.1 - 19.07.2025 INCOMPATIBLE CHANGES - Cameras: minor API change resulting from switch to libusb per-context loggers - remove static USBDevice::setLibUsbLogger(). - add logger callback arguments to discover(), findDevices(), open() and openSync(). - change order of default arguments deviceLogger/deviceLogLevel on camera construction. BUG FIXES - Cameras: fix usb control transfer in notification. - Cameras: improve logging and cleanup on startup errors. - CMake: improve linking of lz4, zstd and libbacktrace when falling back to FIND_LIBRARY(). NEW FEATURES - Python Wheels: add support for NumPy 2.x. - Python Wheels: add support for free-threaded CPython with no GIL. - Python Wheels: pre-built wheels only available for MacOS 15 and newer.
-
2.0.0
Release: 2.0.09ba672ab · ·Release 2.0.0 - 15.07.2025 INCOMPATIBLE CHANGES CMake: renamed options with DVP_ prefix to prevent collisions, ie. DVP_ENABLE_TESTS. Build: raised minimum compiler versions to GCC 13, clang 18, XCode 16 or MSVC 19.39 (Visual Studio 2022 17.9). Build: raised minimum dependency versions to boost 1.80, fmt 9.1.0, libusb 1.0.23. C++/Python: removed all deprecated functions and types. C++/Python: fixed naming of constants and enums, now SCREAMING_SNAKE_CASE as per guidelines. cstring/cvector: removed own re-implementations of std::string (dv::cstring) and std::vector (dv::cvector), the standard containers are used instead. You will need to recompile. CameraCapture: removed CameraCapture class, see NEW FEATURES for replacement. StereoCapture: removed StereoCapture class, see NEW FEATURES for replacement. Renamed OutputBase::writeIMU() function to writeImu() to be consistent with other function names. dv::runtime_assert(): changed to use functors, allowing guaranteed removal on non-debug builds. StereoGeometry: instances of trasformToLeft have changed type to dv::kinematics::Transformationf instead of std::vector. Accumulator: getShape() renamed to getResolution(). fmt: removed custom std::vector formatter, use the official one from the fmt library instead. Ubuntu: dropped support for Bionic 18.04. Python: dropped support for Python 3.6. Point cloud sample: removed due to build issues with PCL dependency. PoseVisualizer: significantly refactored to improve rendering and add new features. NEW FEATURES Device Access: new set of classes and functions to access cameras in the dv::io::camera namespace, replacing CameraCapture, StereoCapture and libcaer. Classes DVS128, DAVIS, DVXplorer and DVXplorerM (for Mini/Micro) allow access to all camera features. New base classes CameraInputBase and SyncCameraInputBase allow for generic handling of features supported by all cameras, as well as enhanced synchronization support. A selection of notable new features: all camera features are properly exposed through a simple API now, no need to use cryptic libcaer codes proper inheritance allows generic handling of cameras and common functionality significantly improved data parser performance, especially for S5K231Y sensor on DVXplorer Mini/Micro synchronization of an arbitrary number of cameras supported via dv::io::camera::synchronizeAny() DAVIS: supply your own exposure control function DVS128/DAVIS: simplified biasing with clearer names DVXplorer: allow finer bias control for ON/OFF contrast thresholds For DVXplorer Mini/Micro only: a firmware upgrade (v10) is required for compatibility with new classes. CMake: added support for sanitizer checks. Ubuntu: added support for Noble 24.04. Boost: added compatibility with latest boost::ASIO releases. fmt: added printers for all enums (also work with std::ostream <<). Noise Filters: added frequency filters LowPassFilter, HighPassFilter, BandPassFilter, BandCutFilter. Noise Filters: added KNoiseFilter, implementation as proposed by Khodamoradi in his paper: "O(N)-Space Spatiotemporal Filter for Reducing Noise in Neuromorphic Vision Sensors". Inputs: added isStreamAvailable(streamName), isRunning(streamName) and isRunningAny(). Inputs/Outputs: now properly inherit from InputBase/OutputBase respectively, allowing generic handling. Motion compensation benchmarks: separate motion compensation benchmarks from accumulation benchmarks. Contrast maximization benchmarks: add benchmarks for contrast maximization under translational motion. Noise filtering samples: added all noise filters present in dv-processing. StereoGeometry: added convertDisparityToDepth() function. fmt::format: added formatters for cv::Mat, cv::Size, cv::Point and cv::Rect. SimpleFile: added readInto() to read file contents into a given memory location. BUG FIXES StereoGeometry: fixed bug with rectified image size when handling cameras of different resolutions.
-
1.7.9
Release: 1.7.99a15b080 · ·Release 1.7.9 - 20.07.2023 BUG FIXES - CMake: fix VCPKG tools compilation on MSVC. - Python: improve pip installation scripts. - CameraCapture: do not return empty trigger packets to user. - CameraCapture: do not generate timestamp reset twice on startup. - CameraCapture: better DVX Mini synchronization to system time. - CalibrationSet: fix writeToFile() function const-ness. - RedetectionStrategy: fix deprecated decideRedection() function return. - i686: fix alignment checks for 32bit architectures. - eDVS: fix support for eDVS4337 device. - StereoGeometry: fix bug with rectified image size when handling cameras of different resolutions. - MeanShiftTracker: fix bug with track updates' timestamp. - EventStore: do not accept null EventPackets on construction. - StreamSlicer: fix unbounded growth of non-EventStore stream slicers when using slice-by-time mode. - Submodules: update all external git submodule dependencies. - Python: add missing methods get/setNeutralPotential() to EdgeMapAccumulator. - CameraCalibration: fix getTransformMatrix() row-major ordering. - StereoGeometry: fix computation of right to left transformation from existing camera calibration. - StereoGeometry: fix toDepthFrame() using incorrect signed integers. - MultiStreamSlicer: fix time slicing of multiple streams and deletion of delivered data after usage. - Python: add missing method getPotentialSurface() to Accumulator.
-
1.7.7_internal
Release: 1.7.7_internal228fa6a7 · ·Release 1.7.7 - 20.01.2023 BUG FIXES - CameraCapture: fix DVXplorer Mini support. - StereoCapture: improve time synchronization behavior.
-
1.7.6_internal
Release: 1.7.6_internalf2e4e734 · ·Release 1.7.6 - 13.01.2023 BUG FIXES - CameraCapture: fix timestamp resets not being correctly processed on camera start, if multiple were present or other data was present.
-
1.7.5_internal
Release: 1.7.5_internal1561cb21 · ·Release 1.7.5 - 09.01.2023 BUG FIXES - CameraCapture: fix timestamp reset not available in DVX Mini.
-
1.7.4_internal
Release: 1.7.4_internalae8ec385 · ·Release 1.7.4 - 21.12.2022 BUG FIXES - NetworkReader: throw exception if no streams found, don't crash.
-
1.7.3_internal
Release: 1.7.3_internal7c3f2d8e · ·Release 1.7.3 - 20.12.2022 BUG FIXES - fmt::format: fix compatibility with fmt library version 8.
-
1.7.2_internal
Release: 1.7.2_internal689d2561 · ·Release 1.7.2 - 19.12.2022 BUG FIXES - CMake: fix targets include, fix Python discovery.
-
1.7.1_internal
Release: 1.7.1_internalaf61abd1 · ·Release 1.7.1 - 16.12.2022 BUG FIXES - CMake Tests: fix boost-ut integration, issues with Ubuntu packages and CMake CPM fixed.
-
1.7.0_internal
Release: 1.7.0_internalfb675fea · ·Release 1.7.0 - 15.12.2022 NEW FEATURES - dv::io::NetworkReader class for reading data from TCP / UNIX socket servers. - dv::io::NetworkWriter class for writing data as TCP / UNIX socket servers. - New utility `dv-tcpstat` to get information about an existing network stream. - Introduce generic `dv::StreamSlicer` that supports any type of stream for slicing. - Introduce `dv::MultiStreamSlicer` which performs synchronous slicing on multiple streams. - `dv::CameraCapture` now provides methods to read seek timestamps of available data streams. - New event-based blob detector. - New event-based feature tracker using mean shift algorithm with optimal mode search on time surface. - Redetection Strategy: added new strategies UpdateIntervalRedetection and UpdateIntervalOrFeatureCountRedetection. - EventStore: added sliceRate() method to slice an EventStore to keep a specific event-rate. - Data Packets: added ostream printers for all data packets. - Camera Capture: added control functions getDavisExposureDuration(), setDVXplorerGlobalReset() and setDVXplorerEFPS(). - Event Visualizer: added generateImage() method to draw events on a given background image. - core/time.hpp: concentrated time-related definitions and functions in one header file. BUG FIXES - Some performance improvements in `dv::CameraCapture` and `dv::MonoCameraRecording` by avoiding some memory copies. - Camera calibration: fixed ostream printer, wrong transformation matrix was printed. - Python: fixed CameraCapture.enableDavisAutoExposure() calling wrong C++ function. - TimeSurface: fix type checks in getOCVMat() and getOCVMatScaled(). - Features: fixed typo redection -> redetection in several function names. - Camera Capture: disabled global hold setting for DVXplorer, not useful for most users and inconsistent with other libraries published. - CMake: cleanup, better submodule support. - dv-imu-bias-estimation utility: fix crash if no camera name provided.
-
1.6.0
Release: 1.6.061580b28 · ·Release 1.6.0 - 18.10.2022 NEW FEATURES - New documentation available, with multiple examples in C++ and Python. - Optimized event filtering , reduced execution time for all event filters, speed-up up to 150%. - dv::io::ReadOnlyFile: more robust detection of corrupted/incomplete files. - VCPKG: dv-processing is now available in the VCPKG repository. Manual build is possible via the BUILD_CONFIG_VCPKG CMake flag. - `dv::PixelAccumulator` (now deprecated) is renamed into `dv::EdgeMapAccumulator` for better naming. - `cv::features::FeatureDetector` now uses `cv::GFTTDetector` as default feature detector. - Added getter for last keypoints inside FeatureTracks class and accept for batch of keypoints. BUG FIXES - `dv::EventStore::sliceBack()` is now correctly marked as const method. - camera capture: returned dv::Frame timestamp was incorrectly set, now correctly represents the start of exposure. - dv::io::ReadOnlyFile: when reading an empty file, an exception was incorrectly thrown. Now, the empty file will correctly be opened and returned with no content. - Python: added missing isEventStreamAvailable(), isImuStreamAvailable() and isTriggerStreamAvailable() functions for CameraCapture. - StereoCameraRecording: fix inconsistent usage of std::string instead of fs::path in constructor. - CMake: fixed detection of LZ4 and ZSTD libraries in multiple environments. - CMake: fixed detection of custom boost in cross-compile environments. - CMake: fixed compiler check. - Fixing feature redetection bug that returns invalid features when no additional feature are found. - Explicit timestamp reset signal is now sent in the `dv::io::CameraCapture` class constructor. - FeatureTracks: fixed bug in clear method. Missing reset "mHighestTime". - Fixed a bug in FeatureTracks which causes out-of-order exception after calling clear() method.
-
1.6.0_internal
Release: 1.6.0_internal61580b28 · ·Release 1.6.0 - 18.10.2022 NEW FEATURES - New documentation available, with multiple examples in C++ and Python. - Optimized event filtering , reduced execution time for all event filters, speed-up up to 150%. - dv::io::ReadOnlyFile: more robust detection of corrupted/incomplete files. - VCPKG: dv-processing is now available in the VCPKG repository. Manual build is possible via the BUILD_CONFIG_VCPKG CMake flag. - `dv::PixelAccumulator` (now deprecated) is renamed into `dv::EdgeMapAccumulator` for better naming. - `cv::features::FeatureDetector` now uses `cv::GFTTDetector` as default feature detector. - Added getter for last keypoints inside FeatureTracks class and accept for batch of keypoints. BUG FIXES - `dv::EventStore::sliceBack()` is now correctly marked as const method. - camera capture: returned dv::Frame timestamp was incorrectly set, now correctly represents the start of exposure. - dv::io::ReadOnlyFile: when reading an empty file, an exception was incorrectly thrown. Now, the empty file will correctly be opened and returned with no content. - Python: added missing isEventStreamAvailable(), isImuStreamAvailable() and isTriggerStreamAvailable() functions for CameraCapture. - StereoCameraRecording: fix inconsistent usage of std::string instead of fs::path in constructor. - CMake: fixed detection of LZ4 and ZSTD libraries in multiple environments. - CMake: fixed detection of custom boost in cross-compile environments. - CMake: fixed compiler check. - Fixing feature redetection bug that returns invalid features when no additional feature are found. - Explicit timestamp reset signal is now sent in the `dv::io::CameraCapture` class constructor. - FeatureTracks: fixed bug in clear method. Missing reset "mHighestTime". - Fixed a bug in FeatureTracks which causes out-of-order exception after calling clear() method.
-
1.5.0
Release: 1.5.051313173 · ·Release 1.5.0 - 19.07.2022 NEW FEATURES - Introducing `dv::SparseEventBlockMatcher`, a class which efficiently performs stereo depth matching on sparse set of coordinates among two calibrated stereo streams. It estimates disparity between two event streams by sparsely accumulating only the regions of interest to reduce computational complexity. - New implementation of Contrast Maximization, see documentation at docs/source/contrast_maximization.md. - StereoGeometry: introducing `unmapPoint` method which transforms coordinates from undistorted rectified pixel space into original camera pixel space. - Samsung EVK is now supported in `dv::io::CameraCapture` - `dv::io::CameraCapture` introduces new methods to get and set timestamp offset. - Introducing `dv::io::CameraInputBase`: an interface class to abstract live camera and AEDAT4 recordings with a common interface. - Python: NumPy accessors for data. - Python: support for pip install via setup.py, see docs/python-installation/ubuntu.md. BUG FIXES - FilterChain: ignore empty packets during time monotonicity check. - CameraGeometry: fixed a bug which caused incorrect `distort` method results with RadTan model containing 4 parameters. - StereoEventStreamSlicer: fixed failed synchronization in case when right camera data is forward in time with fixed offset. Accept now supports optionals also, making it easier to use directly with camera input. - MeanShift clustering: making low level functions available, so users can access intermediate results from clustering. - CalibrationSet: fixing a crash while parsing V1 format invalid XML calibration files, throws an exception instead. - Adding convenience methods to access timestamps, coordinates, and polarities as Eigen (C++)/NumPy (Python) arrays. - Adding missing packet data types for more convenient IO operations in python. - Adding samples of reading / writing live cameras. - `dv::PixelAccumulator` now return `-1` timestamp when no events were passed into accept. - `dv::Accumulator` generates identical output when called `generateFrame` without passing data. - CameraGeometry: `undistort` method returned incorrect result if used with floating point coordinates. - CameraGeometry: minor performance improvements. - PixelAccumulator: decay is now applied before accumulation, decay values are now interpreted within [0.0; 1.0] to simplify the approach. - `dv.io.discoverDevices()` is added to Python bindings. - Adding missing constructor for `dv.io.MonoCameraWriter.Config` class. - Adding `dv.io.StereoCameraRecording` in Python bindings. BACKPORTED BUG FIXES - dv::io::ReadOnlyFile: more robust detection of corrupted/incomplete files. - dv::io::ReadOnlyFile: when reading an empty file, an exception was incorrectly thrown. Now, the empty file will correctly be opened and returned with no content. - Python: added missing isEventStreamAvailable(), isImuStreamAvailable() and isTriggerStreamAvailable() functions for CameraCapture. - StereoCameraRecording: fix inconsistent usage of std::string instead of fs::path in constructor. - CMake: fixed detection of LZ4 and ZSTD libraries in multiple environments. - CMake: fixed detection of custom boost in cross-compile environments. - CMake: fixed compiler check.
-
1.4.0
Release: 1.4.0d4ffab46 · ·Release 1.4.0 - 25.05.2022 INCOMPATIBLE CHANGES - `dv::Accumulator` now generates 8-bit integer images instead of floating point, which is easier to use and is more consistent with other classes generating images. - Data type `dv::Point2f` used in `dv::TimedKeyPoint` has been changed to a Flatbuffer struct instead of a table for performance and consistency reasons. This will not allow previous `dv::TimedKeyPointPackets` to load properly from storage. At this point we do not believe such files to exist and this change will have no to minimal impact to users. - Converted several simple enums to enum classes in all headers for better code quality, this will require users to use the fully qualified class name, eg. dv::Accumulator::Decay::EXPONENTIAL. NEW FEATURES - Native Windows (MSVC) support - Calibration: improved support for DV-SDK XML files, also supports oldest file format now. - CameraCalibration: added getCameraMatrix() method to get a standard OpenCV 3x3 camera matrix. - Concepts: new Enum concept, consistent naming for concepts, header includes cleanup. - utils.hpp: introduce and use TimestampClock and TimestampResolution. - Adding a method for device discovery. - Adding `dv::camera::StereoGeometry` class that handles rectification of stereo data streams (events and images) and depth estimation. - Adding `dv::SemiDenseStereoMatcher` class that calculates disparity on stereo synchronized event streams or images by applying accumulation into frames and disparity using a stereo block matching algorithm. - New landmark type is added with an ability to be visualized in `PoseVisualizer` class. - `dv::io::CameraCapture` introduces getPixelPitch method that can be used to lookup the pixel pitch distance. - `dv::io::CameraCapture` adds frame interval setting and exposes low level config setting functions. - Fully support Equidistant (fish-eye) lens calibration model for undistortion. BUG FIXES - Fixed a bug in `dv::Accumulator` which caused timestamps to be incorrectly generated when generating multiple frames. - CalibrationSet: const-ify several functions that do not modify the content. - Removing unnecessary asserts in `CameraGeometry::backProject` method when sub-pixel implementation is used. - CMake: improved handling of custom Boost version, will now always use custom version on systems that require it (Ubuntu LTS 18.04 Bionic and 20.04 Focal). - Dependencies increased to CMake 3.16, Eigen 3.3.9, fmt 7.1.3. - Stereo transformToC0 was loaded incorrectly, fixing the correct order of transformation matrix values. - `dv::EventStore` added missing assignment operator for dv::EventPacket as in constructor. - `dv::visualization::colors::someNeonColor` method is now inline to fix compilation errors. - `dv::io::MonoCameraWriter` was not saving resolution metadata correctly. - Fixing a bug in `dv::features::EventFeatureLKTracker` to maintain a minimum amount of events to prevent wrong behaviour when event stream contains very little amount of events. - CMake project now validates compiler version to be compatible with the project. - Adding a few missing methods in python bindings: `dv::now()`, `dv::toTimePoint()`, and `modifyTimeInterval` in `EventStreamSlicer` that accepts a `timedelta` variable type. - dv::io::SimpleFile: fixed possible race condition on creation of writeable files. - dv::(Pixel)Accumulator: consistent checking if events are within size bounds; DEBUG mode will check all events with resulting drop in performance. Release builds will not check bounds at all for maximum performance. - Use dv::runtime_assert() instead of assert() in most places for more consistent error reporting. - `dv::io::MonoCameraRecording` bugfix that caused runtime errors when built with MSVC. - `dv::StereoEventStreamSlicer` is now guaranteed to execute the callbacks only when both streams supply enough data. - Changed `dv::Accumulator` constructor to provide more reasonable default parameters. - Transformation.hpp: fix delta() function to get relative transformation. - `CameraCalibration` and `IMUCalibration` now validate transformation matrices to be strictly homogeneous. BACKPORTED BUG FIXES - FilterChain: ignore empty packets during time monotonicity check. - `dv::PixelAccumulator` now return `-1` timestamp when no events were passed into accept. - `dv::Accumulator` generates identical output when called `generateFrame` without passing data. - CameraGeometry: `undistort` method returned incorrect result if used with floating point coordinates.