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.
V5.0.0 Change Logs (07/10/2024)
Offers
Metavision SDK now offers a more streamlined solution. SDK Pro is available free of charge for all new customers purchasing a Prophesee USB camera, and it includes the full source code, enabling customization and porting to other platforms. Additionally, SDK Pro can be acquired as a standalone product for developers seeking advanced capabilities. Note that OpenEB, our open-source project, remains accessible for exploring our software and making your first steps with event-based technology. For a summary of our offers, check the Metavision SDK Modules and Packaging page.
Installation
Dropped Ubuntu 20.04 support to focus on newer, more secure versions
Added Ubuntu 24.04 support (with Python 3.11 and Python 3.12)
Python versions 3.9 to 3.12 are now supported on Windows 10
Updated version of Cmake used for compilation on Windows from 3.21 to 3.26
Updated Windows and Ubuntu 3rd-party dependencies required versions (see Installation Guides)
Python requirements files have been added to simplify the installation of dependencies. It is now recommended to use the Python virtual environment mechanism to manage these dependencies more efficiently.
Open SDK Modules (OpenEB) API removals
All the functions that were deprecated in previous 4.x SDK versions are removed in 5.0 (e.g. I_RegistrableFacility::set_thresholds, I_RegistrableFacility::get_thresholds etc.)
Removed the
pipelines
classes from the SDK, which were initially designed to simplify the implementation of algorithmic pipelines. However, these classes were found to have limitations that could hinder more complex use cases and hence brought more confusion than simplicity. The corresponding samples have been revised to demonstrate alternative approaches for implementing algorithms directly with the SDK, offering more flexibility and scalability.Removed
get_system_id()
fromI_HW_Identification
classRemoved
FileProducerAlgorithmT()
from SDK CoreRemoved or relocated functions from
Camera class
API that duplicated HAL features:Functions
load_from_file()
andsave_to_file()
for biases have been relocated to the HAL API and are now considered legacy. It is recommended to use the JSON camera settings file instead.Antiflicker, Biases, ERC, Event Trail Filter module, ROI and Trigger Out functions were duplicating HAL API and therefore removed
Open SDK Modules (OpenEB) API modifications
Renamed the “Driver” SDK module to “Stream” to more accurately reflect its functionality and purpose
Renamed:
DataTransfer
class toMetavision::DataTransfer::RawDataProducer
which is now the base class of all classes gathering raw data from the device. The derivedRawDataProducer
class now owns its buffer pool to give plugin’s implementers finer controls over memory layout/allocation. The objectMetavision::DataTransfer::DefaultBufferPool
is the default buffer pool type of choice. For an example of how to use the newSampleDataTransfer
class API, refer to the Camera Plugin Toy Sample.Renamed
reset_timestamp()
toreset_last_timestamp()
inMetavision::I_EventsStreamDecoder
open_raw_file() functions from HAL API are now using
std::filesystem::path
instead ofstd::string
for the file path parameter
Open SDK Modules (OpenEB) API additions
Introduced new C++ class
CameraStreamSlicer
that slices a stream of events and triggers according to a given condition. This class is also available as a Python binding and is illustrated in C++ and Pythonmetavision_camera_stream_slicer
samples. The related C++ classSyncedCameraStreamsSlicer
(and its Python binding) slices events from a master and slave cameras system and is illustrated in C++ and Pythonmetavision_synced_camera_streams_slicer
samples.Added
RAWEvt2EventFileWriter
to re-encode events from a file into a RAW EVT2 file illustrated in C++ and Python samples.Added Embedded Active Marker 3d Tracking to provide example on how to serve 3D estimated pose to a distant client.
Introduced
EVT4 decoder
for a new 32-bit encoding data format supporting sensors with up to 2048x2048 resolution
Open SDK Modules (OpenEB) other changes and fixes
Removed the legacy viewer
Metavision Player
, which has been replaced by both Metavision Studio and metavision_viewer, now serving as the primary viewing and recording tools.Added EVK4 Sample Plugin that provides a basic example of how to create a camera plugin for the Prophesee EVK4 using Metavision HAL.
Added a subsampling command line option in metavision_viewer.
Fixed
eval_corner_detection.py
script in Corner Detection Sample that was failing on the import of dependencies
Advanced SDK Modules
New generic Machine Learning
Model
class allowing to load a variety of models for inference and to specify the type of ML framework to use (Torch or ONNX). See the page on Using ML models with Events for more details.New C++ classes and Python bindings to perform Preprocessing of Events to Tensors
New C++ Machine Learning inference samples:
The Calibration module has been thoroughly refactored for improved performance and flexibility. For detailed information, refer to the documentation of the metavision_calibration_pipeline sample.
The CV3D API now provides algorithms to estimate depthmaps from a synchronized and calibrated stereo event stream. Those new features are demonstrated in a C++ sample and a Python sample
Metavision Studio
Added support for Digital Event Mask
Fixed an issue where default values were restored in a bias file after saving the custom biases values and reopening Studio
Documentation
Introduced an interactive Optics Calculator to help understand the field of view of your system using an event-based sensor with specific optics
Added documentation about IMX636 variants emulated plugins
Expanded documentation on Customizing Prophesee plugin and firmware for CX3-based camera
Provided new resources on the Digital Event Mask and Digital Crop
Included detailed information on Pixel Reset in the section on Accessing External Trigger Events
V4.6.2 Change Logs (02/07/2024)
Open SDK Modules (OpenEB)
Improved detection of camera connection errors and added error handling code to metavision_viewer
Fixed issue in
CameraStage
pipeline constructor
Advanced SDK Modules
Fixed compilation of metavision_detection_and_tracking_pipeline C++ sample on Windows that was failing because of a double cmake definition of
libprotobuf
Documentation
Created a new GitHub repository, event-based-get-started, showcasing how to use the SDK API in C++ and Python programs to develop event-based applications.
V4.6.1 Change Logs (17/06/2024)
Open SDK Modules (OpenEB)
Improved detection of camera connection errors and added error handling code to metavision_viewer
Fixed an issue in OpenEB and SDK Pro compilation where cmake would fail when
BUILD_TESTING
was not set toON
Fixed OpenEB and SDK Pro compilation on Windows failing to handle commands with spaces in paths
Added missing header in
v4l2_device.h
within the plugin source code folder (hal_psee_plugins
)
Metavision Studio
Fixed issues in Temporal Plot display:
when switching Color theme in the Display settings panel
when setting an accumulation time higher than the refresh period while auto-refresh was enabled
Documentation
Added a new Application Note on “How to build your event-based application” that offers valuable tips and best practices for the topic
Specified the Visual Studio version mentioned in the Windows OpenEB and SDK Pro installation guides (Fall 2023 LTSC - version 17.8)
Reviewed the list of archives to use in SDK Pro installation guide (advanced modules and standalone applications are delivered in a single archive
metavision_sdk_advanced_sources_x.y.z.tar.gz
)
V4.6.0 Change Logs (22/05/2024)
Prophesee Devices
Added support of EVT3 and EVT2 in EVK3 GenX320 MP (Mass Production) plugin
For the EVK3 GenX320 plugin, a new facility called
GenX320RoiPixelReset
was introduced inmetavision_psee_hw_layer
. This allows the sensor’s ROI to be configured so that the EVK’s pixel reset pin can reset all pixels simultaneously. However, note that when this mode is enabled, the ROI cannot be used in windows or lines mode.
Open SDK Modules (OpenEB)
Added metavision_hal_get_started sample that shows how to use SDK Python HAL API to read events from a live camera or from a RAW file
Added new dedicated exception class (
HalConnectionException
) to catch camera connection errorsDeprecated I_EventsStreamDecoder
reset_timestamp()
andreset_timestamp_impl()
and added functionsreset_last_timestamp()
andreset_last_timestamp_impl()
to replace them and clarify their role
Advanced SDK Modules
In sample ArUco Marker Tracking pipeline, moved the ArUco Marker dictionary to a JSON file
Metavision Studio
Added a Temporal Plot display to visualize the event stream over time
Installation
All advanced modules in SDK Pro are now consolidated into a single archive, making installation more convenient.
Documentation
Added more details on concepts and usage of the SDK Optical Flow Algorithms
Added documentation about HDF5 tensor files
Added documentation about Region Of Interest (ROI) that allows to set active/inactive areas on the sensor
Added documentation about metavision_event_frame_viewer Python sample that shows how to use
EventFrameIterator
to displays the content of Histo3D and Diff3D event frames
V4.5.2 Change Logs (09/02/2024)
Prophesee Devices
Fixed EVK3 GenX320 plugin code that was not setting ROI properly
Reviewed EVK3 GenX320 MP plugin initialization sequence and adjusted biases default values
Open SDK Modules (OpenEB)
Enabled OpenEB (or the full SDK for SDK Pro customers) to be used as a submodule making it easier to integrate from source as a dependency in CMake and hence link with it statically
Added new command line option
--input-camera-config
to multiple C++ samples (e.g. Generic Tracking, Sparse Optical Flow etc.) allowing to restore settings to be used with a live camera from a JSON fileHarmonize command line options in samples for specifying input event file from
--input-raw-file
and--input-file
into--input-event-file
Updated Standalone encoders & decoder samples to latest RAW file standards
Fixed metavision_viewer ROI command line option that was failing for EVK3 GenX320
Fixed metavision_file_to_hdf5 that was raising an error on Ubuntu when the output path contained only a file name without a folder name
Fixed metavision_file_to_hdf5 that contained an assert that would fail when the sample was compiled in debug mode on Windows
Fixed metavision_psm that was not working when using a live camera
Advanced SDK Modules
Deprecated the
SpatterTrackerAlgorithm
that will be replaced by the new version already available withSpatterTrackerAlgorithmSync
that synchronously detects and tracks object in every provided events slice
Integration with third-party tools
New release of the Prophesee MVTec HALCON Acquisition Interface that fixes some issues on Windows and provides a Metavision HALCON Extension Package exposing the
PSM
andSpatter Tracker
algorithms in HDevelop with some pipeline examples.
Installation
Added a Dockerfile to ease the installation of OpenEB on Linux
Simplified the SDK Pro installation by merging the multiple compilations steps (OpenEB, Standalone Applications and Advanced Modules) in a single step.
Documentation
Added Programming guide about camera settings tuning including a section on how to save/load camera settings to/from files
Removed the Jupyter Notebook version of our Python Tutorials to ease future enhancements and maintenance of those guides
V4.5.1 Change Logs (22/12/2023)
Prophesee Devices
Fixed start sequence of EVK3 GenX320 MP adding missing frame blanking configuration that could lead to loss of data during transmission.
Fixed metavision_riscv_logger sample that was not working properly with EVK3 GenX320 MP
Documentation
Added “Train and Test Event-based Yolo Detection Model” tutorial that shows how to leverage the popular frame-based neural networks for event-based vision with minimum modifications
Added default biases values for GenX320 MP sensor in the Biases page
Added link to KC article about boosting Sync Out signal in the Synchronization page
V4.5.0 Change Logs (14/12/2023)
Prophesee Devices
Added support of EVK3 GenX320 MP based on the Mass Production (MP) model of the new GenX320 sensor
Added sample metavision_riscv_logger that shows how to receive log messages from an application embedded in the GenX320 sensor
Open SDK Modules (OpenEB)
In
I_ROI
class:Added
get_lines()
that returns active ROI/RONI linesReviewed implementation of
set_windows()
to leverage native “window mode” of IMX636 and Genx320 sensors
Added
RollingEventBuffer
utility class that can manage overlapping events time slices.In
I_EventsStream
class, the functionRawData *get_latest_raw_data(long &n_rawbytes)
is deprecated in favor ofDataTransfer::BufferPtr get_latest_raw_data()
that uses smart pointers to improve and simplify memory managementEnhanced File to HDF5 Converter to enable batch conversion of datasets
Added a
resize()
method in the event buffer structure exposed to python
Advanced SDK Modules
Modified the interface of the
TrackingAlgorithm
that now synchronously detects and tracks object in every provided events sliceModified the samples
metavision_generic_tracking
(C++ version and Python version) to use the new interface of theTrackingAlgorithm
and the newRollingEventBuffer
to de-correlate the tracking frequency from the accumulation timeModified the interface of the
PsmAlgorithm
that now synchronously detects and estimates the size of the particles in every provided events slice. As opposed to the Tracking algorithm, the accumulation is however still managed internally.Modified the samples
metavision_psm
(C++ version and Python version) to use the new interface of thePsmAlgorithm
Added
TimeGradientFlowAlgorithmT
class implementing a new local and dense Optical Flow algorithm and added it in the Dense Optical Flow C++ sample
Metavision Studio
Installation
Upgraded VCPKG from version
2022.03.10
to2023.11.20.
for Windows installation of OpenEB and SDK ProReviewed installation steps of NodeJS in SDK Pro install guides to use a more up-to-date procedure
Bumped pycocotools version from 2.0.4 to 2.0.7 to fix install issues
Documentation
Added Architecture section describing the design and workflows of HAL, Driver module and the Camera Plugins.
Added section listing support of Operating Systems and EVKs in previous versions of the SDK
Added Camera Plugin Upgrade Guide page listing all the API changes to take into account for the maintenance of the camera plugins.
Added instructions in Focus Adjustment page about alternate way to focus the camera and the risk of forgetting to set the provided CS-C adapter on the EVK4
In Biases page, added API usage examples showing how to disable biases ranges check
Clarified difference between HDF5 event files and HDF5 files generated by pre-processing in ML module
In Active Pixel Detection sample page, added that this tool can also be used to detect active pixels for other sensors than GenX320 (Gen3.1, Gen4.1 and IMX636)
Added new entry in the FAQ and Studio page about error raised when trying to read files with non-ANSI characters in the path
Data
Added Gen3 Gesture/Chifoumi dataset in DAT format that can be used in the classification training tutorial
Added Gen3 Gesture/Chifoumi dataset in pre-processed histo_quantized HDF5 format that can be used in the classification training sample
V4.4.0 Change Logs (10/10/2023)
Prophesee Devices
Added support of EVK3 GenX320 ES based on the Engineering Sample (ES) model of the new GenX320 sensor
Added support of EVK3D with a dedicated EVK3D viewer sample
Fixed plugin implementation of the functions setting ROI in
I_ROI
that were automatically callingMetavision::I_ROI::enable()
withTrue
value whereas the API requires to call it manually.
Open SDK Modules (OpenEB)
Added
I_RoiPixelMask
class to handle ROI (Region Of Interest) pixel mask on GenX320Added new functions in
I_ROI
:Renamed
I_EventRateNoiseFilterModule
class intoI_EventRateActivityFilterModule
for clarity (with deprecated alias for former name) and added new functions to handle new features of this module on GenX320Fixed bug in C++ File Cutter tool that caused output RAW file to have unexpected content in the header that would lead to further issues when file was then converted to HDF5
Advanced SDK Modules
Introduced new
ProximityFilterAlgorithm
class that only propagates events close enough to a particular point in the sensorAdded new ArUco Marker Tracking pipeline
Added new visualization option (arrows) in Dense Optical Flow C++ sample and Python sample
Improved performance of Model 3D Detection and Tracking sample
Fixed bug in Python Sparse Optical Flow sample that caused the arrows to be not displayed on Ubuntu
Packaging
Reviewed code samples organization and delivery:
C++ samples are now delivered in cpp_samples folders instead of samples (see Path of the Samples pages)
More samples are delivered in pre-compiled binaries to allow users to test them without having to go through the compilation step
Documentation
Added page for Event Frame GPU Loading C++ Sample
Added description of new Event Frame data formats supported by GenX320 sensor: Histo3D and Diff3D
Improved documentation of Particle Size Measurement C++ sample and Python sample
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.
Changes in SDK API
A new function was added to HAL API in this release:
bool I_EventRateNoiseFilterModule::is_enabled() const
New functions were added to
Camera class
:bool save() const
andbool load()
to save/load the camera settings
Advanced SDK Modules
Added Active Marker C++ sample showing how to detect and track active markers
Added improvements in the sample
metavision_spatter_tracking
(C++ version and Python version) As major improvements:Introduced a simple filter on non-moving (or slow-moving) objects
Added a more complete static clusters filter
Metavision Studio
Added support for serialization/deserialization of camera configuration.
OpenEB
Added Event Frame Generation C++ sample showing how to generate and display histo/diff event frames using
EventFrameDiffGenerationAlgorithm
andEventFrameHistoGenerationAlgorithm
algorithms.Added Time Surface Python sample showing how to compute the Time Surface of the CD events and to display it using our SDK UI module
Fixed bug in C++ Sparse Optical Flow and Dense Optical Flow preventing to use them with VGA sensors
In
metavision_filtering
samples C++ and Python, we now use a larger ROI that is more visible when using HD sensorsAdded new options in metavision_viewer sample to save/load camera state (Serialization):
--output-camera-config
and--input-camera-config
Documentation
Added Training Videos page listing all our available videos about Event-Based technology
Added new FAQ topic: EVKs interfacing with FPGA/custom SoC
Added information about speed estimation using either
metavision_sparse_optical_flow
(C++ version and Python version) ormetavision_spatter_tracking
(C++ version and Python version)
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 specifiedAdded 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)
General
Metavision Designer Python API have been discontinued. For fast prototyping of event-based vision applications we now recommend the use of the SDK Python API that can be discovered following the Get Started using Python tutorial.
Added SDK version information in windows DLLs to ease issues analysis and debugging
Open SDK Modules (OpenEB)
Fixed and refactored some HAL Python API functions
Add missing functions in
DeviceDiscovery
,I_AntiFlickerModule
,I_CameraSynchronization
,I_ErcModule
,I_HW_Identification
I_LL_Biases
,I_PluginSoftwareInfo
Refactored functions to set the filter type in
I_EventTrailFilterModule
Added more options when creating an OpenGL texture in UI module
Added missing STL includes in HAL and Base C++ headers
Advanced SDK Modules
Aligned visu-scale option behaviour in Python and C++ Dense Optical samples
Fixed bug in Python Jet Monitoring Sample preventing to set an ROI
Fixed infinite loop in Model 3D Detection and Tracking sample when run offline
Metavision Studio
Statistics section is now split in two parts and it is possible to disable External Trigger Events stats
Node.js modules were upgraded to benefit from security and performances updates
Prophesee Devices
support of all the Prophesee EVKs is now handled via a single plugin file (
hal_plugin_prophesee
). The overall plugin mechanism remains the same, the only difference being that this plugin allows to open multiple devices instead of a single one.
Documentation
Reorganized dispersed pages that presented SDK modules content into a collection of programming guides
Added information about bias_refr vs microseconds and
Metavision::I_Monitoring::get_pixel_dead_time()
method in biases pageAdded new FAQ topic related to Metavision Studio internal error
Added links to research paper and tracking algo repo in page of Corner Detection sample
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 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
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 Dense 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
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 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)
Prophesee Devices
Released new firmware for EVK3 and EVK4, upgrade is required
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 ofshow_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 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. 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
CV3D module
UI module
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.