@@ -20,10 +20,10 @@ const TRACKS_RADIUS_DENOMINATOR: usize = 1000;
2020const PERSPECTIVE_SCALE_THRESHOLD : f64 = 0.0001 ;
2121const RANSAC_N : usize = 3 ;
2222const RANSAC_K : usize = 100_000 ;
23- const RANSAC_INLIERS_T : f64 = 25 .0 / 1000.0 ;
24- const RANSAC_T : f64 = 75 .0 / 1000.0 ;
25- const RANSAC_D : usize = 100 ;
26- const RANSAC_D_EARLY_EXIT : usize = 100_000 ;
23+ const RANSAC_INLIERS_T : f64 = 50 .0 / 1000.0 ;
24+ const RANSAC_T : f64 = 50 .0 / 1000.0 ;
25+ const RANSAC_D_PERCENT : usize = 70 ;
26+ const RANSAC_D_PERCENT_EARLY_EXIT : usize = 95 ;
2727const RANSAC_CHECK_INTERVAL : usize = 1000 ;
2828// Lower this value to get more points (especially on far distance).
2929const MIN_ANGLE_BETWEEN_RAYS : f64 = ( 0.5 / 180.0 ) * std:: f64:: consts:: PI ;
@@ -1084,6 +1084,9 @@ impl PerspectiveTriangulation {
10841084 }
10851085 } ;
10861086
1087+ let ransac_d = RANSAC_D_PERCENT * linked_tracks. len ( ) / 100 ;
1088+ let ransac_d_early_exit = RANSAC_D_PERCENT_EARLY_EXIT * linked_tracks. len ( ) / 100 ;
1089+
10871090 for _ in 0 ..ransac_outer {
10881091 let ( camera, count, error) = ( 0 ..RANSAC_CHECK_INTERVAL )
10891092 . par_bridge ( )
@@ -1133,13 +1136,13 @@ impl PerspectiveTriangulation {
11331136 . reduce ( || best_result. to_owned ( ) , reduce_best_result) ;
11341137
11351138 best_result = ( camera, count, error) ;
1136- if count >= RANSAC_D_EARLY_EXIT {
1139+ if count >= ransac_d_early_exit {
11371140 break ;
11381141 }
11391142 }
11401143
11411144 let count = best_result. 1 ;
1142- if count > RANSAC_D {
1145+ if count > ransac_d {
11431146 Some ( best_result. 0 )
11441147 } else {
11451148 None
0 commit comments