forked from ucbdrive/bdd100k
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlabel.py
90 lines (79 loc) · 7.16 KB
/
label.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
from collections import namedtuple
# a label and all meta information
# Code inspired by Cityscapes https://github.com/mcordts/cityscapesScripts
Label = namedtuple('Label', [
'name', # The identifier of this label, e.g. 'car', 'person', ... .
# We use them to uniquely name a class
'id', # An integer ID that is associated with this label.
# The IDs are used to represent the label in ground truth images
# An ID of -1 means that this label does not have an ID and thus
# is ignored when creating ground truth images (e.g. license plate).
# Do not modify these IDs, since exactly these IDs are expected by the
# evaluation server.
'trainId',
# Feel free to modify these IDs as suitable for your method. Then create
# ground truth images with train IDs, using the tools provided in the
# 'preparation' folder. However, make sure to validate or submit results
# to our evaluation server using the regular IDs above!
# For trainIds, multiple labels might have the same ID. Then, these labels
# are mapped to the same class in the ground truth images. For the inverse
# mapping, we use the label that is defined first in the list below.
# For example, mapping all void-type classes to the same ID in training,
# might make sense for some approaches.
# Max value is 255!
'category', # The name of the category that this label belongs to
'categoryId',
# The ID of this category. Used to create ground truth images
# on category level.
'hasInstances',
# Whether this label distinguishes between single instances or not
'ignoreInEval',
# Whether pixels having this class as ground truth label are ignored
# during evaluations or not
'color', # The color of this label
])
# Our extended list of label types. Our train id is compatible with Cityscapes
labels = [
# name id trainId category catId hasInstances ignoreInEval color
Label( 'unlabeled' , 0 , 255 , 'void' , 0 , False , True , ( 0, 0, 0) ),
Label( 'dynamic' , 1 , 255 , 'void' , 0 , False , True , (111, 74, 0) ),
Label( 'ego vehicle' , 2 , 255 , 'void' , 0 , False , True , ( 0, 0, 0) ),
Label( 'ground' , 3 , 255 , 'void' , 0 , False , True , ( 81, 0, 81) ),
Label( 'static' , 4 , 255 , 'void' , 0 , False , True , ( 0, 0, 0) ),
Label( 'parking' , 5 , 255 , 'flat' , 1 , False , True , (250,170,160) ),
Label( 'rail track' , 6 , 255 , 'flat' , 1 , False , True , (230,150,140) ),
Label( 'road' , 7 , 0 , 'flat' , 1 , False , False , (128, 64,128) ),
Label( 'sidewalk' , 8 , 1 , 'flat' , 1 , False , False , (244, 35,232) ),
Label( 'bridge' , 9 , 255 , 'construction' , 2 , False , True , (150,100,100) ),
Label( 'building' , 10 , 2 , 'construction' , 2 , False , False , ( 70, 70, 70) ),
Label( 'fence' , 11 , 4 , 'construction' , 2 , False , False , (190,153,153) ),
Label( 'garage' , 12 , 255 , 'construction' , 2 , False , True , (180,100,180) ),
Label( 'guard rail' , 13 , 255 , 'construction' , 2 , False , True , (180,165,180) ),
Label( 'tunnel' , 14 , 255 , 'construction' , 2 , False , True , (150,120, 90) ),
Label( 'wall' , 15 , 3 , 'construction' , 2 , False , False , (102,102,156) ),
Label( 'banner' , 16 , 255 , 'object' , 3 , False , True , (250,170,100) ),
Label( 'billboard' , 17 , 255 , 'object' , 3 , False , True , (220,220,250) ),
Label( 'lane divider' , 18 , 255 , 'object' , 3 , False , True , (255, 165, 0) ),
Label( 'parking sign' , 19 , 255 , 'object' , 3 , False , False , (220, 20, 60) ),
Label( 'pole' , 20 , 5 , 'object' , 3 , False , False , (153,153,153) ),
Label( 'polegroup' , 21 , 255 , 'object' , 3 , False , True , (153,153,153) ),
Label( 'street light' , 22 , 255 , 'object' , 3 , False , True , (220,220,100) ),
Label( 'traffic cone' , 23 , 255 , 'object' , 3 , False , True , (255, 70, 0) ),
Label( 'traffic device' , 24 , 255 , 'object' , 3 , False , True , (220,220,220) ),
Label( 'traffic light' , 25 , 6 , 'object' , 3 , False , False , (250,170, 30) ),
Label( 'traffic sign' , 26 , 7 , 'object' , 3 , False , False , (220,220, 0) ),
Label( 'traffic sign frame' , 27 , 255 , 'object' , 3 , False , True , (250,170,250) ),
Label( 'terrain' , 28 , 9 , 'nature' , 4 , False , False , (152,251,152) ),
Label( 'vegetation' , 29 , 8 , 'nature' , 4 , False , False , (107,142, 35) ),
Label( 'sky' , 30 , 10 , 'sky' , 5 , False , False , ( 70,130,180) ),
Label( 'person' , 31 , 11 , 'human' , 6 , True , False , (220, 20, 60) ),
Label( 'rider' , 32 , 12 , 'human' , 6 , True , False , (255, 0, 0) ),
Label( 'bicycle' , 33 , 18 , 'vehicle' , 7 , True , False , (119, 11, 32) ),
Label( 'bus' , 34 , 15 , 'vehicle' , 7 , True , False , ( 0, 60,100) ),
Label( 'car' , 35 , 13 , 'vehicle' , 7 , True , False , ( 0, 0,142) ),
Label( 'caravan' , 36 , 255 , 'vehicle' , 7 , True , True , ( 0, 0, 90) ),
Label( 'motorcycle' , 37 , 17 , 'vehicle' , 7 , True , False , ( 0, 0,230) ),
Label( 'trailer' , 38 , 255 , 'vehicle' , 7 , True , True , ( 0, 0,110) ),
Label( 'train' , 39 , 16 , 'vehicle' , 7 , True , False , ( 0, 80,100) ),
Label( 'truck' , 40 , 14 , 'vehicle' , 7 , True , False , ( 0, 0, 70) ),
]