colmap / glomap

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

Config Parameters Specification #37

Closed eyildiz-ugoe closed 1 month ago

eyildiz-ugoe commented 1 month ago

I saw some parameters specified in the readme file, but in which way they are going to be used? It's not properly written. RelPoseEstimation.max_epipolar_error belongs to which command exactly? Could you share all the config parameters and how they must be used in a decent way? People may have different camera/scene/object setup so knowing all the parameters and their specifications would be good.

ahojnnes commented 1 month ago

These are command-line options for the mapper command:

$ ./glomap/glomap mapper --help
E0806 16:43:24.236276   914 option_manager.cc:285] Options can be specified via command-line.
  -h [ --help ] 
  --database_path arg
  --output_path arg
  --image_path arg
  --constraint_type arg (=ONLY_POINTS)  {ONLY_POINTS, ONLY_CAMERAS, 
                                        POINTS_AND_CAMERAS_BALANCED, 
                                        POINTS_AND_CAMERAS}
  --output_format arg (=bin)            {bin, txt}
  --ba_iteration_num arg (=3)
  --retriangulation_iteration_num arg (=1)
  --skip_preprocessing arg (=0)
  --skip_view_graph_calibration arg (=0)
  --skip_relative_pose_estimation arg (=0)
  --skip_rotation_averaging arg (=0)
  --skip_global_positioning arg (=0)
  --skip_bundle_adjustment arg (=0)
  --skip_retriangulation arg (=0)
  --skip_pruning arg (=1)
  --ViewGraphCalib.thres_lower_ratio arg (=0.10000000000000001)
  --ViewGraphCalib.thres_higher_ratio arg (=10)
  --ViewGraphCalib.thres_two_view_error arg (=2)
  --RelPoseEstimation.max_epipolar_error arg (=1)
  --TrackEstablishment.min_num_tracks_per_view arg (=-1)
  --TrackEstablishment.min_num_view_per_track arg (=3)
  --TrackEstablishment.max_num_view_per_track arg (=100)
  --TrackEstablishment.max_num_tracks arg (=10000000)
  --GlobalPositioning.optimize_positions arg (=1)
  --GlobalPositioning.optimize_points arg (=1)
  --GlobalPositioning.optimize_scales arg (=1)
  --GlobalPositioning.thres_loss_function arg (=0.10000000000000001)
  --GlobalPositioning.max_num_iterations arg (=100)
  --BundleAdjustment.optimize_rotations arg (=1)
  --BundleAdjustment.optimize_translation arg (=1)
  --BundleAdjustment.optimize_intrinsics arg (=1)
  --BundleAdjustment.optimize_points arg (=1)
  --BundleAdjustment.thres_loss_function arg (=1)
  --BundleAdjustment.max_num_iterations arg (=200)
  --Triangulation.complete_max_reproj_error arg (=15)
  --Triangulation.merge_max_reproj_error arg (=15)
  --Triangulation.min_angle arg (=1)
  --Triangulation.min_num_matches arg (=15)
  --Thresholds.max_epipolar_error_E arg (=1)
  --Thresholds.max_epipolar_error_F arg (=4)
  --Thresholds.max_epipolar_error_H arg (=4)
  --Thresholds.min_inlier_num arg (=30)
  --Thresholds.min_inlier_ratio arg (=0.25)
  --Thresholds.max_rotation_error arg (=10)
eyildiz-ugoe commented 1 month ago

That's plenty, thanks for sharing. do you have a documentation for these by any chance? would be good to know what to tweak based on our object/scene. you probably set these to values to prove your concept, so they may not fit ours.