From d2dece3df743c97f2cfbb9bbf0dd0449a8730cec Mon Sep 17 00:00:00 2001 From: Joseph Redmon Date: Wed, 4 Jan 2017 04:44:00 -0800 Subject: [PATCH] adding yolo9000 --- .gitignore | 2 + cfg/coco.data | 4 +- cfg/voc.data | 2 +- cfg/yolo9000.cfg | 211 + data/9k.labels | 9418 ++++++++++++++++++++++++++++++++++ data/9k.names | 9418 ++++++++++++++++++++++++++++++++++ data/coco9k.map | 80 + data/inet9k.map | 200 + src/box.c | 28 + src/box.h | 1 + src/coco.c | 2 +- src/convolutional_kernels.cu | 1 + src/cpu_gemm.c | 91 - src/darknet.c | 8 +- src/data.c | 4 +- src/demo.c | 10 +- src/demo.h | 2 +- src/detector.c | 35 +- src/layer.c | 108 +- src/layer.h | 79 +- src/parser.c | 2 +- src/region_layer.c | 86 +- src/region_layer.h | 14 +- src/server.c | 205 - src/server.h | 4 - src/tree.c | 36 +- src/tree.h | 2 + src/yolo.c | 2 +- src/yolo_kernels.cu | 132 - 29 files changed, 19591 insertions(+), 596 deletions(-) create mode 100644 cfg/yolo9000.cfg create mode 100644 data/9k.labels create mode 100644 data/9k.names create mode 100644 data/coco9k.map create mode 100644 data/inet9k.map delete mode 100644 src/cpu_gemm.c delete mode 100644 src/server.c delete mode 100644 src/server.h delete mode 100644 src/yolo_kernels.cu diff --git a/.gitignore b/.gitignore index fd44ca29..2299a477 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,8 @@ *.csv *.out *.png +*.jpg +old/ mnist/ data/ caffe/ diff --git a/cfg/coco.data b/cfg/coco.data index 30038417..610151dc 100644 --- a/cfg/coco.data +++ b/cfg/coco.data @@ -1,7 +1,7 @@ classes= 80 train = /home/pjreddie/data/coco/trainvalno5k.txt -valid = coco_testdev -#valid = data/coco_val_5k.list +#valid = coco_testdev +valid = data/coco_val_5k.list names = data/coco.names backup = /home/pjreddie/backup/ eval=coco diff --git a/cfg/voc.data b/cfg/voc.data index eb6af25c..7807b5d2 100644 --- a/cfg/voc.data +++ b/cfg/voc.data @@ -2,5 +2,5 @@ classes= 20 train = /home/pjreddie/data/voc/train.txt valid = /home/pjreddie/data/voc/2007_test.txt names = data/voc.names -backup = /home/pjreddie/backup/ +backup = backup diff --git a/cfg/yolo9000.cfg b/cfg/yolo9000.cfg new file mode 100644 index 00000000..981491d8 --- /dev/null +++ b/cfg/yolo9000.cfg @@ -0,0 +1,211 @@ +[net] +batch=1 +subdivisions=1 +height=416 +width=416 +channels=3 +momentum=0.9 +decay=0.0005 + +learning_rate=0.00001 +max_batches = 242200 +policy=steps +steps=500,200000,240000 +scales=10,.1,.1 + +hue=.1 +saturation=.75 +exposure=.75 + +[convolutional] +batch_normalize=1 +filters=32 +size=3 +stride=1 +pad=1 +activation=leaky + +[maxpool] +size=2 +stride=2 + +[convolutional] +batch_normalize=1 +filters=64 +size=3 +stride=1 +pad=1 +activation=leaky + +[maxpool] +size=2 +stride=2 + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=64 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=3 +stride=1 +pad=1 +activation=leaky + +[maxpool] +size=2 +stride=2 + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=128 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=3 +stride=1 +pad=1 +activation=leaky + +[maxpool] +size=2 +stride=2 + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=256 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=3 +stride=1 +pad=1 +activation=leaky + +[maxpool] +size=2 +stride=2 + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=512 +size=1 +stride=1 +pad=1 +activation=leaky + +[convolutional] +batch_normalize=1 +filters=1024 +size=3 +stride=1 +pad=1 +activation=leaky + +[convolutional] +filters=28269 +size=1 +stride=1 +pad=1 +activation=linear + +[region] +anchors = 0.77871, 1.14074, 3.00525, 4.31277, 9.22725, 9.61974 +bias_match=1 +classes=9418 +coords=4 +num=3 +softmax=1 +jitter=.2 +rescore=1 + +object_scale=5 +noobject_scale=1 +class_scale=1 +coord_scale=1 + +thresh = .6 +absolute=1 +random=1 + +tree=data/9k.tree +map = data/coco9k.map diff --git a/data/9k.labels b/data/9k.labels new file mode 100644 index 00000000..e2bd3082 --- /dev/null +++ b/data/9k.labels @@ -0,0 +1,9418 @@ +n00002452 +n00020827 +n00002684 +n11425580 +n05220461 +n09225146 +n05538625 +n01900150 +n05225602 +n05418717 +n05302499 +n05578095 +n09475179 +n09376198 +n14877585 +n15046900 +n00019613 +n00021265 +n15067877 +n09436708 +n14915184 +n07555863 +n07850329 +n07849336 +n07705711 +n07622061 +n07594066 +n07854982 +n07852833 +n07852614 +n07854184 +n07852229 +n07851443 +n07705931 +n07707451 +n07752966 +n07760859 +n07747055 +n07754684 +n07768694 +n07764847 +n07768858 +n07739125 +n07746551 +n07753113 +n07763987 +n07748574 +n07751451 +n07762244 +n07750872 +n07742704 +n07765208 +n07763792 +n07767847 +n07766173 +n07751004 +n07760153 +n07758680 +n07753592 +n07751280 +n07769731 +n07763629 +n07755411 +n07754451 +n07753275 +n07764155 +n07765073 +n07762114 +n07762913 +n07753743 +n07765999 +n07765361 +n07752377 +n07757132 +n07769584 +n07751148 +n07761141 +n07761309 +n07749731 +n07747951 +n07749446 +n07747607 +n07749582 +n07750449 +n07749969 +n07750146 +n07748157 +n07748416 +n07748276 +n07748912 +n07748753 +n07749192 +n07749312 +n07739344 +n07739506 +n07742313 +n07740220 +n07740954 +n07740461 +n07740342 +n07745940 +n07767171 +n07744246 +n07744057 +n07744811 +n07744682 +n07745466 +n07743902 +n07746334 +n07746186 +n07743544 +n07743224 +n07755707 +n07756951 +n07755929 +n07757990 +n07757312 +n07757511 +n07734744 +n07719213 +n07768423 +n07735510 +n07718472 +n07710283 +n07713395 +n07708398 +n07710007 +n07718747 +n07708798 +n07723039 +n07715561 +n07709333 +n07730406 +n07730033 +n07733394 +n07713267 +n07722217 +n07817871 +n07736813 +n07719839 +n07712267 +n07730207 +n07710616 +n07710952 +n07711569 +n07711080 +n07713763 +n07713895 +n07733567 +n07715103 +n07715221 +n07715407 +n07714990 +n07735687 +n07735803 +n07714188 +n07714448 +n07714895 +n07714571 +n07714078 +n07720442 +n07734017 +n07713074 +n07734555 +n07720615 +n07721325 +n07720875 +n07721195 +n07721018 +n07721456 +n07722052 +n07721942 +n07721678 +n07734292 +n07734183 +n07724943 +n07725376 +n07726095 +n07725255 +n07729485 +n07726796 +n07727458 +n07727048 +n07727578 +n07727868 +n07728804 +n07728053 +n07728585 +n07728181 +n07729384 +n07729828 +n07725531 +n07725789 +n07725888 +n07715721 +n07717070 +n07716906 +n07716358 +n07716034 +n07717556 +n07717410 +n07720277 +n07736256 +n07723330 +n07719616 +n07736692 +n07733712 +n07732747 +n07730855 +n07731587 +n07731006 +n07723559 +n07724654 +n07724269 +n07724492 +n07722485 +n07723177 +n07722888 +n07639069 +n07679356 +n07682197 +n07680517 +n07695878 +n07685730 +n07682316 +n07684517 +n07680761 +n07681691 +n07684600 +n07684164 +n07686720 +n07680932 +n07687211 +n07681450 +n07683786 +n07695742 +n07682477 +n07686873 +n07684289 +n07683490 +n07682808 +n07690585 +n07684938 +n07690892 +n07685399 +n07693972 +n07690273 +n07691091 +n07687789 +n07685218 +n07694516 +n07694839 +n07694659 +n07690511 +n07690739 +n07690431 +n07688624 +n07688898 +n07689003 +n07690152 +n07693725 +n07690019 +n07692614 +n07691758 +n07691539 +n07691650 +n07693223 +n07693048 +n07691237 +n07687626 +n07687381 +n07687469 +n07871810 +n07684084 +n14580897 +n15062057 +n14698884 +n14696793 +n14765422 +n14844693 +n15019030 +n12167075 +n14974264 +n14858292 +n15075141 +n04033425 +n07556637 +n07566340 +n07560652 +n07881800 +n07938313 +n07800091 +n07570720 +n01464844 +n07556406 +n07840804 +n07802417 +n07925608 +n07844867 +n07569644 +n07568502 +n07809096 +n07843775 +n07755089 +n07882497 +n07573347 +n07923748 +n07572957 +n07731952 +n07804323 +n07804771 +n07803093 +n07803545 +n07732168 +n07732636 +n07804657 +n07804900 +n07809368 +n07841345 +n07827284 +n07827130 +n07822518 +n07827410 +n07816052 +n07812184 +n07810907 +n07858595 +n07811416 +n07824702 +n07818277 +n07819769 +n07920989 +n07822323 +n07815424 +n07814390 +n07826930 +n07814487 +n07814203 +n07583066 +n07822845 +n07767344 +n07823105 +n07828987 +n07582609 +n07825972 +n07823460 +n07823698 +n07822197 +n07856270 +n07767709 +n07829412 +n07829331 +n07829248 +n07857731 +n07857170 +n07838233 +n07836838 +n07826091 +n07830593 +n07840027 +n07832416 +n07832902 +n07835921 +n07835457 +n07831146 +n07831267 +n07834618 +n07834507 +n07595914 +n07858978 +n07859583 +n07860103 +n07860331 +n07860447 +n07816164 +n07818689 +n07821260 +n07820683 +n07816575 +n07817160 +n07817315 +n07819166 +n07817024 +n07818995 +n07816398 +n07820497 +n07932841 +n07820145 +n07819896 +n07816296 +n07821758 +n07933154 +n07935379 +n07935043 +n07847198 +n07844042 +n07848196 +n07847453 +n07847917 +n07847827 +n07678729 +n07860805 +n07860988 +n07883031 +n07623136 +n07861158 +n07627931 +n07628068 +n07565161 +n07565083 +n07561590 +n07561112 +n07560903 +n07562495 +n07564971 +n07938149 +n07938007 +n07884567 +n07924033 +n07919310 +n07891189 +n07922764 +n07929519 +n07921455 +n07933274 +n07927197 +n07925966 +n07891309 +n07936263 +n07883251 +n07914271 +n07911371 +n07901587 +n07891433 +n07891726 +n07886176 +n07886057 +n07907943 +n07921615 +n07886572 +n07902121 +n07886463 +n07912211 +n07911677 +n07914777 +n07930554 +n07930433 +n07930315 +n07915491 +n07915094 +n07913393 +n07916041 +n07914995 +n07916183 +n07914413 +n07917392 +n07917133 +n07915918 +n07930864 +n07931870 +n07932039 +n07930062 +n07906111 +n07907037 +n07902799 +n07904865 +n07905474 +n07902937 +n07904395 +n07905038 +n07902336 +n07905979 +n07903101 +n07904760 +n07903208 +n07904934 +n07906284 +n07902443 +n07903841 +n07903962 +n07903731 +n07903643 +n07907161 +n07906718 +n07907831 +n07907548 +n07907429 +n07906877 +n07906572 +n07893253 +n07892418 +n07893642 +n07899003 +n07896287 +n07896661 +n07893528 +n07896165 +n07900225 +n07893891 +n07900406 +n07895237 +n07898745 +n07896060 +n07899108 +n07892512 +n07897750 +n07892813 +n07894703 +n07894102 +n07894551 +n07900616 +n07900958 +n07900734 +n07900825 +n07901457 +n07898117 +n07895435 +n07899434 +n07899292 +n07894298 +n07895595 +n07894965 +n07897865 +n07895839 +n07895710 +n07898333 +n07897438 +n07895962 +n07896893 +n07899899 +n07895100 +n07898443 +n07899533 +n07894799 +n07897975 +n07899660 +n07894451 +n07910656 +n07909593 +n07911249 +n07910048 +n07908411 +n07910379 +n07908647 +n07886849 +n07887634 +n07887099 +n07889510 +n07887192 +n07887304 +n07888229 +n07887967 +n07889274 +n07887461 +n07888465 +n07890226 +n07890352 +n07889814 +n07890068 +n07890540 +n07888816 +n07924834 +n07924443 +n07924276 +n07920540 +n07920222 +n07920052 +n07920349 +n07919441 +n07731284 +n07919572 +n07920872 +n07921239 +n07934282 +n07933799 +n07929172 +n07927931 +n07928488 +n07928367 +n07927512 +n07928887 +n07928696 +n07928790 +n07936745 +n07935737 +n07936548 +n07801508 +n07805594 +n07800740 +n07801091 +n07802026 +n07801779 +n07801892 +n07557165 +n07560193 +n07651025 +n07560331 +n07557434 +n07556970 +n05399243 +n15089258 +n07560542 +n07573696 +n07613815 +n07643981 +n07596684 +n07600696 +n07597145 +n07597365 +n07599998 +n07596967 +n07620689 +n07642471 +n07643200 +n07642742 +n07643026 +n07642933 +n07643306 +n07606538 +n07599911 +n07607138 +n07608429 +n07598256 +n07606669 +n07607605 +n07601572 +n07609632 +n07605597 +n07607967 +n07609215 +n07841907 +n07606764 +n07605944 +n07601686 +n07605380 +n07605040 +n07601809 +n07605474 +n07842130 +n07842044 +n07600285 +n07600177 +n07842202 +n07579688 +n07580053 +n07588947 +n07842753 +n07583197 +n07879350 +n07880751 +n07868200 +n07863802 +n07875152 +n07824191 +n07878785 +n07865484 +n07866015 +n07868955 +n07861557 +n07580253 +n07877187 +n07866868 +n07880458 +n07648913 +n07580470 +n07866277 +n07591961 +n07868508 +n07871436 +n07864934 +n07874780 +n07879659 +n07878926 +n07937461 +n07842433 +n07862611 +n07863374 +n07866723 +n07867021 +n07867164 +n07726525 +n07624466 +n07842308 +n07877299 +n07880080 +n07862348 +n07873464 +n07869775 +n07879953 +n07625061 +n07843636 +n07696403 +n07580592 +n07655263 +n07868340 +n07619004 +n07879174 +n07867324 +n07843464 +n07877961 +n07873807 +n07867421 +n07654298 +n07878647 +n07611839 +n07842605 +n07871720 +n07869611 +n07876651 +n07880968 +n07875436 +n07806221 +n07841495 +n07823951 +n07712382 +n07591586 +n07590320 +n07587111 +n07592481 +n07590611 +n07591473 +n07590502 +n07591049 +n07592768 +n07585758 +n07588193 +n07586894 +n07588299 +n07584110 +n07587441 +n07587023 +n07586099 +n07588574 +n07584332 +n07586604 +n07586718 +n07585107 +n07585557 +n07585208 +n07584593 +n07585906 +n07584423 +n07587618 +n07587700 +n07588111 +n07704054 +n07704205 +n07871234 +n07870167 +n07863547 +n07700003 +n07619208 +n07619409 +n07874159 +n07874343 +n07874259 +n07874441 +n07874063 +n07867751 +n07867616 +n07808587 +n07807834 +n07806633 +n07807171 +n07807710 +n07807922 +n07808904 +n07806774 +n07807472 +n07841639 +n07841800 +n07695965 +n07712748 +n07712559 +n07697825 +n07697313 +n07696728 +n07696625 +n07698543 +n07698401 +n07865105 +n07696977 +n07698250 +n07698782 +n07697100 +n07696839 +n07697537 +n07712856 +n07712959 +n07579575 +n07579787 +n07609840 +n07581346 +n07611991 +n07613266 +n07611358 +n07612632 +n07612996 +n07613480 +n07611267 +n07612367 +n07611148 +n07611046 +n07617611 +n07612137 +n07616386 +n07631926 +n07615774 +n07616487 +n07614730 +n07614500 +n07614198 +n07616748 +n07616046 +n07617051 +n07615671 +n07615190 +n07614825 +n07615460 +n07617708 +n07618432 +n07582152 +n07734879 +n07581775 +n07582277 +n07730320 +n07581249 +n15089645 +n15089472 +n15093137 +n15093298 +n15090742 +n15091473 +n14919819 +n15091669 +n14810561 +n14973585 +n15091304 +n15091846 +n15092227 +n15090065 +n07576438 +n07577374 +n07575984 +n07574602 +n07574426 +n07593199 +n07576182 +n07574923 +n07574780 +n07575726 +n07575076 +n07578093 +n07576577 +n07577144 +n07576781 +n07574504 +n07577538 +n09335240 +n00027167 +n09334396 +n09283193 +n03892891 +n09287968 +n03059685 +n00003553 +n09300905 +n09452395 +n09260907 +n08630039 +n08630985 +n09386842 +n08593262 +n08620061 +n09379111 +n08649711 +n08658309 +n08568978 +n08512259 +n03823111 +n04170933 +n09433839 +n08578517 +n08640739 +n08574314 +n08552138 +n08645104 +n08505018 +n08659861 +n08659446 +n08673395 +n08583455 +n08598301 +n08651247 +n03120491 +n02802544 +n08614632 +n08674739 +n08569998 +n08494231 +n08677424 +n08616050 +n08518171 +n08573842 +n08521623 +n03368352 +n03417345 +n04454908 +n03902482 +n04610879 +n08579352 +n03963645 +n03417749 +n08524735 +n08537837 +n08551296 +n08628141 +n08633683 +n08539072 +n09249034 +n09263912 +n08583292 +n09443281 +n08547544 +n08664443 +n04602044 +n08580944 +n03581125 +n08517676 +n08598568 +n08584914 +n03899933 +n02776631 +n03322099 +n03935234 +n04052442 +n03159535 +n15102894 +n09242389 +n09382099 +n09282208 +n09392402 +n09393605 +n09445289 +n03030880 +n03946162 +n03485997 +n03882960 +n04322026 +n03474896 +n02764398 +n02907082 +n03948830 +n09205509 +n09472413 +n09443453 +n09309292 +n09366017 +n09366317 +n09376786 +n09348460 +n09246464 +n09433442 +n09454153 +n09409752 +n09403734 +n09331251 +n09437454 +n09238926 +n09283866 +n09217230 +n09305898 +n09288635 +n09308743 +n09308572 +n09194227 +n09289331 +n09468604 +n09344324 +n09335809 +n09435739 +n09215437 +n09259219 +n09217638 +n09304750 +n09206896 +n09405787 +n09233446 +n09290444 +n09457979 +n09245515 +n09376526 +n09415671 +n09448690 +n09230041 +n09398076 +n09453008 +n09303008 +n09359803 +n09302616 +n09409512 +n09399592 +n09199101 +n09230202 +n09283405 +n09326662 +n09193705 +n09218641 +n09472597 +n09421951 +n09270735 +n09406793 +n09213434 +n09256479 +n09210862 +n09421799 +n09224725 +n09396465 +n09362945 +n09259025 +n09398677 +n09428293 +n09447666 +n09332890 +n08596076 +n09428628 +n09361517 +n09265620 +n09303528 +n09436444 +n09274152 +n09213565 +n09269472 +n09206985 +n09228055 +n09466678 +n09415584 +n09475925 +n09257843 +n09239302 +n09294877 +n00021939 +n00004258 +n00019128 +n02749953 +n02852523 +n03767112 +n14977504 +n03129123 +n03848729 +n03964744 +n04362025 +n04469003 +n04341686 +n03575240 +n03873064 +n03122748 +n03309808 +n02871147 +n03364340 +n14786479 +n03169390 +n04564698 +n04339291 +n00022903 +n03315023 +n03302121 +n03076708 +n04188643 +n03354613 +n14976871 +n03670849 +n02917521 +n04414909 +n04435180 +n02725872 +n04076846 +n02743547 +n03816849 +n04007894 +n03934656 +n03720163 +n04227144 +n04260364 +n03925226 +n04564581 +n02744844 +n04042358 +n03927091 +n03927539 +n03876519 +n04485423 +n03835197 +n03342127 +n04246271 +n04321238 +n04180314 +n03625783 +n03684611 +n03514693 +n03421485 +n04026180 +n02870526 +n04599396 +n06415688 +n03822171 +n04582205 +n03727605 +n03849679 +n04598792 +n03631922 +n02933649 +n03600722 +n03169176 +n03418618 +n02727016 +n03526198 +n03794798 +n03859608 +n03968581 +n03717447 +n03614782 +n03915900 +n04431025 +n03974070 +n02779435 +n03941231 +n04399382 +n03603442 +n09229709 +n03548402 +n03944138 +n04238128 +n04284869 +n03061211 +n03219135 +n09282724 +n09191635 +n09443641 +n04186268 +n03447358 +n03607029 +n03536348 +n02857023 +n04381860 +n04213626 +n03961939 +n04394630 +n03365592 +n04501550 +n04296562 +n03159640 +n04354182 +n03549732 +n03360300 +n03892178 +n02768973 +n03906224 +n03313333 +n02990373 +n02861886 +n03365991 +n02898711 +n03109693 +n13898207 +n04358874 +n02687821 +n03135532 +n03545756 +n03548626 +n03469175 +n03688943 +n02914991 +n04191595 +n09218315 +n03074380 +n02699494 +n02733524 +n04460130 +n04471148 +n03792048 +n03388043 +n03837869 +n03321954 +n02733213 +n03687137 +n03065424 +n02839110 +n03894379 +n03725717 +n04226464 +n03071160 +n03839993 +n02913152 +n04128413 +n04008947 +n03917198 +n03222318 +n04295881 +n03241335 +n02735688 +n02777734 +n03984381 +n03216828 +n03517899 +n03546340 +n04361095 +n13897996 +n03171356 +n03290195 +n03743902 +n03297735 +n04217882 +n02863426 +n03408054 +n03463381 +n03758089 +n03686130 +n02800497 +n03379828 +n03233744 +n02953197 +n04108822 +n03865557 +n04492749 +n04532670 +n04311004 +n03122073 +n03415486 +n04366367 +n04479939 +n03956922 +n03069752 +n04592465 +n03316406 +n03212811 +n03844673 +n04068441 +n04103094 +n03387653 +n04311595 +n03697007 +n04300358 +n04032603 +n02810782 +n03492250 +n03826186 +n03547054 +n04411264 +n03550153 +n03560430 +n03254189 +n03792972 +n04025508 +n03900979 +n02769963 +n03374473 +n02954163 +n03334291 +n04549028 +n03035252 +n03448956 +n04113765 +n03975035 +n04486054 +n02905152 +n03784896 +n04104384 +n02946127 +n04501947 +n03047052 +n04206790 +n03029197 +n03767745 +n04028581 +n04220250 +n04556948 +n04479823 +n04028764 +n04312432 +n03347617 +n03519387 +n04361260 +n03098959 +n02826886 +n02814860 +n02922292 +n04251701 +n04051825 +n03390786 +n02811936 +n02699770 +n04546855 +n03409393 +n04544325 +n02755823 +n03904657 +n02825961 +n02898369 +n04326799 +n02796623 +n03839795 +n03967942 +n03659686 +n03454707 +n04127395 +n03795580 +n02788148 +n02894605 +n03459775 +n04571566 +n04047401 +n03549589 +n04304680 +n03327234 +n03160309 +n03427296 +n03221720 +n03698815 +n03985881 +n04501370 +n03395514 +n02963821 +n04153025 +n03394649 +n03226880 +n03579538 +n04239074 +n04086446 +n02793842 +n03498662 +n04329834 +n04547592 +n04082710 +n04046974 +n03000134 +n03252637 +n03511175 +n04604644 +n03930313 +n04326547 +n04560882 +n02920369 +n03262072 +n03108853 +n04390977 +n03999160 +n03542333 +n04409384 +n02666943 +n02726681 +n02763604 +n03478756 +n03545150 +n04104500 +n04081699 +n03859280 +n03402941 +n03739518 +n03542605 +n03661043 +n02977936 +n03322570 +n03953416 +n04081281 +n03770316 +n04112654 +n03839671 +n03842012 +n04407686 +n04217546 +n03449564 +n03457902 +n04093625 +n03956157 +n04018399 +n02882190 +n03544360 +n04118635 +n02734725 +n04233124 +n03430418 +n04146050 +n03007444 +n04417809 +n03479397 +n03092166 +n02993546 +n04080705 +n08640531 +n03788498 +n08560295 +n04095109 +n04229737 +n03541696 +n03790755 +n03036022 +n03466839 +n03698723 +n03333610 +n03837698 +n03121298 +n04187547 +n03416489 +n02968074 +n03860404 +n03055857 +n02859443 +n04598318 +n02727426 +n03730334 +n03210552 +n04294879 +n03016389 +n03123809 +n02793495 +n03884778 +n03028079 +n04407435 +n04210390 +n04346328 +n03724756 +n04374735 +n03788195 +n03007130 +n03618982 +n02667576 +n02984061 +n02984203 +n03772077 +n02935658 +n04111414 +n02760099 +n02892499 +n02935891 +n03199647 +n02956699 +n03282295 +n04461437 +n03005033 +n03152303 +n04305210 +n03121431 +n03558176 +n03557360 +n02696165 +n03393017 +n04258438 +n02919792 +n04115256 +n02932400 +n03257210 +n03719053 +n03685820 +n03428090 +n03686924 +n04131368 +n03118969 +n03219483 +n04052658 +n02857477 +n03180865 +n04535524 +n03002816 +n04079244 +n03322836 +n04413969 +n02907873 +n03878066 +n04305323 +n03718458 +n04354026 +n03158186 +n04535370 +n03010915 +n03718935 +n04073948 +n03439348 +n03892557 +n03877845 +n03781244 +n02667379 +n02667478 +n03165616 +n03092314 +n03801671 +n03849814 +n03801533 +n03032252 +n03678729 +n03529860 +n03097362 +n04177931 +n02940385 +n03111041 +n03064935 +n03626115 +n02838728 +n03356858 +n02902079 +n04439585 +n03263076 +n04453037 +n03942920 +n03379204 +n03522003 +n03220692 +n02782778 +n02918112 +n02704949 +n03899768 +n03109881 +n02775178 +n03517647 +n03024064 +n02894158 +n04030518 +n03004824 +n02758134 +n03120198 +n03200231 +n04105893 +n02750070 +n03285912 +n03813078 +n02694045 +n04328946 +n03443005 +n03378005 +n02754656 +n03047941 +n03382292 +n04446276 +n04356925 +n03288500 +n04363991 +n04112579 +n03038685 +n03412058 +n03718581 +n02991302 +n03691817 +n04139395 +n03238131 +n02839592 +n02824319 +n03619890 +n03660909 +n04329477 +n04602762 +n04180229 +n02710324 +n03200701 +n04065464 +n03541091 +n04058096 +n02873839 +n03089879 +n02821627 +n03040376 +n03679712 +n03222176 +n03478907 +n04061793 +n02857644 +n04345028 +n03683708 +n03062122 +n04406239 +n03079741 +n03120778 +n03982331 +n02807731 +n03098688 +n02715513 +n04558478 +n03746486 +n04555291 +n04018667 +n03529175 +n03653740 +n04345201 +n03885535 +n04324387 +n04523831 +n04067818 +n03200539 +n02952585 +n03319745 +n04119478 +n03283221 +n04064862 +n03850245 +n04401680 +n04541987 +n03090172 +n04209613 +n03727465 +n03788601 +n03465718 +n03542860 +n03225108 +n03836062 +n03165466 +n03457008 +n03086580 +n03878211 +n03303831 +n03891538 +n03235042 +n04000592 +n03075946 +n02932019 +n03939677 +n02931148 +n03696065 +n02933462 +n03061505 +n04305572 +n02960352 +n02934451 +n04299370 +n03235180 +n04414199 +n02936714 +n03964495 +n03907227 +n04539203 +n03993703 +n03683079 +n03016737 +n03003730 +n04061969 +n02843276 +n04037220 +n03550289 +n03124590 +n04100519 +n03376159 +n04262161 +n02921884 +n03348868 +n04080454 +n03404449 +n02868638 +n03555006 +n04076713 +n03732114 +n03617095 +n02849885 +n03837606 +n03425325 +n03566193 +n03762434 +n03073694 +n03343560 +n03346455 +n02731398 +n02991847 +n03148324 +n04295571 +n03411544 +n02705201 +n03854722 +n04327204 +n04355267 +n03399677 +n04527648 +n03168107 +n02770211 +n03986704 +n03721590 +n03251533 +n02853016 +n03259505 +n04409625 +n03679384 +n03776460 +n03088389 +n02726305 +n04549919 +n02992032 +n03088580 +n04613696 +n03685307 +n04517408 +n03507241 +n03354207 +n03042490 +n03529629 +n04172107 +n04584373 +n04412416 +n02672371 +n03349892 +n02932693 +n02822064 +n03361297 +n03010473 +n04360501 +n03391770 +n03903868 +n02929289 +n03373943 +n02669295 +n04087826 +n02926591 +n04589593 +n03390983 +n03416094 +n03530642 +n04492375 +n03646916 +n03111296 +n03931765 +n04587648 +n03042697 +n04478512 +n02689144 +n03454536 +n03453443 +n04545305 +n02977619 +n04387261 +n02732827 +n04038727 +n03793186 +n04136510 +n02976350 +n03855333 +n02813399 +n04297750 +n04232800 +n03211789 +n04110178 +n03986562 +n04473108 +n03041810 +n03224603 +n03224753 +n03637898 +n03320959 +n03961711 +n02790669 +n02835829 +n03696301 +n03207630 +n04459773 +n03896526 +n03900393 +n03792526 +n04340935 +n03386011 +n03385557 +n02806088 +n03610098 +n03628511 +n02676938 +n02695627 +n03723781 +n03334382 +n02805983 +n03296328 +n03878963 +n02980441 +n02993194 +n03743016 +n04178329 +n02892201 +n03810952 +n03884926 +n03220237 +n03745571 +n03953020 +n03574555 +n04511002 +n03748162 +n03841666 +n02931417 +n03506370 +n03965456 +n03119203 +n03176763 +n04202417 +n03722288 +n02879309 +n04131208 +n04200800 +n02871525 +n03871371 +n04428634 +n03606251 +n04462240 +n03039827 +n02813544 +n03436417 +n03367410 +n03249342 +n03416640 +n03173387 +n04245508 +n02791270 +n04299215 +n04443257 +n03822656 +n02927161 +n03952576 +n03089624 +n03099274 +n02813645 +n08492461 +n03461385 +n03847823 +n04358707 +n03555426 +n03457686 +n04261281 +n03322704 +n08571898 +n03822504 +n02885882 +n03504723 +n03111690 +n03856012 +n03592245 +n03911513 +n04005630 +n04447443 +n04566257 +n03294048 +n03091374 +n03563967 +n03405265 +n03183080 +n02997391 +n04377057 +n03094503 +n03100490 +n06254669 +n03176594 +n02807523 +n03128519 +n03690938 +n04186051 +n03476991 +n03794136 +n03916031 +n03475823 +n02723165 +n03994008 +n03113152 +n02808185 +n03484487 +n03067339 +n04357314 +n03640850 +n02862916 +n04450640 +n03487444 +n02683791 +n03992325 +n03898271 +n03916470 +n03071021 +n04448070 +n03980026 +n02901793 +n04447276 +n04386792 +n03177165 +n03519081 +n03714235 +n03314780 +n03676087 +n03309687 +n03724066 +n03676483 +n04112752 +n03309110 +n03308481 +n02738031 +n03171228 +n02866578 +n02703275 +n03812924 +n02813752 +n02746365 +n03647520 +n02950256 +n03332393 +n03786715 +n02801450 +n03553248 +n02753044 +n04113641 +n04206570 +n04063373 +n04285146 +n03926148 +n03811847 +n03889726 +n03430959 +n04137444 +n03414162 +n03888257 +n03278248 +n02727825 +n02761206 +n03729951 +n02774921 +n04393095 +n02979290 +n03192543 +n04533802 +n02799897 +n03135030 +n03039259 +n04225729 +n04607035 +n03132261 +n02802721 +n03594148 +n04212282 +n03446832 +n04275661 +n04318131 +n02885338 +n02885462 +n03472232 +n04571292 +n02800213 +n02811059 +n02811204 +n02797881 +n02811350 +n02799175 +n03528901 +n03349771 +n04425804 +n04164406 +n04102037 +n04102162 +n04102618 +n03558404 +n03523987 +n04273972 +n03336282 +n03132076 +n04582869 +n03445924 +n03447075 +n04399537 +n03446070 +n04597066 +n03585073 +n03244047 +n04284341 +n04569822 +n03762332 +n04028074 +n03823216 +n03950537 +n04135024 +n03524150 +n03978686 +n03535780 +n03538037 +n04509260 +n03888605 +n04469514 +n02777292 +n04524142 +n03980478 +n03255030 +n02790996 +n03289660 +n02942699 +n03037404 +n03338821 +n03667664 +n02884994 +n03358726 +n03976467 +n03974915 +n04569063 +n03789171 +n03196062 +n03987266 +n04069434 +n04609531 +n04067658 +n03817191 +n04071263 +n03619396 +n04091097 +n03351434 +n04295081 +n04091693 +n03138669 +n03139464 +n04179824 +n03349469 +n02966687 +n03650551 +n03241093 +n03240683 +n03494706 +n04247876 +n03503718 +n04124202 +n03480719 +n02900160 +n04290615 +n04266162 +n02768226 +n02778669 +n04028315 +n03982430 +n02882647 +n03716327 +n03020416 +n04113406 +n03442756 +n04540255 +n03941417 +n04254680 +n03982232 +n02882301 +n04256891 +n03333252 +n04023962 +n02839351 +n03134739 +n03131967 +n04409515 +n03445777 +n04118538 +n03145719 +n03742019 +n02802426 +n03267113 +n03942813 +n03482877 +n02799071 +n04039742 +n02861147 +n04540053 +n03598930 +n06785654 +n03014440 +n04579986 +n03901750 +n02802215 +n03820318 +n03278914 +n03782006 +n03781787 +n04405762 +n04401088 +n03857828 +n03916720 +n02872529 +n02979186 +n02988304 +n04060647 +n02757462 +n03656957 +n03963294 +n04405540 +n03034405 +n02979074 +n02995345 +n03775388 +n04142731 +n04392985 +n03181293 +n03777754 +n03293741 +n04392526 +n02705944 +n02992529 +n04270371 +n03179910 +n03902125 +n03488438 +n03187595 +n04044498 +n04405907 +n04043733 +n04137773 +n03516996 +n03046921 +n04077430 +n03517760 +n04315948 +n03584254 +n04546340 +n03584400 +n03436182 +n02942349 +n04404997 +n03909160 +n04026053 +n04173511 +n04070003 +n03257586 +n03509608 +n04171208 +n04450243 +n04506506 +n03434188 +n03567066 +n02923129 +n03386544 +n03046802 +n03757604 +n03927299 +n03924679 +n04608923 +n03316105 +n03767459 +n03987990 +n03084834 +n03422072 +n02855390 +n02921029 +n03425769 +n03871524 +n02852360 +n04105704 +n04408871 +n04241573 +n04402057 +n03664943 +n03605915 +n03543012 +n03196990 +n03639497 +n02840134 +n04594218 +n02999410 +n03086868 +n02790823 +n03886641 +n02709637 +n03374838 +n02835412 +n04440963 +n03011018 +n03600977 +n03093792 +n03228967 +n04573281 +n03521076 +n04144241 +n04571958 +n04160372 +n03787523 +n02928299 +n04333869 +n03213826 +n04476972 +n04593866 +n02788689 +n04451818 +n04516672 +n04116512 +n03816136 +n03294833 +n04317420 +n02908217 +n03532342 +n04185071 +n04285622 +n03653220 +n04369282 +n03346135 +n03837422 +n04317833 +n03039947 +n04100174 +n04608567 +n04208427 +n04282872 +n03396074 +n02865931 +n04112147 +n04459909 +n03659292 +n04463679 +n03487090 +n03138344 +n04317976 +n03613592 +n04393808 +n03903424 +n04099003 +n03470629 +n04264628 +n02771004 +n04193377 +n04400737 +n02670683 +n04367011 +n03489162 +n03588951 +n03919430 +n03418242 +n03967562 +n03075097 +n03239726 +n03154446 +n04387706 +n03417970 +n04050066 +n04299963 +n03684224 +n03919289 +n03970156 +n03941684 +n03966976 +n04258859 +n04266486 +n03481172 +n03946076 +n04606574 +n04154565 +n04489817 +n04140064 +n03848348 +n04150980 +n04208210 +n02898269 +n04269944 +n02966545 +n03430313 +n03715386 +n03731695 +n04457910 +n03947466 +n02680754 +n03848168 +n02697675 +n02886434 +n03474779 +n03376938 +n03488188 +n04016240 +n04016576 +n03109150 +n02877962 +n02951585 +n03511333 +n03649909 +n03995856 +n04089976 +n03995372 +n03240140 +n03154073 +n04503593 +n02844307 +n02848216 +n03624400 +n02866386 +n03030557 +n03265032 +n04148054 +n03623556 +n02764044 +n04057047 +n04594828 +n03020692 +n03954731 +n04186848 +n04250473 +n04016684 +n04163530 +n02973904 +n02880842 +n03973628 +n03041632 +n03549473 +n02976123 +n03890093 +n03658185 +n04373089 +n03911658 +n02811468 +n03498962 +n04185804 +n04332074 +n04127521 +n03067212 +n04597400 +n03601638 +n04247630 +n04283585 +n03621049 +n02997607 +n03403643 +n04103206 +n04059516 +n03724417 +n03621377 +n04293119 +n03775199 +n03101517 +n03101986 +n03454885 +n03767966 +n03266371 +n04578934 +n02850732 +n03880531 +n03133878 +n02999138 +n04270147 +n03459328 +n03284981 +n04309548 +n03101796 +n03101156 +n04500060 +n03846677 +n04317325 +n03400231 +n04097760 +n04596742 +n04138977 +n03453231 +n03047799 +n03984234 +n03262519 +n04326676 +n03992703 +n04282992 +n03018209 +n02869155 +n03713436 +n03317788 +n03625646 +n03133050 +n04546194 +n03729826 +n03053474 +n03332271 +n04277352 +n04321453 +n04296261 +n03250847 +n03715669 +n02949202 +n04374315 +n02806379 +n04381724 +n04491388 +n02698634 +n03355925 +n03141823 +n03274265 +n04453156 +n04122349 +n04156140 +n03475581 +n02902687 +n04185946 +n03908714 +n04310904 +n03145522 +n04039381 +n04292414 +n04409806 +n02772700 +n04426316 +n04333129 +n03012013 +n04072551 +n03831382 +n03651843 +n04156946 +n03873416 +n02831894 +n04150153 +n03258905 +n04292921 +n02906734 +n04367480 +n04111190 +n04549629 +n04182322 +n03949317 +n03616428 +n02764779 +n03976657 +n03351979 +n03091044 +n04434531 +n03244231 +n03127408 +n04472563 +n04277493 +n02946824 +n02871824 +n04319937 +n04230603 +n03051396 +n02931836 +n04267577 +n03726993 +n03726760 +n02883004 +n04610676 +n03775847 +n04115996 +n03711999 +n03382856 +n03374372 +n04279353 +n03908204 +n03906997 +n03518943 +n03003091 +n03128248 +n03652100 +n02783161 +n04185529 +n04033901 +n03388183 +n03326948 +n03405725 +n03842156 +n03200906 +n04550184 +n02821943 +n04379243 +n04379964 +n04549122 +n03636649 +n03201035 +n04555400 +n02912065 +n02933112 +n02766320 +n02822579 +n03649797 +n03129753 +n02870880 +n03290653 +n03298716 +n04161981 +n04165409 +n03015254 +n03337140 +n04104147 +n02963302 +n04529681 +n03050546 +n02739550 +n02818832 +n02831724 +n03962852 +n03540914 +n02920083 +n04491638 +n03388549 +n03115762 +n02920259 +n04503413 +n04236809 +n04222210 +n03482252 +n03799876 +n03225988 +n03414676 +n03465426 +n04381587 +n03116530 +n02699629 +n02894337 +n04301000 +n03090000 +n03904060 +n03620967 +n03850492 +n04398951 +n03653583 +n04603729 +n03428226 +n03238586 +n03179701 +n03246933 +n03063968 +n04480033 +n03092883 +n03011741 +n02789487 +n03735963 +n04061681 +n04130143 +n04247736 +n03231368 +n03630262 +n04608329 +n04164868 +n03164722 +n03201208 +n03202354 +n04067921 +n03367059 +n04380533 +n04057981 +n03237340 +n03018349 +n03742115 +n02804414 +n03131574 +n02970534 +n03125729 +n03001627 +n04447861 +n04326896 +n04256520 +n03858418 +n02828884 +n03649674 +n03002711 +n04099969 +n04373704 +n04429376 +n04331277 +n03632729 +n03518445 +n02738535 +n04590933 +n03376595 +n04576002 +n03790953 +n02791124 +n03262932 +n04062428 +n03786621 +n04593077 +n03168217 +n02946270 +n03801880 +n04382438 +n03380724 +n04177755 +n03165096 +n03100346 +n03693474 +n03015149 +n04344873 +n03891251 +n03360622 +n03920867 +n04177820 +n04590021 +n03016953 +n03518305 +n02843553 +n03508101 +n03666591 +n06791372 +n03099945 +n03141702 +n03243218 +n03626760 +n03904909 +n03800933 +n04200537 +n04198797 +n03699975 +n03088707 +n02776205 +n04294212 +n03339643 +n03738472 +n02676261 +n04474466 +n03008976 +n02688443 +n04114844 +n03929660 +n03287351 +n03320046 +n03553019 +n03175604 +n02678897 +n04461879 +n04359589 +n03851341 +n04331639 +n04450749 +n03923918 +n03574816 +n03074855 +n04074963 +n03302790 +n03075768 +n04554406 +n04210120 +n04562262 +n02855089 +n04526964 +n02895606 +n02730265 +n04226826 +n03467796 +n04081844 +n03614007 +n03269401 +n02729965 +n03345837 +n03111899 +n04069276 +n02694426 +n03277771 +n04252331 +n03525827 +n03744840 +n03613294 +n03827536 +n04263760 +n03568117 +n03180969 +n02895438 +n03565288 +n02683558 +n03537241 +n03267972 +n04228054 +n03664675 +n04258333 +n03272239 +n04041069 +n03423479 +n03099147 +n04265275 +n04330267 +n03031422 +n03728437 +n07273802 +n06793231 +n06794110 +n06874185 +n03269203 +n02981321 +n03582959 +n04375405 +n03307792 +n02988963 +n03580518 +n04338517 +n03279153 +n03614532 +n04586932 +n02803349 +n03915437 +n03254862 +n03025886 +n02787622 +n04615226 +n04132603 +n03467517 +n02880546 +n04224842 +n03698360 +n03716887 +n03716966 +n03495258 +n02676566 +n03499907 +n04506289 +n03272010 +n04536153 +n04536866 +n02992211 +n04536335 +n04536595 +n04330998 +n04419642 +n03273551 +n04376400 +n03928116 +n03039015 +n03854065 +n02672831 +n03452741 +n04515003 +n04278353 +n03738066 +n02766792 +n03086457 +n03496296 +n04278247 +n03840681 +n04598582 +n02891788 +n03854815 +n03393324 +n04579667 +n03945615 +n03609397 +n03372029 +n02817799 +n03228016 +n04222847 +n02804610 +n03838899 +n03037709 +n04141076 +n02793089 +n02912894 +n03369276 +n03394916 +n04487394 +n03110669 +n03494537 +n03494278 +n03086670 +n03006626 +n03884397 +n02775483 +n03343354 +n03912218 +n03245724 +n02803934 +n02804252 +n02804123 +n03301568 +n03483230 +n02869249 +n03447721 +n04532831 +n04311174 +n03721384 +n03440682 +n03017168 +n03612965 +n03720891 +n03249569 +n03157348 +n02869737 +n02803666 +n04387400 +n04249415 +n04410086 +n04243941 +n03996416 +n03999992 +n02769290 +n04004475 +n03702248 +n03789946 +n04252653 +n02977058 +n03322940 +n03082979 +n04613939 +n03765561 +n04303357 +n03997484 +n03087069 +n04303497 +n04237423 +n04417180 +n04064401 +n02938886 +n04525305 +n04243546 +n02760199 +n03418915 +n02829596 +n03551395 +n04024274 +n03007591 +n03563200 +n04004767 +n03250405 +n03672827 +n03643737 +n03675235 +n04419868 +n03985069 +n04505036 +n02794664 +n04595285 +n03225777 +n02909285 +n03571942 +n04184435 +n03240892 +n03460040 +n03646296 +n03766044 +n03287733 +n03273061 +n03507963 +n03596285 +n02761557 +n02687423 +n03433877 +n04309049 +n03579982 +n04591517 +n03424630 +n03193107 +n03859000 +n04040373 +n04099175 +n03321103 +n02872333 +n04265904 +n02700064 +n04587404 +n04304375 +n03616763 +n03146846 +n03500699 +n03075634 +n04428191 +n03496892 +n03210245 +n03496612 +n04238763 +n06359193 +n03528523 +n04175147 +n03196324 +n04358117 +n04603399 +n03918480 +n03985232 +n03180011 +n03832673 +n03956785 +n03642806 +n03485407 +n03914337 +n04561422 +n03736064 +n03063485 +n04477219 +n04587559 +n03272125 +n03996145 +n02911332 +n03034663 +n03000684 +n04380916 +n04121728 +n02786837 +n04279462 +n03689157 +n03604156 +n03452267 +n02666196 +n02679257 +n03483823 +n04171831 +n04594489 +n03106898 +n03510244 +n02934168 +n03760310 +n04471632 +n03666362 +n03020034 +n03336575 +n03604843 +n04402984 +n03898129 +n04401828 +n03995265 +n03307037 +n03300443 +n03268918 +n04004990 +n03995535 +n03350602 +n03373237 +n03251932 +n04573937 +n04334365 +n03861271 +n04520784 +n04332243 +n02688273 +n03843555 +n04216634 +n04398834 +n03066849 +n03407865 +n02710201 +n04040759 +n03736970 +n04110955 +n04112430 +n02969010 +n03096960 +n03996849 +n02761392 +n02677718 +n03102859 +n03431243 +n04392764 +n03339529 +n04289027 +n04011827 +n02709367 +n03446268 +n04568069 +n03700963 +n04167346 +n04021798 +n03432129 +n04088797 +n02918595 +n03532672 +n04228215 +n03119510 +n04063154 +n04371774 +n04590746 +n04586581 +n04586421 +n03189083 +n04211528 +n03296081 +n02903204 +n03150232 +n04282494 +n03082807 +n02686227 +n02962200 +n03198500 +n02973017 +n04475411 +n03431745 +n04306592 +n02692086 +n04154152 +n04020298 +n04574999 +n03559999 +n03659809 +n03566329 +n03767203 +n04563204 +n04101701 +n02836035 +n02980036 +n03460147 +n04115144 +n03334912 +n04543772 +n04563413 +n02974003 +n04289690 +n03944341 +n03992509 +n03430551 +n03244919 +n03874293 +n04113194 +n04290507 +n02833793 +n03943115 +n04051549 +n02764505 +n04154340 +n03456299 +n03425413 +n02835724 +n04354487 +n03487886 +n02995871 +n03329302 +n04102406 +n02966193 +n04510706 +n03054901 +n03393761 +n03209359 +n02860415 +n04067472 +n04211857 +n02848523 +n03473227 +n03032811 +n04111668 +n03873699 +n03563460 +n03320421 +n03208556 +n04019541 +n02890188 +n04448361 +n03397947 +n03954393 +n04385799 +n03712111 +n04519153 +n04313503 +n03450018 +n03602883 +n04072193 +n04372370 +n02783459 +n02927887 +n04438507 +n03374649 +n03325088 +n04422875 +n02727141 +n03775636 +n04327682 +n04445952 +n04027023 +n03186818 +n03537412 +n03793850 +n03222516 +n02826589 +n03363549 +n03795758 +n03469493 +n03103396 +n03301833 +n02686379 +n03432061 +n03389611 +n04579432 +n04218564 +n03743279 +n03506560 +n02824448 +n03123917 +n03028596 +n03201529 +n04275548 +n03794056 +n03680858 +n04568557 +n03819994 +n03639077 +n03352628 +n04529962 +n04283255 +n04283096 +n04112252 +n03357716 +n04117464 +n03536122 +n04592741 +n03303217 +n03271574 +n02887079 +n03176386 +n02768114 +n04320973 +n03933933 +n03934042 +n02767433 +n04190052 +n03638883 +n02783994 +n04283378 +n02797692 +n04314914 +n02887209 +n03938401 +n02817031 +n04098513 +n03057920 +n03495570 +n04081044 +n02888569 +n04386051 +n02871005 +n04341414 +n03506184 +n04161358 +n04430475 +n03490884 +n04038440 +n03495039 +n02953455 +n03632577 +n02871439 +n03719343 +n03814639 +n03622839 +n02713003 +n02768655 +n02737660 +n03505133 +n03019685 +n02741475 +n04148579 +n03105467 +n04190376 +n04220036 +n04094720 +n04515129 +n02886599 +n04476831 +n02815950 +n04590263 +n03223686 +n04318787 +n03592773 +n03073977 +n03988170 +n04360798 +n02974348 +n03443149 +n03821518 +n02864593 +n03637181 +n04402449 +n03733131 +n04436329 +n04119751 +n04433585 +n04045644 +n03437941 +n04436185 +n03366974 +n03601840 +n02970685 +n03937931 +n03955489 +n04123740 +n03002096 +n02835915 +n02910145 +n02770830 +n04325041 +n03288886 +n04485082 +n04275175 +n03704549 +n03801760 +n02943871 +n03262809 +n02759257 +n04009801 +n03340723 +n03643253 +n03656484 +n03838298 +n03087366 +n02943241 +n02709101 +n03094159 +n04355933 +n03309465 +n03333711 +n03395859 +n03987376 +n03049782 +n04403413 +n04583212 +n03967396 +n04147495 +n03733925 +n04565375 +n03467068 +n03231160 +n02708711 +n03813176 +n03852280 +n03739693 +n03575958 +n02981911 +n03308152 +n04419073 +n04089836 +n04383015 +n03070193 +n03760944 +n02670382 +n04340521 +n03709206 +n03092656 +n04403638 +n03760671 +n02751295 +n03293863 +n03852688 +n04044716 +n04070207 +n03333129 +n04068601 +n02978478 +n03822767 +n04145863 +n03715114 +n03279508 +n03332989 +n03667829 +n02841506 +n03484931 +n03850053 +n03082280 +n03692522 +n03868643 +n03247083 +n04070415 +n04053508 +n02794156 +n03904782 +n04421872 +n02751215 +n03735637 +n03429288 +n04437953 +n02710600 +n02939866 +n03991837 +n04382880 +n04141975 +n04392113 +n03753077 +n03554460 +n04180888 +n04118776 +n02699915 +n04029734 +n03736470 +n04559730 +n04518343 +n02710429 +n03424862 +n04001499 +n03718335 +n04274985 +n02753394 +n03046257 +n04555897 +n04355338 +n04438304 +n03544143 +n03452594 +n03196217 +n02694662 +n04548280 +n02708093 +n03909406 +n03145147 +n03197337 +n02708433 +n03973839 +n04607869 +n04328186 +n03891332 +n03026907 +n04528968 +n03759661 +n02777100 +n02708555 +n03277459 +n03272810 +n03841143 +n02702989 +n04273796 +n03842986 +n04561287 +n04541320 +n03708843 +n04449966 +n03467984 +n02879718 +n02880393 +n02892948 +n03624134 +n04373894 +n04346157 +n04008634 +n02715712 +n03343853 +n04177041 +n02689274 +n03423306 +n03875955 +n02950826 +n02759963 +n03948459 +n04502851 +n03732020 +n03803116 +n04090263 +n04076284 +n04171459 +n02760429 +n03416775 +n03695857 +n04171629 +n02760855 +n02749479 +n02760658 +n03701391 +n04347519 +n02923682 +n04517211 +n03607659 +n04450133 +n03073296 +n03178674 +n04086273 +n03427202 +n03363749 +n03802007 +n04250224 +n04585980 +n02961451 +n03136369 +n03687928 +n03615790 +n02812949 +n03699591 +n03158885 +n04054361 +n03327691 +n02904640 +n02987492 +n04121511 +n03292475 +n03375575 +n02916350 +n02950943 +n03080633 +n04015908 +n02745611 +n03178000 +n03706229 +n03080497 +n02841315 +n04272054 +n04009552 +n04403925 +n03443912 +n04356056 +n04238617 +n03399761 +n03795976 +n03864692 +n03555662 +n02963503 +n04376876 +n04317175 +n03643149 +n03858183 +n04364545 +n04083800 +n03514451 +n03938037 +n04056180 +n03302671 +n04477387 +n04080833 +n04251144 +n03868863 +n02731629 +n03876231 +n04287747 +n02889646 +n03484576 +n03323703 +n04162706 +n03652932 +n04125853 +n02891188 +n03803284 +n02999936 +n02865665 +n02910353 +n03627232 +n03041114 +n03051249 +n02982599 +n03940256 +n03229244 +n04153751 +n04238321 +n02928608 +n04159354 +n03887185 +n03682487 +n04431745 +n03683606 +n03038281 +n03043958 +n02960690 +n03804744 +n04445327 +n03836451 +n02881906 +n02880189 +n03644858 +n03497352 +n04095342 +n03476313 +n04227900 +n03499354 +n02903126 +n02860640 +n02796318 +n04127249 +n04197781 +n03057541 +n04554871 +n03423719 +n03503477 +n03855604 +n03874599 +n04136800 +n03645011 +n03075370 +n03223162 +n03886762 +n02915904 +n03476684 +n03551084 +n03208938 +n03250089 +n04505470 +n04036303 +n03085013 +n03928814 +n03033362 +n04168199 +n03589513 +n03098140 +n04401949 +n03034244 +n03968293 +n03275681 +n03163222 +n04470953 +n04257986 +n02715229 +n02955247 +n04269270 +n04072960 +n04364160 +n04257790 +n02810471 +n04414675 +n03048883 +n04595855 +n03084420 +n03577090 +n03778817 +n04004210 +n03578656 +n03125057 +n03033986 +n03788047 +n03274561 +n03261776 +n03759954 +n03691459 +n04402580 +n03505667 +n03087816 +n02963692 +n04502670 +n02917377 +n04390873 +n04599124 +n04349401 +n03846772 +n03204955 +n04041747 +n04404817 +n03207305 +n04142999 +n04610274 +n04540547 +n03359285 +n03651388 +n03870980 +n04013729 +n04258138 +n03773035 +n03485198 +n02965783 +n04059947 +n03861842 +n02921756 +n02761834 +n04201064 +n03343737 +n04058594 +n04143140 +n04494204 +n03211117 +n03918737 +n03221351 +n04464615 +n03793489 +n02714751 +n03506727 +n02823124 +n04484432 +n03913343 +n03085219 +n03782190 +n04152593 +n03196598 +n03676759 +n03361380 +n04588739 +n03187268 +n02940570 +n03085602 +n02769075 +n02988066 +n03027250 +n03070059 +n03525454 +n04538552 +n02948557 +n03031152 +n02947818 +n03746005 +n03746155 +n02935017 +n03851787 +n03706653 +n03744276 +n03708036 +n04063868 +n02763306 +n03079230 +n04533946 +n02988679 +n02988486 +n02757061 +n03492542 +n03209910 +n03359436 +n04052757 +n04534359 +n02979399 +n04391838 +n03924069 +n03694639 +n04178190 +n03636248 +n03665366 +n03358172 +n03640988 +n02948072 +n03818343 +n04534895 +n04384910 +n03423877 +n03844045 +n03549897 +n03370387 +n04335886 +n04286575 +n03272383 +n03590841 +n03018712 +n03359137 +n03665924 +n03911767 +n03503997 +n04107743 +n04339879 +n03318294 +n04148703 +n04160847 +n03824713 +n02852173 +n04456115 +n03365374 +n03401129 +n03442597 +n03187037 +n04529108 +n03975232 +n03668279 +n03482523 +n04371050 +n03772584 +n04164757 +n03544238 +n04288272 +n04116098 +n03066359 +n02886321 +n03525074 +n04585745 +n03281145 +n03126707 +n04575824 +n03178430 +n03733281 +n03078287 +n03820728 +n03440216 +n04080138 +n03302938 +n03738241 +n03085915 +n04141712 +n04082886 +n04545858 +n04041544 +n04400289 +n04402746 +n03578055 +n03580845 +n04404412 +n04137897 +n04365328 +n03072201 +n03681477 +n04358491 +n03300216 +n04595028 +n04008385 +n03674440 +n04366116 +n03401279 +n03957315 +n04488202 +n04555700 +n03206908 +n02893692 +n03210683 +n03991062 +n02920658 +n04074185 +n03147509 +n02774152 +n02978881 +n03256032 +n02773037 +n03733805 +n03438257 +n03875806 +n03733644 +n03291819 +n04183329 +n03935335 +n02801938 +n04179712 +n04139859 +n03994614 +n02946921 +n04576211 +n04600312 +n02839910 +n02949542 +n03779370 +n02964843 +n04533700 +n02975212 +n02974697 +n04531098 +n03233905 +n04060904 +n03871083 +n04560292 +n02883344 +n03062336 +n03920288 +n03456024 +n04176190 +n04499062 +n04350581 +n02880940 +n02978753 +n04050933 +n02927764 +n04130257 +n03775546 +n03984759 +n02997910 +n04263257 +n04023695 +n04103769 +n02682922 +n04254120 +n02754103 +n03571280 +n03174731 +n02815749 +n03629520 +n03063073 +n03002948 +n04397452 +n03216710 +n03301940 +n04207343 +n03055418 +n04083309 +n02769748 +n04122685 +n02816656 +n04134008 +n02970408 +n03883524 +n03253886 +n02870676 +n04452528 +n03709823 +n04026417 +n03235796 +n03291963 +n04124098 +n04122825 +n03993180 +n04204081 +n04446844 +n03414029 +n03619793 +n03958227 +n03445617 +n04235860 +n03469903 +n03461288 +n04284572 +n03972524 +n04544450 +n03321563 +n03521899 +n03898395 +n03372549 +n04496872 +n04559910 +n02918831 +n03676623 +n04249882 +n04206225 +n02823750 +n04119360 +n03443371 +n04592099 +n03062245 +n04131690 +n03914438 +n03883385 +n03050864 +n03482405 +n02893608 +n04204238 +n04582349 +n03764736 +n02823510 +n04255586 +n03904433 +n02946509 +n04103364 +n03791053 +n04170037 +n04509417 +n04543158 +n02804515 +n03484083 +n02766534 +n02834778 +n03538634 +n04467099 +n02959942 +n04482393 +n02740533 +n04065272 +n04464852 +n04252077 +n02916179 +n03684823 +n04335435 +n03791235 +n04465501 +n03384352 +n02740300 +n02739889 +n03256788 +n02946348 +n04520382 +n04211219 +n03193597 +n03272562 +n04389854 +n04465358 +n04310018 +n03193260 +n03193423 +n03506880 +n04490091 +n02704792 +n03389761 +n03790512 +n03444034 +n02958343 +n04252225 +n03345487 +n04520170 +n04467665 +n04474035 +n03417042 +n03632852 +n04461696 +n03256166 +n04465666 +n03930630 +n03173929 +n03796401 +n03896419 +n03977966 +n02871314 +n04466871 +n03785016 +n02814533 +n03680512 +n03777568 +n03268790 +n03770679 +n03100240 +n03079136 +n02930766 +n04201733 +n04037443 +n03498781 +n04097373 +n02831335 +n04285965 +n04166281 +n03594945 +n03670208 +n03141065 +n02701002 +n04516354 +n04322801 +n04347119 +n03870105 +n03543394 +n04285008 +n03119396 +n03122295 +n02970849 +n03538406 +n03255899 +n03599486 +n03981924 +n03868242 +n04397027 +n03648431 +n04176068 +n02797295 +n04204347 +n03490119 +n02835271 +n04126066 +n04026813 +n03792782 +n02968473 +n03435991 +n02912557 +n04297098 +n03389889 +n02775039 +n03393912 +n03895866 +n02932523 +n02885108 +n04389521 +n03828020 +n04020912 +n03200357 +n04246855 +n04065789 +n02747177 +n03678558 +n04134523 +n03935116 +n02900705 +n03078995 +n03210372 +n03619650 +n04548362 +n02962843 +n03986355 +n03214582 +n03031012 +n04200000 +n03468821 +n02755140 +n03683995 +n04608435 +n04556533 +n02774630 +n03438863 +n03487533 +n04137217 +n02773838 +n04491769 +n03498441 +n03420345 +n04570815 +n02967294 +n03986949 +n03865371 +n04518764 +n02863750 +n03355768 +n02881193 +n03633091 +n02876657 +n02877266 +n03990474 +n03950228 +n02808440 +n03786901 +n02909870 +n03241496 +n03129001 +n04591887 +n04001265 +n04493381 +n03572321 +n04438897 +n02801525 +n03784270 +n02758960 +n03029445 +n02795169 +n04388743 +n03593526 +n02993368 +n04447028 +n03350204 +n04149083 +n04263336 +n04246060 +n03983396 +n04557648 +n03603722 +n02985963 +n03449451 +n03937543 +n02962061 +n03359566 +n02823428 +n03571625 +n03174450 +n04579056 +n03140431 +n04591713 +n02960903 +n03923379 +n04579145 +n04560804 +n03521675 +n03295246 +n04422727 +n02952374 +n04518132 +n03709363 +n03595409 +n04139140 +n04398044 +n03259401 +n04516214 +n04324297 +n03612814 +n02939185 +n03915118 +n04397768 +n03063689 +n03064250 +n04132985 +n04399158 +n04225031 +n03543603 +n03379343 +n03797390 +n03693707 +n04389430 +n03063599 +n04443766 +n02824058 +n02836174 +n02843158 +n04553703 +n02788572 +n02823335 +n04592005 +n03610418 +n03426134 +n04560113 +n04173046 +n02732072 +n04078574 +n04562935 +n04049303 +n02951703 +n02705429 +n03101664 +n02815834 +n04516116 +n03725600 +n04522168 +n03133415 +n03593122 +n03960374 +n04476259 +n02982515 +n03259009 +n03004275 +n04131929 +n03416900 +n03565830 +n03543735 +n03858085 +n04255163 +n02747802 +n03871628 +n02919414 +n03167978 +n02778456 +n03500389 +n03870672 +n02782681 +n02971356 +n03064758 +n04200258 +n04253057 +n03908618 +n03127925 +n02786331 +n04589325 +n03014705 +n04340750 +n02998003 +n03710193 +n02978055 +n02836392 +n03871724 +n04452615 +n04462011 +n03064350 +n03535024 +n04477548 +n02989099 +n02977438 +n04125257 +n02976939 +n04125021 +n04469813 +n03002341 +n04214282 +n04019101 +n04172342 +n03538179 +n04524313 +n04231693 +n04103918 +n04467307 +n04196502 +n03678362 +n03306385 +n04212165 +n04468005 +n02924116 +n03680942 +n03394272 +n03896233 +n04349306 +n03711044 +n03394480 +n03078802 +n02917067 +n04487081 +n03769881 +n04146614 +n04310157 +n02918964 +n04099429 +n03764276 +n03773504 +n03125870 +n04235291 +n03478589 +n04389033 +n03886053 +n03919096 +n03549199 +n02686568 +n04530566 +n04264914 +n03547229 +n03510583 +n04308084 +n03666917 +n03491032 +n03439814 +n03512147 +n04552348 +n02691156 +n02759387 +n02867715 +n02704645 +n04012084 +n02690373 +n02842573 +n03365231 +n03595860 +n03335030 +n04308273 +n04160586 +n02686121 +n04583620 +n03604311 +n03596543 +n04308397 +n03577672 +n02692877 +n02850950 +n02782093 +n03541923 +n02858304 +n04476116 +n04610013 +n04194289 +n04128837 +n02792409 +n03662601 +n03977592 +n03447447 +n04158807 +n02792552 +n04095210 +n04495843 +n04024983 +n03939178 +n04244997 +n03329663 +n04409128 +n02947660 +n03344393 +n03790230 +n03236423 +n03981566 +n03545470 +n04229480 +n02951358 +n03199901 +n04037964 +n03105306 +n04612504 +n03436891 +n03602081 +n04115456 +n03609235 +n03861430 +n03254374 +n04038231 +n04038338 +n04273569 +n03859170 +n02932891 +n03552749 +n04197110 +n04606251 +n03896103 +n03947888 +n03668488 +n03541269 +n04309348 +n02965300 +n04224543 +n04552696 +n03673027 +n03698604 +n02965216 +n03141327 +n03874138 +n04317063 +n02878222 +n03095699 +n02784124 +n03845190 +n04347754 +n03466493 +n03397266 +n02812201 +n03466600 +n02687172 +n03718212 +n03180504 +n02755529 +n03811295 +n04612373 +n03045228 +n03327133 +n04242408 +n03612010 +n03186285 +n04128499 +n02793199 +n04147183 +n04587327 +n04483307 +n02981792 +n02982416 +n04266014 +n04264765 +n03218198 +n02860847 +n02861022 +n04336792 +n03122202 +n06271778 +n06255081 +n06263609 +n06276697 +n06272290 +n06276501 +n06277280 +n06281040 +n06277135 +n06278338 +n06278475 +n06274760 +n06272803 +n06272612 +n06263369 +n06266417 +n06595351 +n06267145 +n06596607 +n06596727 +n06596364 +n06596474 +n06267893 +n06267564 +n06267655 +n06266633 +n06267991 +n03938244 +n03872495 +n04135315 +n02823964 +n03408444 +n02967626 +n04053677 +n04151940 +n04453910 +n03380867 +n04014297 +n03045698 +n04605726 +n04513827 +n03050026 +n03724870 +n03341153 +n03366823 +n03058107 +n02952237 +n03357376 +n03221059 +n03376279 +n03956623 +n03261603 +n02944459 +n04201297 +n02954938 +n03717622 +n03661340 +n04041243 +n02877765 +n03825788 +n03047690 +n04199027 +n02735538 +n02872752 +n03361550 +n04241394 +n03865949 +n04122578 +n04239786 +n03027625 +n04124370 +n04272389 +n02904927 +n04593524 +n04545748 +n02855701 +n02713364 +n03041449 +n03411079 +n03680355 +n04120489 +n03868406 +n02882894 +n03967270 +n04022332 +n04133789 +n03025250 +n04027706 +n04386664 +n03364008 +n03297103 +n03600475 +n02925666 +n04228581 +n03521544 +n04089666 +n04116294 +n03516844 +n04542715 +n03124043 +n03798061 +n02873733 +n03067518 +n03046133 +n04554211 +n04444749 +n03797896 +n04192858 +n02888270 +n04151581 +n04187233 +n02826068 +n04181718 +n04191943 +n04281375 +n04416005 +n04105068 +n03314608 +n03530910 +n04187061 +n02955065 +n03725035 +n03315644 +n03142679 +n02937958 +n02739668 +n02840245 +n02840619 +n03546766 +n02851099 +n03673767 +n03959701 +n03539433 +n02740764 +n02895154 +n03513376 +n02950632 +n03623338 +n03929855 +n04130907 +n04589890 +n03347037 +n04590553 +n03788365 +n03637318 +n03889871 +n03652729 +n02825657 +n04172776 +n02843684 +n02951843 +n03610524 +n02763901 +n04507155 +n03415252 +n03409591 +n04357121 +n03718789 +n03220513 +n03522100 +n04435653 +n03546235 +n04523525 +n04234887 +n03413684 +n04417672 +n03148727 +n03435593 +n03847471 +n02796207 +n04087709 +n03527444 +n04141327 +n04207763 +n03548086 +n04423845 +n03213538 +n03657121 +n03424325 +n03314378 +n04229816 +n02983189 +n02862048 +n04192698 +n03000247 +n02916936 +n03112719 +n03146219 +n02933340 +n04045255 +n02873520 +n04589190 +n03592669 +n03151077 +n04211356 +n04525584 +n04590129 +n04102285 +n04418357 +n04209239 +n02925107 +n02890513 +n03436549 +n03291741 +n02992368 +n07248320 +n03590306 +n03958752 +n04207151 +n03885293 +n03654576 +n02767665 +n03114379 +n02785648 +n02876084 +n04240752 +n02820210 +n04236377 +n02851939 +n03309356 +n04231272 +n04162433 +n02786058 +n04369025 +n02979836 +n03267821 +n04033995 +n02683323 +n02849154 +n02822220 +n03731483 +n03898633 +n03266749 +n03128427 +n03123553 +n04034262 +n04046400 +n03688405 +n04118021 +n03223299 +n03727837 +n04144539 +n04183217 +n03998194 +n02904233 +n04297847 +n04066270 +n02908773 +n03353951 +n03445326 +n04528079 +n03875218 +n03805725 +n03437430 +n03115897 +n03284743 +n04525417 +n03342015 +n03284886 +n03285578 +n03844233 +n04557308 +n03646020 +n04581102 +n03261019 +n03973402 +n03642444 +n04450994 +n04084889 +n04412097 +n03337383 +n03729308 +n03970546 +n03802393 +n04395024 +n04525038 +n02809105 +n03615406 +n02828427 +n04123567 +n03188725 +n04539794 +n03253796 +n03013850 +n03115400 +n04459610 +n03132666 +n03885194 +n03019938 +n03326795 +n03115180 +n04525191 +n04138261 +n03625355 +n04137355 +n04003856 +n03356982 +n04568841 +n03409297 +n02944579 +n04605163 +n02977330 +n04395106 +n03779128 +n02904803 +n04524941 +n04198453 +n02878425 +n03703862 +n03819595 +n03877351 +n04613015 +n03914831 +n03932670 +n03785237 +n04414476 +n04056932 +n02675219 +n03106722 +n03917814 +n03016868 +n02922798 +n04432662 +n02802990 +n03631177 +n04189282 +n03435743 +n03983612 +n03175189 +n03357267 +n04184316 +n02942460 +n03836906 +n03233123 +n03430091 +n03855214 +n03386726 +n03437741 +n04599235 +n04350458 +n04383839 +n03653110 +n04502502 +n03854421 +n02952109 +n03298858 +n03160740 +n03843438 +n04393549 +n02903852 +n03947798 +n03529444 +n04482297 +n03227317 +n03595523 +n03429914 +n04496614 +n03016609 +n03485794 +n03463666 +n03258330 +n03207743 +n04459362 +n02786198 +n03471190 +n02834397 +n04127904 +n03897943 +n03490006 +n03887697 +n03207835 +n03381776 +n03383099 +n04278447 +n03505383 +n04455652 +n03712337 +n02782602 +n03598151 +n03775747 +n03410571 +n03696568 +n04307767 +n03645577 +n03358380 +n04208065 +n03809603 +n02820556 +n03703730 +n03938522 +n04045397 +n03663531 +n03662719 +n03703945 +n03662887 +n04326084 +n02897820 +n14943580 +n14785065 +n15074568 +n14820180 +n04035912 +n03766935 +n04313628 +n03530511 +n03460297 +n03149686 +n03455488 +n03344642 +n03796522 +n03043693 +n02681392 +n04339638 +n15102455 +n04234455 +n03341297 +n04453390 +n14908027 +n14976759 +n03111177 +n03282401 +n03451798 +n03292603 +n03815149 +n03723267 +n02892304 +n07621618 +n02732572 +n03178782 +n02681518 +n03397087 +n03635108 +n04395651 +n03762602 +n03282591 +n06883725 +n03516367 +n04682462 +n03354903 +n02788021 +n04458633 +n03140292 +n03362890 +n05244934 +n11487732 +n03597469 +n03397532 +n03649161 +n03914106 +n02787435 +n03030262 +n02685082 +n02887970 +n02852043 +n03909020 +n03814906 +n03436075 +n03899328 +n04096066 +n03895293 +n04215402 +n04461570 +n03904183 +n03519981 +n02969323 +n04426618 +n04466613 +n03215508 +n03306610 +n02744323 +n02762508 +n02758863 +n04335209 +n04334599 +n03948242 +n03539678 +n02680512 +n03089014 +n03895585 +n04493505 +n04244379 +n04250850 +n04562496 +n02984469 +n02795528 +n03944672 +n03533014 +n04385536 +n03231912 +n03147280 +n04257684 +n04497962 +n04298661 +n03415749 +n02981024 +n04048441 +n04391569 +n02784218 +n03572107 +n02680337 +n03957420 +n02992795 +n03506028 +n03438071 +n04440749 +n02739427 +n04040247 +n02971167 +n04381994 +n04087432 +n03153375 +n03438661 +n03527149 +n03963198 +n04284002 +n04380346 +n03383948 +n04284438 +n04263502 +n04398688 +n04350769 +n04597913 +n03557270 +n04381073 +n03180384 +n02976249 +n02928049 +n04307986 +n04380255 +n02973805 +n02687992 +n04406817 +n02693246 +n02692232 +n03745146 +n04329190 +n04306080 +n04551055 +n03452449 +n03131669 +n03768916 +n03214253 +n03587205 +n03406966 +n03093574 +n03672352 +n03051540 +n02729837 +n03655720 +n03456186 +n02855925 +n03825080 +n04015204 +n03859495 +n03815482 +n03625943 +n03692379 +n02728440 +n03068998 +n03763968 +n03502509 +n03877472 +n03419014 +n02742322 +n04596852 +n03863108 +n03441112 +n02671780 +n02846141 +n03381126 +n02756098 +n04059157 +n02814774 +n03746330 +n04335693 +n04241249 +n04194127 +n03863262 +n04001845 +n02738859 +n03386870 +n03216402 +n02730930 +n04207903 +n03121897 +n03015478 +n03268645 +n04266375 +n03623198 +n03450516 +n04532106 +n03010795 +n02669723 +n02811719 +n03324928 +n03239259 +n03615563 +n03513137 +n03531281 +n04498389 +n03497657 +n02954340 +n03124474 +n04432203 +n03379051 +n03492922 +n03127747 +n04356595 +n03404360 +n03124170 +n02817516 +n02859184 +n04248507 +n03325941 +n02987379 +n04259630 +n04482177 +n02818135 +n03984643 +n02869837 +n03950899 +n02881757 +n03766322 +n03046029 +n03937835 +n02799323 +n03103563 +n04209133 +n03610682 +n02776825 +n03331077 +n04387095 +n02831237 +n04232153 +n03049924 +n04228693 +n04556408 +n02807133 +n03787032 +n04612026 +n02816768 +n03502331 +n04143897 +n04104770 +n03188531 +n04605572 +n04097866 +n04574067 +n03655072 +n04230808 +n04508163 +n04172904 +n04531873 +n04197391 +n03863923 +n03540090 +n02922578 +n04488530 +n04489008 +n04332580 +n03404149 +n03816005 +n04370774 +n03657511 +n04371563 +n03487642 +n04046277 +n04350905 +n04370048 +n03450734 +n03314884 +n03826039 +n02998841 +n03719743 +n03797182 +n03505504 +n04495698 +n03325584 +n04325704 +n03520493 +n03615655 +n03237992 +n03617480 +n02667093 +n02807616 +n03410938 +n04269822 +n03866082 +n03454442 +n03770439 +n03617312 +n03732458 +n02780815 +n03205669 +n04136333 +n03534580 +n03920737 +n02892767 +n03387323 +n04223299 +n03421324 +n03132776 +n04508949 +n02863014 +n02944146 +n04514241 +n03013580 +n04508489 +n03112869 +n03885788 +n04103665 +n03673450 +n03688192 +n02930214 +n04509171 +n03824381 +n02854739 +n04426427 +n02837887 +n02901114 +n03885028 +n03234164 +n04602956 +n03629231 +n03595614 +n03163381 +n03978966 +n03057021 +n03045337 +n04252560 +n04363777 +n03254046 +n04187970 +n03398228 +n03630383 +n03456665 +n03589791 +n04049405 +n02957008 +n04123448 +n03404251 +n03751269 +n04222307 +n02867966 +n03902756 +n04368496 +n03228254 +n02864504 +n03891051 +n03844815 +n04479046 +n03770954 +n04122492 +n03980874 +n04445154 +n04445040 +n03607923 +n04173907 +n04497570 +n04186455 +n02936402 +n04205318 +n03877674 +n04370288 +n04132158 +n02896442 +n03019434 +n04233715 +n03600285 +n03903733 +n03688605 +n03594734 +n03107488 +n03660124 +n04337287 +n02825442 +n02910864 +n03543112 +n02831595 +n03653833 +n03815615 +n03128085 +n02865351 +n04591157 +n02883205 +n02847631 +n03710721 +n04371430 +n02837789 +n03226538 +n03943920 +n04222470 +n03885669 +n02925519 +n04427715 +n04504141 +n04502197 +n02963159 +n04370456 +n04021028 +n04453666 +n03464053 +n02944075 +n03236735 +n02861387 +n02854926 +n03480579 +n03062015 +n04136161 +n02936570 +n04355511 +n03013438 +n04334105 +n03450230 +n03604400 +n03205574 +n02898585 +n04397645 +n02781121 +n03429682 +n03775071 +n03616979 +n02827606 +n03405595 +n03781683 +n03527565 +n02972397 +n03540267 +n04434932 +n04254777 +n04323819 +n03885904 +n03710637 +n02752496 +n04378956 +n03622931 +n02736798 +n03836976 +n03026506 +n03384891 +n03289985 +n03859958 +n02726017 +n03113657 +n03320519 +n03113835 +n03398153 +n04285803 +n02669534 +n03206718 +n03476083 +n03201776 +n02780704 +n03201638 +n03239054 +n02683454 +n04459018 +n04584207 +n03237416 +n02887489 +n02752615 +n03528263 +n03251766 +n04517823 +n03584829 +n04488857 +n03150511 +n04580493 +n04179913 +n04174101 +n03620052 +n03534776 +n04475631 +n04309833 +n03207941 +n04070727 +n04554684 +n03102654 +n03273913 +n03557590 +n03170635 +n04442312 +n03761084 +n04442441 +n03063338 +n03543254 +n04542943 +n03212114 +n03297495 +n04330340 +n03862676 +n03378174 +n03557692 +n03102371 +n03273740 +n03425595 +n04003241 +n02905036 +n04111531 +n03259280 +n03425241 +n03483316 +n03050655 +n04277826 +n04496726 +n04607242 +n02808304 +n03219010 +n04499446 +n02821030 +n03938725 +n04188179 +n04439712 +n03971218 +n03223553 +n02856463 +n03250279 +n03882058 +n03635668 +n02846511 +n04251791 +n04189816 +n02731900 +n04225987 +n04214046 +n04149813 +n04543996 +n03502200 +n03005285 +n03969259 +n04254009 +n04446521 +n04208936 +n04559451 +n03371875 +n03993053 +n04108268 +n03106110 +n03644378 +n02919890 +n04290079 +n03107046 +n04426788 +n02874537 +n04581829 +n03641569 +n03367545 +n04598965 +n04605321 +n00004475 +n00006484 +n12739332 +n00017222 +n00015388 +n01326291 +n11537327 +n00007846 +n12992868 +n00005787 +n12172906 +n13083586 +n13123431 +n11536673 +n11552806 +n13083023 +n13100156 +n12476510 +n11545524 +n11552386 +n13121544 +n12205694 +n13100677 +n13103136 +n13085113 +n13084834 +n13134302 +n13084184 +n12477163 +n12477583 +n12477747 +n12480895 +n12479537 +n12481458 +n11547562 +n11545714 +n13221529 +n13220122 +n13223265 +n13223588 +n13223710 +n12953206 +n13194572 +n13205058 +n12961879 +n12953484 +n13186654 +n13197274 +n13173882 +n13229543 +n13192625 +n13185269 +n13193642 +n13207335 +n13183056 +n13200651 +n13195341 +n13206817 +n13199970 +n12957924 +n13198914 +n13199717 +n13215586 +n13190747 +n13193856 +n13194036 +n11665372 +n11596108 +n12694486 +n11666854 +n11669921 +n11672400 +n12606438 +n12799776 +n11736694 +n12008487 +n11955896 +n12879527 +n12884260 +n12034141 +n12290748 +n12026476 +n12833149 +n11892817 +n12914923 +n11969607 +n11794024 +n12026018 +n11672269 +n12830222 +n11811473 +n12022054 +n11971406 +n11826198 +n12950314 +n11857875 +n11988596 +n11939699 +n11915214 +n11821184 +n12293723 +n11814584 +n11725015 +n12890265 +n11733312 +n11859472 +n11971248 +n11888800 +n11971927 +n12898774 +n11810358 +n11904109 +n11943407 +n11978233 +n12683407 +n12950126 +n11726707 +n11813077 +n11889619 +n11905749 +n11812910 +n11900569 +n12020184 +n11960245 +n11859737 +n12909421 +n12041446 +n12909917 +n11992806 +n11807979 +n11925303 +n11971783 +n11939491 +n11918473 +n11989869 +n11727091 +n11793779 +n11891175 +n11792341 +n11839568 +n11943660 +n11947802 +n12475242 +n11815491 +n12480456 +n11839823 +n11732567 +n12475035 +n12360108 +n12833985 +n11941924 +n11883328 +n11719286 +n11736851 +n11887119 +n12001707 +n11950345 +n11892637 +n11805956 +n11892029 +n11806219 +n12008252 +n11918286 +n11962272 +n12093600 +n12836862 +n12093329 +n11733054 +n12020507 +n11931918 +n11958080 +n12877838 +n11812094 +n11811706 +n11923174 +n12023726 +n12023407 +n11923637 +n11990313 +n11915899 +n12030908 +n12015221 +n11990167 +n11981192 +n11980318 +n11972759 +n11921395 +n12294124 +n12295796 +n12294723 +n12294331 +n12294871 +n12296432 +n12295033 +n11726269 +n11725821 +n11725973 +n12891305 +n12891643 +n11978713 +n11979527 +n11978961 +n11979715 +n12683571 +n12683791 +n11901759 +n11908549 +n11901294 +n11903671 +n11901977 +n11902389 +n11908846 +n11901597 +n11905392 +n11902200 +n11906917 +n12044467 +n12052787 +n12056217 +n12075830 +n12055516 +n12083113 +n12047884 +n12048056 +n12080820 +n12070381 +n12061380 +n12080395 +n12061614 +n12074408 +n12070583 +n12071744 +n12049282 +n12047345 +n12064389 +n12075010 +n12052447 +n12053405 +n12050533 +n12077944 +n12086539 +n12064591 +n12058822 +n12046028 +n12083591 +n12073991 +n12043444 +n12086012 +n12073554 +n12046815 +n12063639 +n12058630 +n12084890 +n12070016 +n12076223 +n12069679 +n12048399 +n12049562 +n12076577 +n12086192 +n12074867 +n12075299 +n12072722 +n12066018 +n12084555 +n12070712 +n12079963 +n12065316 +n12059314 +n12085664 +n12050959 +n12062468 +n12085267 +n12078172 +n12057211 +n12057447 +n12056758 +n12056601 +n12043836 +n12043673 +n12067193 +n12066630 +n12062781 +n12062626 +n11808299 +n11808721 +n11808932 +n11808468 +n11809594 +n11809094 +n11727358 +n11727738 +n11727540 +n11816649 +n11816336 +n11816829 +n11816121 +n11815918 +n11815721 +n12362274 +n12362668 +n12361946 +n11950877 +n11950686 +n11961100 +n12020736 +n12020941 +n11934616 +n11933546 +n11934807 +n12879963 +n12015959 +n11836722 +n11860555 +n12258885 +n11980682 +n12016567 +n11737534 +n11965627 +n11991263 +n11989393 +n12006766 +n12887293 +n12937130 +n12291959 +n11972291 +n11927215 +n12012111 +n11970586 +n11963932 +n11966215 +n11966083 +n12006930 +n12007196 +n11600372 +n11599324 +n11603246 +n11602873 +n11603835 +n11601333 +n12484784 +n12610328 +n11791569 +n11714853 +n13122364 +n11715430 +n11715678 +n12801781 +n11728099 +n11786131 +n12150028 +n12801520 +n11789066 +n11792742 +n12152532 +n12151615 +n12152722 +n11733548 +n11720353 +n12810595 +n12342299 +n13238375 +n12867826 +n12665048 +n11973341 +n12312728 +n11818069 +n12848499 +n11779300 +n12822955 +n12816508 +n12719684 +n12350758 +n12095020 +n11861641 +n11962667 +n12870891 +n12939282 +n12812478 +n12031927 +n12023108 +n12858150 +n12861892 +n12841007 +n12212361 +n12869061 +n12906214 +n12910285 +n12486574 +n12090890 +n12702948 +n12437513 +n11968931 +n11817914 +n11772408 +n12932173 +n12817694 +n11910460 +n12603449 +n12939874 +n12002428 +n12015525 +n11807108 +n12835331 +n12168565 +n12840362 +n12352287 +n11969166 +n11968704 +n12821895 +n12344283 +n11866248 +n11995092 +n12622875 +n11735053 +n12548280 +n13150894 +n12685431 +n12387633 +n12171966 +n12796022 +n12934036 +n12443323 +n12870535 +n12682668 +n12778605 +n12623077 +n12836212 +n11982115 +n12003696 +n12005656 +n12098403 +n12606545 +n11902709 +n12882945 +n12785889 +n11986511 +n12682411 +n12469517 +n12029635 +n12860365 +n12552309 +n11977303 +n11825351 +n12836337 +n12844939 +n12925179 +n11926833 +n12604228 +n11752578 +n12855042 +n11956850 +n12092262 +n12506991 +n12882779 +n11747468 +n12385429 +n12822115 +n12821505 +n12607456 +n12819728 +n12817464 +n12811027 +n12024445 +n12573474 +n12864545 +n11949402 +n11868814 +n11953038 +n12599435 +n12840749 +n13233727 +n12342498 +n12795555 +n11984542 +n12847008 +n12719944 +n11855274 +n12095647 +n12441183 +n12942572 +n12602980 +n12684379 +n12441390 +n12785724 +n11916696 +n12574320 +n12092417 +n12036939 +n11700058 +n12845413 +n11824146 +n11910271 +n11916467 +n11807525 +n12101870 +n11939180 +n12353754 +n12104501 +n12794985 +n12355760 +n12793015 +n12932966 +n12931542 +n12889713 +n12849061 +n11722466 +n11720643 +n12665857 +n12665271 +n11785668 +n11780148 +n11784497 +n11782036 +n11786539 +n11782761 +n12858871 +n12858397 +n11959632 +n11959862 +n12911673 +n12911440 +n12091213 +n12091550 +n12091377 +n12091953 +n12703557 +n12703190 +n12703383 +n12437930 +n12437769 +n12352639 +n12352844 +n12352990 +n12344700 +n12344483 +n12687957 +n12685831 +n12687698 +n12687462 +n12686274 +n12686077 +n12687044 +n12686676 +n12388989 +n12388143 +n12387839 +n12388858 +n12390099 +n12389501 +n12390314 +n12782915 +n12779603 +n12781940 +n12782530 +n11753700 +n11753355 +n11753143 +n12856680 +n12855494 +n12540250 +n12515711 +n12575322 +n12575812 +n12556307 +n12539306 +n12557681 +n12558425 +n12866162 +n12865824 +n12865037 +n12866635 +n12865562 +n12866002 +n11879054 +n11878283 +n11875691 +n11876634 +n11877193 +n11876803 +n11876432 +n11870418 +n11875938 +n11894327 +n11881742 +n11870747 +n11896722 +n11879722 +n11895092 +n11894770 +n11882074 +n11882426 +n13235503 +n13234678 +n12039317 +n12037691 +n12038406 +n12038585 +n12148757 +n12102133 +n12121610 +n12139575 +n12113195 +n12112918 +n12116429 +n12141495 +n12133462 +n12108871 +n12104238 +n12141167 +n12115180 +n12112008 +n12128071 +n12146311 +n12124627 +n12110778 +n12129134 +n12134025 +n12145477 +n12142085 +n12135898 +n12137120 +n12127030 +n12127768 +n12127460 +n12356023 +n12357485 +n12793494 +n12794135 +n12849279 +n12849416 +n12847374 +n12517642 +n11731659 +n12813189 +n11838916 +n12517445 +n12513172 +n12823859 +n12566954 +n13148208 +n12158798 +n12485981 +n13237188 +n12826516 +n13120211 +n12580654 +n11769621 +n12824053 +n11769803 +n12383402 +n12823717 +n12157769 +n13144794 +n12371439 +n12159055 +n12160490 +n12158443 +n12160303 +n12159388 +n12160857 +n12161969 +n12827270 +n12828791 +n12827537 +n11788727 +n11789589 +n12571781 +n11792029 +n12384839 +n12384227 +n12384037 +n12164363 +n12166128 +n12165170 +n12164881 +n12164656 +n13146583 +n13145040 +n12509476 +n13112664 +n13104059 +n12655869 +n12546183 +n12671651 +n12215579 +n12901724 +n12938193 +n12680864 +n12329260 +n12924623 +n12659356 +n12788201 +n12343480 +n13142504 +n11830906 +n12504783 +n12659539 +n12214789 +n11699442 +n12217453 +n12574866 +n12374418 +n12249542 +n13118707 +n12215022 +n12342852 +n12762896 +n12306717 +n11769176 +n12805146 +n12519089 +n11754893 +n12772908 +n12624381 +n12482031 +n12243109 +n12223764 +n12170585 +n12230794 +n12791329 +n12674120 +n12917901 +n12237486 +n12185859 +n12681893 +n12905412 +n12899537 +n12899752 +n12806015 +n12011620 +n12922763 +n12651229 +n12303083 +n11928352 +n11926365 +n12223569 +n12791064 +n12311579 +n11834654 +n11760785 +n12749679 +n12489815 +n12666965 +n12929403 +n12902662 +n12620196 +n12237641 +n12625383 +n12244153 +n11774513 +n12520864 +n12516828 +n12849717 +n12485653 +n12790430 +n12788854 +n11924445 +n12632335 +n11947251 +n12099342 +n11931540 +n12545635 +n11778257 +n11924849 +n12367611 +n12602262 +n12328567 +n12328398 +n12629305 +n11907689 +n11940006 +n12546962 +n11925898 +n11947629 +n11948864 +n11948264 +n12368451 +n12369309 +n12368028 +n12307240 +n12307076 +n12483427 +n12483625 +n12482893 +n12483841 +n12173664 +n12173912 +n12171316 +n12174521 +n12171098 +n12177844 +n12174311 +n12178896 +n12179122 +n12676534 +n12676703 +n12675876 +n12920204 +n12921868 +n12621410 +n12622297 +n12245319 +n12244650 +n12244819 +n12521394 +n12530818 +n12849952 +n12850336 +n12850168 +n12495146 +n12570972 +n12196129 +n13107694 +n12202936 +n13111881 +n13103877 +n12409231 +n12765115 +n12265600 +n12409470 +n12713866 +n12281241 +n11709205 +n12189429 +n12562785 +n12284821 +n12401335 +n12570394 +n11759224 +n12286988 +n12491826 +n12527738 +n12696492 +n12325234 +n12198286 +n12330891 +n11650558 +n12405714 +n12284262 +n12714755 +n13109733 +n12262553 +n12506341 +n12303462 +n12260799 +n12302071 +n12492106 +n11762433 +n12582231 +n12774299 +n13108481 +n12267411 +n11756092 +n12662772 +n13108662 +n12528549 +n12690653 +n12180885 +n13108545 +n13108323 +n12334293 +n12670758 +n12286826 +n12724942 +n12155009 +n12570703 +n12523475 +n12154773 +n12915811 +n12268246 +n13108131 +n12806732 +n12524188 +n11758799 +n12496427 +n12568186 +n12495895 +n12196527 +n12196336 +n12196694 +n12203529 +n12204175 +n12282933 +n12282527 +n12283542 +n12282737 +n12282235 +n12402051 +n12402840 +n12401684 +n12402348 +n12402596 +n11759853 +n11759404 +n12406715 +n12406488 +n12407890 +n12406902 +n12330469 +n12345899 +n11709674 +n12329473 +n12200143 +n11712282 +n12752205 +n13110915 +n12513933 +n12189987 +n12731401 +n12717224 +n12717072 +n12946849 +n12756457 +n12201580 +n11703669 +n12491017 +n12190410 +n12242409 +n07754894 +n12818346 +n12658308 +n12658118 +n12494794 +n12317296 +n12651821 +n11711764 +n11710136 +n11711537 +n11710393 +n12755225 +n12753573 +n12754648 +n12754781 +n12755727 +n12754981 +n12755387 +n12753007 +n12753245 +n12754003 +n12759273 +n12318378 +n12288823 +n12319204 +n12319414 +n12732491 +n12733647 +n12732756 +n12732009 +n12733870 +n12732966 +n12733218 +n12948495 +n12948251 +n12948053 +n12947313 +n12757303 +n12757458 +n11704093 +n11705171 +n12707781 +n12399132 +n12400720 +n12345280 +n11695599 +n12771192 +n12704343 +n12638218 +n12644902 +n12190869 +n12373100 +n12300840 +n12743352 +n12651611 +n12629666 +n12636224 +n12648045 +n12399384 +n12301180 +n12744387 +n12640839 +n12745386 +n12633638 +n12771390 +n12761284 +n12400489 +n12333530 +n12333771 +n12333053 +n12641413 +n12332030 +n12711984 +n12709901 +n12708293 +n12713063 +n12711596 +n12709103 +n12709688 +n12710415 +n12710295 +n12710693 +n12708654 +n12708941 +n12643313 +n12638753 +n12646740 +n12645174 +n12650379 +n12634429 +n12633994 +n12634211 +n12635532 +n12635955 +n12635744 +n12643473 +n12649065 +n12641931 +n12642200 +n12650556 +n12649539 +n12649317 +n12646605 +n12647560 +n12648888 +n12263987 +n12263038 +n12306089 +n12305986 +n12305293 +n12304703 +n12305475 +n12262018 +n12261808 +n12261571 +n12595699 +n12587132 +n12583126 +n12596709 +n12591351 +n12596849 +n12582665 +n12596148 +n12595964 +n12582846 +n12587803 +n12591017 +n12588320 +n12588780 +n12585629 +n12597134 +n12598027 +n12597466 +n12583401 +n12593994 +n12590232 +n11757653 +n11756669 +n11757851 +n11664418 +n13108841 +n11647703 +n11628793 +n11658331 +n11623105 +n11630017 +n11628456 +n11658544 +n11643835 +n11624531 +n11661372 +n11645914 +n11630489 +n11640132 +n11608250 +n11620673 +n11618861 +n11627168 +n11623815 +n11624192 +n11623967 +n11635152 +n11634736 +n11635433 +n11636204 +n11644462 +n11644226 +n11644046 +n11626585 +n11625632 +n11625003 +n11626826 +n11625804 +n11626152 +n11626409 +n11646694 +n11646167 +n11632167 +n11631854 +n11632619 +n11616662 +n11611561 +n11611356 +n11617631 +n11612575 +n11611758 +n11614713 +n11615387 +n11612018 +n11611087 +n11612923 +n11616486 +n11618290 +n11612349 +n11611233 +n11617090 +n11614250 +n11618525 +n11615026 +n11617272 +n11614039 +n11613459 +n11615967 +n11614420 +n11621029 +n11622184 +n11622591 +n11621281 +n11622368 +n11621950 +n11621547 +n11621727 +n11619455 +n11619227 +n11627512 +n11628087 +n11627908 +n12691661 +n12691428 +n12316572 +n12334891 +n12340755 +n12316444 +n12336727 +n12338796 +n12338454 +n12336973 +n12336092 +n12336224 +n12337617 +n12725521 +n12727101 +n12729521 +n12726670 +n12729315 +n12729729 +n12731029 +n12270741 +n12271643 +n12278650 +n12279458 +n12269241 +n12275489 +n12273114 +n12276872 +n12278371 +n12272883 +n12269652 +n12273768 +n12277800 +n12271933 +n12279772 +n12270946 +n12269406 +n12275675 +n12276628 +n12275131 +n12274358 +n12272239 +n12277578 +n12501202 +n12814643 +n12493208 +n12807773 +n12807409 +n12807251 +n11758122 +n12915568 +n12656369 +n12656685 +n12547215 +n12547503 +n11944196 +n11984144 +n11805544 +n11874081 +n11965218 +n12392549 +n11956348 +n11945514 +n11944954 +n11998888 +n11953884 +n11954345 +n11955153 +n11954161 +n12421137 +n12421467 +n12411461 +n12451915 +n12425281 +n12459629 +n12421683 +n12422129 +n12421917 +n12411922 +n12418221 +n12416073 +n12413165 +n12414932 +n12412606 +n12412355 +n12414035 +n12413880 +n12453186 +n12452836 +n12450344 +n12426248 +n12429352 +n12460697 +n12449526 +n12473840 +n12458550 +n12449296 +n12472024 +n12457091 +n12465557 +n12461466 +n12454159 +n12431434 +n12451240 +n12451399 +n12450840 +n12428076 +n12428747 +n12427566 +n12427184 +n12426623 +n12427757 +n12461109 +n12460957 +n12454705 +n12454949 +n12435777 +n12435649 +n11819509 +n11819912 +n11842204 +n11852028 +n11851258 +n11847169 +n11853813 +n11848479 +n11844892 +n11851839 +n11845557 +n11849871 +n11849983 +n11851578 +n11854479 +n11844371 +n11853356 +n11845793 +n11845913 +n11784126 +n11783920 +n12832315 +n11723770 +n11724109 +n12766869 +n12455950 +n11723227 +n12757816 +n11773987 +n12766595 +n01324610 +n02153109 +n01323599 +n01314781 +n01321579 +n01317541 +n01318894 +n01314663 +n02311060 +n01317916 +n01321230 +n01314388 +n02075612 +n02152740 +n01466257 +n01316949 +n01905661 +n01320872 +n01319467 +n01316422 +n02157206 +n10300303 +n02152881 +n01324431 +n01321854 +n01321770 +n01956344 +n01613615 +n01318279 +n02376542 +n02122948 +n01888045 +n01322343 +n01887896 +n02412440 +n01322221 +n01322604 +n01323261 +n01322685 +n02395694 +n01504344 +n01504179 +n01318381 +n02122580 +n01317813 +n02469472 +n02309337 +n02311617 +n02264232 +n02299157 +n02310585 +n02299505 +n02302620 +n02295390 +n02310717 +n02288268 +n02297442 +n02300797 +n02285801 +n02307325 +n02376791 +n02377063 +n01323355 +n01469103 +n01468712 +n01471682 +n01473806 +n01627424 +n01861778 +n09828216 +n01459791 +n02156871 +n01661091 +n01503061 +n02512053 +n01477525 +n02528163 +n02512938 +n01482071 +n02638596 +n01457852 +n01455778 +n01456756 +n02552171 +n01428580 +n02549989 +n02640857 +n02641379 +n02639087 +n02639605 +n02640242 +n02554730 +n02618827 +n02549248 +n02603317 +n01451426 +n02548247 +n02642107 +n02657368 +n02603540 +n02652668 +n02560110 +n02556846 +n02555863 +n02581957 +n02564270 +n02623445 +n02565573 +n02610664 +n02590702 +n02588286 +n02620167 +n02573704 +n02576223 +n02606384 +n02605316 +n02619550 +n02561108 +n02619165 +n02610066 +n02562315 +n02586543 +n02593019 +n02594250 +n02616851 +n02585872 +n02607862 +n02557182 +n02557318 +n02557749 +n02624167 +n02628062 +n02631475 +n02630281 +n02631041 +n02629230 +n02626762 +n02625258 +n02625612 +n02624807 +n02626265 +n02625851 +n02627292 +n02627532 +n02576575 +n02579928 +n02580336 +n02576906 +n02579303 +n02578771 +n02578928 +n02580679 +n02580830 +n02607201 +n02607470 +n02607072 +n02605703 +n02606052 +n02605936 +n02561381 +n02561661 +n02561514 +n02564720 +n02563648 +n02563182 +n02563792 +n02562796 +n02565072 +n02565324 +n02599052 +n02596381 +n02597608 +n02596067 +n02595702 +n02598573 +n02598878 +n02642644 +n02649546 +n02643112 +n02643566 +n02643836 +n02644113 +n02658531 +n02657694 +n02660208 +n02654745 +n02654425 +n02656670 +n02655020 +n02655523 +n02653145 +n02656032 +n02655848 +n02541687 +n02542432 +n02524202 +n02533834 +n02543565 +n02517442 +n01438208 +n02526121 +n02529772 +n02518324 +n02520147 +n02519686 +n02519862 +n02583567 +n01444339 +n01446589 +n01438581 +n01439121 +n01448951 +n02584449 +n02584145 +n02583890 +n01446760 +n01447331 +n01448594 +n01448291 +n01439514 +n01442972 +n01440764 +n01443831 +n01443537 +n01443243 +n01449712 +n01449374 +n02527622 +n02527057 +n02527271 +n02532602 +n02533209 +n02566834 +n02537085 +n02534734 +n02514041 +n02568959 +n02568087 +n02570164 +n02569484 +n02537716 +n02538216 +n02537525 +n02537319 +n02538010 +n02536456 +n02535537 +n02535258 +n02536864 +n02535759 +n01482330 +n01495701 +n01487506 +n01495493 +n01486838 +n01488918 +n01492357 +n01494475 +n01483522 +n01488038 +n01489501 +n01491006 +n01489709 +n01489920 +n01490112 +n01491361 +n01490670 +n01493146 +n01492569 +n01484850 +n01484097 +n01483830 +n01498041 +n01496331 +n01499396 +n01500476 +n01500091 +n01501160 +n01498989 +n01629276 +n01639765 +n01629962 +n01630284 +n01629819 +n01637615 +n01632047 +n01631663 +n01630670 +n01630901 +n01632458 +n01632777 +n01632601 +n01645776 +n01640846 +n01644900 +n01643896 +n01650167 +n01644373 +n01646648 +n01646902 +n01646292 +n01646802 +n01646388 +n01647640 +n01646555 +n01642539 +n01641206 +n01641577 +n01641391 +n01642257 +n01641739 +n01650690 +n01652026 +n01886756 +n01871265 +n01871875 +n01874434 +n01862399 +n02082791 +n01887474 +n01889074 +n02372584 +n01888411 +n02453611 +n02430559 +n01887623 +n02469914 +n02075296 +n02139199 +n02062017 +n02323449 +n02372952 +n01888181 +n02329401 +n01887787 +n02453108 +n01888264 +n02461830 +n02370806 +n01891633 +n01893825 +n02454794 +n02456962 +n02454379 +n02460009 +n02458135 +n02457945 +n02457408 +n02460451 +n02461128 +n02470238 +n02501583 +n02472293 +n02470325 +n02496913 +n02484322 +n02475669 +n02474777 +n02475078 +n02470899 +n02483092 +n02480153 +n02483708 +n02483362 +n02481823 +n02480495 +n02480855 +n02482650 +n02482474 +n02481103 +n02481366 +n02481500 +n02500267 +n02497673 +n02499316 +n02499808 +n02499022 +n02484473 +n02489589 +n02486410 +n02485536 +n02489166 +n02488702 +n02486261 +n02487347 +n02484975 +n02488291 +n02486657 +n02486908 +n02487847 +n02487547 +n02493793 +n02490219 +n02494079 +n02493509 +n02492035 +n02492660 +n02491107 +n02490811 +n02507649 +n02120997 +n02134971 +n02083346 +n02441326 +n02131653 +n02509515 +n02508213 +n02509815 +n02508021 +n02509197 +n02510455 +n02127808 +n02121620 +n02128925 +n02129604 +n02128385 +n02130308 +n02129165 +n02128757 +n02129923 +n02129837 +n01323068 +n02129463 +n01322898 +n02121808 +n02124623 +n02122878 +n02123159 +n02123045 +n02123242 +n02124484 +n02124075 +n02124313 +n02122298 +n02123478 +n02123394 +n02123917 +n02123597 +n02122510 +n02122725 +n02122430 +n02126640 +n02125494 +n02127052 +n02125311 +n02125081 +n02126139 +n02126787 +n02125010 +n02127292 +n02127482 +n02127678 +n02127381 +n02138441 +n02137015 +n02137549 +n02138647 +n02138777 +n02084071 +n02115335 +n02114100 +n02083672 +n02115096 +n02118333 +n02117135 +n02110958 +n02112826 +n02111500 +n02112706 +n02113335 +n02084861 +n02111129 +n02112497 +n02110341 +n02084732 +n02111626 +n02085374 +n02087122 +n02103406 +n02110806 +n02113978 +n02111277 +n02085272 +n02113186 +n02113023 +n02113799 +n02113624 +n02113712 +n02112018 +n02112350 +n02112137 +n02111889 +n02086346 +n02086240 +n02087046 +n02085936 +n02085782 +n02085620 +n02086079 +n02086753 +n02086646 +n02086910 +n02092468 +n02087394 +n02089468 +n02098550 +n02087551 +n02089232 +n02096437 +n02096756 +n02095412 +n02096051 +n02098286 +n02093859 +n02094114 +n02093754 +n02094433 +n02095314 +n02093647 +n02097474 +n02097658 +n02098413 +n02097298 +n02096177 +n02096585 +n02095050 +n02096294 +n02093056 +n02094258 +n02093991 +n02094562 +n02098105 +n02097209 +n02097130 +n02097047 +n02095570 +n02095727 +n02095889 +n02093256 +n02093428 +n02094721 +n02094931 +n02098906 +n02099997 +n02098806 +n02100399 +n02101108 +n02099029 +n02100583 +n02100236 +n02101006 +n02100735 +n02100877 +n02102318 +n02102605 +n02101861 +n02101388 +n02101556 +n02102480 +n02102973 +n02102040 +n02102177 +n02099267 +n02099601 +n02099429 +n02099849 +n02099712 +n02091635 +n02088466 +n02090475 +n02088238 +n02091244 +n02091467 +n02088839 +n02091831 +n02088094 +n02089078 +n02088632 +n02092002 +n02090379 +n02089555 +n02088364 +n02092339 +n02090827 +n02090622 +n02090721 +n02089973 +n02089867 +n02091134 +n02091032 +n02109047 +n02103841 +n02109961 +n02108551 +n02109811 +n02109525 +n02108915 +n02106854 +n02108672 +n02107420 +n02108422 +n02104523 +n02108089 +n02108254 +n02104029 +n02104280 +n02106966 +n02104365 +n02107142 +n02107312 +n02110627 +n02110185 +n02110063 +n02107574 +n02108000 +n02107683 +n02107908 +n02104882 +n02105412 +n02105855 +n02105505 +n02106166 +n02106030 +n02106550 +n02105641 +n02106662 +n02105251 +n02106382 +n02105056 +n02105162 +n02116738 +n02115641 +n02115913 +n02114855 +n01322508 +n02114712 +n02114548 +n02114367 +n02119022 +n02119477 +n02119789 +n02120079 +n02120505 +n02119634 +n02117900 +n02117512 +n02442845 +n02443484 +n02446206 +n02450295 +n02445394 +n02444819 +n02441942 +n02443114 +n02449350 +n02445715 +n02447366 +n02443346 +n02445004 +n02445171 +n02134084 +n02133161 +n01322983 +n02133704 +n02132136 +n02134418 +n02132580 +n02132788 +n02141306 +n02140049 +n02139671 +n02146371 +n02145424 +n02147591 +n02147947 +n02062430 +n02073250 +n02075927 +n02062744 +n02066707 +n02063224 +n02068974 +n02068541 +n02070430 +n02069412 +n02069701 +n02071636 +n02071294 +n02072798 +n02070174 +n02069974 +n02066245 +n02064338 +n02064816 +n02065407 +n02065026 +n02073831 +n02074367 +n02081571 +n02076196 +n02079389 +n02076779 +n02080415 +n02079851 +n02080146 +n02077658 +n02077152 +n02077923 +n02078574 +n02078738 +n02079005 +n02328429 +n02323902 +n02324045 +n02326432 +n02325722 +n02325366 +n02324587 +n02324850 +n02324514 +n02328150 +n02324431 +n02327842 +n02326862 +n02327028 +n02367492 +n02331046 +n02365480 +n02343320 +n02341974 +n02346627 +n02366959 +n02339376 +n02363005 +n02342885 +n02359324 +n02355227 +n02361337 +n02359556 +n02364520 +n02343772 +n02330245 +n02338145 +n02353861 +n02333546 +n02333909 +n02360282 +n02358091 +n02359915 +n02355477 +n02358890 +n02358390 +n02356381 +n02357111 +n02356977 +n02357401 +n02356798 +n02361706 +n02361587 +n02364840 +n02364673 +n02332755 +n02332156 +n02503517 +n02504458 +n02504013 +n02394477 +n02373336 +n02399000 +n02437136 +n02395003 +n02437616 +n02438580 +n02397744 +n02398521 +n02397529 +n02429456 +n02430045 +n02401031 +n02439033 +n02439398 +n02434190 +n02433925 +n02433318 +n02432983 +n02431337 +n02432511 +n02430830 +n02431122 +n02434954 +n02432291 +n02431785 +n02431976 +n02433546 +n02432704 +n02414578 +n02410509 +n02411206 +n02407959 +n02402010 +n02419796 +n02411705 +n02418064 +n02416519 +n02416104 +n02415435 +n02415253 +n02415577 +n02415829 +n02410702 +n02410900 +n02408817 +n02408429 +n02409508 +n02404573 +n02402175 +n02404906 +n02402425 +n02405302 +n02410011 +n02404186 +n02403003 +n02403325 +n02403231 +n02403740 +n02403454 +n02406174 +n02404432 +n02406647 +n02407625 +n02407071 +n02405929 +n02407276 +n02407390 +n02406533 +n02424305 +n02421136 +n02420509 +n02427724 +n02426813 +n02426481 +n02421792 +n02421449 +n02424695 +n02420828 +n02422391 +n02422699 +n02424486 +n02425887 +n02422106 +n02424085 +n02428508 +n02428349 +n02423022 +n02424909 +n02425228 +n02423218 +n02423589 +n02413131 +n02413050 +n02411999 +n02412210 +n02412080 +n02418465 +n02419336 +n02419634 +n02416964 +n02416820 +n02417914 +n02417387 +n02417070 +n02416880 +n02417534 +n02437482 +n02437312 +n02396427 +n02397096 +n02396014 +n02395406 +n02438173 +n02438272 +n02391994 +n02393580 +n02374149 +n02393940 +n02392434 +n02393161 +n02392824 +n02374451 +n02391049 +n02389346 +n02388917 +n02377603 +n02382948 +n02389128 +n02381460 +n02389261 +n02382204 +n02375302 +n02376918 +n02387722 +n02388832 +n02381609 +n02377703 +n02388735 +n02386014 +n02380464 +n02386310 +n02377480 +n02380335 +n02382437 +n02389026 +n02385214 +n02383231 +n02388276 +n02377291 +n02377181 +n02377388 +n02379430 +n02378969 +n02378541 +n02381364 +n02379329 +n02381004 +n02381261 +n02379908 +n02379183 +n02386141 +n02386224 +n02382338 +n02387254 +n02386496 +n02386853 +n02387093 +n02386968 +n02387346 +n02382039 +n02380745 +n02380583 +n02382750 +n02382635 +n02382850 +n02391234 +n02391373 +n02391508 +n02390015 +n02389779 +n02389559 +n01872401 +n01873310 +n01872772 +n01877134 +n01882714 +n01883070 +n01875313 +n01874928 +n01883513 +n01881171 +n01877606 +n01877812 +n01878929 +n01879509 +n01884834 +n01885498 +n01662622 +n01661818 +n01662784 +n01669372 +n01669191 +n01666228 +n01667778 +n01672032 +n01669654 +n01663401 +n01665932 +n01668665 +n01670092 +n01667114 +n01668892 +n01664990 +n01664065 +n01663782 +n01665541 +n01664369 +n01664674 +n01664492 +n01670802 +n01671125 +n01670535 +n01671479 +n01696633 +n01726692 +n01673282 +n01674464 +n01699831 +n01698434 +n01697178 +n01698640 +n01699040 +n01697611 +n01697457 +n01740551 +n01752165 +n01751748 +n01745125 +n01741562 +n01727646 +n01753488 +n01752736 +n01752585 +n01753032 +n01753959 +n01754533 +n01754370 +n01754876 +n01757901 +n01757677 +n01755581 +n01757115 +n01755740 +n01756089 +n01756508 +n01756291 +n01756733 +n01757343 +n01747885 +n01749939 +n01751472 +n01747589 +n01749582 +n01746359 +n01745484 +n01748264 +n01748906 +n01741943 +n01743605 +n01742821 +n01742172 +n01743086 +n01744100 +n01743936 +n01744401 +n01730960 +n01735189 +n01733757 +n01729322 +n01732244 +n01731545 +n01737021 +n01729977 +n01730812 +n01730563 +n01728572 +n01728920 +n01739381 +n01734418 +n01740131 +n01735577 +n01735439 +n01734104 +n01733957 +n01732614 +n01732789 +n01737875 +n01737472 +n01737728 +n01730185 +n01730307 +n01734808 +n01734637 +n01675722 +n01693783 +n01694709 +n01684133 +n01692333 +n01695060 +n01685808 +n01676755 +n01687665 +n01674990 +n01694178 +n01692864 +n01689411 +n01681940 +n01681653 +n01678343 +n01682714 +n01682435 +n01681328 +n01680264 +n01679626 +n01677366 +n01677747 +n01679962 +n01680655 +n01680478 +n01687978 +n01689081 +n01688243 +n01693334 +n01693175 +n01690149 +n01689811 +n01700470 +n01713764 +n01701859 +n01704323 +n01515303 +n01844917 +n01524359 +n01514668 +n01833805 +n01838038 +n01825930 +n01844551 +n01604330 +n01834918 +n01822602 +n01514752 +n01517565 +n01789386 +n01844231 +n01816887 +n01517966 +n01503976 +n01514859 +n02000954 +n01858441 +n02016358 +n02021795 +n01845132 +n02008041 +n02014237 +n02021050 +n02018795 +n02005790 +n02002075 +n02013177 +n02012849 +n02013706 +n02014524 +n02007558 +n02014941 +n02006656 +n02005399 +n02022684 +n02008497 +n02010453 +n02009229 +n02011281 +n02008643 +n02008796 +n02011460 +n02010728 +n02011016 +n02009750 +n02009508 +n02009380 +n02009912 +n02010272 +n02012185 +n02011805 +n02006063 +n02006364 +n02003204 +n02002724 +n02002556 +n02004131 +n02003839 +n02004492 +n02004855 +n02017725 +n02015357 +n02016066 +n02015554 +n02018027 +n02018368 +n02018207 +n02006985 +n02007284 +n02023341 +n02034129 +n02034295 +n02036053 +n02040266 +n02037110 +n02034661 +n02031585 +n02031934 +n02030996 +n02036711 +n02026059 +n02033779 +n02038993 +n02033561 +n02037464 +n02024479 +n02025239 +n02023992 +n02024763 +n02025043 +n02023855 +n02034971 +n02035210 +n02032222 +n02032355 +n02032480 +n02033041 +n02030287 +n02027897 +n02030837 +n02029087 +n02029378 +n02028035 +n02027075 +n02028900 +n02027492 +n02029706 +n02027357 +n02028727 +n02030035 +n02026948 +n02028175 +n02028342 +n02028451 +n02037869 +n02038466 +n01858845 +n01858906 +n01860002 +n01858281 +n01859190 +n01858780 +n01859325 +n01860187 +n01859496 +n01859689 +n01859852 +n02016956 +n02017213 +n02016816 +n02040505 +n02057731 +n02050004 +n02045369 +n02049088 +n02051474 +n02055658 +n02047614 +n02041085 +n02044178 +n02043808 +n02043333 +n02041246 +n02043063 +n02042472 +n02041678 +n02042180 +n02041875 +n02042759 +n02042046 +n02044778 +n02044517 +n02059162 +n02058221 +n02058594 +n02060411 +n02060889 +n02060133 +n02050442 +n02050313 +n02051059 +n02050586 +n02050809 +n02045864 +n02046759 +n02045596 +n02047260 +n02046939 +n02047411 +n02047045 +n02052775 +n02054036 +n02054502 +n02051845 +n02053083 +n02054711 +n02055107 +n02052204 +n02052365 +n02053425 +n02053584 +n02055803 +n02056728 +n02057035 +n02056570 +n02057330 +n02056228 +n02048115 +n02048353 +n02047975 +n01845477 +n01855672 +n01846331 +n01856890 +n01857851 +n01857079 +n01856380 +n01857512 +n01857325 +n01856072 +n01856553 +n01856155 +n01857632 +n01847253 +n01851375 +n01849676 +n01852329 +n01850192 +n01847978 +n01852400 +n01848840 +n01849157 +n01847806 +n01849466 +n01848123 +n01850553 +n01847089 +n01851895 +n01849863 +n01852142 +n01847000 +n01852671 +n01848976 +n01847407 +n01848648 +n01852861 +n01851207 +n01851038 +n01850373 +n01850873 +n01847170 +n01851573 +n01851731 +n01848555 +n01848323 +n01848453 +n01853195 +n01853870 +n01854415 +n01853498 +n01853666 +n01854838 +n01855032 +n01855476 +n01855188 +n01854700 +n01584225 +n01546506 +n01546921 +n01525720 +n01546039 +n01539573 +n01585121 +n01585715 +n01584695 +n01586374 +n01584853 +n01586020 +n01552813 +n01551711 +n01555004 +n01554448 +n01547832 +n01548301 +n01549886 +n01549430 +n01550172 +n01549641 +n01555305 +n01549053 +n01548865 +n01548492 +n01563128 +n01589718 +n01578575 +n01576695 +n01528654 +n01591697 +n01594004 +n01557185 +n01527347 +n01597022 +n01598588 +n01527617 +n01576076 +n01555809 +n01587834 +n01602630 +n01597336 +n01538955 +n01529672 +n01600657 +n01601694 +n01527194 +n01586941 +n01588002 +n01527917 +n01587526 +n01601068 +n01603600 +n01602832 +n01571904 +n01575745 +n01566645 +n01594372 +n01589286 +n01526521 +n01582856 +n01528396 +n01528845 +n01556182 +n01542786 +n01590583 +n01564914 +n01567133 +n01563746 +n01564394 +n01563449 +n01565078 +n01570676 +n01570839 +n01570267 +n01567678 +n01569060 +n01568892 +n01568294 +n01569971 +n01569262 +n01567879 +n01568720 +n01569423 +n01563945 +n01564217 +n01566207 +n01565599 +n01565930 +n01564773 +n01579410 +n01581984 +n01579578 +n01582398 +n01580077 +n01579260 +n01579028 +n01582220 +n01579149 +n01580870 +n01581166 +n01577035 +n01578180 +n01577659 +n01593028 +n01592084 +n01592694 +n01592387 +n01592540 +n01592257 +n01562265 +n01558993 +n01559477 +n01558461 +n01558307 +n01558149 +n01560105 +n01558594 +n01557962 +n01558765 +n01561732 +n01562014 +n01560280 +n01562451 +n01561452 +n01560419 +n01560636 +n01559804 +n01560793 +n01560935 +n01598988 +n01599556 +n01600085 +n01599269 +n01599159 +n01597906 +n01598074 +n01597737 +n01533651 +n01534155 +n01540233 +n01531178 +n01534762 +n01533893 +n01537134 +n01531344 +n01541386 +n01531512 +n01533481 +n01541922 +n01533000 +n01544704 +n01530575 +n01532325 +n01532511 +n01531811 +n01534582 +n01532829 +n01530439 +n01533339 +n01531971 +n01534433 +n01541102 +n01540566 +n01540832 +n01536644 +n01535469 +n01536334 +n01536186 +n01535690 +n01536780 +n01536035 +n01537544 +n01538059 +n01538630 +n01537895 +n01538200 +n01603812 +n01603953 +n01573898 +n01573074 +n01572328 +n01572782 +n01574045 +n01573240 +n01573360 +n01572654 +n01572489 +n01574560 +n01575117 +n01574390 +n01575401 +n01595450 +n01595168 +n01595624 +n01594787 +n01594968 +n01595974 +n01596273 +n01583209 +n01583495 +n01543632 +n01544389 +n01591123 +n01591005 +n01591301 +n01539925 +n01540090 +n01834540 +n01834177 +n01843065 +n01838598 +n01842235 +n01843719 +n01843383 +n01839598 +n01839330 +n01839086 +n01841102 +n01841679 +n01840775 +n01839750 +n01841441 +n01841288 +n01827403 +n01826364 +n01830915 +n01830042 +n01829413 +n01826680 +n01829869 +n01828970 +n01828556 +n01827793 +n01828096 +n01616318 +n01605630 +n01618503 +n01613294 +n01621127 +n01616764 +n01618922 +n01617766 +n01617443 +n01618082 +n01617095 +n01620414 +n01619310 +n01620735 +n01619536 +n01619835 +n01620135 +n01609751 +n01606522 +n01607812 +n01608265 +n01610955 +n01610552 +n01606809 +n01616086 +n01608432 +n01607600 +n01607962 +n01606672 +n01609956 +n01610226 +n01613177 +n01611800 +n01611472 +n01612628 +n01612476 +n01612275 +n01611969 +n01612122 +n01609391 +n01609062 +n01608814 +n01613807 +n01614343 +n01615121 +n01614925 +n01614038 +n01614556 +n01615703 +n01615458 +n01622959 +n01621635 +n01623880 +n01623425 +n01622352 +n01623615 +n01622120 +n01625562 +n01623706 +n01624115 +n01624537 +n01622483 +n01623110 +n01624833 +n01622779 +n01837072 +n01835276 +n01825278 +n01823013 +n01824575 +n01824035 +n01521399 +n01521756 +n01518878 +n01519873 +n01519563 +n01789740 +n01810700 +n01801876 +n01791463 +n01791107 +n02153203 +n01794344 +n01791954 +n01794158 +n01809106 +n01791625 +n01792429 +n01792158 +n01793435 +n01792042 +n01793715 +n01792640 +n01793249 +n01792955 +n01815601 +n01811909 +n01814370 +n01812337 +n01813088 +n01812662 +n01814921 +n01814755 +n01813532 +n01813385 +n01813948 +n01814217 +n01802721 +n01810268 +n01795088 +n01803078 +n01806567 +n01807496 +n01807105 +n01803362 +n01804163 +n01805801 +n01806297 +n01806364 +n01806143 +n01806467 +n01804478 +n01806847 +n01804653 +n01808140 +n01807828 +n01797307 +n01798484 +n01797020 +n01797886 +n01797601 +n01796729 +n01795545 +n01796340 +n01819734 +n01821203 +n01819115 +n01817346 +n01818832 +n01817953 +n01818515 +n01818299 +n01820052 +n01820348 +n01817263 +n01821869 +n01822300 +n01819313 +n01819465 +n01821076 +n01820546 +n01317089 +n01317294 +n01918744 +n01922303 +n01940736 +n02316707 +n01909422 +n01767661 +n01906749 +n01930112 +n01934440 +n01924916 +n01938454 +n01935395 +n01955084 +n01955933 +n01968315 +n01942177 +n01960459 +n01963317 +n01956481 +n01963571 +n01959985 +n01965889 +n01961985 +n01957335 +n01958038 +n01959492 +n01964441 +n01964271 +n01965529 +n01969726 +n01968897 +n01972541 +n01970164 +n01970667 +n01951274 +n01953361 +n01943899 +n01945845 +n01943087 +n01953762 +n01950731 +n01945685 +n01944390 +n01949085 +n01947396 +n01946630 +n01944812 +n01945143 +n01944955 +n02317335 +n02321170 +n02319555 +n02319095 +n02321529 +n02317781 +n01909906 +n01914163 +n01913166 +n01910747 +n01915700 +n01914609 +n01915811 +n01916925 +n01916187 +n01916481 +n01917882 +n01917289 +n01784675 +n01974773 +n01768244 +n01786646 +n01769347 +n01787835 +n02309242 +n02159955 +n01785667 +n01994910 +n01976868 +n01990007 +n01975687 +n01976146 +n01990800 +n01992773 +n01991520 +n01991028 +n01982650 +n01986806 +n01986214 +n01987545 +n01976957 +n01985128 +n01984245 +n01984695 +n01983481 +n01981276 +n01979874 +n01978455 +n01978287 +n01980166 +n01982068 +n01770393 +n01770081 +n01776192 +n01772222 +n01776313 +n01779629 +n01779148 +n01772664 +n01775370 +n01774750 +n01775062 +n01773797 +n01774384 +n01773157 +n01773549 +n02226183 +n02236896 +n02263378 +n02232951 +n02163297 +n02262449 +n02246011 +n02188699 +n02272871 +n02273392 +n02231052 +n02161457 +n02236355 +n02312427 +n02231487 +n02162561 +n02164464 +n02241569 +n02262803 +n02206270 +n02274024 +n02312640 +n02268148 +n02270623 +n02207805 +n02226429 +n02229544 +n02228341 +n02226970 +n02241426 +n02240517 +n02266050 +n02264885 +n02264363 +n02236044 +n02236241 +n02233338 +n02234355 +n02234848 +n02233943 +n02251775 +n02256656 +n02258198 +n02257284 +n02250822 +n02259212 +n02252226 +n02200198 +n02205219 +n02203152 +n02196344 +n02190166 +n02198859 +n02196119 +n02201000 +n02202006 +n02195819 +n02195526 +n02192513 +n02191773 +n02190790 +n02192252 +n02191979 +n02169974 +n02168245 +n02167151 +n02169023 +n02165456 +n02171453 +n02180875 +n02183096 +n02169497 +n02176261 +n02176439 +n02165105 +n02177972 +n02168699 +n02166567 +n02166826 +n02171869 +n02175916 +n02175569 +n02172870 +n02173373 +n02174001 +n02172182 +n02172518 +n02174659 +n02243562 +n02244797 +n02212062 +n02218371 +n02219486 +n02206856 +n02216211 +n02215770 +n02212602 +n02213107 +n02212958 +n02213543 +n02213239 +n02213788 +n02220804 +n02221083 +n02221414 +n02209354 +n02208280 +n02211627 +n02210427 +n02211444 +n02209624 +n02208498 +n02208848 +n02274259 +n02283201 +n02281787 +n02274822 +n02281406 +n02277742 +n02279972 +n02280649 +n02282257 +n02282903 +n02282385 +n02275773 +n02278210 +n02276258 +n02276902 +n02279257 +n02277094 +n02276078 +n02275560 +n02277268 +n02276355 +n02276749 +n02278024 +n02281015 +n02281136 +n02305929 +n02301452 +n02295064 +n02298541 +n02284611 +n02287004 +n02291572 +n02305085 +n02301935 +n02304432 +n02303284 +n02302969 +n02292692 +n02291748 +n02268443 +n02268853 +n01321123 +n02376679 +n01323493 +n01338685 +n01387065 +n01339083 +n01339336 +n01339801 +n01339471 +n01397114 +n01389507 +n01397871 +n01410457 +n01407798 +n01424420 +n01392380 +n01395254 +n01396048 +n11542137 +n11544015 +n11542640 +n09626238 +n09856671 +n09605289 +n09622049 +n09971273 +n09882716 +n09621232 +n09902954 +n09620794 +n09727440 +n09624168 +n09752519 +n10378026 +n10500217 +n10514429 +n09610405 +n09617867 +n10355449 +n09618957 +n10002760 +n10384496 +n09637339 +n09613191 +n09836160 +n10274815 +n09890749 +n10112591 +n10260706 +n09606527 +n09767197 +n10709529 +n09976429 +n09918554 +n10588074 +n10565667 +n09990415 +n10120330 +n09616922 +n09622302 +n09630641 +n09796809 +n09614684 +n10635788 +n09645091 +n10405694 +n09676884 +n09638875 +n09874428 +n09627906 +n09628382 +n10522759 +n10247880 +n09624980 +n10529231 +n10024362 +n09614315 +n09612848 +n09632518 +n10147935 +n09871867 +n09620078 +n09634494 +n10077593 +n10040945 +n09623038 +n10560106 +n10289039 +n10422405 +n09774783 +n10042845 +n09831962 +n10726031 +n09923673 +n09610660 +n09626031 +n10401331 +n09621545 +n10362319 +n10665698 +n09906449 +n09939313 +n10439373 +n09607630 +n09631463 +n10451450 +n10541229 +n09793141 +n10633450 +n10530959 +n09629752 +n10560637 +n10431625 +n09619168 +n09763784 +n09636339 +n10235549 +n09845401 +n10513823 +n10610465 +n09951274 +n09816771 +n10401829 +n10307234 +n10505613 +n10148035 +n09874725 +n09944022 +n10015485 +n10728624 +n10308168 +n10200781 +n10480253 +n10376523 +n09903153 +n10748620 +n10581890 +n10045713 +n10165109 +n10694258 +n10509063 +n10559996 +n10366966 +n10305802 +n10421470 +n10164492 +n10477713 +n10020890 +n10679174 +n10632576 +n10189278 +n09894445 +n10504206 +n10559288 +n09917593 +n09833441 +n10384392 +n10060352 +n09840217 +n09777012 +n10309896 +n09905185 +n10686885 +n10209731 +n10093818 +n10754189 +n10411551 +n10577284 +n10285313 +n10333439 +n10624074 +n10287213 +n09871229 +n10078719 +n09843443 +n10173771 +n10192839 +n10419785 +n10406266 +n10288964 +n10804287 +n10665587 +n10153414 +n10406765 +n10611613 +n09805324 +n09824361 +n10316360 +n10707233 +n10696508 +n09858165 +n10175248 +n09979321 +n10692482 +n10396106 +n10427764 +n10385566 +n10439851 +n09820263 +n10533013 +n09854421 +n10304914 +n10575463 +n09915651 +n10453184 +n10101634 +n10701180 +n09835230 +n10746931 +n10542888 +n10604491 +n09764381 +n09929298 +n10019406 +n09785659 +n10618342 +n10782471 +n10701644 +n10105733 +n10638922 +n09842047 +n10315561 +n09835506 +n10153594 +n09830194 +n10263411 +n10157128 +n10498816 +n10689306 +n10604380 +n10634849 +n09923561 +n09764598 +n10086568 +n10007684 +n09841696 +n10321340 +n10092488 +n10386984 +n10387196 +n10205457 +n10578021 +n10098710 +n09836519 +n09836786 +n09836343 +n09877951 +n10300154 +n10095769 +n10435988 +n09930257 +n10387324 +n10098862 +n10642596 +n10331167 +n09946814 +n10299250 +n09896170 +n10415638 +n10091450 +n10069296 +n09989502 +n10226413 +n10493685 +n09765278 +n09930876 +n10340312 +n09990777 +n09834699 +n10737103 +n10649197 +n10701962 +n10415037 +n10151760 +n10229883 +n10732010 +n10603851 +n10599806 +n10369317 +n09903501 +n10755080 +n10098245 +n10382825 +n10536416 +n10036929 +n10624310 +n09842528 +n10085869 +n09991867 +n10078131 +n10627252 +n10682953 +n10237196 +n09789566 +n10182190 +n09899671 +n10150071 +n10091651 +n10806113 +n10249459 +n10317500 +n09822830 +n10448983 +n09862621 +n10540114 +n10009276 +n10333838 +n10730728 +n10721321 +n09659188 +n09650729 +n09652149 +n09659039 +n09729530 +n09641002 +n09725653 +n09846469 +n09750770 +n10486166 +n10169147 +n09684901 +n09683757 +n09682291 +n10364198 +n10518602 +n10341573 +n10672371 +n10332861 +n10112129 +n10602470 +n10727256 +n10508141 +n10652605 +n09881265 +n09933098 +n09812338 +n09920283 +n10078806 +n10339966 +n10667477 +n10566072 +n10469874 +n10624540 +n09809925 +n09846755 +n09873899 +n09779790 +n10034614 +n10449664 +n10034201 +n09951616 +n10037385 +n09846894 +n10282672 +n10053808 +n09815790 +n10137825 +n10605985 +n10604979 +n09861946 +n10763383 +n09841188 +n10644598 +n10548681 +n10791221 +n10583790 +n09873473 +n10763620 +n10548537 +n10120671 +n10241300 +n10318293 +n10176679 +n09932508 +n10186216 +n10134178 +n10079399 +n09821831 +n09934337 +n10324560 +n10063461 +n09886403 +n09760609 +n10260800 +n10655594 +n09938449 +n10183931 +n09972458 +n09813219 +n10049363 +n10372373 +n10076604 +n09835348 +n09974648 +n10433164 +n09859152 +n10727171 +n10308732 +n09833536 +n10582746 +n10393909 +n10013927 +n10225219 +n10202624 +n09800964 +n10465831 +n09787534 +n10174445 +n10441962 +n10132035 +n09896685 +n09934774 +n10279018 +n10793570 +n10155849 +n10087434 +n09964202 +n09811852 +n10348526 +n10317007 +n10058777 +n10360747 +n09941964 +n10347446 +n09770359 +n09941787 +n09942970 +n09809749 +n09770179 +n10208950 +n10580772 +n10093475 +n10645017 +n09943239 +n09943541 +n10263790 +n10283170 +n10259348 +n10092978 +n10296176 +n09893191 +n10123844 +n10259780 +n10259997 +n10510245 +n10622053 +n10058585 +n10690648 +n10523341 +n10739391 +n10476467 +n10512372 +n10802507 +n10753442 +n09733793 +n09738708 +n09641757 +n09738400 +n09727826 +n09686536 +n09724533 +n09744834 +n09743792 +n09744161 +n09742101 +n09689435 +n09734450 +n09644152 +n09750282 +n09673495 +n09718811 +n09718217 +n09712696 +n09718936 +n10711766 +n09694771 +n09719794 +n09714694 +n09675922 +n09676247 +n10774440 +n09720256 +n09725229 +n09731571 +n09691729 +n09693982 +n09712448 +n09697401 +n09696585 +n09722658 +n09724656 +n09723067 +n09694664 +n09712324 +n09689958 +n09695979 +n10327987 +n09688804 +n09730204 +n09711435 +n09713108 +n09731343 +n09717233 +n09695620 +n09728285 +n09707289 +n09701833 +n09700964 +n09750891 +n09715427 +n09708750 +n09705784 +n09734185 +n09752023 +n09635534 +n09696456 +n09732170 +n09730824 +n09719309 +n09734535 +n09736945 +n09720842 +n09692915 +n09751895 +n09724785 +n09747495 +n09734639 +n09749386 +n09705124 +n09731436 +n10303814 +n10450303 +n10722575 +n10054657 +n10631309 +n10249270 +n09913455 +n10162991 +n09807754 +n09505153 +n10209082 +n10323634 +n10104064 +n10001481 +n10242328 +n10159045 +n09932098 +n10253995 +n10005934 +n10578471 +n09770949 +n10004718 +n10570019 +n10289462 +n10069645 +n10187990 +n09916348 +n10727458 +n10320863 +n10572706 +n10572889 +n10038409 +n10756148 +n09927451 +n10243664 +n10502329 +n09988493 +n10373390 +n10470779 +n09928136 +n10750031 +n10081204 +n09857200 +n10013811 +n09894143 +n10313239 +n10082997 +n10677713 +n09787765 +n10485883 +n10275395 +n09913593 +n09772930 +n09633969 +n10195593 +n09756049 +n10607478 +n09855433 +n10017272 +n10630188 +n10522035 +n10521662 +n10380672 +n10210911 +n10382710 +n10164747 +n09782397 +n10524076 +n10467395 +n10467179 +n10698368 +n09792969 +n10525617 +n10675010 +n09889941 +n10557854 +n09618760 +n09899929 +n10116702 +n10258786 +n10508710 +n09873348 +n09870208 +n10793168 +n10098517 +n10314517 +n10629939 +n10477077 +n10261624 +n10082687 +n10262445 +n10167152 +n10098624 +n10674713 +n09838621 +n10047459 +n10091564 +n10740868 +n09872066 +n10070711 +n10628644 +n10421016 +n09915434 +n10588357 +n10529965 +n10334009 +n10339717 +n09818022 +n10412055 +n10335931 +n09945745 +n10432441 +n10607291 +n10583387 +n10718131 +n10542761 +n10147121 +n10738111 +n10159533 +n10223177 +n10185793 +n10553235 +n10293332 +n10178216 +n10563403 +n10488656 +n10619642 +n10276477 +n10620758 +n10450161 +n10043643 +n10043491 +n10313724 +n10084295 +n10787470 +n10333601 +n10131151 +n09871681 +n09981939 +n10055410 +n10243137 +n10377021 +n10368528 +n10025635 +n09874862 +n10613996 +n10472129 +n10598181 +n10129825 +n09847543 +n10173410 +n10780284 +n09889065 +n09832456 +n10780632 +n10117851 +n09827363 +n10247358 +n10282482 +n10092794 +n10375314 +n09981278 +n10082043 +n09972010 +n10237069 +n09792555 +n10236946 +n10568358 +n10207169 +n10236304 +n10734394 +n10373998 +n10595164 +n10357613 +n09823502 +n10146104 +n10602985 +n10145239 +n10267865 +n09854218 +n10399491 +n10102800 +n10102369 +n10406391 +n10300500 +n10080869 +n10332385 +n09988063 +n10375402 +n10145774 +n10143172 +n10145590 +n10345015 +n10142747 +n10142391 +n10146002 +n10267311 +n10141590 +n10092643 +n09918248 +n10671613 +n10141732 +n10145340 +n10145902 +n10145480 +n09827683 +n10135129 +n10465451 +n10353016 +n13001930 +n13040629 +n12969131 +n12985420 +n13052670 +n13037406 +n13077295 +n12987056 +n12979829 +n12975804 +n12974987 +n12985773 +n13044778 +n12985857 +n13035241 +n13043926 +n12982468 +n13035707 +n13044375 +n12969425 +n13060190 +n13054073 +n13040303 +n13028611 +n12997654 +n12983048 +n13062421 +n13054560 +n12963628 +n12980840 +n12991184 +n12989938 +n12992177 +n12988158 +n13029326 +n13029760 +n13011595 +n13049953 +n12998815 +n12997919 +n13052931 +n13050397 +n13012253 +n13001041 +n13005984 +n13000891 +n13007417 +n13019835 +n13013764 +n13006894 +n13002750 +n13017102 +n13232779 +n13009429 +n13013534 +n13003522 +n13001366 +n13009085 +n13022210 +n13002925 +n13006171 +n13003712 +n13001206 +n13004423 +n13001529 +n13003254 +n13003061 +n13032115 +n13032381 +n13033577 +n13055577 +n13055949 +n13055423 +n05430628 +n05450617 +n05449959 +n05451384 +n05453657 +n09369169 +n09454412 +n09403211 +n13086908 +n09416076 +n09251407 +n05218119 +n09444100 +n09438940 +n09257949 +n09189157 +n09475044 +n11691857 +n13102775 +n13087625 +n13022709 +n11675842 +n13152742 +n13125117 +n13129165 +n11690254 +n11669335 +n13134947 +n11676500 +n11675025 +n11674332 +n11669786 +n13131028 +n13132338 +n13132656 +n12301445 +n13133613 +n13141415 +n13137409 +n12642090 +n12267677 +n12658481 +n12144313 +n12158031 +n13135832 +n12620546 +n11636835 +n13139055 +n12144580 +n07929351 +n13136556 +n12768682 +n11689483 +n13136316 +n07770571 +n07737081 +n07774842 +n07774596 +n07775050 +n07772788 +n07771212 +n07772147 +n07772274 +n07774719 +n07737745 +n07772935 +n15086247 +n11879895 +n12576323 +n12532564 +n07814634 +n07775197 +n07770763 +n11748002 +n12172364 +n12515925 +n12560282 +n12578916 +n12560621 +n12544539 +n12024690 +n13154494 +n11690455 +n12927013 +n11953610 +n13128365 +n13133932 +n13163991 +n13134059 +n13131618 +n13130726 +n11678010 +n12136392 +n11979964 +n12088223 +n12462805 +n12433081 +n09218494 +n09381242 +n09460046 +n09451237 +n09450163 +n01904182 +n13155095 +n09432283 +n11705387 +n09438844 +n11692265 +n05237755 +n09416890 +n01956764 +n01904806 +n01904886 +n05586759 +n05581932 +n01904029 +n05238282 +n05254795 +n02469248 +n05256862 +n05258051 +n01899894 +n05261404 +n05259914 +n05261310 +n05260240 +n05262185 +n05261566 +n05262534 +n05262422 +n05263183 +n05263448 +n11524662 +n11448153 +n09247410 +n11508382 +n11524451 diff --git a/data/9k.names b/data/9k.names new file mode 100644 index 00000000..e81c80e7 --- /dev/null +++ b/data/9k.names @@ -0,0 +1,9418 @@ +thing +matter +object +atmospheric phenomenon +body part +body of water +head +hair +structure +vein +mouth +heel +watercourse +ocean +gas +solid +substance +food +tear gas +sky +ice +food +cheese +yogurt +produce +baked goods +cake mix +Emmenthal +Camembert +Brie +mozzarella +Stilton +double cream +edible fruit +vegetable +currant +custard apple +citrus +jackfruit +pomegranate +avocado +prickly pear +apple +carambola +fig +mangosteen +tangelo +plum +papaya +apricot +berry +elderberry +loquat +pear +litchi +peach +muscat +grape +banana +pitahaya +rambutan +kiwi +melon +breadfruit +pineapple +mango +date +papaw +durian +passion fruit +jujube +guava +dried fruit +cherry +quince +nectarine +cherimoya +soursop +lime +mandarin +kumquat +orange +lemon +citron +grapefruit +pomelo +clementine +tangerine +satsuma +sweet orange +bitter orange +navel orange +Valencia orange +crab apple +eating apple +Granny Smith +Delicious +McIntosh +Red Delicious +Golden Delicious +strawberry +mulberry +currant +lingonberry +blackberry +red currant +raspberry +cranberry +acerola +persimmon +blueberry +bilberry +muskmelon +watermelon +cantaloup +sour cherry +sweet cherry +bing cherry +mushroom +asparagus +plantain +pumpkin +cucumber +root vegetable +cruciferous vegetable +raw vegetable +solanaceous vegetable +artichoke +legume +leek +squash +greens +celery +cardoon +gumbo +pieplant +onion +fennel +taro +beet +yam +carrot +potato +baked potato +mashed potato +french fries +mustard +cabbage +kohlrabi +cauliflower +brussels sprouts +broccoli rabe +broccoli +radish +turnip +collards +bok choy +savoy cabbage +head cabbage +kale +pepper +tomato +eggplant +tomatillo +sweet pepper +hot pepper +bell pepper +pimento +green pepper +chili +tabasco +cayenne +jalapeno +cherry tomato +beefsteak tomato +bean +pea +chickpea +lentil +soy +common bean +black bean +kidney bean +fresh bean +green bean +shell bean +snap bean +haricot vert +string bean +fava bean +green soybean +green pea +snow pea +sugar snap pea +summer squash +winter squash +spaghetti squash +zucchini +yellow squash +butternut squash +acorn squash +chard +turnip greens +salad green +bean sprout +spinach +lamb's-quarter +cress +chicory +chicory escarole +radicchio +lettuce +leaf lettuce +crisphead lettuce +cos +green onion +shallot +purple onion +doughnut +bread +crouton +breadstick +soft pretzel +rye bread +dark bread +raisin bread +brown bread +cinnamon bread +quick bread +matzo +sour bread +bun +white bread +challah +loaf of bread +pretzel +English muffin +toast +nan +chapatti +garlic bread +Yorkshire pudding +banana bread +scone +Irish soda bread +biscuit +muffin +drop scone +cornbread +nut bread +buttermilk biscuit +hardtack +shortcake +corn muffin +popover +bran muffin +cornpone +hush puppy +johnnycake +hamburger bun +bagel +frankfurter bun +sweet roll +hard roll +brioche +crescent roll +honey bun +cinnamon roll +cross bun +Italian bread +baguet +French bread +meat loaf +French loaf +material +stucco +gravel +rock +leopard +soil +sand +loofa +paper +litter +toilet tissue +queen +comestible +foodstuff +fare +beverage +soul food +feed +nutriment +yolk +comfort food +egg +grain +carrot juice +soya milk +whole wheat flour +oatmeal +ingredient +dairy product +cocoa +concoction +Spam +juice +canned food +corn +rice +wild rice +barley +wheat +sweet corn +popcorn +white rice +paddy +flavorer +egg yolk +saffron +juniper berries +cayenne +sesame seed +sassafras +spice +condiment +sweetening +herb +paprika +garlic +nasturtium +mocha +cardamom +nutmeg +stick cinnamon +Chinese anise +clove +cinnamon +guacamole +chili sauce +olive +chutney +vinegar +dip +soy sauce +salsa +cranberry sauce +catsup +spread +green olive +sauce +wine vinegar +cider vinegar +hummus +miso +spaghetti sauce +chocolate sauce +Tabasco +hot sauce +veloute +pesto +dressing +bourguignon +hollandaise +carbonara +tomato sauce +green mayonnaise +mayonnaise +powdered sugar +honey +syrup +sorghum +grenadine +maple syrup +basil +lemon balm +sweet woodruff +clary sage +hyssop +comfrey +coriander +mint +chives +marjoram +borage +sage +tea +rosemary +parsley +bay leaf +thyme +tea bag +oolong +souchong +cream +milk +whipping cream +clotted cream +light cream +heavy cream +stuffing +batter +dough +filling +pastry +bread dough +puff paste +phyllo +chow +menu +dietary +diet +diet +dietary supplement +vegetarianism +vitamin pill +multivitamin +alcohol +fruit juice +fizz +near beer +cocoa +coffee +cider +tea +soft drink +fruit drink +ginger beer +drinking water +potion +smoothie +mixed drink +liquor +sake +wine +hooch +home brew +liqueur +hard cider +brew +neutral spirits +aperitif +highball +cocktail +spritzer +punch +pina colada +mimosa +julep +gin and tonic +Bloody Mary +martini +gimlet +gin and it +daiquiri +sidecar +Sazerac +margarita +cup +May wine +eggnog +fruit punch +vodka +firewater +aquavit +grog +schnapps +arrack +gin +rum +aqua vitae +tequila +bitters +geneva +brandy +ouzo +whiskey +eau de vie +Cognac +grappa +Armagnac +Calvados +Irish +bourbon +sour mash +Scotch +rye +corn whiskey +blended whiskey +blush wine +vintage +champagne +vin ordinaire +dessert wine +macon +sparkling wine +Cotes de Provence +varietal +Burgundy +fortified wine +Bordeaux +table wine +California wine +vermouth +red wine +Rhone wine +white wine +Montrachet +Beaujolais +Chablis +Madeira +sherry +malmsey +port +muscat +Saint Emilion +claret +dry vermouth +sweet vermouth +Medoc +Chianti +Pinot noir +Rioja +Merlot +Cabernet +zinfandel +Riesling +Sauvignon blanc +Muscadet +Yquem +Pinot blanc +Sauterne +Chenin blanc +Chardonnay +sack +Verdicchio +Canary wine +Pernod +Drambuie +sambuca +triple sec +absinth +maraschino +anisette +beer +lager +draft beer +ale +suds +Munich beer +Pilsner +light beer +malt +bock +Weissbier +porter +stout +bitter +pale ale +Guinness +Weizenbock +orange juice +cranberry juice +nectar +iced coffee +caffe latte +espresso +cappuccino +Irish coffee +chicory +cafe au lait +mocha +Turkish coffee +ice tea +cuppa +tonic +cola +orange soda +ginger ale +pop +root beer +Coca Cola +Pepsi +mineral water +bottled water +soda water +oil cake +bird feed +fodder +eatage +hay +alfalfa +broad bean +dainty +fast food +puree +finger food +dish +course +mother's milk +vitamin +kosher +meal +jello +gelatin +sweet +candied apple +confiture +candy +chewing gum +confectionery +maraschino +conserve +strawberry jam +apple butter +lemon curd +jam +jelly +peppermint +peanut brittle +chocolate kiss +nougat bar +candy bar +jelly bean +lollipop +candy cane +truffle +chocolate fudge +cough drop +sugar candy +Easter egg +kiss +gumdrop +candy corn +fondant +cotton candy +caramel +fudge +candy egg +chocolate egg +bubble gum +gum ball +poached egg +piece de resistance +side dish +stew +omelet +soup +sashimi +taco +French toast +cheese souffle +potpie +lamb curry +stuffed tomato +chow mein +croquette +gefilte fish +coq au vin +special +spaghetti and meatballs +eggs Benedict +schnitzel +buffalo wing +chicken casserole +rissole +paella +frittata +meatball +chili +porridge +tamale +stuffed tomato +couscous +deviled egg +beef Wellington +pasta +egg roll +enchilada +falafel +mushy peas +turnover +scrambled eggs +Spanish rice +teriyaki +barbecued spareribs +pilaf +kabob +tempura +samosa +fried egg +sandwich plate +chicken cacciatore +saute +fried rice +custard +sukiyaki +fish and chips +souffle +steak au poivre +pizza +fondue +biryani +stuffed peppers +mousse +shirred egg +Swedish meatball +jambalaya +Scotch egg +burrito +risotto +salad +boiled egg +curry +snack food +bouillabaisse +goulash +pottage +beef stew +hot pot +fish stew +hotchpotch +Irish stew +ratatouille +gazpacho +won ton +petite marmite +split-pea soup +consomme +chowder +potage +marmite +lentil soup +bisque +pea soup +pepper pot +chicken broth +chicken soup +broth +broth +gumbo +borsch +corn chowder +clam chowder +fish chowder +gruel +congee +macaroni and cheese +lasagna +cannelloni +spaghetti +creme caramel +creme brulee +pepperoni pizza +anchovy pizza +cheese pizza +Sicilian pizza +sausage pizza +chocolate fondue +cheese fondue +coleslaw +macaroni salad +tossed salad +salad nicoise +pasta salad +fruit salad +tabbouleh +green salad +chef's salad +hard-boiled egg +Easter egg +sandwich +corn chip +chip +bomber +cheeseburger +chicken sandwich +ham sandwich +Reuben +bacon-lettuce-tomato sandwich +chili dog +open-face sandwich +gyro +wrap +hamburger +club sandwich +hotdog +tortilla chip +nacho +entree +plate +dessert +appetizer +mousse +tiramisu +frozen dessert +pudding +pudding +trifle +flan +whip +dumpling +compote +chocolate mousse +pavlova +parfait +ice-cream cake +ice lolly +ice-cream sundae +ice-cream cone +ice cream +ice +banana split +frozen yogurt +frozen custard +vanilla ice cream +peach ice cream +chocolate ice cream +strawberry ice cream +plum pudding +chocolate pudding +shrimp cocktail +stuffed mushroom +cocktail +hors d'oeuvre +carrot stick +antipasto +water-soluble vitamin +fat-soluble vitamin +vitamin P +vitamin C +B-complex vitamin +vitamin B2 +inositol +vitamin B6 +choline +pantothenic acid +vitamin B12 +vitamin Bc +vitamin D +vitamin A1 +picnic +bite +supper +breakfast +refection +smorgasbord +buffet +brunch +continental breakfast +dinner +lunch +banquet +cookout +fish fry +barbecue +refreshment +nosh +land +location +land +fomite +part +geological formation +cobweb +whole +hail +swamp +cultivated land +region +region +pass +line +point +opening +bedside +soil horizon +extremity +boundary +nib +selvage +shoreline +benthos +resort area +geographical area +district +scrubland +bush +oilfield +field +tract +heronry +grassland +site +court +basketball court +fairground +plot +field +amusement park +veld +pasture +campsite +garbage heap +cemetery +flowerbed +garden +topiary +peach orchard +yard +grainfield +playground +garden +city +city district +eparchy +kasbah +waterfront +business district +col +defile +hemline +spoor +crest +topographic point +workplace +half-mast +intersection +bus stop +mecca +hole-in-the-wall +patisserie +bakery +farm +piggery +ranch +dairy +knothole +chasm +oxbow +floor +pinetum +plain +steppe +cigarette butt +pipefitting +handle +panhandle +stock +haft +ax handle +broomstick +pistol grip +arete +volcanic crater +spring +ice mass +natural depression +natural elevation +oceanfront +massif +cliff +shore +talus +ridge +range +lakefront +slope +cave +foreshore +beach +hot spring +geyser +icecap +iceberg +Alpine glacier +glacier +valley +lunar crater +landfill +sinkhole +basin +crater +bed +hole +arroyo +ravine +canyon +gorge +tidal basin +cirque +ocean floor +riverbed +streambed +burrow +pothole +tableland +hill +mountain +highland +ridge +promontory +anthill +butte +foothill +knoll +alp +ben +volcano +sandbar +dune +reef +bank +coral reef +atoll +sandbank +bluff +point +mull +crag +precipice +seashore +strand +lakeside +littoral +seaside +mountainside +descent +hillside +ski slope +escarpment +bank +downhill +ascent +brae +uphill +riverbank +waterside +cove +cavern +grotto +artifact +living thing +natural object +assembly +block +millstone +paving +creation +opening +plaything +surface +tramline +structure +instrumentality +padding +covering +fabric +bookmark +float +building material +decoration +way +strip +article +facility +excavation +commodity +sheet +fixture +blacktop +line +bullion +tessera +tile +anvil +representation +art +needlework +product +pieta +map +sketch +sonogram +photograph +waxwork +arthrogram +radiogram +photomicrograph +photostat +painting +triptych +nude +finger-painting +smocking +stitch +sewing stitch +knitting stitch +lockstitch +hemstitch +garter stitch +purl +book +work +jotter +newspaper +wicker +masterpiece +openwork +woodwork +lacquerware +cabinetwork +joinery +decolletage +gargoyle +aperture +hole +mouthpiece +outfall +plughole +manhole +keyhole +perforation +thumbhole +pogo stick +ball +pinata +teddy +jungle gym +bubble +hula-hoop +pinwheel +slide +sport kite +cockhorse +doll +foam +air bubble +spume +shaving foam +golliwog +kachina +horizontal surface +board +tabletop +side +platform +tarmacadam +floor +turntable +stage +dais +sumo ring +hurricane deck +flatbed +parquet +backgammon board +pegboard +facade +ceiling +body +floor +bridge +corner +conformation +superstructure +airdock +cross +house of cards +hull +gun enclosure +lookout +building complex +shelter +honeycomb +column +altar +arch +tower +transept +mound +fountain +obelisk +fan vaulting +arcade +loggia +coil +billboard +partition +masonry +skein +colonnade +obstruction +building +sail +projection +peristyle +door +stadium +drinking fountain +area +balcony +porch +dock +high altar +housing +supporting structure +balance +defensive structure +entablature +memorial +establishment +signboard +bodywork +fuselage +ground floor +mezzanine +loft +basement +footbridge +drawbridge +cantilever bridge +rope bridge +overpass +truss bridge +viaduct +steel arch bridge +covered bridge +gangplank +suspension bridge +trestle bridge +plant +college +winery +factory +distillery +oil refinery +refinery +rolling mill +foundry +steel mill +lumbermill +stamp mill +quartz battery +battery +harbor +Nissen hut +hovel +tent +hut +igloo +dugout +mountain tent +pup tent +pavilion +backpacking tent +fly tent +canvas tent +field tent +wall tent +circus tent +Gothic arch +round arch +pointed arch +triumphal arch +broken arch +Moorish arch +Roman arch +campanile +turret +clock tower +shot tower +church tower +minaret +pylon +silo +watchtower +trestle +pylon +steeple +fire tower +high-rise +supporting tower +control tower +bell tower +beacon +burial mound +snowbank +rampart +fraise +battlement +altarpiece +wall +gable +wainscoting +attic +pediment +bell gable +brickwork +stonework +barrier +obstacle +plug +lever +grate +safety rail +movable barrier +bannister +breakwater +grille +weir +railing +hurdle +starting gate +fence +dam +gate +door +lychgate +portcullis +turnstile +French window +car door +screen door +French door +double door +interior door +sliding door +revolving door +barn door +hatchback +storm door +wall +retaining wall +rail fence +chainlink fence +dry wall +hedge +worm fence +picket fence +stone wall +water jump +bunker +earplug +cork +tap +presbytery +hotel +tenement +abattoir +apartment building +aviary +hall +house +Roman building +rest house +outbuilding +funeral home +medical building +hotel-casino +library +casino +farm building +place of worship +restaurant +ministry +rotunda +observatory +office building +temple +signal box +government building +greenhouse +rink +planetarium +public house +bowling alley +house +ruin +architecture +skyscraper +gazebo +school +chapterhouse +theater +hall of residence +conservatory +center +resort hotel +resort +motel +dude ranch +Ritz +ski lodge +hostel +motor hotel +city hall +guildhall +lyceum +field house +oast house +courthouse +shed +garage +carport +outhouse +coach house +boathouse +woodshed +apiary +maternity hospital +dispensary +stable +chicken coop +cowbarn +barn +pantheon +church +temple +shrine +stupa +masjid +synagogue +mosque +chapel +kirk +abbey +cathedral +cathedral +minster +cafe +rotisserie +automat +brasserie +cafeteria +diner +capitol +embassy +town hall +chancellery +customhouse +Statehouse +courthouse +ice rink +ice hockey rink +alehouse +free house +solar house +bungalow +row house +cabin +duplex house +mansion +lodging house +gatehouse +log cabin +saltbox +country house +dollhouse +ranch house +boarding house +detached house +villa +chalet +residence +farmhouse +terraced house +brownstone +palace +stately home +manor +summer house +dacha +villa +chateau +manse +religious residence +glebe house +parsonage +palace +monastery +abbey +abbey +day school +conservatory +music school +opera +music hall +cinema +little theater +home theater +control center +settlement house +call center +cornice +cog +knob +bill +flange +brim +tine +eaves +tooth +pinhead +football stadium +hippodrome +dome +ballpark +bullring +amphitheater +patio +corner +baggage claim +hideaway +choir +breakfast area +quad +chancel +auditorium +court +dining area +room +assembly hall +enclosure +nave +aisle +storage space +goalmouth +food court +atrium +cloister +forecourt +toilet +sun parlor +engineering +surgery +rotunda +classroom +gallery +manor hall +cell +lounge +sauna +dressing room +billiard room +belfry +kitchen +library +storeroom +workroom +sewing room +anechoic chamber +dining room +recreation room +hospital room +reading room +booth +conference room +bedroom +clean room +living room +door +hall +reception room +boardroom +study +locker room +cocktail lounge +television room +compartment +court +poolroom +bathroom +control room +anteroom +water closet +men's room +washroom +public toilet +home room +lecture room +study hall +pantry +stockroom +vault +refectory +dining-hall +canteen +family room +rumpus room +emergency room +recovery room +operating room +telephone booth +voting booth +confessional +shower stall +master bedroom +motel room +guestroom +hotel room +dormitory +nursery +day nursery +great hall +concert hall +palace +exhibition hall +parlor +drawing room +press box +command module +cabin +pilothouse +cab +luggage compartment +cabinet +cockpit +stateroom +car +cable car +stall +drawing room +terrarium +cage +playpen +pen +vivarium +pound +lock +chicken yard +chamber +recess +birdcage +rabbit hutch +hutch +cow pen +rodeo +fold +sounding board +burial chamber +firing chamber +resonator +furnace +bomb shelter +hyperbaric chamber +repository +mausoleum +kiln +blast furnace +oast +gas oven +incinerator +mihrab +columbarium +fire +fireplace +apse +cellar +cupboard +stacks +gallery +amphitheater +organ loft +stoop +sun deck +front porch +veranda +deck +back porch +portico +marina +dry dock +block +dwelling +tennis camp +living quarters +mobile home +condominium +apartment +ward +cellblock +condominium +yurt +lodge +vacation home +hearth +fixer-upper +cliff dwelling +homestead +semi-detached house +wigwam +tepee +accommodation +first class +cabin class +bedsitting room +flatlet +chassis +support +framework +pedestal +buttress +flying buttress +abutment +ribbing +bustle +window frame +frame +gantry +honeycomb +truss +lattice +cornice +picture frame +window +climbing frame +trellis +airframe +grate +grape arbor +walker +casing +tambour +arbor +rack +mounting +sash +casement +oriel +bay window +stained-glass window +skylight +display window +rose window +porthole +transom +clerestory +dormer +dormer window +lancet window +fanlight +plate rack +barbecue +bicycle rack +luggage rack +dish rack +towel rack +passe-partout +pave +mount +stronghold +fortress +fortification +bastion +keep +kremlin +acropolis +alcazar +martello tower +fieldwork +bastion +escarpment +palisade +castle +cenotaph +megalith +Seven Wonders of the Ancient World +brass +national monument +pantheon +dolmen +menhir +place of business +institution +university +mercantile establishment +office +cabaret +health spa +plaza +country store +department store +shop +marketplace +boutique +salon +shoe shop +bookshop +package store +thriftshop +junk shop +toyshop +cleaners +bazaar +gift shop +florist +drugstore +garage +delicatessen +small stores +barbershop +stall +tobacco shop +newsstand +butcher shop +pizzeria +confectionery +convenience store +bazaar +agora +grocery store +open-air market +supermarket +hypermarket +greengrocery +souk +farmer's market +flea market +newsroom +box office +headquarters +correctional institution +orphanage +jail +penitentiary +prison +toiletry +weaponry +equipment +connection +implement +furnishing +device +ceramic +system +container +conveyance +medium +deodorant +bath oil +cream +lotion +shaving cream +hair spray +mousse +perfume +hairdressing +antiperspirant +powder +cosmetic +bath salts +hand cream +cold cream +sunscreen +lanolin +body lotion +toner +hand lotion +after-shave +potpourri +patchouli +perfumery +cologne +toilet water +pomade +brilliantine +toilet powder +talcum +depilatory +highlighter +makeup +face powder +lip-gloss +eyeshadow +mascara +lipstick +rouge +eyeliner +eyebrow pencil +armament +defense system +bomb +ammunition +naval weaponry +bazooka +artillery +launcher +cannon +field artillery +mortar +basilisk +hydrogen bomb +atom bomb +round +shotgun shell +recorder +sports equipment +photographic equipment +naval equipment +parasail +gear +satellite +game equipment +parachute +electronic equipment +apparatus +automation +material +baggage +tape recorder +cassette recorder +Dictaphone +videocassette recorder +baseball equipment +croquet mallet +clay pigeon +skate +wrestling mat +cricket equipment +basketball equipment +javelin +shuttlecock +golf equipment +spike +stick +boxing equipment +boxing glove +gymnastic apparatus +weight +baseball glove +batting cage +batting glove +base +batting helmet +baseball bat +home plate +first base +third base +second base +in-line skate +Rollerblade +roller skate +ice skate +hockey skate +speed skate +figure skate +cricket bat +wicket +golfcart +golf glove +tee +golf club +wood +iron +driver +spoon +wedge +midiron +putter +niblick +pitching wedge +sand wedge +hockey stick +polo mallet +horizontal bar +horse +uneven parallel bars +parallel bars +trampoline +balance beam +vaulting horse +pommel horse +dumbbell +barbell +enlarger +camera +clapperboard +film +light meter +box camera +flash camera +Polaroid camera +point-and-shoot camera +webcam +motion-picture camera +digital camera +portrait camera +reflex camera +X-ray film +reel +negative +regalia +kit +rig +fishing gear +stable gear +rigging +crown +crown jewels +sewing kit +first-aid kit +carpenter's kit +layette +drill rig +drilling platform +harness +snaffle +headgear +saddle blanket +halter +bridle +sputnik +space station +backboard +ball +puzzle +pool table +bowling pin +man +chip +roulette wheel +goal +volleyball net +pinball machine +soccer ball +pool ball +bowling ball +softball +field hockey ball +punching bag +billiard ball +croquet ball +cricket ball +tennis ball +golf ball +rugby ball +cue ball +medicine ball +basketball +eight ball +ping-pong ball +handball +baseball +racquetball +bocce ball +volleyball +jigsaw puzzle +crossword puzzle +chessman +white +pawn +basket +net +electronic fetal monitor +monitor +monitor +television monitor +telephone +oscilloscope +peripheral +booster +cassette player +CD player +receiver +audio system +lens +playback +television equipment +circuitry +cassette deck +central processing unit +mixer +scanner +tape player +detector +modem +equalizer +tape deck +amplifier +cellular telephone +speakerphone +desk phone +pay-phone +handset +dial telephone +radiotelephone +television receiver +radio receiver +satellite receiver +heterodyne receiver +clock radio +reproducer +hi-fi +stereo +iPod +Walkman +video iPod +ghetto blaster +camcorder +television camera +pendulum +purifier +sequencer +reformer +duplicator +heat pump +semaphore +tomograph +ultracentrifuge +generator +incubator +burner +Foucault pendulum +clock pendulum +metronome +Photostat +photocopier +Xerox +facsimile +mimeograph +positron emission tomography scanner +computerized axial tomography scanner +gas burner +blowtorch +bunsen burner +gas ring +packaging +blister pack +roofing +temporary hookup +slip ring +telephone line +ligament +junction +hot line +digital subscriber line +land line +binder +wire +chain +concertina +barbed wire +paper chain +anchor chain +fob +bicycle chain +tire chain +chatelaine +joint +contact +dovetail +welt +hinge +scarf joint +weld +seam +mortise joint +butt hinge +strap hinge +distributor point +tread +wiper +bar +tool +utensil +rubber eraser +needle +eraser +stick +brush +hook +sharpener +sports implement +leather strip +swatter +fire iron +oar +stick +cleaning implement +rod +writing implement +shovel +split rail +fret +bolt +rotor +towel rail +lever +track +handlebar +crowbar +stick +key +tappet +pedal +rocker arm +gun trigger +space bar +backspace key +shift key +telegraph key +accelerator +sustaining pedal +hand tool +jack +pestle +garden tool +plow +comb +drill +cutting implement +tamp +garden rake +rake +stamp +locking pliers +pestle +plunger +pincer +pliers +soldering iron +spade +hammer +pipe cutter +wrench +screwdriver +trowel +saw +opener +scraper +shovel +brick trowel +spatula +carpenter's hammer +gavel +mallet +maul +torque wrench +pipe wrench +adjustable wrench +open-end wrench +Allen wrench +box wrench +hacksaw +folding saw +handsaw +pruner +pruning saw +corkscrew +bottle opener +can opener +hedge trimmer +lawn mower +power mower +riding mower +power drill +electric drill +cutter +twist bit +bit +blade +knife blade +bolt cutter +cigar cutter +edge tool +scissors +knife +ax +razor +wire cutter +chisel +plane +shears +snips +pruning shears +secateurs +carving knife +Bowie knife +pocketknife +cleaver +hunting knife +case knife +parer +letter opener +switchblade +penknife +battle-ax +hatchet +shaver +straight razor +safety razor +cold chisel +wood chisel +jointer +smooth plane +spokeshave +kitchen utensil +ceramic ware +funnel +rolling pin +reamer +masher +kitchenware +squeezer +mixer +cookie cutter +cooking utensil +grater +mincer +eggbeater +whisk +blender +pan +Crock Pot +chafing dish +spatula +griddle +enamelware +steamer +cookie sheet +cooker +turner +omelet pan +stewing pan +frying pan +roaster +wok +saucepan +graniteware +cloisonne +porcelain +earthenware +stoneware +pottery +Spode +china +bone china +majolica +faience +knitting needle +crochet needle +walking stick +matchstick +club +fiddlestick +spindle +stob +staff +drumstick +mallet +cane +sword cane +bat +table-tennis racquet +truncheon +alpenstock +flagpole +crutch +electric toothbrush +toothbrush +sable +scrub brush +hairbrush +bristle brush +shaving brush +pencil sharpener +steel +cue +racket +squash racket +tennis racket +badminton racket +thong +strap +cheekpiece +rein +noseband +leading rein +scull +paddle +besom +scouring pad +dustmop +squeegee +broom +swab +rotating shaft +wand +shaft +piston rod +kickstand +axle +pole +fishing rod +connecting rod +tie rod +driveshaft +crankshaft +transmission shaft +spindle +camshaft +boom +stilt +ski pole +clothes tree +caber +spar +mast +mast +bowsprit +yard +mizzenmast +royal mast +mainmast +foremast +fly rod +spinning rod +pencil +pen +highlighter +chalk +crayon +lead pencil +ballpoint +Sharpie +quill +fountain pen +felt-tip pen +furniture +office furniture +dining-room furniture +wardrobe +bedroom furniture +table +table +wall unit +lamp +dining-room table +washstand +buffet +cabinet +baby bed +bedstead +lawn furniture +credenza +bookcase +entertainment center +etagere +seat +sectional +chest of drawers +file +Rolodex +card index +vertical file +clothes closet +armoire +bed +berth +platform bed +hospital bed +bunk +trundle bed +four-poster +couch +bunk bed +twin bed +sleigh bed +single bed +hammock +Murphy bed +double bed +gaming table +gueridon +table-tennis table +counter +altar +breakfast table +stand +conference table +pedestal table +kitchen table +operating table +tea table +lectern +worktable +gateleg table +dressing table +desk +drop-leaf table +coffee table +trestle table +console table +checkout +bar +meat counter +reception desk +salad bar +snack bar +drafting table +lab bench +writing desk +secretary +davenport +dining table +dinner table +refectory table +floor lamp +table lamp +reading lamp +dresser +china cabinet +medicine chest +bassinet +crib +carrycot +cradle +chair +toilet seat +stool +sofa +ottoman +bench +lawn chair +chaise longue +rocking chair +swivel chair +throne +straight chair +ladder-back +highchair +armchair +Windsor chair +folding chair +wheelchair +motorized wheelchair +barber chair +easy chair +recliner +Morris chair +wing chair +deck chair +camp chair +music stool +taboret +footstool +settee +daybed +convertible +love seat +chesterfield +studio couch +park bench +flat bench +pew +settle +window seat +chiffonier +highboy +bird feeder +heater +lighter +signal +converter +crusher +drive +knocker +peeler +musical instrument +shoehorn +shock absorber +machine +conductor +bait +stabilizer +filter +mechanism +acoustic device +trap +charger +airfoil +router +pick +energizer +fan +hydrofoil +dental appliance +adapter +toy +support +optical device +straightener +tongs +phonograph needle +instrument +comb +remote control +exercise device +comforter +washboard +shredder +water ski +blower +ventilator +breathing device +applicator +skeleton key +guitar pick +restraint +keyboard +electrical device +appliance +fire extinguisher +corrective +reflector +alarm +electronic device +snowshoe +holding device +memory device +key +noisemaker +source of illumination +indicator +detector +breathalyzer +imprint +afterburner +horn +elastic device +ski +lifting device +solar heater +electric heater +radiator +gas heater +convector +space heater +stove +cigar lighter +match +cairn +sign +street sign +traffic light +electrical converter +catalytic converter +inverter +synchronous converter +external drive +CD-ROM drive +internal drive +stringed instrument +electronic instrument +keyboard instrument +wind instrument +bass +percussion instrument +dulcimer +chordophone +banjo +zither +samisen +guitar +bowed stringed instrument +sitar +lute +mandola +mandolin +harp +acoustic guitar +Hawaiian guitar +uke +electric guitar +viol +violin +cello +viola +viola da gamba +Stradavarius +theremin +electric organ +synthesizer +piano +clavier +organ +accordion +grand piano +upright +spinet +mechanical piano +baby grand +concert grand +harpsichord +spinet +ocarina +woodwind +brass +organ pipe +free-reed instrument +whistle +pipe +kazoo +flute +beating-reed instrument +double-reed instrument +single-reed instrument +bassoon +oboe +clarinet +sax +baritone +bugle +flugelhorn +French horn +trombone +cornet +harmonium +harmonica +concertina +chanter +panpipe +bagpipe +fipple flute +pennywhistle +drone +bass fiddle +bass horn +bass guitar +euphonium +handbell +bones +gong +vibraphone +steel drum +marimba +glockenspiel +chime +kettle +maraca +drum +cymbal +bongo +bass drum +tambourine +snare drum +tenor drum +slot machine +power shovel +press +backhoe +printer +machine tool +motor +snow thrower +cash machine +farm machine +computer +Zamboni +mill +staple gun +power tool +concrete mixer +stapler +slicer +textile machine +record player +calculator +vending machine +slot +automat +garlic press +bench press +hydraulic press +punch press +character printer +impact printer +printer +drum printer +line printer +laser printer +Linotype +thermal printer +portable +typewriter +bar printer +wire matrix printer +dot matrix printer +bubble jet printer +ink-jet printer +shaper +drill press +grinder +lathe +miller +engine +electric motor +heat engine +jet engine +automobile engine +aircraft engine +generator +steam engine +internal-combustion engine +wind turbine +gasoline engine +diesel +outboard motor +radial engine +rocket +fanjet +booster +space rocket +alternator +windmill +starter +kick starter +cultivator +haymaker +combine +thresher +harvester +disk harrow +harrow +slide rule +web site +home computer +server +digital computer +supercomputer +workstation +personal computer +portable computer +desktop computer +notebook +planner +laptop +hand-held computer +pepper mill +water mill +meat grinder +coffee mill +treadmill +windmill +electric hammer +power saw +buffer +circular saw +chain saw +table saw +saber saw +bandsaw +spinning wheel +loom +jukebox +gramophone +abacus +adding machine +hand calculator +semiconductor device +wire +cord +heat sink +cable +microprocessor +transistor +light-emitting diode +chip +filament +jumper cable +telephone wire +patchcord +telephone cord +power cord +extension cord +ethernet cable +electrical cable +printer cable +power line +fisherman's lure +fly +dry fly +wet fly +streamer fly +outrigger +vane +strainer +air filter +oil filter +sieve +tea-strainer +colander +fusee drive +android +radiator +mechanical device +rotating mechanism +rotor head +carriage +control +power steering +automaton +action +cooling system +gear +tape drive +film advance +sprinkler +propeller +anchor +golf-club head +weathervane +machine +seeder +pump +gearshift +ride +bumper +hook +ski binding +coupling +record changer +swing +windshield wiper +winder +winder +diaphragm +shutter +escapement +broadcaster +curler +splint +compressor +air compressor +carburetor +dildo +cartridge holder +trapeze +gearing +stator +airplane propeller +screw +pulley +wheel +idle pulley +lever +inclined plane +millwheel +waterwheel +roller +bicycle wheel +caster +grinding wheel +rowel +fifth wheel +wagon wheel +waterwheel +car wheel +sprocket +pinwheel +potter's wheel +gear +driving wheel +paddlewheel +roulette +spur gear +bevel gear +pinion +ramp +ax head +screw +grease-gun +gas pump +bicycle pump +sump pump +hand pump +centrifugal pump +Ferris wheel +roller coaster +carousel +universal joint +clutch +freewheel +disk clutch +bobbin +reel +shuttle +blade +gyroscope +circle +rotor +paddle +impeller +fan blade +disk +puck +brake disk +token +Frisbee +planchet +tail rotor +main rotor +valve +steering wheel +governor +joystick +regulator +switch +ball valve +butterfly valve +timer +flywheel +faucet +thermostat +aperture +mixing faucet +stopcock +toggle switch +push button +dial +horn button +mouse button +doorbell +bell push +flintlock +movement +gunlock +cooling tower +evaporative cooler +air conditioner +gearset +four-wheel drive +whistle +silencer +megaphone +hearing aid +bell +cowbell +church bell +dinner bell +spider web +mousetrap +lobster pot +web +net +landing net +fishnet +vertical stabilizer +spoiler +spoiler +rotor blade +flap +rudder +horizontal stabilizer +wing +exhaust fan +electric fan +brace +denture +backboard +stirrup +pier +pier +back +shelf +landing gear +baluster +spoke +base +step +brace +pillow block +bearing +rocker +coat hanger +harp +rest +bracket +tailstock +bookend +structural member +headstock +seat +thrust bearing +hanger +rack +harness +cantle +ladder-back +bookshelf +mantel +neck brace +knee brace +ankle brace +back brace +arm +headrest +chin rest +armrest +sconce +corbel +shelf bracket +sill +riser +upright +brace +tread +beam +windowsill +doorsill +stile +jamb +column +post +support column +caryatid +goalpost +newel post +bollard +lamppost +telephone pole +maypole +timber +rundle +tie +rafter +girder +timber +floor joist +joist +car seat +pillion +plane seat +saddle +chair +bicycle seat +bucket seat +backseat +stock saddle +English saddle +tripod +spice rack +magazine rack +music stand +camera tripod +easel +autofocus +projector +finder +laser +lens +objective +condenser +camera lens +anastigmat +contact +sunglass +eyepiece +field lens +Fresnel lens +portrait lens +closeup lens +telephoto lens +wide-angle lens +plotter +scientific instrument +measuring instrument +weapon +guillotine +drafting instrument +analyzer +navigational instrument +optical instrument +medical instrument +instrument of punishment +catapult +extractor +theodolite +riding crop +tachymeter +collider +microtome +accelerator +stroboscope +magnifier +console +telescope +microscope +astronomical telescope +equatorial +optical telescope +radio telescope +refracting telescope +field glass +reflecting telescope +Cassegrainian telescope +Newtonian telescope +Schmidt telescope +Maksutov telescope +electron microscope +field-emission microscope +light microscope +binocular microscope +hand glass +operating microscope +compound microscope +loupe +oximeter +dropper +refractometer +rangefinder +barometer +pedometer +thermometer +astrolabe +measuring stick +gauge +timepiece +aneroid barometer +caliper +potentiometer +tachometer +scale +tape +meter +hygrometer +sextant +rule +altazimuth +pyrometer +meat thermometer +water gauge +vacuum gauge +anemometer +gasoline gauge +pressure gauge +manometer +sphygmomanometer +atomic clock +clock +watch +sundial +timer +hourglass +grandfather clock +digital clock +alarm clock +wall clock +analog clock +pendulum clock +cuckoo clock +digital watch +analog watch +pocket watch +wristwatch +stopwatch +parking meter +chronograph +vernier caliper +micrometer +balance +analytical balance +electronic balance +electric meter +odometer +ammeter +speedometer +ohmmeter +water meter +voltmeter +magnetometer +tomahawk +gun +bow +bow and arrow +brass knucks +knife +sword +stun gun +projectile +antiaircraft +firearm +set gun +air gun +gas gun +paintball gun +cannon +autoloader +pistol +twenty-two +Mauser +muzzle loader +rifle +repeating firearm +semiautomatic firearm +automatic firearm +Garand rifle +Luger +semiautomatic pistol +automatic rifle +assault rifle +automatic pistol +machine gun +submachine gun +burp gun +Uzi +Kalashnikov +Tommy gun +Colt +derringer +revolver +gat +flintlock +musket +sniper rifle +Winchester +carbine +crossbow +longbow +khukuri +bayonet +machete +dagger +rapier +fencing sword +broadsword +cavalry sword +saber +epee +foil +bullet +cannonball +compass +protractor +artificial horizon +depth finder +magnetic compass +compass +binoculars +spectacles +projector +telescopic sight +goggles +sunglasses +slide projector +front projector +movie projector +overhead projector +hypodermic syringe +cardiograph +syringe +stethoscope +laryngoscope +otoscope +surgical instrument +retractor +hemostat +pillory +rattan +exercise bike +treadmill +respirator +snorkel +oxygen mask +aqualung +paintbrush +spray gun +brake +handcuff +fastener +seat belt +leash +safety belt +brake system +muzzle +chain +bolt +buckle +knot +cleat +clothespin +catch +pin +dowel +screw +slide fastener +button +seal +paper fastener +lock +thumbtack +locker +clasp +clip +carabiner +nail +toggle +nut and bolt +bowline +bow +latch +hasp +rivet +hairpin +skewer +hatpin +brochette +bobby pin +barrette +safety pin +shirt button +coat button +washer +gasket +head gasket +O ring +padlock +sash fastener +latch +combination lock +doorlock +paper clip +bulldog clip +hair slide +hydraulic brake +disk brake +drum brake +typewriter keyboard +QWERTY keyboard +computer keyboard +piano keyboard +circuit +Segway +jack +control panel +telephone jack +circuit breaker +plug +electrolytic +dashboard +transducer +solar cell +antenna +capacitor +spark plug +relay +surge suppressor +solar array +battery +Tesla coil +closed circuit +wiring +computer circuit +integrated circuit +module +printed circuit +interface +CPU board +circuit board +mosaic +electro-acoustic transducer +earphone +microphone +loudspeaker +telephone receiver +headset +condenser microphone +cardioid microphone +tweeter +bullhorn +tannoy +woofer +subwoofer +omnidirectional antenna +directional antenna +radio antenna +television antenna +dish +scanner +yagi +voltaic battery +flashlight battery +lead-acid battery +pack +prosthesis +solar dish +mirror +hand glass +car mirror +rearview mirror +outside mirror +burglar alarm +automobile horn +shofar +fire alarm +readout +scanner +tube +display +personal digital assistant +dongle +trackball +mouse +answering machine +hearing aid +beeper +triode +pentode +computer monitor +monitor +screen +digital display +liquid crystal display +flat panel display +window +dialog box +caller ID +computer screen +background +C-clamp +chuck +collet +holder +vise +candlestick +cigarette holder +candelabrum +menorah +Menorah +cache +optical disk +magnetic disk +memory +magnetic tape +recording +auxiliary storage +compact disk +videodisk +CD-ROM +CD-R +audio CD +hard disc +diskette +flash memory +random-access memory +videotape +cassette tape +tape +phonograph record +LP +seventy-eight +lamp +light +flash +lantern +candle +neon lamp +vigil light +taillight +gas lamp +oil lamp +hurricane lamp +fluorescent lamp +streetlight +spotlight +electric lamp +jack-o'-lantern +Chinese lantern +flashlight +light bulb +penlight +headlight +room light +strip lighting +fairy light +sconce +searchlight +night-light +blinker +torch +flood +fuel gauge +gnomon +dial +vernier scale +pointer +light pen +hand +sweep hand +minute hand +second hand +hour hand +spring +rubber band +coil spring +box spring +hoist +winch +elevator +crane +wheel and axle +derrick +maze +communication system +network +Global Positioning System +resonator +exhaust +mechanical system +computer system +scaffolding +reticle +walkie-talkie +radio +telecommunication system +telephone system +intercommunication system +interphone +television +satellite television +surveillance system +color television +local area network +superhighway +ethernet +wireless local area network +production line +linkage +suspension +fuel injection +planter +trophy case +wastepaper basket +dish +bread-bin +dispenser +pot +bunker +reliquary +cup +bag +cassette +Dumpster +bag +measuring cup +glass +paintball +measure +envelope +shaker +piggy bank +basket +sewing basket +savings bank +powder horn +can +wheeled vehicle +workbasket +bin +canister +mold +cargo container +videocassette +case +case +vessel +drawer +receptacle +package +watering can +box +cocotte +Petri dish +gravy boat +serving dish +tureen +sugar bowl +bowl +casserole +ramekin +butter dish +salad bowl +mixing bowl +porringer +cereal bowl +soup bowl +punch bowl +roll-on +aerosol +soap dispenser +atomizer +inhaler +demitasse +beaker +kylix +coffee cup +chalice +teacup +Dixie cup +evening bag +shoulder bag +clutch bag +reticule +backpack +sachet +beanbag +sandbag +carryall +pannier +duffel bag +book bag +tool bag +mailbag +purse +drawstring bag +envelope +saddlebag +sack +pouch +shopping bag +toilet bag +gamebag +kitbag +plastic bag +golf bag +sleeping bag +gunnysack +grocery bag +sporran +pocket +waist pack +fanny pack +hip pocket +patch pocket +flute +tumbler +water glass +bumper +liqueur glass +snifter +shot glass +beer glass +rummer +goblet +wineglass +cocktail shaker +saltshaker +pepper shaker +pannier +clothes hamper +hamper +breadbasket +shopping basket +wicker basket +milk can +beer can +soda can +pedicab +camper trailer +rolling stock +motor scooter +self-propelled vehicle +unicycle +wagon +bassinet +handcart +baby buggy +bicycle +horse-drawn vehicle +trailer +car +tricycle +armored vehicle +recreational vehicle +tracked vehicle +snowmobile +bulldozer +locomotive +streetcar +motor vehicle +tractor +forklift +armored personnel carrier +armored car +dune buggy +camper +van +shunter +diesel locomotive +electric locomotive +tank engine +traction engine +steam locomotive +diesel-electric locomotive +diesel-hydraulic locomotive +hearse +truck +amphibian +four-wheel drive +motorcycle +go-kart +car +snowplow +fire engine +van +trailer truck +transporter +garbage truck +ladder truck +tow truck +dump truck +tractor +pickup +delivery truck +moving van +passenger van +police van +bookmobile +trail bike +moped +beach wagon +loaner +Model T +electric +minivan +convertible +compact +cab +shooting brake +racer +hatchback +roadster +berlin +sport utility +sedan +jeep +limousine +cruiser +ambulance +used-car +stock car +subcompact +pace car +hot rod +sports car +coupe +covered wagon +cart +horse cart +dumpcart +jinrikisha +pony cart +oxcart +tea cart +laundry cart +serving cart +barrow +shopping cart +hand truck +bicycle-built-for-two +safety bicycle +push-bike +mountain bike +carriage +gharry +buggy +stagecoach +four-wheeler +baggage car +freight car +passenger car +cabin car +boxcar +tank car +nonsmoker +Pullman +dining car +smoker +recycling bin +ashcan +litterbin +sandbox +pig bed +briefcase +compact +dispatch case +kit +wallet +cardcase +portfolio +ditty bag +cigarette case +shoe +gun case +attache case +locket +writing desk +watch case +baggage +glasses case +hand luggage +satchel +bag +trunk +hatbox +garment bag +weekender +carpetbag +portmanteau +overnighter +valise +boiler +flagon +bowl +ladle +bottle +bottle +pot +pitcher +bathtub +mortar +bucket +drinking vessel +cream pitcher +wine bucket +pressure cooker +tub +inkwell +tin +basin +monstrance +autoclave +churn +barrel +tank +jar +censer +toilet bowl +fishbowl +scoop +soup ladle +smelling bottle +pop bottle +water bottle +jug +catsup bottle +gourd +pill bottle +carboy +flask +beer bottle +ink bottle +demijohn +whiskey bottle +cruet +wine bottle +carafe +phial +whiskey jug +water jug +hipflask +Erlenmeyer flask +thermos +canteen +vacuum flask +magnum +jeroboam +saucepot +teapot +Dutch oven +urn +stockpot +kettle +caldron +percolator +teakettle +coffeepot +coffee urn +samovar +tea urn +sitz bath +hot tub +footbath +mug +loving cup +tankard +coffee mug +toby +beer mug +bidet +birdbath +washbasin +baptismal font +beer barrel +wine cask +keg +gas tank +water heater +septic tank +aquarium +reservoir +water tower +rain barrel +canopic jar +amphora +cookie jar +beaker +urn +Mason jar +vase +crock +jampot +plate +tray +cat box +dustpan +chamberpot +salver +garbage +in-basket +hot-water bottle +ossuary +socket +ashtray +packet +bundle +deck +bale +hay bale +pack +ballot box +carton +coffin +shoebox +snuffbox +pencil box +crate +bandbox +window box +chest +strongbox +cereal box +mailbox +casket +bier +packing box +toolbox +toy box +coffer +hope chest +treasure chest +cedar chest +cash register +safe-deposit +cashbox +safe +tramway +chairlift +sidecar +public transport +semitrailer +horsebox +vehicle +ski tow +roll-on roll-off +trailer +shipping +litter +express +shuttle bus +train +bus +local +freight liner +passenger train +subway train +mail train +freight train +commuter +bullet train +trolleybus +minibus +school bus +steamroller +bumper car +rocket +military vehicle +missile +craft +sled +half track +tank +panzer +personnel carrier +Humvee +aircraft +vessel +spacecraft +hovercraft +heavier-than-air craft +stealth aircraft +lighter-than-air craft +hang glider +glider +helicopter +warplane +airplane +autogiro +bomber +amphibian +propeller plane +airliner +biplane +floatplane +jet +fighter +stealth bomber +seaplane +airbus +widebody aircraft +jumbojet +jetliner +stealth fighter +interceptor +airship +blimp +balloon +hot-air balloon +boat +trawler +yacht +ship +sailing vessel +bareboat +lifeboat +police boat +gondola +sea boat +barge +river boat +tugboat +punt +pilot boat +small boat +ferry +tender +canal boat +fireboat +motorboat +dredger +pontoon +houseboat +skiff +canoe +dinghy +racing boat +coracle +yawl +gig +jolly boat +rowing boat +kayak +outrigger canoe +dugout canoe +racing gig +racing skiff +speedboat +outboard motorboat +cabin cruiser +hydrofoil +shipwreck +wreck +passenger ship +pirate +lightship +hospital ship +steamer +cargo ship +sister ship +warship +liner +luxury liner +cargo liner +cruise ship +paddle steamer +sternwheeler +bottom +container ship +banana boat +oil tanker +submarine +guided missile cruiser +frigate +battleship +guided missile frigate +aircraft carrier +man-of-war +destroyer +attack submarine +nautilus +yawl +clipper +felucca +sloop +ketch +dhow +sailboat +bark +schooner +windjammer +trimaran +catamaran +catboat +space shuttle +space capsule +dogsled +bobsled +bobsled +stretcher +covered couch +telecommunication +vehicle +print media +broadcasting +telephone +radiotelephone +television +reception +radio +cable television +high-definition television +three-way calling +call +voice mail +press +journalism +magazine +newspaper +pulp +slick +comic book +news magazine +tabloid +daily +gazette +Fleet Street +yellow journalism +pillow +pad +sanitary napkin +beer mat +futon +carpet pad +range hood +screen +top +footwear +protective covering +cloak +wrapping +upholstery +cloth covering +mask +finger +floor cover +coating +canopy +flap +domino +folder +planking +earmuff +camouflage +shoji +cap +manhole cover +lid +radiator cap +bottlecap +nipple +clog +shoe +arctic +boot +flats +slipper +overshoe +sabot +slingback +chukka +saddle oxford +spectator pump +brogan +wing tip +walker +blucher +anklet +cleats +gaiter +Loafer +running shoe +oxford +bowling shoe +plimsoll +pump +sandal +chopine +pusher +talaria +flip-flop +espadrille +jodhpur +buskin +ski boot +hip boot +riding boot +rubber boot +Hessian boot +waders +cowboy boot +mule +bootee +cold frame +cloche +washboard +toecap +mulch +shield +bracer +screen +sheathing +bell jar +shade +shelter +splashboard +testudo +roof +faceplate +hood +sheath +cap +mask +facing +crystal +calash +armor +binder +binding +housing +blind +lining +plate +horseshoe +armor plate +breastplate +helmet +cannon +knee piece +pickelhaube +sallet +window screen +fire screen +windshield +mosquito net +lampshade +parasol +lean-to +bell cote +sentry box +birdhouse +canopy +kennel +awning +umbrella +gamp +gable roof +sunroof +mansard +dome +hip roof +tile roof +housetop +vault +slate roof +gambrel +thatch +cupola +geodesic dome +onion dome +barrel vault +ribbed vault +holster +scabbard +shoulder holster +hubcap +thimble +distributor cap +lens cap +gasmask +face mask +ski mask +catcher's mask +body armor +shield +chain mail +bulletproof vest +corselet +cuirass +cabinet +radome +boot +window blind +jalousie +curtain +shutter +Venetian blind +window shade +roller blind +theater curtain +shower curtain +bushing +brake lining +gift wrapping +envelope +cellophane +book jacket +jacket +plastic wrap +shoulder +pant leg +leg +back +cosy +bandage +bosom +slipcover +bedclothes +sleeve +blindfold +eyepatch +skirt +seat +Band Aid +swathe +cast +elastic bandage +quilt +afghan +blanket +bedspread +mattress cover +patchwork +eiderdown +crazy quilt +coverlet +quilted bedspread +raglan sleeve +long sleeve +rug +doormat +mat +scatter rug +shag rug +prayer rug +broadloom +stair-carpet +red carpet +Brussels carpet +fixative +gold plate +verdigris +paint +nail polish +gilt +couch +enamel +veneer +finger paint +enamel +encaustic +oil paint +water-base paint +latex paint +whitewash +earflap +pocket flap +lapel +tongue +revers +tent-fly +file folder +matchbook +plush +muslin +tarpaulin +velvet +batik +khaki +belting +sacking +diaper +voile +duffel +chenille +cotton flannel +toweling +crinoline +panting +chintz +felt +cotton +velveteen +satin +knit +sateen +print +flannel +webbing +gabardine +camouflage +worsted +cashmere +tartan +mohair +brocade +velour +shirttail +boucle +madras +net +paisley +yoke +percale +piece of cloth +moquette +terry +rayon +acetate rayon +cord +permanent press +chiffon +burlap +ticking +basket weave +lace +sheeting +georgette +poplin +denim +flannelette +shantung +camel's hair +nylon +drapery +gauze +organza +foulard +gingham +wool +suede cloth +taffeta +leatherette +tweed +organdy +canopy +etamine +damask +oilcloth +tapestry +broadcloth +pique +homespun +tricot +double knit +jersey +gauze +tulle +chicken wire +handkerchief +groundsheet +dustcloth +dishrag +towel +bandanna +gusset +bib +sail +patch +hand towel +paper towel +dishtowel +fore-and-aft sail +foresail +spinnaker +headsail +topsail +mainsail +balloon sail +jib +mizzen +gaff topsail +lugsail +staysail +lateen +flash +shoulder patch +narrow wale +Bedford cord +macrame +pillow lace +raft +life preserver +life buoy +Mae West +life jacket +stone +brick +lumber +bricks and mortar +tile +concrete +quoin +millstone +stele +hone +grindstone +curbstone +gravestone +firebrick +mud brick +clinker +adobe +strip +chipboard +slat +fingerboard +toothpick +hip tile +pantile +cornice +embellishment +graffito +epergne +necklet +marquetry +brass +garnish +arabesque +design +adornment +frieze +lambrequin +tattoo +mihrab +emblem +swastika +herringbone +spot +flag +banner +totem pole +crucifix +fleur-de-lis +macule +parhelion +jewelry +frill +lavaliere +peplum +bangle +cigar band +aigrette +bracelet +bling +pendant earring +necklace +ghat +path +road +passage +sidewalk +towpath +pedestrian crossing +highway +carriageway +thoroughfare +trail +divided highway +expressway +arterial road +autostrada +autobahn +street +street +piste +horse-trail +adit +conduit +passageway +tube +sluice +snorkel +waterspout +catheter +barrel +pipe +hookah +tailpipe +drain +culvert +soil pipe +tunnel +stairwell +gangway +catacomb +railroad tunnel +tape +band +inkle +adhesive tape +plaster +cellulose tape +headstall +girdle +tire +armlet +radial +car tire +tableware +riband +cutlery +glass +hollowware +platter +spoon +table knife +fork +Spork +soupspoon +teaspoon +sugar spoon +wooden spoon +iced-tea spoon +tablespoon +dessert spoon +case knife +butter knife +steak knife +tablefork +carving fork +airfield +telpherage +air terminal +airport +menagerie +storehouse +station +warehouse +granary +crib +mineshaft +ditch +irrigation ditch +furrow +consumer goods +linen +clothing +appliance +leisure wear +grey +blue +nightwear +protective garment +outerwear +neckpiece +knitwear +loungewear +apparel +collar +military uniform +headdress +pajama +garment +array +woman's clothing +overall +glove +accessory +black +footwear +attire +ready-to-wear +beachwear +man's clothing +street clothes +slip-on +shin guard +overall +pressure suit +arm guard +foul-weather gear +diving suit +apron +shoulder pad +coverall +chest protector +elbow pad +spacesuit +knee pad +gown +vestment +chasuble +academic gown +battle dress +fatigues +dress uniform +khakis +helmet +hood +turban +hat +cap +cowl +tiara +football helmet +hard hat +crash helmet +sunhat +fur hat +cowboy hat +bearskin +boater +snap-brim hat +fedora +cavalier hat +sombrero +tricorn +beaver +porkpie +bonnet +pith hat +bowler hat +millinery +cloche +pillbox +baseball cap +coonskin cap +shower cap +kepi +balaclava +fez +tam +beret +skullcap +cloth cap +ski cap +watch cap +bathing cap +mortarboard +yarmulke +beanie +head covering +scarf +romper +diaper +wraparound +robe +wet suit +legging +skirt +undergarment +separate +vest +shirt +overgarment +hose +burqa +trouser +trouser +straitjacket +fur +neckwear +sweat suit +leotard +swimsuit +hand-me-down +raglan +suit +sweater +gown +face veil +niqab +chador +mantilla +muffler +headscarf +tudung +feather boa +stole +hijab +khimar +dressing gown +kimono +abaya +bathrobe +gaiter +spat +overskirt +grass skirt +miniskirt +kilt +maxi +ballet skirt +dirndl +sarong +hoopskirt +petticoat +brassiere +foundation garment +singlet +garter belt +crinoline +underwear +body stocking +camisole +uplift +chemise +underpants +corset +panty girdle +roll-on +lingerie +long johns +BVD +undies +nightgown +bloomers +thong +bikini pants +briefs +pantie +drawers +work-shirt +kurta +jersey +dashiki +polo shirt +coat +cloak +snowsuit +surcoat +duffel coat +sheepskin coat +frock coat +lab coat +greatcoat +jacket +raincoat +capote +sack coat +fur coat +mess jacket +single-breasted jacket +bomber jacket +pea jacket +swallow-tailed coat +doublet +bolero +parka +oilskin +trench coat +mink +sable coat +poncho +toga virilis +toga +kameez +serape +tunic +shawl +caftan +short pants +pajama +sweat pants +salwar +breeches +chino +slacks +jodhpurs +pedal pusher +long trousers +jean +cords +Levi's +stretch pants +bellbottom trousers +buckskins +hot pants +Bermuda shorts +lederhosen +necktie +cravat +bolo tie +Windsor tie +bow tie +black tie +maillot +swimming trunks +bikini +double-breasted suit +pinstripe +single-breasted suit +pants suit +business suit +three-piece suit +two-piece +turtleneck +cardigan +sweatshirt +pullover +top +G-string +camisole +dress +bodice +blouse +halter +cocktail dress +sari +caftan +sundress +chemise +strapless +gown +jumper +dirndl +bridal gown +tea gown +ball gown +gauntlet +mitten +kid glove +belt +furnishing +money belt +holster +cartridge belt +hosiery +tights +sock +stocking +pantyhose +maillot +athletic sock +tabi +knee-high +argyle +nylons +Christmas stocking +formalwear +ensemble +outfit +ao dai +costume +fancy dress +costume +frock +sportswear +academic costume +disguise +hairpiece +dinner jacket +balldress +dinner dress +dress suit +Afro-wig +toupee +wig +dress hat +brace +athletic supporter +home appliance +dryer +vacuum +iron +trouser press +curling iron +white goods +sewing machine +serger +kitchen appliance +Hoover +travel iron +steam iron +dishwasher +refrigerator +washer +cooler +electric refrigerator +ice machine +deep-freeze +toaster +microwave +toaster oven +coffee maker +hot plate +waffle iron +disposal +espresso maker +stove +oven +food processor +ice maker +cookstove +electric range +gas range +Primus stove +broiler +rotisserie +Dutch oven +gas oven +hand blower +clothes dryer +spin dryer +tumble-dryer +wringer +bath towel +doily +Turkish towel +bed linen +pillow sham +sheet +tinfoil +plywood +doorplate +board +drumhead +panel +laminate +blackboard +snowboard +Sheetrock +surfboard +skateboard +sideboard +scoreboard +wainscot +headboard +chandelier +plumbing fixture +soap dish +toilet +shower +water faucet +flush toilet +potty seat +rope +cord +lasso +bungee +spun yarn +cordage +thread +bootlace +wick +lanyard +floss +woof +worsted +organism +cell +mistletoe +plant +animal +microorganism +bryophyte +person +fungus +benthos +flowering maple +vascular plant +strangler +aquatic +annual +houseplant +poisonous plant +agave +pteridophyte +spermatophyte +aquatic plant +herb +vine +woody plant +weed +cultivar +bulbous plant +succulent +American agave +maguey +maguey +sansevieria +dracaena +mother-in-law's tongue +fern ally +fern +club moss +scouring rush +ground pine +ground cedar +ground fir +flowering fern +lady fern +Boston fern +flowering fern +royal fern +tree fern +oak fern +common polypody +mountain fern +shield fern +deer fern +wood fern +American maidenhair fern +hart's-tongue +soft shield fern +holly fern +maidenhair +holly fern +water clover +sensitive fern +Christmas fern +angiopteris +soft tree fern +male fern +marginal wood fern +angiosperm +gymnosperm +barbados cherry +dicot +flower +wildflower +commelina +woodland star +nigella +black-eyed Susan +mistflower +calceolaria +toadflax +zinnia +centaury +Easter daisy +African violet +brompton stock +verbena +blue daisy +pink calla +Mexican sunflower +bloomer +achimenes +lychnis +painted daisy +treasure flower +globe amaranth +common valerian +rose moss +tidytips +common daisy +composite +ice plant +gentian +soapwort +anemone +veronica +larkspur +spring beauty +gazania +damask violet +Barberton daisy +bush violet +baby's breath +corydalis +calendula +sunflower +scabious +valerian +rue anemone +sandwort +candytuft +horn poppy +sandwort +poppy +stokes' aster +dahlia +Virginia spring beauty +petunia +orchid +hybrid petunia +African daisy +pink +African daisy +African daisy +daisy +common ageratum +oxeye daisy +columbine +calla lily +sweet alyssum +spathiphyllum +four o'clock +common marigold +cornflower +strawflower +silene +tuberose +common four-o'clock +rocket larkspur +bellwort +begonia +streptocarpus +Swan River daisy +wallflower +peony +love-in-a-mist +wallflower +cineraria +chrysanthemum +stock +sandwort +Malcolm stock +mountain sandwort +coneflower +ageratum +coneflower +sowbread +scorpionweed +cyclamen +delphinium +marigold +aster +cosmos +Mediterranean snapdragon +mullein pink +ragged robin +mayweed +tansy +dusty miller +corn chamomile +shasta daisy +everlasting +wingstem +rosinweed +oxeye daisy +strawflower +strawflower +cudweed +pearly everlasting +gentianella +agueweed +closed gentian +closed gentian +great yellow gentian +fringed gentian +marsh gentian +snowdrop anemone +wood anemone +wood anemone +germander speedwell +common speedwell +common sunflower +prairie sunflower +giant sunflower +Jerusalem artichoke +sweet scabious +field scabious +Iceland poppy +wind poppy +Iceland poppy +celandine +oriental poppy +opium poppy +celandine poppy +prickly poppy +California poppy +corn poppy +blue poppy +aerides +coelogyne +lady's slipper +Venus' slipper +cymbid +sobralia +spider orchid +spider orchid +Psychopsis papilio +liparis +butterfly orchid +butterfly orchid +butterfly orchid +oncidium +twayblade +twayblade +grass pink +brassavola +fragrant orchid +fly orchid +frog orchid +coral root +cattleya +lesser butterfly orchid +vanilla +short-spurred fragrant orchid +common spotted orchid +bog rose +ladies' tresses +odontoglossum +orchis +vanda +pansy orchid +Bletilla striata +rattlesnake plantain +marsh orchid +stanhopea +laelia +phaius +lizard orchid +caladenia +calypso +moth orchid +blue orchid +bee orchid +early spider orchid +masdevallia +bog rein orchid +European ladies' tresses +fen orchid +pogonia +fringed orchis +dendrobium +fly orchid +helleborine +helleborine +stelis +greater butterfly orchid +yellow lady's slipper +large yellow lady's slipper +common lady's-slipper +moccasin flower +butterfly orchid +male orchis +ragged orchid +purple-fringed orchid +stream orchid +Epipactis helleborine +sweet William +china pink +Japanese pink +carnation +cottage pink +maiden pink +meeting house +granny's bonnets +blue columbine +fire pink +white campion +bladder campion +red campion +wild pink +moss campion +wax begonia +hybrid tuberous begonia +rex begonia +crown daisy +corn marigold +florist's chrysanthemum +African marigold +French marigold +New England aster +bushy aster +Michaelmas daisy +Indian paintbrush +goldenrod +sand verbena +bitterroot +Indian pipe +heliopsis +meadow goldenrod +pasqueflower +fleabane +blazing star +edelweiss +coneflower +balloon flower +wild carrot +prairie gentian +desert sunflower +Arnica montana +butterweed +gaillardia +brittlebush +orange daisy +daisy fleabane +Mexican hat +long-head coneflower +cycad +welwitschia +encephalartos +dioon +macrozamia +false sago +water shamrock +water hyacinth +pistia +water lily +marsh plant +water nymph +European white lily +bog star +marsh marigold +wild calla +sedge +parnassia +skunk cabbage +skunk cabbage +cotton grass +nutgrass +common cotton grass +winter aconite +buttercup +phlox +willowherb +stapelia +skullcap +bedstraw +gumweed +kangaroo paw +common chickweed +hyssop +arum +common comfrey +borage +nasturtium +canna +loosestrife +toad lily +globe thistle +wild thyme +common fennel +bear's breech +ironweed +feverfew +monarda +physostegia +creeping bugle +vegetable +hedge nettle +plum tomato +ground cherry +flax +primrose +oxalis +kniphofia +boneset +chickweed +periwinkle +garden angelica +bugloss +Dutchman's breeches +pie plant +cow parsnip +butterbur +milk thistle +mouse-ear chickweed +yellow bells +lobelia +anise hyssop +banana +Joe-Pye weed +Joe-Pye weed +garden forget-me-not +evening primrose +spiderflower +sweet false chamomile +agrimonia +hepatica +medic +peperomia +geranium +viola +okra +bergenia +astrantia +aspidistra +thyme +common teasel +carnivorous plant +harvest-lice +nemophila +hawkweed +hawkweed +fleabane +plumbago +spiderwort +prickly poppy +common foxglove +stonecrop +garden lettuce +teasel +herb Paris +coltsfoot +basil +sainfoin +sneezeweed +cockscomb +baby blue-eyes +coleus +spurge nettle +arnica +sour dock +clover +mint +coreopsis +pimpernel +kidney vetch +foxglove +legume +reseda +forget-me-not +Virginia bluebell +pineapple +blueweed +anchusa +moss pink +common dandelion +false lupine +sage +chamomile +crucifer +chicory +broad-leaved plantain +bugle +milkweed +fireweed +spirea +inula +hemp nettle +garden nasturtium +pokeweed +moneywort +asparagus +Italian parsley +rhubarb +jewelweed +asparagus fern +sedum +yarrow +bird's foot trefoil +scarlet pimpernel +campanula +mayapple +painted nettle +pigweed +bleeding heart +achillea +snow-in-summer +gramineous plant +balsamroot +Abyssinian banana +herbage +astilbe +ginger +saxifrage +cow parsley +dill +common mullein +dead nettle +creeping buttercup +meadow buttercup +yellow bedstraw +sweet woodruff +caladium +cuckoopint +jack-in-the-pulpit +alocasia +taro +amorphophallus +bee balm +bee balm +artichoke +cardoon +tomatillo +tomatillo +English primrose +oxlip +cowslip +polyanthus +creeping oxalis +common wood sorrel +Bermuda buttercup +red-hot poker +poker plant +dwarf banana +Japanese banana +plantain +sundrops +common evening primrose +ivy geranium +cranesbill +fish geranium +rose geranium +meadow cranesbill +wild geranium +dove's foot geranium +herb robert +horned violet +field pansy +violet +dog violet +pale violet +bird's-foot violet +hedge violet +Venus's flytrap +pitcher plant +tropical pitcher plant +sundew +white clover +red clover +crimson clover +pennyroyal +water-mint +beach pea +chickpea +vetch +tufted vetch +bean +wild pea +scarlet runner +sieva bean +clary +common sage +clary sage +wild sage +purple sage +meadow clary +bok choy +mustard +cabbage +cauliflower +collard +broccoli +brussels sprout +garlic mustard +head cabbage +radish plant +bittercress +alyssum +field mustard +rape +radish +radish +lady's smock +crinkleroot +butterfly weed +swamp milkweed +tussock bellflower +Canterbury bell +clustered bellflower +peach bells +giant bamboo +grass +fescue +cordgrass +feather reed grass +reed grass +orchard grass +cereal +broom beard grass +tall oat grass +tallgrass +St. Augustine grass +pampas grass +grama +dallisgrass +zoysia +rye grass +brome +fountain grass +rye +popcorn +wheat +millet +sorghum +panic grass +goose grass +switch grass +common ginger +shellflower +meadow saxifrage +purple saxifrage +white dead nettle +henbit +ground ivy +blue pea +purple clematis +black-eyed Susan +bougainvillea +butterfly pea +butterfly pea +bindweed +kudzu +Boston ivy +squash +yellow jasmine +wax plant +morning glory +liana +Japanese wistaria +allamanda +field bindweed +common allamanda +passionflower +convolvulus +gourd +grape +Chinese gooseberry +summer squash +winter squash +pumpkin +spaghetti squash +yellow squash +acorn squash +winter crookneck +cypress vine +Japanese morning glory +moonflower +golden pothos +ceriman +jade vine +pothos +love-in-a-mist +maypop +granadilla +sweet melon +bottle gourd +net melon +winter melon +cantaloupe +Sauvignon grape +fox grape +wild indigo +shrub +tree +raspberry +lupine +abelia +banksia +bird pepper +sea holly +guelder rose +crape myrtle +castor-oil plant +spirea +hydrangea +fuchsia +redberry +saltbush +false indigo +bridal wreath +protea +Oregon grape +grevillea +gorse +rockrose +cowberry +subshrub +honeypot +California fuchsia +sumac +jasmine +impala lily +currant +axseed +mimosa +southern buckthorn +flowering quince +yucca +purple heather +waratah +mallow +strawberry tree +mock orange +honeysuckle +spurge +kalmia +bush hibiscus +weigela +Christmasberry +angel's trumpet +angel's trumpet +gooseberry +dusty miller +croton +Pyracantha +forsythia +artemisia +silversword +waratah +philadelphus +common lilac +saltwort +calliandra +wahoo +bird of paradise +cape jasmine +camellia +night jasmine +rose +mountain laurel +cotoneaster +rhododendron +frangipani +broom +desert pea +lavender +butterfly bush +deutzia +hortensia +burdock +prairie smoke +centaury +sea lavender +common mugwort +bird's foot trefoil +large periwinkle +great burdock +St John's wort +eriogonum +purple loosestrife +loosestrife +mountain avens +matilija poppy +bur marigold +wild lupine +marguerite +dusty miller +great knapweed +knapweed +creeping St John's wort +klammath weed +common St John's wort +common jasmine +winter jasmine +Adam's needle +bear grass +Joshua tree +Spanish dagger +hollyhock +rose mallow +common mallow +marsh mallow +musk mallow +hibiscus +althea +rose mallow +cotton rose +woodbine +trumpet honeysuckle +Japanese honeysuckle +poinsettia +crown of thorns +damask rose +musk rose +azalea +rosebay +swamp azalea +common broom +woodwaxen +English lavender +spike lavender +French lavender +locust tree +kowhai +bottle-tree +timber tree +linden +bonsai +snag +hackberry +pepper tree +Japanese oak +European hackberry +cork tree +birch +star anise +red silk-cotton tree +roble +common alder +fig tree +Japanese pagoda tree +albizzia +European hornbeam +cassia +coral tree +neem +white mangrove +Chinese parasol tree +bayberry +yellowwood +elm +alder +prickly ash +angiospermous tree +chestnut +cabbage bark +ash +beech +fringe tree +golden shower tree +lead tree +palm +balata +sapling +black beech +acacia +coffee +gymnospermous tree +ceibo +incense tree +lacebark +shade tree +pollard +gum tree +wild medlar +hornbeam +willow +textile screw pine +mescal bean +Brazilian rosewood +pandanus +white mangrove +oak +bean tree +plane tree +blackwood +coralwood +Kentucky coffee tree +black locust +honey locust +flame tree +flame tree +kurrajong +American basswood +silver lime +black birch +silver birch +swamp birch +downy birch +grey birch +golden fig +India-rubber tree +fig +banyan +pipal +rain tree +silk tree +smooth-leaved elm +American elm +English elm +cedar elm +myrtle +mangrove +magnolia +Queen's crape myrtle +looking-glass plant +tulip tree +maple +nut tree +redbud +baobab +poplar +tree of heaven +ailanthus +dogwood +holly +cacao +laurel +mountain ebony +kapok +sorrel tree +cacao bean +Spanish elm +rowan +mountain ash +royal poinciana +iron tree +fruit tree +sweet bay +southern magnolia +star magnolia +umbrella tree +box elder +red maple +hedge maple +Norway maple +Japanese maple +sycamore +California box elder +silver maple +sugar maple +Oregon maple +cashew +walnut +hazelnut +black walnut +English walnut +black poplar +aspen +cottonwood +white poplar +quaking aspen +Eastern cottonwood +black cottonwood +cornelian cherry +bunchberry +common European dogwood +common white dogwood +bearberry +inkberry +true laurel +cassia +citrus +mulberry +jackfruit +pomegranate +pawpaw +persimmon +carambola +plum +almond tree +durian +papaya +olive tree +longan +pear +loquat +medlar +peach +white mulberry +olive +litchi +Japanese apricot +rambutan +apple tree +Japanese persimmon +mango +breadfruit +guava +guava +jaboticaba +cherry +Surinam cherry +lime +mandarin +orange +kumquat +lemon +pomelo +grapefruit +clementine +tangerine +sweet orange +sour orange +bergamot +cherry plum +Allegheny plum +flowering almond +almond +flowering almond +crab apple +apple +wild apple +Southern crab apple +Bechtel crab +Iowa crab +sour cherry +flowering cherry +wild cherry +sweet cherry +chokecherry +Japanese flowering cherry +oriental cherry +fuji +hagberry tree +black cherry +Ozark chinkapin +American chestnut +pumpkin ash +mountain ash +manna ash +European ash +red ash +weeping beech +American beech +copper beech +bamboo palm +wine palm +fan palm +royal palm +cabbage palm +cabbage palm +sago palm +miniature fan palm +lady palm +feather palm +coconut +cabbage palm +carnauba +caranday +palmyra +cabbage palmetto +key palm +saw palmetto +palmetto +date palm +oil palm +silver wattle +wattle +huisache +ginkgo +conifer +kauri +green douglas fir +miro +cedar +cedar +douglas fir +matai +arborvitae +spruce +yew +araucaria +cypress +metasequoia +pine +fir +larch +hemlock +cedar of Lebanon +Atlas cedar +deodar +southern white cedar +incense cedar +Oregon cedar +Japanese cedar +Oriental arborvitae +American arborvitae +western red cedar +Colorado spruce +white spruce +Norway spruce +red spruce +black spruce +Sitka spruce +oriental spruce +bunya bunya +monkey puzzle +Monterey cypress +Arizona cypress +Italian cypress +Scotch pine +pond pine +pitch pine +table-mountain pine +ancient pine +stone pine +Jeffrey pine +loblolly pine +Swiss pine +spruce pine +white pine +red pine +Japanese black pine +Swiss mountain pine +black pine +Monterey pine +yellow pine +Torrey pine +shore pine +bristlecone pine +whitebark pine +western white pine +longleaf pine +ponderosa +silver fir +Fraser fir +Alpine fir +amabilis fir +lowland fir +balsam fir +European silver fir +white fir +western larch +American larch +eastern hemlock +western hemlock +mountain hemlock +gumbo-limbo +elephant tree +sweet gum +eucalyptus +sour gum +liquidambar +snow gum +mountain ash +black mallee +alpine ash +red gum +red gum +blue gum +osier +pussy willow +bay willow +weeping willow +swamp willow +purple willow +common osier +European turkey oak +red oak +cork oak +black oak +live oak +chestnut oak +bluejack oak +pin oak +post oak +shingle oak +white oak +laurel oak +northern red oak +southern red oak +southern live oak +canyon oak +coast live oak +chinquapin oak +basket oak +swamp chestnut oak +bur oak +Oregon white oak +common oak +tamarind +catalpa +carob +California sycamore +American sycamore +London plane +lightwood +black mangrove +wild raspberry +black raspberry +bluebonnet +Texas bluebonnet +thistle +cat's-ear +corn cockle +yellow rocket +fireweed +stinging nettle +horseweed +stemless carline thistle +musk thistle +cotton thistle +plume thistle +field thistle +bull thistle +Canada thistle +hippeastrum +narcissus +iridaceous plant +fritillary +liliaceous plant +star-of-Bethlehem +daffodil +jonquil +jonquil +iris +blue-eyed grass +blackberry-lily +dwarf iris +dwarf iris +beardless iris +bearded iris +Japanese iris +German iris +snake's head fritillary +crown imperial +dogtooth violet +lily +African lily +grape hyacinth +common camas +false lily of the valley +common hyacinth +camas +clintonia +lemon lily +squaw grass +scilla +tulip +alliaceous plant +fawn lily +glacier lily +yellow adder's tongue +Turk's-cap +Turk's-cap +tiger lily +tiger lily +mountain lily +Easter lily +tassel hyacinth +common grape hyacinth +Tulipa gesneriana +Darwin tulip +garlic chive +wild garlic +Hottentot fig +livingstone daisy +cactus +nopal +nopal +barrel cactus +night-blooming cereus +night-blooming cereus +night-blooming cereus +cholla +echinocactus +mammillaria +feather ball +prickly pear +crab cactus +saguaro +Christmas cactus +hedgehog cactus +golden barrel cactus +flamingo flower +anthurium +gloxinia +baneberry +red baneberry +poison ivy +gloriosa +monkshood +American holly +oleander +poison ash +herbivore +big game +thoroughbred +creepy-crawly +young +domestic animal +pet +critter +larva +feeder +male +pest +omnivore +predator +chordate +work animal +invertebrate +female +marine animal +scavenger +hexapod +mate +prey +carnivore +young mammal +orphan +spat +young bird +hatchling +foal +kitten +calf +pup +calf +lamb +baby +puppy +suckling +cub +piglet +nestling +fledgling +head +stray +feeder +tadpole +caterpillar +nymph +doodlebug +tobacco hornworm +cabbageworm +tomato hornworm +silkworm +cutworm +woolly bear +measuring worm +armyworm +silkworm +tussock caterpillar +tent caterpillar +colt +ridgeling +sire +sea squirt +ascidian +vertebrate +aquatic vertebrate +amphibian +mammal +baby +fetus +quadruped +reptile +bird +fish +lamprey +teleost fish +food fish +elasmobranch +ganoid +trumpetfish +pipefish +seahorse +spiny-finned fish +soft-finned fish +needlefish +beluga +gar +bowfin +paddlefish +sturgeon +percoid fish +dragonet +frogfish +barracuda +soldierfish +goosefish +scorpaenoid +flatfish +great barracuda +plectognath +snook +perch +perch +dolphinfish +freshwater bass +scombroid +bass +parrotfish +sea bream +grunt +flathead +bluefish +carangid fish +damselfish +butterfly fish +mudskipper +pike +goby +tautog +sunfish +snapper +snapper +sciaenid fish +wolffish +cichlid +wrasse +yellow perch +European perch +walleye +mackerel +skipjack +black marlin +sailfish +marlin +bonito +tuna +wahoo +Spanish mackerel +Spanish mackerel +cero +king mackerel +bluefin +yellowfin +jack +permit +scad +crevalle jack +kingfish +amberjack +yellowtail +horse mackerel +horse mackerel +clown anemone fish +sergeant major +anemone fish +chaetodon +rock beauty +angelfish +northern pike +pickerel +muskellunge +black bass +pumpkinseed +freshwater bream +bluegill +crappie +smallmouth +largemouth +sea trout +croaker +kingfish +mulloway +red drum +white croaker +white croaker +scorpaenid +flathead +scorpionfish +lionfish +stonefish +rockfish +plaice +flounder +halibut +cowfish +boxfish +ocean sunfish +puffer +spiny puffer +triggerfish +balloonfish +porcupinefish +tarpon +bonefish +pollack +anchovy +lizardfish +catfish +cypriniform fish +eel +clupeid fish +European catfish +flathead catfish +channel catfish +blue catfish +characin +electric eel +cyprinodont +loach +cyprinid +topminnow +piranha +cardinal tetra +tetra +killifish +striped killifish +guppy +swordtail +carp +minnow +tench +crucian carp +goldfish +gudgeon +platy +mosquitofish +conger +tuna +moray +sardine +pilchard +sea bass +trout +salmon +barracouta +grouper +striped bass +jewfish +hind +sea trout +brook trout +rainbow trout +brown trout +lake trout +chinook +Atlantic salmon +redfish +coho +landlocked salmon +shark +ray +sand tiger +angel shark +nurse shark +requiem shark +smooth dogfish +hammerhead +mackerel shark +whale shark +bull shark +blue shark +sandbar shark +blacktip shark +whitetip shark +tiger shark +lemon shark +whitetip shark +smoothhound +great white shark +mako +porbeagle +stingray +electric ray +spotted eagle ray +Atlantic manta +manta +skate +eagle ray +salamander +frog +spotted salamander +newt +European fire salamander +slender salamander +ambystomid +eft +common newt +red eft +spotted salamander +axolotl +tiger salamander +true toad +true frog +tailed frog +crapaud +tree toad +tree frog +natterjack +Eurasian green toad +bufo +American toad +agua +western toad +European toad +grass frog +wood-frog +bullfrog +leopard frog +pickerel frog +green frog +spring peeper +chorus frog +placental +tusker +monotreme +marsupial +female mammal +aardvark +livestock +insectivore +hyrax +doe +edentate +stag +bull +primate +carnivore +bat +aquatic mammal +lagomorph +rock hyrax +yearling +rodent +cow +pachyderm +buck +pangolin +ungulate +shrew +hedgehog +peba +sloth +armadillo +anteater +two-toed sloth +two-toed sloth +three-toed sloth +ant bear +tamandua +simian +tarsier +homo +ape +lemur +monkey +Homo sapiens sapiens +Homo sapiens +Neandertal man +anthropoid ape +lesser ape +great ape +siamang +gibbon +chimpanzee +orangutan +gorilla +pygmy chimpanzee +central chimpanzee +western lowland gorilla +mountain gorilla +silverback +indri +Madagascar cat +potto +galago +slow loris +Old World monkey +New World monkey +baboon +vervet +proboscis monkey +colobus +patas +macaque +guenon +langur +chacma +mandrill +Barbary ape +rhesus +spider monkey +marmoset +squirrel monkey +titi +capuchin +howler monkey +tamarin +pygmy marmoset +procyonid +feline +viverrine +canine +musteline mammal +bear +coati +common raccoon +lesser panda +raccoon +kinkajou +giant panda +big cat +cat +jaguar +tiger +leopard +cheetah +lion +snow leopard +tigress +Bengal tiger +tiger cub +lioness +lion cub +domestic cat +wildcat +tabby +tiger cat +tabby +tortoiseshell +Manx +Egyptian cat +Abyssinian +kitty +Angora +Persian cat +Burmese cat +Siamese cat +alley cat +tom +mouser +margay +ocelot +lynx +cougar +European wildcat +serval +manul +sand cat +common lynx +bobcat +caracal +Canada lynx +meerkat +genet +mongoose +slender-tailed meerkat +suricate +dog +wild dog +wolf +bitch +jackal +fox +hyena +pug +corgi +Great Pyrenees +Brabancon griffon +poodle +cur +Leonberg +griffon +dalmatian +pooch +spitz +toy dog +hunting dog +working dog +basenji +Mexican hairless +Newfoundland +lapdog +Cardigan +Pembroke +standard poodle +toy poodle +miniature poodle +Pomeranian +keeshond +chow +Samoyed +toy spaniel +Shih-Tzu +toy terrier +Maltese dog +Japanese spaniel +Chihuahua +Pekinese +King Charles spaniel +Blenheim spaniel +papillon +terrier +Rhodesian ridgeback +sausage dog +sporting dog +hound +dachshund +Dandie Dinmont +schnauzer +wirehair +Airedale +West Highland white terrier +Kerry blue terrier +Norfolk terrier +Border terrier +Yorkshire terrier +wire-haired fox terrier +Bedlington terrier +Tibetan terrier +silky terrier +Lhasa +Scotch terrier +cairn +Boston bull +fox terrier +Australian terrier +bullterrier +Norwich terrier +Irish terrier +rat terrier +soft-coated wheaten terrier +standard schnauzer +giant schnauzer +miniature schnauzer +Lakeland terrier +Welsh terrier +Sealyham terrier +Staffordshire bullterrier +American Staffordshire terrier +Manchester terrier +toy Manchester +water dog +pointer +bird dog +setter +spaniel +retriever +vizsla +German short-haired pointer +Gordon setter +English setter +Irish setter +cocker spaniel +water spaniel +springer spaniel +Brittany spaniel +clumber +Sussex spaniel +Irish water spaniel +English springer +Welsh springer spaniel +flat-coated retriever +golden retriever +curly-coated retriever +Chesapeake Bay retriever +Labrador retriever +otterhound +bloodhound +wolfhound +basset +Ibizan hound +Norwegian elkhound +coonhound +Saluki +Afghan hound +black-and-tan coonhound +bluetick +Scottish deerhound +redbone +foxhound +beagle +Weimaraner +greyhound +borzoi +Irish wolfhound +English foxhound +Walker hound +whippet +Italian greyhound +Great Dane +watchdog +Eskimo dog +Tibetan mastiff +sled dog +Saint Bernard +French bulldog +police dog +bulldog +Sennenhunde +bull mastiff +shepherd dog +boxer +mastiff +kuvasz +housedog +pinscher +schipperke +Doberman +miniature pinscher +affenpinscher +Siberian husky +malamute +Greater Swiss Mountain dog +EntleBucher +Bernese mountain dog +Appenzeller +Belgian sheepdog +kelpie +Shetland sheepdog +komondor +Border collie +collie +Rottweiler +Old English sheepdog +German shepherd +briard +Bouvier des Flandres +groenendael +malinois +African hunting dog +dingo +dhole +coyote +wolf pup +red wolf +white wolf +timber wolf +red fox +red fox +kit fox +Arctic fox +grey fox +kit fox +spotted hyena +striped hyena +mink +black-footed ferret +striped skunk +pine marten +sea otter +otter +weasel +polecat +glutton +skunk +badger +ferret +river otter +Eurasian otter +ice bear +American black bear +bear cub +Asiatic black bear +brown bear +sloth bear +grizzly +Alaskan brown bear +carnivorous bat +flying fox +fruit bat +brown bat +vespertilian bat +pallid bat +pipistrelle +cetacean +sea cow +pinniped mammal +whale +toothed whale +baleen whale +dolphin +bottle-nosed whale +porpoise +common dolphin +bottlenose dolphin +pilot whale +killer whale +white whale +Pacific bottlenose dolphin +Atlantic bottlenose dolphin +grey whale +rorqual +blue whale +lesser rorqual +finback +manatee +dugong +walrus +seal +earless seal +eared seal +elephant seal +harbor seal +harp seal +fur seal +fur seal +sea lion +California sea lion +Australian sea lion +Steller sea lion +pika +leporid +rabbit +hare +eastern cottontail +wood rabbit +bunny +European rabbit +lapin +Angora +rabbit ears +snowshoe hare +European hare +jackrabbit +chinchilla +rat +capybara +golden hamster +water vole +porcupine +coypu +vole +beaver +hamster +prairie dog +squirrel +marmot +blacktail prairie dog +cavy +gerbil +mouse +muskrat +gopher +brown rat +black rat +chipmunk +ground squirrel +eastern chipmunk +tree squirrel +rock squirrel +mantled ground squirrel +eastern grey squirrel +red squirrel +black squirrel +American red squirrel +fox squirrel +hoary marmot +groundhog +aperea +guinea pig +field mouse +house mouse +elephant +African elephant +Indian elephant +even-toed ungulate +odd-toed ungulate +ruminant +camel +swine +llama +vicuna +collared peccary +hippopotamus +peccary +pronghorn +deer +bovid +giraffe +okapi +woodland caribou +caribou +fallow deer +elk +hart +mule deer +fawn +red deer +muntjac +Virginia deer +wapiti +Japanese deer +roe deer +black-tailed deer +wild sheep +bison +musk ox +Old World buffalo +bovine +antelope +sheep +goat antelope +goat +aoudad +mountain sheep +Dall sheep +bighorn +mouflon +American bison +wisent +carabao +water buffalo +Cape buffalo +Brahman +ox +zebu +cattle +yak +gaur +beef +ox +bull +bullock +heifer +cow +dairy cattle +longhorn +Charolais +Hereford +Durham +Aberdeen Angus +Galloway +Friesian +Brown Swiss +kudu +addax +blackbuck +waterbuck +eland +steenbok +dik-dik +gnu +harnessed antelope +gerenuk +sassaby +impala +greater kudu +sable antelope +hartebeest +bongo +gemsbok +oryx +gazelle +nyala +bushbuck +Thomson's gazelle +springbok antelope +domestic sheep +black sheep +ewe +wether +ram +mountain goat +chamois +takin +nanny +kid +ibex +Angora +domestic goat +billy +wild goat +Bactrian camel +Arabian camel +wild boar +warthog +boar +hog +guanaco +alpaca +rhinoceros +tapir +equine +Malayan tapir +Indian rhinoceros +black rhinoceros +white rhinoceros +horse +zebra +ass +bay +broodmare +racehorse +palomino +wild horse +pinto +hack +roan +male horse +post horse +liver chestnut +tarpan +saddle horse +chestnut +harness horse +polo pony +workhorse +mare +pony +pony +sorrel +yearling +thoroughbred +trotting horse +stud +stallion +gelding +Tennessee walker +hack +cavalry horse +grey +Morgan +buckskin +dun +Arabian +quarter horse +cob +hackney +plow horse +farm horse +draft horse +carthorse +Percheron +Clydesdale +shire +cayuse +bronco +mustang +Welsh pony +Shetland pony +Exmoor +common zebra +mountain zebra +grevy's zebra +jennet +burro +domestic ass +echidna +platypus +echidna +kangaroo +koala +wombat +common opossum +opossum +dasyurid marsupial +phalanger +giant kangaroo +wallaby +rock wallaby +tree wallaby +Tasmanian devil +numbat +chelonian +diapsid +turtle +Western box turtle +box turtle +common snapping turtle +terrapin +soft-shelled turtle +painted turtle +sea turtle +snapping turtle +slider +tortoise +mud turtle +cooter +hawksbill turtle +loggerhead +green turtle +leatherback turtle +ridley +Pacific ridley +Atlantic ridley +giant tortoise +gopher tortoise +European tortoise +desert tortoise +crocodilian reptile +snake +tuatara +lizard +dinosaur +alligator +crocodile +American alligator +caiman +Asian crocodile +African crocodile +blind snake +viper +sea snake +elapid +constrictor +colubrid snake +horned viper +asp +adder +puff adder +pit viper +water moccasin +copperhead +rattlesnake +ground rattler +massasauga +diamondback +Mojave rattlesnake +timber rattlesnake +prairie rattlesnake +Western diamondback +sidewinder +rock rattlesnake +speckled rattlesnake +cobra +green mamba +taipan +copperhead +mamba +coral snake +coral snake +Indian cobra +hamadryad +boa +python +rosy boa +boa constrictor +anaconda +reticulated python +carpet snake +rock python +blacksnake +garter snake +bull snake +hognose snake +rat snake +whip-snake +water snake +green snake +racer +green snake +thunder snake +ringneck snake +vine snake +king snake +night snake +ribbon snake +common garter snake +pine snake +gopher snake +corn snake +black rat snake +grass snake +common water snake +water moccasin +smooth green snake +rough green snake +milk snake +common kingsnake +banded gecko +chameleon +monitor +skink +Gila monster +Komodo dragon +whiptail +iguanid +agamid +gecko +African chameleon +lacertid lizard +anguid lizard +horned lizard +tree lizard +chuckwalla +American chameleon +basilisk +side-blotched lizard +spiny lizard +collared lizard +common iguana +marine iguana +leopard lizard +western fence lizard +fence lizard +agama +mountain devil +frilled lizard +green lizard +sand lizard +blindworm +alligator lizard +ornithischian +tyrannosaur +stegosaur +triceratops +bird of passage +aquatic bird +passerine +cock +hummingbird +piciform bird +coraciiform bird +quetzal +bird of prey +caprimulgiform bird +cuculiform bird +gamecock +ratite +gallinaceous bird +trogon +parrot +carinate +dickeybird +hen +wading bird +swan +gallinule +seabird +waterfowl +heron +crested cariama +trumpeter +bustard +ibis +stork +whooping crane +crane +limpkin +chunga +flamingo +rail +spoonbill +shoebill +shorebird +great blue heron +night heron +little blue heron +boatbill +great white heron +egret +bittern +black-crowned night heron +yellow-crowned night heron +great white heron +little egret +snowy egret +American egret +cattle egret +least bittern +American bittern +wood ibis +sacred ibis +marabou +black stork +white stork +saddlebill +jabiru +policeman bird +wood ibis +notornis +weka +spotted crake +crake +coot +Old World coot +American coot +common spoonbill +roseate spoonbill +plover +godwit +Hudsonian godwit +stilt +stone curlew +oystercatcher +stilt +American woodcock +snipe +woodcock +avocet +sandpiper +European curlew +pratincole +curlew +phalarope +golden plover +ruddy turnstone +killdeer +lapwing +turnstone +piping plover +black-necked stilt +black-winged stilt +whole snipe +Wilson's snipe +great snipe +dowitcher +tattler +greenshank +willet +curlew sandpiper +sanderling +redshank +spotted sandpiper +knot +red-backed sandpiper +upland sandpiper +least sandpiper +pectoral sandpiper +ruff +European sandpiper +yellowlegs +greater yellowlegs +lesser yellowlegs +red phalarope +Wilson's phalarope +pen +cygnet +trumpeter +coscoroba +mute swan +cob +whooper +black swan +tundra swan +whistling swan +Bewick's swan +purple gallinule +European gallinule +moorhen +coastal diving bird +pelagic bird +grebe +auk +loon +pelecaniform seabird +sphenisciform seabird +puffin +larid +jaeger +skimmer +sea swallow +gull +tern +ivory gull +mew +laughing gull +black-backed gull +kittiwake +herring gull +skua +parasitic jaeger +petrel +albatross +wandering albatross +shearwater +storm petrel +fulmar +red-necked grebe +great crested grebe +pied-billed grebe +black-necked grebe +dabchick +razorbill +guillemot +auklet +murre +black guillemot +common murre +pigeon guillemot +frigate bird +cormorant +snakebird +pelican +gannet +water turkey +tropic bird +white pelican +Old world white pelican +solan +booby +penguin +emperor penguin +jackass penguin +king penguin +rock hopper +Adelie +horned puffin +tufted puffin +Atlantic puffin +anseriform bird +goose +duck +blue goose +barnacle goose +snow goose +Chinese goose +common brant goose +brant +gosling +greylag +gander +honker +diving duck +scaup +shelduck +wood drake +bufflehead +black duck +mandarin duck +American widgeon +pintail +mallard +sheldrake +teal +Barrow's goldeneye +quack-quack +wild duck +ruddy duck +wood duck +drake +muscovy duck +shoveler +dabbling duck +widgeon +sea duck +redhead +pochard +goldeneye +canvasback +duckling +greater scaup +lesser scaup +garganey +greenwing +bluewing +eider +old squaw +merganser +scoter +common scoter +American merganser +red-breasted merganser +hooded merganser +smew +goosander +wren +broadbill +tyrannid +oscine +scrubbird +sparrow +marsh wren +rock wren +winter wren +cactus wren +house wren +Carolina wren +ovenbird +manakin +pitta +woodhewer +New World flycatcher +kingbird +phoebe +pewee +vermillion flycatcher +western wood pewee +scissortail +grey kingbird +eastern kingbird +Arkansas kingbird +warbler +brown creeper +corvine bird +starling +pipit +titmouse +fairy bluebird +thrush +hedge sparrow +wood swallow +shrike +lark +golden oriole +Old World flycatcher +thrasher +vireo +tanager +honeycreeper +finch +bowerbird +water ouzel +accentor +mockingbird +brown thrasher +skylark +catbird +satin bowerbird +waxwing +red-eyed vireo +New World oriole +Old World oriole +babbler +swallow +creeper +songbird +Australian magpie +wagtail +meadow pipit +spotted flycatcher +weaver +nuthatch +greater whitethroat +New World warbler +kinglet +Old World warbler +gnatcatcher +lesser whitethroat +yellowthroat +common yellowthroat +ovenbird +parula warbler +Blackburn +yellow warbler +American redstart +yellow-breasted chat +Audubon's warbler +Wilson's warbler +Cape May warbler +myrtle warbler +goldcrest +ruby-crowned kinglet +tailorbird +sedge warbler +wren warbler +blackcap +rook +Clark's nutcracker +jackdaw +European magpie +jay +raven +crow +magpie +American crow +blue jay +Canada jay +common starling +hill myna +myna +bushtit +chickadee +blue tit +tufted titmouse +Carolina chickadee +black-capped chickadee +robin +robin +hermit thrush +redwing +fieldfare +song thrush +nightingale +blackbird +missel thrush +ring ouzel +wheatear +bluebird +thrush nightingale +bluethroat +redstart +bulbul +Old World chat +wood thrush +stonechat +whinchat +butcherbird +loggerhead shrike +bush shrike +northern shrike +European shrike +western tanager +summer tanager +scarlet tanager +serin +bullfinch +grosbeak +goldfinch +New World sparrow +crossbill +bunting +linnet +cardinal +siskin +common canary +towhee +purple finch +honeycreeper +brambling +New World goldfinch +pine siskin +redpoll +dark-eyed junco +house finch +chaffinch +canary +redpoll +junco +pine grosbeak +evening grosbeak +hawfinch +song sparrow +white-throated sparrow +tree sparrow +field sparrow +white-crowned sparrow +swamp sparrow +chipping sparrow +indigo bunting +reed bunting +snow bunting +ortolan +yellowhammer +cedar waxwing +Bohemian waxwing +bobolink +meadowlark +northern oriole +orchard oriole +New World blackbird +eastern meadowlark +western meadowlark +Bullock's oriole +Baltimore oriole +purple grackle +cowbird +grackle +red-winged blackbird +white-bellied swallow +tree swallow +martin +barn swallow +cliff swallow +house martin +bank martin +butcherbird +currawong +Java sparrow +zebra finch +red-breasted nuthatch +European nuthatch +white-breasted nuthatch +English sparrow +tree sparrow +thornbill +Archilochus colubris +jacamar +woodpecker +barbet +toucanet +toucan +flicker +downy woodpecker +green woodpecker +sapsucker +wryneck +redheaded woodpecker +yellow-shafted flicker +red-breasted sapsucker +yellow-bellied sapsucker +kingfisher +roller +motmot +Euopean hoopoe +hornbill +European roller +hoopoe +bee eater +kookaburra +Eurasian kingfisher +belted kingfisher +vulture +hawk +secretary bird +eagle +owl +Old World vulture +New World vulture +Egyptian vulture +bearded vulture +black vulture +griffon vulture +black vulture +buzzard +king vulture +condor +Andean condor +California condor +harrier +goshawk +red-shouldered hawk +honey buzzard +falcon +harrier eagle +Cooper's hawk +osprey +kite +rough-legged hawk +buzzard +sparrow hawk +marsh harrier +marsh hawk +carancha +gyrfalcon +peregrine +caracara +hobby +pigeon hawk +kestrel +sparrow hawk +white-tailed kite +swallow-tailed kite +black kite +eaglet +golden eagle +sea eagle +bald eagle +harpy +tawny eagle +fishing eagle +ern +tawny owl +owlet +spotted owl +screech owl +horned owl +screech owl +little owl +barn owl +scops owl +Old World scops owl +hawk owl +great horned owl +barred owl +long-eared owl +great grey owl +frogmouth +goatsucker +touraco +cuckoo +coucal +roadrunner +rhea +rhea +ostrich +emu +cassowary +domestic fowl +columbiform bird +brush turkey +red jungle fowl +jungle fowl +game bird +turkey cock +bantam +turkey +guinea fowl +chicken +cockerel +cock +Rhode Island red +chick +Orpington +hen +pullet +brood hen +sandgrouse +pigeon +domestic pigeon +dove +wood pigeon +rock dove +homing pigeon +roller +Streptopelia turtur +turtledove +Australian turtledove +mourning dove +phasianid +tinamou +grouse +pheasant +quail +partridge +tragopan +ring-necked pheasant +golden pheasant +peafowl +peahen +blue peafowl +peacock +green peafowl +bobwhite +California quail +northern bobwhite +red-legged partridge +Hungarian partridge +spruce grouse +prairie chicken +capercaillie +ruffed grouse +sage grouse +moorhen +black grouse +ptarmigan +cockateel +parakeet +cockatoo +poll +kea +African grey +macaw +amazon +lovebird +lory +popinjay +budgerigar +ring-necked parakeet +sulphur-crested cockatoo +pink cockatoo +rainbow lorikeet +lorikeet +beast of burden +draft animal +ctenophore +worm +mollusk +echinoderm +coelenterate +arthropod +sponge +nematode +annelid +flatworm +medicinal leech +earthworm +chiton +bivalve +cephalopod +gastropod +oyster +ark shell +clam +mussel +cockle +scallop +pearl oyster +soft-shell clam +quahog +giant clam +freshwater mussel +edible mussel +zebra mussel +octopod +chambered nautilus +cuttlefish +octopus +paper nautilus +sea hare +cowrie +conch +seasnail +ormer +tiger cowrie +sea slug +slug +snail +common limpet +whelk +nerita +edible snail +brown snail +garden snail +starfish +feather star +sand dollar +sea urchin +sea cucumber +brittle star +polyp +anthozoan +Portuguese man-of-war +jellyfish +sea pen +sea anemone +coral +stony coral +gorgonian +sea fan +mushroom coral +brain coral +centipede +crustacean +trilobite +millipede +arachnid +horseshoe crab +instar +insect +house centipede +daphnia +brachyuran +mantis shrimp +malacostracan crustacean +decapod crustacean +isopod +amphipod +pill bug +woodlouse +lobster +shrimp +hermit crab +prawn +crab +crayfish +Norway lobster +spiny lobster +American lobster +king crab +blue crab +rock crab +Dungeness crab +fiddler crab +European spider crab +scorpion +harvestman +acarine +spider +tick +mite +wood tick +orb-weaving spider +European wolf spider +tarantula +wolf spider +garden spider +black widow +black and gold garden spider +barn spider +orthopterous insect +hemipterous insect +neuropteron +dictyopterous insect +collembolan +mayfly +homopterous insect +dipterous insect +earwig +common European earwig +phasmid +pollinator +bug +pupa +walking stick +scorpion fly +beetle +heteropterous insect +stonefly +hymenopterous insect +lepidopterous insect +chrysalis +odonate +silverfish +worker bee +grasshopper +cricket +katydid +locust +true bug +bedbug +dobson +green lacewing +lacewing +mantis +praying mantis +cockroach +American cockroach +German cockroach +oriental cockroach +plant louse +cicada +meadow spittlebug +seventeen-year locust +mealybug +leafhopper +aphid +mosquito +crane fly +midge +fruit fly +fly +horse tick +robber fly +Asian tiger mosquito +common mosquito +bee fly +horsefly +flesh fly +blowfly +housefly +greenbottle +bluebottle +Colorado potato beetle +firefly +ground beetle +sawyer +ladybug +lamellicorn beetle +rove beetle +Asian longhorned beetle +leaf beetle +elaterid beetle +click beetle +tiger beetle +weevil +long-horned beetle +Hippodamia convergens +vedalia +scarabaeid beetle +stag beetle +rose chafer +June beetle +Japanese beetle +rhinoceros beetle +dung beetle +scarab +cockchafer +water strider +wheel bug +wasp +ichneumon fly +ant +bee +cicada killer +digger wasp +vespid +hornet +paper wasp +common wasp +giant hornet +yellow jacket +carpenter ant +fire ant +wood ant +carpenter bee +honeybee +mason bee +andrena +leaf-cutting bee +bumblebee +Africanized bee +black bee +butterfly +moth +lycaenid +nymphalid +sulphur butterfly +ringlet +monarch +cabbage butterfly +blue +hairstreak +copper +tortoiseshell +fritillary +admiral +banded purple +peacock +red-spotted purple +painted beauty +mourning cloak +viceroy +red admiral +white admiral +comma +small white +large white +cinnabar +saturniid +noctuid moth +hawkmoth +tea tortrix +geometrid +tineid +atlas moth +emperor +polyphemus moth +cecropia +luna moth +carpet moth +clothes moth +dragonfly +damselfly +hen +filly +dam +herpes +protoctist +herpes simplex +herpes zoster +cytomegalovirus +herpes varicella zoster +alga +protozoan +seagrass +pond scum +green algae +plasmodium +ameba +ciliate +paramecium +sphagnum +hepatica +liverwort +peer +birth +adult +juvenile +countrywoman +businessperson +native +celebrant +native +Filipino +male +Gemini +onlooker +queen +referee +commoner +expert +newcomer +face +demonstrator +orphan +Black woman +contestant +bullfighter +lowerclassman +candidate +friend +life +anomaly +actor +thrower +creature +child +sheep +scuba diver +dancer +garbage man +entertainer +lover +unfortunate +anti +defender +sphinx +Indian +patient +Slav +White +brick +recipient +religious person +rescuer +Latin +money handler +rich person +domestic partner +creator +consumer +worker +groom +boy scout +inhabitant +African +fan +eager beaver +leader +schoolmate +man +philatelist +advocate +eccentric +bad person +transvestite +citizen +communicator +nonworker +parrot +intellectual +nonsmoker +student +chameleon +combatant +platinum blond +appointee +unpleasant person +politician +ruler +ancient +spectator +right-hander +traveler +scientist +picker +female +acquaintance +Black +relative +beard +redhead +sleeper +computer user +associate +participant +member +raiser +groom +bride +commissioner +director +tribesman +board member +important person +professional +oldster +celebrity +very important person +serjeant-at-law +educator +health professional +teacher +reading teacher +schoolmaster +nurse +medical practitioner +pharmacist +head nurse +probationer +doctor +surgeon +specialist +house physician +cardiologist +radiologist +schoolchild +child +bairn +orphan +entrepreneur +baron +agent +merchant +certified public accountant +syndic +insurance broker +fishmonger +vintner +peddler +seller +male child +mother's boy +son +man +cub +farm boy +bat boy +Herr +hunk +Peter Pan +patriarch +adonis +young buck +stud +guy +patriarch +sleuth +archer +authority +military attache +therapist +technician +black belt +high priest +critic +taster +panelist +physical therapist +osteopath +player +athlete +rival +billiard player +medalist +seeded player +chess master +pool player +football player +tennis player +ball hawk +vaulter +runner +skater +acrobat +climber +diver +alpinist +soccer player +winger +tennis pro +forward +sport +basketball player +miler +ballplayer +gymnast +back +lineman +halfback +quarterback +tailback +skateboarder +speedskater +circus acrobat +aerialist +fielder +designated hitter +base runner +minor leaguer +first baseman +outfielder +right fielder +infielder +semifinalist +foe +matador +picador +banderillero +buddy +mate +flatmate +pitcher +closer +right-handed pitcher +folk dancer +square dancer +morris dancer +compere +master of ceremonies +caricaturist +performer +fire-eater +executant +dancer +juggler +puppeteer +actor +clown +musician +dancing-master +ballet dancer +understudy +starlet +tenor saxophonist +percussionist +guitarist +keyboardist +trumpeter +sitar player +singer +oboist +cellist +violist +flutist +organist +rock star +drummer +songster +bass +fiance +darling +fancier +soul mate +sweetheart +kisser +amputee +homeless +casualty +guard +fireman +zoo keeper +lawman +military policeman +attorney general +policeman +bobby +Mountie +detective +motorcycle cop +trooper +traffic cop +Kiliwa +Biloxi +Chickasaw +Kickapoo +Arab +white man +Omani +Bedouin +Yemeni +protegee +heiress +swami +Buddhist +Muslim +novitiate +religious +Muslimah +Sufi +mother +monk +Sister +treasurer +ratepayer +state treasurer +bursar +cobbler +artist +choreographer +farmer +musician +stylist +sculptor +press photographer +songwriter +arranger +beekeeper +breeder +agriculturist +drinker +policyholder +drinker +concert-goer +drunkard +beer drinker +maid +employee +assistant +gondolier +skilled worker +skidder +boatman +waiter +bartender +staff member +salesperson +workman +settler +breadwinner +waitress +salesman +gardener +laborer +mill-hand +hired hand +coal miner +horse wrangler +goat herder +farmhand +attendant +cog +model +escort +caddie +companion +lifeguard +steward +color guard +honor guard +cover girl +artist's model +electrician +official +falconer +balloonist +craftsman +pilot +blacksmith +trawler +mender +baker +serviceman +painter +diplomat +judge +incumbent +appointee +presbyter +ambassador +high commissioner +plenipotentiary +glassblower +carpenter +coiffeur +machinist +wright +hairdresser +fighter pilot +copilot +artilleryman +Navy SEAL +military officer +enlisted person +noncommissioned officer +commanding officer +naval commander +adjutant general +commander in chief +commissioned officer +army officer +adjutant +inspector general +sergeant +first sergeant +staff sergeant +commissioned military officer +commissioned naval officer +line officer +major +lieutenant +first lieutenant +marshal +captain +general +lieutenant colonel +lieutenant commander +rear admiral +soldier +enlisted man +tanker +reservist +Unknown Soldier +private +recruit +yard bird +villager +Tahitian +American +Asian +American +Polynesian +European +New Zealander +North Carolinian +Minnesotan +Nebraskan +Floridian +Afghan +Tibetan +Mongol +Papuan +Indian +Jordanian +Japanese +Malay +Korean +Timorese +Bornean +Lao +Iraqi +Gujarati +Punjabi +West Indian +Latin American +North American +South American +Bahamian +Barbadian +Haitian +Central American +Canadian +Mexican +Nicaraguan +Mexican-American +Bolivian +Guyanese +Albanian +Byelorussian +Monegasque +Frank +Scandinavian +Laconian +Netherlander +Slovene +Sabine +Bulgarian +Romanian +Lithuanian +Englishwoman +Britisher +Yugoslav +Dubliner +Parisian +Eritrean +Tanzanian +Zulu +Black African +Cameroonian +Sudanese +Senegalese +Kenyan +Togolese +Ugandan +Liberian +Herero +Zimbabwean +Nigerian +Gambian +Tuareg +Guinean +Ethiopian +South African +mayor +politician +trainer +employer +Speaker +lawgiver +cheerleader +head +aristocrat +spiritual leader +instigator +mistress +boss +demagogue +Labourite +animal trainer +pitching coach +legislator +deputy +senator +administrator +department head +secretary +manageress +executive +hotelier +chief executive officer +Treasury +minister +Secretary of State +Secretary of the Interior +duchess +viscount +clergyman +lama +rabbi +Dalai Lama +officiant +priest +cleric +vicar +Father +bishop +diocesan +cardinal +metropolitan +federalist +supporter +ambassador +protectionist +loyalist +cheerleader +adulteress +wrongdoer +hypocrite +abettor +skinhead +biographer +disk jockey +speaker +representative +reporter +orator +interlocutor +organ-grinder +head of state +alderman +resident commissioner +President of the United States +president +television reporter +anchor +retiree +sunbather +camper +scholar +exponent +casuist +futurist +licentiate +reader +brawler +boxer +wrestler +flyweight +middleweight +sparring partner +prizefighter +light heavyweight +featherweight +lightweight +heavyweight +flyweight +sumo wrestler +bantamweight +egotist +fire-eater +upstart +bragger +exhibitionist +sovereign +Pharaoh +Cheops +sheik +rider +motorcyclist +musher +astronaut +pedestrian +mover +commuter +pilgrim +skin-diver +settler +tourist +runner +gringo +unicyclist +hang glider +jockey +horseman +saunterer +marcher +hitter +scrambler +psycholinguist +social scientist +lumper +sociologist +political scientist +economist +econometrician +microeconomist +female child +woman +mother's daughter +girl wonder +Boy Scout +Cub Scout +enchantress +lady +old woman +nymph +donna +bridesmaid +smasher +primigravida +signorina +girl +beldam +heroine +widow +call girl +baggage +wife +gal +baby +lass +maid +first lady +old lady +crown princess +father-in-law +cousin +kinswoman +ancestor +kinsman +second cousin +in-law +kin +twin +offspring +sibling +niece +aunt +great-niece +sister +great-aunt +little sister +big sister +parent +forefather +forebear +patriarch +mater +father +mother +dad +old man +great grandparent +grandparent +great grandmother +nan +grandma +grandfather +great-nephew +little brother +grandchild +firstborn +child +successor +granddaughter +great grandchild +great grandson +great granddaughter +baby +godson +premature baby +neonate +shiitake +common stinkhorn +earthball +truffle +hen-of-the-woods +gyromitra +mildew +lichen +white fungus +true slime mold +slime mold +club fungus +earthstar +coral fungus +false morel +puffball +pythium +helvella +giant puffball +Scleroderma citrinum +jelly fungus +agaric +stinkhorn +discomycete +basidiomycete +Phytophthora infestans +Jew's-ear +bolete +powdery mildew +downy mildew +reindeer moss +beard lichen +Iceland moss +lecanora +Sarcoscypha coccinea +Aleuria aurantia +gill fungus +polypore +agaric +mushroom +Polyporus squamosus +bracket fungus +Entoloma lividum +mushroom +inky cap +mushroom +oyster mushroom +deer mushroom +parasol mushroom +fairy-ring mushroom +royal agaric +blewits +honey mushroom +Pholiota squarrosa +lepiota +blushing mushroom +horse mushroom +nameko +winter mushroom +false deathcap +shaggymane +destroying angel +toadstool +chanterelle +meadow mushroom +death cap +fly agaric +morel +common morel +black morel +Boletus edulis +Boletus luridus +Boletus chrysenteron +somatic cell +histiocyte +leukocyte +lymphocyte +neutrophil +nest +tangle +radiator +plant part +rock +comet +cadaver +star +snowdrift +covering +aerie +wasp's nest +lip +tendril +plant organ +mycelium +reproductive structure +leaf +root +stalk +hypanthium +flower +fruit +pistil +rosebud +inflorescence +floret +umbel +flower cluster +panicle +olive +ear +buckthorn berry +berry +wild cherry +acorn +rowanberry +mealie +gourd +seed +hip +juniper berry +pod +corn +coffee bean +nut +buckeye +oilseed +bean +edible seed +edible nut +pine nut +macadamia nut +pistachio +hazelnut +walnut +cashew +chestnut +pecan +peanut +coconut +linseed +rapeseed +broad bean +soy +cumin +sunflower seed +pumpkin seed +legume +okra +chickpea +pea +cowpea +garden pea +lentil +dandelion green +frond +petal +cassava +chicory +tuber +spadix +branchlet +bulb +petiole +scape +cornstalk +rattan +Jerusalem artichoke +yam +squill +onion +belay +outcrop +tor +supernova +sun +shell +bracteole +shell +cassia bark +snowcap +perianth +body covering +roof +seashell +scallop shell +oyster shell +exoskeleton +cuticle +plastron +skin +hair +scapular +hairdo +forelock +encolure +facial hair +pigtail +thatch +pompadour +mustache +beard +mustachio +soup-strainer +stubble +soul patch +weather +dust storm +cloud +snow +wave diff --git a/data/coco9k.map b/data/coco9k.map new file mode 100644 index 00000000..5155b652 --- /dev/null +++ b/data/coco9k.map @@ -0,0 +1,80 @@ +5177 +3768 +3802 +3800 +4107 +4072 +4071 +3797 +4097 +2645 +5150 +2644 +3257 +2523 +6527 +6866 +6912 +7342 +7255 +7271 +7217 +6858 +7343 +7233 +3704 +4374 +3641 +5001 +3899 +2999 +2631 +5141 +2015 +1133 +1935 +1930 +5144 +5143 +2371 +3916 +3745 +3640 +4749 +4736 +4735 +3678 +58 +42 +771 +81 +152 +141 +786 +700 +218 +791 +2518 +2521 +3637 +2458 +2505 +2519 +3499 +2837 +3503 +2597 +3430 +2080 +5103 +5111 +5102 +3013 +5096 +1102 +3218 +4010 +2266 +1127 +5122 +2360 diff --git a/data/inet9k.map b/data/inet9k.map new file mode 100644 index 00000000..c91b3c15 --- /dev/null +++ b/data/inet9k.map @@ -0,0 +1,200 @@ +2687 +4107 +8407 +7254 +42 +6797 +127 +2268 +2442 +3704 +260 +1970 +58 +4443 +2661 +2043 +2039 +4858 +4007 +6858 +8408 +166 +2523 +3768 +4347 +6527 +2446 +5005 +3274 +3678 +4918 +709 +4072 +8428 +7223 +2251 +3802 +3848 +7271 +2677 +8267 +2849 +2518 +2738 +3746 +5105 +3430 +3503 +2249 +1841 +2032 +2358 +122 +3984 +4865 +3246 +5095 +6912 +6878 +8467 +2741 +1973 +3057 +7217 +1872 +44 +2452 +3637 +2704 +6917 +2715 +6734 +2325 +6864 +6677 +2035 +1949 +338 +2664 +5122 +1844 +784 +2223 +7188 +2719 +2670 +4830 +158 +4818 +7228 +1965 +7342 +786 +2095 +8281 +8258 +7406 +3915 +8382 +2437 +2837 +82 +6871 +1876 +7447 +8285 +5007 +2740 +3463 +5103 +3755 +4910 +6809 +3800 +118 +3396 +3092 +2709 +81 +7105 +4036 +2366 +1846 +5177 +2684 +64 +2041 +3919 +700 +3724 +1742 +39 +807 +7184 +2256 +235 +2778 +2996 +2030 +3714 +7167 +2369 +6705 +6861 +5096 +2597 +2166 +2036 +3228 +3747 +2711 +8300 +2226 +7153 +7255 +2631 +7109 +8242 +7445 +3776 +3803 +3690 +2025 +2521 +2316 +7190 +8249 +3352 +2639 +2887 +100 +4219 +3344 +5008 +7224 +3351 +2434 +2074 +2034 +8304 +5004 +6868 +5102 +2645 +4071 +2716 +2717 +7420 +3499 +3763 +5084 +2676 +2046 +5107 +5097 +3944 +4097 +7132 +3956 +7343 diff --git a/src/box.c b/src/box.c index 95685991..39dea067 100644 --- a/src/box.c +++ b/src/box.c @@ -246,6 +246,34 @@ int nms_comparator(const void *pa, const void *pb) return 0; } +void do_nms_obj(box *boxes, float **probs, int total, int classes, float thresh) +{ + int i, j, k; + sortable_bbox *s = calloc(total, sizeof(sortable_bbox)); + + for(i = 0; i < total; ++i){ + s[i].index = i; + s[i].class = classes; + s[i].probs = probs; + } + + qsort(s, total, sizeof(sortable_bbox), nms_comparator); + for(i = 0; i < total; ++i){ + if(probs[s[i].index][classes] == 0) continue; + box a = boxes[s[i].index]; + for(j = i+1; j < total; ++j){ + box b = boxes[s[j].index]; + if (box_iou(a, b) > thresh){ + for(k = 0; k < classes+1; ++k){ + probs[s[j].index][k] = 0; + } + } + } + } + free(s); +} + + void do_nms_sort(box *boxes, float **probs, int total, int classes, float thresh) { int i, j, k; diff --git a/src/box.h b/src/box.h index a5f8cee3..c65589b9 100644 --- a/src/box.h +++ b/src/box.h @@ -15,6 +15,7 @@ float box_rmse(box a, box b); dbox diou(box a, box b); void do_nms(box *boxes, float **probs, int total, int classes, float thresh); void do_nms_sort(box *boxes, float **probs, int total, int classes, float thresh); +void do_nms_obj(box *boxes, float **probs, int total, int classes, float thresh); box decode_box(box b, box anchor); box encode_box(box b, box anchor); diff --git a/src/coco.c b/src/coco.c index f684feea..8f3c9682 100644 --- a/src/coco.c +++ b/src/coco.c @@ -384,5 +384,5 @@ void run_coco(int argc, char **argv) else if(0==strcmp(argv[2], "train")) train_coco(cfg, weights); else if(0==strcmp(argv[2], "valid")) validate_coco(cfg, weights); else if(0==strcmp(argv[2], "recall")) validate_coco_recall(cfg, weights); - else if(0==strcmp(argv[2], "demo")) demo(cfg, weights, thresh, cam_index, filename, coco_classes, 80, frame_skip, prefix); + else if(0==strcmp(argv[2], "demo")) demo(cfg, weights, thresh, cam_index, filename, coco_classes, 80, frame_skip, prefix, .5); } diff --git a/src/convolutional_kernels.cu b/src/convolutional_kernels.cu index ae9df8f0..fcaea031 100644 --- a/src/convolutional_kernels.cu +++ b/src/convolutional_kernels.cu @@ -127,6 +127,7 @@ void forward_convolutional_layer_gpu(convolutional_layer l, network_state state) void backward_convolutional_layer_gpu(convolutional_layer l, network_state state) { + //constrain_ongpu(l.outputs*l.batch, 1, l.delta_gpu, 1); gradient_array_ongpu(l.output_gpu, l.outputs*l.batch, l.activation, l.delta_gpu); backward_bias_gpu(l.bias_updates_gpu, l.delta_gpu, l.batch, l.n, l.out_w*l.out_h); diff --git a/src/cpu_gemm.c b/src/cpu_gemm.c deleted file mode 100644 index 29c9ff37..00000000 --- a/src/cpu_gemm.c +++ /dev/null @@ -1,91 +0,0 @@ -#include "mini_blas.h" - -void cpu_gemm_nn(int TA, int TB, int M, int N, int K, float ALPHA, - float *A, int lda, - float *B, int ldb, - float BETA, - float *C, int ldc) -{ - int i,j,k; - for(i = 0; i < M; ++i){ - for(k = 0; k < K; ++k){ - register float A_PART = ALPHA*A[i*lda+k]; - for(j = 0; j < N; ++j){ - C[i*ldc+j] += A_PART*B[k*ldb+j]; - } - } - } -} - -void cpu_gemm_nt(int TA, int TB, int M, int N, int K, float ALPHA, - float *A, int lda, - float *B, int ldb, - float BETA, - float *C, int ldc) -{ - int i,j,k; - for(i = 0; i < M; ++i){ - for(j = 0; j < N; ++j){ - register float sum = 0; - for(k = 0; k < K; ++k){ - sum += ALPHA*A[i*lda+k]*B[k+j*ldb]; - } - C[i*ldc+j] += sum; - } - } -} - -void cpu_gemm_tn(int TA, int TB, int M, int N, int K, float ALPHA, - float *A, int lda, - float *B, int ldb, - float BETA, - float *C, int ldc) -{ - int i,j,k; - for(i = 0; i < M; ++i){ - for(k = 0; k < K; ++k){ - register float A_PART = ALPHA*A[k*lda+i]; - for(j = 0; j < N; ++j){ - C[i*ldc+j] += A_PART*B[k*ldb+j]; - } - } - } -} -void cpu_gemm_tt(int TA, int TB, int M, int N, int K, float ALPHA, - float *A, int lda, - float *B, int ldb, - float BETA, - float *C, int ldc) -{ - int i,j,k; - for(i = 0; i < M; ++i){ - for(j = 0; j < N; ++j){ - for(k = 0; k < K; ++k){ - C[i*ldc+j] += ALPHA*A[i+k*lda]*B[k+j*ldb]; - } - } - } -} - - -void cpu_gemm(int TA, int TB, int M, int N, int K, float ALPHA, - float *A, int lda, - float *B, int ldb, - float BETA, - float *C, int ldc) -{ - int i, j; - for(i = 0; i < M; ++i){ - for(j = 0; j < N; ++j){ - C[i*ldc + j] *= BETA; - } - } - if(!TA && !TB) - cpu_gemm_nn( TA, TB, M, N, K, ALPHA,A,lda, B, ldb,BETA,C,ldc); - else if(TA && !TB) - cpu_gemm_tn( TA, TB, M, N, K, ALPHA,A,lda, B, ldb,BETA,C,ldc); - else if(!TA && TB) - cpu_gemm_nt( TA, TB, M, N, K, ALPHA,A,lda, B, ldb,BETA,C,ldc); - else - cpu_gemm_tt( TA, TB, M, N, K, ALPHA,A,lda, B, ldb,BETA,C,ldc); -} diff --git a/src/darknet.c b/src/darknet.c index 627b6dbd..6e560728 100644 --- a/src/darknet.c +++ b/src/darknet.c @@ -13,7 +13,7 @@ #endif extern void predict_classifier(char *datacfg, char *cfgfile, char *weightfile, char *filename, int top); -extern void test_detector(char *datacfg, char *cfgfile, char *weightfile, char *filename, float thresh); +extern void test_detector(char *datacfg, char *cfgfile, char *weightfile, char *filename, float thresh, float hier_thresh); extern void run_voxel(int argc, char **argv); extern void run_yolo(int argc, char **argv); extern void run_detector(int argc, char **argv); @@ -129,7 +129,9 @@ void oneoff(char *cfgfile, char *weightfile, char *outfile) network net = parse_network_cfg(cfgfile); int oldn = net.layers[net.n - 2].n; int c = net.layers[net.n - 2].c; - net.layers[net.n - 2].n = 9372; + scal_cpu(oldn*c, .1, net.layers[net.n - 2].weights, 1); + scal_cpu(oldn, 0, net.layers[net.n - 2].biases, 1); + net.layers[net.n - 2].n = 9418; net.layers[net.n - 2].biases += 5; net.layers[net.n - 2].weights += 5*c; if(weightfile){ @@ -383,7 +385,7 @@ int main(int argc, char **argv) } else if (0 == strcmp(argv[1], "detect")){ float thresh = find_float_arg(argc, argv, "-thresh", .24); char *filename = (argc > 4) ? argv[4]: 0; - test_detector("cfg/coco.data", argv[2], argv[3], filename, thresh); + test_detector("cfg/coco.data", argv[2], argv[3], filename, thresh, .5); } else if (0 == strcmp(argv[1], "cifar")){ run_cifar(argc, argv); } else if (0 == strcmp(argv[1], "go")){ diff --git a/src/data.c b/src/data.c index 8fb1a258..05e5a91b 100644 --- a/src/data.c +++ b/src/data.c @@ -267,7 +267,7 @@ void fill_truth_region(char *path, float *truth, int classes, int num_boxes, int h = boxes[i].h; id = boxes[i].id; - if (w < .01 || h < .01) continue; + if (w < .005 || h < .005) continue; int col = (int)(x*num_boxes); int row = (int)(y*num_boxes); @@ -317,7 +317,7 @@ void fill_truth_detection(char *path, int num_boxes, float *truth, int classes, h = boxes[i].h; id = boxes[i].id; - if ((w < .01 || h < .01)) continue; + if ((w < .005 || h < .005)) continue; truth[i*5+0] = x; truth[i*5+1] = y; diff --git a/src/demo.c b/src/demo.c index 19eaee17..7818bc3b 100644 --- a/src/demo.c +++ b/src/demo.c @@ -31,6 +31,7 @@ static image disp = {0}; static CvCapture * cap; static float fps = 0; static float demo_thresh = 0; +static float demo_hier_thresh = .5; static float *predictions[FRAMES]; static int demo_index = 0; @@ -63,7 +64,7 @@ void *detect_in_thread(void *ptr) if(l.type == DETECTION){ get_detection_boxes(l, 1, 1, demo_thresh, probs, boxes, 0); } else if (l.type == REGION){ - get_region_boxes(l, 1, 1, demo_thresh, probs, boxes, 0, 0); + get_region_boxes(l, 1, 1, demo_thresh, probs, boxes, 0, 0, demo_hier_thresh); } else { error("Last layer must produce detections\n"); } @@ -91,7 +92,7 @@ double get_wall_time() return (double)time.tv_sec + (double)time.tv_usec * .000001; } -void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix) +void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix, float hier_thresh) { //skip = frame_skip; image **alphabet = load_alphabet(); @@ -100,6 +101,7 @@ void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const ch demo_alphabet = alphabet; demo_classes = classes; demo_thresh = thresh; + demo_hier_thresh = hier_thresh; printf("Demo\n"); net = parse_network_cfg(cfgfile); if(weightfile){ @@ -127,7 +129,7 @@ void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const ch boxes = (box *)calloc(l.w*l.h*l.n, sizeof(box)); probs = (float **)calloc(l.w*l.h*l.n, sizeof(float *)); - for(j = 0; j < l.w*l.h*l.n; ++j) probs[j] = (float *)calloc(l.classes, sizeof(float *)); + for(j = 0; j < l.w*l.h*l.n; ++j) probs[j] = (float *)calloc(l.classes, sizeof(float)); pthread_t fetch_thread; pthread_t detect_thread; @@ -213,7 +215,7 @@ void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const ch } } #else -void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix) +void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix, float hier_thresh) { fprintf(stderr, "Demo needs OpenCV for webcam images.\n"); } diff --git a/src/demo.h b/src/demo.h index 5f922717..c3d6a61a 100644 --- a/src/demo.h +++ b/src/demo.h @@ -2,6 +2,6 @@ #define DEMO #include "image.h" -void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix); +void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix, float hier_thresh); #endif diff --git a/src/detector.c b/src/detector.c index a389407a..1416c050 100644 --- a/src/detector.c +++ b/src/detector.c @@ -81,7 +81,7 @@ void train_detector(char *datacfg, char *cfgfile, char *weightfile, int *gpus, i if(l.random && count++%10 == 0){ printf("Resizing\n"); int dim = (rand() % 10 + 10) * 32; - if (get_current_batch(net)+100 > net.max_batches) dim = 544; + if (get_current_batch(net)+200 > net.max_batches) dim = 608; //int dim = (rand() % 4 + 16) * 32; printf("%d\n", dim); args.w = dim; @@ -231,7 +231,7 @@ void print_imagenet_detections(FILE *fp, int id, box *boxes, float **probs, int } } -void validate_detector(char *datacfg, char *cfgfile, char *weightfile) +void validate_detector(char *datacfg, char *cfgfile, char *weightfile, char *outfile) { int j; list *options = read_data_cfg(datacfg); @@ -251,7 +251,6 @@ void validate_detector(char *datacfg, char *cfgfile, char *weightfile) fprintf(stderr, "Learning Rate: %g, Momentum: %g, Decay: %g\n", net.learning_rate, net.momentum, net.decay); srand(time(0)); - char *base = "comp4_det_test_"; list *plist = get_paths(valid_images); char **paths = (char **)list_to_array(plist); @@ -265,19 +264,22 @@ void validate_detector(char *datacfg, char *cfgfile, char *weightfile) int coco = 0; int imagenet = 0; if(0==strcmp(type, "coco")){ - snprintf(buff, 1024, "%s/coco_results.json", prefix); + if(!outfile) outfile = "coco_results"; + snprintf(buff, 1024, "%s/%s.json", prefix, outfile); fp = fopen(buff, "w"); fprintf(fp, "[\n"); coco = 1; } else if(0==strcmp(type, "imagenet")){ - snprintf(buff, 1024, "%s/imagenet-detection.txt", prefix); + if(!outfile) outfile = "imagenet-detection"; + snprintf(buff, 1024, "%s/%s.txt", prefix, outfile); fp = fopen(buff, "w"); imagenet = 1; classes = 200; } else { + if(!outfile) outfile = "comp4_det_test_"; fps = calloc(classes, sizeof(FILE *)); for(j = 0; j < classes; ++j){ - snprintf(buff, 1024, "%s/%s%s.txt", prefix, base, names[j]); + snprintf(buff, 1024, "%s/%s%s.txt", prefix, outfile, names[j]); fps[j] = fopen(buff, "w"); } } @@ -333,7 +335,7 @@ void validate_detector(char *datacfg, char *cfgfile, char *weightfile) network_predict(net, X); int w = val[t].w; int h = val[t].h; - get_region_boxes(l, w, h, thresh, probs, boxes, 0, map); + get_region_boxes(l, w, h, thresh, probs, boxes, 0, map, .5); if (nms) do_nms_sort(boxes, probs, l.w*l.h*l.n, classes, nms); if (coco){ print_cocos(fp, path, boxes, probs, l.w*l.h*l.n, classes, w, h); @@ -397,7 +399,7 @@ void validate_detector_recall(char *cfgfile, char *weightfile) image sized = resize_image(orig, net.w, net.h); char *id = basecfg(path); network_predict(net, sized.data); - get_region_boxes(l, 1, 1, thresh, probs, boxes, 1, 0); + get_region_boxes(l, 1, 1, thresh, probs, boxes, 1, 0, .5); if (nms) do_nms(boxes, probs, l.w*l.h*l.n, 1, nms); char labelpath[4096]; @@ -436,7 +438,7 @@ void validate_detector_recall(char *cfgfile, char *weightfile) } } -void test_detector(char *datacfg, char *cfgfile, char *weightfile, char *filename, float thresh) +void test_detector(char *datacfg, char *cfgfile, char *weightfile, char *filename, float thresh, float hier_thresh) { list *options = read_data_cfg(datacfg); char *name_list = option_find_str(options, "names", "data/names.list"); @@ -470,14 +472,15 @@ void test_detector(char *datacfg, char *cfgfile, char *weightfile, char *filenam box *boxes = calloc(l.w*l.h*l.n, sizeof(box)); float **probs = calloc(l.w*l.h*l.n, sizeof(float *)); - for(j = 0; j < l.w*l.h*l.n; ++j) probs[j] = calloc(l.classes, sizeof(float *)); + for(j = 0; j < l.w*l.h*l.n; ++j) probs[j] = calloc(l.classes + 1, sizeof(float *)); float *X = sized.data; time=clock(); network_predict(net, X); printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time)); - get_region_boxes(l, 1, 1, thresh, probs, boxes, 0, 0); - if (nms) do_nms_sort(boxes, probs, l.w*l.h*l.n, l.classes, nms); + get_region_boxes(l, 1, 1, thresh, probs, boxes, 0, 0, hier_thresh); + if (l.softmax_tree && nms) do_nms_obj(boxes, probs, l.w*l.h*l.n, l.classes, nms); + else if (nms) do_nms_sort(boxes, probs, l.w*l.h*l.n, l.classes, nms); draw_detections(im, l.w*l.h*l.n, thresh, boxes, probs, names, alphabet, l.classes); save_image(im, "predictions"); show_image(im, "predictions"); @@ -498,6 +501,7 @@ void run_detector(int argc, char **argv) { char *prefix = find_char_arg(argc, argv, "-prefix", 0); float thresh = find_float_arg(argc, argv, "-thresh", .24); + float hier_thresh = find_float_arg(argc, argv, "-hier", .5); int cam_index = find_int_arg(argc, argv, "-c", 0); int frame_skip = find_int_arg(argc, argv, "-s", 0); if(argc < 4){ @@ -505,6 +509,7 @@ void run_detector(int argc, char **argv) return; } char *gpu_list = find_char_arg(argc, argv, "-gpus", 0); + char *outfile = find_char_arg(argc, argv, "-out", 0); int *gpus = 0; int gpu = 0; int ngpus = 0; @@ -533,15 +538,15 @@ void run_detector(int argc, char **argv) char *cfg = argv[4]; char *weights = (argc > 5) ? argv[5] : 0; char *filename = (argc > 6) ? argv[6]: 0; - if(0==strcmp(argv[2], "test")) test_detector(datacfg, cfg, weights, filename, thresh); + if(0==strcmp(argv[2], "test")) test_detector(datacfg, cfg, weights, filename, thresh, hier_thresh); else if(0==strcmp(argv[2], "train")) train_detector(datacfg, cfg, weights, gpus, ngpus, clear); - else if(0==strcmp(argv[2], "valid")) validate_detector(datacfg, cfg, weights); + else if(0==strcmp(argv[2], "valid")) validate_detector(datacfg, cfg, weights, outfile); else if(0==strcmp(argv[2], "recall")) validate_detector_recall(cfg, weights); else if(0==strcmp(argv[2], "demo")) { list *options = read_data_cfg(datacfg); int classes = option_find_int(options, "classes", 20); char *name_list = option_find_str(options, "names", "data/names.list"); char **names = get_labels(name_list); - demo(cfg, weights, thresh, cam_index, filename, names, classes, frame_skip, prefix); + demo(cfg, weights, thresh, cam_index, filename, names, classes, frame_skip, prefix, hier_thresh); } } diff --git a/src/layer.c b/src/layer.c index ccd0daf0..622cf268 100644 --- a/src/layer.c +++ b/src/layer.c @@ -11,34 +11,88 @@ void free_layer(layer l) #endif return; } - if(l.indexes) free(l.indexes); - if(l.rand) free(l.rand); - if(l.cost) free(l.cost); - if(l.biases) free(l.biases); - if(l.bias_updates) free(l.bias_updates); - if(l.weights) free(l.weights); - if(l.weight_updates) free(l.weight_updates); - if(l.col_image) free(l.col_image); - if(l.input_layers) free(l.input_layers); - if(l.input_sizes) free(l.input_sizes); - if(l.delta) free(l.delta); - if(l.output) free(l.output); - if(l.squared) free(l.squared); - if(l.norms) free(l.norms); + if(l.cweights) free(l.cweights); + if(l.indexes) free(l.indexes); + if(l.input_layers) free(l.input_layers); + if(l.input_sizes) free(l.input_sizes); + if(l.map) free(l.map); + if(l.rand) free(l.rand); + if(l.cost) free(l.cost); + if(l.state) free(l.state); + if(l.prev_state) free(l.prev_state); + if(l.forgot_state) free(l.forgot_state); + if(l.forgot_delta) free(l.forgot_delta); + if(l.state_delta) free(l.state_delta); + if(l.concat) free(l.concat); + if(l.concat_delta) free(l.concat_delta); + if(l.binary_weights) free(l.binary_weights); + if(l.biases) free(l.biases); + if(l.bias_updates) free(l.bias_updates); + if(l.scales) free(l.scales); + if(l.scale_updates) free(l.scale_updates); + if(l.weights) free(l.weights); + if(l.weight_updates) free(l.weight_updates); + if(l.col_image) free(l.col_image); + if(l.delta) free(l.delta); + if(l.output) free(l.output); + if(l.squared) free(l.squared); + if(l.norms) free(l.norms); + if(l.spatial_mean) free(l.spatial_mean); + if(l.mean) free(l.mean); + if(l.variance) free(l.variance); + if(l.mean_delta) free(l.mean_delta); + if(l.variance_delta) free(l.variance_delta); + if(l.rolling_mean) free(l.rolling_mean); + if(l.rolling_variance) free(l.rolling_variance); + if(l.x) free(l.x); + if(l.x_norm) free(l.x_norm); + if(l.m) free(l.m); + if(l.v) free(l.v); + if(l.z_cpu) free(l.z_cpu); + if(l.r_cpu) free(l.r_cpu); + if(l.h_cpu) free(l.h_cpu); + if(l.binary_input) free(l.binary_input); #ifdef GPU - if(l.indexes_gpu) cuda_free((float *)l.indexes_gpu); - if(l.weights_gpu) cuda_free(l.weights_gpu); - if(l.weight_updates_gpu) cuda_free(l.weight_updates_gpu); - if(l.col_image_gpu) cuda_free(l.col_image_gpu); - if(l.weights_gpu) cuda_free(l.weights_gpu); - if(l.biases_gpu) cuda_free(l.biases_gpu); - if(l.weight_updates_gpu) cuda_free(l.weight_updates_gpu); - if(l.bias_updates_gpu) cuda_free(l.bias_updates_gpu); - if(l.output_gpu) cuda_free(l.output_gpu); - if(l.delta_gpu) cuda_free(l.delta_gpu); - if(l.rand_gpu) cuda_free(l.rand_gpu); - if(l.squared_gpu) cuda_free(l.squared_gpu); - if(l.norms_gpu) cuda_free(l.norms_gpu); + if(l.indexes_gpu) cuda_free((float *)l.indexes_gpu); + + if(l.z_gpu) cuda_free(l.z_gpu); + if(l.r_gpu) cuda_free(l.r_gpu); + if(l.h_gpu) cuda_free(l.h_gpu); + if(l.m_gpu) cuda_free(l.m_gpu); + if(l.v_gpu) cuda_free(l.v_gpu); + if(l.prev_state_gpu) cuda_free(l.prev_state_gpu); + if(l.forgot_state_gpu) cuda_free(l.forgot_state_gpu); + if(l.forgot_delta_gpu) cuda_free(l.forgot_delta_gpu); + if(l.state_gpu) cuda_free(l.state_gpu); + if(l.state_delta_gpu) cuda_free(l.state_delta_gpu); + if(l.gate_gpu) cuda_free(l.gate_gpu); + if(l.gate_delta_gpu) cuda_free(l.gate_delta_gpu); + if(l.save_gpu) cuda_free(l.save_gpu); + if(l.save_delta_gpu) cuda_free(l.save_delta_gpu); + if(l.concat_gpu) cuda_free(l.concat_gpu); + if(l.concat_delta_gpu) cuda_free(l.concat_delta_gpu); + if(l.binary_input_gpu) cuda_free(l.binary_input_gpu); + if(l.binary_weights_gpu) cuda_free(l.binary_weights_gpu); + if(l.mean_gpu) cuda_free(l.mean_gpu); + if(l.variance_gpu) cuda_free(l.variance_gpu); + if(l.rolling_mean_gpu) cuda_free(l.rolling_mean_gpu); + if(l.rolling_variance_gpu) cuda_free(l.rolling_variance_gpu); + if(l.variance_delta_gpu) cuda_free(l.variance_delta_gpu); + if(l.mean_delta_gpu) cuda_free(l.mean_delta_gpu); + if(l.col_image_gpu) cuda_free(l.col_image_gpu); + if(l.x_gpu) cuda_free(l.x_gpu); + if(l.x_norm_gpu) cuda_free(l.x_norm_gpu); + if(l.weights_gpu) cuda_free(l.weights_gpu); + if(l.weight_updates_gpu) cuda_free(l.weight_updates_gpu); + if(l.biases_gpu) cuda_free(l.biases_gpu); + if(l.bias_updates_gpu) cuda_free(l.bias_updates_gpu); + if(l.scales_gpu) cuda_free(l.scales_gpu); + if(l.scale_updates_gpu) cuda_free(l.scale_updates_gpu); + if(l.output_gpu) cuda_free(l.output_gpu); + if(l.delta_gpu) cuda_free(l.delta_gpu); + if(l.rand_gpu) cuda_free(l.rand_gpu); + if(l.squared_gpu) cuda_free(l.squared_gpu); + if(l.norms_gpu) cuda_free(l.norms_gpu); #endif } diff --git a/src/layer.h b/src/layer.h index eb480c00..806542bb 100644 --- a/src/layer.h +++ b/src/layer.h @@ -99,14 +99,7 @@ struct layer{ float B1; float B2; float eps; - float *m_gpu; - float *v_gpu; int t; - float *m; - float *v; - - tree *softmax_tree; - int *map; float alpha; float beta; @@ -129,33 +122,34 @@ struct layer{ float probability; float scale; - int *indexes; - float *rand; - float *cost; - char *cweights; - float *state; - float *prev_state; - float *forgot_state; - float *forgot_delta; - float *state_delta; - - float *concat; - float *concat_delta; - - float *binary_weights; - - float *biases; - float *bias_updates; - - float *scales; - float *scale_updates; - - float *weights; - float *weight_updates; - - float *col_image; + char * cweights; + int * indexes; int * input_layers; int * input_sizes; + int * map; + float * rand; + float * cost; + float * state; + float * prev_state; + float * forgot_state; + float * forgot_delta; + float * state_delta; + + float * concat; + float * concat_delta; + + float * binary_weights; + + float * biases; + float * bias_updates; + + float * scales; + float * scale_updates; + + float * weights; + float * weight_updates; + + float * col_image; float * delta; float * output; float * squared; @@ -174,6 +168,15 @@ struct layer{ float * x; float * x_norm; + float * m; + float * v; + + float * z_cpu; + float * r_cpu; + float * h_cpu; + + float * binary_input; + struct layer *input_layer; struct layer *self_layer; struct layer *output_layer; @@ -194,20 +197,20 @@ struct layer{ struct layer *input_h_layer; struct layer *state_h_layer; - float *z_cpu; - float *r_cpu; - float *h_cpu; - - float *binary_input; + tree *softmax_tree; size_t workspace_size; #ifdef GPU + int *indexes_gpu; + float *z_gpu; float *r_gpu; float *h_gpu; - int *indexes_gpu; + float *m_gpu; + float *v_gpu; + float * prev_state_gpu; float * forgot_state_gpu; float * forgot_delta_gpu; diff --git a/src/parser.c b/src/parser.c index 87a64919..3f39a138 100644 --- a/src/parser.c +++ b/src/parser.c @@ -826,7 +826,7 @@ void save_weights_upto(network net, char *filename, int cutoff) } #endif fprintf(stderr, "Saving weights to %s\n", filename); - FILE *fp = fopen(filename, "w"); + FILE *fp = fopen(filename, "wb"); if(!fp) file_error(filename); int major = 0; diff --git a/src/region_layer.c b/src/region_layer.c index 9095b3ce..f5522c3f 100644 --- a/src/region_layer.c +++ b/src/region_layer.c @@ -9,11 +9,9 @@ #include #include -#define DOABS 1 - -region_layer make_region_layer(int batch, int w, int h, int n, int classes, int coords) +layer make_region_layer(int batch, int w, int h, int n, int classes, int coords) { - region_layer l = {0}; + layer l = {0}; l.type = REGION; l.n = n; @@ -75,12 +73,8 @@ box get_region_box(float *x, float *biases, int n, int index, int i, int j, int box b; b.x = (i + logistic_activate(x[index + 0])) / w; b.y = (j + logistic_activate(x[index + 1])) / h; - b.w = exp(x[index + 2]) * biases[2*n]; - b.h = exp(x[index + 3]) * biases[2*n+1]; - if(DOABS){ - b.w = exp(x[index + 2]) * biases[2*n] / w; - b.h = exp(x[index + 3]) * biases[2*n+1] / h; - } + b.w = exp(x[index + 2]) * biases[2*n] / w; + b.h = exp(x[index + 3]) * biases[2*n+1] / h; return b; } @@ -91,12 +85,8 @@ float delta_region_box(box truth, float *x, float *biases, int n, int index, int float tx = (truth.x*w - i); float ty = (truth.y*h - j); - float tw = log(truth.w / biases[2*n]); - float th = log(truth.h / biases[2*n + 1]); - if(DOABS){ - tw = log(truth.w*w / biases[2*n]); - th = log(truth.h*h / biases[2*n + 1]); - } + float tw = log(truth.w*w / biases[2*n]); + float th = log(truth.h*h / biases[2*n + 1]); delta[index + 0] = scale * (tx - logistic_activate(x[index + 0])) * logistic_gradient(logistic_activate(x[index + 0])); delta[index + 1] = scale * (ty - logistic_activate(x[index + 1])) * logistic_gradient(logistic_activate(x[index + 1])); @@ -141,14 +131,14 @@ float tisnan(float x) } void softmax_tree(float *input, int batch, int inputs, float temp, tree *hierarchy, float *output); -void forward_region_layer(const region_layer l, network_state state) +void forward_region_layer(const layer l, network_state state) { int i,j,b,t,n; int size = l.coords + l.classes + 1; memcpy(l.output, state.input, l.outputs*l.batch*sizeof(float)); - #ifndef GPU +#ifndef GPU flatten(l.output, l.w*l.h, size*l.n, l.batch, 1); - #endif +#endif for (b = 0; b < l.batch; ++b){ for(i = 0; i < l.h*l.w*l.n; ++i){ int index = size*i + b*l.outputs; @@ -197,6 +187,7 @@ void forward_region_layer(const region_layer l, network_state state) for(n = 0; n < l.n*l.w*l.h; ++n){ int index = size*n + b*l.outputs + 5; float scale = l.output[index-1]; + l.delta[index - 1] = l.noobject_scale * ((0 - l.output[index - 1]) * logistic_gradient(l.output[index - 1])); float p = scale*get_hierarchy_probability(l.output + index, l.softmax_tree, class); if(p > maxp){ maxp = p; @@ -205,6 +196,8 @@ void forward_region_layer(const region_layer l, network_state state) } int index = size*maxi + b*l.outputs + 5; delta_region_class(l.output, l.delta, index, class, l.classes, l.softmax_tree, l.class_scale, &avg_cat); + if(l.output[index - 1] < .3) l.delta[index - 1] = l.object_scale * ((.3 - l.output[index - 1]) * logistic_gradient(l.output[index - 1])); + else l.delta[index - 1] = 0; ++class_count; onlyclass = 1; break; @@ -218,39 +211,26 @@ void forward_region_layer(const region_layer l, network_state state) int index = size*(j*l.w*l.n + i*l.n + n) + b*l.outputs; box pred = get_region_box(l.output, l.biases, n, index, i, j, l.w, l.h); float best_iou = 0; - int best_class = -1; for(t = 0; t < 30; ++t){ box truth = float_to_box(state.truth + t*5 + b*l.truths); if(!truth.x) break; float iou = box_iou(pred, truth); if (iou > best_iou) { - best_class = state.truth[t*5 + b*l.truths + 4]; best_iou = iou; } } avg_anyobj += l.output[index + 4]; l.delta[index + 4] = l.noobject_scale * ((0 - l.output[index + 4]) * logistic_gradient(l.output[index + 4])); - if(l.classfix == -1) l.delta[index + 4] = l.noobject_scale * ((best_iou - l.output[index + 4]) * logistic_gradient(l.output[index + 4])); - else{ - if (best_iou > l.thresh) { - l.delta[index + 4] = 0; - if(l.classfix > 0){ - delta_region_class(l.output, l.delta, index + 5, best_class, l.classes, l.softmax_tree, l.class_scale*(l.classfix == 2 ? l.output[index + 4] : 1), &avg_cat); - ++class_count; - } - } + if (best_iou > l.thresh) { + l.delta[index + 4] = 0; } if(*(state.net.seen) < 12800){ box truth = {0}; truth.x = (i + .5)/l.w; truth.y = (j + .5)/l.h; - truth.w = l.biases[2*n]; - truth.h = l.biases[2*n+1]; - if(DOABS){ - truth.w = l.biases[2*n]/l.w; - truth.h = l.biases[2*n+1]/l.h; - } + truth.w = l.biases[2*n]/l.w; + truth.h = l.biases[2*n+1]/l.h; delta_region_box(truth, l.output, l.biases, n, index, i, j, l.w, l.h, l.delta, .01); } } @@ -274,12 +254,8 @@ void forward_region_layer(const region_layer l, network_state state) int index = size*(j*l.w*l.n + i*l.n + n) + b*l.outputs; box pred = get_region_box(l.output, l.biases, n, index, i, j, l.w, l.h); if(l.bias_match){ - pred.w = l.biases[2*n]; - pred.h = l.biases[2*n+1]; - if(DOABS){ - pred.w = l.biases[2*n]/l.w; - pred.h = l.biases[2*n+1]/l.h; - } + pred.w = l.biases[2*n]/l.w; + pred.h = l.biases[2*n+1]/l.h; } //printf("pred: (%f, %f) %f x %f\n", pred.x, pred.y, pred.w, pred.h); pred.x = 0; @@ -313,19 +289,19 @@ void forward_region_layer(const region_layer l, network_state state) } } //printf("\n"); - #ifndef GPU +#ifndef GPU flatten(l.delta, l.w*l.h, size*l.n, l.batch, 0); - #endif +#endif *(l.cost) = pow(mag_array(l.delta, l.outputs * l.batch), 2); printf("Region Avg IOU: %f, Class: %f, Obj: %f, No Obj: %f, Avg Recall: %f, count: %d\n", avg_iou/count, avg_cat/class_count, avg_obj/count, avg_anyobj/(l.w*l.h*l.n*l.batch), recall/count, count); } -void backward_region_layer(const region_layer l, network_state state) +void backward_region_layer(const layer l, network_state state) { axpy_cpu(l.batch*l.inputs, 1, l.delta, 1, state.delta, 1); } -void get_region_boxes(layer l, int w, int h, float thresh, float **probs, box *boxes, int only_objectness, int *map) +void get_region_boxes(layer l, int w, int h, float thresh, float **probs, box *boxes, int only_objectness, int *map, float tree_thresh) { int i,j,n; float *predictions = l.output; @@ -336,7 +312,6 @@ void get_region_boxes(layer l, int w, int h, float thresh, float **probs, box *b int index = i*l.n + n; int p_index = index * (l.classes + 5) + 4; float scale = predictions[p_index]; - if(l.classfix == -1 && scale < .5) scale = 0; int box_index = index * (l.classes + 5); boxes[index] = get_region_box(predictions, l.biases, n, box_index, col, row, l.w, l.h); boxes[index].x *= w; @@ -348,22 +323,15 @@ void get_region_boxes(layer l, int w, int h, float thresh, float **probs, box *b if(l.softmax_tree){ hierarchy_predictions(predictions + class_index, l.classes, l.softmax_tree, 0); - int found = 0; if(map){ for(j = 0; j < 200; ++j){ float prob = scale*predictions[class_index+map[j]]; probs[index][j] = (prob > thresh) ? prob : 0; } } else { - for(j = l.classes - 1; j >= 0; --j){ - if(!found && predictions[class_index + j] > .5){ - found = 1; - } else { - predictions[class_index + j] = 0; - } - float prob = predictions[class_index+j]; - probs[index][j] = (scale > thresh) ? prob : 0; - } + int j = hierarchy_top_prediction(predictions + class_index, l.softmax_tree, tree_thresh); + probs[index][j] = (scale > thresh) ? scale : 0; + probs[index][l.classes] = scale; } } else { for(j = 0; j < l.classes; ++j){ @@ -380,7 +348,7 @@ void get_region_boxes(layer l, int w, int h, float thresh, float **probs, box *b #ifdef GPU -void forward_region_layer_gpu(const region_layer l, network_state state) +void forward_region_layer_gpu(const layer l, network_state state) { /* if(!state.train){ @@ -421,7 +389,7 @@ void forward_region_layer_gpu(const region_layer l, network_state state) if(cpu_state.truth) free(cpu_state.truth); } -void backward_region_layer_gpu(region_layer l, network_state state) +void backward_region_layer_gpu(layer l, network_state state) { flatten_ongpu(l.delta_gpu, l.h*l.w, l.n*(l.coords + l.classes + 1), l.batch, 0, state.delta); } diff --git a/src/region_layer.h b/src/region_layer.h index a8cdd930..9a3b7cd3 100644 --- a/src/region_layer.h +++ b/src/region_layer.h @@ -4,17 +4,15 @@ #include "layer.h" #include "network.h" -typedef layer region_layer; - -region_layer make_region_layer(int batch, int h, int w, int n, int classes, int coords); -void forward_region_layer(const region_layer l, network_state state); -void backward_region_layer(const region_layer l, network_state state); -void get_region_boxes(layer l, int w, int h, float thresh, float **probs, box *boxes, int only_objectness, int *map); +layer make_region_layer(int batch, int h, int w, int n, int classes, int coords); +void forward_region_layer(const layer l, network_state state); +void backward_region_layer(const layer l, network_state state); +void get_region_boxes(layer l, int w, int h, float thresh, float **probs, box *boxes, int only_objectness, int *map, float tree_thresh); void resize_region_layer(layer *l, int w, int h); #ifdef GPU -void forward_region_layer_gpu(const region_layer l, network_state state); -void backward_region_layer_gpu(region_layer l, network_state state); +void forward_region_layer_gpu(const layer l, network_state state); +void backward_region_layer_gpu(layer l, network_state state); #endif #endif diff --git a/src/server.c b/src/server.c deleted file mode 100644 index 6e5105e8..00000000 --- a/src/server.c +++ /dev/null @@ -1,205 +0,0 @@ -#include /* needed for sockaddr_in */ -#include /* needed for sockaddr_in */ -#include -#include -#include -#include /* needed for sockaddr_in */ -#include -#include -#include - -#include "mini_blas.h" -#include "utils.h" -#include "parser.h" -#include "server.h" -#include "connected_layer.h" -#include "convolutional_layer.h" - -#define SERVER_PORT 9423 -#define STR(x) #x - -int socket_setup(int server) -{ - int fd = 0; /* our socket */ - struct sockaddr_in me; /* our address */ - - /* create a UDP socket */ - - if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { - error("cannot create socket"); - } - - /* bind the socket to any valid IP address and a specific port */ - if (server == 1){ - bzero((char *) &me, sizeof(me)); - me.sin_family = AF_INET; - me.sin_addr.s_addr = htonl(INADDR_ANY); - me.sin_port = htons(SERVER_PORT); - - if (bind(fd, (struct sockaddr *)&me, sizeof(me)) < 0) { - error("bind failed"); - } - } - - return fd; -} - -typedef struct{ - int fd; - int counter; - network net; -} connection_info; - -void read_and_add_into(int fd, float *a, int n) -{ - float *buff = calloc(n, sizeof(float)); - read_all(fd, (char*) buff, n*sizeof(float)); - axpy_cpu(n, 1, buff, 1, a, 1); - free(buff); -} - -void handle_connection(void *pointer) -{ - connection_info info = *(connection_info *) pointer; - free(pointer); - //printf("New Connection\n"); - if(info.counter%100==0){ - char buff[256]; - sprintf(buff, "unikitty/net_%d.part", info.counter); - save_network(info.net, buff); - } - int fd = info.fd; - network net = info.net; - int i; - for(i = 0; i < net.n; ++i){ - if(net.types[i] == CONVOLUTIONAL){ - convolutional_layer layer = *(convolutional_layer *) net.layers[i]; - - read_and_add_into(fd, layer.bias_updates, layer.n); - int num = layer.n*layer.c*layer.size*layer.size; - read_and_add_into(fd, layer.filter_updates, num); - } - if(net.types[i] == CONNECTED){ - connected_layer layer = *(connected_layer *) net.layers[i]; - - read_and_add_into(fd, layer.bias_updates, layer.outputs); - read_and_add_into(fd, layer.weight_updates, layer.inputs*layer.outputs); - } - } - for(i = 0; i < net.n; ++i){ - if(net.types[i] == CONVOLUTIONAL){ - convolutional_layer layer = *(convolutional_layer *) net.layers[i]; - update_convolutional_layer(layer); - - write_all(fd, (char*) layer.biases, layer.n*sizeof(float)); - int num = layer.n*layer.c*layer.size*layer.size; - write_all(fd, (char*) layer.filters, num*sizeof(float)); - } - if(net.types[i] == CONNECTED){ - connected_layer layer = *(connected_layer *) net.layers[i]; - update_connected_layer(layer); - write_all(fd, (char *)layer.biases, layer.outputs*sizeof(float)); - write_all(fd, (char *)layer.weights, layer.outputs*layer.inputs*sizeof(float)); - } - } - //printf("Received updates\n"); - close(fd); -} - -void server_update(network net) -{ - int fd = socket_setup(1); - int counter = 18000; - listen(fd, 64); - struct sockaddr_in client; /* remote address */ - socklen_t client_size = sizeof(client); /* length of addresses */ - time_t t=0; - while(1){ - connection_info *info = calloc(1, sizeof(connection_info)); - info->net = net; - info->counter = counter; - pthread_t worker; - int connection = accept(fd, (struct sockaddr *) &client, &client_size); - if(!t) t=time(0); - info->fd = connection; - pthread_create(&worker, NULL, (void *) &handle_connection, info); - ++counter; - printf("%d\n", counter); - //if(counter == 1024) break; - } - close(fd); -} - -void client_update(network net, char *address) -{ - int fd = socket_setup(0); - - struct hostent *hp; /* host information */ - struct sockaddr_in server; /* server address */ - - /* fill in the server's address and data */ - bzero((char*)&server, sizeof(server)); - server.sin_family = AF_INET; - server.sin_port = htons(SERVER_PORT); - - /* look up the address of the server given its name */ - hp = gethostbyname(address); - if (!hp) { - perror("no such host"); - fprintf(stderr, "could not obtain address of %s\n", "localhost"); - } - - /* put the host's address into the server address structure */ - memcpy((void *)&server.sin_addr, hp->h_addr_list[0], hp->h_length); - if (connect(fd, (struct sockaddr *) &server, sizeof(server)) < 0) { - error("error connecting"); - } - - /* send a message to the server */ - int i; - //printf("Sending\n"); - for(i = 0; i < net.n; ++i){ - if(net.types[i] == CONVOLUTIONAL){ - convolutional_layer layer = *(convolutional_layer *) net.layers[i]; - write_all(fd, (char*) layer.bias_updates, layer.n*sizeof(float)); - int num = layer.n*layer.c*layer.size*layer.size; - write_all(fd, (char*) layer.filter_updates, num*sizeof(float)); - memset(layer.bias_updates, 0, layer.n*sizeof(float)); - memset(layer.filter_updates, 0, num*sizeof(float)); - } - if(net.types[i] == CONNECTED){ - connected_layer layer = *(connected_layer *) net.layers[i]; - write_all(fd, (char *)layer.bias_updates, layer.outputs*sizeof(float)); - write_all(fd, (char *)layer.weight_updates, layer.outputs*layer.inputs*sizeof(float)); - memset(layer.bias_updates, 0, layer.outputs*sizeof(float)); - memset(layer.weight_updates, 0, layer.inputs*layer.outputs*sizeof(float)); - } - } - //printf("Sent\n"); - - for(i = 0; i < net.n; ++i){ - if(net.types[i] == CONVOLUTIONAL){ - convolutional_layer layer = *(convolutional_layer *) net.layers[i]; - - read_all(fd, (char*) layer.biases, layer.n*sizeof(float)); - int num = layer.n*layer.c*layer.size*layer.size; - read_all(fd, (char*) layer.filters, num*sizeof(float)); - -#ifdef GPU - push_convolutional_layer(layer); - #endif - } - if(net.types[i] == CONNECTED){ - connected_layer layer = *(connected_layer *) net.layers[i]; - - read_all(fd, (char *)layer.biases, layer.outputs*sizeof(float)); - read_all(fd, (char *)layer.weights, layer.outputs*layer.inputs*sizeof(float)); - -#ifdef GPU - push_connected_layer(layer); - #endif - } - } - //printf("Updated\n"); - close(fd); -} diff --git a/src/server.h b/src/server.h deleted file mode 100644 index eb9bf281..00000000 --- a/src/server.h +++ /dev/null @@ -1,4 +0,0 @@ -#include "network.h" - -void client_update(network net, char *address); -void server_update(network net); diff --git a/src/tree.c b/src/tree.c index dfa41787..dd44515c 100644 --- a/src/tree.c +++ b/src/tree.c @@ -50,11 +50,39 @@ void hierarchy_predictions(float *predictions, int n, tree *hier, int only_leave } } +int hierarchy_top_prediction(float *predictions, tree *hier, float thresh) +{ + float p = 1; + int group = 0; + int i; + while(1){ + float max = 0; + int max_i = 0; + + for(i = 0; i < hier->group_size[group]; ++i){ + int index = i + hier->group_offset[group]; + float val = predictions[i + hier->group_offset[group]]; + if(val > max){ + max_i = index; + max = val; + } + } + if(p*max > thresh){ + p = p*max; + group = hier->child[max_i]; + if(hier->child[max_i] < 0) return max_i; + } else { + return hier->parent[hier->group_offset[group]]; + } + } + return 0; +} + tree *read_tree(char *filename) { tree t = {0}; FILE *fp = fopen(filename, "r"); - + char *line; int last_parent = -1; int group_size = 0; @@ -67,6 +95,9 @@ tree *read_tree(char *filename) t.parent = realloc(t.parent, (n+1)*sizeof(int)); t.parent[n] = parent; + t.child = realloc(t.child, (n+1)*sizeof(int)); + t.child[n] = -1; + t.name = realloc(t.name, (n+1)*sizeof(char *)); t.name[n] = id; if(parent != last_parent){ @@ -80,6 +111,9 @@ tree *read_tree(char *filename) } t.group = realloc(t.group, (n+1)*sizeof(int)); t.group[n] = groups; + if (parent >= 0) { + t.child[parent] = groups; + } ++n; ++group_size; } diff --git a/src/tree.h b/src/tree.h index c3f49797..dbd4c394 100644 --- a/src/tree.h +++ b/src/tree.h @@ -5,6 +5,7 @@ typedef struct{ int *leaf; int n; int *parent; + int *child; int *group; char **name; @@ -16,6 +17,7 @@ typedef struct{ tree *read_tree(char *filename); void hierarchy_predictions(float *predictions, int n, tree *hier, int only_leaves); void change_leaves(tree *t, char *leaf_list); +int hierarchy_top_prediction(float *predictions, tree *hier, float thresh); float get_hierarchy_probability(float *x, tree *hier, int c); #endif diff --git a/src/yolo.c b/src/yolo.c index 05f2be6a..ee5f73bb 100644 --- a/src/yolo.c +++ b/src/yolo.c @@ -351,5 +351,5 @@ void run_yolo(int argc, char **argv) else if(0==strcmp(argv[2], "train")) train_yolo(cfg, weights); else if(0==strcmp(argv[2], "valid")) validate_yolo(cfg, weights); else if(0==strcmp(argv[2], "recall")) validate_yolo_recall(cfg, weights); - else if(0==strcmp(argv[2], "demo")) demo(cfg, weights, thresh, cam_index, filename, voc_names, 20, frame_skip, prefix); + else if(0==strcmp(argv[2], "demo")) demo(cfg, weights, thresh, cam_index, filename, voc_names, 20, frame_skip, prefix, .5); } diff --git a/src/yolo_kernels.cu b/src/yolo_kernels.cu deleted file mode 100644 index 09f3961f..00000000 --- a/src/yolo_kernels.cu +++ /dev/null @@ -1,132 +0,0 @@ -#include "cuda_runtime.h" -#include "curand.h" -#include "cublas_v2.h" - -extern "C" { -#include "network.h" -#include "detection_layer.h" -#include "cost_layer.h" -#include "utils.h" -#include "parser.h" -#include "box.h" -#include "image.h" -#include -} - -#ifdef OPENCV -#include "opencv2/highgui/highgui.hpp" -#include "opencv2/imgproc/imgproc.hpp" -extern "C" image ipl_to_image(IplImage* src); -extern "C" void convert_yolo_detections(float *predictions, int classes, int num, int square, int side, int w, int h, float thresh, float **probs, box *boxes, int only_objectness); - -extern "C" char *voc_names[]; -extern "C" image voc_labels[]; - -static float **probs; -static box *boxes; -static network net; -static image in ; -static image in_s ; -static image det ; -static image det_s; -static image disp ; -static cv::VideoCapture cap; -static float fps = 0; -static float demo_thresh = 0; - -void *fetch_in_thread(void *ptr) -{ - cv::Mat frame_m; - cap >> frame_m; - IplImage frame = frame_m; - in = ipl_to_image(&frame); - rgbgr_image(in); - in_s = resize_image(in, net.w, net.h); - return 0; -} - -void *detect_in_thread(void *ptr) -{ - float nms = .4; - - detection_layer l = net.layers[net.n-1]; - float *X = det_s.data; - float *predictions = network_predict(net, X); - free_image(det_s); - convert_yolo_detections(predictions, l.classes, l.n, l.sqrt, l.side, 1, 1, demo_thresh, probs, boxes, 0); - if (nms > 0) do_nms(boxes, probs, l.side*l.side*l.n, l.classes, nms); - printf("\033[2J"); - printf("\033[1;1H"); - printf("\nFPS:%.0f\n",fps); - printf("Objects:\n\n"); - draw_detections(det, l.side*l.side*l.n, demo_thresh, boxes, probs, voc_names, voc_labels, 20); - return 0; -} - -extern "C" void demo_yolo(char *cfgfile, char *weightfile, float thresh, int cam_index) -{ - demo_thresh = thresh; - printf("YOLO demo\n"); - net = parse_network_cfg(cfgfile); - if(weightfile){ - load_weights(&net, weightfile); - } - set_batch_network(&net, 1); - - srand(2222222); - - cv::VideoCapture cam(cam_index); - cap = cam; - if(!cap.isOpened()) error("Couldn't connect to webcam.\n"); - - detection_layer l = net.layers[net.n-1]; - int j; - - boxes = (box *)calloc(l.side*l.side*l.n, sizeof(box)); - probs = (float **)calloc(l.side*l.side*l.n, sizeof(float *)); - for(j = 0; j < l.side*l.side*l.n; ++j) probs[j] = (float *)calloc(l.classes, sizeof(float *)); - - pthread_t fetch_thread; - pthread_t detect_thread; - - fetch_in_thread(0); - det = in; - det_s = in_s; - - fetch_in_thread(0); - detect_in_thread(0); - disp = det; - det = in; - det_s = in_s; - - cvNamedWindow("YOLO", CV_WINDOW_NORMAL); - cvMoveWindow("YOLO", 0, 0); - cvResizeWindow("YOLO", 1352, 1013); - - while(1){ - struct timeval tval_before, tval_after, tval_result; - gettimeofday(&tval_before, NULL); - if(pthread_create(&fetch_thread, 0, fetch_in_thread, 0)) error("Thread creation failed"); - if(pthread_create(&detect_thread, 0, detect_in_thread, 0)) error("Thread creation failed"); - show_image(disp, "YOLO"); - free_image(disp); - cvWaitKey(1); - pthread_join(fetch_thread, 0); - pthread_join(detect_thread, 0); - - disp = det; - det = in; - det_s = in_s; - - gettimeofday(&tval_after, NULL); - timersub(&tval_after, &tval_before, &tval_result); - float curr = 1000000.f/((long int)tval_result.tv_usec); - fps = .9*fps + .1*curr; - } -} -#else -extern "C" void demo_yolo(char *cfgfile, char *weightfile, float thresh, int cam_index){ - fprintf(stderr, "YOLO demo needs OpenCV for webcam images.\n"); -} -#endif -