Skip to content

Commit 6230660

Browse files
committed
Use percentages instead of absolute RANSAC D.
Some images have too many matches and too much noise, so need a higher threshold. Also, tweaked P3P parameters.
1 parent aeaa596 commit 6230660

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/triangulation.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ const TRACKS_RADIUS_DENOMINATOR: usize = 1000;
2020
const PERSPECTIVE_SCALE_THRESHOLD: f64 = 0.0001;
2121
const RANSAC_N: usize = 3;
2222
const 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;
2727
const RANSAC_CHECK_INTERVAL: usize = 1000;
2828
// Lower this value to get more points (especially on far distance).
2929
const 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

Comments
 (0)