ROS学习笔记之——DAVIS346 calibration

30 篇文章 32 订阅
18 篇文章 10 订阅

之前博客《ROS实验笔记之——DAVIS346测试》已经对davis346相机进行了测试。接下来正式开始gan,先看看如何做calibration

官方给的标定

在(rpg_dvs_ros/README.md at master · uzh-rpg/rpg_dvs_ros · GitHub)这里面有关于dvs的校正。由于davis有image输出,所以建议当成是普通的单目相机进行校正。但对于dvs就建议采用闪烁的LED来校正。

而官网中,也有给出校正的方法(Calibration [Tutorial] · DV

下载棋盘格:https://inivation.gitlab.io/dv/dv-docs/docs/assets/calib.io_checker_279x210_6x9_30.pdf
用标准A4纸打印,即可应用DV中Calibration模块的默认设置。并且将棋盘格的A4纸贴在硬质的背景板上。
当然建议使用标准的标定棋盘格(玻璃的等等),并根据实际的一个格子的大小和数量进行参数调整。
采集30张(这个也可以自己设置)合适的图像:根据keep选择,discard遗弃。
首先打开dv-gui。进入structure

将结构改为如下图所示

 

满足30张后,DV软件会进行自动标定。标定结果为.xml格式的文件,打开后即有所标定相机的参数,包括内参矩阵参数、畸变系数参数、标定误差、相机分辨率等信息。如下所示:

<?xml version="1.0"?>
<opencv_storage>
<DAVIS346_00000589>
  <camera_matrix type_id="opencv-matrix">
    <rows>3</rows>
    <cols>3</cols>
    <dt>d</dt>
    <data>
      1.9878276685398509e+02 0. 1.1228075705687088e+02 0.
      1.9734812584365113e+02 7.0750652805207991e+01 0. 0. 1.</data></camera_matrix>
  <distortion_coefficients type_id="opencv-matrix">
    <rows>5</rows>
    <cols>1</cols>
    <dt>d</dt>
    <data>
      -1.1985357391762412e-01 -9.8958697325729816e-02
      3.0709392836820643e-02 3.9418591165145921e-02
      1.2116012582248603e-01</data></distortion_coefficients>
  <image_width>346</image_width>
  <image_height>260</image_height></DAVIS346_00000589>
<use_fisheye_model>0</use_fisheye_model>
<type>camera</type>
<pattern_width>8</pattern_width>
<pattern_height>5</pattern_height>
<pattern_type>chessboard</pattern_type>
<board_width>9</board_width>
<board_height>6</board_height>
<square_size>30.</square_size>
<calibration_error>5.5529658666877568e-01</calibration_error>
<calibration_time>"Sat Sep 25 21:18:27 2021"</calibration_time>
</opencv_storage>

标定成功!

再标定一次看看

<?xml version="1.0"?>
<opencv_storage>
<DAVIS346_00000589>
  <camera_matrix type_id="opencv-matrix">
    <rows>3</rows>
    <cols>3</cols>
    <dt>d</dt>
    <data>
      3.9653583499966118e+02 0. 1.6787507921185320e+02 0.
      3.9612207099065148e+02 1.4389847656722665e+02 0. 0. 1.</data></camera_matrix>
  <distortion_coefficients type_id="opencv-matrix">
    <rows>5</rows>
    <cols>1</cols>
    <dt>d</dt>
    <data>
      -1.6359667472587300e-01 -9.1389981562977995e-01
      7.1507755344497846e-03 -2.7210822750768568e-03
      2.6374031579450103e+00</data></distortion_coefficients>
  <image_width>346</image_width>
  <image_height>260</image_height></DAVIS346_00000589>
<use_fisheye_model>0</use_fisheye_model>
<type>camera</type>
<pattern_width>8</pattern_width>
<pattern_height>5</pattern_height>
<pattern_type>chessboard</pattern_type>
<board_width>9</board_width>
<board_height>6</board_height>
<square_size>30.</square_size>
<calibration_error>3.9269118486286703e-01</calibration_error>
<calibration_time>"Sun Sep 26 16:54:06 2021"</calibration_time>
</opencv_storage>

同时也做了单纯对事件进行标定,差别还是蛮大的~~~~

 

 新的frame标定结果

<?xml version="1.0"?>
<opencv_storage>
<DAVIS346_00000589>
  <camera_matrix type_id="opencv-matrix">
    <rows>3</rows>
    <cols>3</cols>
    <dt>d</dt>
    <data>
      3.5328153703075981e+02 0. 1.7012119849817012e+02 0.
      3.5284786866712420e+02 1.3841189567354795e+02 0. 0. 1.</data></camera_matrix>
  <distortion_coefficients type_id="opencv-matrix">
    <rows>5</rows>
    <cols>1</cols>
    <dt>d</dt>
    <data>
      -3.7432236833086363e-01 2.3096873670740367e-01
      -3.0962268919204365e-07 1.3598887009412723e-03
      -1.2117709653807149e-01</data></distortion_coefficients>
  <image_width>346</image_width>
  <image_height>260</image_height></DAVIS346_00000589>
<use_fisheye_model>0</use_fisheye_model>
<type>camera</type>
<pattern_width>8</pattern_width>
<pattern_height>5</pattern_height>
<pattern_type>chessboard</pattern_type>
<board_width>9</board_width>
<board_height>6</board_height>
<square_size>30.</square_size>
<calibration_error>1.0913323376425003e-01</calibration_error>
<calibration_time>"Thu Oct  7 16:44:45 2021"</calibration_time>
</opencv_storage>

新的event标定结果

<?xml version="1.0"?>
<opencv_storage>
<DAVIS346_00000589>
  <camera_matrix type_id="opencv-matrix">
    <rows>3</rows>
    <cols>3</cols>
    <dt>d</dt>
    <data>
      3.4900354534296639e+02 0. 1.6930191455449176e+02 0.
      3.4908400420819970e+02 1.3879485338367192e+02 0. 0. 1.</data></camera_matrix>
  <distortion_coefficients type_id="opencv-matrix">
    <rows>5</rows>
    <cols>1</cols>
    <dt>d</dt>
    <data>
      -3.7293351356245436e-01 3.9809156436172211e-01
      3.8628707512699183e-03 2.1843414333139700e-03
      -3.9622268953957218e-01</data></distortion_coefficients>
  <image_width>346</image_width>
  <image_height>260</image_height></DAVIS346_00000589>
<use_fisheye_model>0</use_fisheye_model>
<type>camera</type>
<pattern_width>8</pattern_width>
<pattern_height>5</pattern_height>
<pattern_type>chessboard</pattern_type>
<board_width>9</board_width>
<board_height>6</board_height>
<square_size>30.</square_size>
<calibration_error>9.4047318253728152e-01</calibration_error>
<calibration_time>"Thu Oct  7 16:53:58 2021"</calibration_time>
</opencv_storage>

kalibr标定

也可以使用下面方法来进行标定

davis346相机与IMU标定_啊啊虎的博客-CSDN博客

Installation · ethz-asl/kalibr Wiki · GitHub

而cvpr2021最新版也给出了这样的校正GitHub - uzh-rpg/e2calib: CVPRW 2021: How to calibrate your event camera

参考资料

GitHub - uzh-rpg/rpg_dvs_ros: ROS packages for DVShttps://github.com/uzh-rpg/rpg_dvs_rosrpg_dvs_ros/README.md at master · uzh-rpg/rpg_dvs_ros · GitHubhttps://github.com/uzh-rpg/rpg_dvs_ros/blob/master/dvs_calibration/README.md【事件相机标定】_black_buaa的博客-CSDN博客【事件相机标定】标定的原理:参考博客:https://blog.csdn.net/weixin_43843780/article/details/89294131实现方法:https://blog.csdn.net/black_buaa/article/details/109306941

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值