karolmajek/Axial-DeepLab-SWideRNet
0
1# coding=utf-82# Copyright 2021 The Deeplab2 Authors.3#4# Licensed under the Apache License, Version 2.0 (the "License");5# you may not use this file except in compliance with the License.6# You may obtain a copy of the License at7#8# http://www.apache.org/licenses/LICENSE-2.09#10# Unless required by applicable law or agreed to in writing, software11# distributed under the License is distributed on an "AS IS" BASIS,12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.13# See the License for the specific language governing permissions and14# limitations under the License.15 16"""File containing the meta info of COCO dataset.17"""18 19import copy20from typing import Sequence, Mapping, Any21 22_COCO_META = [23 {24 'color': [220, 20, 60],25 'isthing': 1,26 'id': 1,27 'name': 'person'28 },29 {30 'color': [119, 11, 32],31 'isthing': 1,32 'id': 2,33 'name': 'bicycle'34 },35 {36 'color': [0, 0, 142],37 'isthing': 1,38 'id': 3,39 'name': 'car'40 },41 {42 'color': [0, 0, 230],43 'isthing': 1,44 'id': 4,45 'name': 'motorcycle'46 },47 {48 'color': [106, 0, 228],49 'isthing': 1,50 'id': 5,51 'name': 'airplane'52 },53 {54 'color': [0, 60, 100],55 'isthing': 1,56 'id': 6,57 'name': 'bus'58 },59 {60 'color': [0, 80, 100],61 'isthing': 1,62 'id': 7,63 'name': 'train'64 },65 {66 'color': [0, 0, 70],67 'isthing': 1,68 'id': 8,69 'name': 'truck'70 },71 {72 'color': [0, 0, 192],73 'isthing': 1,74 'id': 9,75 'name': 'boat'76 },77 {78 'color': [250, 170, 30],79 'isthing': 1,80 'id': 10,81 'name': 'traffic light'82 },83 {84 'color': [100, 170, 30],85 'isthing': 1,86 'id': 11,87 'name': 'fire hydrant'88 },89 {90 'color': [220, 220, 0],91 'isthing': 1,92 'id': 13,93 'name': 'stop sign'94 },95 {96 'color': [175, 116, 175],97 'isthing': 1,98 'id': 14,99 'name': 'parking meter'100 },101 {102 'color': [250, 0, 30],103 'isthing': 1,104 'id': 15,105 'name': 'bench'106 },107 {108 'color': [165, 42, 42],109 'isthing': 1,110 'id': 16,111 'name': 'bird'112 },113 {114 'color': [255, 77, 255],115 'isthing': 1,116 'id': 17,117 'name': 'cat'118 },119 {120 'color': [0, 226, 252],121 'isthing': 1,122 'id': 18,123 'name': 'dog'124 },125 {126 'color': [182, 182, 255],127 'isthing': 1,128 'id': 19,129 'name': 'horse'130 },131 {132 'color': [0, 82, 0],133 'isthing': 1,134 'id': 20,135 'name': 'sheep'136 },137 {138 'color': [120, 166, 157],139 'isthing': 1,140 'id': 21,141 'name': 'cow'142 },143 {144 'color': [110, 76, 0],145 'isthing': 1,146 'id': 22,147 'name': 'elephant'148 },149 {150 'color': [174, 57, 255],151 'isthing': 1,152 'id': 23,153 'name': 'bear'154 },155 {156 'color': [199, 100, 0],157 'isthing': 1,158 'id': 24,159 'name': 'zebra'160 },161 {162 'color': [72, 0, 118],163 'isthing': 1,164 'id': 25,165 'name': 'giraffe'166 },167 {168 'color': [255, 179, 240],169 'isthing': 1,170 'id': 27,171 'name': 'backpack'172 },173 {174 'color': [0, 125, 92],175 'isthing': 1,176 'id': 28,177 'name': 'umbrella'178 },179 {180 'color': [209, 0, 151],181 'isthing': 1,182 'id': 31,183 'name': 'handbag'184 },185 {186 'color': [188, 208, 182],187 'isthing': 1,188 'id': 32,189 'name': 'tie'190 },191 {192 'color': [0, 220, 176],193 'isthing': 1,194 'id': 33,195 'name': 'suitcase'196 },197 {198 'color': [255, 99, 164],199 'isthing': 1,200 'id': 34,201 'name': 'frisbee'202 },203 {204 'color': [92, 0, 73],205 'isthing': 1,206 'id': 35,207 'name': 'skis'208 },209 {210 'color': [133, 129, 255],211 'isthing': 1,212 'id': 36,213 'name': 'snowboard'214 },215 {216 'color': [78, 180, 255],217 'isthing': 1,218 'id': 37,219 'name': 'sports ball'220 },221 {222 'color': [0, 228, 0],223 'isthing': 1,224 'id': 38,225 'name': 'kite'226 },227 {228 'color': [174, 255, 243],229 'isthing': 1,230 'id': 39,231 'name': 'baseball bat'232 },233 {234 'color': [45, 89, 255],235 'isthing': 1,236 'id': 40,237 'name': 'baseball glove'238 },239 {240 'color': [134, 134, 103],241 'isthing': 1,242 'id': 41,243 'name': 'skateboard'244 },245 {246 'color': [145, 148, 174],247 'isthing': 1,248 'id': 42,249 'name': 'surfboard'250 },251 {252 'color': [255, 208, 186],253 'isthing': 1,254 'id': 43,255 'name': 'tennis racket'256 },257 {258 'color': [197, 226, 255],259 'isthing': 1,260 'id': 44,261 'name': 'bottle'262 },263 {264 'color': [171, 134, 1],265 'isthing': 1,266 'id': 46,267 'name': 'wine glass'268 },269 {270 'color': [109, 63, 54],271 'isthing': 1,272 'id': 47,273 'name': 'cup'274 },275 {276 'color': [207, 138, 255],277 'isthing': 1,278 'id': 48,279 'name': 'fork'280 },281 {282 'color': [151, 0, 95],283 'isthing': 1,284 'id': 49,285 'name': 'knife'286 },287 {288 'color': [9, 80, 61],289 'isthing': 1,290 'id': 50,291 'name': 'spoon'292 },293 {294 'color': [84, 105, 51],295 'isthing': 1,296 'id': 51,297 'name': 'bowl'298 },299 {300 'color': [74, 65, 105],301 'isthing': 1,302 'id': 52,303 'name': 'banana'304 },305 {306 'color': [166, 196, 102],307 'isthing': 1,308 'id': 53,309 'name': 'apple'310 },311 {312 'color': [208, 195, 210],313 'isthing': 1,314 'id': 54,315 'name': 'sandwich'316 },317 {318 'color': [255, 109, 65],319 'isthing': 1,320 'id': 55,321 'name': 'orange'322 },323 {324 'color': [0, 143, 149],325 'isthing': 1,326 'id': 56,327 'name': 'broccoli'328 },329 {330 'color': [179, 0, 194],331 'isthing': 1,332 'id': 57,333 'name': 'carrot'334 },335 {336 'color': [209, 99, 106],337 'isthing': 1,338 'id': 58,339 'name': 'hot dog'340 },341 {342 'color': [5, 121, 0],343 'isthing': 1,344 'id': 59,345 'name': 'pizza'346 },347 {348 'color': [227, 255, 205],349 'isthing': 1,350 'id': 60,351 'name': 'donut'352 },353 {354 'color': [147, 186, 208],355 'isthing': 1,356 'id': 61,357 'name': 'cake'358 },359 {360 'color': [153, 69, 1],361 'isthing': 1,362 'id': 62,363 'name': 'chair'364 },365 {366 'color': [3, 95, 161],367 'isthing': 1,368 'id': 63,369 'name': 'couch'370 },371 {372 'color': [163, 255, 0],373 'isthing': 1,374 'id': 64,375 'name': 'potted plant'376 },377 {378 'color': [119, 0, 170],379 'isthing': 1,380 'id': 65,381 'name': 'bed'382 },383 {384 'color': [0, 182, 199],385 'isthing': 1,386 'id': 67,387 'name': 'dining table'388 },389 {390 'color': [0, 165, 120],391 'isthing': 1,392 'id': 70,393 'name': 'toilet'394 },395 {396 'color': [183, 130, 88],397 'isthing': 1,398 'id': 72,399 'name': 'tv'400 },401 {402 'color': [95, 32, 0],403 'isthing': 1,404 'id': 73,405 'name': 'laptop'406 },407 {408 'color': [130, 114, 135],409 'isthing': 1,410 'id': 74,411 'name': 'mouse'412 },413 {414 'color': [110, 129, 133],415 'isthing': 1,416 'id': 75,417 'name': 'remote'418 },419 {420 'color': [166, 74, 118],421 'isthing': 1,422 'id': 76,423 'name': 'keyboard'424 },425 {426 'color': [219, 142, 185],427 'isthing': 1,428 'id': 77,429 'name': 'cell phone'430 },431 {432 'color': [79, 210, 114],433 'isthing': 1,434 'id': 78,435 'name': 'microwave'436 },437 {438 'color': [178, 90, 62],439 'isthing': 1,440 'id': 79,441 'name': 'oven'442 },443 {444 'color': [65, 70, 15],445 'isthing': 1,446 'id': 80,447 'name': 'toaster'448 },449 {450 'color': [127, 167, 115],451 'isthing': 1,452 'id': 81,453 'name': 'sink'454 },455 {456 'color': [59, 105, 106],457 'isthing': 1,458 'id': 82,459 'name': 'refrigerator'460 },461 {462 'color': [142, 108, 45],463 'isthing': 1,464 'id': 84,465 'name': 'book'466 },467 {468 'color': [196, 172, 0],469 'isthing': 1,470 'id': 85,471 'name': 'clock'472 },473 {474 'color': [95, 54, 80],475 'isthing': 1,476 'id': 86,477 'name': 'vase'478 },479 {480 'color': [128, 76, 255],481 'isthing': 1,482 'id': 87,483 'name': 'scissors'484 },485 {486 'color': [201, 57, 1],487 'isthing': 1,488 'id': 88,489 'name': 'teddy bear'490 },491 {492 'color': [246, 0, 122],493 'isthing': 1,494 'id': 89,495 'name': 'hair drier'496 },497 {498 'color': [191, 162, 208],499 'isthing': 1,500 'id': 90,501 'name': 'toothbrush'502 },503 {504 'color': [255, 255, 128],505 'isthing': 0,506 'id': 92,507 'name': 'banner'508 },509 {510 'color': [147, 211, 203],511 'isthing': 0,512 'id': 93,513 'name': 'blanket'514 },515 {516 'color': [150, 100, 100],517 'isthing': 0,518 'id': 95,519 'name': 'bridge'520 },521 {522 'color': [168, 171, 172],523 'isthing': 0,524 'id': 100,525 'name': 'cardboard'526 },527 {528 'color': [146, 112, 198],529 'isthing': 0,530 'id': 107,531 'name': 'counter'532 },533 {534 'color': [210, 170, 100],535 'isthing': 0,536 'id': 109,537 'name': 'curtain'538 },539 {540 'color': [92, 136, 89],541 'isthing': 0,542 'id': 112,543 'name': 'door-stuff'544 },545 {546 'color': [218, 88, 184],547 'isthing': 0,548 'id': 118,549 'name': 'floor-wood'550 },551 {552 'color': [241, 129, 0],553 'isthing': 0,554 'id': 119,555 'name': 'flower'556 },557 {558 'color': [217, 17, 255],559 'isthing': 0,560 'id': 122,561 'name': 'fruit'562 },563 {564 'color': [124, 74, 181],565 'isthing': 0,566 'id': 125,567 'name': 'gravel'568 },569 {570 'color': [70, 70, 70],571 'isthing': 0,572 'id': 128,573 'name': 'house'574 },575 {576 'color': [255, 228, 255],577 'isthing': 0,578 'id': 130,579 'name': 'light'580 },581 {582 'color': [154, 208, 0],583 'isthing': 0,584 'id': 133,585 'name': 'mirror-stuff'586 },587 {588 'color': [193, 0, 92],589 'isthing': 0,590 'id': 138,591 'name': 'net'592 },593 {594 'color': [76, 91, 113],595 'isthing': 0,596 'id': 141,597 'name': 'pillow'598 },599 {600 'color': [255, 180, 195],601 'isthing': 0,602 'id': 144,603 'name': 'platform'604 },605 {606 'color': [106, 154, 176],607 'isthing': 0,608 'id': 145,609 'name': 'playingfield'610 },611 {612 'color': [230, 150, 140],613 'isthing': 0,614 'id': 147,615 'name': 'railroad'616 },617 {618 'color': [60, 143, 255],619 'isthing': 0,620 'id': 148,621 'name': 'river'622 },623 {624 'color': [128, 64, 128],625 'isthing': 0,626 'id': 149,627 'name': 'road'628 },629 {630 'color': [92, 82, 55],631 'isthing': 0,632 'id': 151,633 'name': 'roof'634 },635 {636 'color': [254, 212, 124],637 'isthing': 0,638 'id': 154,639 'name': 'sand'640 },641 {642 'color': [73, 77, 174],643 'isthing': 0,644 'id': 155,645 'name': 'sea'646 },647 {648 'color': [255, 160, 98],649 'isthing': 0,650 'id': 156,651 'name': 'shelf'652 },653 {654 'color': [255, 255, 255],655 'isthing': 0,656 'id': 159,657 'name': 'snow'658 },659 {660 'color': [104, 84, 109],661 'isthing': 0,662 'id': 161,663 'name': 'stairs'664 },665 {666 'color': [169, 164, 131],667 'isthing': 0,668 'id': 166,669 'name': 'tent'670 },671 {672 'color': [225, 199, 255],673 'isthing': 0,674 'id': 168,675 'name': 'towel'676 },677 {678 'color': [137, 54, 74],679 'isthing': 0,680 'id': 171,681 'name': 'wall-brick'682 },683 {684 'color': [135, 158, 223],685 'isthing': 0,686 'id': 175,687 'name': 'wall-stone'688 },689 {690 'color': [7, 246, 231],691 'isthing': 0,692 'id': 176,693 'name': 'wall-tile'694 },695 {696 'color': [107, 255, 200],697 'isthing': 0,698 'id': 177,699 'name': 'wall-wood'700 },701 {702 'color': [58, 41, 149],703 'isthing': 0,704 'id': 178,705 'name': 'water-other'706 },707 {708 'color': [183, 121, 142],709 'isthing': 0,710 'id': 180,711 'name': 'window-blind'712 },713 {714 'color': [255, 73, 97],715 'isthing': 0,716 'id': 181,717 'name': 'window-other'718 },719 {720 'color': [107, 142, 35],721 'isthing': 0,722 'id': 184,723 'name': 'tree-merged'724 },725 {726 'color': [190, 153, 153],727 'isthing': 0,728 'id': 185,729 'name': 'fence-merged'730 },731 {732 'color': [146, 139, 141],733 'isthing': 0,734 'id': 186,735 'name': 'ceiling-merged'736 },737 {738 'color': [70, 130, 180],739 'isthing': 0,740 'id': 187,741 'name': 'sky-other-merged'742 },743 {744 'color': [134, 199, 156],745 'isthing': 0,746 'id': 188,747 'name': 'cabinet-merged'748 },749 {750 'color': [209, 226, 140],751 'isthing': 0,752 'id': 189,753 'name': 'table-merged'754 },755 {756 'color': [96, 36, 108],757 'isthing': 0,758 'id': 190,759 'name': 'floor-other-merged'760 },761 {762 'color': [96, 96, 96],763 'isthing': 0,764 'id': 191,765 'name': 'pavement-merged'766 },767 {768 'color': [64, 170, 64],769 'isthing': 0,770 'id': 192,771 'name': 'mountain-merged'772 },773 {774 'color': [152, 251, 152],775 'isthing': 0,776 'id': 193,777 'name': 'grass-merged'778 },779 {780 'color': [208, 229, 228],781 'isthing': 0,782 'id': 194,783 'name': 'dirt-merged'784 },785 {786 'color': [206, 186, 171],787 'isthing': 0,788 'id': 195,789 'name': 'paper-merged'790 },791 {792 'color': [152, 161, 64],793 'isthing': 0,794 'id': 196,795 'name': 'food-other-merged'796 },797 {798 'color': [116, 112, 0],799 'isthing': 0,800 'id': 197,801 'name': 'building-other-merged'802 },803 {804 'color': [0, 114, 143],805 'isthing': 0,806 'id': 198,807 'name': 'rock-merged'808 },809 {810 'color': [102, 102, 156],811 'isthing': 0,812 'id': 199,813 'name': 'wall-other-merged'814 },815 {816 'color': [250, 141, 255],817 'isthing': 0,818 'id': 200,819 'name': 'rug-merged'820 },821]822 823 824def get_coco_meta() -> Sequence[Any]:825 return copy.deepcopy(_COCO_META)826 827 828def get_id_mapping() -> Mapping[int, int]:829 """Creates a dictionary mapping the original category_id into continuous ones.830 831 Specifically, in coco annotations, category_id ranges from 1 to 200. Since not832 every id between 1 to 200 is used, we map them to contiguous ids (1 to 133),833 which saves memory and computation to some degree.834 835 Returns:836 A dictionary mapping original category id to contiguous category ids.837 """838 id_mapping = {}839 for i in range(len(_COCO_META)):840 id_mapping[_COCO_META[i]['id']] = i + 1841 return id_mapping842 843 844def get_id_mapping_inverse() -> Sequence[int]:845 """Creates a tuple mapping the continuous ids back to original ones.846 847 Specifically, in coco annotations, category_id ranges from 1 to 200. Since not848 every id between 1 to 200 is used, we map them to contiguous ids (1 to 133)849 via the function get_id_mapping, which saves memory and computation to some850 degree. This function supports remapping back from the contiguous ids to the851 original ones, which is required for COCO official evaluation.852 853 Returns:854 A dictionary mapping contiguous category ids to original COCO category id.855 """856 id_mapping_inverse = (0,) + tuple([ori_cat['id'] for ori_cat in _COCO_META])857 return id_mapping_inverse858 859 860def get_coco_reduced_meta() -> Sequence[Any]:861 coco_reduced_meta = get_coco_meta()862 id_mapping = get_id_mapping()863 for i in range(len(coco_reduced_meta)):864 coco_reduced_meta[i].update({'id': id_mapping[coco_reduced_meta[i]['id']]})865 return coco_reduced_meta866 