ReUseX  0.0.5
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
reusex::geometry::PanoramaAlignmentOptions Struct Reference

Parameters for content-based panorama alignment. More...

#include <PanoramaAlignment.hpp>

Collaboration diagram for reusex::geometry::PanoramaAlignmentOptions:

Public Attributes

int candidate_window = 25
 Try the timestamp-seed frame plus this many frames on each side of it (in sensor-frame-id order).
int max_candidates = 20
 Cap the number of candidate frames actually matched (nearest-to-seed first), bounding the O(slices x frames) matcher cost.
int n_yaw = 8
 perspective slices around the equator
double fov_deg = 90.0
 per-slice horizontal FOV (overlap for matching)
int slice = 1008
 slice size (px, square)
int max_features = 3000
 ORB features per image.
float ratio_test = 0.85f
 Lowe ratio threshold.
float min_depth = 0.3f
 ignore frame keypoints outside [min,max] depth
float max_depth = 6.0f
int min_slice_correspondences = 6
 need this many to PnP a slice
int min_inliers = 25
 accept alignment above this (total)
float ransac_reproj_px = 5.0f
 solvePnPRansac reprojection threshold
int ransac_iterations = 500
int refine_iterations = 10
 bearing-space Gauss-Newton refinement steps
double max_correction_m = 5.0
 Plausibility gate: reject an alignment whose refined centre is further than this from the timestamp-seed frame.
unsigned seed = 42
std::string debug_dir
 If non-empty, write an ORB-correspondence figure (panorama slice <-> the best-matching sensor frame, inlier matches drawn) for each aligned panorama to <debug_dir>/<debug_name>_matches.jpg.
std::string debug_name

Detailed Description

Parameters for content-based panorama alignment.

Definition at line 43 of file PanoramaAlignment.hpp.

Member Data Documentation

◆ candidate_window

int reusex::geometry::PanoramaAlignmentOptions::candidate_window = 25

Try the timestamp-seed frame plus this many frames on each side of it (in sensor-frame-id order).

A wider window co-observes the panorama from more directions, which conditions the translation in bearing resection.

Definition at line 48 of file PanoramaAlignment.hpp.

◆ debug_dir

std::string reusex::geometry::PanoramaAlignmentOptions::debug_dir

If non-empty, write an ORB-correspondence figure (panorama slice <-> the best-matching sensor frame, inlier matches drawn) for each aligned panorama to <debug_dir>/<debug_name>_matches.jpg.

Definition at line 84 of file PanoramaAlignment.hpp.

◆ debug_name

std::string reusex::geometry::PanoramaAlignmentOptions::debug_name

Definition at line 85 of file PanoramaAlignment.hpp.

◆ fov_deg

double reusex::geometry::PanoramaAlignmentOptions::fov_deg = 90.0

per-slice horizontal FOV (overlap for matching)

Definition at line 55 of file PanoramaAlignment.hpp.

◆ max_candidates

int reusex::geometry::PanoramaAlignmentOptions::max_candidates = 20

Cap the number of candidate frames actually matched (nearest-to-seed first), bounding the O(slices x frames) matcher cost.

Definition at line 51 of file PanoramaAlignment.hpp.

◆ max_correction_m

double reusex::geometry::PanoramaAlignmentOptions::max_correction_m = 5.0

Plausibility gate: reject an alignment whose refined centre is further than this from the timestamp-seed frame.

Bearing-only resection is weakly constrained in translation when the matched frames span a narrow cone, and can slide the centre far away with a still-small angular residual. The timestamp seed is a good spatial prior (the panorama was captured in the same session, metres from the nearest frame), so a large disagreement is an ill-conditioned solve, not a real correction. Set <= 0 to disable.

Definition at line 78 of file PanoramaAlignment.hpp.

◆ max_depth

float reusex::geometry::PanoramaAlignmentOptions::max_depth = 6.0f

Definition at line 62 of file PanoramaAlignment.hpp.

◆ max_features

int reusex::geometry::PanoramaAlignmentOptions::max_features = 3000

ORB features per image.

Definition at line 59 of file PanoramaAlignment.hpp.

◆ min_depth

float reusex::geometry::PanoramaAlignmentOptions::min_depth = 0.3f

ignore frame keypoints outside [min,max] depth

Definition at line 61 of file PanoramaAlignment.hpp.

◆ min_inliers

int reusex::geometry::PanoramaAlignmentOptions::min_inliers = 25

accept alignment above this (total)

Definition at line 66 of file PanoramaAlignment.hpp.

◆ min_slice_correspondences

int reusex::geometry::PanoramaAlignmentOptions::min_slice_correspondences = 6

need this many to PnP a slice

Definition at line 65 of file PanoramaAlignment.hpp.

◆ n_yaw

int reusex::geometry::PanoramaAlignmentOptions::n_yaw = 8

perspective slices around the equator

Definition at line 54 of file PanoramaAlignment.hpp.

◆ ransac_iterations

int reusex::geometry::PanoramaAlignmentOptions::ransac_iterations = 500

Definition at line 68 of file PanoramaAlignment.hpp.

◆ ransac_reproj_px

float reusex::geometry::PanoramaAlignmentOptions::ransac_reproj_px = 5.0f

solvePnPRansac reprojection threshold

Definition at line 67 of file PanoramaAlignment.hpp.

◆ ratio_test

float reusex::geometry::PanoramaAlignmentOptions::ratio_test = 0.85f

Lowe ratio threshold.

Definition at line 60 of file PanoramaAlignment.hpp.

◆ refine_iterations

int reusex::geometry::PanoramaAlignmentOptions::refine_iterations = 10

bearing-space Gauss-Newton refinement steps

Definition at line 69 of file PanoramaAlignment.hpp.

◆ seed

unsigned reusex::geometry::PanoramaAlignmentOptions::seed = 42

Definition at line 79 of file PanoramaAlignment.hpp.

◆ slice

int reusex::geometry::PanoramaAlignmentOptions::slice = 1008

slice size (px, square)

Definition at line 56 of file PanoramaAlignment.hpp.


The documentation for this struct was generated from the following file: