[Optimization] Reduce Rerun memory footprint via automatic image downsampling #2728
+11
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
This PR optimizes the visualization pipeline by introducing an optional image downsampling mechanism for Rerun.
The Problem:
When recording or replaying high-resolution datasets (e.g., 1080p * n), Rerun's default behavior of caching full-resolution frames leads to excessive RAM consumption and system lag, especially during long recording sessions on edge devices.
The Solution:
Added a dynamic resizing logic in
log_rerun_data. If the environment variableLEROBOT_RERUN_MAX_IMAGE_WIDTHis set, images sent to Rerun will be downsampled to that width while maintaining the aspect ratio.Key Features:
cv2.INTER_AREAfor high-quality downsampling.Environment Variable:
LEROBOT_RERUN_MAX_IMAGE_WIDTH: Set the maximum width (e.g., 480 or 640) for images displayed in Rerun.Testing:
export LEROBOT_RERUN_MAX_IMAGE_WIDTH=480: Memory usage remained stable throughout the entire session.