import numpy as np


pallet_mine = np.array([[[  0,  0,  0],
                    [255,255,255],
                    [255,200, 20],#2   [0,  0,  255]
                    [  0,255,  0],#3
                    [  255,  0,0],#4
                    [255,255,  0],
                    [  0,255,255],
                    [255,  0,255],
                    [128,  0,  0],
                    [  0,128,  0],
                    [  0,  0,128],
                    [128,128,  0],
                    [  0,128,128],
                    [128,  0,128],
                    [128,128,128],
                    [255,128,128],
                    [152, 251, 152],#10
                    [ 70, 130, 180],#11
                    [220,  20,  60],#12
                    [  0,   0, 142],#14
                    [  0,   0,  70],#15
                    [  0,  60, 100],#16
                    [  0,  80, 100],#17
                    [  0,   0, 230],#18
                    [119,  11,  32],#19
                    [128,  64, 128],#20
                    [255, 255, 255]]], np.uint8)/255
#%%
grassclover_class_names = np.array(['soil(BG)','clover','grass','weeds','white_clover','red_clover','dandelion','shepherds_purse','thistle',
                   'white_clover_flower','white_clover_leaf','red_clover_flower','red_clover_leaf','unknown_clover_leaf'
                   ,'unknown_clover_flower', 'Mean IoU']).reshape((-1,1))
#%%
lip_class_names = ['Background','Hat','Hair', 'Glove','Sunglasses','Upper_clothes','Dress','Coat','Socks','Pants',
                   'Jumpsuits','Scarf','Skirt', 'Face','Left_arm','Right_arm', 'Left_leg','Right_leg','Left_shoe','Right_shoe']
#%%
pallet_cityscape = np.array([[[128, 64, 128],
                            [244, 35, 232],
                            [70, 70, 70],
                            [102, 102, 156],
                            [190, 153, 153],
                            [153, 153, 153],
                            [250, 170, 30],
                            [220, 220, 0],
                            [107, 142, 35],
                            [152, 251, 152],
                            [70, 130, 180],
                            [220, 20, 60],
                            [255, 0, 0],
                            [0, 0, 142],
                            [0, 0, 70],
                            [0, 60, 100],
                            [0, 80, 100],
                            [0, 0, 230],
                            [119, 11, 32]]], np.uint8) / 255

cityscape_THING_LIST = [11, 12, 13, 14, 15, 16, 17, 18]

cityscape_class_names = ['road', 'sidewalk', 'building', 'wall', 'fence', 'pole',
                'traffic light', 'traffic sign',
                'vegetation', 'terrain', 'sky', 'person', 'rider', 'car',
                'truck', 'bus', 'train', 'motorcycle', 'bicycle']
#%%
pallet_VOC = np.array([[[0, 0, 0], 
                        [0, 0, 128], 
                        [0, 128, 0], 
                        [0, 128, 128],
                        [128, 0, 0], 
                        [128, 0, 128], 
                        [128, 128, 0],
                        [128, 128, 128],
                        [0, 0, 64], 
                        [0, 0, 192], 
                        [0, 128, 64],
                        [0, 128, 192],
                        [128, 0, 64], 
                        [128, 0, 192], 
                        [128, 128, 64],
                        [128, 128, 192], 
                        [0, 64, 0], 
                        [0, 64, 128],
                        [0, 192, 0],
                        [0, 192, 128], 
                        [128, 64, 0]]],np.uint8) / 255
VOC_class_names = ['background', 'aeroplane', 'bicycle', 'bird',
                'boat',
                'bottle', 'bus', 'car', 'cat', 'chair', 'cow',
                'diningtable',
                'dog', 'horse', 'motorbike', 'person',
                'pottedplant',
                'sheep', 'sofa', 'train', 'tv/monitor']
#%%
vistas_THING_LIST = [0,1,8,19,20,21,22,23,32,33,34,35,36,37,38,39,40,41,42,44,
                      45,46,47,48,49,50,51,52,53,54,55,56,57,59,60,61,62]

vistas_class_names = ["bird","ground-animal","curb","fence","guard-rail","other-barrier","wall",
                "bike-lane","crosswalk-plain","curb-cut","parking","pedestrian-area","rail-track","road",
                "service-lane","sidewalk","bridge","building","tunnel","person","bicyclist","motorcyclist",
                "other-rider","crosswalk-zebra","general","mountain","sand","sky","snow","terrain","vegetation",
                "water","banner","bench","bike-rack","billboard","catch-basin","cctv-camera","fire-hydrant",
                "junction-box","mailbox","manhole","phone-booth","pothole","street-light","pole","traffic-sign-frame",
                "utility-pole","traffic-light","back","front","trash-can","bicycle","boat","bus","car",
                "caravan","motorcycle","on-rails","other-vehicle","trailer","truck",
                "wheeled-slow","car-mount","ego-vehicle","unlabeled"]
pallet_vistas = np.array([[[165, 42, 42],
                  [0, 192, 0],
                  [196, 196, 196],
                  [190, 153, 153],
                  [180, 165, 180],
                  [102, 102, 156],
                  [102, 102, 156],
                  [128, 64, 255],
                  [140, 140, 200],
                  [170, 170, 170],
                  [250, 170, 160],
                  [96, 96, 96],
                  [230, 150, 140],
                  [128, 64, 128],
                  [110, 110, 110],
                  [244, 35, 232],
                  [150, 100, 100],
                  [70, 70, 70],
                  [150, 120, 90],
                  [220, 20, 60],
                  [255, 0, 0],
                  [255, 0, 0],
                  [255, 0, 0],
                  [200, 128, 128],
                  [255, 255, 255],
                  [64, 170, 64],
                  [128, 64, 64],
                  [70, 130, 180],
                  [255, 255, 255],
                  [152, 251, 152],
                  [107, 142, 35],
                  [0, 170, 30],
                  [255, 255, 128],
                  [250, 0, 30],
                  [0, 0, 0],
                  [220, 220, 220],
                  [170, 170, 170],
                  [222, 40, 40],
                  [100, 170, 30],
                  [40, 40, 40],
                  [33, 33, 33],
                  [170, 170, 170],
                  [0, 0, 142],
                  [170, 170, 170],
                  [210, 170, 100],
                  [153, 153, 153],
                  [128, 128, 128],
                  [0, 0, 142],
                  [250, 170, 30],
                  [192, 192, 192],
                  [220, 220, 0],
                  [180, 165, 180],
                  [119, 11, 32],
                  [0, 0, 142],
                  [0, 60, 100],
                  [0, 0, 142],
                  [0, 0, 90],
                  [0, 0, 230],
                  [0, 80, 100],
                  [128, 64, 64],
                  [0, 0, 110],
                  [0, 0, 70],
                  [0, 0, 192],
                  [32, 32, 32],
                  [0, 0, 0],
                  [0, 0, 0]]], np.uint8) / 255
#%%
pallet_ADE20K = np.array([[[0, 0, 0],
      [120, 120, 120],
      [180, 120, 120],
      [6, 230, 230],
      [80, 50, 50],
      [4, 200, 3],
      [120, 120, 80],
      [140, 140, 140],
      [204, 5, 255],
      [184, 255, 0],
      [4, 250, 7],
      [224, 5, 255],
      [235, 255, 7],
      [150, 5, 61],
      [120, 120, 70],
      [8, 255, 51],
      [255, 6, 82],
      [143, 255, 140],
      [204, 255, 4],
      [255, 51, 7],
      [204, 70, 3],
      [0, 102, 200],
      [61, 230, 250],
      [255, 6, 51],
      [11, 102, 255],
      [255, 7, 71],
      [255, 9, 224],
      [9, 7, 230],
      [220, 220, 220],
      [255, 9, 92],
      [112, 9, 255],
      [8, 255, 214],
      [7, 255, 224],
      [255, 184, 6],
      [10, 255, 71],
      [255, 41, 10],
      [7, 255, 255],
      [224, 255, 8],
      [102, 8, 255],
      [255, 61, 6],
      [255, 194, 7],
      [255, 122, 8],
      [0, 255, 20],
      [255, 8, 41],
      [255, 5, 153],
      [6, 51, 255],
      [235, 12, 255],
      [160, 150, 20],
      [0, 163, 255],
      [140, 140, 140],
      [250, 10, 15],
      [20, 255, 0],
      [31, 255, 0],
      [255, 31, 0],
      [255, 224, 0],
      [153, 255, 0],
      [0, 0, 255],
      [255, 71, 0],
      [0, 235, 255],
      [0, 173, 255],
      [31, 0, 255],
      [11, 200, 200],
      [255, 82, 0],
      [0, 255, 245],
      [0, 61, 255],
      [0, 255, 112],
      [0, 255, 133],
      [255, 0, 0],
      [255, 163, 0],
      [255, 102, 0],
      [194, 255, 0],
      [0, 143, 255],
      [51, 255, 0],
      [0, 82, 255],
      [0, 255, 41],
      [0, 255, 173],
      [10, 0, 255],
      [173, 255, 0],
      [0, 255, 153],
      [255, 92, 0],
      [255, 0, 255],
      [255, 0, 245],
      [255, 0, 102],
      [255, 173, 0],
      [255, 0, 20],
      [255, 184, 184],
      [0, 31, 255],
      [0, 255, 61],
      [0, 71, 255],
      [255, 0, 204],
      [0, 255, 194],
      [0, 255, 82],
      [0, 10, 255],
      [0, 112, 255],
      [51, 0, 255],
      [0, 194, 255],
      [0, 122, 255],
      [0, 255, 163],
      [255, 153, 0],
      [0, 255, 10],
      [255, 112, 0],
      [143, 255, 0],
      [82, 0, 255],
      [163, 255, 0],
      [255, 235, 0],
      [8, 184, 170],
      [133, 0, 255],
      [0, 255, 92],
      [184, 0, 255],
      [255, 0, 31],
      [0, 184, 255],
      [0, 214, 255],
      [255, 0, 112],
      [92, 255, 0],
      [0, 224, 255],
      [112, 224, 255],
      [70, 184, 160],
      [163, 0, 255],
      [153, 0, 255],
      [71, 255, 0],
      [255, 0, 163],
      [255, 204, 0],
      [255, 0, 143],
      [0, 255, 235],
      [133, 255, 0],
      [255, 0, 235],
      [245, 0, 255],
      [255, 0, 122],
      [255, 245, 0],
      [10, 190, 212],
      [214, 255, 0],
      [0, 204, 255],
      [20, 0, 255],
      [255, 255, 0],
      [0, 153, 255],
      [0, 41, 255],
      [0, 255, 204],
      [41, 0, 255],
      [41, 255, 0],
      [173, 0, 255],
      [0, 245, 255],
      [71, 0, 255],
      [122, 0, 255],
      [0, 255, 184],
      [0, 92, 255],
      [230, 230, 230],
      [0, 133, 255],
      [255, 214, 0],
      [25, 194, 194],
      [102, 255, 0],
      [92, 0, 255]]], np.uint8)/255
ADE20K_class_names  =  ['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 receiver, television, 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']