FAQ

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?

To do so, you need to acquire the source code of the Advanced modules with our SDK Pro offer). Contact us for a quote.

How can I retrieve information on installed Prophesee software?

You can retrieve the information on the installed software and their versions with these applications:

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.

Software Packaging

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

For more information, check our pages on event-based concepts and events streaming and decoding.

Can I record data from supported cameras? Which format is used for data recording?

You can record data with Metavision Studio. Data are recorded to RAW format. However, Metavision Studio allows you to export your recording in AVI format.

Alternatively, you can use the application Metavision Viewer to record RAW files. As you have an access to the source code of this application, 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.

Software Configuration

How can I change the logging level at runtime?

Metavision uses its own logging mechanism with four levels: TRACE, INFO, WARNING, ERROR. 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:

Linux

export MV_LOG_LEVEL=TRACE

Windows

set MV_LOG_LEVEL=TRACE

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.

My compiled 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.

Hardware and Setup

How can I retrieve information on plugged cameras?

You can retrieve the information on the plugged cameras with metavision_platform_info application.

metavision_platform_info

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”.

For Prophesee EVKs, the upgrade procedure is described in the Knowledge Center EVKs firmware upgrade page. To have access to this page, please request an account.

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). Should the issues still persist, please contact us for further assistance.

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 (Gen41 and IMX636) 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.

Troubleshooting

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 zlib1.dll. You should at least have one result in the folder C:\Program Files\Prophesee\third_party\bin

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

  • search environment

  • 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

Updating Path in System Variables

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.

It seems that the uninstall of the previous MS Visual C++ Redistributable was not done properly (without any visible error), and you could end up with 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.

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.

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

Why is my camera not detected on Linux and I get the error “[HAL][WARNING] Unable to open device: LIBUSB_ERROR_ACCESS”?

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

How can I fix the error ‘No plugin available for input stream. Could not identify source from header’ when reading RAW files?

This error message can occur when trying to read a RAW file, for example with Metavision Viewer:

$ 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_PATH environment 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 available could be caused by a missing or malformed plugin_name in 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.

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 -DPython3_EXECUTABLE=<path_to_python_to_use>.

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 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 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

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.

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 NonMonotonicTimeHigh or InvalidVectBase protocol violation. See the section Event Stream decoding in Metavision Studio that explains how to configure and mitigate this situation.

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.