# 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]