激光雷达-相机外参联合标定通过手动选取3D-2D点利用PnP求解

2023-10-28

0、写在前面

差不多快半年没有更新博客了,这里先感慨一下找工作的不容易。
这个激光雷达-相机联合标定的需求是因为我前段时间所做的项目中有一个需求,需要给点云添加对应的温度。没错,给点云加温度,从红外相机中获取到温度。


1、激光雷达->相机的坐标变换

在这里插入图片描述
什么是激光雷达到相机坐标系的变换?
激光雷达坐标系下的一个3D点(x, y, z)通过外参矩阵(R, t)转换到相机坐标系,在通过相机内参转到像素平面得到2D点(u,v)

2、怎么解这个外参矩阵

为了解这个(R, t)矩阵,我们至少需要三对匹配点,利用三对匹配点的就变成了PnP中的P3P问题。具体的原理可以参考高翔slambook中第七章中相关内容

3、怎么获取匹配点对

之前用过Autoware的Calibration ToolKit ,它可以自动识别到图像和点云中的标定板,这在小范围场景下是可行的。

如果相机和激光雷达安装的位置很高,导致标定板在视野中很小,那么此时标定板就捕获不到了。那么有没有别的方法呢?
答案是可以的,我们可以在图像和点云中自己选取匹配的点对,通过鼠标的监听方式。但这种方式带来的困难也显而易见的,我们能确定这是同一块区域,但是对区域里的具体的点的选择确实困难的,概括来说就是:

  • 确定这是匹配点
  • 鼠标点的准

4、PnP求解3D-2D问题

可以调用opencv中的PnP方法完成求解

bool solvePnP( InputArray objectPoints, InputArray imagePoints,
               InputArray cameraMatrix, InputArray distCoeffs,
               OutputArray rvec, OutputArray tvec,
               bool useExtrinsicGuess = false, int flags = SOLVEPNP_ITERATIVE );

代码我上传到了github,觉得不错的话可以star哦!
PnPCameraLiDAR

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

激光雷达-相机外参联合标定通过手动选取3D-2D点利用PnP求解 的相关文章

随机推荐

  • 不同图像的噪声,选用什么滤波器去噪,图像处理的噪声和处理方法

    不同图像的噪声 选用什么滤波器去噪 图像处理的噪声和处理方法 提示 据说是科大讯飞的算法面试题 知道哪些噪声 分别用什么滤波器处理 文章目录 不同图像的噪声 选用什么滤波器去噪 图像处理的噪声和处理方法 TOC 文章目录 图像噪声 椒盐噪声
  • Java深拷贝浅拷贝终极总结

    目录 万物之始 大道至简 衍化至繁 道德经 概念 浅拷贝 结果分析 深拷贝 万物之始 大道至简 衍化至繁 道德经 概念 浅拷贝是拷贝了源对象的地址 任何源对象的任何值发生改变时 拷贝对象的值也会发生改变 深拷贝只是拷贝了源对象的所有值而不是
  • 微信小程序——开篇

    开篇 前言 锻造兵器 开发者账号 微信开发者工具 写在最后 前言 如今微信小程序已经成为我们日常生活中不可或缺的 介质 如我们的出行 购物 餐饮 社交 娱乐等活动的小程序已经因有尽有 相比于去安装一个app人们自然更加倾向于在微信中去直接访
  • 【qt】信号,使用自定义的结构作为参数传递

    错误 解决办法 方法1 注册改向量 1 注册位置 在第一次使用此类链接跨线程的signal slot之前 一般在当前类的构造函数中进行注册 2 注册方法 在当前类的顶部包含 include
  • ES6(一):let和const、模板字符串、函数默认值、剩余参数、扩展运算符、箭头函数

    ES6 一 一 let和const声明变量 1 变量不能重复声明 2 块儿级作用域 3 不存在变量提升 4 const声明变量 5 优点 1 for循环中用let比较奶思 2 for循环分为父作用域和子作用域 3 不会污染全局变量 二 模板
  • 基于 uni-app 和 uni-cloud 小程序项目开发实战

    基于 uni app 和 uni cloud 小程序项目开发实战 前言 一 技术栈 二 环境搭建 三 项目功能介绍 1 地图地点搜索及路线规划 2 uniCloud服务空间 3 AI识图 4 上拉框组件 5 登陆权限 四 遇到问题 五 发行
  • IDEA去除Mapper.xml中黄色警报和绿色背景

    黄色警报去除 IDEA中用以编写SQL的Mapper xml常出现的警报通常来自于两种检查 一种是SQL方言检测 一种是未配置数据源的检测 需要在检查中将这两种检查关闭 解决方案 英文原版 settings Editor Inspectio
  • android权限的问题,android关于权限的问题

    希望能帮到大家 希望大家继续补充 MyLocation API调用获取的Cellid等定位信息必需添加android permission ACCESS COARSE LOCATION这个声明 ACCESS FINE LOCATION AC
  • 直播弹幕系统(五)- 整合Stomp替换原生WebSocket方案探究

    直播弹幕系统 五 整合Stomp替换原生WebSocket方案探究 前言 一 STOMP 协议简单介绍 1 1 客户端编码基础 1 2 服务端编码基础 1 2 1 SimpMessagingTemplate 1 2 2 SendTo 和 M
  • Codeforces Round 744 (Div. 3)

    A Casimir s String Solitaire 一个A需要一个B一个C需要一个B 所以只要A和C的个数之和等于B即可 AC代码 include
  • 保姆级手把手图文并茂教你配置MAC系统Flutter环境

    Flutter 是什么 Flutter是Google开源的构建用户界面 UI 工具包 帮助开发者通过一套代码库高效构建多平台精美应用 支持移动 Web 桌面和嵌入式平台 Flutter 开源 免费 拥有宽松的开源协议 适合商业项目 下载Fl
  • PyTorch 06—基础总结

    梯度下降算法 多层感知器 多层感知器的优化算法是梯度下降算法 梯度下降法是一种致力于找到函数极值点的算法 前面介绍过 所谓 学习 便是改进模型参数 以便通过大量训练步骤将损失最小化 有了这个概念 将梯度下降法应用于寻找损失函数的极值点便构成
  • 02-SpringBoot集成MinIo

    添加依赖
  • 字节对齐

    2018 1 16 对于自己定义的结构体 如果拿该结构体去匹配内存中的一个块内容 有可能不能准确的匹配正确 就比如今天去匹配SSL ClientHello结构体 但是总是往后退了一个字节 而且非常准 这其实是编译器的问题 gcc默认是4字节
  • 高亮地图点及属性信息展示优化方案

    作者 小阳 1 序言 本文主要是利用了UTFGrid图层快速交互获取地物信息的特点 以SuperMap iClient for JavaScript的开发作为示范 注 要实现本文所讲述的功能 同时需要SuperMap iServer和Sup
  • 2023中国数据安全防护与治理市场研究报告

    随着数字经济的快速发展 数据成为重要的生产要素 数据安全面临较为严峻的态势 数据安全市场迎来较大机遇 赛迪顾问重点发布了中国数据安全防护与治理产品及服务全景图 并对各类产品及服务做了成熟度评价 形成了中国数据安全防护与治理产品及服务成熟度曲
  • 视频网站需要流媒体服务器吗,视频监控必须用流媒体服务器吗

    视频监控必须用流媒体服务器吗 内容精选 换一换 task input参数说明参数是否必选类型说明type是String视频数据的输入类型 obs 表示从华为云OBS中读取视频数据 url 表示从指定的URL地址中读取视频数据 edgecam
  • Halcon HTuple由按行排序转成按列排序

    目录 前言 方法 结果 前言 今天有一个需求 把一个HTuple的列表重新排序 列表保存的是由二维展开成一维的数据 先按行保存 存完一行再存下一行 如今需要变一下 改成先保存一列 存完一列后在保存下一列 如有一个二维表格如下 1 2 3 4
  • MySQL主备、主从、读写分离详解

    一 MySQL主备的基本原理 在状态1中 客户端的读写都直接访问节点A 而节点B是A的备库 只是将A的更新都同步过来 到本地执行 这样可以保持节点B和A的数据是相同的 当需要切换的时候 就切成状态2 这时候客户端读写访问的都是节点B 而节点
  • 激光雷达-相机外参联合标定通过手动选取3D-2D点利用PnP求解

    0 写在前面 差不多快半年没有更新博客了 这里先感慨一下找工作的不容易 这个激光雷达 相机联合标定的需求是因为我前段时间所做的项目中有一个需求 需要给点云添加对应的温度 没错 给点云加温度 从红外相机中获取到温度 1 激光雷达 gt 相机的