howc / taxonomy.yaml
freshNfunky's picture
HOWC hierarchical perception: card + runnable code
a9d655b verified
Raw
History Blame Contribute Delete
7.22 kB
# Hierarchical object taxonomy for constrained perception in autonomous driving.
#
# Rationale (see paper "The Role of Semantic Models in Constraining Pattern
# Recognition", F. Schaller, Intelligent Environments 2025):
# Instead of a flat class list, objects live in a tree. When a specific leaf
# cannot be confidently identified (a novel / out-of-distribution object such
# as a horse-drawn carriage), the system abstracts UP the tree until it finds
# a category that is still confident enough to be useful -- rather than
# dropping the object entirely ("falling into the void").
#
# The "paranoia" problem:
# The higher we abstract, the more trivial the category becomes ("it is an
# Object" -> everything is a potential hazard -> the planner over-reacts).
# To bound this, every safety-actionable node is flagged `floor: true`. The
# abstraction climb is NEVER allowed to stop ABOVE the nearest floor. If even
# the floor level is not confident, the detection is reported as
# UNKNOWN_OBSTACLE (a localized, conservatively-handled hazard) instead of
# being abstracted into a useless generic bucket.
#
# Node fields:
# name : display label (also the default CLIP text prompt)
# prompt : optional override text for CLIP zero-shot matching
# coco : COCO-80 class names that map DIRECTLY onto this node (used by the
# YOLO-only mode and to seed YOLO+CLIP detections)
# floor : true -> shallowest label still considered "safe/useful"
# size : optional [min_frac, max_frac] plausible box-area fraction of the
# frame, used by the physical-constraint validator
# sky_ok : optional bool -> may this object plausibly appear high in the frame?
# (default false for ground objects; used by the position constraint)
root:
name: Object
# The absolute root. Abstracting all the way to here == total novelty.
children:
- name: Moving Object
prompt: a moving object on or near the road
children:
# ---------------------------------------------------------------- #
# LIVING BEINGS #
# ---------------------------------------------------------------- #
- name: Living Being
prompt: a living being
floor: true # <-- safety floor: person vs. animal matters
children:
- name: Person
prompt: a person
size: [0.002, 0.6]
children:
- name: Pedestrian
prompt: a pedestrian walking
coco: [person]
- name: Rider
prompt: a person riding a bike or motorcycle
- name: Animal
prompt: an animal
size: [0.002, 0.5]
children:
- name: Dog
prompt: a dog
coco: [dog]
- name: Cat
prompt: a cat
coco: [cat]
- name: Horse
prompt: a horse
coco: [horse]
- name: Large Livestock
prompt: a cow or large farm animal
coco: [cow, sheep, elephant, bear]
- name: Bird
prompt: a bird
coco: [bird]
sky_ok: true
# ---------------------------------------------------------------- #
# VEHICLES (objects with wheels / self-propelled transport) #
# ---------------------------------------------------------------- #
- name: Vehicle
prompt: a vehicle
floor: true # <-- safety floor: never abstract above "Vehicle"
size: [0.003, 0.9]
children:
- name: Two-Wheeler
prompt: a two-wheeled vehicle
children:
- name: Bicycle
prompt: a bicycle
coco: [bicycle]
- name: Motorcycle
prompt: a motorcycle
coco: [motorcycle]
- name: Road Vehicle
prompt: a motor vehicle driving on the road
children:
- name: Passenger Car
prompt: a passenger car
coco: [car]
size: [0.005, 0.8]
children:
- name: Sedan
prompt: a sedan car
- name: SUV
prompt: an SUV or off-road car
- name: Commercial Vehicle
prompt: a large commercial vehicle
children:
- name: Transport Vehicle
prompt: a vehicle transporting goods or people
# A horse-drawn carriage, an unknown work vehicle, etc.
# will typically bottom out around here when the specific
# leaf is not recognizable.
children:
- name: Truck
prompt: a truck
coco: [truck]
size: [0.01, 0.9]
children:
- name: Heavy Truck
prompt: a heavy goods truck
children:
- name: MAN Truck
prompt: a MAN brand heavy truck
- name: Bus
prompt: a bus
coco: [bus]
size: [0.01, 0.95]
- name: Rail Vehicle
prompt: a train or tram on rails
children:
- name: Train
prompt: a train
coco: [train]
# -------------------------------------------------------------------- #
# STATIC OBJECTS (infrastructure & roadside clutter) #
# -------------------------------------------------------------------- #
- name: Static Object
prompt: a static object beside or on the road
floor: true # <-- safety floor: static vs. moving matters
children:
- name: Traffic Infrastructure
prompt: traffic control infrastructure
children:
- name: Traffic Light
prompt: a traffic light
coco: [traffic light]
sky_ok: true
size: [0.0005, 0.1]
- name: Traffic Sign
prompt: a traffic sign
coco: [stop sign]
sky_ok: true
size: [0.0005, 0.1]
- name: Traffic Cone
prompt: a traffic cone or road barrier
size: [0.0005, 0.15]
- name: Roadside Object
prompt: an object beside the road
children:
- name: Bench
prompt: a bench
coco: [bench]
- name: Fire Hydrant
prompt: a fire hydrant
coco: [fire hydrant]
- name: Parking Meter
prompt: a parking meter
coco: [parking meter]