Release Notes

Note

In addition to this global SDK Release Note, if you are maintaining a camera plugin, you might be interested in the Camera Plugin Upgrade Guide that focuses on the changes of the HAL API that affect the code of the plugins.

V4.5.2 Change Logs (09/02/2024)

V4.5.1 Change Logs (22/12/2023)

V4.5.0 Change Logs (14/12/2023)

V4.4.0 Change Logs (10/10/2023)

V4.3.0 Change Logs (07/08/2023)

Note

A dependency to protobuf for the serialization/deserialization feature has been added.

protobuf package is now required, please check the install guide.

V4.2.1 Change Logs (03/07/2023)

  • Advanced SDK Modules

    • Fixed bug in Dense Optical Flow Python sample raised when --flow-type PlaneFitting and --receptive-field-radius x are specified

    • Added missing Ogre3D related libraries in Windows SDK installer that prevented to compile the XYT application

  • Metavision Studio

    • Fixed issue on Ubuntu leading to dialog windows sometimes opening in background of the main window

  • Documentation

    • Added information about SDK deployment in pages about install from Source on Windows

    • Added item in the FAQ about known GPU related error message in Studio on Windows that should be ignored

    • Added note about stream quality and background noise in the Applications page

    • Added missing info about availability of pre-compiled version of the code in some code samples pages

V4.2.0 Change Logs (19/06/2023)

V4.1.0 Change Logs (16/05/2023)

V4.0.1 Change Logs (19/04/2023)

  • OpenEB

    • Deprecated Python binding get_i_eventrailfilter_module and added get_i_event_trail_filter_module to replace it

    • Deprecated Channel Python binding that was bound in metavision_hal and added Channel binding in I_TriggerIn to replace it

    • Fixed Metavision::DeviceConfig::get_evt_format_key() and Metavision::DeviceConfig::set_evt_format() functions

    • Fixed compilation issue on Ubuntu when using Cuda 11.7

    • Fixed GUI interactions in Vibration Estimation sample

    • Removed OpenCV from dependency list of Getting Started Guide for SDK in C++

  • Metavision Studio

    • Fixed Guided Tour that could get stuck at camera opening stage

    • Enhanced display of External Trigger Events in Statistics that now warns user when too many events to show

    • Removed Peak Data/Event Rates from Statistics that were not meaningful enough

  • Metavision SDK

    • Changed default theme to Light and now showing frames on the right-hand side in XYT application

  • Documentation

V4.0.0 Change Logs (23/03/2023)

Note

If you built some applications using previous versions of our C++ API (or using the associated Python bindings), you will need to make some adjustments to your code to comply with this new release. Below, you will find the detailed changes of the SDK API. To assist you in handling this upgrade, here are the key highlights to the HAL API:

  • to start a device, it is not required to call both i_device_control->start() and i_eventsstream->start(). Now the only call to perform is i_eventsstream->start() so you can remove calls to i_device_control->start()

  • to get a decoder, calls to device->get_facility<Metavision::I_Decoder>() should be replaced by calls to device->get_facility<Metavision::I_EventsStreamDecoder>()

  • to do camera synchronization, functions set_mode_standalone, set_mode_master, and set_mode_slave were moved from I_DeviceControl to I_CameraSynchronization class.

Here is a comprehensive list of the changes to the HAL API introduced in this release ordered by class:

  • DeviceDiscovery

    • Added DeviceDiscovery::list_device_config_options function to get a list of (key,option) representing configuration options that can be set on a DeviceConfig to customize the way a device can be opened

  • I_AntiFlickerModule

    • Changed enable()/disable() into bool enable(bool)

    • Removed set_frequency function from HAL I_AntiFlickerModule (function set_frequency_band should be used now)

    • Removed set_frequency_band boolean parameter stop and added set_filtering_mode to select AFK filter

    • Added some functions to get/set advanced AFK configuration (threshold, duty cycle etc.)

  • I_CameraSynchronization

    • Added class allowing to control the camera mode (standalone, master or slave)

  • I_Decoder

  • I_DeviceControl

  • I_DigitalCrop

    • Added class to leverage digital cropping offered by last generation of sensors

  • I_DigitalEventMask

    • Added class to enable/disable pixels individually

  • I_ErcModule

    • Renamed I_Erc class into I_ErcModule

    • Changed void enable(bool) into bool enable(bool)

    • Added functions to retrieve some ERC settings (e.g. get_min_supported_cd_event_rate, get_max_supported_cd_event_rate)

  • I_EventTrailFilterModule

    • Renamed I_NoiseFilterModule class into I_EventTrailFilterModule

    • Changed void enable(Type type, uint32_t threshold)/disable() into bool enable(bool state)

    • Added set_threshold and set_type functions to configure the filter

    • Added functions to retrieve some filter settings (get_min_supported_threshold, get_max_supported_threshold)

  • I_EventsStream

    • Replaced Future::I_EventsStream class with I_EventsStream, making the seek feature part of the default Metavision:: namespace

    • Changed methods seek and get_seek_range to non-virtual methods

  • I_HW_Identification

    • Removed get_system_version

    • Removed as_string from HAL in favor of name_ field

    • Renamed get_available_raw_formats to get_available_data_encoding_formats

    • Added get_current_data_encoding_format function

    • Added field name_ to SensorInfo

  • I_Monitoring

    • Added get_pixel_dead_time to retrieve pixel dead time (aka. “refractory period”)

  • I_ROI

    • Removed I_ROI::set_ROIs which was creating multiple ROI windows using row/columns mechanism hence creating “shadow symmetric” windows. The new function I_ROI::set_windows allows to create proper ROI Windows but multiple windows are only available in some sensors. The old set_ROIs behaviour with “shadow symmetric” windows can now be achieved using I_ROI::set_lines.

    • Removed I_ROI::set_ROIs_from_bitword, use the I_ROI::set_lines instead

    • Removed I_ROI::set_ROIs_from_file

    • Renamed I_ROI::set_ROI to I_ROI::set_window

    • Added I_ROI::get_max_supported_windows_count function that returns the maximum number of independent windows supported by the device

    • Added I_ROI::set_windows function to set multiple independent windows: an exception will be thrown if the number of windows passed is higher than what is returned by I_ROI::get_max_supported_windows_count

    • Added I_ROI::set_mode function to switch between the ROI and RONI mode when supported

  • I_TriggerIn

    • Added I_TriggerIn::get_available_channels function to get the list of channels that are available and can be enabled/disabled

    • Numerical values for the channel argument of I_TriggerIn functions replaced by a strongly typed enumerations that abstracts the actual channel value. I_TriggerIn::Channel::Main, I_TriggerIn::Channel::Aux and I_TriggerIn::Channel::Loopback should now be used instead of the actual numeric value specific to the underlying system.

  • I_TriggerOut

    • Added I_TriggerOut::get_period and I_TriggerOut::get_duty_cycle functions

Other changes in this release are:

  • Changes in SDK API (other than HAL)

    • In AntiFlickerModule class, removed set_frequency (function set_frequency_band should be used now)

    • In Roi class, renamed Roi::Rectangle to Roi::Window

    • In Roi class, the function Roi::set(const std::vector<Window>& windows) will now try to set multiple independent windows and may throw an exception if the operation fails, as opposed to setting the union of rows and lines covered by the multiple windows as was done in previous releases

    • Renamed NoiseFilteringModule class into EventTrailFilterModule

    • Added Camera::from_serial overload that enables passing device config options

    • Renamed Camera::CameraConfiguration::event_format to Camera::CameraConfiguration::data_encoding_format

    • Added CoolWarm color palette to enable clearer distinction between negative and positive events

    • Added TimeDecayFrameGenerationAlgorithm class to generate on demand colored visualization of events with exponential decay

    • Added FileConfigHints to control how a file is read by the camera class

  • Packaging

  • Prophesee Devices

    • Prophesee EVK1 VGA and HD devices plugins have been discontinued

    • Changed set method I_ll_biases implementation to raise exception when attempting to set an invalid bias

    • Provide a shared library psee_hw_layer to access underlying implementations of facilities.

  • OpenEB

    • Renamed metavision_hal_viewer sample into metavision_hal_showcase to convey the info that this sample is meant to be used as an example of various HAL facilities rather than as a viewer.

    • Added LogOptions class to be used with setLogOptions as a replacement for setLogLevel and setLogStream

    • Added LogOptions::setLevelPrefixPadding function to enable fixed length level block logging

    • Added new HDF5 event data format with a lossless compression codec for event-based data called ECF (Event Compression Format)

  • Metavision Studio

  • Metavision SDK features

  • Metavision SDK requirements and support

    • Updated supported C++ Standard to C++17

    • Dropped Ubuntu 18.04 support

    • Updated Ubuntu 20.04 python support (now Python 3.8 and Python 3.9 are supported)

    • Added Ubuntu 22.04 support (with Python 3.9 and Python 3.10)

    • Updated Windows python support (now Python 3.8 and Python 3.9 are supported)

    • Updated Windows and Ubuntu 3rd parties minimum required versions (see Installation Guides)

V3.1.2 Change Logs (16/12/2022)

V3.1.1 Change Logs (23/11/2022)

  • Prophesee Devices

    • Fixed issue in Gen3.1-based EVKs plugins preventing to set bias_refr in some specific situations

  • OpenEB

    • In Core module, fixed issue in seek_event() Python function in RawReader module

    • Synchronization samples are now displaying master/slave information in window’s name

  • Metavision SDK

    • Added missing includes in some header files of CV module

  • Metavision Studio

    • Fixed bug resulting in Display Settings tuning lost when reading a RAW file multiple times

  • Documentation

    • Fixed list of required dependencies for OpenEB

    • Updated the information related to PyTorch installation

    • Added information on the loading order of camera plugins

    • Added note about Trigger In polarity inversion for EVK4 in Timing Interfaces page

    • Enhanced API documentation of BaseFrameGenerationAlgorithm in Python

V3.1.0 Change Logs (17/10/2022)

V3.0.2 Change Logs (01/07/2022)

  • Prophesee Devices

    • Fixed clocking issue in IMX636-based EVKs plugins causing event timestamping to be faster than clock time

  • OpenEB

    • Integrate community contribution to pass a specific Python version when generating Makefile

    • Integrate community contribution to control the udev rules installation

V3.0.1 Change Logs (21/06/2022)

  • General

    • New version (1.1) of the Metavision License with updated information about the Source offer

  • OpenEB

    • Fixed Github Action CI

  • Documentation

    • Added list of supported cameras for OpenEB

    • Added some example videos in Core ML sample guides

    • Added missing steps for FFMPEG in the install guides

    • Fixed Trigger In channel ID for EVK3 Gen4.1

V3.0.0 Change Logs (31/05/2022)

  • General

    • Source code of Prophesee plugins is now distributed with OpenEB for devices based on Gen3.1, Gen4.1 and the latest IMX636 sensors

    • Full Python API and C++ API & samples are now distributed in pre-compiled Metavision SDK packages with free license

    • Metavision Studio can now be installed using dedicated packages for simplicity

    • Dedicated packages for pre-compiled Prophesee device plugins have been discontinued; these plugins are still installed using the packages for Metavision SDK or Metavision Studio

  • OpenEB

    • General changes

      • Introduced source code of plugins for devices based on Gen3.1, Gen4.1 and IMX636 sensors

      • Removed RAW plugins used to replay RAW recordings (replaced by the live device plugins)

      • New Core ML module open-sourcing core features for event-based machine learning

        • video_to_event simulator to generate events from frame-based data, including a GPU version to enable integrating event simulation directly in the training pipeline

        • event_to_video model plus inference and training pipelines, enabling reconstruction of grayscale data from events

    • Fixes

      • metavision_viewer_android sample in Driver module is not crashing anymore when loading a RAW recording

      • Incomplete RAW index files caused by app interruption during the generation is now detected and handled correctly

  • Metavision SDK

    • Full Python API and C++ API & samples are now distributed in pre-compiled Metavision SDK packages with free license

    • Upgraded the versions of the required dependencies for Python on Ubuntu and Windows and for C++ on Windows

    • Renamed show_extrinsics sample in Calibration module into show_calibrated_poses

    • Changed metavision_detection_and_tracking_pipeline app in the ML module into a sample to make deployment more flexible

  • Metavision Studio

    • Added tooltips and links to pages in the online documentation

    • Added an “auto” accumulation time option inferring accumulation time from the chosen framerate

    • Region of interest can now be defined interactively on display using the pointer

    • Interactively setting the threshold of the Event Trail Filter module does not disable silently this module anymore

    • Negative bias values can now be correctly entered using the keyboard

    • Various improvements of UI/UX

V2.3.2 Change Logs (31/03/2022)

  • OpenEB

    • Fixed pytest of Core module that relied on a recording outside datasets/openeb/ archive

  • Prophesee Devices

    • New feature

    • Bug fixes

      • Fixed bug preventing EVK3 Gen3.1 to stream when mode changed with set_mode_master and set_mode_standalone

  • Documentation

    • Enhanced user guide of Metavision Studio

    • Fixed minor errors in install guides of Metavision Essentials on Ubuntu and Windows

    • Added information on the classes of the C++ API in the Python bindings documentation

V2.3.1 Change Logs (31/01/2022)

  • OpenEB

    • Changes

      • Deprecated naming for classes TTrailFilterAlgorithm and MostRecentTimestampBufferT, replaced by TrailFilterAlgorithmT and MostRecentTimestampBufferT.

      • Clarified documentation and standalone sample implementation for EVT3 decoder

    • Bug fixes

      • Fixed bug resulting in non-monotonic timestamps returned by successive calls to I_Decoder::get_last_timestamp() with some EVT3 recordings

      • Fixed behavior of MostRecentTimestampBufferT::generate_img_time_surface() sometimes leading to erroneous results

  • Metavision Studio

    • Changes

      • Added dedicated support for IMX636 in Metavision Studio

      • Date time string used to name recordings is now using local-time instead of UTC time

      • Various improvements to UI

    • Bug fixes

      • Fixed bug resulting in last events in a recording to never be displayed

  • Metavision SDK

    • Python sample for ground plane calibration is now available in Essentials offer for Calibration module

  • Prophesee Devices

    • Introduced new plugin for IMX636-based EVK3 device

  • Documentation

    • Fixed the imports of EventBbox in detection_and_tracking tutorial

    • Added torchmetrics, seaborn & sk-video to python_requirement.txt

    • Updated download links for CUDA 10.2 LibTorch to a fixed version

    • Fixed typos in the classification tutorial

V2.3.0 Change Logs (11/10/2021)

  • General

    • Released new firmware for EVK2, upgrade is required (contact us to get access to the page)

    • Upgraded required pybind11 version from 2.4.3 to 2.6.0 when building from sources

    • Reorganized the test dataset archive to enable partial downloads

    • Reviewed the Ubuntu packages architecture for Essentials. The install command is now sudo apt -y install metavision-essentials, which includes the Python packages for the default Python version of your system. For other Python versions, you can also specific packages, e.g. package metavision-essentials-python3.8 for Python 3.8.

  • OpenEB

    • New features

      • Added Github Action CI pipeline on OpenEB repository (https://github.com/prophesee-ai/openeb)

      • Introduced new RAW plugins, adding capability to use RAW recording as input to processing pipelines

      • Introduced new RAW recordings seek capability, in beta version

      • Introduced new adaptive-rate event-stream slicing adapting event iteration to scene dynamics

      • Added Python sample demonstrating usage of various event-based formats (CSV, ROSbag, AEDAT) as input to Python pipelines

    • Updates

      • Added access to the ERC API from the Camera class

      • Moved definition of EventBbox from ML module to OpenEB and introduced EventBboxNpyReader class to handle various input formats

      • Added possibility to change default color palette in Python binding of PeriodicFrameGenerationAlgorithm

      • Renamed Gen4.1 FO bias from bias_fo_p to bias_fo

    • Bug fixes

      • Metavision::Window does not crash anymore when requesting window sizes larger than the screen resolution

  • Metavision SDK

    • New features

      • Introduced Metavision Studio, a user-friendly viewer for live cameras and recordings

      • CV Module

        • Introduced new C++ and Python samples for data-rate evaluation

      • ML Module

        • Introduced new toolbox including training, inference and metrics for supervised classification

        • Introduced new model and pipeline demonstrating rock/paper/scissor gesture recognition

      • Calibration module

    • Changes

      • Machine Learning

        • Added possibility in the detection & tracking pipeline in ML module to update box tracklet coordinates after each inference

      • Analytics

        • Optimized runtime of PSM algorithm in Analytics module

    • Bug fixes

      • The Python bindings of the AntiFlickerAlgorithm can now be used correctly

  • Prophesee Devices

    • New features

      • Added support for trigger/sync mode, temperature and illumination to EVK3 Gen4.1

    • Changes

      • Released new shared firmware for EVK3 Gen3.1/Gen4.1.

      • Released new EVK2 Processing System Linux Image for EVK2 version 1.6.0 (contact us to get access to the page)

      • Enforced min/max value range in biases for Gen3.1 and Gen4.1 sensors

      • Reworked EVK2 and EVK3 devices discovery and builder

    • Bug fixes

  • Documentation

    • Enhancement of installation and getting started pages

    • Enhancement of Python and C++ sample guides for SDK modules

    • Clarification of biases and triggers pages

V2.2.2 Change Logs (26/07/2021)

  • Cameras supported

    • New plugin for Prophesee EVK3 Gen4.1 camera with limited set of features (streaming, biases, ROI). This plugin does not support Monitoring events for Illumination and Temperature. External Trigger mechanism (Master/Slave mode, Trigger In, Trigger Out) is not yet supported as well.

  • Bug fixes

    • Machine Learning

      • Python package metavision_ml now deployed by Windows Essentials installer

      • The eval_coco_kpi sample does not fail anymore when no box is evaluated

    • Analytics

      • Vibration estimation is now using correct color map

      • Python Sample metavision_jet_monitoring_calibration now imports all the necessary modules

    • Miscellaneous

      • Enhancement of XYT Designer sample to show frame view next to events view

      • The install step after compilation now works without error on Python packages deployment path

  • Documentation

    • Addition of an USB extension cable reference in the FAQ

    • Additional information in the FAQ about IMU deprecation

V2.2.1 Change Logs (11/06/2021)

  • Bug fixes

    • Prophesee Camera plugins

      • The ERC facility setter functions now saturates to a device-dependent maximum value

      • The AFK facility setter functions now preserves the anterior enable/disable status

      • The stop parameter in the set_frequency AFK facility function is now correctly taken into account

      • The initial event burst occurring in some situations with Gen3.1 devices is now fixed

    • Machine Learning

      • The Optical Flow model now directly predicts in absolute pixel values

      • The detection models have been renamed to clarify their specificities

      • The HDF5Iterator now correctly stops at the end of the input file and correctly supports the start_ts argument

      • The train_detection sample now loads the right classes in finetuning mode and correctly supports the just_val flag

      • The export_detector sample can now be run from the build directory without installing first

      • The viz_video_to_event_simulator sample now correctly supports implicit input height & width

      • The colormaps used for visual flow visualizations are now consistent

    • Miscellaneous

      • The default installation path for Windows when building from source code with the deployment step is now C:\Program Files\Prophesee

  • Documentation

V2.2.0 Change Logs (29/03/2021)

V2.1.0 Change Logs (22/09/2020)

  • Platforms supported

    • Ubuntu 16.04 is not supported anymore

    • Python 3 support in Metavision Designer (instead of Python 2)

  • New features

    • New Metavision SDK samples

    • New Metavision Designer samples

      • Analytics samples : metavision_counting.py, metavision_generic_tracking.py

      • Metavision HAL (Hardware Abstraction Layer) with documented API, Prophesee camera plugins and code samples

      • Metavision Player (to visualize and record data streamed by event-based vision system)

    • Documentation online (no more delivered along with the software)

  • Deprecated features & software

    • EM events

    • IMU events

    • Prophesee Player (replaced by new Metavision Player software)

    • SDK samples using the engine “_engine_sample

  • Changes in existing features

    • Multiple changes in the SDK and Designer API

      • SDK API: new modules organization in base, core, driver, cv

      • Designer API: new modules organization in base, core, engine, cv

    • SDK samples are not delivered as precompiled binaries (now, need to compile them)

    • SDK and Designer samples renaming

    • Simplifying datasets delivery (now, they can be downloaded from the public documentation)

    • ObjectPool moved from Metavision SDK Core module to Metavision SDK Base module. Use #include “metavision/sdk/base/utils/object_pool.h instead.