feat(lidar): qualify Patchwork++ on GOOSE
This commit is contained in:
@@ -39,6 +39,12 @@ Implemented now:
|
||||
`Открыть` action;
|
||||
- one admitted GOOSE validation frame with source colors, normalized remission
|
||||
and an independent ground-truth view;
|
||||
- a published, dimensioned MuCAR-3/VLS-128 Patchwork++ input profile:
|
||||
sensor frame `x-forward / y-left / z-up`, physical height `2.24 m`, native
|
||||
one-revolution scan and explicit absence of deskew/full vehicle TF claims;
|
||||
- a reproducible Current/Patchwork++ A/B artifact with point-aligned masks,
|
||||
disagreement views, independent-label metrics, latency and exact provider
|
||||
identities;
|
||||
- a separate **Парк → Диагностика LiDAR** surface containing only real sensor
|
||||
recordings and their operational evidence.
|
||||
|
||||
@@ -152,11 +158,13 @@ time; TTL/dynamic filtering prevents stale ghosts.
|
||||
4. [Done] Import one labeled frame and expose it in React as `native-scan`.
|
||||
5. [Done] Show native remission, the original semantic palette and
|
||||
ground-truth superclass coloring.
|
||||
6. Add a declared GOOSE frame/mounting profile and produce `normalized-scan`.
|
||||
7. [Current baseline done; Patchwork++ blocked on mounting evidence] Run the
|
||||
current ground heuristic and Patchwork++ against independent labels.
|
||||
6. [Patchwork-specific profile done; general normalization still pending] Admit
|
||||
the published VLS-128 axes and physical height without claiming a complete
|
||||
numeric vehicle TF or deskewed `normalized-scan`.
|
||||
7. [One-frame A/B done] Run the current ground heuristic and pinned
|
||||
Patchwork++ against the same native scan and independent labels.
|
||||
8. Add sensor-degradation profiles for range, FOV, density, noise and dropout.
|
||||
9. Only after the one-frame contract passes, expand to the validation split and
|
||||
9. Expand the A/B to the validation split; only after that qualification gate,
|
||||
add a rolling-map sequence with localization evidence.
|
||||
|
||||
## Acceptance checklist
|
||||
@@ -172,9 +180,11 @@ time; TTL/dynamic filtering prevents stale ghosts.
|
||||
- [x] Worker D root configured.
|
||||
- [x] GOOSE validation archive hash recorded.
|
||||
- [x] First real labeled frame visible in React.
|
||||
- [ ] Coordinate and mounting profile admitted.
|
||||
- [x] Patchwork-specific axes and physical-height profile admitted.
|
||||
- [ ] Complete vehicle transform and general `normalized-scan` admitted.
|
||||
- [x] Current local-percentile baseline measured against ground truth.
|
||||
- [ ] Patchwork++ accuracy measured against ground truth.
|
||||
- [x] Patchwork++ one-frame accuracy measured against ground truth.
|
||||
- [ ] Current/Patchwork++ validation-split gate qualified.
|
||||
- [ ] Sensor-degradation matrix qualified.
|
||||
- [ ] Rolling local map with pose/TTL/dynamic policy qualified.
|
||||
|
||||
@@ -229,10 +239,54 @@ previous exact-radius result. This removes the previous all-points scan for
|
||||
every occupied cell, but the measured latency still classifies it as a
|
||||
diagnostic baseline rather than an onboard candidate.
|
||||
|
||||
Patchwork++ is intentionally not scored yet. The validation ZIP contains XYZI,
|
||||
labels, mapping, LICENSE and CHANGELOG but no numeric TF/mounting calibration.
|
||||
GOOSE documents the VLS-128 as a roof LiDAR and publishes a separate MuCAR-3 TF
|
||||
tree, but the graph image alone is not physical-height evidence. The next gate
|
||||
is to admit the numeric transform from `base_link_ground` to
|
||||
`sensor/lidar/vls128_roof`, declare the source axis convention, and only then
|
||||
run Patchwork++.
|
||||
## First Patchwork++ A/B result
|
||||
|
||||
GOOSE's dimensioned MuCAR-3 schematic provides the two vertical dimensions
|
||||
needed by this algorithm-specific gate: `base_link` is `0.64 m` above ground
|
||||
and the VLS-128 optical center is `1.60 m` above `base_link`. The admitted
|
||||
Patchwork++ height is therefore `2.24 m`. The same published schematic declares
|
||||
the sensor axes as `x` forward, `y` left and `z` up. An independent fit to
|
||||
GOOSE-labeled near-field ground observed a `-2.18 .. -2.14 m` intercept; this
|
||||
was a non-calibrating cross-check, not the source of the height.
|
||||
|
||||
This narrowly admits the input required by Patchwork++ on the native
|
||||
sensor-centric scan. It does **not** claim a complete numeric vehicle transform,
|
||||
per-point timing, deskew or a general `normalized-scan`.
|
||||
|
||||
Official Patchwork++ `v1.4.1`, source commit
|
||||
`3e6903a1d5537a4cc2ace897b0bbb98a92d6014c`, was run against the same first
|
||||
frame and independent labels as Current:
|
||||
|
||||
| Metric | Current | Patchwork++ |
|
||||
| --- | ---: | ---: |
|
||||
| Ground IoU | `49.6165%` | `60.3702%` |
|
||||
| Precision | `73.5892%` | `72.6612%` |
|
||||
| Recall | `60.3659%` | `78.1130%` |
|
||||
| F1 | `66.3249%` | `75.2886%` |
|
||||
| Artificial-ground recall | `95.2364%` | `98.9688%` |
|
||||
| Natural-ground recall | `49.4516%` | `71.5853%` |
|
||||
| Obstacle non-ground recall | `79.6145%` | `92.1729%` |
|
||||
| Worker latency | `3966.53 ms` | `15.89 ms` |
|
||||
|
||||
Reproducibility pins:
|
||||
|
||||
- benchmark identity:
|
||||
`2a6d05f54a9e2ac727d9c850c1133f2fb539bfeddbd97c07cfd198ccb239162c`;
|
||||
- full point-aligned prediction SHA-256:
|
||||
`190f455c6e47911921b7f6454913e1bb2d0b8b5814ee2e34d7b63295afddc7ef`;
|
||||
- bounded browser preview SHA-256:
|
||||
`e23ca573103faf931523415e6c263248737eb6600f482b63de685b725bbc28c3`;
|
||||
- Patchwork++ binary SHA-256:
|
||||
`be8038b2098c83fe53841aa8ae19e362910e9056fe0ee7b9304c1ee5c5941094`.
|
||||
|
||||
Patchwork++ wins this frame by `10.75` percentage points of Ground IoU, raises
|
||||
natural-ground recall by `22.13` points and is roughly `250x` faster in this
|
||||
run. The result is deliberately `one-frame-diagnostic`: it makes Patchwork++
|
||||
the candidate for validation-split and degradation qualification, not an
|
||||
accepted navigation or safety provider.
|
||||
|
||||
Primary source evidence:
|
||||
|
||||
- [GOOSE MuCAR-3 sensor setup](https://goose-dataset.de/docs/mucar3/);
|
||||
- [GOOSE paper, Figure 3](https://arxiv.org/pdf/2310.16788);
|
||||
- [Patchwork++ v1.4.1](https://github.com/url-kaist/patchwork-plusplus/tree/v1.4.1).
|
||||
|
||||
Reference in New Issue
Block a user