ROS学习笔记之——基于dv-gui的多种事件相机标定的方法对比

Posted gwpscut

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS学习笔记之——基于dv-gui的多种事件相机标定的方法对比相关的知识,希望对你有一定的参考价值。

之前博客《ROS学习笔记之——DAVIS346 calibration》与《ROS实验笔记之——基于dv-gui的camera与IMU校正(DAVIS346与DVXplorer)》已经试过对事件相机的内参进行校正

但是由于ETH组出了名的以造假、故意做出其他学者用不好的算法来阻碍学术发展。不能单纯相信他们的算法单纯一个模块的效果(当然也许他们的论文里面也是通过伪造数据,夸张绚丽的表面来博取眼球),本博文就把dv-gui中两个内参标定的模块都测试对比一下吧。

本博文分别测试davis346以及dvxplorer的内参,每种情况测试两次。对比其效果

davis346基于imu-cam-calibration模块

 此处有些参数是需要注意的:

  • calibration pattern (采用的是 aprilgrid)
  • size of the calibration pattern (用的是6x6)
  • board square size(大小是0.02m)
  • tag spacing ratio (大格子跟小格子的比例是0.3)
  • 上面的几个参数都是实际上用尺子量的(要根据实际标定板的情况)

第一次测试的结果:

Intrinsic calibration results:

projection: 257.342 257.276 178.16 138.335

 distortion: -0.366629 0.148679 8.10462e-05 4.26934e-05

第二次测试的结果:

Intrinsic calibration results:

 projection: 259.355 259.58 177.005 137.922

 distortion: -0.373464 0.139924 -0.000309077 0.000635965

 reprojection error: [1.00809e-07, 4.89747e-08] +- [0.292752, 0.290731]

davis346基于calibration模块

第一次测试的结果:

<?xml version="1.0"?>
<opencv_storage>
<DAVIS346_00000589>
  <camera_matrix type_id="opencv-matrix">
    <rows>3</rows>
    <cols>3</cols>
    <dt>d</dt>
    <data>
      2.7212184970404144e+02 0. 1.7942366739546233e+02 0.
      2.7133120835781955e+02 1.3870422228012103e+02 0. 0. 1.</data></camera_matrix>
  <distortion_coefficients type_id="opencv-matrix">
    <rows>5</rows>
    <cols>1</cols>
    <dt>d</dt>
    <data>
      -4.4701466924937960e-01 2.7568127150609489e-01
      -9.0018075082829677e-04 1.0534324501712768e-03
      -1.0838337149382810e-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.0807818962026174e-01</calibration_error>
<calibration_time>"Tue Dec 28 12:19:18 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>
      2.5940796326831025e+02 0. 1.7744863566869512e+02 0.
      2.5905525371057979e+02 1.3909797628929306e+02 0. 0. 1.</data></camera_matrix>
  <distortion_coefficients type_id="opencv-matrix">
    <rows>5</rows>
    <cols>1</cols>
    <dt>d</dt>
    <data>
      -4.1076371406382184e-01 2.3737255095634258e-01
      -3.2653809612202394e-04 1.5735414317165095e-03
      -8.6338399040140235e-02</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>4.6088978293760868e-01</calibration_error>
<calibration_time>"Tue Dec 28 12:24:57 2021"</calibration_time>
</opencv_storage>

dvxplorer基于imu-cam-calibration模块

第一次测试

Intrinsic calibration results:

 projection: 571.499 571.337 341.507 262.752

 distortion: -0.367908 0.146134 -0.000565564 0.000363582

 reprojection error: [-4.58166e-07, 8.1936e-07] +- [0.40742, 0.438101]

第二次测试

Intrinsic calibration results:

  projection: 566.515 566.817 337.832 262.732

  distortion: -0.36093 0.143797 -0.000213552 0.000562016

  reprojection error: [-9.06133e-07, 6.39306e-07] +- [0.551903, 0.577983]

第三次测试

 Intrinsic calibration results:

  projection: 566.672 566.73 337.847 259.916

distortion: -0.372447 0.153642 -0.000399186 -0.000157163

reprojection error: [2.27854e-06, -6.80374e-07] +- [0.432493, 0.523382]

dvxplorer基于calibration模块

第一次测试结果

<?xml version="1.0"?>
<opencv_storage>
<DVXplorer_DXA00188>
  <camera_matrix type_id="opencv-matrix">
    <rows>3</rows>
    <cols>3</cols>
    <dt>d</dt>
    <data>
      6.3050284475234082e+02 0. 3.4126468295564098e+02 0.
      6.2882328845285008e+02 2.5762617671720403e+02 0. 0. 1.</data></camera_matrix>
  <distortion_coefficients type_id="opencv-matrix">
    <rows>5</rows>
    <cols>1</cols>
    <dt>d</dt>
    <data>
      -4.9913506465222207e-01 3.2617156170064837e-01
      2.7877123006422198e-03 3.7502213736009230e-04
      -1.1347034786275229e-01</data></distortion_coefficients>
  <image_width>640</image_width>
  <image_height>480</image_height></DVXplorer_DXA00188>
<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.5605328949970061e-01</calibration_error>
<calibration_time>"Tue Dec 28 15:23:47 2021"</calibration_time>
</opencv_storage>

第二次测试

<?xml version="1.0"?>
<opencv_storage>
<DVXplorer_DXA00188>
  <camera_matrix type_id="opencv-matrix">
    <rows>3</rows>
    <cols>3</cols>
    <dt>d</dt>
    <data>
      5.5493499023075924e+02 0. 3.4234666194106040e+02 0.
      5.5381347325142156e+02 2.6341823849107038e+02 0. 0. 1.</data></camera_matrix>
  <distortion_coefficients type_id="opencv-matrix">
    <rows>5</rows>
    <cols>1</cols>
    <dt>d</dt>
    <data>
      -3.9040846292381715e-01 2.2346165828890702e-01
      -9.5348648937888705e-04 -8.3400759400571733e-04
      -9.2925442328489968e-02</data></distortion_coefficients>
  <image_width>640</image_width>
  <image_height>480</image_height></DVXplorer_DXA00188>
<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.5393771255306844e-01</calibration_error>
<calibration_time>"Tue Dec 28 15:25:26 2021"</calibration_time>
</opencv_storage>

dvxplorer2基于imu-cam-calibration模块

第一次测试

 Intrinsic calibration results:

 projection: 571.929 572.274 317.152 234.022

 distortion: -0.354799 0.151864 -0.0023096 -0.00113246

 reprojection error: [9.13612e-07, 5.33942e-07] +- [0.406801, 0.493657]

imu-cam-calibration Transformation T_cam_imu:

imu-cam-calibration   -0.998972   0.0449681  0.00575804   0.0153091

imu-cam-calibration   0.0452164    0.997474   0.0547906   0.0265518

imu-cam-calibration -0.00327966   0.0549946   -0.998481  -0.0290904

imu-cam-calibration           0           0           0           1

imu-cam-calibration Camera to imu time: [s] (t_imu = t_cam + shift):

imu-cam-calibration   -0.00333609

结论

不出意外,效果差别还是比较大的。确实ETH这个组开源的很多工作,都很差,故意的给出差的效果,来阻碍其他学者的使用。虽然他们自己publish出来的结果好像很好,但要是他们给出raw result,真正去测一下就发现,其实还是差得比较多的。看看什么时候被打假打下来吧。所以对于这个组的工作,知道就好了。接下来还是使用其他方法来校正吧。

以上是关于ROS学习笔记之——基于dv-gui的多种事件相机标定的方法对比的主要内容,如果未能解决你的问题,请参考以下文章

ROS实验笔记之——基于dv-gui多次标定event与imu的实验记录

ROS实验笔记之——基于dv-gui的camera与IMU校正(DAVIS346与DVXplorer)

ROS实验笔记之——基于Kalibr标定event 与imu

ROS实验笔记之——基于kalibr来标定DAVIS346

ROS学习笔记之——ESVO复现及DAVIS346测试

ROS实验笔记之——基于l515激光相机的FLVIS与MLMapping