LiDAR Camera Calibration (LCC)系列,主要介紹激光雷達(dá)相機(jī)外參標(biāo)定相關(guān)內(nèi)容。本文主要介紹相關(guān)的開源代碼和軟件,主要包括target-based和targetless兩類方法,每個(gè)方法對(duì)應(yīng)標(biāo)題后說明了方法的提出年份和開源代碼的語言(c : c++, p: python, m: matlab)。
Github同步更新:https://github.com/Deephome/Awesome-LiDAR-Camera-Calibration
▊1. target-based方法一般就是使用標(biāo)定板,可以是一塊普通的矩形板,可以添加視覺效果(比如棋盤格,ArUco),可以在矩形板上鏤空出特定形狀。
1.0 CamLaserCalibraTool (2004c)
主要參考了華盛頓大學(xué)2004年的論文,曠視提供了開源實(shí)現(xiàn)和博客解讀。2D激光雷達(dá)和相機(jī)標(biāo)定。主要利用點(diǎn)到平面和邊緣的約束。詳情見曠視的博客和開源:
github:https://github.com/MegviiRobot/CamLaserCalibraTool 博客:https://zhuanlan.zhihu.com/p/137501892 參考論文:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.80.7118&rep=rep1&type=pdf
1.1 LCCT (2005m)
來自CMU Robotics Institute, 已知最早3D Laser與相機(jī)標(biāo)定的工作(2005年),基于matlab的圖形用戶界面,進(jìn)行激光雷達(dá)相機(jī)外參標(biāo)定。 target-based方法,使用標(biāo)定板,采集多個(gè)點(diǎn)云圖像對(duì),在點(diǎn)云對(duì)應(yīng)的深度圖(range image)上框選標(biāo)定板平面區(qū)域,即可求解外參(兩階段)。 第一階段,分別最小化兩個(gè)坐標(biāo)系中相機(jī)中心到平面距離和平面法向量的差異,依次線性求解平移和旋轉(zhuǎn);第二階段,最小化point-to-plane距離,迭代求解。
官方網(wǎng)站:http://www.cs.cmu.edu/~ranjith/lcct.html 參考論文:https://www.ri.cmu.edu/pub_files/pub4/unnikrishnan_ranjith_2005_3/unnikrishnan_ranjith_2005_3.pdf
1.2 cam_lidar_calib (2010c)
來自密歇根大學(xué),ROS / C++實(shí)現(xiàn)。
使用checkerboard,最少需要3個(gè)視圖。自動(dòng)提取特征,圖像中提取checkerboard在相機(jī)坐標(biāo)系中的法向量和距相機(jī)原點(diǎn)的距離,點(diǎn)云中提取checkerboard的平面點(diǎn)。
Github開源:https://github.com/SubMishMar/cam_lidar_calib 參考論文: http://robots.engin.umich.edu/publications/gpandey-2010a.pdf
1.3 lidar_camera_calibration (2017c)
來自印度IIIT Robotics Research Lab,ROS package (C++)實(shí)現(xiàn), 介紹了兩種方法。第一種方法是基于2D-3D correspondence,采用中空矩形紙板作為目標(biāo),在圖像上手動(dòng)標(biāo)記角點(diǎn)2D像素,在點(diǎn)云中手動(dòng)框選線段,利用直線相交求解3D角點(diǎn),然后利用PnP+ransac求解外參。缺點(diǎn)是手動(dòng)標(biāo)記像素點(diǎn),誤差較大。 第二種方法是基于3D-3D correspondence,與方法一主要區(qū)別是圖像中特征的提取。通過采用ArUco二維碼,可直接計(jì)算出角點(diǎn)在相機(jī)坐標(biāo)系的3D坐標(biāo),然后利用ICP求解外參。
github開源:https://github.com/ankitdhall/lidar_camera_calibration 參考論文:https://arxiv.org/pdf/1705.09785v1.pdf
1.4 ILCC (2017p)
來自日本名古屋大學(xué)Nagoya University,python實(shí)現(xiàn)。完整流程如下:
該方法的3D角點(diǎn)提取方式比較獨(dú)特。基于點(diǎn)云反射強(qiáng)度和chessboard顏色模式的相關(guān)性,利用一個(gè)chessboard model來擬合(匹配)分割的點(diǎn)云,從而利用chessboard model的角點(diǎn)位置表示chessboard點(diǎn)云中角點(diǎn)位置。
github開源:https://github.com/mfxox/ILCC 參考論文:https://arxiv.org/pdf/1708.05514.pdf
1.5 plycal (2018c)
來自HKUST,C++實(shí)現(xiàn)。 采用要給矩形板作為target。首先對(duì)激光雷達(dá)和相機(jī)時(shí)間同步,圖像糾正。全自動(dòng)地在圖像中提取矩形板角點(diǎn)和邊緣,在點(diǎn)云中提取矩形板的邊緣和平面點(diǎn)。矩形特征2D-3D匹配。采用point-to-line和point-inside-polygon約束進(jìn)行優(yōu)化。
github開源:https://github.com/ram-lab/plycal 參考論文:https://www.semanticscholar.org/paper/Extrinsic-Calibration-of-Lidar-and-Camera-with-Liao-Chen/c52748f676ff0b082db61a49dee2d15320519744
1.6 Matlab Lidar Toolbox (2018m)
target-based方法,使用了chessboard, 理論上采集一個(gè)pose就可以求解。特征提取分別自動(dòng)提取chessboard在相機(jī)和激光雷達(dá)坐標(biāo)系的平面和邊緣信息,利用line correspondence (direction constraint + point to line constraint)和plane correspondence (normal constraint + point to plane constraint)進(jìn)行標(biāo)定。
官方文檔:https://ww2.mathworks.cn/help/lidar/ug/lidar-and-camera-calibration.html 參考論文:http://www.cs.cmu.edu/~kaess/pub/Zhou18iros.pdf csdn博客:https://blog.csdn.net/qq_27339501/article/details/110224436只能使用matlab的lidar toolbox,看不到源代碼,該方法與plycal(2018c)的標(biāo)定板點(diǎn)云特征提取方法類似。
1.7 extrinsic_lidar_camera_calibration (2020m)
來自 Robotics Institute, University of Michigan。matlab實(shí)現(xiàn)。 主要?jiǎng)?chuàng)新點(diǎn)是標(biāo)定板點(diǎn)云的角點(diǎn)估計(jì)方法。假設(shè)在lidar原點(diǎn)有一個(gè)大小已知的參考標(biāo)定板(reference target),希望標(biāo)定板點(diǎn)云通過H變換后,與這個(gè)參考標(biāo)定板盡量重合。優(yōu)化求解H,將參考標(biāo)定板角點(diǎn)反變換,即可得到點(diǎn)云中的角點(diǎn)位置。 之前方法采用先擬合邊緣再直線相交的思路,只利用了邊緣點(diǎn),受點(diǎn)云深度測(cè)量誤差影響,最后提取的四個(gè)角點(diǎn)可能與target真實(shí)幾何不兼容。該方法的角點(diǎn)估計(jì)考慮了所有點(diǎn),估計(jì)的四個(gè)角點(diǎn)也是與真實(shí)target形狀兼容。 該方法與ILCC(2017p)方法類似,都是通過與一個(gè)參考的標(biāo)定板擬合,從而對(duì)標(biāo)定板點(diǎn)云參數(shù)化建模,求得角點(diǎn)。只是ILCC利用了點(diǎn)云反射強(qiáng)度,本方法只利用點(diǎn)云幾何信息。
該開源代碼也實(shí)現(xiàn)了Matlab Lidar Toolbox (2018m)參考論文中點(diǎn)云邊緣提取的方法: 1)先ransac擬合平面 2)找到每條scanline的端點(diǎn)(邊緣點(diǎn)) 3)將標(biāo)定板點(diǎn)云投影到擬合平面 4)擬合每條scan line 5)將邊緣點(diǎn)投影到擬合的scan line 6)用ransac擬合邊緣,去除邊緣點(diǎn)粗差
github開源:https://github.com/UMich-BipedLab/extrinsic_lidar_camera_calibration 參考論文:https://arxiv.org/pdf/1910.03126.pdf
1.8 livox_camera_lidar_calibration(2020c)
Livox官方提供的Lidar-Camera標(biāo)定代碼,圖像和點(diǎn)云都是手動(dòng)標(biāo)點(diǎn)。
github開源//github.com/Livox-SDK/livox_camera_lidar_calibration
1.9 ACSC (2020p)
來自北航,python實(shí)現(xiàn),針對(duì)固態(tài)激光雷達(dá)Livox. 提出多幀點(diǎn)云集成精化算法(temporal-spatial-based geometric feature refinement)和基于反射強(qiáng)度分布的角點(diǎn)估計(jì)方法(reflectance intensity distribution-based 3D corner estimation )。自動(dòng)提取2D和3D角點(diǎn),然后用基于Ransac的PnP求解。
github開源//github.com/HViktorTsoi/ACSC 參考論文:https://arxiv.org/abs/2011.08516
1.10 velo2cam_calibration (2021c)
來自 Intelligent Systems Lab (LSI), Universidad Carlos III de Madrid, Leganes, ROS + C++實(shí)現(xiàn)。可以將激光雷達(dá)、單目相機(jī)、立體相機(jī)進(jìn)行任意成對(duì)標(biāo)定。需要比較特殊的標(biāo)定板:
github開源:https://github.com/beltransen/velo2cam_calibration 參考論文:https://arxiv.org/pdf/2101.04431.pdf
1.11 autoware
采用標(biāo)定板的方法 (calibration_tookit, autoware1.10之后沒有)
github:https://github.com/XidianLemon/calibration_camera_lidar 博客:https://adamshan.blog.csdn.net/article/details/81670732 https://www.cnblogs.com/xiangzh/p/14137345.html 直接手動(dòng)選點(diǎn)的方法 :https://dlonng.com/posts/autoware-calibr-1最新版只有autoware_camera_lidar_calibrator, 直接手動(dòng)選點(diǎn)的方法,在下文介紹。 使用標(biāo)定板結(jié)果更準(zhǔn)確一些,但是操作不方便。 1)需要手動(dòng)grab多個(gè)關(guān)鍵幀 2)使用glviewer顯示點(diǎn)云,不好調(diào)整視角 3)需要手動(dòng)選擇平面點(diǎn)云
▊2.targetless方法
2.1 apollo
是基于自然場(chǎng)景的targetless方法,不需要手動(dòng)標(biāo)記,但是需要較準(zhǔn)確初值。
(一個(gè)比較好的標(biāo)定場(chǎng)景,包含路燈,樹木,道路等物體) 注意:核心代碼沒有開源
github文檔//github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_2_0_sensor_calibration_guide.md csdn博客https://blog.csdn.net/learning_tortosie/article/details/82351553?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242
2.2 autoware
沒有target,但是需要手動(dòng)標(biāo)記圖像和點(diǎn)云中的對(duì)應(yīng)點(diǎn),至少選擇9對(duì)。
github文檔:https://github.com/Autoware-AI/utilities/tree/master/autoware_camera_lidar_calibrator csdn博客:https://blog.csdn.net/learning_tortosie/article/details/82347694
2.3ExtrinsicCalib (2012c)
先將圖像進(jìn)行灰度化和直方圖均衡化,得到灰度圖像,然后根據(jù)點(diǎn)云的反射強(qiáng)度和法向量特征將點(diǎn)云投影為圖像,使用標(biāo)準(zhǔn)化互信息衡量灰度圖像和點(diǎn)云生成圖像之間相關(guān)性。使用粒子群優(yōu)化算法不斷改變外參,直到粒子收斂,達(dá)到標(biāo)準(zhǔn)化互信息的最大值。
論文:http://robots.engin.umich.edu/publications/gpandey-2012a.pdf 官網(wǎng):http://robots.engin.umich.edu/SoftwareData/ExtrinsicCalib局限性:對(duì)于圖像,光照會(huì)影響像素亮度,且存在陰影問題;點(diǎn)云強(qiáng)度則不同,由于激光是主動(dòng)式。因此,利用多視圖數(shù)據(jù),可以盡量避免光照、陰影造成的噪聲,使誤差函數(shù)相對(duì)平滑,便于優(yōu)化。
2.4CamVox (2020c)
來自南方科技大學(xué)。圖像先灰度化再提取邊緣,點(diǎn)云先分別得到反射強(qiáng)度圖和深度圖,再提取邊緣。通過ICP優(yōu)化,求解最佳外參。
github//github.com/xuankuzcr/CamVox 論文:https://arxiv.org/pdf/2011.11357.pdf
2.4 livox camera calib (2020c)
來自香港大學(xué)。分別提取點(diǎn)云和圖像中的邊緣特征,然后匹配特征,最后優(yōu)化求解最佳外參來更好地對(duì)齊點(diǎn)云邊緣和圖像邊緣。
論文:https://arxiv.org/pdf/2103.01627v2.pdf 作者:Chongjian Yuan (香港大學(xué)) Github//github.com/hku-mars/livox_camera_calib 論文詳細(xì)解讀請(qǐng)參考:https://blog.csdn.net/muyiyushan/article/details/118573929
審核編輯 :李倩
-
激光雷達(dá)
+關(guān)注
關(guān)注
971文章
4157瀏覽量
191646 -
LIDAR
+關(guān)注
關(guān)注
10文章
333瀏覽量
30047 -
開源代碼
+關(guān)注
關(guān)注
0文章
37瀏覽量
3132
原文標(biāo)題:開源代碼和軟件匯總!激光雷達(dá)和相機(jī)聯(lián)合標(biāo)定(2004-2021)
文章出處:【微信號(hào):3D視覺工坊,微信公眾號(hào):3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
CES 2025激光雷達(dá)觀察:“千線”激光雷達(dá)亮相,頭部廠商布局具身智能

激光雷達(dá)調(diào)研紀(jì)要
DeepSeek:2025年激光雷達(dá)技術(shù)與行業(yè)應(yīng)用趨勢(shì)

激光雷達(dá)領(lǐng)域的新秀利器—SPAD23

晶體生長(zhǎng)相關(guān)內(nèi)容——晶型控制與襯底缺陷
一則消息引爆激光雷達(dá)行業(yè)!特斯拉竟然在自研激光雷達(dá)?
激光雷達(dá),明年要降價(jià)至200美元

全場(chǎng)景適用!TS Spectrum高速數(shù)字化儀在激光雷達(dá)系統(tǒng)中的應(yīng)用

激光雷達(dá)會(huì)傷害眼睛嗎?

激光雷達(dá)的維護(hù)與故障排查技巧
激光雷達(dá)技術(shù)的基于深度學(xué)習(xí)的進(jìn)步
激光雷達(dá)技術(shù)的發(fā)展趨勢(shì)
光學(xué)雷達(dá)和激光雷達(dá)的區(qū)別是什么
一文看懂激光雷達(dá)

基于FPGA的激光雷達(dá)控制板

評(píng)論