############### Input/Output ############### # Input/output files. # Set these if a matches file is not present. Images should be a filepath with a # wildcard e.g., /home/my_username/my_images/*.jpg --images= --output_matches_file= # If a matches file has already been created, set the filepath here. This avoids # having to recompute all features and matches. --matches_file= # The calibration file indicates possibly known calibration e.g, from EXIF or # explicit calibration. Theia attempts to extract EXIF focal lengths if calibration # is not supplied for a given image. --calibration_file= --output_reconstruction= ############### Multithreading ############### # Set to the number of threads you want to use. --num_threads=16 ############### Feature Extraction ############### --descriptor=SIFT # Sift blob detector parameters. --sift_num_octaves=-1 --sift_num_levels=3 --sift_first_octave=-1 --sift_edge_threshold=10.0 --sift_peak_threshold=1.7 # Disable if regular sift descriptor is desired. --root_sift=true ############### Matching Options ############### # Perform matching out-of-core. If set to true, the matching_working_directory # must be set to a valid, writable directory (the directory will be created if # it does not exits) Set to false to perform all-in-memory matching. --match_out_of_core=true # During feature matching, features are saved to disk so that out-of-core # matching may be performed. This directory specifies which directory those # features should be saved to. --matching_working_directory= # During feature matching we utilize an LRU cache for out-of-core matching. The size # of that cache (in terms of number of images) is controlled by this parameter. The # higher this number the more memory is required. --matching_max_num_images_in_cache=128 --matching_strategy=CASCADE_HASHING --lowes_ratio=0.75 --min_num_inliers_for_valid_match=30 --max_sampson_error_for_verified_match=4.0 --bundle_adjust_two_view_geometry=true --keep_only_symmetric_matches=true ############### General SfM Options ############### --reconstruction_estimator=GLOBAL --max_track_length=50 --reconstruct_largest_connected_component=false # Set to true if all views were captured with the same camera. If true, then a # single set of camera intrinsic parameters will be used for all views in the # reconstruction. --shared_calibration=false # If set to true, only views with known calibration are reconstructed. --only_calibrated_views=false ############### Global SfM Options ############### --global_position_estimator=NONLINEAR --global_rotation_estimator=ROBUST_L1L2 --post_rotation_filtering_degrees=15.0 # This refinement is very unstable for rotation-only motions so # it is advised that this is set to false for these motions. --refine_relative_translations_after_rotation_estimation=true # If true, only cameras that are well-conditioned for position estimation will # be used for global position estimation --extract_maximal_rigid_subgraph=false # Filter the relative translations with the 1DSfM filter to remove potential # outliers in the relative pose measurements. --filter_relative_translations_with_1dsfm=true # Nonlinear position estimation options --position_estimation_min_num_tracks_per_view=0 --position_estimation_robust_loss_width=0.1 # After estimating camera poses, we perform trianguation, then BA, # then filter out bad points. This controls how many times we repeat # this process. --num_retriangulation_iterations=1 ############### Incremental SfM Options ############### --absolute_pose_reprojection_error_threshold=8 --partial_bundle_adjustment_num_views=20 --full_bundle_adjustment_growth_percent=5 --min_num_absolute_pose_inliers=30 ############### Bundle Adjustment Options ############### # Set this parameter to a value other than NONE if you want to utilize a robust # cost function during bundle adjustment. This can increase robustness to outliers # during the optimization. --bundle_adjustment_robust_loss_function=NONE # Set this value to the determine the reprojection error in pixelst at which # robustness begins (if a robust cost function is being used). --bundle_adjustment_robust_loss_width=10.0 # Set this parameter to change which camera intrinsics should be # optimized. Valid options are NONE, ALL, FOCAL_LENGTH, PRINCIPAL_POINTS, # RADIAL_DISTORTION, ASPECT_RATIO, and SKEW. This parameter can be set using a # bitmask (with no spaces) e.g., FOCAL_LENGTH|RADIAL_DISTORTION --intrinsics_to_optimize=NONE # After BA, remove any points that have a reprojection error greater # than this. --max_reprojection_error_pixels=4.0 ############### Triangulation Options ############### --min_triangulation_angle_degrees=4.0 --triangulation_reprojection_error_pixels=15.0 --bundle_adjust_tracks=true ############### Logging Options ############### # Logging verbosity. --logtostderr # Increase this number to get more verbose logging. --v=3