forked from mapillary/OpenSfM
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.yaml
95 lines (80 loc) · 5.5 KB
/
config.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# Metadata
use_exif_size: yes
default_focal_prior: 0.85
# Params for features
feature_type: HAHOG # Feature type (AKAZE, SURF, SIFT)
feature_root: 1 # If 1, apply square root mapping to features
feature_min_frames: 4000 # If fewer frames are detected, sift_peak_threshold/surf_hessian_threshold is reduced.
feature_process_size: 2048 # Resize the image if its size is larger than specified. Set to -1 for original size
feature_use_adaptive_suppression: no
# Params for SIFT
sift_peak_threshold: 0.1 # Smaller value -> more features
sift_edge_threshold: 10 # See OpenCV doc
# Params for SURF
surf_hessian_threshold: 3000 # Smaller value -> more features
surf_n_octaves: 4 # See OpenCV doc
surf_n_octavelayers: 2 # See OpenCV doc
# Params for AKAZE (See detials in lib/src/third_party/akaze/AKAZEConfig.h)
akaze_omax: 4 # Maximum octave evolution of the image 2^sigma (coarsest scale sigma units)
akaze_dthreshold: 0.001 # Detector response threshold to accept point
akaze_descriptor: MSURF # Feature type
akaze_descriptor_size: 0 # Size of the descriptor in bits. 0->Full size
akaze_descriptor_channels: 3 # Number of feature channels (1,2,3)
# Params for HAHOG
hahog_peak_threshold: 0.00001
hahog_edge_threshold: 10
# Params for general matching
lowes_ratio: 0.8 # Ratio test for matches
preemptive_lowes_ratio: 0.6 # Ratio test for preemptive matches
matcher_type: FLANN # FLANN or BRUTEFORCE
# Params for FLANN matching
flann_branching: 16 # See OpenCV doc
flann_iterations: 10 # See OpenCV doc
flann_checks: 200 # Smaller -> Faster (but might lose good matches)
# Params for preemtive matching
matching_gps_distance: 150 # Maximum gps distance between two images for matching
matching_gps_neighbors: 0 # Number of images to match selected by GPS distance. Set to 0 to use no limit
matching_time_neighbors: 0 # Number of images to match selected by time taken. Set to 0 to use no limit
preemptive_max: 200 # Number of features to use for preemptive matching
preemptive_threshold: 0 # If number of matches passes the threshold -> full feature matching
# Params for geometric estimation
robust_matching_threshold: 0.004 # Outlier threshold for fundamental matrix estimation as portion of image width
robust_matching_min_match: 20 # Minimum number of matches to be considered as an edge in the match grph
five_point_algo_threshold: 0.004 # Outlier threshold (in pixels) for essential matrix estimation
five_point_algo_min_inliers: 20 # Minimum number of inliers for considering a two view reconstruction valid.
triangulation_threshold: 0.006 # Outlier threshold (in pixels) for accepting a triangulated point.
triangulation_min_ray_angle: 1.0
resection_threshold: 0.004 # Outlier threshold (in pixels) for camera resection.
resection_min_inliers: 10 # Minimum number of resection inliers to accept it.
retriangulation: no
retriangulation_ratio: 1.25
# Params for track creation
min_track_length: 2 # Minimum number of features/images per track
# Params for bundle adjustment
loss_function: SoftLOneLoss # Loss function for the ceres problem (see: http://ceres-solver.org/modeling.html#lossfunction)
loss_function_threshold: 1 # Threshold on the squared residuals. Usually cost is quadratic for smaller residuals and sub-quadratic above.
reprojection_error_sd: 0.004 # The startard deviation of the reprojection error
exif_focal_sd: 0.01 # The standard deviation of the exif focal length in log-scale
radial_distorsion_k1_sd: 0.01 # The standard deviation of the first radial distortion parameter (mean assumed to be 0)
radial_distorsion_k2_sd: 0.01 # The standard deviation of the second radial distortion parameter (mean assumed to be 0)
bundle_interval: 0 # bundle adjustment after adding 'bundle_interval' cameras
bundle_new_points_ratio: 1.2 # bundle when (new points) / (bundled points) > bundle_outlier_threshold
bundle_outlier_threshold: 0.006
save_partial_reconstructions: no
# Params for GPS aligment
use_altitude_tag: no # Use or ignore EXIF altitude tag
align_method: orientation_prior # orientation_prior or naive
align_orientation_prior: horizontal # horizontal, vertical or no_roll
# Params for navigation graph
nav_min_distance: 0.01 # Minimum distance for a possible edge between two nodes
nav_step_pref_distance: 6 # Preferred distance between camera centers
nav_step_max_distance: 20 # Maximum distance for a possible step edge between two nodes
nav_turn_max_distance: 15 # Maixmum distance for a possible turn edge between two nodes
nav_step_forward_view_threshold: 15 # Maximum difference of angles in degrees between viewing directions for forward steps
nav_step_view_threshold: 30 # Maximum difference of angles in degrees between viewing directions for other steps
nav_step_drift_threshold: 36 # Maximum motion drift with respect to step directions for steps in degrees
nav_turn_view_threshold: 40 # Maximum difference of angles in degrees with respect to turn directions
nav_vertical_threshold: 20 # Maximum vertical angle difference in motion and viewving direction in degrees
nav_rotation_threshold: 30 # Maximum general rotation in degrees between cameras for steps
# Other params
processes: 1 # Number of threads to use