# Photographic categories, over ADE20K's 150 classes.
#
# The scene tab offers a slider per category, not per class: nobody wants to
# grade "sconce" and "crt screen" separately, and ADE20K's vocabulary is a
# scene-parsing benchmark rather than a photographer's list. This file is the
# translation, and it is data so that changing it is not a code change.
#
# Format: one category per line, `name = class, class, ...`, where each class
# is a name from the model's own `.classes.json`. Names rather than indices
# because an index is silently wrong after a re-export and a name is loudly
# wrong; `SceneModel::from_path` refuses a file naming a class the model does
# not have.
#
# ## Why the list is short, and why "other" is not in it
#
# Weights come from a softmax over all 150 channels summed within each
# category, so the categories listed here plus everything unlisted sum to 1 at
# every pixel. That is what lets the scene tab feather two adjacent categories
# without painting both grades into the overlap. Adding a category takes
# weight from the unlisted remainder rather than from its neighbours, so this
# list can grow without disturbing what is already here.
#
# Classes are assigned to at most one category — an overlap would break the
# partition and double-count the shared class, so the loader rejects it.

# The one the whole exercise started from. ADE20K's easiest class, and the one
# most often graded on its own in a landscape.
sky = sky

# Foliage, not "green things": a lawn and a canopy take the same saturation
# and luminance moves far more often than either takes the sky's.
vegetation = tree, grass, plant, flower, palm, field

# Standing and moving water together. `swimming pool` and `fountain` are here
# rather than under architecture because what a photographer adjusts is the
# water, not the basin.
water = water, sea, river, lake, waterfall, swimming pool, fountain

# Distant landform. Separate from `ground` because it is usually far, hazy and
# wants dehaze and contrast where a foreground surface wants neither.
terrain = mountain, rock, hill

# What the photographer is standing on, or would be. Earth and sand sit here
# rather than with terrain for the same near/far reason.
ground = earth, sand, land, dirt track, path, road, sidewalk, runway, floor, step, stairs, stairway

# Built structure. Deliberately broad: a facade, its railings and its awning
# are one surface as far as a global grade is concerned.
architecture = building, house, skyscraper, wall, tower, bridge, hovel, fence, column, awning, booth, canopy, pier, railing, grandstand

# Present for the scene tab's "expose people" move, and *not* a replacement for
# the instance model — this is every person in the frame at once, which is the
# right granularity for a global grade and the wrong one for selecting a
# subject. See `models/LICENCE.md`.
person = person
