├── LICENSE ├── README.md ├── images └── hierarchy.png ├── structure_released.xml ├── visualize.py └── wnid.txt /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Kai Tian 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ImageNet-Hierarchy-Visualization 2 | Visualizing ImageNet Classes Hierarchical Structure. 3 | 4 | 5 | # Dependencies 6 | ``` 7 | ete3, pyqt5 8 | ``` 9 | 10 | # Results 11 | Part of the results 12 | ![Part of the strcuture](https://github.com/waitwaitforget/ImageNet-Hierarchy-Visualization/blob/master/images/hierarchy.png) 13 | 14 | This hierarchy structure is too large to display in a single screen. 15 | You can change the tree style if you want. Please refer to [etetoolkit tree style](http://etetoolkit.org/docs/latest/tutorial/tutorial_drawing.html#tree-style) 16 | -------------------------------------------------------------------------------- /images/hierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitwaitforget/ImageNet-Hierarchy-Visualization/2212f82e927dbd35706d8c6e0b154ef744603a73/images/hierarchy.png -------------------------------------------------------------------------------- /visualize.py: -------------------------------------------------------------------------------- 1 | import xml.etree.cElementTree as ET 2 | from ete3 import Tree, TreeStyle 3 | import re 4 | 5 | class Node(object): 6 | def __init__(self, val, parent=None): 7 | self.val = val 8 | self.parent = parent 9 | self.children = {} 10 | self.nchild = 0 # num of children 11 | self.ncount= 0 # num of ImageNet1K children 12 | 13 | def update_child(self, node): 14 | self.children[self.nchild] = node 15 | self.nchild += 1 16 | 17 | def is_leaf(self): 18 | if len(self.children) == 0: 19 | return True 20 | else: 21 | return False 22 | 23 | class ImageNet10K(object): 24 | def __init__(self, file): 25 | self.wnid = self.load(file) 26 | 27 | def load(self, file): 28 | with open(file,'r') as f: 29 | return ''.join(f.readlines()).split() 30 | 31 | 32 | dic = ImageNet10K('wnid.txt') 33 | 34 | def convert_treeAux(node, newick): 35 | """ 36 | Convert tree to newick string format. 37 | """ 38 | if node.is_leaf(): 39 | newick.append(node.val) 40 | else: 41 | newick.append('(') 42 | for k,v in node.children.items(): 43 | convert_treeAux(v, newick) 44 | newick.append(',') 45 | newick.append(')') 46 | 47 | 48 | 49 | def pruning_count(node): 50 | """ 51 | Counting the the number of leaves that are contained in ImageNet1K. 52 | """ 53 | if node.is_leaf(): 54 | if not node.val in dic.wnid: 55 | node.ncount = 0 56 | return 0 57 | else: 58 | node.ncount = 1 59 | return 1 60 | else: 61 | count = 0 62 | for i in node.children.keys(): 63 | count += pruning(node.children[i]) 64 | node.ncount = count 65 | return count 66 | 67 | 68 | 69 | def vis_imagenet_structure(): 70 | tree=ET.ElementTree(file='structure_released.xml') 71 | root = tree.getroot() 72 | 73 | synset = root[1] 74 | dic = {'fall11':Node('fall11')} 75 | tree = dic['fall11'] 76 | 77 | queue = [synset] 78 | 79 | while len(queue) > 0: 80 | node = queue.pop(0) 81 | cur_tree = dic[node.attrib['wnid']] 82 | for c in node: 83 | queue.append(c) 84 | wnid = c.attrib['wnid'] 85 | dic[wnid] = Node(wnid, cur_tree) 86 | cur_tree.update_child(dic[wnid]) 87 | 88 | return dic['fall11'] 89 | 90 | 91 | def remove_dumb(newick): 92 | p1 = r'\(,*\)' 93 | #result = re.findall(p1, newick) 94 | #print(newick) 95 | old_result = newick 96 | result = re.sub(p1, '', newick) 97 | c = 1 98 | while result != old_result: 99 | old_result = result 100 | result = re.sub(p1, '', result) 101 | print('replace %i times'%c) 102 | c+=1 103 | 104 | print(result) 105 | return result 106 | 107 | 108 | def pruning(node): 109 | """ 110 | Pruning the total tree, only reserve the subtrees that contrains 1000 classes. 111 | """ 112 | queue = [node] 113 | pid = [0] 114 | parent = None 115 | while len(queue)>0: 116 | x = queue.pop(0) 117 | id = pid.pop(0) 118 | if x.ncount == 0: 119 | x.parent.children.pop(id) 120 | else: 121 | for k,v in x.children.items(): 122 | queue.append(v) 123 | pid.append(k) 124 | # parent = 125 | # print(pid) 126 | 127 | 128 | tree = (vis_imagenet_structure()) 129 | pruning_count(tree) 130 | pruning(tree) 131 | 132 | 133 | newick = [] 134 | convert_treeAux(tree, newick) 135 | 136 | newick = ''.join(newick) 137 | newick = newick.replace(',)',')') 138 | t = Tree(newick+';') 139 | # print(t) 140 | 141 | ts = TreeStyle() 142 | ts.show_leaf_name = True 143 | ts.branch_vertical_margin = 10 144 | ts.rotation = 90 145 | ts.mode = "c" 146 | ts.arc_start = -180 # 0 degrees = 3 o'clock 147 | ts.arc_span = 180 148 | t.show(tree_style=ts) 149 | 150 | 151 | t.render('tree.png', dpi=200, tree_style=ts) 152 | # with open('imagenet_strcuture.txt','w') as f: 153 | # f.write(newick+';') 154 | 155 | -------------------------------------------------------------------------------- /wnid.txt: -------------------------------------------------------------------------------- 1 | n02927161 2 | n02412080 3 | n01534433 4 | n02127052 5 | n01784675 6 | n02091635 7 | n02701002 8 | n04229816 9 | n02206856 10 | n04251144 11 | n02107142 12 | n02489166 13 | n03355925 14 | n04040759 15 | n04332243 16 | n13133613 17 | n03692522 18 | n03016953 19 | n02417914 20 | n03483316 21 | n03868242 22 | n04153751 23 | n03998194 24 | n02948072 25 | n04589890 26 | n03089624 27 | n03950228 28 | n02879718 29 | n02606052 30 | n04536866 31 | n03825788 32 | n02823428 33 | n03657121 34 | n02177972 35 | n02094258 36 | n02074367 37 | n02403003 38 | n02111500 39 | n02509815 40 | n03388043 41 | n02364673 42 | n02124075 43 | n03877845 44 | n02099267 45 | n15075141 46 | n04081281 47 | n03633091 48 | n04590129 49 | n02963159 50 | n03920288 51 | n03255030 52 | n04501370 53 | n12768682 54 | n02119789 55 | n04254120 56 | n04252225 57 | n03393912 58 | n04562935 59 | n04131690 60 | n02125311 61 | n07248320 62 | n03476684 63 | n03733281 64 | n02111129 65 | n02106030 66 | n02123159 67 | n02006656 68 | n03065424 69 | n04004767 70 | n02877765 71 | n07880968 72 | n01978287 73 | n07749582 74 | n03527444 75 | n03899768 76 | n03903868 77 | n02493509 78 | n04200800 79 | n03062245 80 | n02860847 81 | n02708093 82 | n02808440 83 | n02276258 84 | n01694178 85 | n02794156 86 | n01729322 87 | n02102040 88 | n02037110 89 | n09399592 90 | n01748264 91 | n09421951 92 | n04517823 93 | n03445777 94 | n02437312 95 | n02109525 96 | n03188531 97 | n02992211 98 | n04252077 99 | n07720875 100 | n07717410 101 | n02168699 102 | n03590841 103 | n02988304 104 | n02328150 105 | n04254680 106 | n01807496 107 | n01955084 108 | n02129604 109 | n02966193 110 | n03930313 111 | n03670208 112 | n02107574 113 | n02100735 114 | n01443537 115 | n02091032 116 | n04019541 117 | n01950731 118 | n02077923 119 | n02104029 120 | n02837789 121 | n01632777 122 | n02643566 123 | n02105162 124 | n04099969 125 | n03709823 126 | n04548280 127 | n03026506 128 | n02497673 129 | n03662601 130 | n02093754 131 | n02655020 132 | n02895154 133 | n03916031 134 | n03599486 135 | n02783161 136 | n01740131 137 | n03450230 138 | n02422699 139 | n03125729 140 | n04417672 141 | n07760859 142 | n03841143 143 | n02930766 144 | n03131574 145 | n03944341 146 | n03854065 147 | n02667093 148 | n10148035 149 | n03075370 150 | n02791124 151 | n02747177 152 | n01664065 153 | n02445715 154 | n01735189 155 | n02484975 156 | n04286575 157 | n03141823 158 | n02093647 159 | n02123597 160 | n03584254 161 | n03642806 162 | n02441942 163 | n03196217 164 | n03347037 165 | n02119022 166 | n02097209 167 | n04418357 168 | n04116512 169 | n03538406 170 | n04458633 171 | n04525305 172 | n01675722 173 | n03126707 174 | n02088364 175 | n02666196 176 | n01910747 177 | n03775546 178 | n04141975 179 | n02123045 180 | n03314780 181 | n03394916 182 | n04136333 183 | n03690938 184 | n02009912 185 | n04070727 186 | n02219486 187 | n02981792 188 | n01806567 189 | n04404412 190 | n02797295 191 | n01980166 192 | n02085782 193 | n03207743 194 | n03041632 195 | n02108551 196 | n07875152 197 | n02134084 198 | n03208938 199 | n04371430 200 | n02804610 201 | n02093256 202 | n03710193 203 | n04065272 204 | n07932039 205 | n03482405 206 | n01824575 207 | n09193705 208 | n02110185 209 | n10565667 210 | n03673027 211 | n04254777 212 | n03908618 213 | n02494079 214 | n01616318 215 | n01632458 216 | n04326547 217 | n02437616 218 | n03720891 219 | n02493793 220 | n01629819 221 | n02669723 222 | n02480495 223 | n02098286 224 | n03761084 225 | n04613696 226 | n04074963 227 | n04553703 228 | n07697537 229 | n03770439 230 | n03982430 231 | n04310018 232 | n02096294 233 | n03478589 234 | n06596364 235 | n07584110 236 | n03216828 237 | n03345487 238 | n03902125 239 | n02795169 240 | n02100236 241 | n04532670 242 | n04447861 243 | n03706229 244 | n02093859 245 | n02391049 246 | n02105251 247 | n04356056 248 | n03045698 249 | n11879895 250 | n02730930 251 | n01667114 252 | n02096585 253 | n02110341 254 | n04505470 255 | n03617480 256 | n02114548 257 | n04146614 258 | n04591713 259 | n02017213 260 | n02977058 261 | n03384352 262 | n02120079 263 | n07860988 264 | n03530642 265 | n01530575 266 | n02835271 267 | n02112706 268 | n03868863 269 | n04604644 270 | n03837869 271 | n03873416 272 | n01756291 273 | n02165456 274 | n02116738 275 | n03376595 276 | n03691459 277 | n04347754 278 | n02802426 279 | n01968897 280 | n03991062 281 | n02110063 282 | n02264363 283 | n02490219 284 | n02749479 285 | n03887697 286 | n07716906 287 | n01776313 288 | n01877812 289 | n04239074 290 | n02105641 291 | n02317335 292 | n01608432 293 | n03876231 294 | n03717622 295 | n02099849 296 | n03992509 297 | n02174001 298 | n03447447 299 | n03271574 300 | n03063689 301 | n03372029 302 | n03337140 303 | n01817953 304 | n03325584 305 | n03697007 306 | n04127249 307 | n04033901 308 | n01945685 309 | n03028079 310 | n03220513 311 | n04201297 312 | n04039381 313 | n04355933 314 | n02056570 315 | n02090379 316 | n03781244 317 | n07615774 318 | n04483307 319 | n02398521 320 | n02281787 321 | n02776631 322 | n01532829 323 | n02086079 324 | n03197337 325 | n04275548 326 | n02099601 327 | n02106550 328 | n07730033 329 | n04023962 330 | n04209133 331 | n03240683 332 | n02992529 333 | n02268853 334 | n02110627 335 | n02321529 336 | n06794110 337 | n04599235 338 | n11939491 339 | n02486410 340 | n02910353 341 | n04579432 342 | n02169497 343 | n03630383 344 | n03773504 345 | n04296562 346 | n03724870 347 | n02107908 348 | n02086910 349 | n04597913 350 | n01943899 351 | n04344873 352 | n07754684 353 | n01984695 354 | n03223299 355 | n04479046 356 | n03124170 357 | n01531178 358 | n02504458 359 | n02106382 360 | n02090622 361 | n02088094 362 | n03891332 363 | n12057211 364 | n02834397 365 | n04118538 366 | n02133161 367 | n04584207 368 | n01775062 369 | n01630670 370 | n04209239 371 | n02916936 372 | n03874293 373 | n02113624 374 | n02325366 375 | n02086240 376 | n13040303 377 | n04467665 378 | n04552348 379 | n03777568 380 | n02999410 381 | n03782006 382 | n02793495 383 | n04238763 384 | n02277742 385 | n01860187 386 | n02979186 387 | n09229709 388 | n02098413 389 | n02097474 390 | n02787622 391 | n02769748 392 | n02129165 393 | n07715103 394 | n04399382 395 | n02280649 396 | n01795545 397 | n02727426 398 | n02823750 399 | n03476991 400 | n04370456 401 | n03793489 402 | n02090721 403 | n01770393 404 | n02114855 405 | n01818515 406 | n03201208 407 | n02504013 408 | n02120505 409 | n04037443 410 | n02423022 411 | n03534580 412 | n09246464 413 | n04311174 414 | n03788365 415 | n03485794 416 | n02134418 417 | n04465501 418 | n04325704 419 | n02233338 420 | n02871525 421 | n03649909 422 | n02704792 423 | n01558993 424 | n03786901 425 | n04557648 426 | n04111531 427 | n02268443 428 | n01622779 429 | n02279972 430 | n03110669 431 | n01796340 432 | n03595614 433 | n09288635 434 | n03187595 435 | n07693725 436 | n07718747 437 | n02092002 438 | n07695742 439 | n03529860 440 | n03249569 441 | n03838899 442 | n07714990 443 | n02346627 444 | n02906734 445 | n01580077 446 | n02526121 447 | n02259212 448 | n03160309 449 | n03661043 450 | n04540053 451 | n01986214 452 | n02226429 453 | n02444819 454 | n02111277 455 | n02099429 456 | n02319095 457 | n02777292 458 | n02492660 459 | n02815834 460 | n03743016 461 | n02917067 462 | n04493381 463 | n03134739 464 | n03888257 465 | n04026417 466 | n03602883 467 | n02443114 468 | n02487347 469 | n04442312 470 | n03584829 471 | n03492542 472 | n02422106 473 | n12620546 474 | n02112137 475 | n02132136 476 | n02091134 477 | n03290653 478 | n03445924 479 | n04264628 480 | n01644373 481 | n04243546 482 | n03400231 483 | n03832673 484 | n02640242 485 | n03459775 486 | n02443484 487 | n01873310 488 | n04041544 489 | n03792972 490 | n03109150 491 | n02408429 492 | n02112350 493 | n04409515 494 | n02687172 495 | n03467068 496 | n02128757 497 | n02869837 498 | n03095699 499 | n02097298 500 | n02363005 501 | n02966687 502 | n03788195 503 | n01871265 504 | n03884397 505 | n04069434 506 | n01883070 507 | n02514041 508 | n13052670 509 | n04350905 510 | n03742115 511 | n03947888 512 | n02870880 513 | n02894605 514 | n02909870 515 | n02965783 516 | n03804744 517 | n02190166 518 | n01734418 519 | n07745940 520 | n01631663 521 | n02231487 522 | n03764736 523 | n01697457 524 | n01990800 525 | n04487081 526 | n03100240 527 | n02256656 528 | n07831146 529 | n09468604 530 | n02117135 531 | n03733805 532 | n01693334 533 | n02454379 534 | n04265275 535 | n03769881 536 | n07614500 537 | n03532672 538 | n02817516 539 | n02092339 540 | n04141327 541 | n03956157 542 | n04152593 543 | n02128385 544 | n01753488 545 | n03710637 546 | n04591157 547 | n03866082 548 | n04392985 549 | n04154565 550 | n04208210 551 | n03763968 552 | n02096051 553 | n02536864 554 | n03063599 555 | n02971356 556 | n01744401 557 | n04033995 558 | n03796401 559 | n03272562 560 | n04125021 561 | n03776460 562 | n02109961 563 | n04336792 564 | n03207941 565 | n03658185 566 | n02410509 567 | n02892201 568 | n07714571 569 | n02281406 570 | n02091467 571 | n02087046 572 | n04507155 573 | n03888605 574 | n07871810 575 | n03961711 576 | n02128925 577 | n03930630 578 | n02104365 579 | n02113712 580 | n02607072 581 | n01560419 582 | n06359193 583 | n04118776 584 | n02095314 585 | n07747607 586 | n04423845 587 | n01667778 588 | n03127925 589 | n01828970 590 | n03124043 591 | n02108915 592 | n04263257 593 | n03794056 594 | n02361337 595 | n02108422 596 | n01677366 597 | n01773549 598 | n03032252 599 | n03908714 600 | n04456115 601 | n01692333 602 | n07836838 603 | n09256479 604 | n03787032 605 | n02088466 606 | n03977966 607 | n04330267 608 | n03857828 609 | n02098105 610 | n01798484 611 | n03710721 612 | n03452741 613 | n04192698 614 | n04258138 615 | n03840681 616 | n07742313 617 | n02097047 618 | n07734744 619 | n07590611 620 | n04485082 621 | n03791053 622 | n01687978 623 | n04367480 624 | n02085620 625 | n07716358 626 | n02488291 627 | n03942813 628 | n03481172 629 | n04009552 630 | n02415577 631 | n03379051 632 | n03777754 633 | n01843383 634 | n04462240 635 | n02093991 636 | n04147183 637 | n02012849 638 | n04522168 639 | n01514859 640 | n02692877 641 | n02106166 642 | n02690373 643 | n04376876 644 | n01682714 645 | n03792782 646 | n03680355 647 | n03417042 648 | n01924916 649 | n01755581 650 | n02939185 651 | n02841315 652 | n01981276 653 | n02106662 654 | n02113023 655 | n02097130 656 | n03485407 657 | n03494278 658 | n02130308 659 | n02790996 660 | n03388183 661 | n03000134 662 | n07684084 663 | n04259630 664 | n02108089 665 | n03843555 666 | n01704323 667 | n04606251 668 | n02138441 669 | n07717556 670 | n07930864 671 | n02109047 672 | n04090263 673 | n02101388 674 | n02799071 675 | n03924679 676 | n01847000 677 | n04389033 678 | n12985857 679 | n02396427 680 | n02028035 681 | n02676566 682 | n03250847 683 | n02025239 684 | n03495258 685 | n03933933 686 | n02105505 687 | n02804414 688 | n03146219 689 | n02808304 690 | n03544143 691 | n03938244 692 | n02002556 693 | n01614925 694 | n04179913 695 | n02883205 696 | n02091244 697 | n04008634 698 | n07768694 699 | n04355338 700 | n01491361 701 | n02483362 702 | n02951585 703 | n04476259 704 | n02113186 705 | n03133878 706 | n04277352 707 | n04273569 708 | n02089867 709 | n02447366 710 | n03627232 711 | n03085013 712 | n03344393 713 | n03042490 714 | n01773157 715 | n02093428 716 | n02099712 717 | n02110806 718 | n04487394 719 | n04366367 720 | n02085936 721 | n02950826 722 | n04270147 723 | n02865351 724 | n03047690 725 | n03970156 726 | n02978881 727 | n04579145 728 | n04044716 729 | n07873807 730 | n03000684 731 | n03447721 732 | n02107312 733 | n02009229 734 | n04560804 735 | n02086646 736 | n02107683 737 | n04228054 738 | n03014705 739 | n04311004 740 | n02027492 741 | n02096177 742 | n03814639 743 | n02102480 744 | n03785016 745 | n03871628 746 | n03594945 747 | n03929660 748 | n01768244 749 | n09835506 750 | n01494475 751 | n02112018 752 | n02480855 753 | n04435653 754 | n03598930 755 | n02492035 756 | n02172182 757 | n03272010 758 | n02236044 759 | n07583066 760 | n02672831 761 | n02397096 762 | n04482393 763 | n04550184 764 | n04285008 765 | n01774750 766 | n02840245 767 | n06874185 768 | n03976467 769 | n02395406 770 | n02510455 771 | n02066245 772 | n01773797 773 | n03425413 774 | n03877472 775 | n02094433 776 | n02113978 777 | n12267677 778 | n03814906 779 | n03180011 780 | n13044778 781 | n07753275 782 | n04120489 783 | n01944390 784 | n02980441 785 | n03259280 786 | n02088632 787 | n01537544 788 | n04086273 789 | n02096437 790 | n02094114 791 | n03623198 792 | n02095889 793 | n03895866 794 | n03721384 795 | n02229544 796 | n02791270 797 | n02105056 798 | n02782093 799 | n02115913 800 | n03291819 801 | n01641577 802 | n01855032 803 | n02108000 804 | n03018349 805 | n04162706 806 | n03498962 807 | n01742172 808 | n04204347 809 | n03594734 810 | n02033041 811 | n01751748 812 | n02699494 813 | n04523525 814 | n04515003 815 | n01582220 816 | n04335435 817 | n04346328 818 | n01514668 819 | n02389026 820 | n04486054 821 | n01882714 822 | n04141076 823 | n04149813 824 | n07579787 825 | n02483708 826 | n04592741 827 | n03967562 828 | n03729826 829 | n02089078 830 | n04429376 831 | n02951358 832 | n03297495 833 | n09472597 834 | n01770081 835 | n12998815 836 | n02110958 837 | n03404251 838 | n01917289 839 | n03759954 840 | n04204238 841 | n01833805 842 | n04461696 843 | n03976657 844 | n04049303 845 | n01484850 846 | n04067472 847 | n09332890 848 | n02115641 849 | n03937543 850 | n03424325 851 | n01695060 852 | n07711569 853 | n06785654 854 | n04554684 855 | n04372370 856 | n01829413 857 | n01855672 858 | n01498041 859 | n07892512 860 | n07565083 861 | n01820546 862 | n01983481 863 | n03000247 864 | n04005630 865 | n07697313 866 | n04525038 867 | n04328186 868 | n02165105 869 | n03803284 870 | n01843065 871 | n02087394 872 | n03935335 873 | n02018795 874 | n03637318 875 | n04428191 876 | n03983396 877 | n02051845 878 | n02007558 879 | n01806143 880 | n13054560 881 | n09428293 882 | n03874599 883 | n02814860 884 | n01518878 885 | n02486261 886 | n02488702 887 | n03733131 888 | n04380533 889 | n01496331 890 | n01688243 891 | n01749939 892 | n03443371 893 | n04548362 894 | n02101006 895 | n02356798 896 | n01728920 897 | n03496892 898 | n07718472 899 | n02137549 900 | n04266014 901 | n07753113 902 | n07613480 903 | n02002724 904 | n07920052 905 | n02641379 906 | n03535780 907 | n03929855 908 | n02011460 909 | n03775071 910 | n03017168 911 | n02105412 912 | n02843684 913 | n01978455 914 | n01685808 915 | n03444034 916 | n02788148 917 | n01689811 918 | n02113799 919 | n03127747 920 | n02825657 921 | n02786058 922 | n03666591 923 | n02105855 924 | n01644900 925 | n02100877 926 | n03995372 927 | n04317175 928 | n02058221 929 | n02101556 930 | n02091831 931 | n02013706 932 | n04532106 933 | n02100583 934 | n04133789 935 | n02095570 936 | n03218198 937 | n02326432 938 | n03958227 939 | n04398044 940 | n03980874 941 | n01985128 942 | n01728572 943 | n01440764 944 | n01797886 945 | n13037406 946 | n02114712 947 | n02342885 948 | n01698640 949 | n02097658 950 | n04371774 951 | n07753592 952 | n03676483 953 | n02102973 954 | n02974003 955 | n03457902 956 | n04612504 957 | n01819313 958 | n02102318 959 | n02892767 960 | n02814533 961 | n04596742 962 | n01737021 963 | n12144580 964 | n02859443 965 | n02089973 966 | n02807133 967 | n04357314 968 | n02111889 969 | n03179701 970 | n03770679 971 | n01930112 972 | n03388549 973 | n03954731 974 | n03461385 975 | n01774384 976 | n02114367 977 | n01601694 978 | n01729977 979 | n01592084 980 | n01914609 981 | n04542943 982 | n02123394 983 | n02481823 984 | n02102177 985 | n01665541 986 | n02088238 987 | n02500267 988 | n07802026 989 | n04443257 990 | n02442845 991 | n04509417 992 | n01669191 993 | n03891251 994 | n02167151 995 | n02071294 996 | n02457408 997 | n04235860 998 | n01872401 999 | n02018207 1000 | n01739381 1001 | --------------------------------------------------------------------------------