Release Notes
V4.1.0 Change Logs (16/05/2023)
Prophesee Devices
Added implementation of
Metavision::I_ROI::set_mode()
for IMX636-based EVKs to enable use of RONI modeUpdated range of values for bias_diff on IMX636
OpenEB
Added Time Surface C++ sample showing how to compute the Time Surface of the CD events and to display it using our SDK UI module
Deprecated
SimpleDisplayer
class in favor of SDK UIMetavision::Window
andMetavision::MTWindow
Renamed
Metavision::DeviceConfig::get_evt_format_key()
toMetavision::DeviceConfig::get_format_key()
Renamed
Metavision::DeviceConfig::set_evt_format()
toMetavision::DeviceConfig::set_format()
Renamed
Metavision::DeviceConfig::evt_format()
toMetavision::DeviceConfig::format()
Removed OpenCV from dependency list of C++ SDK Get Started sample
Accelerated the EVT3 decoder implementation on Windows
Metavision Studio
Fixed bug resulting in possibility to change Frame Rate on live camera whereas it should be available for recordings only
Fixed bug causing export of video to start unexpectedly when changing Color theme
Metavision SDK
Introduced new
TripletMatchingFlowAlgorithm
class to efficiently estimate dense normal flowIntroduced new
DenseFlowFrameGenerator
class to generate visualization frames from a dense stream of EventOpticalFlowIntroduced new metavision_dense_optical_flow C++ sample to compare different dense flow algorithms
Renamed metavision_normal_flow Python sample into metavision_dense_optical_flow and added new TripletMatchingFlowAlgorithm algorithm
Renamed NormalFlowAlgorithm class into
PlaneFittingFlowAlgorithm
for clarity and added deprecated alias for former nameRenamed FlowFrameGeneratorAlgorithm class into
SparseFlowFrameGeneratorAlgorithm
for clarity and added deprecated alias for former nameEnhanced performance of
SparseFlowFrameGeneratorAlgorithm
and added a benchmark option in the associated sampleNew option in ML module to export models in half precision (16 bits) available in samples export_classifier.py, export_detector.py and export_flow.py
Documentation
Added information on how to compile in debug mode on Windows
Clarified remote and local meaning in
DeviceDiscovery
class of HAL APIAdded table summarizing available HAL API facilities for each Prophesee sensor/camera.
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()
andMetavision::DeviceConfig::set_evt_format()
functionsFixed 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
Fixed issues in Detection and Tracking Machine Learning inference tutorial
Reviewed description of use_external_triggers parameter of
initiate_device
to mention the new Channel usageAdded information about metavision_psee_hw_layer in the Camera Plugins Installation page
Enhanced documentation on Optical Flow samples to describe the differences between our algorithms
Clarified the deployment options when compiling the SDK in the install guides
Added information on how to run applications linking to psee_hw_layer
Aligned documentation of EVT3 event types for Time Low and Time High with our decoder code and sensors’ datasheets
Added documentation on how to read absolute bias values of IMX636 sensor
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
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.)
Added class allowing to control the camera mode (standalone, master or slave)
Decoding is now handled in
I_EventsStreamDecoder
andI_EventFrameDecoder
I_DeviceControl
This class was removed
Functions start and stop are now handled via
I_EventsStream
class. An example of new API usage can be found in metavision_hal_showcase sampleFunctions set_mode_standalone, set_mode_master, and set_mode_slave were moved to
I_CameraSynchronization
class. An example of new API usage can be found in metavision_hal_syncFunction reset was removed
Added class to leverage digital cropping offered by last generation of sensors
Added class to enable/disable pixels individually
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)
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)
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
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
Added get_pixel_dead_time to retrieve pixel dead time (aka. “refractory period”)
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
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.
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::WindowIn
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 releasesRenamed 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
Metavision Studio standalone installer have been discontinued. SDK install guides were updated to mention steps that can be skipped when willing to use Studio only.
Prophesee Devices
Prophesee EVK1 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
Trigger In and Trigger Out can now be configured in the Settings
External Trigger events are now shown in the Statistics panel
Added new configuration for ESP blocks in the Settings
Metavision SDK features
Added XYT application in CV module to visualize events in a 3D space
Added Metavision Normal Flow Python sample in CV module
New Corner Detection event-based algorithm and code sample
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)
Prophesee Devices
Fixed license in source code header of a plugin file
In Windows installer, add deployment of a driver that enables firmware recovery for EVK3 and EVK4
Firmware of EVK3 and EVK4 is now required to be at least in version 3.9 (If you don’t have access to this page, request an account in the Knowledge Center)
OpenEB
Added code sample showing how to record a RAW file using the Python API
Split Tracking samples documentation into Generic Tracking and Spatter Tracking
Reviewed
RawReader
Python class to lower its memory consumptionFixed issue in pipeline
FrameDisplayStage
preventing it to work properly when instantiated several times in a rowMinor enhancements in Getting Started Guide for SDK in Python for better clarity
Metavision SDK
Fixed some includes in code samples for CV and Analytics module
Documentation
Enhanced Installation Guides: upgrade from previous version, dependencies installation, camera plugins configuration etc.
V3.1.1 Change Logs (23/11/2022)
Prophesee Devices
Fixed issue in Gen31-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)
Prophesee Devices
Released new firmware for EVK3 and EVK4, upgrade is required (To have access to this page, request an account in the Knowledge Center)
Fixed error raised when activating Trigger In on EVK4
Fixed sensor configuration to avoid events being produced outside of ROI in some specific circumstances
Removed register address check against register map when reading and writing camera register using the Hardware Register facility
OpenEB
New version of the EVT3 decoder with protocol violation detection and mitigation
Metavision SDK
In ML module, fixed bugs in loading and filtering bounding boxes from box_processing.py
In ML module, fixed bugs in model inheritance of flow and detection module
In Calibration module, fixed issues with refinement mode in metavision_mono_calibration application and improved usability of show_calibrated_poses Python sample
Metavision Studio
Improved performance when streaming from live camera and RAW files
Added alert mechanism on errors raised by EVT3 protocol violation
Documentation
Pages on Cameras Synchronization and Timing Interfaces were fully revamped
Fixed some wrong references in Quick Start of ML module
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
Introduced new plugin for IMX636-based EVK4 device
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 TMostRecentTimestampBuffer, 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 TMostRecentTimestampBuffer::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 notebook
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. packagemetavision-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
ML Module
Calibration module
Introduced new camera / ground plane extrinsics calibration script
Added support for OpenCV FishEye calibration
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
Device unplug/replug is no longer required after closing a live EVK2 stream on Windows, requires new EVK2 Processing System Linux Image v1.6.0 (contact us to get access to the page)
EVK3 Gen3.1 temperature and illumination measurements can now be used correctly
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
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 theset_frequency
AFK facility function is now correctly taken into accountThe 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
argumentThe train_detection sample now loads the right classes in finetuning mode and correctly supports the
just_val
flagThe 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
Better coverage of HAL Python API
Enhancement of installation documentation
Fixed issues in Machine Learning tutorials
V2.2.0 Change Logs (29/03/2021)
Platforms supported
Ubuntu 20.04 is supported in addition to 18.04
New open-source distribution plan
New features
SDK samples are now available in Python
ML module is now partly available with Metavision Essentials
New modules
New code samples
Particle Size Measurement in Analytics module
HAL Plugin Sample in HAL module
Simple Windows in UI module
Changes in existing features
Changes in the SDK API:
refactored Frame Generators API
moved the
Metavision::FrameDisplayStage
to the UI module
Changes in the HAL API
Simplified usage of the Device class
Added function to open a Device instance from a stream
Clarified memory ownership of returned pointers
Restricted creation to be done only through DeviceDiscovery
Added new utilities
Added utility classes to identify and use RAW file headers
Added a functional HAL Plugin Sample
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
Analytics samples: metavision_counting, metavision_generic_tracking
CV samples: metavision_noise_filtering, metavision_undistortion
Calibration applications: metavision_blinking_pattern_focus, metavision_mono_calibration
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.