| frames | NPARRAY,IMAGE | | The video as an IMAGE batch, in order ('Load Video' -> 'Get Video Components'). Fewer than 2 frames is a valid input: the result is a single origin and found=false. |
| camera_matrix | NPARRAY | | 3x3 intrinsic matrix K of the camera that shot the sequence ('CV Camera Matrix' or 'Calibrate Camera'). An uncalibrated guess bends the whole path - the essential matrix cannot be recovered without it. |
| max_features | INT | 20000–20000 | Maximum corners to detect when a re-detection happens (goodFeaturesToTrack); 0 = every corner found. Higher means a slower but steadier pose. |
| quality | FLOAT | 0.0100.0001–1 | Minimum corner quality relative to the strongest corner (qualityLevel); lower keeps weaker corners. |
| min_distance | FLOAT | 7.001–100 | Minimum spacing in pixels between detected corners. |
| redetect_below | INT | 10005–20000 | Re-run corner detection once the surviving tracks drop under this count. Tracks die as the camera advances, so this is what keeps the pose fed; too low and the pose degrades before the refill, too high and it re-detects every frame (slower, and it throws away long tracks). |
| win_size | INT | 213–101 | Lucas-Kanade search window (forced odd); larger tolerates bigger motion but blurs fine detail. |
| max_level | INT | 30–8 | Pyramid levels (0 = no pyramid); more levels track larger displacements - a fast-moving camera needs them. |
| fb_threshold | FLOAT | 1.00–30 | Forward-backward consistency gate in pixels: a track is dropped if re-tracking it back misses its origin by more than this. 0 disables the check. |
| method | COMBO | RANSAC | Robust estimator for the essential matrix. RANSAC is the standard choice for tracked corners. |
| threshold | FLOAT | 1.00.1–100 | Max distance in pixels from a point to its epipolar line to count as an inlier (RANSAC). |
| confidence | FLOAT | 0.9990.5–1 | Desired probability that the estimate is correct. |
| min_inliers | INT | 155–10000 | Minimum cheirality-consistent inliers for a step to count. Below it the step is rejected and the pose held. |
| scale_source | COMBO | constant | Where each step's LENGTH comes from, since the video cannot supply it. 'constant': every step is 'scale' long - the path's shape is right, its size is arbitrary. 'per-step lengths (array)': one length per step in 'scale_reference'. 'reference trajectory (step lengths)': 'scale_reference' is an Nx3 track (GPS, wheel odometry, ground truth) and its consecutive distances are used - this is how a monocular result is made metric. |
| scale | FLOAT | 1.000–1000000 | Step length for scale_source = 'constant'. |
| scale_referenceopt | NPARRAY | | The step lengths, as either an (N-1,) / (N,) array of lengths or an Nx3 reference trajectory. Shorter than the batch: the last value repeats. Ignored when scale_source = 'constant'. |
| motion_gateopt | COMBO | none | Optional sanity check on each recovered direction. 'forward-dominant' rejects a step whose translation is mostly sideways or vertical rather than along the optical axis - the classic guard for a forward-facing vehicle camera, where such a step is nearly always a bad essential-matrix fit. Leave at 'none' for a camera that really can move sideways (a drone, a handheld orbit). |
| min_stepopt | FLOAT | 0.000–1000000 | Reject steps shorter than this (same unit as 'scale'). At a standstill the translation direction is pure noise, so integrating it only adds drift; 0.1 m is the usual choice for a car at 10 fps. 0 accepts every step. |