|
1 | 1 | import json
|
2 | 2 | import os
|
| 3 | +from collections import namedtuple |
3 | 4 |
|
4 | 5 | import torch.utils.data as data
|
5 | 6 | from PIL import Image
|
@@ -48,6 +49,48 @@ class Cityscapes(data.Dataset):
|
48 | 49 | img, smnt = dataset[0]
|
49 | 50 | """
|
50 | 51 |
|
| 52 | + # Based on https://github.com/mcordts/cityscapesScripts |
| 53 | + CityscapesClass = namedtuple('CityscapesClass', ['name', 'id', 'train_id', 'category', 'category_id', |
| 54 | + 'has_instances', 'ignore_in_eval', 'color']) |
| 55 | + |
| 56 | + classes = [ |
| 57 | + CityscapesClass('unlabeled', 0, 255, 'void', 0, False, True, (0, 0, 0)), |
| 58 | + CityscapesClass('ego vehicle', 1, 255, 'void', 0, False, True, (0, 0, 0)), |
| 59 | + CityscapesClass('rectification border', 2, 255, 'void', 0, False, True, (0, 0, 0)), |
| 60 | + CityscapesClass('out of roi', 3, 255, 'void', 0, False, True, (0, 0, 0)), |
| 61 | + CityscapesClass('static', 4, 255, 'void', 0, False, True, (0, 0, 0)), |
| 62 | + CityscapesClass('dynamic', 5, 255, 'void', 0, False, True, (111, 74, 0)), |
| 63 | + CityscapesClass('ground', 6, 255, 'void', 0, False, True, (81, 0, 81)), |
| 64 | + CityscapesClass('road', 7, 0, 'flat', 1, False, False, (128, 64, 128)), |
| 65 | + CityscapesClass('sidewalk', 8, 1, 'flat', 1, False, False, (244, 35, 232)), |
| 66 | + CityscapesClass('parking', 9, 255, 'flat', 1, False, True, (250, 170, 160)), |
| 67 | + CityscapesClass('rail track', 10, 255, 'flat', 1, False, True, (230, 150, 140)), |
| 68 | + CityscapesClass('building', 11, 2, 'construction', 2, False, False, (70, 70, 70)), |
| 69 | + CityscapesClass('wall', 12, 3, 'construction', 2, False, False, (102, 102, 156)), |
| 70 | + CityscapesClass('fence', 13, 4, 'construction', 2, False, False, (190, 153, 153)), |
| 71 | + CityscapesClass('guard rail', 14, 255, 'construction', 2, False, True, (180, 165, 180)), |
| 72 | + CityscapesClass('bridge', 15, 255, 'construction', 2, False, True, (150, 100, 100)), |
| 73 | + CityscapesClass('tunnel', 16, 255, 'construction', 2, False, True, (150, 120, 90)), |
| 74 | + CityscapesClass('pole', 17, 5, 'object', 3, False, False, (153, 153, 153)), |
| 75 | + CityscapesClass('polegroup', 18, 255, 'object', 3, False, True, (153, 153, 153)), |
| 76 | + CityscapesClass('traffic light', 19, 6, 'object', 3, False, False, (250, 170, 30)), |
| 77 | + CityscapesClass('traffic sign', 20, 7, 'object', 3, False, False, (220, 220, 0)), |
| 78 | + CityscapesClass('vegetation', 21, 8, 'nature', 4, False, False, (107, 142, 35)), |
| 79 | + CityscapesClass('terrain', 22, 9, 'nature', 4, False, False, (152, 251, 152)), |
| 80 | + CityscapesClass('sky', 23, 10, 'sky', 5, False, False, (70, 130, 180)), |
| 81 | + CityscapesClass('person', 24, 11, 'human', 6, True, False, (220, 20, 60)), |
| 82 | + CityscapesClass('rider', 25, 12, 'human', 6, True, False, (255, 0, 0)), |
| 83 | + CityscapesClass('car', 26, 13, 'vehicle', 7, True, False, (0, 0, 142)), |
| 84 | + CityscapesClass('truck', 27, 14, 'vehicle', 7, True, False, (0, 0, 70)), |
| 85 | + CityscapesClass('bus', 28, 15, 'vehicle', 7, True, False, (0, 60, 100)), |
| 86 | + CityscapesClass('caravan', 29, 255, 'vehicle', 7, True, True, (0, 0, 90)), |
| 87 | + CityscapesClass('trailer', 30, 255, 'vehicle', 7, True, True, (0, 0, 110)), |
| 88 | + CityscapesClass('train', 31, 16, 'vehicle', 7, True, False, (0, 80, 100)), |
| 89 | + CityscapesClass('motorcycle', 32, 17, 'vehicle', 7, True, False, (0, 0, 230)), |
| 90 | + CityscapesClass('bicycle', 33, 18, 'vehicle', 7, True, False, (119, 11, 32)), |
| 91 | + CityscapesClass('license plate', -1, -1, 'vehicle', 7, False, True, (0, 0, 142)), |
| 92 | + ] |
| 93 | + |
51 | 94 | def __init__(self, root, split='train', mode='fine', target_type='instance',
|
52 | 95 | transform=None, target_transform=None):
|
53 | 96 | self.root = os.path.expanduser(root)
|
|
0 commit comments