deeplab2 / data /coco_constants.py
akhaliq3
spaces demo
506da10
# coding=utf-8
# Copyright 2021 The Deeplab2 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.
"""File containing the meta info of COCO dataset.
"""
import copy
from typing import Sequence, Mapping, Any
_COCO_META = [
{
'color': [220, 20, 60],
'isthing': 1,
'id': 1,
'name': 'person'
},
{
'color': [119, 11, 32],
'isthing': 1,
'id': 2,
'name': 'bicycle'
},
{
'color': [0, 0, 142],
'isthing': 1,
'id': 3,
'name': 'car'
},
{
'color': [0, 0, 230],
'isthing': 1,
'id': 4,
'name': 'motorcycle'
},
{
'color': [106, 0, 228],
'isthing': 1,
'id': 5,
'name': 'airplane'
},
{
'color': [0, 60, 100],
'isthing': 1,
'id': 6,
'name': 'bus'
},
{
'color': [0, 80, 100],
'isthing': 1,
'id': 7,
'name': 'train'
},
{
'color': [0, 0, 70],
'isthing': 1,
'id': 8,
'name': 'truck'
},
{
'color': [0, 0, 192],
'isthing': 1,
'id': 9,
'name': 'boat'
},
{
'color': [250, 170, 30],
'isthing': 1,
'id': 10,
'name': 'traffic light'
},
{
'color': [100, 170, 30],
'isthing': 1,
'id': 11,
'name': 'fire hydrant'
},
{
'color': [220, 220, 0],
'isthing': 1,
'id': 13,
'name': 'stop sign'
},
{
'color': [175, 116, 175],
'isthing': 1,
'id': 14,
'name': 'parking meter'
},
{
'color': [250, 0, 30],
'isthing': 1,
'id': 15,
'name': 'bench'
},
{
'color': [165, 42, 42],
'isthing': 1,
'id': 16,
'name': 'bird'
},
{
'color': [255, 77, 255],
'isthing': 1,
'id': 17,
'name': 'cat'
},
{
'color': [0, 226, 252],
'isthing': 1,
'id': 18,
'name': 'dog'
},
{
'color': [182, 182, 255],
'isthing': 1,
'id': 19,
'name': 'horse'
},
{
'color': [0, 82, 0],
'isthing': 1,
'id': 20,
'name': 'sheep'
},
{
'color': [120, 166, 157],
'isthing': 1,
'id': 21,
'name': 'cow'
},
{
'color': [110, 76, 0],
'isthing': 1,
'id': 22,
'name': 'elephant'
},
{
'color': [174, 57, 255],
'isthing': 1,
'id': 23,
'name': 'bear'
},
{
'color': [199, 100, 0],
'isthing': 1,
'id': 24,
'name': 'zebra'
},
{
'color': [72, 0, 118],
'isthing': 1,
'id': 25,
'name': 'giraffe'
},
{
'color': [255, 179, 240],
'isthing': 1,
'id': 27,
'name': 'backpack'
},
{
'color': [0, 125, 92],
'isthing': 1,
'id': 28,
'name': 'umbrella'
},
{
'color': [209, 0, 151],
'isthing': 1,
'id': 31,
'name': 'handbag'
},
{
'color': [188, 208, 182],
'isthing': 1,
'id': 32,
'name': 'tie'
},
{
'color': [0, 220, 176],
'isthing': 1,
'id': 33,
'name': 'suitcase'
},
{
'color': [255, 99, 164],
'isthing': 1,
'id': 34,
'name': 'frisbee'
},
{
'color': [92, 0, 73],
'isthing': 1,
'id': 35,
'name': 'skis'
},
{
'color': [133, 129, 255],
'isthing': 1,
'id': 36,
'name': 'snowboard'
},
{
'color': [78, 180, 255],
'isthing': 1,
'id': 37,
'name': 'sports ball'
},
{
'color': [0, 228, 0],
'isthing': 1,
'id': 38,
'name': 'kite'
},
{
'color': [174, 255, 243],
'isthing': 1,
'id': 39,
'name': 'baseball bat'
},
{
'color': [45, 89, 255],
'isthing': 1,
'id': 40,
'name': 'baseball glove'
},
{
'color': [134, 134, 103],
'isthing': 1,
'id': 41,
'name': 'skateboard'
},
{
'color': [145, 148, 174],
'isthing': 1,
'id': 42,
'name': 'surfboard'
},
{
'color': [255, 208, 186],
'isthing': 1,
'id': 43,
'name': 'tennis racket'
},
{
'color': [197, 226, 255],
'isthing': 1,
'id': 44,
'name': 'bottle'
},
{
'color': [171, 134, 1],
'isthing': 1,
'id': 46,
'name': 'wine glass'
},
{
'color': [109, 63, 54],
'isthing': 1,
'id': 47,
'name': 'cup'
},
{
'color': [207, 138, 255],
'isthing': 1,
'id': 48,
'name': 'fork'
},
{
'color': [151, 0, 95],
'isthing': 1,
'id': 49,
'name': 'knife'
},
{
'color': [9, 80, 61],
'isthing': 1,
'id': 50,
'name': 'spoon'
},
{
'color': [84, 105, 51],
'isthing': 1,
'id': 51,
'name': 'bowl'
},
{
'color': [74, 65, 105],
'isthing': 1,
'id': 52,
'name': 'banana'
},
{
'color': [166, 196, 102],
'isthing': 1,
'id': 53,
'name': 'apple'
},
{
'color': [208, 195, 210],
'isthing': 1,
'id': 54,
'name': 'sandwich'
},
{
'color': [255, 109, 65],
'isthing': 1,
'id': 55,
'name': 'orange'
},
{
'color': [0, 143, 149],
'isthing': 1,
'id': 56,
'name': 'broccoli'
},
{
'color': [179, 0, 194],
'isthing': 1,
'id': 57,
'name': 'carrot'
},
{
'color': [209, 99, 106],
'isthing': 1,
'id': 58,
'name': 'hot dog'
},
{
'color': [5, 121, 0],
'isthing': 1,
'id': 59,
'name': 'pizza'
},
{
'color': [227, 255, 205],
'isthing': 1,
'id': 60,
'name': 'donut'
},
{
'color': [147, 186, 208],
'isthing': 1,
'id': 61,
'name': 'cake'
},
{
'color': [153, 69, 1],
'isthing': 1,
'id': 62,
'name': 'chair'
},
{
'color': [3, 95, 161],
'isthing': 1,
'id': 63,
'name': 'couch'
},
{
'color': [163, 255, 0],
'isthing': 1,
'id': 64,
'name': 'potted plant'
},
{
'color': [119, 0, 170],
'isthing': 1,
'id': 65,
'name': 'bed'
},
{
'color': [0, 182, 199],
'isthing': 1,
'id': 67,
'name': 'dining table'
},
{
'color': [0, 165, 120],
'isthing': 1,
'id': 70,
'name': 'toilet'
},
{
'color': [183, 130, 88],
'isthing': 1,
'id': 72,
'name': 'tv'
},
{
'color': [95, 32, 0],
'isthing': 1,
'id': 73,
'name': 'laptop'
},
{
'color': [130, 114, 135],
'isthing': 1,
'id': 74,
'name': 'mouse'
},
{
'color': [110, 129, 133],
'isthing': 1,
'id': 75,
'name': 'remote'
},
{
'color': [166, 74, 118],
'isthing': 1,
'id': 76,
'name': 'keyboard'
},
{
'color': [219, 142, 185],
'isthing': 1,
'id': 77,
'name': 'cell phone'
},
{
'color': [79, 210, 114],
'isthing': 1,
'id': 78,
'name': 'microwave'
},
{
'color': [178, 90, 62],
'isthing': 1,
'id': 79,
'name': 'oven'
},
{
'color': [65, 70, 15],
'isthing': 1,
'id': 80,
'name': 'toaster'
},
{
'color': [127, 167, 115],
'isthing': 1,
'id': 81,
'name': 'sink'
},
{
'color': [59, 105, 106],
'isthing': 1,
'id': 82,
'name': 'refrigerator'
},
{
'color': [142, 108, 45],
'isthing': 1,
'id': 84,
'name': 'book'
},
{
'color': [196, 172, 0],
'isthing': 1,
'id': 85,
'name': 'clock'
},
{
'color': [95, 54, 80],
'isthing': 1,
'id': 86,
'name': 'vase'
},
{
'color': [128, 76, 255],
'isthing': 1,
'id': 87,
'name': 'scissors'
},
{
'color': [201, 57, 1],
'isthing': 1,
'id': 88,
'name': 'teddy bear'
},
{
'color': [246, 0, 122],
'isthing': 1,
'id': 89,
'name': 'hair drier'
},
{
'color': [191, 162, 208],
'isthing': 1,
'id': 90,
'name': 'toothbrush'
},
{
'color': [255, 255, 128],
'isthing': 0,
'id': 92,
'name': 'banner'
},
{
'color': [147, 211, 203],
'isthing': 0,
'id': 93,
'name': 'blanket'
},
{
'color': [150, 100, 100],
'isthing': 0,
'id': 95,
'name': 'bridge'
},
{
'color': [168, 171, 172],
'isthing': 0,
'id': 100,
'name': 'cardboard'
},
{
'color': [146, 112, 198],
'isthing': 0,
'id': 107,
'name': 'counter'
},
{
'color': [210, 170, 100],
'isthing': 0,
'id': 109,
'name': 'curtain'
},
{
'color': [92, 136, 89],
'isthing': 0,
'id': 112,
'name': 'door-stuff'
},
{
'color': [218, 88, 184],
'isthing': 0,
'id': 118,
'name': 'floor-wood'
},
{
'color': [241, 129, 0],
'isthing': 0,
'id': 119,
'name': 'flower'
},
{
'color': [217, 17, 255],
'isthing': 0,
'id': 122,
'name': 'fruit'
},
{
'color': [124, 74, 181],
'isthing': 0,
'id': 125,
'name': 'gravel'
},
{
'color': [70, 70, 70],
'isthing': 0,
'id': 128,
'name': 'house'
},
{
'color': [255, 228, 255],
'isthing': 0,
'id': 130,
'name': 'light'
},
{
'color': [154, 208, 0],
'isthing': 0,
'id': 133,
'name': 'mirror-stuff'
},
{
'color': [193, 0, 92],
'isthing': 0,
'id': 138,
'name': 'net'
},
{
'color': [76, 91, 113],
'isthing': 0,
'id': 141,
'name': 'pillow'
},
{
'color': [255, 180, 195],
'isthing': 0,
'id': 144,
'name': 'platform'
},
{
'color': [106, 154, 176],
'isthing': 0,
'id': 145,
'name': 'playingfield'
},
{
'color': [230, 150, 140],
'isthing': 0,
'id': 147,
'name': 'railroad'
},
{
'color': [60, 143, 255],
'isthing': 0,
'id': 148,
'name': 'river'
},
{
'color': [128, 64, 128],
'isthing': 0,
'id': 149,
'name': 'road'
},
{
'color': [92, 82, 55],
'isthing': 0,
'id': 151,
'name': 'roof'
},
{
'color': [254, 212, 124],
'isthing': 0,
'id': 154,
'name': 'sand'
},
{
'color': [73, 77, 174],
'isthing': 0,
'id': 155,
'name': 'sea'
},
{
'color': [255, 160, 98],
'isthing': 0,
'id': 156,
'name': 'shelf'
},
{
'color': [255, 255, 255],
'isthing': 0,
'id': 159,
'name': 'snow'
},
{
'color': [104, 84, 109],
'isthing': 0,
'id': 161,
'name': 'stairs'
},
{
'color': [169, 164, 131],
'isthing': 0,
'id': 166,
'name': 'tent'
},
{
'color': [225, 199, 255],
'isthing': 0,
'id': 168,
'name': 'towel'
},
{
'color': [137, 54, 74],
'isthing': 0,
'id': 171,
'name': 'wall-brick'
},
{
'color': [135, 158, 223],
'isthing': 0,
'id': 175,
'name': 'wall-stone'
},
{
'color': [7, 246, 231],
'isthing': 0,
'id': 176,
'name': 'wall-tile'
},
{
'color': [107, 255, 200],
'isthing': 0,
'id': 177,
'name': 'wall-wood'
},
{
'color': [58, 41, 149],
'isthing': 0,
'id': 178,
'name': 'water-other'
},
{
'color': [183, 121, 142],
'isthing': 0,
'id': 180,
'name': 'window-blind'
},
{
'color': [255, 73, 97],
'isthing': 0,
'id': 181,
'name': 'window-other'
},
{
'color': [107, 142, 35],
'isthing': 0,
'id': 184,
'name': 'tree-merged'
},
{
'color': [190, 153, 153],
'isthing': 0,
'id': 185,
'name': 'fence-merged'
},
{
'color': [146, 139, 141],
'isthing': 0,
'id': 186,
'name': 'ceiling-merged'
},
{
'color': [70, 130, 180],
'isthing': 0,
'id': 187,
'name': 'sky-other-merged'
},
{
'color': [134, 199, 156],
'isthing': 0,
'id': 188,
'name': 'cabinet-merged'
},
{
'color': [209, 226, 140],
'isthing': 0,
'id': 189,
'name': 'table-merged'
},
{
'color': [96, 36, 108],
'isthing': 0,
'id': 190,
'name': 'floor-other-merged'
},
{
'color': [96, 96, 96],
'isthing': 0,
'id': 191,
'name': 'pavement-merged'
},
{
'color': [64, 170, 64],
'isthing': 0,
'id': 192,
'name': 'mountain-merged'
},
{
'color': [152, 251, 152],
'isthing': 0,
'id': 193,
'name': 'grass-merged'
},
{
'color': [208, 229, 228],
'isthing': 0,
'id': 194,
'name': 'dirt-merged'
},
{
'color': [206, 186, 171],
'isthing': 0,
'id': 195,
'name': 'paper-merged'
},
{
'color': [152, 161, 64],
'isthing': 0,
'id': 196,
'name': 'food-other-merged'
},
{
'color': [116, 112, 0],
'isthing': 0,
'id': 197,
'name': 'building-other-merged'
},
{
'color': [0, 114, 143],
'isthing': 0,
'id': 198,
'name': 'rock-merged'
},
{
'color': [102, 102, 156],
'isthing': 0,
'id': 199,
'name': 'wall-other-merged'
},
{
'color': [250, 141, 255],
'isthing': 0,
'id': 200,
'name': 'rug-merged'
},
]
def get_coco_meta() -> Sequence[Any]:
return copy.deepcopy(_COCO_META)
def get_id_mapping() -> Mapping[int, int]:
"""Creates a dictionary mapping the original category_id into continuous ones.
Specifically, in coco annotations, category_id ranges from 1 to 200. Since not
every id between 1 to 200 is used, we map them to contiguous ids (1 to 133),
which saves memory and computation to some degree.
Returns:
A dictionary mapping original category id to contiguous category ids.
"""
id_mapping = {}
for i in range(len(_COCO_META)):
id_mapping[_COCO_META[i]['id']] = i + 1
return id_mapping
def get_id_mapping_inverse() -> Sequence[int]:
"""Creates a tuple mapping the continuous ids back to original ones.
Specifically, in coco annotations, category_id ranges from 1 to 200. Since not
every id between 1 to 200 is used, we map them to contiguous ids (1 to 133)
via the function get_id_mapping, which saves memory and computation to some
degree. This function supports remapping back from the contiguous ids to the
original ones, which is required for COCO official evaluation.
Returns:
A dictionary mapping contiguous category ids to original COCO category id.
"""
id_mapping_inverse = (0,) + tuple([ori_cat['id'] for ori_cat in _COCO_META])
return id_mapping_inverse
def get_coco_reduced_meta() -> Sequence[Any]:
coco_reduced_meta = get_coco_meta()
id_mapping = get_id_mapping()
for i in range(len(coco_reduced_meta)):
coco_reduced_meta[i].update({'id': id_mapping[coco_reduced_meta[i]['id']]})
return coco_reduced_meta