sevivi is a python package and command line tool to generate videos of sensor data graphs synchronized to a video of the sensor movement.
Free software: MIT license
Sevivi is designed to render plots of sensor data next to a video that was taken synchronously, synchronizing the sensor data precisely to the video. It allows you to investigate why certain patterns occur in your sensor data based on the exact moment in the video.
It can be used as a command-line program or a library for more advanced usage, and the following video types are supported:
Render sensor data with IMUs next to a video with skeleton data
Render sensor data with IMUs next to a video provided together with IMU data
Render arbitrary sensor data next to a video, synchronizing with manual offsets
Install the package from pypi:
pip install sevivi
Check out the usage documentation, please! If you just want to render a video to get started, keep reading. After you have downloaded the repository, you can use our test data. Run the following:
git clone email@example.com:your_name_here/sevivi.git
pip install sevivi
If you want to use sevivi as a library, you can copy-paste the following code into your project. You should download our test files for this to run immediately.
import pandas as pd
from sevivi.config import RenderConfig, ManuallySynchronizedSensorConfig
from sevivi.image_provider import GraphImageProvider, VideoImuCaptureAppImageProvider
from sevivi.video_renderer import VideoRenderer
video_provider = VideoImuCaptureAppImageProvider(
# create a GraphImageProvider for each of your sensors
sensor_config = ManuallySynchronizedSensorConfig()
sensor_config.offset_seconds = 0.0
sensor_config.name = "Human-Readable Name"
sensor_config.path = "test_files/sensors/imu_synchronization/camera_imu.csv.gz"
data = pd.read_csv(sensor_config.path, index_col=0, parse_dates=True)
graph_image_provider = GraphImageProvider(data, sensor_config)
# render the video
renderer = VideoRenderer(RenderConfig(), video_provider, [graph_image_provider])