koide3/direct_visual_lidar_calibration

A toolbox for target-less LiDAR-camera calibration [ROS1/ROS2]

C++

1,566

105 commits

updated Jul 22, 2026

See the code

README

direct_visual_lidar_calibration

This package provides a toolbox for LiDAR-camera calibration that is:

  • Generalizable: It can handle various LiDAR and camera projection models including spinning and non-repetitive scan LiDARs, and pinhole, fisheye, and omnidirectional projection cameras.
  • Target-less: It does not require a calibration target but uses the environment structure and texture for calibration.
  • Single-shot: At a minimum, only one pairing of a LiDAR point cloud and a camera image is required for calibration. Optionally, multiple LiDAR-camera data pairs can be used for improving the accuracy.
  • Automatic: The calibration process is automatic and does not require an initial guess.
  • Accurate and robust: It employs a pixel-level direct LiDAR-camera registration algorithm that is more robust and accurate compared to edge-based indirect LiDAR-camera registration.

Documentation: https://koide3.github.io/direct_visual_lidar_calibration/
Docker hub: koide3/direct_visual_lidar_calibration

Build Docker Image Size (latest by date)

213393920-501f754f-c19f-4bab-af82-76a70d2ec6c6

Video

Dependencies

Getting started

  1. Installation / Docker images
  2. Data collection
  3. Calibration example
  4. Program details

License

This package is released under the MIT license.

Publication

Koide et al., General, Single-shot, Target-less, and Automatic LiDAR-Camera Extrinsic Calibration Toolbox, ICRA2023, [PDF]

Contact

Kenji Koide, National Institute of Advanced Industrial Science and Technology (AIST), Japan

calibration
camera
lidar
nid
ros
ros2

koide3/direct_visual_lidar_calibration

A toolbox for target-less LiDAR-camera calibration [ROS1/ROS2]

C++

1,566

105 commits

updated Jul 22, 2026

See the code

README

direct_visual_lidar_calibration

This package provides a toolbox for LiDAR-camera calibration that is:

  • Generalizable: It can handle various LiDAR and camera projection models including spinning and non-repetitive scan LiDARs, and pinhole, fisheye, and omnidirectional projection cameras.
  • Target-less: It does not require a calibration target but uses the environment structure and texture for calibration.
  • Single-shot: At a minimum, only one pairing of a LiDAR point cloud and a camera image is required for calibration. Optionally, multiple LiDAR-camera data pairs can be used for improving the accuracy.
  • Automatic: The calibration process is automatic and does not require an initial guess.
  • Accurate and robust: It employs a pixel-level direct LiDAR-camera registration algorithm that is more robust and accurate compared to edge-based indirect LiDAR-camera registration.

Documentation: https://koide3.github.io/direct_visual_lidar_calibration/
Docker hub: koide3/direct_visual_lidar_calibration

Build Docker Image Size (latest by date)

213393920-501f754f-c19f-4bab-af82-76a70d2ec6c6

Video

Dependencies

Getting started

  1. Installation / Docker images
  2. Data collection
  3. Calibration example
  4. Program details

License

This package is released under the MIT license.

Publication

Koide et al., General, Single-shot, Target-less, and Automatic LiDAR-Camera Extrinsic Calibration Toolbox, ICRA2023, [PDF]

Contact

Kenji Koide, National Institute of Advanced Industrial Science and Technology (AIST), Japan

calibration
camera
lidar
nid
ros
ros2

Significant stargazers

徒言

376 followers · starred Mar 2023

Han Hu

116 followers · starred Nov 2024