AIBluefisher / DAGSfM

Distributed and Graph-based Structure from Motion. This project includes the official implementation of our Pattern Recognition 2020 paper: Graph-Based Parallel Large Scale Structure from Motion.
https://aibluefisher.github.io/GraphSfM/
BSD 3-Clause "New" or "Revised" License
395 stars 84 forks source link

Not found enough common registered (runtime) #36

Closed ghost closed 3 years ago

ghost commented 3 years ago

I get the attached screenshot while reconstructing. Also, the software fails to register all images that I provide it with. Any idea as to why? Screenshot from 2020-09-28 15-58-02

AIBluefisher commented 3 years ago

The merging step will find 3D correspondences by iterating all pairwise submaps. It's common that some submaps don't share enough 3D landmarks or camera poses. And it may due to the clustering algorithm doesn't assign common images to these submaps, or some common images are registered failed. However, the merging algorithm is robust, as it requires only a n-1 edges (a minimum spanning tree) are valid. Besides, it needs to tune some parameters in clustering step. The picture doesn't show enough information for me. I would like to know the parameters you set for the distributed SfM pipeline, and the complete merging log to help you.

ghost commented 3 years ago

reconstruction_txt.txt logs.zip

Thanks a lot for the reply. I'll attach the log and the shell script I used to start the reconstruction. Thanks for the help!

AIBluefisher commented 3 years ago
  1. The images number of the dataset is 5951
    I0925 11:08:53.794533  3580 distributed_mapper_controller.cpp:345] Reading images...
    I0925 11:08:55.067337  3580 distributed_mapper_controller.cpp:353] Reading scene graph...
    I0925 11:23:37.133355  3580 distributed_mapper_controller.cpp:87] Total image number: 5951
    I0925 11:23:37.156211  3580 distributed_mapper_controller.cpp:388] There are 1 connected components.
    I0925 11:23:37.156229  3580 distributed_mapper_controller.cpp:394] Component #318# has 5951 images.
    I0925 11:23:37.156232  3580 distributed_mapper_controller.cpp:398] There are 0small connected components are discarded.
    I0925 11:23:37.156371  3580 distributed_mapper_controller.cpp:89] image number in largest cc: 5951
  2. There are 31 sub-recosntructions in total.
    I0926 10:55:51.291676  3580 distributed_mapper_controller.cpp:567] Sub-reconstructions size: 31
    I0926 10:55:51.291708  3580 sfm_aligner.cpp:221] Node id: 0
    I0926 10:55:51.291723  3580 sfm_aligner.cpp:223] Total images number: 756
    I0926 10:55:51.291734  3580 sfm_aligner.cpp:221] Node id: 1
    I0926 10:55:51.291749  3580 sfm_aligner.cpp:223] Total images number: 760
    I0926 10:55:51.291765  3580 sfm_aligner.cpp:221] Node id: 2
    I0926 10:55:51.291776  3580 sfm_aligner.cpp:223] Total images number: 631
    I0926 10:55:51.291790  3580 sfm_aligner.cpp:221] Node id: 3
    I0926 10:55:51.291803  3580 sfm_aligner.cpp:223] Total images number: 22
    I0926 10:55:51.291819  3580 sfm_aligner.cpp:221] Node id: 4
    I0926 10:55:51.291831  3580 sfm_aligner.cpp:223] Total images number: 44
    I0926 10:55:51.291844  3580 sfm_aligner.cpp:221] Node id: 5
    I0926 10:55:51.291855  3580 sfm_aligner.cpp:223] Total images number: 551
    I0926 10:55:51.291870  3580 sfm_aligner.cpp:221] Node id: 6
    I0926 10:55:51.291883  3580 sfm_aligner.cpp:223] Total images number: 151
    I0926 10:55:51.291893  3580 sfm_aligner.cpp:221] Node id: 7
    I0926 10:55:51.291908  3580 sfm_aligner.cpp:223] Total images number: 176
    I0926 10:55:51.291923  3580 sfm_aligner.cpp:221] Node id: 8
    I0926 10:55:51.291936  3580 sfm_aligner.cpp:223] Total images number: 250
    I0926 10:55:51.291946  3580 sfm_aligner.cpp:221] Node id: 9
    I0926 10:55:51.291960  3580 sfm_aligner.cpp:223] Total images number: 200
    I0926 10:55:51.291975  3580 sfm_aligner.cpp:221] Node id: 10
    I0926 10:55:51.291987  3580 sfm_aligner.cpp:223] Total images number: 11
    I0926 10:55:51.291999  3580 sfm_aligner.cpp:221] Node id: 11
    I0926 10:55:51.292012  3580 sfm_aligner.cpp:223] Total images number: 16
    I0926 10:55:51.292027  3580 sfm_aligner.cpp:221] Node id: 12
    I0926 10:55:51.292040  3580 sfm_aligner.cpp:223] Total images number: 646
    I0926 10:55:51.292053  3580 sfm_aligner.cpp:221] Node id: 13
    I0926 10:55:51.292065  3580 sfm_aligner.cpp:223] Total images number: 574
    I0926 10:55:51.292080  3580 sfm_aligner.cpp:221] Node id: 14
    I0926 10:55:51.292093  3580 sfm_aligner.cpp:223] Total images number: 28
    I0926 10:55:51.292106  3580 sfm_aligner.cpp:221] Node id: 15
    I0926 10:55:51.292119  3580 sfm_aligner.cpp:223] Total images number: 11
    I0926 10:55:51.292134  3580 sfm_aligner.cpp:221] Node id: 16
    I0926 10:55:51.292146  3580 sfm_aligner.cpp:223] Total images number: 15
    I0926 10:55:51.292160  3580 sfm_aligner.cpp:221] Node id: 17
    I0926 10:55:51.292171  3580 sfm_aligner.cpp:223] Total images number: 268
    I0926 10:55:51.292186  3580 sfm_aligner.cpp:221] Node id: 18
    I0926 10:55:51.292198  3580 sfm_aligner.cpp:223] Total images number: 245
    I0926 10:55:51.292210  3580 sfm_aligner.cpp:221] Node id: 19
    I0926 10:55:51.292223  3580 sfm_aligner.cpp:223] Total images number: 102
    I0926 10:55:51.292238  3580 sfm_aligner.cpp:221] Node id: 20
    I0926 10:55:51.292253  3580 sfm_aligner.cpp:223] Total images number: 19
    I0926 10:55:51.292265  3580 sfm_aligner.cpp:221] Node id: 21
    I0926 10:55:51.292279  3580 sfm_aligner.cpp:223] Total images number: 576
    I0926 10:55:51.292294  3580 sfm_aligner.cpp:221] Node id: 22
    I0926 10:55:51.292306  3580 sfm_aligner.cpp:223] Total images number: 28
    I0926 10:55:51.292320  3580 sfm_aligner.cpp:221] Node id: 23
    I0926 10:55:51.292331  3580 sfm_aligner.cpp:223] Total images number: 20
    I0926 10:55:51.292347  3580 sfm_aligner.cpp:221] Node id: 24
    I0926 10:55:51.292359  3580 sfm_aligner.cpp:223] Total images number: 582
    I0926 10:55:51.292372  3580 sfm_aligner.cpp:221] Node id: 25
    I0926 10:55:51.292385  3580 sfm_aligner.cpp:223] Total images number: 580
    I0926 10:55:51.292400  3580 sfm_aligner.cpp:221] Node id: 26
    I0926 10:55:51.292413  3580 sfm_aligner.cpp:223] Total images number: 512
    I0926 10:55:51.292425  3580 sfm_aligner.cpp:221] Node id: 27
    I0926 10:55:51.292438  3580 sfm_aligner.cpp:223] Total images number: 488
    I0926 10:55:51.292454  3580 sfm_aligner.cpp:221] Node id: 28
    I0926 10:55:51.292466  3580 sfm_aligner.cpp:223] Total images number: 382
    I0926 10:55:51.292479  3580 sfm_aligner.cpp:221] Node id: 29
    I0926 10:55:51.292491  3580 sfm_aligner.cpp:223] Total images number: 32
    I0926 10:55:51.292853  3580 sfm_aligner.cpp:221] Node id: 30
    I0926 10:55:51.292877  3580 sfm_aligner.cpp:223] Total images number: 17
  3. The merging algorithm find 30 nodes to merge:
    I0926 10:55:54.333905  3580 graph.inl:406] Total nodes: 31
    I0926 10:55:54.333950  3580 graph.inl:407] 
    Total edges: 86
    I0926 10:55:54.334586  3580 graph.inl:408] 
    [Node]: 
    I0926 10:55:54.334652  3580 graph.inl:412] 
    [Edge]: 
    I0926 10:55:54.335585  3580 sfm_aligner.cpp:269] Finding Minimum Spanning Tree...
    I0926 10:55:54.335665  3580 graph.inl:405] [Graph Info]
    I0926 10:55:54.335702  3580 graph.inl:406] Total nodes: 30
    I0926 10:55:54.335741  3580 graph.inl:407] 
    Total edges: 29
  4. 5776 images (out of 5951) are registered after merging all sub-reconstrucitons, and it's quite normal that there are about 200 images fail to register.
    0926 10:56:25.929177  3580 reconstruction.cc:848] Registered images number: 5776
    I0926 10:56:25.929179  3580 reconstruction.cc:850] Added points3D: 2825535
    I0926 10:56:25.929181  3580 reconstruction.cc:852] Reconstructed 3D points: 637418
    I0926 10:56:25.983434  3580 reconstruction.cc:854] Mean Reprojection Error: 4.11528
    I0926 10:56:25.983850  3580 reconstruction.cc:856] Observations number: 5163014
    I0926 10:56:25.984110  3580 reconstruction.cc:858] Mean Track Length: 8.09989
    I0926 10:56:25.984318  3580 reconstruction.cc:860] Mean Observations Per Image: 893.874
ghost commented 3 years ago

Ah ok, it seemed weird to me, that's why I asked. But then it's working fine. Thanks again!