colmap / glomap

GLOMAP - Global Structured-from-Motion Revisited
BSD 3-Clause "New" or "Revised" License
1.3k stars 76 forks source link

Aborted when the number of tracks exceeds 10,000,000 #98

Open xiemeilong opened 1 week ago

xiemeilong commented 1 week ago

I haven't modified the --TrackEstablishment.max_num_tracks parameter. However, the track count reaches 10,000,001, blocks.size() becomes 10,027,739, and the process aborts with an error.

Running rotation averaging ...
-------------------------------------
I0909 16:42:59.685305 2942394 relpose_filter.cc:31] Filtered 2497 relative rotation with angle > 10 degrees
I0909 16:43:27.634327 2942394 relpose_filter.cc:31] Filtered 4 relative rotation with angle > 10 degrees
I0909 16:43:28.753827 2942394 global_mapper.cc:95] 27758 / 27814 images are within the connected component.
I0909 16:43:28.753857 2942394 timer.cc:87] Elapsed time: 57.36192 [seconds]
-------------------------------------
Running track establishment ...
-------------------------------------
 Initializing pairs 675956 / 675956
 Establishing pairs 675956 / 675956
 Establishing tracks 25777895 / 25777895I0909 16:48:36.911561 2942394 track_establishment.cc:148] Discarded 112352 tracks due to inconsistency
I0909 16:49:57.031415 2942394 global_mapper.cc:115] Before filtering: 25777895, after filtering: 10000001
I0909 16:49:57.031452 2942394 timer.cc:87] Elapsed time: 388.24534 [seconds]
-------------------------------------
Running global positioning ...
-------------------------------------
I0909 16:50:09.828158 2942394 image_undistorter.cc:17] Undistorting images..
I0909 16:50:24.175173 2942394 image_undistorter.cc:43] Image undistortion done
I0909 16:50:24.175365 2942394 global_positioning.cc:43] Setting up the global positioner problem
I0909 16:54:21.098532 2942394 global_positioning.cc:68] Solving the global positioner problem
F0909 18:05:04.488318 2942394 block_random_access_sparse_matrix.cc:55] Check failed: blocks.size() < kMaxRowBlocks (10027739 vs. 10000000) 
*** Check failure stack trace: ***
Aborted (core dumped)
ERROR:root:Mapper failed with code 34304. Exiting.
lpanaf commented 1 week ago

Hi, thanks for your interest. The error seems to come from Ceres. We have not tried any datasets with such large sizes, and the original value was set to be some number we thought could not be reached. In this case, you can either try to decrease the allowed number of points by changing --TrackEstablishment.max_num_tracks, or you can try to install the latest version of Ceres. I have checked the current repo, the constraint is lifted from 10000000 to std::numeric_limits<std::int32_t>::max(). This should be enough and would not cause this error anymore.