当前位置: 首页 > article >正文

杂记8---多线激光雷达与相机外参标定

背景:本人开源的标定程序,提供大家参考学习

基于棋盘格的多线激光雷达和鱼眼/针孔模型相机外参标定的程序

前言

标定数据,只需要一个棋盘格标定板。把标定板放置lidar 与camera 共视区域,拜拍几个pose进行采集。

基于简谐原则而编写,不加骚操作,方便大家借鉴学习。觉得不错,点个小星星。代码框架在2024年春节在家完成,多谢bb放的几天假。后面有时间,会继续优化精度。

一、使用注意事项

0、两个文件夹数据,注意序号对应上

1、假设lidar z轴朝上,图片的uv分别向右向下。目的对齐两者的匹配点

2、选择每帧pcd的标定板中心时,需要注意shift+鼠标左键

3、依赖&编译

pcl、opencv、Ceres、json
mkdir build
cd build
cmake … && make

4、运行

./bin/calib_lidar2camera ./data/lidar ./data/camera ./config/calib_chessboard.json

5、关于配置文件说明

{
“camera_type”: [2],
“chessboard_size”: [0.8, 0.6],
“chessboard_width”: [11],
“chessboard_height”: [8],
“chessboard_grap”: [0.06],
“camera_matrix”: [1720.5573642902884, 1725.4310071228047, 1953.549178143742, 1061.1840108704785],
“distortion_coeffs”: [0.08092536120554537, -0.049501707005857196, 0.020142406202130876, -0.0067493332722243764],
“initial_external_params”: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0,1],
“extract_radius”: [0.5]
}

camera_type : 1 表示针孔相机(fov < 90°) 2 表示鱼眼相机(fov > 90°) [当前版本没有适配全景相机]
chessboard_size : 表示标定板的物理尺寸,注意不是棋盘格轮廓尺寸,单位 米。填写方式,opencv适配棋盘格时角点宽高方式一致
chessboard_width: 表示棋盘格宽方向11个角点
chessboard_height: 表示棋盘格高方向8个角点
chessboard_grap : 每个角点之间0.06米
camera_matrix: 相机内参
distortion_coeffs: 相机畸变系数
initial_external_params: 迭代优化给的初始化外参
extract_radius: 提取标定板点云的半径

测试说明:
打了马赛克图片,迭代效果不理想;估计处理过的图片,角点提取有影响。因此,数据集就不公开了。

数据集外参投影效果图:
在这里插入图片描述
二、可优化项

1、标定板点云提取精度

2、图片角点提取精度

3、图片角点pnp恢复尺度信息算法精度

4、采集数据时,标定板的稳定性与环境光线情况[标定板材质和稳定性对标定结果影响较大]

#############
积跬步期千里
觉得不错的话,点赞收藏


http://www.kler.cn/a/273620.html

相关文章:

  • Python小白学习教程从入门到入坑------第二十三课 封装(语法进阶)
  • 精密机械代加工服务,为你的企业加速发展!
  • ABeam 德硕 | 共探AI时代人才新生态,ABeam旗下德硕管理咨询(上海)有限公司荣膺2024杰出雇主!
  • 一些硬件知识【2024/11/3】
  • 桑基图在医学数据分析中的更复杂应用示例
  • 【C++动态规划】2435. 矩阵中和能被 K 整除的路径|1951
  • java项目打包(maven+原生)
  • LeetCode108 将有序数组转换为二叉搜索树
  • 云原生(四)、Docker-Compose
  • js复制内容到剪贴板实现复制粘贴功能
  • git tag标签使用
  • 从底层结构开始学习FPGA(0)----FPGA的硬件架构层次(BEL Site Tile FSR SLR Device)
  • MySQL 锁机制
  • Pytorch常用的函数(七)空洞卷积详解
  • word 及PPT 中修改公式字体
  • Windows程序员用MAC:初始设置(用起来像win一些)
  • jenkins Pipeline接入mysql
  • 在Visual Studio中调试 .NET源代码
  • 在Linux/Ubuntu/Debian中创建自己的命令快捷方式
  • 论文笔记:液体管道泄漏综合检测与定位模型
  • 探索编程迷宫:选择你的职业赛道
  • Day68:WEB攻防-Java安全原生反序列化SpringBoot攻防heapdump提取CVE
  • 【小程序开发】蓝牙设备API——单点蓝牙应用程序编程接口整理(二)
  • 强缓存和协商缓存
  • 基于深度学习YOLOv8+Pyqt5的工地安全帽头盔佩戴检测识别系统(源码+跑通说明文件)
  • Linux系统之jq工具的基本使用