{"id":13436086,"url":"https://github.com/hku-mars/livox_camera_calib","last_synced_at":"2025-05-16T10:06:27.826Z","repository":{"id":37337635,"uuid":"342868148","full_name":"hku-mars/livox_camera_calib","owner":"hku-mars","description":"This repository is used for automatic calibration between high resolution LiDAR and camera in targetless scenes. ","archived":false,"fork":false,"pushed_at":"2024-08-21T00:53:17.000Z","size":23094,"stargazers_count":1026,"open_issues_count":63,"forks_count":220,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-04-09T04:07:09.792Z","etag":null,"topics":["calibration","point-cloud"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hku-mars.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-27T13:53:30.000Z","updated_at":"2025-04-09T02:16:05.000Z","dependencies_parsed_at":"2024-04-10T10:13:45.679Z","dependency_job_id":"b3765616-665e-4284-80b8-732f845734a2","html_url":"https://github.com/hku-mars/livox_camera_calib","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hku-mars%2Flivox_camera_calib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hku-mars%2Flivox_camera_calib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hku-mars%2Flivox_camera_calib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hku-mars%2Flivox_camera_calib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hku-mars","download_url":"https://codeload.github.com/hku-mars/livox_camera_calib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254509475,"owners_count":22082891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calibration","point-cloud"],"created_at":"2024-07-31T03:00:43.575Z","updated_at":"2025-05-16T10:06:27.801Z","avatar_url":"https://github.com/hku-mars.png","language":"C++","funding_links":[],"categories":["C++","Tools"],"sub_categories":["Australia"],"readme":"# lidar_camera_calib\n**lidar_camera_calib** is a robust, high accuracy extrinsic calibration tool between high resolution LiDAR (e.g. Livox) and camera in targetless environment. Our algorithm can run in both indoor and outdoor scenes, and only requires edge information in the scene. If the scene is suitable, we can achieve pixel-level accuracy similar to or even beyond the target based method.\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"pics/color_cloud.png\" width = 100% \u003e\n    \u003cfont color=#a0a0a0 size=2\u003eAn example of a outdoor calibration scenario. We color the point cloud with the calibrated extrinsic and compare with actual image. A and C are locally enlarged\nviews of the point cloud. B and D are parts of the camera image\ncorresponding to point cloud in A and C.\u003c/font\u003e\n\u003c/div\u003e\n\n## Info\nNew features:\n1. Support muti-scenes calibration (more accurate and robust)\n\n## Related paper\nRelated paper available on arxiv:  \n[Pixel-level Extrinsic Self Calibration of High Resolution LiDAR and Camera in Targetless Environments](http://arxiv.org/abs/2103.01627)\n## Related video\nRelated video: https://youtu.be/e6Vkkasc4JI\n\n## 1. Prerequisites\n### 1.1 **Ubuntu** and **ROS**\nUbuntu 64-bit 16.04 or 18.04.\nROS Kinetic or Melodic. [ROS Installation](http://wiki.ros.org/ROS/Installation) and its additional ROS pacakge:\n\n```\n    sudo apt-get install ros-XXX-cv-bridge ros-xxx-pcl-conversions\n```\n\n### 1.2 **Eigen**\nFollow [Eigen Installation](http://eigen.tuxfamily.org/index.php?title=Main_Page)\n\n### 1.3 **Ceres Solver**\nFollow [Ceres Installation](http://ceres-solver.org/installation.html).\n\n### 1.4 **PCL**\nFollow [PCL Installation](http://www.pointclouds.org/downloads/linux.html). (Our code is tested with PCL1.7)\n\n## 2. Build\nClone the repository and catkin_make:\n\n```\ncd ~/catkin_ws/src\ngit clone https://github.com/hku-mars/livox_camera_calib.git\ncd ../\ncatkin_make\nsource ~/catkin_ws/devel/setup.bash\n```\n\n## 3. Run our example\nThe exmaple dataset can be download from [**OneDrive**](https://connecthkuhk-my.sharepoint.com/:f:/g/personal/ycj1_connect_hku_hk/EuZs1x2RHbxFikjsvt9qf80BD8Wjj05ZhVGRgzfzLCQUCQ?e=un8r1y) and [**BaiduNetDisk(百度网盘)**](https://pan.baidu.com/s/1oz3unqsmDnFvBExY5fiBJQ?pwd=i964)\n### 3.1 Single scene calibration\nDownload [Our pcd and iamge file](https://connecthkuhk-my.sharepoint.com/:f:/g/personal/ycj1_connect_hku_hk/EsPKJ-If659EkzSgApVmGToBLQdxo61p6SG8EEruR6C9Hw?e=beoUXX) to your local path, and then change the file path in **calib.yaml** to your data path. Then directly run\n```\nroslaunch livox_camera_calib calib.launch\n```\nYou will get the following result. (Sensor suite: Livox Avia + Realsense-D435i)\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"pics/single_calib_case.png\" width = 100% \u003e\n    \u003cfont color=#a0a0a0 size=2\u003eAn example of single scene calibration.\u003c/font\u003e\n\u003c/div\u003e\n\n### 3.2 Multi scenes calibration\nDownload [Our pcd and iamge file](https://connecthkuhk-my.sharepoint.com/:f:/g/personal/ycj1_connect_hku_hk/Ej5-eYv9pJdLj4cOe-qhvO8BaSxFJ0HZU-2savbqHkzvKQ?e=PMjqY6) to your local path, and then change the file path in **multi_calib.yaml** to your data path. Then directly run\n```\nroslaunch livox_camera_calib multi_calib.launch\n```\nThe projected images obtained by initial extrinsic parameters. (Sensor Suite: Livox Horizon + MVS camera)\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"pics/initial_extrinsic.png\" width = 100% \u003e\n    \u003cfont color=#a0a0a0 size=2\u003eAn example of multi scenes calibration. The projected image obtained by theinitial extrinsic parameters\u003c/font\u003e\n\u003c/div\u003e\nRough calibration is used to deal with the bad extrinsic.\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"pics/after_rough_calib.png\" width = 100% \u003e\n    \u003cfont color=#a0a0a0 size=2\u003eThe projected image obtained by the extrinsic parameters after rough calibration\u003c/font\u003e\n\u003c/div\u003e\nThen we finally get a fine extrinsic after final optimization.\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"pics/fine_extrinsic.png\" width = 100% \u003e\n    \u003cfont color=#a0a0a0 size=2\u003eThe projected image obtained by the extrinsic parameters after fine calibration\u003c/font\u003e\n\u003c/div\u003e\n\n## 4. Run on your own sensor set\n### 4.1 Record data\nRecord the point cloud to pcd files and record image files.\n### 4.2 Modify the **calib.yaml**\nChange the data path to your local data path.  \nProvide the instrinsic matrix and distor coeffs for your camera.\n\n### 4.3 Use multi scenes calibration\nChange the params in **multi_calib.yaml**, name the image file and pcd file from 0 to (data_num-1).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhku-mars%2Flivox_camera_calib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhku-mars%2Flivox_camera_calib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhku-mars%2Flivox_camera_calib/lists"}