freshNfunky commited on
Commit
a1db9e5
·
verified ·
1 Parent(s): a9d655b

HOWC hierarchical perception: card + runnable code

Browse files
Files changed (5) hide show
  1. .gitattributes +2 -0
  2. README.md +108 -28
  3. assets/hero.mp4 +3 -0
  4. assets/hero_poster.jpg +3 -0
  5. hpercept/.DS_Store +0 -0
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ assets/hero.mp4 filter=lfs diff=lfs merge=lfs -text
37
+ assets/hero_poster.jpg filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -7,51 +7,131 @@ tags:
7
  - functional-safety
8
  - neuro-symbolic
9
  pipeline_tag: object-detection
 
10
  ---
11
 
12
- # HOWC : hierarchical taxonomic perception for novel road objects
13
 
14
- A training-free layer that turns a flat object detector into a hierarchical,
15
- open-set one. Each detection is classified by **taxonomic abstraction**: the most
16
- specific level the evidence safely supports, or an explicit **UNKNOWN OBSTACLE**,
17
- never a confident wrong leaf.
 
 
 
18
 
19
- Paper (open access): *Hierarchical Taxonomic Abstraction for the Safe Handling of
20
- Novel Objects in Autonomous Driving Perception*, F. Schaller,
21
- [doi:10.5281/zenodo.21593472](https://doi.org/10.5281/zenodo.21593472).
22
- Source & full history: <https://github.com/freshNfunky/IE2025-Research-Paper>.
23
 
24
- ## Why it is different
 
 
 
25
 
26
- A flat detector returns one fixed class or nothing. On an untrained object (a
27
- horse-drawn carriage, an overloaded truck) it must mislabel it or drop it, both
28
- unsafe. HOWC abstracts up a taxonomy to a still-useful category
29
- (… → Truck → Transport Vehicle → Vehicle), bounded by a per-branch **safety
30
- floor** so it never collapses into a useless "Object"; below the floor it flags an
31
- explicit **UNKNOWN OBSTACLE** with an inspectable decision path.
32
 
33
- ## Honest scope
34
 
35
- - Not new weights, and not a closed-set-accuracy win: on COCO mAP a trained YOLO
36
- is more accurate. The contribution is the **taxonomic abstraction layer** over
37
- open-vocabulary (CLIP) features.
38
- - Where it wins: on known objects, **0% categorical (off-branch) errors** with
39
- ~24% calibrated abstention, vs a flat head's ~53% off-branch errors; on novel
40
- objects, a safe coarse label or a flagged UNKNOWN instead of a confident wrong
41
- leaf.
42
- - Training-free (pretrained YOLO + CLIP zero-shot). First run downloads weights
43
- (~360 MB).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
 
45
  ## Run it locally
46
 
47
- This repository is self-contained (code + taxonomy + a Gradio app):
48
 
49
  ```bash
50
  pip install -r requirements.txt
51
- python app.py # Gradio UI: upload an image, see the taxonomy decision
52
  python app.py --share # same, but also prints a temporary public URL (~72h)
53
  ```
54
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  ## License
56
 
57
  CC BY-NC 4.0, matching the paper.
 
7
  - functional-safety
8
  - neuro-symbolic
9
  pipeline_tag: object-detection
10
+ thumbnail: https://raw.githubusercontent.com/freshNfunky/IE2025-Research-Paper/main/figures/title_scene_annotated.png
11
  ---
12
 
13
+ # HOWC : Hierarchical Open-World Classification for road perception
14
 
15
+ <p>
16
+ <a href="https://arxiv.org/abs/2608.07577"><img src="https://img.shields.io/badge/arXiv-2608.07577-b31b1b.svg" alt="arXiv"></a>
17
+ <a href="https://youtu.be/Awy3qmCCe78"><img src="https://img.shields.io/badge/YouTube-explainer-red.svg?logo=youtube" alt="Video"></a>
18
+ <a href="https://github.com/freshNfunky/IE2025-Research-Paper"><img src="https://img.shields.io/badge/GitHub-source-181717.svg?logo=github" alt="GitHub"></a>
19
+ <img src="https://img.shields.io/badge/license-CC%20BY--NC%204.0-lightgrey.svg" alt="License">
20
+ <img src="https://img.shields.io/badge/training-free-2fd6a6.svg" alt="Training-free">
21
+ </p>
22
 
23
+ > A **training-free** layer that turns a flat object detector into a hierarchical, open-set one. Every detection is resolved by **taxonomic abstraction**: the most specific level the evidence safely supports, or an explicit **UNKNOWN OBSTACLE**, never a confident wrong leaf.
 
 
 
24
 
25
+ <video autoplay loop muted playsinline width="100%" poster="https://huggingface.co/freshNfunky/howc/resolve/main/assets/hero_poster.jpg">
26
+ <source src="https://huggingface.co/freshNfunky/howc/resolve/main/assets/hero.mp4" type="video/mp4"/>
27
+ <img src="https://huggingface.co/freshNfunky/howc/resolve/main/assets/hero_poster.jpg" alt="HOWC live tool: a deer crossing a road is classified as Living Being, with the taxonomy descent path and a segmentation cross-check" width="100%"/>
28
+ </video>
29
 
30
+ <sub>The live tool. A deer, a class no closed detector is asked to output on the road, is not dropped and not mislabeled: it resolves to <code>Living Being</code>, with the full taxonomy descent path and an independent segmentation cross-check shown alongside.</sub>
 
 
 
 
 
31
 
32
+ ## Watch the 3-minute explainer
33
 
34
+ <p align="center">
35
+ <a href="https://youtu.be/Awy3qmCCe78">
36
+ <img src="https://img.youtube.com/vi/Awy3qmCCe78/maxresdefault.jpg" alt="HOWC explainer video" width="70%">
37
+ </a>
38
+ </p>
39
+
40
+ ---
41
+
42
+ ## The problem
43
+
44
+ A closed-set detector must assign every object one of a fixed set of labels. On an object outside that set (a horse-drawn carriage, road debris, livestock on a rural road) it can only do one of two unsafe things: force a **confident but wrong** specific label, or **drop** the object entirely. Real incidents trace back to exactly this failure.
45
+
46
+ ## How it works
47
+
48
+ HOWC puts a **taxonomy** over the detector and, per object, aggregates leaf probability mass up the tree. It commits only as deep as one branch holds enough mass; otherwise it stops at a coarser node. A per-branch **safety floor** (`Vehicle`, `Living Being`, `Static Object`) means it never collapses into a useless bare `Object`: below the floor, it emits an explicit **UNKNOWN OBSTACLE** with a fully inspectable decision path.
49
+
50
+ <img src="https://raw.githubusercontent.com/freshNfunky/IE2025-Research-Paper/main/figures/taxonomy_architecture.png" alt="The object taxonomy, with safety floors marked" width="100%">
51
+
52
+ ## How it decides (worked examples)
53
+
54
+ Each detection produces a decision path: probability mass per node, the safety floor, and the resulting action.
55
+
56
+ <table>
57
+ <tr>
58
+ <td width="50%" valign="top">
59
+ <img src="https://raw.githubusercontent.com/freshNfunky/IE2025-Research-Paper/main/figures/ex_road_anomaly_04_2_abstracted.png" alt="ABSTRACTED: a truck YOLO calls 'car' is abstracted up to the safe Vehicle floor" width="100%">
60
+ <br><sub><b>ABSTRACTED.</b> YOLO calls a distant truck "car" (0.33). The mass is ambiguous below the <code>Vehicle</code> floor, so HOWC does not guess a leaf: it reports <b>Vehicle</b>, still useful, never wrong.</sub>
61
+ </td>
62
+ <td width="50%" valign="top">
63
+ <img src="https://raw.githubusercontent.com/freshNfunky/IE2025-Research-Paper/main/figures/ex_road_anomaly_02_1_unknown.png" alt="UNKNOWN: mass splits above the safety floor, so the object is flagged UNKNOWN OBSTACLE" width="100%">
64
+ <br><sub><b>UNKNOWN.</b> A rural-road anomaly YOLO calls "person" (0.72). The mass splits <i>above</i> the floor across Living Being / Vehicle / Static, so HOWC refuses a category and flags <b>UNKNOWN OBSTACLE</b>.</sub>
65
+ </td>
66
+ </tr>
67
+ </table>
68
+
69
+ ## Beyond 2D: a depth cue for flat detections
70
+
71
+ A 2D box cannot tell a real vehicle from a flat picture of one (a billboard, a truck livery). The open-world study adds a monocular-depth relief cue: detections that are geometrically **flat** get flagged, and the depth field feeds the open-world proposal front-end.
72
+
73
+ <img src="https://raw.githubusercontent.com/freshNfunky/IE2025-Research-Paper/main/figures/depth3d_04.png" alt="Left: 3D mode flags flat detections on a horse trailer scene. Right: monocular depth (nearer = bright)" width="100%">
74
+
75
+ <sub>Left: 3D mode flags flat detections. Right: the monocular depth field (nearer = bright). This is a feasibility signal, not a solved module, and the paper is explicit that no single 2D cue suffices.</sub>
76
+
77
+ ## Results (honest)
78
+
79
+ **Out-of-vocabulary objects** (v3 ground-truth leave-classes-out on COCO, n=235). Hold seven classes out of the taxonomy, then classify their real annotated crops:
80
+
81
+ <img src="https://raw.githubusercontent.com/freshNfunky/IE2025-Research-Paper/main/figures/v3_openworld_benchmark.png" alt="Flat head is 100% confidently wrong; HOWC is 0% confidently wrong and 94% safe" width="90%">
82
+
83
+ | On out-of-vocabulary objects | Flat / closed head | **HOWC** |
84
+ |---|---|---|
85
+ | Confident **wrong** specific label | **100%** | **0%** |
86
+ | ... of which in the **wrong super-category** | 37% | 0% |
87
+ | Safely handled (right super-cat, or honest UNKNOWN) | 0% | **94%** |
88
+ | Correct super-category recovered | — | 26% |
89
+ | Conservatively flagged UNKNOWN | — | 69% |
90
+
91
+ On **known, in-taxonomy** objects: **0% off-branch (categorical) errors** with ~24% calibrated abstention, versus a flat arg-max head's ~53% off-branch errors.
92
+
93
+ The safety/specificity trade-off is a dial, not a fixed point. Every hierarchical configuration stays **100% safe on novel objects** while still usefully classifying up to 76% of known ones; the flat baseline sits alone at 0% novel-safe.
94
+
95
+ <img src="https://raw.githubusercontent.com/freshNfunky/IE2025-Research-Paper/main/figures/calibration_tradeoff.png" alt="Safety vs specificity: every hierarchical config is 100% novel-safe; the flat baseline is 0% novel-safe" width="80%">
96
+
97
+ > **What this is, and is not.** This is a **safety** result, not a specificity one. On closed-set COCO mAP a trained YOLO is more accurate, and we say so. The contribution is the abstraction layer over open-vocabulary (CLIP) features: it never makes a confident categorical mistake on an unknown object, at the honest cost of 69% abstention. The point is the tail, not the leaderboard.
98
+
99
+ ## An independent second path
100
+
101
+ The box classification is cross-checked against a class-agnostic **segmentation** path: does the pixel evidence back up the box verdict? Across sampled detections it **confirms or stays neutral 63%** of the time and **flags 37%** for review, with **0% hard conflicts**, and it agrees most where it should (on abstracted and unknown objects).
102
+
103
+ <img src="https://raw.githubusercontent.com/freshNfunky/IE2025-Research-Paper/main/figures/segmentation_agreement.png" alt="Segmentation cross-check verdict: 37% confirm, 26% neutral, 37% flag, 0% conflict" width="70%">
104
 
105
  ## Run it locally
106
 
107
+ Self-contained: code + taxonomy + a Gradio app. Training-free (pretrained YOLO + CLIP zero-shot); first run downloads weights (~360 MB).
108
 
109
  ```bash
110
  pip install -r requirements.txt
111
+ python app.py # Gradio UI: upload an image, see the taxonomy decision path
112
  python app.py --share # same, but also prints a temporary public URL (~72h)
113
  ```
114
 
115
+ ## Papers
116
+
117
+ - **Open-world (v3):** *Open-World Hierarchical Perception: Taxonomic Abstraction over Class-Agnostic Proposals for the Safe Handling of Out-of-Vocabulary Road Objects*, F. Schaller, [arXiv:2608.07577](https://arxiv.org/abs/2608.07577).
118
+ - **Foundational (v1):** *Hierarchical Taxonomic Abstraction for the Safe Handling of Novel Objects in Autonomous Driving Perception*, [doi:10.5281/zenodo.21593472](https://doi.org/10.5281/zenodo.21593472).
119
+ - **Source & full history:** <https://github.com/freshNfunky/IE2025-Research-Paper>
120
+
121
+ ```bibtex
122
+ @misc{schaller2026howc,
123
+ title = {Open-World Hierarchical Perception: Taxonomic Abstraction over
124
+ Class-Agnostic Proposals for the Safe Handling of
125
+ Out-of-Vocabulary Road Objects},
126
+ author = {Schaller, Felix},
127
+ year = {2026},
128
+ eprint = {2608.07577},
129
+ archivePrefix = {arXiv},
130
+ primaryClass = {cs.CV},
131
+ url = {https://arxiv.org/abs/2608.07577}
132
+ }
133
+ ```
134
+
135
  ## License
136
 
137
  CC BY-NC 4.0, matching the paper.
assets/hero.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d947155a39a506b5a9793c0ca04811978592117515dfd7ec6c91e1395a350d76
3
+ size 451523
assets/hero_poster.jpg ADDED

Git LFS Details

  • SHA256: dfdb19daeb963a938ef5005d84ea73b5fa3c5dec3859cc73e49d3e44ab412365
  • Pointer size: 131 Bytes
  • Size of remote file: 105 kB
hpercept/.DS_Store CHANGED
Binary files a/hpercept/.DS_Store and b/hpercept/.DS_Store differ