You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Initialize features with colmap feature_extractor.
Match features with colmap exhaustive_matcher.
Run glomap mapper and specify --skip_relative_pose_estimation 1.
Expected result
I don't fully know what the expected result is here, but if the configuration is unsupported an error message would be ideal.
Actual result
glomap encouters segmentation fault in the rotation averaging step:
Thread 1 "glomap" received signal SIGSEGV, Segmentation fault.
0x000055555573127e in glomap::BFS (graph=std::vector of length 0, capacity 0, root=0, parents=std::vector of length 0, capacity 0, banned_edges=std::vector of length 0, capacity 0) at /home/gareth/glomap/glomap/math/tree.cc:38
38 parents[root] = root;
(gdb) bt
#0 0x000055555573127e in glomap::BFS (graph=std::vector of length 0, capacity 0, root=0, parents=std::vector of length 0, capacity 0, banned_edges=std::vector of length 0, capacity 0)
at /home/gareth/glomap/glomap/math/tree.cc:38
#1 0x0000555555731dc3 in glomap::MaximumSpanningTree (view_graph=..., images=std::unordered_map with 51 elements = {...}, parents=std::unordered_map with 0 elements, type=glomap::INLIER_NUM)
at /home/gareth/glomap/glomap/math/tree.cc:134
#2 0x000055555564b7a7 in glomap::RotationEstimator::InitializeFromMaximumSpanningTree (this=0x7fffffffbad0, view_graph=..., images=std::unordered_map with 51 elements = {...})
at /home/gareth/glomap/glomap/estimators/global_rotation_averaging.cc:69
#3 0x000055555564b432 in glomap::RotationEstimator::EstimateRotations (this=0x7fffffffbad0, view_graph=..., images=std::unordered_map with 51 elements = {...})
at /home/gareth/glomap/glomap/estimators/global_rotation_averaging.cc:27
#4 0x0000555555583f0e in glomap::GlobalMapper::Solve (this=0x7fffffffd5e0, database=..., view_graph=..., cameras=std::unordered_map with 1 element = {...}, images=std::unordered_map with 51 elements = {...},
tracks=std::unordered_map with 0 elements) at /home/gareth/glomap/glomap/controllers/global_mapper.cc:82
Specifically, the following sequences of events occurs:
RotationEstimator::InitializeFromMaximumSpanningTree is invoked.
MaximumSpanningTree is invoked.
All images have image.is_registered == false, so the size of the graph is zero.
The size of the min spanning tree is zero.
BFS(...) does not handle this case, and instead segfaults.
I am happy to open a PR with a fix for this, but I would like to first validate that the expected result is failure. If so, I can add an error check for this situation and print something useful.
Cheers.
The text was updated successfully, but these errors were encountered:
Hi @gareth-odyssey, for the current pipeline, directly choosing --skip_relative_pose_estimation will have an undefined behavior. If you want to use this feature, you would need to feed the relative pose directly to the view graph (maybe you need to modify the source code).
To reproduce:
colmap feature_extractor
.colmap exhaustive_matcher
.glomap mapper
and specify--skip_relative_pose_estimation 1
.Expected result
I don't fully know what the expected result is here, but if the configuration is unsupported an error message would be ideal.
Actual result
glomap encouters segmentation fault in the rotation averaging step:
Specifically, the following sequences of events occurs:
RotationEstimator::InitializeFromMaximumSpanningTree
is invoked.MaximumSpanningTree
is invoked.image.is_registered == false
, so the size of the graph is zero.BFS(...)
does not handle this case, and instead segfaults.I am happy to open a PR with a fix for this, but I would like to first validate that the expected result is failure. If so, I can add an error check for this situation and print something useful.
Cheers.
The text was updated successfully, but these errors were encountered: