Add dor_numpy: numpy-only detector-free cleaner (AA 98.6 / 98.0 on seq 00 / 05)#28
Draft
rsasaki0109 wants to merge 3 commits into
Draft
Add dor_numpy: numpy-only detector-free cleaner (AA 98.6 / 98.0 on seq 00 / 05)#28rsasaki0109 wants to merge 3 commits into
rsasaki0109 wants to merge 3 commits into
Conversation
Member
|
Thanks for merging. Let me know once it's ready to test. |
e7ebc41 to
2ba0b30
Compare
Detector-free range, scan-ratio, and temporal map cleaning via pip install dynamic-object-removal; includes Semantic-KITTI seq 00/05 SA/DA/AA results.
2ba0b30 to
e410197
Compare
- methods/README.md: the run line installed from PyPI ("dynamic-object-removal>=0.3"),
which is not published yet and understated the version the adapter needs (fusion is
v0.5.0) — switch to the git install used everywhere else, and showcase the fusion
algorithm (the headline numbers) instead of range.
- main.py: pass min_see_through=3 / max_surface_hits=3 to clean_map_by_visibility
(new flags, defaulted) — the library defaults are 2/2, so --algorithm range did not
reproduce the README table's range row.
- main.py: accept the default/identity VIEWPOINT as a zero sensor origin instead of
rejecting the scan — PCD defaults VIEWPOINT to identity, so a scan captured at the
world origin is valid.
- dor_numpy/README.md: concrete export_eval_pcd + evaluate_all.py commands, including
the hard-coded algorithms list that needs editing, and fusion runtime expectations.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
methods/dor_numpy/— a Python adapter for dynamic-object-removal (installable straight from GitHub, numpy only).dor_<algorithm>_output.pcdinto the sequence folder for the standard eval pipeline.Measured on Semantic-KITTI teaser (SA / DA / AA)
fusion(library v0.5.0) OR-combines three per-scan evidence channels against the accumulated map: ray-sampled free-space carving with per-scan hit precedence, DUFOMap-style eroded void confirmation (hit inflation + full 26-neighborhood erosion), and the scan-ratio votes at a stricter fraction. The channels fail in complementary regimes — fractional free-space voting nails transient traffic (seq 00), absolute void counts catch slow movers and late leavers (seq 05) — so the union scores high on both. For context against the benchmark's published numbers, DUFOMap reports AA 98.6 (seq 00) / 96.3 (seq 05);fusionmatches the former and exceeds the latter. Channel thresholds were tuned on these two teaser sequences (as is common for entries here); cross-dataset transfer is measured in the library README — with relaxed short-window thresholdsfusionis also best-in-table on a dense-sensor Argoverse 2 12-sweep map (F1 0.66), but it is not suited to sparse 32-beam sensors (nuScenes), where the vertical beam spacing exceeds the carving voxel beyond ~13 m.scan_rationormalizes votes per point: a map point is removed only when a majority of the scans that actually revisit its polar column flag it as vacated (library default since v0.4.0).Reproduce
End-to-end download + eval reproducer (outside this repo):
Test plan
pip install git+https://github.com/rsasaki0109/dynamic-3d-object-removal.giton a fresh envpython main.py --data_dir /path/to/00 --algorithm fusionon Zenodo teaser seq 00 (and seq 05)dor_fusion_output.pcdis written; SA/DA/AA above measured from the library's eval pipeline (same KDTree 0.05 m protocol) — not yet re-run through this repo's C++ export_eval_pcdNote
Happy to drop the top-level README line (or move this entry anywhere you prefer) — the
methods/dor_numpy/folder alone is fine by me.