Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

A2 Colorizer

Colorize lidar point clouds with 360° camera imagery and export a self-contained E57 (point cloud + 360° panoramas in one file). Windows desktop app.

Interface


⬇ Download

The app is packaged as a single Windows .exe (~1.4 GB) with all heavy dependencies already bundled inside — CUDA runtime, GPU libraries, ffmpeg and the neural models. Nothing to install: just download and run.

Download ColorizeA2.exe (Google Drive)

No Python and no CUDA toolkit installation is required — but you do need an NVIDIA GPU (see Requirements).


What it is

A2 Colorizer takes a lidar scan (point cloud + trajectory) plus a 360° camera recording and paints the real photographic color onto every point. It can also package the cloud together with the 360° panoramas into a single E57 file.

  • Heavily tailored to scans produced by Share Studio (expected files: *.bag, trajectory.txt, *_uncolorized.las).
  • Verified with Insta360 X4 and DJI Osmo 360 cameras.

Requirements

  • Windows 10/11 (64-bit)
  • NVIDIA GPU with CUDA cores — the coloring runs on the GPU. The CUDA runtime is bundled, so no separate CUDA install is needed, but a CUDA-capable NVIDIA card is required.
  • The stitched 360° video (equirectangular .mp4) exported from the camera's own stitching app.

How it works (in short)

  • Time synchronization between the camera and the lidar is automatic — it correlates the IMU (gyro) data of the camera with the lidar's IMU. No clapper, no manual time offset.
  • Angular extrinsics (camera ↔ lidar rotation) are determined automatically: a rough estimate from the IMU, then refined during processing by aligning cloud edges to image edges.
  • Linear extrinsics (the lever arm — the camera's offset from the lidar) are entered approximately by hand (your rig's measurements).

Interface — field by field

Matches the screenshot above.

DATA

Field What it is / what to enter
video (.mp4) The stitched 360° equirectangular video from the camera. The source of color.
camera IMU (.osv / .insv) The raw camera file — .insv for Insta360, .osv for DJI Osmo. Used for time synchronization.
bag (.bag) The lidar bag from Share Studio (point cloud + lidar IMU). Used for time sync and for automatic rotation calibration.
LAS The point cloud to colorize (the black-and-white *_uncolorized.las).
trajectory trajectory.txt from Share Studio — the SLAM path (positions/orientations over time).
extrinsics (.json) Camera ↔ lidar calibration. Leave empty and tick determine extrinsics to compute it automatically (saved next to the output).
output Where to save the colored .las.

EXTRINSICS

Field What it is / what to enter
determine extrinsics Tick to auto-compute the camera ↔ lidar rotation (needs the bag). If unticked, you must supply an extrinsics .json.
lever arm — back / up / right (cm) The approximate position of the camera relative to the lidar. Enter your rig's measured offsets.

SETTINGS

Field What it is / what to enter
fps How many video frames per second to sample for coloring. Higher = denser color voting, slower.
res Video decode resolution (Full or half).
nadir Nadir mask angle (degrees). Hides a cone straight down under the camera (operator / monopod). Larger = hides more.
votes How many frames vote for each point's color (consensus — removes ghosting).
range Maximum distance (m) at which a point still gets colored.
cut L / cut R Crop columns from the left / right of each frame (degrees) — a quick way to cut operators walking beside the rig.
remove people Automatically detect and hide operators (person segmentation) so they don't paint onto the cloud (and are masked out of the panoramas).

Buttons

  • COLORIZE — run the colorization → colored .las.
  • Abort — stop, keeping the partial result.
  • Create E57 — build a single .e57 with the cloud + 360° panoramas placed along the trajectory. Works even without a colored cloud — it can build the E57 straight from the black-and-white cloud (the panoramas carry the color), which is faster. With remove people on, operators are masked out of the panoramas too.
  • Exit — close.

Typical workflow

  1. Fill in video, camera IMU, bag, LAS, trajectory.
  2. Tick determine extrinsics and enter the approximate lever arm.
  3. COLORIZE → colored .las.
  4. (optional) Create E57 → a shareable .e57 with the cloud + panoramas.

Author

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors