Table of Contents
Requirements and Installation
Which operating systems are supported by Metavision SDK?
Metavision SDK supports Linux Ubuntu 20.04 / 22.04 and Windows 10 64-bit. For other OS, you can compile OpenEB which contains the source code of our Open modules. If you want to compile the whole SDK (including our Advanced modules with event-based algorithms) on another platform, you should access our SDK Pro offer). Contact us for a quote.
Can I use Metavision SDK Advanced modules on other platforms than the ones supported?
How can I retrieve information on installed Prophesee software?
You can retrieve the information on the installed software and their versions with these tools:
Can I use a Virtual Machine (VM) to work with my camera?
Prophesee cameras require USB 3.0, and due to limited support of USB 3.0 by Virtual Machines, your display and USB will not perform as expected, therefore we do not recommend using Virtual Machines.
Can I start with Metavision SDK and then eventually move to Metavision SDK Pro?
Yes, both have been designed to enable seamless evolution. All work done on SDK will be preserved should you wish to move to SDK Pro.
Why should I get Metavision SDK Pro?
You would typically consider SDK Pro if you need to compile your code on custom platforms or if you want to access source code for more in-depth customization. Note also that SDK Pro allows you to maintain total control over your code through time as it will give you access to advanced resources and support.
What is Metavision SDK Pro pricing model?
Metavision SDK Pro Licensing Terms and Conditions include commercial rights, with an initial license fee and volume-based distribution fees Support for new versions for one year is included, with additional year extensions available.
What is the difference between SDK Pro and OpenEB?
OpenEB comes with the source code of the fundamental modules of Metavision SDK whereas Metavision SDK Pro comes with the full source code of Metavision SDK including advanced event-based algorithms and Metavision Studio. In addition, SDK Pro grants advanced access to Prophesee Knowledge Center and 2 hours premium support.
Live data and recorded files
What kind of data do we get from a Prophesee sensor?
Prophesee sensor are streaming Contrast Detection (CD) events. They represent a response of a pixel to a change of illumination and are of 2 types:
CD ON events correspond to positive change : from dark to light
CD OFF events correspond to negative change : from light to dark
Can I record data from supported cameras? Which format is used for data recording?
Alternatively, you can use Metavision Viewer to record RAW files. As you have an access to the source code of this tool, you can see the Metavision SDK in use and even enhance it to fit your needs.
In addition, you can convert files to the following formats:
What are the .tmp_index files created when I open a RAW file?
This index file stores metadata about where timestamps are located within the file. More information on those files can be found in our page about RAW index files.
How do I know what is the event encoding format of a file?
You can find the EVT format (EVT2, EVT21 or EVT3 for RAW files, ECF for HDF5 event files) of your file by one of those methods:
How can I check the duration and the event rate of my file?
You can use metavision_file_info application:
metavision_file_info -i YOUR_FILE.raw
How can I read IMU data with Metavision?
Some of Prophesee products are able to record IMU (Inertial Measurement Unit) data along with the sensor native data stream. This IMU is not part of our sensors but is mounted on another board (Invensense MPU-9250) within some of our EKVs. Until version 2.0.0, IMU was supported in Metavision, but this feature was not leveraged by any of our partner’s camera, so we decided that supporting it was not relevant for us and we removed it since version 2.1.0 of Metavision SDK.
If you want to use the IMU or if you have RAW files that contain IMU data that you want to decode, the easiest way is to use Metavision 2.0.0. Please check our Knowledge Center page on IMU data.
If you want to read IMU data with the latest version of Metavision, you will have to program your own events decoder. In that case, check our Knowledge Center page on IMU format.
How can I change the logging level at runtime?
Metavision uses its own logging mechanism with four levels:
Any message that has a higher or equal level will be enabled to pass through, and any message that has a lower level will be ignored.
The default level (
INFO) can be changed by setting the environment variable
MV_LOG_LEVEL. This can help you troubleshoot problems.
For example, to get a more detailed log,
TRACE level can be used:
Can I use Prophesee Event-Based cameras with other Machine Vision libraries?
Yes, for example Prophesee offers an acquisition interface for MVTec HALCON. Installation and getting started instructions can be found in the Knowledge Center MVTec HALCON Acquisition Interface page. There is also a video giving an overview of the bridge and how to use it. If you are interested in other libraries, please let us know.
Why is my compiled C++ sample is running slow?
If your C++ sample seems to run slow, please ensure compilation was configured in Release mode. See our page on sample compilation for detailed compilation steps.
Another reason for your sample to be running slow could be that your sensor is capturing too many events. This could be caused by your lighting conditions, the focus adjustment or some camera settings that should be adjusted to your project. You can find some information to help you enhance your setup and settings in our page on recording with Metavision Studio.
Where can I find C++ headers?
The C++ headers are located in the installation directory organized by modules. For example for the CV module:
<install-prefix>/include/metavision/sdk ├── cv │ ├── algorithms │ │ └── detail │ ├── configs │ ├── events │ │ └── detail │ └── utils │ └── detail └── other modules...
<install-prefix> refers to the path where the SDK is installed:
/usrwhen installing with the packages and
/usr/localwhen building from source code with the deployment step
In addition to the headers, each of the folders optionally has a
detail folder that contain the code that has been removed
from the main headers in order to make them more readable. The
detail folders include method implementations, helpers, macros, etc.
which are not meant to be included directly in your application.
Hardware and Setup
How can I retrieve information on plugged cameras?
You can retrieve the information on the plugged cameras with metavision_platform_info tool.
How can I upgrade the firmware of my camera?
Prophesee EVKs and Partner’s camera are coming with firmwares. Depending on the model and the acquisition date, you will have a specific version installed. Upgrade of the firmware is optional unless it is mentioned as required in the Metavision SDK Release Note or if you get a message similar to “The EVK camera with serial XXX is using an old firmware version. Please upgrade to latest version”.
How to interface Prophesee products with an FPGA/custom SoC?
If you want to attach an FPGA/custom SoC to our EVKs, doing this via the USB is not the best way.
Instead, we would recommend you to check our Reference Design Kits (RDKs) offer.
RDKs are delivered with source files and schematics of the CCAM5 module.
The CCAM5 module provides a Prophesee Gen3-VGA or Gen4-HD resolution event-based vision sensor with MIPI D-PHY CSI-2 compatible interface in a 30mm x 30mm PCB module format. The module contains the necessary power supply and control circuits required by the sensor whilst presenting standard control and data interfaces to allow straightforward integration into a system.
It is also possible to access our Vivado RTL project and petalinux project built around AMD’s Zynq Ultrascale+ MPSoC.
Please contact our sales team at firstname.lastname@example.org for more details.
What kind of extension USB cable should I use for my camera?
If the USB cables provided with the camera is too short for your use, you will have to use an extension cable, but you have to be careful as you will quickly reach the USB specs length limits for the support of USB 3.0 super speed. Hence, we recommend to use to use an active USB 3.0 extension cable with an external power supply. Here is an example of such a cable: StarTech.com Active USB 3.0 Extension Cable with AC Power Adapter
To avoid flicker events, which non-flickering light source should I use?
The best non-flickering light source is any halogen lighting. If you want LED source, you must double check it is not flickering (lots of them are using PWM modulation for dimming, and produce flicker). We successfully used Dracast Camlux Pro Bi-Color.
How can I mask the effect of crazy/hot pixels?
Our last generations of sensors (Gen4.1, IMX636 and GenX320) provide a Digital Event Mask that allows to silent a list of pixels. This feature can be used to turn off crazy/hot pixels and can be seen in action in metavision_hal_showcase sample.
What is the Quantum Efficiency / Spectral Response of Prophesee Sensors?
This information can be found in the Datasheet of our sensors, but we share some indicative figures in a dedicated page in the Knowledge Center.
What is the maximum illuminance a Prophesee event-based sensor can support without being damaged?
We did not characterize a maximum illuminance accepted by our sensors but from our test, we observe that when exposed to 100 klux for a limited time the sensors are not damaged. Though, at this illuminance level, a number of pixel won’t be able to send any more event as their potentials will be quickly saturated.
How can I fix the error ‘Entry Point Not Found’ when launching Metavision applications on Windows?
When running Metavision applications on Windows, you may hit the following error message: “Entry Point Not Found. The procedure entry point inflateValidate could not be located in the dynamic link library C:\Program Files\Prophesee\bin\libpng16.dll.”
This means version of libpng included in Metavision is incompatible with some other libraries of your installation.
Most probably, there are multiple copies of
zlib1.dll in your installation and the first one found by Windows is not ours.
First, check if multiple
zlib1.dll can indeed be found in your installation.
For this open an explorer and search for
You should at least have one result in the folder
If you find multiple results, you need to reorder your Path environment variables and move Prophesee Paths first. Here is one way to do it:
open the start menu
select edit environment variables of the system
click environment variables
in system variables, locate Path
edit and reorder the environment variables to have Prophesee Paths at the top
How can I fix the error ‘the code execution cannot proceed because msvcp140.dll / msvcp140_1.dll was not found’ on Windows?
During installation of Metavision SDK on Windows, we check the presence of MS Visual C++, and we rely on the registry to know if the libs are there or not.
If you get this error, it could mean that the uninstall of the previous MS Visual C++ Redistributable was not done properly (without any visible error), and you might have a registry value without the installed software. In this case, the installation of Metavision SDK on Windows could lack MS Visual C++.
To fix the issue, please check if the MS Visual C++ Redistributable is installed. If not, then install it properly.
How can I fix the error ‘Failed to load module “canberra-gtk-module”’ on Ubuntu?
Install the package required to display videos, as mentioned in the installation tutorial:
sudo apt -y install libcanberra-gtk-module
How can I fix the error ‘No plugin available for input stream. Could not identify source from header’ when reading RAW files?
$ metavision_viewer -i /path/to/my_file.raw [HAL][ERROR] While opening RAW file '/path/to/my_file.raw': terminate called after throwing an instance of 'Metavision::HalException' what(): ------------------------------------------------ Metavision HAL exception Error 101000: No plugin available for input stream. Could not identify source from header: % Date 2021-02-03 11:53:21 % integrator_name Prophesee (...) ------------------------------------------------
This problem can have multiple causes:
the Camera Plugins are not found. If you installed third party plugins or compiled plugins yourself, you need to specify the location of the plugin binaries using the
MV_HAL_PLUGIN_PATHenvironment variable (follow the camera plugins installation guide).
the RAW file is not recognized. The RAW file header contains ASCII information that is used to detect what plugin to use when opening the file with Metavision SDK. If this header is missing some required metadata, opening the file will fail. For example, the error
No plugin availablecould be caused by a missing or malformed
plugin_namein the header. Hence, it’s good practice to check this header with a text editor when hitting this error, and fix it if needed. Note that the application metavision_file_info prints some information about the RAW file (including the
plugin_name) that could help fix the RAW file. Finally, if you have multiple RAW files to update, contact us so that we can provide you with a script.
Why is my camera not detected by the SDK?
When using SDK applications or API, you may face situations where your camera is properly plugged to your laptop but not detected by the software. For example when using Metavision Studio you would get the message “No cameras available, please check that a camera is connected”, when launching Metavision Viewer or following our Getting Started Guides, you would get the error “Camera not found. Check that a camera is plugged into your system and retry”, or when trying to get information about your camera using metavision_platform_info, it would output “No systems USB connected have been found on your platform”. In any of those cases, check the following points to find the root cause:
Make sure that your camera is detected by your Operating System.
On Linux, type
lsusbin a terminal and check that the camera appears in the list. If not, try other USB port and cables.
On Windows, check if the camera is listed in the Device Manager in the “Universal Serial Bus Devices” section. If not, it could be caused by a permission problem during the drivers installation, so check the question about installation of unsigned drivers on Windows.
If you are using a Prophesee EVK1, this camera is not supported by the SDK since version 4.0.0, so make sure that you don’t have an SDK version more recent that 3.1.2. To download this version, access our Download Center
Make sure that the camera plugins were properly installed. This is specially important if you are using a camera from one of our partners. Follow the installation guide of the partner and see camera plugins installation guide for some information about the plugins.
If after those checks the camera is sill not detected, contact us by creating a support ticket with as much information as possible about your camera and platform (camera model, operating system, SDK version etc.)
How to install EVKs driver on Windows 10, if the installation of unsigned drivers is disabled on my PC?
In some cases, the installation of Evaluation Kit drivers could be not authorized on your Windows PC. This depend generally on the policies applied by your IT department. If you are in that situation, you can temporally authorize the installation by following the steps described on this page: How to Install Unsigned Drivers on Windows 10
How to resolve “EVKx device is not enumerated as a USB 3 SuperSpeed device” or device not recognized as USB3?
First, note that EVKs have been designed to avoid bandwidth bottlenecks due to communication interfaces. The bandwidth offered by USB 3.0 bulk endpoints is not guaranteed and can be shared with other devices connected to the same host controller. Prophesee recommends connecting only one USB device to the host controller for optimal performance.
If the issues persist after removing excess USB connections to the same host controller and ensuring the port is at least USB 3.0 compatible, you may be running into an issue related to the backwards compatibility from USB 3.0 to USB 2.0. In this case, please disconnect the cable from your PC USB 3.0 port and reconnect the cable with a more aggressive speed (still maintaining control to not damage the cable or port).
Also you can try to connect the USB A side to computer before connecting the USB C side to the EVK (for those with a USB C port).
Should the issues still persist, please contact us for further assistance.
Why do I get the message ‘Could not enumerate devices on board EVKv2 frame too short to be valid’ when using an EVK2?
This message means that the firmware of your EVK2 needs to be upgraded. To perform the upgrade, follow the procedure described in the Knowledge Center EVK2 upgrade page.
To have access to this page, request an account in the Knowledge Center and contact us (including a copy of the error message you get as well as the Serial Number of your camera) to have access to the EVK2 upgrade page.
Why do I get the message “[HAL][WARNING] Unable to open device: LIBUSB_ERROR_ACCESS” when using my EVK on Ubuntu?
This means that your camera was detected but the operating system does not allow you to access it. This can be caused by the absence of udev rules files for your camera. To add the missing files, you need to download OpenEB, copy the udev rules files in the system path and reload them with this command:
sudo cp <OPENEB_SRC_DIR>/hal_psee_plugins/resources/rules/*.rules /etc/udev/rules.d sudo udevadm control --reload-rules sudo udevadm trigger
What should I do when Studio shows the error “An error has been detected in the event stream, some data was corrupted and could not be recovered”?
This log message is raised by the EVT3 decoder
when detecting a
InvalidVectBase protocol violation. See the section
Event Stream decoding in Metavision Studio
that explains how to configure and mitigate this situation.
What should I do when Studio shows the error “Metavision Studio internal error”?
This error can have the same root cause as the error ‘Entry Point Not Found’.
Also, the similar error can happen when Metavision SDK was upgraded and previous version was not properly uninstalled. In that case we advise to uninstall properly and redo the install.
What should I do when getting HAL error or warning message “Evt3 protocol violation detected”?
This log message is raised by the EVT3 decoder when detecting a protocol violation. The first counter-measure is to check if the event rate produced by the sensor can be reduced. To do so, check your lighting, focus, and sensor settings (biases, ROI, ESP…) as explained in the section First recording from live camera with Metavision Studio. You can also tune the behaviour of the EVT3 decoder to decide what protocol violation you want to detect.
How to fix the warning ‘New Boost version may have incorrect or missing dependencies’ when compiling on Windows?
When compiling OpenEB or SDK samples on Windows, depending on your version of CMake, you might get warnings like:
CMake Warning at C:/Program Files/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1354 (message): New Boost version may have incorrect or missing dependencies and imported targets
Those warnings can be safely ignored. Though, if you want to get rid of them, you may upgrade to a newer version of CMake, but we don’t fully guarantee you won’t hit other problems as compilation was not tested with the most recent CMake versions.
How can I fix the error ‘CMake Error Could NOT find Python3’ when compiling OpenEB on Ubuntu?
When compiling OpenEB on Ubuntu,
the generation of the makefiles
might fail with
Could NOT find Python3 whereas you do have a Python version that we support.
This problem can be caused by a more recent version of Python present on your system that cmake is trying to use.
The error could be similar to:
$ cmake .. -DBUILD_TESTING=OFF -- The C compiler identification is GNU 9.3.0 (...) -- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: program_options filesystem timer chrono thread CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message): Could NOT find Python3 (missing: Python3_INCLUDE_DIRS Python3_LIBRARIES Development Development.Module Development.Embed) (found version "3.9.5") Call Stack (most recent call first): /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE) cmake/Modules/FindPython/Support.cmake:2999 (find_package_handle_standard_args) cmake/Modules/FindPython3.cmake:391 (include) cmake/custom_functions/python3.cmake:63 (find_package) CMakeLists.txt:211 (include)
In that case, we can see that cmake found some version of the Python interpreter, but it then fails because
it does not find other required components from this specific version.
The solution is to specify to cmake which version of Python to use with the option
For example to specify Python 3.8:
$ which python3.8 /usr/bin/python3.8 $ cmake .. -DBUILD_TESTING=OFF -DPython3_EXECUTABLE=/usr/bin/python3.8 -- The C compiler identification is GNU 9.3.0 (...) -- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: program_options filesystem timer chrono thread -- Found Python3: /usr/bin/python3.8 (found version "3.8.10") found components: Interpreter Development Development.Module Development.Embed (...) -- Configuring done -- Generating done -- Build files have been written to: /home/user/dev/openeb/build
How can I contact Prophesee Support if I was unable to fix my problem using online documentation?
This public online documentation covers many topics of our Metavision SDK offer, but more hardware documentation, application notes and support tools can be found in Prophesee Knowledge Center. You can get access to premium content if you are a Prophesee hardware customer by creating your Knowledge Center account. If you are still unable to find an answer to your question, you will then also be able to access our support request ticketing tool to contact support.