Releases: prophesee-ai/openeb
v5.0.0
Release of OpenEB v5.0.0
Release Notes
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.
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() from I_HW_Identification class
- Removed FileProducerAlgorithmT() from SDK Core
- Removed or relocated functions from Camera class API that duplicated HAL features:
- Functions load_from_file() and save_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
API modifications
- Renamed the "Driver" SDK module to "Stream" to more accurately reflect its functionality and purpose
- Renamed: DataTransfer class to Metavision::DataTransfer::RawDataProducer which is now the base class of all classes gathering raw data from the device. The derived RawDataProducer class now owns its buffer pool to give plugin's implementers finer controls over memory layout/allocation. The object Metavision::DataTransfer::DefaultBufferPool is the default buffer pool type of choice. For an example of how to use the new SampleDataTransfer class API, refer to the Camera Plugin Toy Sample.
- Renamed reset_timestamp() to :cpp:func:reset_last_timestamp() in Metavision::I_EventsStreamDecoder
- open_raw_file() functions from HAL API are now using std::filesystem::path instead of std::string for the file path parameter
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 Python metavision_camera_stream_slicer samples. The related C++ class SyncedCameraStreamsSlicer (and its Python binding) slices events from a master and slave cameras system and is illustrated in C++ and Python metavision_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.
- OpenEB other changes and fixes
- Removed the legacy viewer Metavision Player, which has been replaced by 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
v4.6.2
Open SDK Modules (OpenEB)
- Improved detection of camera connection errors and added error handling code to
metavision_viewer
- Fixed issue in
CameraStage
constructor
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
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 to ON
- 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)
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)
v4.6.0
Prophesee Devices
- Added support of EVT3 and EVT2 in EVK3 GenX320 MP (Mass Production) plugin
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 (
Metavision::HalConnectionException
) to catch camera connection errors - Deprecated
I_EventsStreamDecoder::preset_timestamp()
andI_EventsStreamDecoder::preset_timestamp_impl()
and added functionsI_EventsStreamDecoder::reset_last_timestamp()
andI_EventsStreamDecoder::reset_last_timestamp_impl()
to replace them and clarify their role
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
metavision_core.event_io.EventFrameIterator
to displays the content of Histo3D and Diff3D event frames
v4.5.2
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
SDK Modules
- 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 file
- Harmonize 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
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.
Installation
- Added a Dockerfile to ease the installation of OpenEB on Linux
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
-
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
-
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 lines
- Reviewed 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 function
RawData *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 management -
Enhanced File to HDF5 Converter to enable batch conversion of datasets
-
Added a
resize()
method in the event buffer structure exposed to python
-
-
Installation
- Upgraded VCPKG from version 2022.03.10 to 2023.11.20. for Windows installation
-
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.
-
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 about error raised when trying to read files with non-ANSI characters in the path
-
v4.4.0
-
Prophesee Devices
- Added support of EVK3 GenX320 based on the new GenX320 sensor
- Added support of EVK3D Demo Kit with a dedicated EVK3D viewer sample
- Fixed plugin implementation of the functions setting ROI in I_ROI that were automatically calling Metavision::I_ROI::enable() with True 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 GenX320
-
Added new functions in I_ROI:
-
Renamed I_EventRateNoiseFilterModule class into I_EventRateActivityFilterModule for clarity (with deprecated alias for former name) and added new functions to handle new features of this module on GenX320
-
Fixed 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
-
-
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
- Reviewed code samples organization and delivery:
v4.3.0
- Added Event Frame Generation C++ sample showing how to generate and display histo/diff event frames using EventFrameDiffGenerationAlgorithm and EventFrameHistoGenerationAlgorithm 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 sensors
- Added new options in metavision_viewer sample to save/load camera state (Serialization): --output-camera-config and --input-camera-config
v4.2.0
- Fixed and refactored some HAL Python API functions
- Add missing functions in
Metavision::DeviceDiscovery
,Metavision::I_AntiFlickerModule
,Metavision::I_CameraSynchronization
,Metavision::I_ErcModule
,Metavision::I_HW_Identification
,Metavision::I_LL_Biases
,Metavision::I_PluginSoftwareInfo
- Refactored functions to set the filter type
Metavision::I_EventTrailFilterModule
- Add missing functions in
- Added more options when creating an OpenGL texture in UI module
- Added missing STL includes in HAL and Base C++ headers