学习Kalibr工具--Camera标定过程

2023-05-16

这里介绍用kalibr工具对相机进行单目和双目的标定;
在kalibr中不仅提供了IMU与camera的联合标定工具,也包含了camera的标定工具箱;


- 准备:
安装好kalibr之后,开始准备标定板,在kalibr中适用于三种标定板,分别是:Aprilgrid,Checkerboard和Circlegrid。其中checkboard最常用,但是aprilgird精度最好,因为它可以提供序号信息,能够防止姿态计算时出现跳跃的情况。
- 制作标定板:
这里使用aprilgrid标定板,可以使用kalibr自带工具自定义生成不同大小的标定板,命令行如下:

 kalibr_create_target_pdf --type apriltag --nx [NUM_COLS] --ny [NUM_ROWS] --tsize [TAG_WIDTH_M] --tspace [TAG_SPACING_PERCENT]

将以上命令生成的标定板PDF格式,直接无缩放比例打印出来,就可以直接使用。
- 数据采集:
制作好标定板之后,就可以使用相机对标定板进行拍摄,进行数据采集,相机要从多个角度对标定进行拍摄,这样相机pose要足够多。命令行如下:(若是单目标定,则执行一行)

 rosrun topic_tools throttle messages /mynteye/left/image_raw 4.0 /left
 rosrun topic_tools throttle messages /mynteye/right/image_raw 4.0 /right

命令行中 topic_tools throttle 为ROS中改变topic发布频率的命令,通常设备采集频率为30左右,这会使得标定的图像太多,急剧增加计算量,最好将ros topic降到 4hz左右进行数据采集。要确保图像不要模糊,运动不要太快!
- 制作 rosbag:
数据采集好了之后就可以进行 bag 的制作了,命令行如下:(若是单目标定,则执行一行)

rosbag record -O stereo_calibra.bag /left /right

上述的stereo_calibra.bag就是生成的bag.
- 标定:
使用前边的 bag 与 采集的图像进行标定,命令行如下:

source /home/kalibr/devel/setup.bash

kalibr_calibrate_cameras --bag /home/stereoCamData/stereo_calibra.bag --topics /left /right --models pinhole-radtan pinhole-radtan --target /home/stereoCamData/april_6x6_80x80cm_A0.yaml

- 标定验证:
可以使用calibration validator进行标定结果的验证,原理是对重投影误差进行量化分析。命令行如下:

kalibr_camera_validator --cam camchain.yaml --target target.yaml

命令行中 camchain.yaml 与 target.yaml 分别为上述中camera标定的结果以及 标定板的yaml文件。

相机标定之后就可以进行 camera 与IMU 的联合标定。

参考博客:
https://blog.csdn.net/wwchen61/article/details/78013962
https://blog.csdn.net/heyijia0327/article/details/83583360
https://www.jianshu.com/p/34c301cdc312

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

学习Kalibr工具--Camera标定过程 的相关文章

  • 解释来自 Android 相机 onPictureTaken(byte[] data) 的原始图像数据

    我正在使用 Camera 类来拍照 并希望对 onPictureTaken 中的图像进行一些处理 如何解释字节数组 是RGB格式还是其他格式 参考文献说这取决于 Camera Parameters 相机参数 http developer a
  • Android getsupportedvideosizes 在模拟器上返回 null

    我尝试在模拟器中获取支持的视频大小 如下所示 但它总是返回 null 为什么会这样 我在 4 03 中尝试过 提前致谢 Camera camera Camera open android hardware Camera Parameters
  • 如何使用flex4使用前置摄像头

    我使用 Flex 4 为 Android 移动设备开发了简单的相机应用程序 问题是 当我运行该应用程序时 它使用后置摄像头 它没有使用前置摄像头 怎么换相机啊 我需要使用前置摄像头来实现此应用程序 请帮助我 var camera Camer
  • 是否可以使用 flutter 相机插件流式传输视频?

    我一直在使用相机插件 我知道可以通过CameraController与功能start stopVideoRecording 这些函数将采用文件的路径作为输入 我希望能够在录制时将该视频流式传输到服务器 是否可以通过相机插件的当前功能以某种方
  • 在网络应用程序中从网络摄像头或移动摄像头拍照

    我正在开发一个网络应用程序 可以从本地浏览和拍照 而且我想通过相机捕获图像 我使用以下代码 我可以捕获设备相机
  • 在 Windows 8.1 平板电脑上的 Web 应用程序中捕获图像

    我即将开发一个在 Windows 8 1 平板电脑上运行的应用程序 一个重要的功能是能够单击按钮来访问相机来拍摄一些照片 理想情况下 我想将其创建为Web应用程序由于多种原因 许可证 跨平台 开发时间 没有本机应用程序经验等 而不是本机应用
  • Android:访问硬件相机预览帧数据而不绘制它们

    根据 Java SDK 端的 android 相机文档 必须为相机预览帧提供一个要绘制的 可见且活动的 表面 以便访问帧数据 我已经链接了我在这里遇到的一些内容 我是新人 所以最多有 2 个超链接 但是在最终在这里发布我自己的问题之前 我查
  • 访问 iOS 6 新 API 以获取相机曝光和快门速度

    在苹果的iOS 6 0 功能页面 https developer apple com technologies ios6 过去常说 利用内置摄像头的高级功能 新的 API 可让您控制焦点 曝光和感兴趣区域 您还可以使用人脸检测 API 访问
  • 动态设置布局参数

    我正在使用 CameraPreview 示例 API 演示 我需要添加一些覆盖 SurfaceView 的视图 按钮等 为此 我尝试设置它们的参数 但它们始终出现在屏幕的左上角 这是onCreate方法的代码 Override protec
  • 为什么 Camera.setParameters(Camera.Parameters) 不适用于索尼爱立信 X10 和 Droid?

    在索尼爱立信 X10 或 Droid 上使用相机 API 时 有人遇到过奇怪的行为吗 例如 以下代码不适用于这些设备 结果 我在市场上收到了很多负面反馈 导致许多订单被取消 mParameters set rotation orientat
  • 以编程方式截取屏幕截图不会捕获 surfaceVIew 的内容

    我有一个应用程序 我希望能够捕获屏幕截图 布局的背景是一个 SurfaceView 显示来自后置摄像头的视频 下面的代码可以截图 但是surfaceView的内容保存为黑色 这是代码 btn setOnClickListener new O
  • Android相机无法从后台服务拍照

    我已经实现了一项从后台线程拍照的服务 但照片永远不会在我的任何设备上拍摄 这是代码 下面记录输出 public class PhotoCaptureService extends Service private static final S
  • 是否可以使用 Google Glass 拍照而无需“点击接受”?

    我按照此处的代码使用 Google Glass 相机捕获图像 https developers google com glass develop gdk media camera camera capturing images or vid
  • 禁止将拍摄的照片保存到 DCIM 文件夹中

    我在我的应用程序中通过 Intent 拍照 照片保存到 SD 上我指定的文件夹中 而且它们也保存到 DCIM 默认相机文件夹中 我不想两次 如何禁止将拍摄的照片保存到此默认相机目录中 先感谢您 这是我正在使用的 Intent intent
  • 如何使用 UIImagePickerController CropRect

    我刚刚找到了一种方法来更改裁剪框的矩形 该裁剪框在捕获图像后出现UIImagePickerViewController 这可以在以下帮助下完成UIImagePickerControllerCropRect 但我不知道如何使用它 最初的裁剪框
  • ipad 2相机支持检测

    我有一个使用以下宏的应用程序 define IS IPAD UIDevice currentDevice respondsToSelector selector userInterfaceIdiom UIDevice currentDevi
  • 如何在 AVCaptureDevice 上准确设置快速快门速度(曝光时间)?

    我正在开发适用于 IOS 13 的相机应用程序 为此 我将 AVCaptureSession 与 AVCaptureVideoPreviewLayer 结合使用 到目前为止一切正常 现在我想让用户从给定的典型快门速度值数组 以 1 3 曝光
  • 使用畸变从图像平面计算相机矢量

    我正在尝试使用相机模型来重建可以使用某些相机及其 外部 内部 参数拍摄的图像 这一点我没有任何问题 现在我想添加扭曲 正如它们中所描述的那样OpenCV https docs opencv org 4 x dc dbb tutorial p
  • Marshmallow 中的手电筒控制

    我对最新 Marshmallow 版本中的相机 更具体地说是手电筒 有疑问 在任何棉花糖之前的版本上 我需要执行以下操作来打开 关闭闪光灯 private void turnFlashOn final Camera camera int f
  • 浏览器显示“已阻止摄像头以保护您的隐私”

    浏览器说 阻止摄像头以保护您的隐私 我的项目包括使用用户摄像头 当我从本地主机访问应用程序时 摄像头工作正常 但是当通过 IP 地址访问时 浏览器默认阻止摄像头和其他资源 我如何允许它们用于我的应用程序 我的应用程序适用于将使用 IP 地址

随机推荐

  • 十进制转十六进制的C语言实现

    include lt stdio h gt include lt stdlib h gt include lt string h gt void reversestr char source char target unsigned int
  • Linux中断处理的“下半部”机制

    前言 中断分为硬件中断 xff0c 软件中断 中断的处理原则主要有两个 xff1a 一个是不能嵌套 xff0c 另外一个是越快越好 在Linux中 xff0c 分为中断处理采用 上半部 和 下半部 处理机制 一 中断处理 下半部 机制 中断
  • Linux中的workqueue机制

    转载与知乎https zhuanlan zhihu com p 91106844 一 前言 Linux中的workqueue机制是中断底半部的一种实现 xff0c 同时也是一种通用的任务异步处理的手段 进入workqueue队列处理的任务
  • 嵌入式编程通用Makefile

    一 根目录下Makefile 这个Makefile为主Makefile CROSS COMPILE span class token operator 61 span AS span class token operator 61 span
  • Hi3798 PWM输出控制背光

    一 PWM配置说明 Hi3798 具有3个PWM输出端口 通过查阅 Hi3798M V200 低功耗方案 使用指南 pdf 可得 xff1a 通过查阅Hitool工具可以查看到三个PWM端口的寄存器分别为 xff1a 通过原理图可得 xff
  • Hi3798移植4G模块(移远EC20)

    Hi3798移植4G模块 xff08 移远EC20 xff09 一 前言二 USB驱动修改2 1 添加VID和PID信息2 2 添加空包处理机制2 3 添加复位重连机制2 4 修改内核配置 三 GoBiNet测试程序 一 前言 本次系统采用
  • uniapp小视频项目:滑动播放视频

    文章目录 1 监听视频滑动2 播放和暂停3 增加播放 暂停视频功能4 增加双击点赞5 控制首个视频自动播6 动态渲染视频信息 1 监听视频滑动 给 swiper 增加 64 change 61 34 change 34 xff0c 这个时间
  • Vue github用户搜索案例

    文章目录 完成样式请求数据完善使用 vue resource 完成样式 1 public 下新建 css 文件夹 xff0c 放入下载好的 bootstrap css xff0c 并在 index html 中引入 2 新建 Search
  • 【敬伟ps教程】平移、缩放、移动、选区

    文章目录 平移抓手工具旋转抓手 缩放工具移动工具详解选区选区工具详解 平移 抓手工具 当打开一张大图时 xff0c 可以通过修改底部的百分比或使用抓手工具 xff08 H或在任何时候按住空格键来使用抓手工具 xff09 来查看更多细节 使用
  • 【敬伟ps教程】套索、魔棒工具、快速选择工具、选区的编辑和调整

    文章目录 套索工具自由套索多边形套索磁性套索工具 魔棒工具快速选择工具选区的编辑和调整 套索工具 自由套索 套索工具的用法 xff0c 点击鼠标左键拖动鼠标建立选区 当选区没闭合时 xff0c 松开鼠标会自动闭合选区 套索工具灵活快速但不够
  • Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

    项目是 vite 43 vue 43 ts 运行 npm run dev可以正常运行 xff0c 运行 npm run build 报错 解决办法 xff1a 1 先打开cmd全局命令窗口 xff0c 输入 npm install g in
  • 安卓手机投屏到win10电脑

    PC端操作 手机端操作 xff08 Mi6为例 xff09 pc端弹出提示 xff0c 选择是
  • 用Windows自带画图软件吸取色值

    1 打开画图windows自带画图软件 2 用qq截图要吸取颜色的图片 xff0c ctrl 43 v粘贴到画图软件中 3 点击取色器 xff0c 吸取颜色 xff0c 这是会看到吸取成功的颜色 4 打开编辑颜色 5 这样就得到了RGB颜色
  • 打开浏览器默认是360导航解决办法

    Chrome Chrome的设置中已经设置了百度为启动页 但是打开Chrome显示的还是360 解决办法很简单就是把桌面的快捷方式删除 xff0c 然后在安装目录重新生成快捷方式到桌面即可 Microsoft Edge 这个360修改的就更
  • 打开项目报错Error:Could not get unknown property 'mave' for project ':app' of type org.gradle.api.Project.

    今天打开项目 xff0c 报错如下 xff1a 打开gradle properties xff0c 发现最后的MAVEN URL地址错乱 xff0c 改完就可以了
  • Eclipse自带的抓包工具

    打开Eclipse window show view other 现在访问之前写的项目 http localhost 8888 android jsp flight index jsp 查看Eclipse
  • Fiddler抓取手机端APP接口数据(包括https)

    下载安装Fiddler https pan baidu com s 12zAt0r8lcHTszekOOcqeLg 环境要求 PC机和手机连接在同一网络下 设置 1 记录pc端地址 2 如果不显示这个工具栏 xff0c 可以设置View S
  • 【Git】Git撤销add操作

    Git add错了文件怎么办 xff1f 可以查看以下两篇 https git scm com book zh v1 Git 基础 记录每次更新到仓库 https git scm com book zh v1 Git 基础 撤消操作 我们来
  • Cygwin安装教程

    简介 cygwin是一个在windows平台上运行的unix模拟环境 xff0c 是cygnus solutions公司开发的自由软件 Cygwin就是一个windows软件 xff0c 该软件就是在windows上仿真linux操作系统
  • 学习Kalibr工具--Camera标定过程

    这里介绍用kalibr工具对相机进行单目和双目的标定 xff1b 在kalibr中不仅提供了IMU与camera的联合标定工具 xff0c 也包含了camera的标定工具箱 xff1b 准备 安装好kalibr之后 xff0c 开始准备标定