Spaces:
Runtime error
Runtime error
# coding=utf-8 | |
# Copyright 2024 The Google Research Authors. | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
# See the License for the specific language governing permissions and | |
# limitations under the License. | |
"""ADE20K dataset.""" | |
import os | |
import numpy as np | |
from PIL import Image | |
import torch | |
ADE_CLASSES = [ | |
'wall', | |
'building, edifice', | |
'sky', | |
'floor, flooring', | |
'tree', | |
'ceiling', | |
'road, route', | |
'bed', | |
'windowpane, window', | |
'grass', | |
'cabinet', | |
'sidewalk, pavement', | |
'person, individual, someone, somebody, mortal, soul', | |
'earth, ground', | |
'door, double, door', | |
'table', | |
'mountain, mount', | |
'plant, flora, plant, life', | |
'curtain, drape, drapery, mantle, pall', | |
'chair', | |
'car, auto, automobile, machine, motorcar', | |
'water', | |
'painting, picture', | |
'sofa, couch, lounge', | |
'shelf', | |
'house', | |
'sea', | |
'mirror', | |
'rug, carpet, carpeting', | |
'field', | |
'armchair', | |
'seat', | |
'fence, fencing', | |
'desk', | |
'rock, stone', | |
'wardrobe, closet, press', | |
'lamp', | |
'bathtub, bathing, tub, bath, tub', | |
'railing, rail', | |
'cushion', | |
'base, pedestal, stand', | |
'box', | |
'column, pillar', | |
'signboard, sign', | |
'chest, of, drawers, chest, bureau, dresser', | |
'counter', | |
'sand', | |
'sink', | |
'skyscraper', | |
'fireplace, hearth, open, fireplace', | |
'refrigerator, icebox', | |
'grandstand, covered, stand', | |
'path', | |
'stairs, steps', | |
'runway', | |
'case, display, case, showcase, vitrine', | |
'pool, table, billiard, table, snooker, table', | |
'pillow', | |
'screen, door, screen', | |
'stairway, staircase', | |
'river', | |
'bridge, span', | |
'bookcase', | |
'blind, screen', | |
'coffee, table, cocktail, table', | |
'toilet, can, commode, crapper, pot, potty, stool, throne', | |
'flower', | |
'book', | |
'hill', | |
'bench', | |
'countertop', | |
'stove, kitchen, stove, range, kitchen, range, cooking, stove', | |
'palm, palm, tree', | |
'kitchen, island', | |
( | |
'computer, computing, machine, computing, device, data, processor,' | |
' electronic, computer, information, processing, system' | |
), | |
'swivel, chair', | |
'boat', | |
'bar', | |
'arcade, machine', | |
'hovel, hut, hutch, shack, shanty', | |
( | |
'bus, autobus, coach, charabanc, double-decker, jitney, motorbus,' | |
' motorcoach, omnibus, passenger, vehicle' | |
), | |
'towel', | |
'light, light, source', | |
'truck, motortruck', | |
'tower', | |
'chandelier, pendant, pendent', | |
'awning, sunshade, sunblind', | |
'streetlight, street, lamp', | |
'booth, cubicle, stall, kiosk', | |
( | |
'television, television, receiver, television, set, tv, tv, set, idiot,' | |
' box, boob, tube, telly, goggle, box' | |
), | |
'airplane, aeroplane, plane', | |
'dirt, track', | |
'apparel, wearing, apparel, dress, clothes', | |
'pole', | |
'land, ground, soil', | |
'bannister, banister, balustrade, balusters, handrail', | |
'escalator, moving, staircase, moving, stairway', | |
'ottoman, pouf, pouffe, puff, hassock', | |
'bottle', | |
'buffet, counter, sideboard', | |
'poster, posting, placard, notice, bill, card', | |
'stage', | |
'van', | |
'ship', | |
'fountain', | |
'conveyer, belt, conveyor, belt, conveyer, conveyor, transporter', | |
'canopy', | |
'washer, automatic, washer, washing, machine', | |
'plaything, toy', | |
'swimming, pool, swimming, bath, natatorium', | |
'stool', | |
'barrel, cask', | |
'basket, handbasket', | |
'waterfall, falls', | |
'tent, collapsible, shelter', | |
'bag', | |
'minibike, motorbike', | |
'cradle', | |
'oven', | |
'ball', | |
'food, solid, food', | |
'step, stair', | |
'tank, storage, tank', | |
'trade, name, brand, name, brand, marque', | |
'microwave, microwave, oven', | |
'pot, flowerpot', | |
'animal, animate, being, beast, brute, creature, fauna', | |
'bicycle, bike, wheel, cycle', | |
'lake', | |
'dishwasher, dish, washer, dishwashing, machine', | |
'screen, silver, screen, projection, screen', | |
'blanket, cover', | |
'sculpture', | |
'hood, exhaust, hood', | |
'sconce', | |
'vase', | |
'traffic, light, traffic, signal, stoplight', | |
'tray', | |
( | |
'ashcan, trash, can, garbage, can, wastebin, ash, bin, ash-bin, ashbin,' | |
' dustbin, trash, barrel, trash, bin' | |
), | |
'fan', | |
'pier, wharf, wharfage, dock', | |
'crt, screen', | |
'plate', | |
'monitor, monitoring, device', | |
'bulletin, board, notice, board', | |
'shower', | |
'radiator', | |
'glass, drinking, glass', | |
'clock', | |
'flag', | |
] | |
ADE_STUFF_CLASS = [ | |
'wall', | |
'sky', | |
'floor, flooring', | |
'tree', | |
'ceiling', | |
'road, route', | |
'grass', | |
'earth, ground', | |
'mountain, mount', | |
'plant, flora, plant, life', | |
'water', | |
'sea', | |
'field', | |
'sand', | |
'skyscraper', | |
'path', | |
'river', | |
'bridge, span', | |
'flower', | |
'hill', | |
'land, ground, soil', | |
'dirt, track', | |
'apparel, wearing, apparel, dress, clothes', | |
'lake', | |
'waterfall, falls', | |
] | |
ADE_THING_CLASS = [ | |
'building, edifice', | |
'bed', | |
'windowpane, window', | |
'cabinet', | |
'sidewalk, pavement', | |
'person, individual, someone, somebody, mortal, soul', | |
'door, double, door', | |
'table', | |
'curtain, drape, drapery, mantle, pall', | |
'chair', | |
'car, auto, automobile, machine, motorcar', | |
'painting, picture', | |
'sofa, couch, lounge', | |
'shelf', | |
'house', | |
'mirror', | |
'rug, carpet, carpeting', | |
'armchair', | |
'seat', | |
'fence, fencing', | |
'desk', | |
'rock, stone', | |
'wardrobe, closet, press', | |
'lamp', | |
'bathtub, bathing, tub, bath, tub', | |
'railing, rail', | |
'cushion', | |
'base, pedestal, stand', | |
'box', | |
'column, pillar', | |
'signboard, sign', | |
'chest, of, drawers, chest, bureau, dresser', | |
'counter', | |
'sink', | |
'fireplace, hearth, open, fireplace', | |
'refrigerator, icebox', | |
'grandstand, covered, stand', | |
'stairs, steps', | |
'runway', | |
'case, display, case, showcase, vitrine', | |
'pool, table, billiard, table, snooker, table', | |
'pillow', | |
'screen, door, screen', | |
'stairway, staircase', | |
'bookcase', | |
'blind, screen', | |
'coffee, table, cocktail, table', | |
'toilet, can, commode, crapper, pot, potty, stool, throne', | |
'book', | |
'bench', | |
'countertop', | |
'stove, kitchen, stove, range, kitchen, range, cooking, stove', | |
'palm, palm, tree', | |
'kitchen, island', | |
( | |
'computer, computing, machine, computing, device, data, processor,' | |
' electronic, computer, information, processing, system' | |
), | |
'swivel, chair', | |
'boat', | |
'bar', | |
'arcade, machine', | |
'hovel, hut, hutch, shack, shanty', | |
( | |
'bus, autobus, coach, charabanc, double-decker, jitney, motorbus,' | |
' motorcoach, omnibus, passenger, vehicle' | |
), | |
'towel', | |
'light, light, source', | |
'truck, motortruck', | |
'tower', | |
'chandelier, pendant, pendent', | |
'awning, sunshade, sunblind', | |
'streetlight, street, lamp', | |
'booth, cubicle, stall, kiosk', | |
( | |
'television, television, receiver, television, set, tv, tv, set, idiot,' | |
' box, boob, tube, telly, goggle, box' | |
), | |
'airplane, aeroplane, plane', | |
'pole', | |
'bannister, banister, balustrade, balusters, handrail', | |
'escalator, moving, staircase, moving, stairway', | |
'ottoman, pouf, pouffe, puff, hassock', | |
'bottle', | |
'buffet, counter, sideboard', | |
'poster, posting, placard, notice, bill, card', | |
'stage', | |
'van', | |
'ship', | |
'fountain', | |
'conveyer, belt, conveyor, belt, conveyer, conveyor, transporter', | |
'canopy', | |
'washer, automatic, washer, washing, machine', | |
'plaything, toy', | |
'swimming, pool, swimming, bath, natatorium', | |
'stool', | |
'barrel, cask', | |
'basket, handbasket', | |
'tent, collapsible, shelter', | |
'bag', | |
'minibike, motorbike', | |
'cradle', | |
'oven', | |
'ball', | |
'food, solid, food', | |
'step, stair', | |
'tank, storage, tank', | |
'trade, name, brand, name, brand, marque', | |
'microwave, microwave, oven', | |
'pot, flowerpot', | |
'animal, animate, being, beast, brute, creature, fauna', | |
'bicycle, bike, wheel, cycle', | |
'dishwasher, dish, washer, dishwashing, machine', | |
'screen, silver, screen, projection, screen', | |
'blanket, cover', | |
'sculpture', | |
'hood, exhaust, hood', | |
'sconce', | |
'vase', | |
'traffic, light, traffic, signal, stoplight', | |
'tray', | |
( | |
'ashcan, trash, can, garbage, can, wastebin, ash, bin, ash-bin, ashbin,' | |
' dustbin, trash, barrel, trash, bin' | |
), | |
'fan', | |
'pier, wharf, wharfage, dock', | |
'crt, screen', | |
'plate', | |
'monitor, monitoring, device', | |
'bulletin, board, notice, board', | |
'shower', | |
'radiator', | |
'glass, drinking, glass', | |
'clock', | |
'flag', | |
] | |
ADE_STUFF_CLASS_ID = [ | |
0, | |
2, | |
3, | |
4, | |
5, | |
6, | |
9, | |
13, | |
16, | |
17, | |
21, | |
26, | |
29, | |
46, | |
48, | |
52, | |
60, | |
61, | |
66, | |
68, | |
94, | |
91, | |
92, | |
128, | |
113, | |
] | |
ADE_THING_CLASS_ID = [ | |
1, | |
7, | |
8, | |
10, | |
11, | |
12, | |
14, | |
15, | |
18, | |
19, | |
20, | |
22, | |
23, | |
24, | |
25, | |
27, | |
28, | |
30, | |
31, | |
32, | |
33, | |
34, | |
35, | |
36, | |
37, | |
38, | |
39, | |
40, | |
41, | |
42, | |
43, | |
44, | |
45, | |
47, | |
49, | |
50, | |
51, | |
53, | |
54, | |
55, | |
56, | |
57, | |
58, | |
59, | |
62, | |
63, | |
64, | |
65, | |
67, | |
69, | |
70, | |
71, | |
72, | |
73, | |
74, | |
75, | |
76, | |
77, | |
78, | |
79, | |
80, | |
81, | |
82, | |
83, | |
84, | |
85, | |
86, | |
87, | |
88, | |
89, | |
90, | |
93, | |
95, | |
96, | |
97, | |
98, | |
99, | |
100, | |
101, | |
102, | |
103, | |
104, | |
105, | |
106, | |
107, | |
108, | |
109, | |
110, | |
111, | |
112, | |
114, | |
115, | |
116, | |
117, | |
118, | |
119, | |
120, | |
121, | |
122, | |
123, | |
124, | |
125, | |
126, | |
127, | |
129, | |
130, | |
131, | |
132, | |
133, | |
134, | |
135, | |
136, | |
137, | |
138, | |
139, | |
140, | |
141, | |
142, | |
143, | |
144, | |
145, | |
146, | |
147, | |
148, | |
149, | |
] | |
class ADEDataset(torch.utils.data.Dataset): | |
"""ADE dataset.""" | |
def __init__(self, root, split='validation', transform=None): | |
"""Construct ADE dataset. | |
Args: | |
root (string): Root directory where images are downloaded. | |
split (string): The split of the dataset. | |
transform (callable, optional): Optional transform to be applied on a | |
sample. | |
""" | |
self.root = root | |
self.image_dir = os.path.join(root, 'images', split) | |
self.ann_dir = os.path.join(root, 'annotations', split) | |
self.images = os.listdir(self.image_dir) | |
self.transform = transform | |
def __getitem__(self, index): | |
img_path = os.path.join(self.image_dir, self.images[index]) | |
img = Image.open(img_path).convert('RGB') | |
img = np.asarray(img) | |
idx = self.images[index].split('.')[0] | |
ann_path = os.path.join(self.ann_dir, f'{idx}.png') | |
ann = np.asarray(Image.open(ann_path), dtype=np.int32) | |
return img, img_path, ann, idx | |
def __len__(self): | |
return len(self.images) | |