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)