Skip to content

docs(usage): add Open3D RANSAC baseline (§6) + format polish#99

Merged
LimHyungTae merged 2 commits into
masterfrom
docs/usage-ransac-baseline
May 22, 2026
Merged

docs(usage): add Open3D RANSAC baseline (§6) + format polish#99
LimHyungTae merged 2 commits into
masterfrom
docs/usage-ransac-baseline

Conversation

@LimHyungTae
Copy link
Copy Markdown
Member

Summary

  • Adds python/examples/evaluate_ransac_in_semantickitti.py: an Open3D segment_plane companion to evaluate_semantickitti.py, with the same metric definitions, --eval_protocol {patchwork, patchworkpp} flag, and an optional --sweep_thresholds × --sweep_iterations grid. Per-frame median ms is reported alongside P/R/F1.

  • Adds §6 RANSAC baseline to USAGE.md. A 6×5 sweep on KITTI seq 00 (thr ∈ {0.10, 0.15, 0.25, 0.30, 0.40, 0.50} × iter ∈ {100, 500, 1000, 5000, 10000}) shows F1 saturating between iter=500 and iter=1000 (the highest-iter cell only buys +0.07 F1 anywhere in the table). F1 ridge is at thr=0.15.

  • Best config (thr=0.15, iter=1000) evaluated on full KITTI 00–10 (23,201 frames) under --eval_protocol patchworkpp:

    Method P R F1 median ms
    Open3D RANSAC (thr=0.15, iter=1000) 94.18 82.03 87.11 ~19.5
    Classic Patchwork (v1.4.0) 94.64 97.58 96.02 ~9
    Patchwork++ (v1.4.0) 95.55 97.16 96.29 ~18

    Patchwork++ wins by +9.18 F1 on the macro and -25.88 F1 on seq 10. The single-plane assumption falls apart on rolling / multi-tier ground.

  • Polishes USAGE.md to match README.md styling: centered header block with badges + demo gif + pip-install banner at the top, ## :emoji: N. ... section headings throughout (existing 70-underscore dividers retained).

No algorithmic change; new example + docs only.

Test plan

  • evaluate_ransac_in_semantickitti.py smoke (5-frame seq 00) and full sweep (23,201 frames) both run clean
  • Per-frame numbers from RANSAC match Open3D's segment_plane documented behaviour; F1 saturation pattern confirmed across iter=100→10000
  • No changes to the C++ side, no changes to existing evaluate_semantickitti.py
  • CI green (pre-commit, cpp_api, python_package, ros2_node)

- python/examples/evaluate_ransac_in_semantickitti.py: new eval driver
  built on open3d.geometry.PointCloud.segment_plane. Same metric
  definitions and --eval_protocol flag as evaluate_semantickitti.py,
  with --distance_threshold / --num_iterations knobs and an optional
  --sweep_thresholds / --sweep_iterations grid. Per-frame median ms
  is reported alongside P/R/F1.
- USAGE.md §6: full 6×5 grid (thr ∈ {0.10..0.50}, iter ∈ {100..10000})
  on KITTI seq 00 — F1 saturates between iter=500 and iter=1000 (the
  highest-iter cell only buys +0.07 F1 anywhere in the table), F1 ridge
  is at thr=0.15. Best config (thr=0.15, iter=1000) evaluated on full
  KITTI 00-10 gives macro P=94.18 / R=82.03 / F1=87.11 at 19.5 ms
  median per frame — +9.18 F1 behind Patchwork++ on the macro and
  -25.88 F1 on the worst sequence (seq 10, rolling rural).
- USAGE.md top: full README-style centered header block with badges,
  demo gif, pip-install banner (matches README.md for consistency).
- USAGE.md section headings now use ## :emoji: N. ... form per the
  format-readme template; existing 70-underscore dividers retained.

No algorithmic change; new script + docs only.
@LimHyungTae LimHyungTae merged commit cb8e449 into master May 22, 2026
18 checks passed
@LimHyungTae LimHyungTae deleted the docs/usage-ransac-baseline branch May 22, 2026 06:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant