├── .gitignore ├── ImageClassifier.sln ├── ImageClassifier ├── ImageClassifier.csproj ├── Labels.json ├── Program.cs ├── SqueezeNet.cs └── squeezenet1.0-9.onnx └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # User-specific files (MonoDevelop/Xamarin Studio) 14 | *.userprefs 15 | 16 | # Mono auto generated files 17 | mono_crash.* 18 | 19 | # Build results 20 | [Dd]ebug/ 21 | [Dd]ebugPublic/ 22 | [Rr]elease/ 23 | [Rr]eleases/ 24 | x64/ 25 | x86/ 26 | [Aa][Rr][Mm]/ 27 | [Aa][Rr][Mm]64/ 28 | bld/ 29 | [Bb]in/ 30 | [Oo]bj/ 31 | [Ll]og/ 32 | [Ll]ogs/ 33 | 34 | # Visual Studio 2015/2017 cache/options directory 35 | .vs/ 36 | # Uncomment if you have tasks that create the project's static files in wwwroot 37 | #wwwroot/ 38 | 39 | # Visual Studio 2017 auto generated files 40 | Generated\ Files/ 41 | 42 | # MSTest test Results 43 | [Tt]est[Rr]esult*/ 44 | [Bb]uild[Ll]og.* 45 | 46 | # NUnit 47 | *.VisualState.xml 48 | TestResult.xml 49 | nunit-*.xml 50 | 51 | # Build Results of an ATL Project 52 | [Dd]ebugPS/ 53 | [Rr]eleasePS/ 54 | dlldata.c 55 | 56 | # Benchmark Results 57 | BenchmarkDotNet.Artifacts/ 58 | 59 | # .NET Core 60 | project.lock.json 61 | project.fragment.lock.json 62 | artifacts/ 63 | 64 | # StyleCop 65 | StyleCopReport.xml 66 | 67 | # Files built by Visual Studio 68 | *_i.c 69 | *_p.c 70 | *_h.h 71 | *.ilk 72 | *.meta 73 | *.obj 74 | *.iobj 75 | *.pch 76 | *.pdb 77 | *.ipdb 78 | *.pgc 79 | *.pgd 80 | *.rsp 81 | *.sbr 82 | *.tlb 83 | *.tli 84 | *.tlh 85 | *.tmp 86 | *.tmp_proj 87 | *_wpftmp.csproj 88 | *.log 89 | *.vspscc 90 | *.vssscc 91 | .builds 92 | *.pidb 93 | *.svclog 94 | *.scc 95 | 96 | # Chutzpah Test files 97 | _Chutzpah* 98 | 99 | # Visual C++ cache files 100 | ipch/ 101 | *.aps 102 | *.ncb 103 | *.opendb 104 | *.opensdf 105 | *.sdf 106 | *.cachefile 107 | *.VC.db 108 | *.VC.VC.opendb 109 | 110 | # Visual Studio profiler 111 | *.psess 112 | *.vsp 113 | *.vspx 114 | *.sap 115 | 116 | # Visual Studio Trace Files 117 | *.e2e 118 | 119 | # TFS 2012 Local Workspace 120 | $tf/ 121 | 122 | # Guidance Automation Toolkit 123 | *.gpState 124 | 125 | # ReSharper is a .NET coding add-in 126 | _ReSharper*/ 127 | *.[Rr]e[Ss]harper 128 | *.DotSettings.user 129 | 130 | # TeamCity is a build add-in 131 | _TeamCity* 132 | 133 | # DotCover is a Code Coverage Tool 134 | *.dotCover 135 | 136 | # AxoCover is a Code Coverage Tool 137 | .axoCover/* 138 | !.axoCover/settings.json 139 | 140 | # Visual Studio code coverage results 141 | *.coverage 142 | *.coveragexml 143 | 144 | # NCrunch 145 | _NCrunch_* 146 | .*crunch*.local.xml 147 | nCrunchTemp_* 148 | 149 | # MightyMoose 150 | *.mm.* 151 | AutoTest.Net/ 152 | 153 | # Web workbench (sass) 154 | .sass-cache/ 155 | 156 | # Installshield output folder 157 | [Ee]xpress/ 158 | 159 | # DocProject is a documentation generator add-in 160 | DocProject/buildhelp/ 161 | DocProject/Help/*.HxT 162 | DocProject/Help/*.HxC 163 | DocProject/Help/*.hhc 164 | DocProject/Help/*.hhk 165 | DocProject/Help/*.hhp 166 | DocProject/Help/Html2 167 | DocProject/Help/html 168 | 169 | # Click-Once directory 170 | publish/ 171 | 172 | # Publish Web Output 173 | *.[Pp]ublish.xml 174 | *.azurePubxml 175 | # Note: Comment the next line if you want to checkin your web deploy settings, 176 | # but database connection strings (with potential passwords) will be unencrypted 177 | *.pubxml 178 | *.publishproj 179 | 180 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 181 | # checkin your Azure Web App publish settings, but sensitive information contained 182 | # in these scripts will be unencrypted 183 | PublishScripts/ 184 | 185 | # NuGet Packages 186 | *.nupkg 187 | # NuGet Symbol Packages 188 | *.snupkg 189 | # The packages folder can be ignored because of Package Restore 190 | **/[Pp]ackages/* 191 | # except build/, which is used as an MSBuild target. 192 | !**/[Pp]ackages/build/ 193 | # Uncomment if necessary however generally it will be regenerated when needed 194 | #!**/[Pp]ackages/repositories.config 195 | # NuGet v3's project.json files produces more ignorable files 196 | *.nuget.props 197 | *.nuget.targets 198 | 199 | # Microsoft Azure Build Output 200 | csx/ 201 | *.build.csdef 202 | 203 | # Microsoft Azure Emulator 204 | ecf/ 205 | rcf/ 206 | 207 | # Windows Store app package directories and files 208 | AppPackages/ 209 | BundleArtifacts/ 210 | Package.StoreAssociation.xml 211 | _pkginfo.txt 212 | *.appx 213 | *.appxbundle 214 | *.appxupload 215 | 216 | # Visual Studio cache files 217 | # files ending in .cache can be ignored 218 | *.[Cc]ache 219 | # but keep track of directories ending in .cache 220 | !?*.[Cc]ache/ 221 | 222 | # Others 223 | ClientBin/ 224 | ~$* 225 | *~ 226 | *.dbmdl 227 | *.dbproj.schemaview 228 | *.jfm 229 | *.pfx 230 | *.publishsettings 231 | orleans.codegen.cs 232 | 233 | # Including strong name files can present a security risk 234 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 235 | #*.snk 236 | 237 | # Since there are multiple workflows, uncomment next line to ignore bower_components 238 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 239 | #bower_components/ 240 | 241 | # RIA/Silverlight projects 242 | Generated_Code/ 243 | 244 | # Backup & report files from converting an old project file 245 | # to a newer Visual Studio version. Backup files are not needed, 246 | # because we have git ;-) 247 | _UpgradeReport_Files/ 248 | Backup*/ 249 | UpgradeLog*.XML 250 | UpgradeLog*.htm 251 | ServiceFabricBackup/ 252 | *.rptproj.bak 253 | 254 | # SQL Server files 255 | *.mdf 256 | *.ldf 257 | *.ndf 258 | 259 | # Business Intelligence projects 260 | *.rdl.data 261 | *.bim.layout 262 | *.bim_*.settings 263 | *.rptproj.rsuser 264 | *- [Bb]ackup.rdl 265 | *- [Bb]ackup ([0-9]).rdl 266 | *- [Bb]ackup ([0-9][0-9]).rdl 267 | 268 | # Microsoft Fakes 269 | FakesAssemblies/ 270 | 271 | # GhostDoc plugin setting file 272 | *.GhostDoc.xml 273 | 274 | # Node.js Tools for Visual Studio 275 | .ntvs_analysis.dat 276 | node_modules/ 277 | 278 | # Visual Studio 6 build log 279 | *.plg 280 | 281 | # Visual Studio 6 workspace options file 282 | *.opt 283 | 284 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 285 | *.vbw 286 | 287 | # Visual Studio LightSwitch build output 288 | **/*.HTMLClient/GeneratedArtifacts 289 | **/*.DesktopClient/GeneratedArtifacts 290 | **/*.DesktopClient/ModelManifest.xml 291 | **/*.Server/GeneratedArtifacts 292 | **/*.Server/ModelManifest.xml 293 | _Pvt_Extensions 294 | 295 | # Paket dependency manager 296 | .paket/paket.exe 297 | paket-files/ 298 | 299 | # FAKE - F# Make 300 | .fake/ 301 | 302 | # CodeRush personal settings 303 | .cr/personal 304 | 305 | # Python Tools for Visual Studio (PTVS) 306 | __pycache__/ 307 | *.pyc 308 | 309 | # Cake - Uncomment if you are using it 310 | # tools/** 311 | # !tools/packages.config 312 | 313 | # Tabs Studio 314 | *.tss 315 | 316 | # Telerik's JustMock configuration file 317 | *.jmconfig 318 | 319 | # BizTalk build output 320 | *.btp.cs 321 | *.btm.cs 322 | *.odx.cs 323 | *.xsd.cs 324 | 325 | # OpenCover UI analysis results 326 | OpenCover/ 327 | 328 | # Azure Stream Analytics local run output 329 | ASALocalRun/ 330 | 331 | # MSBuild Binary and Structured Log 332 | *.binlog 333 | 334 | # NVidia Nsight GPU debugger configuration file 335 | *.nvuser 336 | 337 | # MFractors (Xamarin productivity tool) working folder 338 | .mfractor/ 339 | 340 | # Local History for Visual Studio 341 | .localhistory/ 342 | 343 | # BeatPulse healthcheck temp database 344 | healthchecksdb 345 | 346 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 347 | MigrationBackup/ 348 | 349 | # Ionide (cross platform F# VS Code tools) working folder 350 | .ionide/ 351 | -------------------------------------------------------------------------------- /ImageClassifier.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.30907.101 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageClassifier", "ImageClassifier\ImageClassifier.csproj", "{806908CF-56FB-4C45-8158-E4A1B4F97830}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {806908CF-56FB-4C45-8158-E4A1B4F97830}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {806908CF-56FB-4C45-8158-E4A1B4F97830}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {806908CF-56FB-4C45-8158-E4A1B4F97830}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {806908CF-56FB-4C45-8158-E4A1B4F97830}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {C60C8FCF-91C8-4A09-BA34-B59CA34C508F} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /ImageClassifier/ImageClassifier.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | net5.0-windows10.0.17763.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | PreserveNewest 16 | 17 | 18 | PreserveNewest 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ImageClassifier/Labels.json: -------------------------------------------------------------------------------- 1 | { 2 | "0":"tench, Tinca tinca", 3 | "1":"goldfish, Carassius auratus", 4 | "2":"great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias", 5 | "3":"tiger shark, Galeocerdo cuvieri", 6 | "4":"hammerhead, hammerhead shark", 7 | "5":"electric ray, crampfish, numbfish, torpedo", 8 | "6":"stingray", 9 | "7":"cock", 10 | "8":"hen", 11 | "9":"ostrich, Struthio camelus", 12 | "10":"brambling, Fringilla montifringilla", 13 | "11":"goldfinch, Carduelis carduelis", 14 | "12":"house finch, linnet, Carpodacus mexicanus", 15 | "13":"junco, snowbird", 16 | "14":"indigo bunting, indigo finch, indigo bird, Passerina cyanea", 17 | "15":"robin, American robin, Turdus migratorius", 18 | "16":"bulbul", 19 | "17":"jay", 20 | "18":"magpie", 21 | "19":"chickadee", 22 | "20":"water ouzel, dipper", 23 | "21":"kite", 24 | "22":"bald eagle, American eagle, Haliaeetus leucocephalus", 25 | "23":"vulture", 26 | "24":"great grey owl, great gray owl, Strix nebulosa", 27 | "25":"European fire salamander, Salamandra salamandra", 28 | "26":"common newt, Triturus vulgaris", 29 | "27":"eft", 30 | "28":"spotted salamander, Ambystoma maculatum", 31 | "29":"axolotl, mud puppy, Ambystoma mexicanum", 32 | "30":"bullfrog, Rana catesbeiana", 33 | "31":"tree frog, tree-frog", 34 | "32":"tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui", 35 | "33":"loggerhead, loggerhead turtle, Caretta caretta", 36 | "34":"leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea", 37 | "35":"mud turtle", 38 | "36":"terrapin", 39 | "37":"box turtle, box tortoise", 40 | "38":"banded gecko", 41 | "39":"common iguana, iguana, Iguana iguana", 42 | "40":"American chameleon, anole, Anolis carolinensis", 43 | "41":"whiptail, whiptail lizard", 44 | "42":"agama", 45 | "43":"frilled lizard, Chlamydosaurus kingi", 46 | "44":"alligator lizard", 47 | "45":"Gila monster, Heloderma suspectum", 48 | "46":"green lizard, Lacerta viridis", 49 | "47":"African chameleon, Chamaeleo chamaeleon", 50 | "48":"Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis", 51 | "49":"African crocodile, Nile crocodile, Crocodylus niloticus", 52 | "50":"American alligator, Alligator mississipiensis", 53 | "51":"triceratops", 54 | "52":"thunder snake, worm snake, Carphophis amoenus", 55 | "53":"ringneck snake, ring-necked snake, ring snake", 56 | "54":"hognose snake, puff adder, sand viper", 57 | "55":"green snake, grass snake", 58 | "56":"king snake, kingsnake", 59 | "57":"garter snake, grass snake", 60 | "58":"water snake", 61 | "59":"vine snake", 62 | "60":"night snake, Hypsiglena torquata", 63 | "61":"boa constrictor, Constrictor constrictor", 64 | "62":"rock python, rock snake, Python sebae", 65 | "63":"Indian cobra, Naja naja", 66 | "64":"green mamba", 67 | "65":"sea snake", 68 | "66":"horned viper, cerastes, sand viper, horned asp, Cerastes cornutus", 69 | "67":"diamondback, diamondback rattlesnake, Crotalus adamanteus", 70 | "68":"sidewinder, horned rattlesnake, Crotalus cerastes", 71 | "69":"trilobite", 72 | "70":"harvestman, daddy longlegs, Phalangium opilio", 73 | "71":"scorpion", 74 | "72":"black and gold garden spider, Argiope aurantia", 75 | "73":"barn spider, Araneus cavaticus", 76 | "74":"garden spider, Aranea diademata", 77 | "75":"black widow, Latrodectus mactans", 78 | "76":"tarantula", 79 | "77":"wolf spider, hunting spider", 80 | "78":"tick", 81 | "79":"centipede", 82 | "80":"black grouse", 83 | "81":"ptarmigan", 84 | "82":"ruffed grouse, partridge, Bonasa umbellus", 85 | "83":"prairie chicken, prairie grouse, prairie fowl", 86 | "84":"peacock", 87 | "85":"quail", 88 | "86":"partridge", 89 | "87":"African grey, African gray, Psittacus erithacus", 90 | "88":"macaw", 91 | "89":"sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita", 92 | "90":"lorikeet", 93 | "91":"coucal", 94 | "92":"bee eater", 95 | "93":"hornbill", 96 | "94":"hummingbird", 97 | "95":"jacamar", 98 | "96":"toucan", 99 | "97":"drake", 100 | "98":"red-breasted merganser, Mergus serrator", 101 | "99":"goose", 102 | "100":"black swan, Cygnus atratus", 103 | "101":"tusker", 104 | "102":"echidna, spiny anteater, anteater", 105 | "103":"platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus anatinus", 106 | "104":"wallaby, brush kangaroo", 107 | "105":"koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus", 108 | "106":"wombat", 109 | "107":"jellyfish", 110 | "108":"sea anemone, anemone", 111 | "109":"brain coral", 112 | "110":"flatworm, platyhelminth", 113 | "111":"nematode, nematode worm, roundworm", 114 | "112":"conch", 115 | "113":"snail", 116 | "114":"slug", 117 | "115":"sea slug, nudibranch", 118 | "116":"chiton, coat-of-mail shell, sea cradle, polyplacophore", 119 | "117":"chambered nautilus, pearly nautilus, nautilus", 120 | "118":"Dungeness crab, Cancer magister", 121 | "119":"rock crab, Cancer irroratus", 122 | "120":"fiddler crab", 123 | "121":"king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica", 124 | "122":"American lobster, Northern lobster, Maine lobster, Homarus americanus", 125 | "123":"spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish", 126 | "124":"crayfish, crawfish, crawdad, crawdaddy", 127 | "125":"hermit crab", 128 | "126":"isopod", 129 | "127":"white stork, Ciconia ciconia", 130 | "128":"black stork, Ciconia nigra", 131 | "129":"spoonbill", 132 | "130":"flamingo", 133 | "131":"little blue heron, Egretta caerulea", 134 | "132":"American egret, great white heron, Egretta albus", 135 | "133":"bittern", 136 | "134":"crane", 137 | "135":"limpkin, Aramus pictus", 138 | "136":"European gallinule, Porphyrio porphyrio", 139 | "137":"American coot, marsh hen, mud hen, water hen, Fulica americana", 140 | "138":"bustard", 141 | "139":"ruddy turnstone, Arenaria interpres", 142 | "140":"red-backed sandpiper, dunlin, Erolia alpina", 143 | "141":"redshank, Tringa totanus", 144 | "142":"dowitcher", 145 | "143":"oystercatcher, oyster catcher", 146 | "144":"pelican", 147 | "145":"king penguin, Aptenodytes patagonica", 148 | "146":"albatross, mollymawk", 149 | "147":"grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus", 150 | "148":"killer whale, killer, orca, grampus, sea wolf, Orcinus orca", 151 | "149":"dugong, Dugong dugon", 152 | "150":"sea lion", 153 | "151":"Chihuahua", 154 | "152":"Japanese spaniel", 155 | "153":"Maltese dog, Maltese terrier, Maltese", 156 | "154":"Pekinese, Pekingese, Peke", 157 | "155":"Shih-Tzu", 158 | "156":"Blenheim spaniel", 159 | "157":"papillon", 160 | "158":"toy terrier", 161 | "159":"Rhodesian ridgeback", 162 | "160":"Afghan hound, Afghan", 163 | "161":"basset, basset hound", 164 | "162":"beagle", 165 | "163":"bloodhound, sleuthhound", 166 | "164":"bluetick", 167 | "165":"black-and-tan coonhound", 168 | "166":"Walker hound, Walker foxhound", 169 | "167":"English foxhound", 170 | "168":"redbone", 171 | "169":"borzoi, Russian wolfhound", 172 | "170":"Irish wolfhound", 173 | "171":"Italian greyhound", 174 | "172":"whippet", 175 | "173":"Ibizan hound, Ibizan Podenco", 176 | "174":"Norwegian elkhound, elkhound", 177 | "175":"otterhound, otter hound", 178 | "176":"Saluki, gazelle hound", 179 | "177":"Scottish deerhound, deerhound", 180 | "178":"Weimaraner", 181 | "179":"Staffordshire bullterrier, Staffordshire bull terrier", 182 | "180":"American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier", 183 | "181":"Bedlington terrier", 184 | "182":"Border terrier", 185 | "183":"Kerry blue terrier", 186 | "184":"Irish terrier", 187 | "185":"Norfolk terrier", 188 | "186":"Norwich terrier", 189 | "187":"Yorkshire terrier", 190 | "188":"wire-haired fox terrier", 191 | "189":"Lakeland terrier", 192 | "190":"Sealyham terrier, Sealyham", 193 | "191":"Airedale, Airedale terrier", 194 | "192":"cairn, cairn terrier", 195 | "193":"Australian terrier", 196 | "194":"Dandie Dinmont, Dandie Dinmont terrier", 197 | "195":"Boston bull, Boston terrier", 198 | "196":"miniature schnauzer", 199 | "197":"giant schnauzer", 200 | "198":"standard schnauzer", 201 | "199":"Scotch terrier, Scottish terrier, Scottie", 202 | "200":"Tibetan terrier, chrysanthemum dog", 203 | "201":"silky terrier, Sydney silky", 204 | "202":"soft-coated wheaten terrier", 205 | "203":"West Highland white terrier", 206 | "204":"Lhasa, Lhasa apso", 207 | "205":"flat-coated retriever", 208 | "206":"curly-coated retriever", 209 | "207":"golden retriever", 210 | "208":"Labrador retriever", 211 | "209":"Chesapeake Bay retriever", 212 | "210":"German short-haired pointer", 213 | "211":"vizsla, Hungarian pointer", 214 | "212":"English setter", 215 | "213":"Irish setter, red setter", 216 | "214":"Gordon setter", 217 | "215":"Brittany spaniel", 218 | "216":"clumber, clumber spaniel", 219 | "217":"English springer, English springer spaniel", 220 | "218":"Welsh springer spaniel", 221 | "219":"cocker spaniel, English cocker spaniel, cocker", 222 | "220":"Sussex spaniel", 223 | "221":"Irish water spaniel", 224 | "222":"kuvasz", 225 | "223":"schipperke", 226 | "224":"groenendael", 227 | "225":"malinois", 228 | "226":"briard", 229 | "227":"kelpie", 230 | "228":"komondor", 231 | "229":"Old English sheepdog, bobtail", 232 | "230":"Shetland sheepdog, Shetland sheep dog, Shetland", 233 | "231":"collie", 234 | "232":"Border collie", 235 | "233":"Bouvier des Flandres, Bouviers des Flandres", 236 | "234":"Rottweiler", 237 | "235":"German shepherd, German shepherd dog, German police dog, alsatian", 238 | "236":"Doberman, Doberman pinscher", 239 | "237":"miniature pinscher", 240 | "238":"Greater Swiss Mountain dog", 241 | "239":"Bernese mountain dog", 242 | "240":"Appenzeller", 243 | "241":"EntleBucher", 244 | "242":"boxer", 245 | "243":"bull mastiff", 246 | "244":"Tibetan mastiff", 247 | "245":"French bulldog", 248 | "246":"Great Dane", 249 | "247":"Saint Bernard, St Bernard", 250 | "248":"Eskimo dog, husky", 251 | "249":"malamute, malemute, Alaskan malamute", 252 | "250":"Siberian husky", 253 | "251":"dalmatian, coach dog, carriage dog", 254 | "252":"affenpinscher, monkey pinscher, monkey dog", 255 | "253":"basenji", 256 | "254":"pug, pug-dog", 257 | "255":"Leonberg", 258 | "256":"Newfoundland, Newfoundland dog", 259 | "257":"Great Pyrenees", 260 | "258":"Samoyed, Samoyede", 261 | "259":"Pomeranian", 262 | "260":"chow, chow chow", 263 | "261":"keeshond", 264 | "262":"Brabancon griffon", 265 | "263":"Pembroke, Pembroke Welsh corgi", 266 | "264":"Cardigan, Cardigan Welsh corgi", 267 | "265":"toy poodle", 268 | "266":"miniature poodle", 269 | "267":"standard poodle", 270 | "268":"Mexican hairless", 271 | "269":"timber wolf, grey wolf, gray wolf, Canis lupus", 272 | "270":"white wolf, Arctic wolf, Canis lupus tundrarum", 273 | "271":"red wolf, maned wolf, Canis rufus, Canis niger", 274 | "272":"coyote, prairie wolf, brush wolf, Canis latrans", 275 | "273":"dingo, warrigal, warragal, Canis dingo", 276 | "274":"dhole, Cuon alpinus", 277 | "275":"African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus", 278 | "276":"hyena, hyaena", 279 | "277":"red fox, Vulpes vulpes", 280 | "278":"kit fox, Vulpes macrotis", 281 | "279":"Arctic fox, white fox, Alopex lagopus", 282 | "280":"grey fox, gray fox, Urocyon cinereoargenteus", 283 | "281":"tabby, tabby cat", 284 | "282":"tiger cat", 285 | "283":"Persian cat", 286 | "284":"Siamese cat, Siamese", 287 | "285":"Egyptian cat", 288 | "286":"cougar, puma, catamount, mountain lion, painter, panther, Felis concolor", 289 | "287":"lynx, catamount", 290 | "288":"leopard, Panthera pardus", 291 | "289":"snow leopard, ounce, Panthera uncia", 292 | "290":"jaguar, panther, Panthera onca, Felis onca", 293 | "291":"lion, king of beasts, Panthera leo", 294 | "292":"tiger, Panthera tigris", 295 | "293":"cheetah, chetah, Acinonyx jubatus", 296 | "294":"brown bear, bruin, Ursus arctos", 297 | "295":"American black bear, black bear, Ursus americanus, Euarctos americanus", 298 | "296":"ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus", 299 | "297":"sloth bear, Melursus ursinus, Ursus ursinus", 300 | "298":"mongoose", 301 | "299":"meerkat, mierkat", 302 | "300":"tiger beetle", 303 | "301":"ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle", 304 | "302":"ground beetle, carabid beetle", 305 | "303":"long-horned beetle, longicorn, longicorn beetle", 306 | "304":"leaf beetle, chrysomelid", 307 | "305":"dung beetle", 308 | "306":"rhinoceros beetle", 309 | "307":"weevil", 310 | "308":"fly", 311 | "309":"bee", 312 | "310":"ant, emmet, pismire", 313 | "311":"grasshopper, hopper", 314 | "312":"cricket", 315 | "313":"walking stick, walkingstick, stick insect", 316 | "314":"cockroach, roach", 317 | "315":"mantis, mantid", 318 | "316":"cicada, cicala", 319 | "317":"leafhopper", 320 | "318":"lacewing, lacewing fly", 321 | "319":"dragonfly, darning needle, devil's darning needle, sewing needle, snake feeder, snake doctor, mosquito hawk, skeeter hawk", 322 | "320":"damselfly", 323 | "321":"admiral", 324 | "322":"ringlet, ringlet butterfly", 325 | "323":"monarch, monarch butterfly, milkweed butterfly, Danaus plexippus", 326 | "324":"cabbage butterfly", 327 | "325":"sulphur butterfly, sulfur butterfly", 328 | "326":"lycaenid, lycaenid butterfly", 329 | "327":"starfish, sea star", 330 | "328":"sea urchin", 331 | "329":"sea cucumber, holothurian", 332 | "330":"wood rabbit, cottontail, cottontail rabbit", 333 | "331":"hare", 334 | "332":"Angora, Angora rabbit", 335 | "333":"hamster", 336 | "334":"porcupine, hedgehog", 337 | "335":"fox squirrel, eastern fox squirrel, Sciurus niger", 338 | "336":"marmot", 339 | "337":"beaver", 340 | "338":"guinea pig, Cavia cobaya", 341 | "339":"sorrel", 342 | "340":"zebra", 343 | "341":"hog, pig, grunter, squealer, Sus scrofa", 344 | "342":"wild boar, boar, Sus scrofa", 345 | "343":"warthog", 346 | "344":"hippopotamus, hippo, river horse, Hippopotamus amphibius", 347 | "345":"ox", 348 | "346":"water buffalo, water ox, Asiatic buffalo, Bubalus bubalis", 349 | "347":"bison", 350 | "348":"ram, tup", 351 | "349":"bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, Ovis canadensis", 352 | "350":"ibex, Capra ibex", 353 | "351":"hartebeest", 354 | "352":"impala, Aepyceros melampus", 355 | "353":"gazelle", 356 | "354":"Arabian camel, dromedary, Camelus dromedarius", 357 | "355":"llama", 358 | "356":"weasel", 359 | "357":"mink", 360 | "358":"polecat, fitch, foulmart, foumart, Mustela putorius", 361 | "359":"black-footed ferret, ferret, Mustela nigripes", 362 | "360":"otter", 363 | "361":"skunk, polecat, wood pussy", 364 | "362":"badger", 365 | "363":"armadillo", 366 | "364":"three-toed sloth, ai, Bradypus tridactylus", 367 | "365":"orangutan, orang, orangutang, Pongo pygmaeus", 368 | "366":"gorilla, Gorilla gorilla", 369 | "367":"chimpanzee, chimp, Pan troglodytes", 370 | "368":"gibbon, Hylobates lar", 371 | "369":"siamang, Hylobates syndactylus, Symphalangus syndactylus", 372 | "370":"guenon, guenon monkey", 373 | "371":"patas, hussar monkey, Erythrocebus patas", 374 | "372":"baboon", 375 | "373":"macaque", 376 | "374":"langur", 377 | "375":"colobus, colobus monkey", 378 | "376":"proboscis monkey, Nasalis larvatus", 379 | "377":"marmoset", 380 | "378":"capuchin, ringtail, Cebus capucinus", 381 | "379":"howler monkey, howler", 382 | "380":"titi, titi monkey", 383 | "381":"spider monkey, Ateles geoffroyi", 384 | "382":"squirrel monkey, Saimiri sciureus", 385 | "383":"Madagascar cat, ring-tailed lemur, Lemur catta", 386 | "384":"indri, indris, Indri indri, Indri brevicaudatus", 387 | "385":"Indian elephant, Elephas maximus", 388 | "386":"African elephant, Loxodonta africana", 389 | "387":"lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens", 390 | "388":"giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca", 391 | "389":"barracouta, snoek", 392 | "390":"eel", 393 | "391":"coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch", 394 | "392":"rock beauty, Holocanthus tricolor", 395 | "393":"anemone fish", 396 | "394":"sturgeon", 397 | "395":"gar, garfish, garpike, billfish, Lepisosteus osseus", 398 | "396":"lionfish", 399 | "397":"puffer, pufferfish, blowfish, globefish", 400 | "398":"abacus", 401 | "399":"abaya", 402 | "400":"academic gown, academic robe, judge's robe", 403 | "401":"accordion, piano accordion, squeeze box", 404 | "402":"acoustic guitar", 405 | "403":"aircraft carrier, carrier, flattop, attack aircraft carrier", 406 | "404":"airliner", 407 | "405":"airship, dirigible", 408 | "406":"altar", 409 | "407":"ambulance", 410 | "408":"amphibian, amphibious vehicle", 411 | "409":"analog clock", 412 | "410":"apiary, bee house", 413 | "411":"apron", 414 | "412":"ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin", 415 | "413":"assault rifle, assault gun", 416 | "414":"backpack, back pack, knapsack, packsack, rucksack, haversack", 417 | "415":"bakery, bakeshop, bakehouse", 418 | "416":"balance beam, beam", 419 | "417":"balloon", 420 | "418":"ballpoint, ballpoint pen, ballpen, Biro", 421 | "419":"Band Aid", 422 | "420":"banjo", 423 | "421":"bannister, banister, balustrade, balusters, handrail", 424 | "422":"barbell", 425 | "423":"barber chair", 426 | "424":"barbershop", 427 | "425":"barn", 428 | "426":"barometer", 429 | "427":"barrel, cask", 430 | "428":"barrow, garden cart, lawn cart, wheelbarrow", 431 | "429":"baseball", 432 | "430":"basketball", 433 | "431":"bassinet", 434 | "432":"bassoon", 435 | "433":"bathing cap, swimming cap", 436 | "434":"bath towel", 437 | "435":"bathtub, bathing tub, bath, tub", 438 | "436":"beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon", 439 | "437":"beacon, lighthouse, beacon light, pharos", 440 | "438":"beaker", 441 | "439":"bearskin, busby, shako", 442 | "440":"beer bottle", 443 | "441":"beer glass", 444 | "442":"bell cote, bell cot", 445 | "443":"bib", 446 | "444":"bicycle-built-for-two, tandem bicycle, tandem", 447 | "445":"bikini, two-piece", 448 | "446":"binder, ring-binder", 449 | "447":"binoculars, field glasses, opera glasses", 450 | "448":"birdhouse", 451 | "449":"boathouse", 452 | "450":"bobsled, bobsleigh, bob", 453 | "451":"bolo tie, bolo, bola tie, bola", 454 | "452":"bonnet, poke bonnet", 455 | "453":"bookcase", 456 | "454":"bookshop, bookstore, bookstall", 457 | "455":"bottlecap", 458 | "456":"bow", 459 | "457":"bow tie, bow-tie, bowtie", 460 | "458":"brass, memorial tablet, plaque", 461 | "459":"brassiere, bra, bandeau", 462 | "460":"breakwater, groin, groyne, mole, bulwark, seawall, jetty", 463 | "461":"breastplate, aegis, egis", 464 | "462":"broom", 465 | "463":"bucket, pail", 466 | "464":"buckle", 467 | "465":"bulletproof vest", 468 | "466":"bullet train, bullet", 469 | "467":"butcher shop, meat market", 470 | "468":"cab, hack, taxi, taxicab", 471 | "469":"caldron, cauldron", 472 | "470":"candle, taper, wax light", 473 | "471":"cannon", 474 | "472":"canoe", 475 | "473":"can opener, tin opener", 476 | "474":"cardigan", 477 | "475":"car mirror", 478 | "476":"carousel, carrousel, merry-go-round, roundabout, whirligig", 479 | "477":"carpenter's kit, tool kit", 480 | "478":"carton", 481 | "479":"car wheel", 482 | "480":"cash machine, cash dispenser, automated teller machine, automatic teller machine, automated teller, automatic teller, ATM", 483 | "481":"cassette", 484 | "482":"cassette player", 485 | "483":"castle", 486 | "484":"catamaran", 487 | "485":"CD player", 488 | "486":"cello, violoncello", 489 | "487":"cellular telephone, cellular phone, cellphone, cell, mobile phone", 490 | "488":"chain", 491 | "489":"chainlink fence", 492 | "490":"chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour", 493 | "491":"chain saw, chainsaw", 494 | "492":"chest", 495 | "493":"chiffonier, commode", 496 | "494":"chime, bell, gong", 497 | "495":"china cabinet, china closet", 498 | "496":"Christmas stocking", 499 | "497":"church, church building", 500 | "498":"cinema, movie theater, movie theatre, movie house, picture palace", 501 | "499":"cleaver, meat cleaver, chopper", 502 | "500":"cliff dwelling", 503 | "501":"cloak", 504 | "502":"clog, geta, patten, sabot", 505 | "503":"cocktail shaker", 506 | "504":"coffee mug", 507 | "505":"coffeepot", 508 | "506":"coil, spiral, volute, whorl, helix", 509 | "507":"combination lock", 510 | "508":"computer keyboard, keypad", 511 | "509":"confectionery, confectionary, candy store", 512 | "510":"container ship, containership, container vessel", 513 | "511":"convertible", 514 | "512":"corkscrew, bottle screw", 515 | "513":"cornet, horn, trumpet, trump", 516 | "514":"cowboy boot", 517 | "515":"cowboy hat, ten-gallon hat", 518 | "516":"cradle", 519 | "517":"crane", 520 | "518":"crash helmet", 521 | "519":"crate", 522 | "520":"crib, cot", 523 | "521":"Crock Pot", 524 | "522":"croquet ball", 525 | "523":"crutch", 526 | "524":"cuirass", 527 | "525":"dam, dike, dyke", 528 | "526":"desk", 529 | "527":"desktop computer", 530 | "528":"dial telephone, dial phone", 531 | "529":"diaper, nappy, napkin", 532 | "530":"digital clock", 533 | "531":"digital watch", 534 | "532":"dining table, board", 535 | "533":"dishrag, dishcloth", 536 | "534":"dishwasher, dish washer, dishwashing machine", 537 | "535":"disk brake, disc brake", 538 | "536":"dock, dockage, docking facility", 539 | "537":"dogsled, dog sled, dog sleigh", 540 | "538":"dome", 541 | "539":"doormat, welcome mat", 542 | "540":"drilling platform, offshore rig", 543 | "541":"drum, membranophone, tympan", 544 | "542":"drumstick", 545 | "543":"dumbbell", 546 | "544":"Dutch oven", 547 | "545":"electric fan, blower", 548 | "546":"electric guitar", 549 | "547":"electric locomotive", 550 | "548":"entertainment center", 551 | "549":"envelope", 552 | "550":"espresso maker", 553 | "551":"face powder", 554 | "552":"feather boa, boa", 555 | "553":"file, file cabinet, filing cabinet", 556 | "554":"fireboat", 557 | "555":"fire engine, fire truck", 558 | "556":"fire screen, fireguard", 559 | "557":"flagpole, flagstaff", 560 | "558":"flute, transverse flute", 561 | "559":"folding chair", 562 | "560":"football helmet", 563 | "561":"forklift", 564 | "562":"fountain", 565 | "563":"fountain pen", 566 | "564":"four-poster", 567 | "565":"freight car", 568 | "566":"French horn, horn", 569 | "567":"frying pan, frypan, skillet", 570 | "568":"fur coat", 571 | "569":"garbage truck, dustcart", 572 | "570":"gasmask, respirator, gas helmet", 573 | "571":"gas pump, gasoline pump, petrol pump, island dispenser", 574 | "572":"goblet", 575 | "573":"go-kart", 576 | "574":"golf ball", 577 | "575":"golfcart, golf cart", 578 | "576":"gondola", 579 | "577":"gong, tam-tam", 580 | "578":"gown", 581 | "579":"grand piano, grand", 582 | "580":"greenhouse, nursery, glasshouse", 583 | "581":"grille, radiator grille", 584 | "582":"grocery store, grocery, food market, market", 585 | "583":"guillotine", 586 | "584":"hair slide", 587 | "585":"hair spray", 588 | "586":"half track", 589 | "587":"hammer", 590 | "588":"hamper", 591 | "589":"hand blower, blow dryer, blow drier, hair dryer, hair drier", 592 | "590":"hand-held computer, hand-held microcomputer", 593 | "591":"handkerchief, hankie, hanky, hankey", 594 | "592":"hard disc, hard disk, fixed disk", 595 | "593":"harmonica, mouth organ, harp, mouth harp", 596 | "594":"harp", 597 | "595":"harvester, reaper", 598 | "596":"hatchet", 599 | "597":"holster", 600 | "598":"home theater, home theatre", 601 | "599":"honeycomb", 602 | "600":"hook, claw", 603 | "601":"hoopskirt, crinoline", 604 | "602":"horizontal bar, high bar", 605 | "603":"horse cart, horse-cart", 606 | "604":"hourglass", 607 | "605":"iPod", 608 | "606":"iron, smoothing iron", 609 | "607":"jack-o'-lantern", 610 | "608":"jean, blue jean, denim", 611 | "609":"jeep, landrover", 612 | "610":"jersey, T-shirt, tee shirt", 613 | "611":"jigsaw puzzle", 614 | "612":"jinrikisha, ricksha, rickshaw", 615 | "613":"joystick", 616 | "614":"kimono", 617 | "615":"knee pad", 618 | "616":"knot", 619 | "617":"lab coat, laboratory coat", 620 | "618":"ladle", 621 | "619":"lampshade, lamp shade", 622 | "620":"laptop, laptop computer", 623 | "621":"lawn mower, mower", 624 | "622":"lens cap, lens cover", 625 | "623":"letter opener, paper knife, paperknife", 626 | "624":"library", 627 | "625":"lifeboat", 628 | "626":"lighter, light, igniter, ignitor", 629 | "627":"limousine, limo", 630 | "628":"liner, ocean liner", 631 | "629":"lipstick, lip rouge", 632 | "630":"Loafer", 633 | "631":"lotion", 634 | "632":"loudspeaker, speaker, speaker unit, loudspeaker system, speaker system", 635 | "633":"loupe, jeweler's loupe", 636 | "634":"lumbermill, sawmill", 637 | "635":"magnetic compass", 638 | "636":"mailbag, postbag", 639 | "637":"mailbox, letter box", 640 | "638":"maillot", 641 | "639":"maillot, tank suit", 642 | "640":"manhole cover", 643 | "641":"maraca", 644 | "642":"marimba, xylophone", 645 | "643":"mask", 646 | "644":"matchstick", 647 | "645":"maypole", 648 | "646":"maze, labyrinth", 649 | "647":"measuring cup", 650 | "648":"medicine chest, medicine cabinet", 651 | "649":"megalith, megalithic structure", 652 | "650":"microphone, mike", 653 | "651":"microwave, microwave oven", 654 | "652":"military uniform", 655 | "653":"milk can", 656 | "654":"minibus", 657 | "655":"miniskirt, mini", 658 | "656":"minivan", 659 | "657":"missile", 660 | "658":"mitten", 661 | "659":"mixing bowl", 662 | "660":"mobile home, manufactured home", 663 | "661":"Model T", 664 | "662":"modem", 665 | "663":"monastery", 666 | "664":"monitor", 667 | "665":"moped", 668 | "666":"mortar", 669 | "667":"mortarboard", 670 | "668":"mosque", 671 | "669":"mosquito net", 672 | "670":"motor scooter, scooter", 673 | "671":"mountain bike, all-terrain bike, off-roader", 674 | "672":"mountain tent", 675 | "673":"mouse, computer mouse", 676 | "674":"mousetrap", 677 | "675":"moving van", 678 | "676":"muzzle", 679 | "677":"nail", 680 | "678":"neck brace", 681 | "679":"necklace", 682 | "680":"nipple", 683 | "681":"notebook, notebook computer", 684 | "682":"obelisk", 685 | "683":"oboe, hautboy, hautbois", 686 | "684":"ocarina, sweet potato", 687 | "685":"odometer, hodometer, mileometer, milometer", 688 | "686":"oil filter", 689 | "687":"organ, pipe organ", 690 | "688":"oscilloscope, scope, cathode-ray oscilloscope, CRO", 691 | "689":"overskirt", 692 | "690":"oxcart", 693 | "691":"oxygen mask", 694 | "692":"packet", 695 | "693":"paddle, boat paddle", 696 | "694":"paddlewheel, paddle wheel", 697 | "695":"padlock", 698 | "696":"paintbrush", 699 | "697":"pajama, pyjama, pj's, jammies", 700 | "698":"palace", 701 | "699":"panpipe, pandean pipe, syrinx", 702 | "700":"paper towel", 703 | "701":"parachute, chute", 704 | "702":"parallel bars, bars", 705 | "703":"park bench", 706 | "704":"parking meter", 707 | "705":"passenger car, coach, carriage", 708 | "706":"patio, terrace", 709 | "707":"pay-phone, pay-station", 710 | "708":"pedestal, plinth, footstall", 711 | "709":"pencil box, pencil case", 712 | "710":"pencil sharpener", 713 | "711":"perfume, essence", 714 | "712":"Petri dish", 715 | "713":"photocopier", 716 | "714":"pick, plectrum, plectron", 717 | "715":"pickelhaube", 718 | "716":"picket fence, paling", 719 | "717":"pickup, pickup truck", 720 | "718":"pier", 721 | "719":"piggy bank, penny bank", 722 | "720":"pill bottle", 723 | "721":"pillow", 724 | "722":"ping-pong ball", 725 | "723":"pinwheel", 726 | "724":"pirate, pirate ship", 727 | "725":"pitcher, ewer", 728 | "726":"plane, carpenter's plane, woodworking plane", 729 | "727":"planetarium", 730 | "728":"plastic bag", 731 | "729":"plate rack", 732 | "730":"plow, plough", 733 | "731":"plunger, plumber's helper", 734 | "732":"Polaroid camera, Polaroid Land camera", 735 | "733":"pole", 736 | "734":"police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria", 737 | "735":"poncho", 738 | "736":"pool table, billiard table, snooker table", 739 | "737":"pop bottle, soda bottle", 740 | "738":"pot, flowerpot", 741 | "739":"potter's wheel", 742 | "740":"power drill", 743 | "741":"prayer rug, prayer mat", 744 | "742":"printer", 745 | "743":"prison, prison house", 746 | "744":"projectile, missile", 747 | "745":"projector", 748 | "746":"puck, hockey puck", 749 | "747":"punching bag, punch bag, punching ball, punchball", 750 | "748":"purse", 751 | "749":"quill, quill pen", 752 | "750":"quilt, comforter, comfort, puff", 753 | "751":"racer, race car, racing car", 754 | "752":"racket, racquet", 755 | "753":"radiator", 756 | "754":"radio, wireless", 757 | "755":"radio telescope, radio reflector", 758 | "756":"rain barrel", 759 | "757":"recreational vehicle, RV, R.V.", 760 | "758":"reel", 761 | "759":"reflex camera", 762 | "760":"refrigerator, icebox", 763 | "761":"remote control, remote", 764 | "762":"restaurant, eating house, eating place, eatery", 765 | "763":"revolver, six-gun, six-shooter", 766 | "764":"rifle", 767 | "765":"rocking chair, rocker", 768 | "766":"rotisserie", 769 | "767":"rubber eraser, rubber, pencil eraser", 770 | "768":"rugby ball", 771 | "769":"rule, ruler", 772 | "770":"running shoe", 773 | "771":"safe", 774 | "772":"safety pin", 775 | "773":"saltshaker, salt shaker", 776 | "774":"sandal", 777 | "775":"sarong", 778 | "776":"sax, saxophone", 779 | "777":"scabbard", 780 | "778":"scale, weighing machine", 781 | "779":"school bus", 782 | "780":"schooner", 783 | "781":"scoreboard", 784 | "782":"screen, CRT screen", 785 | "783":"screw", 786 | "784":"screwdriver", 787 | "785":"seat belt, seatbelt", 788 | "786":"sewing machine", 789 | "787":"shield, buckler", 790 | "788":"shoe shop, shoe-shop, shoe store", 791 | "789":"shoji", 792 | "790":"shopping basket", 793 | "791":"shopping cart", 794 | "792":"shovel", 795 | "793":"shower cap", 796 | "794":"shower curtain", 797 | "795":"ski", 798 | "796":"ski mask", 799 | "797":"sleeping bag", 800 | "798":"slide rule, slipstick", 801 | "799":"sliding door", 802 | "800":"slot, one-armed bandit", 803 | "801":"snorkel", 804 | "802":"snowmobile", 805 | "803":"snowplow, snowplough", 806 | "804":"soap dispenser", 807 | "805":"soccer ball", 808 | "806":"sock", 809 | "807":"solar dish, solar collector, solar furnace", 810 | "808":"sombrero", 811 | "809":"soup bowl", 812 | "810":"space bar", 813 | "811":"space heater", 814 | "812":"space shuttle", 815 | "813":"spatula", 816 | "814":"speedboat", 817 | "815":"spider web, spider's web", 818 | "816":"spindle", 819 | "817":"sports car, sport car", 820 | "818":"spotlight, spot", 821 | "819":"stage", 822 | "820":"steam locomotive", 823 | "821":"steel arch bridge", 824 | "822":"steel drum", 825 | "823":"stethoscope", 826 | "824":"stole", 827 | "825":"stone wall", 828 | "826":"stopwatch, stop watch", 829 | "827":"stove", 830 | "828":"strainer", 831 | "829":"streetcar, tram, tramcar, trolley, trolley car", 832 | "830":"stretcher", 833 | "831":"studio couch, day bed", 834 | "832":"stupa, tope", 835 | "833":"submarine, pigboat, sub, U-boat", 836 | "834":"suit, suit of clothes", 837 | "835":"sundial", 838 | "836":"sunglass", 839 | "837":"sunglasses, dark glasses, shades", 840 | "838":"sunscreen, sunblock, sun blocker", 841 | "839":"suspension bridge", 842 | "840":"swab, swob, mop", 843 | "841":"sweatshirt", 844 | "842":"swimming trunks, bathing trunks", 845 | "843":"swing", 846 | "844":"switch, electric switch, electrical switch", 847 | "845":"syringe", 848 | "846":"table lamp", 849 | "847":"tank, army tank, armored combat vehicle, armoured combat vehicle", 850 | "848":"tape player", 851 | "849":"teapot", 852 | "850":"teddy, teddy bear", 853 | "851":"television, television system", 854 | "852":"tennis ball", 855 | "853":"thatch, thatched roof", 856 | "854":"theater curtain, theatre curtain", 857 | "855":"thimble", 858 | "856":"thresher, thrasher, threshing machine", 859 | "857":"throne", 860 | "858":"tile roof", 861 | "859":"toaster", 862 | "860":"tobacco shop, tobacconist shop, tobacconist", 863 | "861":"toilet seat", 864 | "862":"torch", 865 | "863":"totem pole", 866 | "864":"tow truck, tow car, wrecker", 867 | "865":"toyshop", 868 | "866":"tractor", 869 | "867":"trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi", 870 | "868":"tray", 871 | "869":"trench coat", 872 | "870":"tricycle, trike, velocipede", 873 | "871":"trimaran", 874 | "872":"tripod", 875 | "873":"triumphal arch", 876 | "874":"trolleybus, trolley coach, trackless trolley", 877 | "875":"trombone", 878 | "876":"tub, vat", 879 | "877":"turnstile", 880 | "878":"typewriter keyboard", 881 | "879":"umbrella", 882 | "880":"unicycle, monocycle", 883 | "881":"upright, upright piano", 884 | "882":"vacuum, vacuum cleaner", 885 | "883":"vase", 886 | "884":"vault", 887 | "885":"velvet", 888 | "886":"vending machine", 889 | "887":"vestment", 890 | "888":"viaduct", 891 | "889":"violin, fiddle", 892 | "890":"volleyball", 893 | "891":"waffle iron", 894 | "892":"wall clock", 895 | "893":"wallet, billfold, notecase, pocketbook", 896 | "894":"wardrobe, closet, press", 897 | "895":"warplane, military plane", 898 | "896":"washbasin, handbasin, washbowl, lavabo, wash-hand basin", 899 | "897":"washer, automatic washer, washing machine", 900 | "898":"water bottle", 901 | "899":"water jug", 902 | "900":"water tower", 903 | "901":"whiskey jug", 904 | "902":"whistle", 905 | "903":"wig", 906 | "904":"window screen", 907 | "905":"window shade", 908 | "906":"Windsor tie", 909 | "907":"wine bottle", 910 | "908":"wing", 911 | "909":"wok", 912 | "910":"wooden spoon", 913 | "911":"wool, woolen, woollen", 914 | "912":"worm fence, snake fence, snake-rail fence, Virginia fence", 915 | "913":"wreck", 916 | "914":"yawl", 917 | "915":"yurt", 918 | "916":"web site, website, internet site, site", 919 | "917":"comic book", 920 | "918":"crossword puzzle, crossword", 921 | "919":"street sign", 922 | "920":"traffic light, traffic signal, stoplight", 923 | "921":"book jacket, dust cover, dust jacket, dust wrapper", 924 | "922":"menu", 925 | "923":"plate", 926 | "924":"guacamole", 927 | "925":"consomme", 928 | "926":"hot pot, hotpot", 929 | "927":"trifle", 930 | "928":"ice cream, icecream", 931 | "929":"ice lolly, lolly, lollipop, popsicle", 932 | "930":"French loaf", 933 | "931":"bagel, beigel", 934 | "932":"pretzel", 935 | "933":"cheeseburger", 936 | "934":"hotdog, hot dog, red hot", 937 | "935":"mashed potato", 938 | "936":"head cabbage", 939 | "937":"broccoli", 940 | "938":"cauliflower", 941 | "939":"zucchini, courgette", 942 | "940":"spaghetti squash", 943 | "941":"acorn squash", 944 | "942":"butternut squash", 945 | "943":"cucumber, cuke", 946 | "944":"artichoke, globe artichoke", 947 | "945":"bell pepper", 948 | "946":"cardoon", 949 | "947":"mushroom", 950 | "948":"Granny Smith", 951 | "949":"strawberry", 952 | "950":"orange", 953 | "951":"lemon", 954 | "952":"fig", 955 | "953":"pineapple, ananas", 956 | "954":"banana", 957 | "955":"jackfruit, jak, jack", 958 | "956":"custard apple", 959 | "957":"pomegranate", 960 | "958":"hay", 961 | "959":"carbonara", 962 | "960":"chocolate sauce, chocolate syrup", 963 | "961":"dough", 964 | "962":"meat loaf, meatloaf", 965 | "963":"pizza, pizza pie", 966 | "964":"potpie", 967 | "965":"burrito", 968 | "966":"red wine", 969 | "967":"espresso", 970 | "968":"cup", 971 | "969":"eggnog", 972 | "970":"alp", 973 | "971":"bubble", 974 | "972":"cliff, drop, drop-off", 975 | "973":"coral reef", 976 | "974":"geyser", 977 | "975":"lakeside, lakeshore", 978 | "976":"promontory, headland, head, foreland", 979 | "977":"sandbar, sand bar", 980 | "978":"seashore, coast, seacoast, sea-coast", 981 | "979":"valley, vale", 982 | "980":"volcano", 983 | "981":"ballplayer, baseball player", 984 | "982":"groom, bridegroom", 985 | "983":"scuba diver", 986 | "984":"rapeseed", 987 | "985":"daisy", 988 | "986":"yellow lady's slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium parviflorum", 989 | "987":"corn", 990 | "988":"acorn", 991 | "989":"hip, rose hip, rosehip", 992 | "990":"buckeye, horse chestnut, conker", 993 | "991":"coral fungus", 994 | "992":"agaric", 995 | "993":"gyromitra", 996 | "994":"stinkhorn, carrion fungus", 997 | "995":"earthstar", 998 | "996":"hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa", 999 | "997":"bolete", 1000 | "998":"ear, spike, capitulum", 1001 | "999":"toilet tissue, toilet paper, bathroom tissue" 1002 | } -------------------------------------------------------------------------------- /ImageClassifier/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Reflection; 6 | using System.Text.Json; 7 | using System.Threading.Tasks; 8 | using Windows.AI.MachineLearning; 9 | using Windows.Graphics.Imaging; 10 | using Windows.Media; 11 | 12 | namespace ImageClassifier 13 | { 14 | class Program 15 | { 16 | static async Task Main(string[] args) 17 | { 18 | var rootDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 19 | var squeezeNetModel = SqueezeNetModel.CreateFromFilePath(Path.Combine(rootDir, "squeezenet1.0-9.onnx")); 20 | 21 | // Load labels from JSON 22 | var labels = new List(); 23 | foreach (var kvp in JsonSerializer.Deserialize>(File.ReadAllText(Path.Combine(rootDir, "Labels.json")))) 24 | { 25 | labels.Add(kvp.Value); 26 | } 27 | 28 | if (args.Length < 1) 29 | return; 30 | 31 | var filePath = args[0]; 32 | 33 | // Open image file 34 | SqueezeNetOutput output; 35 | using (var fileStream = File.OpenRead(filePath)) 36 | { 37 | // Convert from FileStream to ImageFeatureValue 38 | var decoder = await BitmapDecoder.CreateAsync(fileStream.AsRandomAccessStream()); 39 | using var softwareBitmap = await decoder.GetSoftwareBitmapAsync(); 40 | using var inputImage = VideoFrame.CreateWithSoftwareBitmap(softwareBitmap); 41 | var imageTensor = ImageFeatureValue.CreateFromVideoFrame(inputImage); 42 | 43 | output = await squeezeNetModel.EvaluateAsync(new SqueezeNetInput 44 | { 45 | data_0 = imageTensor 46 | }); 47 | } 48 | 49 | // Get result, which is a list of floats with all the probabilities for all 1000 classes of SqueezeNet 50 | var resultTensor = output.softmaxout_1; 51 | var resultVector = resultTensor.GetAsVectorView(); 52 | 53 | // Order the 1000 results with their indexes to know which class is the highest ranked one 54 | List<(int index, float p)> results = new List<(int, float)>(); 55 | for (int i = 0; i < resultVector.Count; i++) 56 | { 57 | results.Add((index: i, p: resultVector.ElementAt(i))); 58 | } 59 | results.Sort((a, b) => a.p switch 60 | { 61 | var p when p < b.p => 1, 62 | var p when p > b.p => -1, 63 | _ => 0 64 | }); 65 | 66 | if (results[0].p >= 0.9f) 67 | { 68 | Console.WriteLine($"Image '{filePath}' is classified as '{labels[results[0].index]}'(p={(int)(results[0].p * 100)}%)."); 69 | } 70 | else 71 | { 72 | Console.WriteLine("Sorry, but I'm not sure what this is."); 73 | } 74 | } 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /ImageClassifier/SqueezeNet.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | using Windows.AI.MachineLearning; 4 | 5 | namespace ImageClassifier 6 | { 7 | public sealed class SqueezeNetInput 8 | { 9 | public ImageFeatureValue data_0; // shape(1,3,224,224) 10 | } 11 | 12 | public sealed class SqueezeNetOutput 13 | { 14 | public TensorFloat softmaxout_1; // shape(1,1000,1,1) 15 | } 16 | 17 | public sealed class SqueezeNetModel 18 | { 19 | private LearningModel model; 20 | private LearningModelSession session; 21 | private LearningModelBinding binding; 22 | 23 | public static SqueezeNetModel CreateFromFilePath(string filePath) 24 | { 25 | var learningModel = new SqueezeNetModel 26 | { 27 | model = LearningModel.LoadFromFilePath(filePath) 28 | }; 29 | learningModel.session = new LearningModelSession(learningModel.model); 30 | learningModel.binding = new LearningModelBinding(learningModel.session); 31 | return learningModel; 32 | } 33 | 34 | public async Task EvaluateAsync(SqueezeNetInput input) 35 | { 36 | binding.Bind("data_0", input.data_0); 37 | var result = await session.EvaluateAsync(binding, "0"); 38 | var output = new SqueezeNetOutput 39 | { 40 | softmaxout_1 = result.Outputs["softmaxout_1"] as TensorFloat 41 | }; 42 | return output; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /ImageClassifier/squeezenet1.0-9.onnx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azchohfi/ImageClassifierSample/99451cf116da1c253437683a61f7c7e61c880eb9/ImageClassifier/squeezenet1.0-9.onnx -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Alexandre Zollinger Chohfi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | --------------------------------------------------------------------------------