feat: implement refine_ground_plane.py CLI

This commit is contained in:
2026-02-09 07:50:16 +00:00
parent 0f7d7a9a63
commit 9d9e95de81
4 changed files with 489 additions and 1 deletions
+14 -1
View File
@@ -43,7 +43,9 @@ class GroundPlaneConfig:
max_rotation_deg: float = 5.0
max_translation_m: float = 0.1
min_inliers: int = 500
min_inlier_ratio: float = 0.0
min_valid_cameras: int = 2
seed: Optional[int] = None
@dataclass
@@ -344,9 +346,20 @@ def refine_ground_from_depth(
distance_threshold=config.ransac_dist_thresh,
ransac_n=config.ransac_n,
num_iterations=config.ransac_iters,
seed=config.seed,
)
if plane is not None and plane.num_inliers >= config.min_inliers:
if plane is not None:
# Check inlier count
if plane.num_inliers < config.min_inliers:
continue
# Check inlier ratio if configured
if config.min_inlier_ratio > 0:
ratio = plane.num_inliers / len(points_world)
if ratio < config.min_inlier_ratio:
continue
metrics.camera_planes[serial] = plane
valid_planes.append(plane)
valid_serials.append(serial)