gitouni / Targetless-LiDAR-camera-calibration

Official Implementation of the paper "Targetless Extrinsic Calibration of Camera and Low-resolution 3D LiDAR"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

第四步报错:Clique num 0 < 3, break down.

HatakeKiki opened this issue · comments

非常感谢您的工作!我目前在使用您提供的数据按照说明进行复现,在第四步出现如下所示报错:
命令行:
py --camera_json data/output/reconstruction_sequential/sfm_data.json --pcd_json res/building_imu/ranreg_raw.json
输出:
Iter 1:
Rotation:[[ 0.44062803 0.89748217 -0.01930527]
[-0.00536879 -0.01887047 -0.99980752]
[-0.89767372 0.44064686 -0.00349647]]
Translation:[ 0.5853238 4.35896128 -2.4305053 ]
Scale:-0.17549187823877666
Total:211 Clique:0 Left:211
Clique num 0 < 3, break down.

输入用到的两个文件如下:
ranreg_raw.json
sfm_data.json

麻烦您帮我看看问题出在哪儿?感谢!

您好,按照我的推测,应该是点云multiway配准出了问题,你可以先用我的两个文件试试 (替换掉ranreg_raw和sfm_data):
ransac_optimized_defined.json
sfm_data.json
我会重新跑一遍我的代码,以便检查是哪里出了问题,但是可能会要等几天才能给你回复。

非常感谢您的工作!我目前在使用您提供的数据按照说明进行复现,在第四步出现如下所示报错: 命令行: py --camera_json data/output/reconstruction_sequential/sfm_data.json --pcd_json res/building_imu/ranreg_raw.json 输出: Iter 1: Rotation:[[ 0.44062803 0.89748217 -0.01930527] [-0.00536879 -0.01887047 -0.99980752] [-0.89767372 0.44064686 -0.00349647]] Translation:[ 0.5853238 4.35896128 -2.4305053 ] Scale:-0.17549187823877666 Total:211 Clique:0 Left:211 Clique num 0 < 3, break down.

输入用到的两个文件如下: ranreg_raw.json sfm_data.json

麻烦您帮我看看问题出在哪儿?感谢!

您好,我这边复现出了之前的结果了,输出TL_solve_ransac.py文件的输出是这样的:

Iter 1:
Rotation:[[ 0.06074526 -0.99811203 -0.00907718]
 [ 0.00432967  0.00935737 -0.99994685]
 [ 0.99814391  0.06070273  0.00488991]]
Translation:[8.57689164 0.19424856 5.76040084]
Scale:6.002708097356405
Total:211 Clique:95 Left:116
Inlier se3 error:1.082879196507009
Iter 2:
Rotation:[[ 4.51670948e-02 -9.98969323e-01 -4.49728949e-03]
 [ 2.23754992e-04  4.51200038e-03 -9.99989796e-01]
 [ 9.98979421e-01  4.51656277e-02  4.27318322e-04]]
Translation:[24.98825781 -1.34377425 16.5411383 ]
Scale:5.997021548818422
Total:211 Clique:62 Left:54
Inlier se3 error:0.9885270735885605
Iter 3:
Rotation:[[ 0.06718717 -0.99767749 -0.01120332]
 [ 0.01519178  0.01225033 -0.99980955]
 [ 0.99762473  0.06700417  0.01597957]]
Translation:[14.0254514   0.5251865   9.47458098]
Scale:5.830169525323646
Total:211 Clique:26 Left:28
Inlier se3 error:0.7363482821052506
Iter 4:
Rotation:[[ 0.05129036 -0.99867021  0.00520716]
 [ 0.01541059 -0.00442195 -0.99987147]
 [ 0.99856488  0.05136401  0.01516329]]
Translation:[ 0.83647673  1.16830308 -0.30425071]
Scale:3.6179670329807485
Total:211 Clique:12 Left:16
Scale changed too much cur | inlier: 6.002708097356405 | 3.6179670329807485, break down.
[[1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 103, 104, 105, 113, 122, 132, 133, 134, 142, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210], [97, 98, 99, 100, 101, 102, 106, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 123, 124, 125, 126, 127, 128, 129, 130, 131, 135, 136, 137, 138, 139, 140, 141, 143, 144, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168], [171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196]]

考虑的不同电脑的multiway和sfm的结果不一样,我把我的两个文件附在这里,你可以验证一下:
ranreg_raw.json
sfm_data.json

另外,附上multiway_reg.py的输出结果:

[Open3D DEBUG] Reached maximum number of iterations (100)
[Open3D DEBUG] [GlobalOptimizationLM] total time : 20.749 sec.
[Open3D DEBUG] [GlobalOptimizationLM] Optimizing PoseGraph having 211 nodes and 2551 edges.
[Open3D DEBUG] Line process weight : 1652.352160
[Open3D DEBUG] [Initial     ] residual : 9.162091e+05, lambda : 7.299952e+02
[Open3D DEBUG] [Iteration 00] residual : 8.638260e+05, valid edges : 2341, time : 0.022 sec.
[Open3D DEBUG] [Iteration 01] residual : 8.618066e+05, valid edges : 2341, time : 0.019 sec.
[Open3D DEBUG] [Iteration 02] residual : 8.615642e+05, valid edges : 2340, time : 0.019 sec.
[Open3D DEBUG] [Iteration 03] residual : 8.615294e+05, valid edges : 2340, time : 0.019 sec.
[Open3D DEBUG] [Iteration 04] residual : 8.615245e+05, valid edges : 2340, time : 0.019 sec.
[Open3D DEBUG] Current_residual - new_residual < 1.000000e-06 * current_residual
[Open3D DEBUG] [GlobalOptimizationLM] total time : 0.116 sec.
[Open3D DEBUG] CompensateReferencePoseGraphNode : reference : 0

正常情况下,valid_edges的数量应该在2000+,可以对照你的输出结果看一下。

感谢!重新下载了数据集跑了一遍正常了。