├── ObjectDetectorDemo ├── .gitignore ├── .idea │ ├── codeStyles │ │ └── Project.xml │ ├── gradle.xml │ ├── misc.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── app │ ├── .gitignore │ ├── assets │ │ └── resnet18_traced.pt │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── tckmpsi │ │ │ └── objectdetectordemo │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ │ └── resnet18_traced.pt │ │ ├── java │ │ │ └── com │ │ │ │ └── tckmpsi │ │ │ │ └── objectdetectordemo │ │ │ │ ├── MainActivity.java │ │ │ │ └── ModelClasses.java │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── tckmpsi │ │ └── objectdetectordemo │ │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── README.md └── create_model.py /ObjectDetectorDemo/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | xmlns:android 11 | 12 | ^$ 13 | 14 | 15 | 16 |
17 |
18 | 19 | 20 | 21 | xmlns:.* 22 | 23 | ^$ 24 | 25 | 26 | BY_NAME 27 | 28 |
29 |
30 | 31 | 32 | 33 | .*:id 34 | 35 | http://schemas.android.com/apk/res/android 36 | 37 | 38 | 39 |
40 |
41 | 42 | 43 | 44 | .*:name 45 | 46 | http://schemas.android.com/apk/res/android 47 | 48 | 49 | 50 |
51 |
52 | 53 | 54 | 55 | name 56 | 57 | ^$ 58 | 59 | 60 | 61 |
62 |
63 | 64 | 65 | 66 | style 67 | 68 | ^$ 69 | 70 | 71 | 72 |
73 |
74 | 75 | 76 | 77 | .* 78 | 79 | ^$ 80 | 81 | 82 | BY_NAME 83 | 84 |
85 |
86 | 87 | 88 | 89 | .* 90 | 91 | http://schemas.android.com/apk/res/android 92 | 93 | 94 | ANDROID_ATTRIBUTE_ORDER 95 | 96 |
97 |
98 | 99 | 100 | 101 | .* 102 | 103 | .* 104 | 105 | 106 | BY_NAME 107 | 108 |
109 |
110 |
111 |
112 |
113 |
-------------------------------------------------------------------------------- /ObjectDetectorDemo/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 15 | 16 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/app/assets/resnet18_traced.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tusharck/Object-Detector-Android-App-Using-PyTorch-Mobile-Neural-Network/529340c853bd1ac078c50f9516a6075749a9e948/ObjectDetectorDemo/app/assets/resnet18_traced.pt -------------------------------------------------------------------------------- /ObjectDetectorDemo/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 28 5 | buildToolsVersion "29.0.2" 6 | defaultConfig { 7 | applicationId "com.tckmpsi.objectdetectordemo" 8 | minSdkVersion 24 9 | targetSdkVersion 28 10 | versionCode 1 11 | versionName "1.0" 12 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | implementation fileTree(dir: 'libs', include: ['*.jar']) 24 | implementation 'androidx.appcompat:appcompat:1.0.2' 25 | implementation 'androidx.constraintlayout:constraintlayout:1.1.3' 26 | implementation 'org.pytorch:pytorch_android:1.3.0' 27 | implementation 'org.pytorch:pytorch_android_torchvision:1.3.0' 28 | } 29 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/app/src/androidTest/java/com/tckmpsi/objectdetectordemo/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.tckmpsi.objectdetectordemo; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | 25 | assertEquals("com.tckmpsi.objectdetectordemo", appContext.getPackageName()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/app/src/main/assets/resnet18_traced.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tusharck/Object-Detector-Android-App-Using-PyTorch-Mobile-Neural-Network/529340c853bd1ac078c50f9516a6075749a9e948/ObjectDetectorDemo/app/src/main/assets/resnet18_traced.pt -------------------------------------------------------------------------------- /ObjectDetectorDemo/app/src/main/java/com/tckmpsi/objectdetectordemo/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.tckmpsi.objectdetectordemo; 2 | 3 | import androidx.appcompat.app.AppCompatActivity; 4 | 5 | import android.content.Context; 6 | import android.content.Intent; 7 | import android.database.Cursor; 8 | import android.graphics.Bitmap; 9 | import android.graphics.BitmapFactory; 10 | import android.graphics.drawable.BitmapDrawable; 11 | import android.net.Uri; 12 | import android.os.Build; 13 | import android.os.Bundle; 14 | import android.provider.MediaStore; 15 | import android.view.View; 16 | import android.widget.Button; 17 | import android.widget.ImageView; 18 | import android.widget.TextView; 19 | 20 | import org.pytorch.IValue; 21 | import org.pytorch.Module; 22 | import org.pytorch.Tensor; 23 | import org.pytorch.torchvision.TensorImageUtils; 24 | 25 | import java.io.File; 26 | import java.io.FileOutputStream; 27 | import java.io.IOException; 28 | import java.io.InputStream; 29 | import java.io.OutputStream; 30 | 31 | public class MainActivity extends AppCompatActivity { 32 | private static int RESULT_LOAD_IMAGE = 1; 33 | 34 | @Override 35 | protected void onCreate(Bundle savedInstanceState) { 36 | super.onCreate(savedInstanceState); 37 | setContentView(R.layout.activity_main); 38 | 39 | Button buttonLoadImage = (Button) findViewById(R.id.button); 40 | Button detectButton = (Button) findViewById(R.id.detect); 41 | 42 | 43 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 44 | requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 1); 45 | } 46 | buttonLoadImage.setOnClickListener(new View.OnClickListener() { 47 | 48 | @Override 49 | public void onClick(View arg0) { 50 | TextView textView = findViewById(R.id.result_text); 51 | textView.setText(""); 52 | Intent i = new Intent( 53 | Intent.ACTION_PICK, 54 | MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 55 | 56 | startActivityForResult(i, RESULT_LOAD_IMAGE); 57 | 58 | 59 | } 60 | }); 61 | 62 | detectButton.setOnClickListener(new View.OnClickListener() { 63 | 64 | @Override 65 | public void onClick(View arg0) { 66 | 67 | Bitmap bitmap = null; 68 | Module module = null; 69 | 70 | //Getting the image from the image view 71 | ImageView imageView = (ImageView) findViewById(R.id.image); 72 | 73 | try { 74 | //Read the image as Bitmap 75 | bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap(); 76 | 77 | //Here we reshape the image into 400*400 78 | bitmap = Bitmap.createScaledBitmap(bitmap, 400, 400, true); 79 | 80 | //Loading the model file. 81 | module = Module.load(fetchModelFile(MainActivity.this, "resnet18_traced.pt")); 82 | } catch (IOException e) { 83 | finish(); 84 | } 85 | 86 | //Input Tensor 87 | final Tensor input = TensorImageUtils.bitmapToFloat32Tensor( 88 | bitmap, 89 | TensorImageUtils.TORCHVISION_NORM_MEAN_RGB, 90 | TensorImageUtils.TORCHVISION_NORM_STD_RGB 91 | ); 92 | 93 | //Calling the forward of the model to run our input 94 | final Tensor output = module.forward(IValue.from(input)).toTensor(); 95 | 96 | 97 | final float[] score_arr = output.getDataAsFloatArray(); 98 | 99 | // Fetch the index of the value with maximum score 100 | float max_score = -Float.MAX_VALUE; 101 | int ms_ix = -1; 102 | for (int i = 0; i < score_arr.length; i++) { 103 | if (score_arr[i] > max_score) { 104 | max_score = score_arr[i]; 105 | ms_ix = i; 106 | } 107 | } 108 | 109 | //Fetching the name from the list based on the index 110 | String detected_class = ModelClasses.MODEL_CLASSES[ms_ix]; 111 | 112 | //Writing the detected class in to the text view of the layout 113 | TextView textView = findViewById(R.id.result_text); 114 | textView.setText(detected_class); 115 | 116 | 117 | } 118 | }); 119 | 120 | } 121 | @Override 122 | protected void onActivityResult(int requestCode, int resultCode, Intent data) { 123 | //This functions return the selected image from gallery 124 | super.onActivityResult(requestCode, resultCode, data); 125 | 126 | if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) { 127 | Uri selectedImage = data.getData(); 128 | String[] filePathColumn = { MediaStore.Images.Media.DATA }; 129 | 130 | Cursor cursor = getContentResolver().query(selectedImage, 131 | filePathColumn, null, null, null); 132 | cursor.moveToFirst(); 133 | 134 | int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 135 | String picturePath = cursor.getString(columnIndex); 136 | cursor.close(); 137 | 138 | ImageView imageView = (ImageView) findViewById(R.id.image); 139 | imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 140 | 141 | //Setting the URI so we can read the Bitmap from the image 142 | imageView.setImageURI(null); 143 | imageView.setImageURI(selectedImage); 144 | 145 | 146 | } 147 | 148 | 149 | } 150 | 151 | public static String fetchModelFile(Context context, String modelName) throws IOException { 152 | File file = new File(context.getFilesDir(), modelName); 153 | if (file.exists() && file.length() > 0) { 154 | return file.getAbsolutePath(); 155 | } 156 | 157 | try (InputStream is = context.getAssets().open(modelName)) { 158 | try (OutputStream os = new FileOutputStream(file)) { 159 | byte[] buffer = new byte[4 * 1024]; 160 | int read; 161 | while ((read = is.read(buffer)) != -1) { 162 | os.write(buffer, 0, read); 163 | } 164 | os.flush(); 165 | } 166 | return file.getAbsolutePath(); 167 | } 168 | } 169 | 170 | } 171 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/app/src/main/java/com/tckmpsi/objectdetectordemo/ModelClasses.java: -------------------------------------------------------------------------------- 1 | package com.tckmpsi.objectdetectordemo; 2 | 3 | public class ModelClasses { 4 | public static String[] MODEL_CLASSES = new String[]{ 5 | "tench, Tinca tinca", 6 | "goldfish, Carassius auratus", 7 | "great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias", 8 | "tiger shark, Galeocerdo cuvieri", 9 | "hammerhead, hammerhead shark", 10 | "electric ray, crampfish, numbfish, torpedo", 11 | "stingray", 12 | "cock", 13 | "hen", 14 | "ostrich, Struthio camelus", 15 | "brambling, Fringilla montifringilla", 16 | "goldfinch, Carduelis carduelis", 17 | "house finch, linnet, Carpodacus mexicanus", 18 | "junco, snowbird", 19 | "indigo bunting, indigo finch, indigo bird, Passerina cyanea", 20 | "robin, American robin, Turdus migratorius", 21 | "bulbul", 22 | "jay", 23 | "magpie", 24 | "chickadee", 25 | "water ouzel, dipper", 26 | "kite", 27 | "bald eagle, American eagle, Haliaeetus leucocephalus", 28 | "vulture", 29 | "great grey owl, great gray owl, Strix nebulosa", 30 | "European fire salamander, Salamandra salamandra", 31 | "common newt, Triturus vulgaris", 32 | "eft", 33 | "spotted salamander, Ambystoma maculatum", 34 | "axolotl, mud puppy, Ambystoma mexicanum", 35 | "bullfrog, Rana catesbeiana", 36 | "tree frog, tree-frog", 37 | "tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui", 38 | "loggerhead, loggerhead turtle, Caretta caretta", 39 | "leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea", 40 | "mud turtle", 41 | "terrapin", 42 | "box turtle, box tortoise", 43 | "banded gecko", 44 | "common iguana, iguana, Iguana iguana", 45 | "American chameleon, anole, Anolis carolinensis", 46 | "whiptail, whiptail lizard", 47 | "agama", 48 | "frilled lizard, Chlamydosaurus kingi", 49 | "alligator lizard", 50 | "Gila monster, Heloderma suspectum", 51 | "green lizard, Lacerta viridis", 52 | "African chameleon, Chamaeleo chamaeleon", 53 | "Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis", 54 | "African crocodile, Nile crocodile, Crocodylus niloticus", 55 | "American alligator, Alligator mississipiensis", 56 | "triceratops", 57 | "thunder snake, worm snake, Carphophis amoenus", 58 | "ringneck snake, ring-necked snake, ring snake", 59 | "hognose snake, puff adder, sand viper", 60 | "green snake, grass snake", 61 | "king snake, kingsnake", 62 | "garter snake, grass snake", 63 | "water snake", 64 | "vine snake", 65 | "night snake, Hypsiglena torquata", 66 | "boa constrictor, Constrictor constrictor", 67 | "rock python, rock snake, Python sebae", 68 | "Indian cobra, Naja naja", 69 | "green mamba", 70 | "sea snake", 71 | "horned viper, cerastes, sand viper, horned asp, Cerastes cornutus", 72 | "diamondback, diamondback rattlesnake, Crotalus adamanteus", 73 | "sidewinder, horned rattlesnake, Crotalus cerastes", 74 | "trilobite", 75 | "harvestman, daddy longlegs, Phalangium opilio", 76 | "scorpion", 77 | "black and gold garden spider, Argiope aurantia", 78 | "barn spider, Araneus cavaticus", 79 | "garden spider, Aranea diademata", 80 | "black widow, Latrodectus mactans", 81 | "tarantula", 82 | "wolf spider, hunting spider", 83 | "tick", 84 | "centipede", 85 | "black grouse", 86 | "ptarmigan", 87 | "ruffed grouse, partridge, Bonasa umbellus", 88 | "prairie chicken, prairie grouse, prairie fowl", 89 | "peacock", 90 | "quail", 91 | "partridge", 92 | "African grey, African gray, Psittacus erithacus", 93 | "macaw", 94 | "sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita", 95 | "lorikeet", 96 | "coucal", 97 | "bee eater", 98 | "hornbill", 99 | "hummingbird", 100 | "jacamar", 101 | "toucan", 102 | "drake", 103 | "red-breasted merganser, Mergus serrator", 104 | "goose", 105 | "black swan, Cygnus atratus", 106 | "tusker", 107 | "echidna, spiny anteater, anteater", 108 | "platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus anatinus", 109 | "wallaby, brush kangaroo", 110 | "koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus", 111 | "wombat", 112 | "jellyfish", 113 | "sea anemone, anemone", 114 | "brain coral", 115 | "flatworm, platyhelminth", 116 | "nematode, nematode worm, roundworm", 117 | "conch", 118 | "snail", 119 | "slug", 120 | "sea slug, nudibranch", 121 | "chiton, coat-of-mail shell, sea cradle, polyplacophore", 122 | "chambered nautilus, pearly nautilus, nautilus", 123 | "Dungeness crab, Cancer magister", 124 | "rock crab, Cancer irroratus", 125 | "fiddler crab", 126 | "king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica", 127 | "American lobster, Northern lobster, Maine lobster, Homarus americanus", 128 | "spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish", 129 | "crayfish, crawfish, crawdad, crawdaddy", 130 | "hermit crab", 131 | "isopod", 132 | "white stork, Ciconia ciconia", 133 | "black stork, Ciconia nigra", 134 | "spoonbill", 135 | "flamingo", 136 | "little blue heron, Egretta caerulea", 137 | "American egret, great white heron, Egretta albus", 138 | "bittern", 139 | "crane", 140 | "limpkin, Aramus pictus", 141 | "European gallinule, Porphyrio porphyrio", 142 | "American coot, marsh hen, mud hen, water hen, Fulica americana", 143 | "bustard", 144 | "ruddy turnstone, Arenaria interpres", 145 | "red-backed sandpiper, dunlin, Erolia alpina", 146 | "redshank, Tringa totanus", 147 | "dowitcher", 148 | "oystercatcher, oyster catcher", 149 | "pelican", 150 | "king penguin, Aptenodytes patagonica", 151 | "albatross, mollymawk", 152 | "grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus", 153 | "killer whale, killer, orca, grampus, sea wolf, Orcinus orca", 154 | "dugong, Dugong dugon", 155 | "sea lion", 156 | "Chihuahua", 157 | "Japanese spaniel", 158 | "Maltese dog, Maltese terrier, Maltese", 159 | "Pekinese, Pekingese, Peke", 160 | "Shih-Tzu", 161 | "Blenheim spaniel", 162 | "papillon", 163 | "toy terrier", 164 | "Rhodesian ridgeback", 165 | "Afghan hound, Afghan", 166 | "basset, basset hound", 167 | "beagle", 168 | "bloodhound, sleuthhound", 169 | "bluetick", 170 | "black-and-tan coonhound", 171 | "Walker hound, Walker foxhound", 172 | "English foxhound", 173 | "redbone", 174 | "borzoi, Russian wolfhound", 175 | "Irish wolfhound", 176 | "Italian greyhound", 177 | "whippet", 178 | "Ibizan hound, Ibizan Podenco", 179 | "Norwegian elkhound, elkhound", 180 | "otterhound, otter hound", 181 | "Saluki, gazelle hound", 182 | "Scottish deerhound, deerhound", 183 | "Weimaraner", 184 | "Staffordshire bullterrier, Staffordshire bull terrier", 185 | "American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier", 186 | "Bedlington terrier", 187 | "Border terrier", 188 | "Kerry blue terrier", 189 | "Irish terrier", 190 | "Norfolk terrier", 191 | "Norwich terrier", 192 | "Yorkshire terrier", 193 | "wire-haired fox terrier", 194 | "Lakeland terrier", 195 | "Sealyham terrier, Sealyham", 196 | "Airedale, Airedale terrier", 197 | "cairn, cairn terrier", 198 | "Australian terrier", 199 | "Dandie Dinmont, Dandie Dinmont terrier", 200 | "Boston bull, Boston terrier", 201 | "miniature schnauzer", 202 | "giant schnauzer", 203 | "standard schnauzer", 204 | "Scotch terrier, Scottish terrier, Scottie", 205 | "Tibetan terrier, chrysanthemum dog", 206 | "silky terrier, Sydney silky", 207 | "soft-coated wheaten terrier", 208 | "West Highland white terrier", 209 | "Lhasa, Lhasa apso", 210 | "flat-coated retriever", 211 | "curly-coated retriever", 212 | "golden retriever", 213 | "Labrador retriever", 214 | "Chesapeake Bay retriever", 215 | "German short-haired pointer", 216 | "vizsla, Hungarian pointer", 217 | "English setter", 218 | "Irish setter, red setter", 219 | "Gordon setter", 220 | "Brittany spaniel", 221 | "clumber, clumber spaniel", 222 | "English springer, English springer spaniel", 223 | "Welsh springer spaniel", 224 | "cocker spaniel, English cocker spaniel, cocker", 225 | "Sussex spaniel", 226 | "Irish water spaniel", 227 | "kuvasz", 228 | "schipperke", 229 | "groenendael", 230 | "malinois", 231 | "briard", 232 | "kelpie", 233 | "komondor", 234 | "Old English sheepdog, bobtail", 235 | "Shetland sheepdog, Shetland sheep dog, Shetland", 236 | "collie", 237 | "Border collie", 238 | "Bouvier des Flandres, Bouviers des Flandres", 239 | "Rottweiler", 240 | "German shepherd, German shepherd dog, German police dog, alsatian", 241 | "Doberman, Doberman pinscher", 242 | "miniature pinscher", 243 | "Greater Swiss Mountain dog", 244 | "Bernese mountain dog", 245 | "Appenzeller", 246 | "EntleBucher", 247 | "boxer", 248 | "bull mastiff", 249 | "Tibetan mastiff", 250 | "French bulldog", 251 | "Great Dane", 252 | "Saint Bernard, St Bernard", 253 | "Eskimo dog, husky", 254 | "malamute, malemute, Alaskan malamute", 255 | "Siberian husky", 256 | "dalmatian, coach dog, carriage dog", 257 | "affenpinscher, monkey pinscher, monkey dog", 258 | "basenji", 259 | "pug, pug-dog", 260 | "Leonberg", 261 | "Newfoundland, Newfoundland dog", 262 | "Great Pyrenees", 263 | "Samoyed, Samoyede", 264 | "Pomeranian", 265 | "chow, chow chow", 266 | "keeshond", 267 | "Brabancon griffon", 268 | "Pembroke, Pembroke Welsh corgi", 269 | "Cardigan, Cardigan Welsh corgi", 270 | "toy poodle", 271 | "miniature poodle", 272 | "standard poodle", 273 | "Mexican hairless", 274 | "timber wolf, grey wolf, gray wolf, Canis lupus", 275 | "white wolf, Arctic wolf, Canis lupus tundrarum", 276 | "red wolf, maned wolf, Canis rufus, Canis niger", 277 | "coyote, prairie wolf, brush wolf, Canis latrans", 278 | "dingo, warrigal, warragal, Canis dingo", 279 | "dhole, Cuon alpinus", 280 | "African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus", 281 | "hyena, hyaena", 282 | "red fox, Vulpes vulpes", 283 | "kit fox, Vulpes macrotis", 284 | "Arctic fox, white fox, Alopex lagopus", 285 | "grey fox, gray fox, Urocyon cinereoargenteus", 286 | "tabby, tabby cat", 287 | "tiger cat", 288 | "Persian cat", 289 | "Siamese cat, Siamese", 290 | "Egyptian cat", 291 | "cougar, puma, catamount, mountain lion, painter, panther, Felis concolor", 292 | "lynx, catamount", 293 | "leopard, Panthera pardus", 294 | "snow leopard, ounce, Panthera uncia", 295 | "jaguar, panther, Panthera onca, Felis onca", 296 | "lion, king of beasts, Panthera leo", 297 | "tiger, Panthera tigris", 298 | "cheetah, chetah, Acinonyx jubatus", 299 | "brown bear, bruin, Ursus arctos", 300 | "American black bear, black bear, Ursus americanus, Euarctos americanus", 301 | "ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus", 302 | "sloth bear, Melursus ursinus, Ursus ursinus", 303 | "mongoose", 304 | "meerkat, mierkat", 305 | "tiger beetle", 306 | "ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle", 307 | "ground beetle, carabid beetle", 308 | "long-horned beetle, longicorn, longicorn beetle", 309 | "leaf beetle, chrysomelid", 310 | "dung beetle", 311 | "rhinoceros beetle", 312 | "weevil", 313 | "fly", 314 | "bee", 315 | "ant, emmet, pismire", 316 | "grasshopper, hopper", 317 | "cricket", 318 | "walking stick, walkingstick, stick insect", 319 | "cockroach, roach", 320 | "mantis, mantid", 321 | "cicada, cicala", 322 | "leafhopper", 323 | "lacewing, lacewing fly", 324 | "dragonfly, darning needle, devil's darning needle, sewing needle, snake feeder, snake doctor, mosquito hawk, skeeter hawk", 325 | "damselfly", 326 | "admiral", 327 | "ringlet, ringlet butterfly", 328 | "monarch, monarch butterfly, milkweed butterfly, Danaus plexippus", 329 | "cabbage butterfly", 330 | "sulphur butterfly, sulfur butterfly", 331 | "lycaenid, lycaenid butterfly", 332 | "starfish, sea star", 333 | "sea urchin", 334 | "sea cucumber, holothurian", 335 | "wood rabbit, cottontail, cottontail rabbit", 336 | "hare", 337 | "Angora, Angora rabbit", 338 | "hamster", 339 | "porcupine, hedgehog", 340 | "fox squirrel, eastern fox squirrel, Sciurus niger", 341 | "marmot", 342 | "beaver", 343 | "guinea pig, Cavia cobaya", 344 | "sorrel", 345 | "zebra", 346 | "hog, pig, grunter, squealer, Sus scrofa", 347 | "wild boar, boar, Sus scrofa", 348 | "warthog", 349 | "hippopotamus, hippo, river horse, Hippopotamus amphibius", 350 | "ox", 351 | "water buffalo, water ox, Asiatic buffalo, Bubalus bubalis", 352 | "bison", 353 | "ram, tup", 354 | "bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, Ovis canadensis", 355 | "ibex, Capra ibex", 356 | "hartebeest", 357 | "impala, Aepyceros melampus", 358 | "gazelle", 359 | "Arabian camel, dromedary, Camelus dromedarius", 360 | "llama", 361 | "weasel", 362 | "mink", 363 | "polecat, fitch, foulmart, foumart, Mustela putorius", 364 | "black-footed ferret, ferret, Mustela nigripes", 365 | "otter", 366 | "skunk, polecat, wood pussy", 367 | "badger", 368 | "armadillo", 369 | "three-toed sloth, ai, Bradypus tridactylus", 370 | "orangutan, orang, orangutang, Pongo pygmaeus", 371 | "gorilla, Gorilla gorilla", 372 | "chimpanzee, chimp, Pan troglodytes", 373 | "gibbon, Hylobates lar", 374 | "siamang, Hylobates syndactylus, Symphalangus syndactylus", 375 | "guenon, guenon monkey", 376 | "patas, hussar monkey, Erythrocebus patas", 377 | "baboon", 378 | "macaque", 379 | "langur", 380 | "colobus, colobus monkey", 381 | "proboscis monkey, Nasalis larvatus", 382 | "marmoset", 383 | "capuchin, ringtail, Cebus capucinus", 384 | "howler monkey, howler", 385 | "titi, titi monkey", 386 | "spider monkey, Ateles geoffroyi", 387 | "squirrel monkey, Saimiri sciureus", 388 | "Madagascar cat, ring-tailed lemur, Lemur catta", 389 | "indri, indris, Indri indri, Indri brevicaudatus", 390 | "Indian elephant, Elephas maximus", 391 | "African elephant, Loxodonta africana", 392 | "lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens", 393 | "giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca", 394 | "barracouta, snoek", 395 | "eel", 396 | "coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch", 397 | "rock beauty, Holocanthus tricolor", 398 | "anemone fish", 399 | "sturgeon", 400 | "gar, garfish, garpike, billfish, Lepisosteus osseus", 401 | "lionfish", 402 | "puffer, pufferfish, blowfish, globefish", 403 | "abacus", 404 | "abaya", 405 | "academic gown, academic robe, judge's robe", 406 | "accordion, piano accordion, squeeze box", 407 | "acoustic guitar", 408 | "aircraft carrier, carrier, flattop, attack aircraft carrier", 409 | "airliner", 410 | "airship, dirigible", 411 | "altar", 412 | "ambulance", 413 | "amphibian, amphibious vehicle", 414 | "analog clock", 415 | "apiary, bee house", 416 | "apron", 417 | "ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin", 418 | "assault rifle, assault gun", 419 | "backpack, back pack, knapsack, packsack, rucksack, haversack", 420 | "bakery, bakeshop, bakehouse", 421 | "balance beam, beam", 422 | "balloon", 423 | "ballpoint, ballpoint pen, ballpen, Biro", 424 | "Band Aid", 425 | "banjo", 426 | "bannister, banister, balustrade, balusters, handrail", 427 | "barbell", 428 | "barber chair", 429 | "barbershop", 430 | "barn", 431 | "barometer", 432 | "barrel, cask", 433 | "barrow, garden cart, lawn cart, wheelbarrow", 434 | "baseball", 435 | "basketball", 436 | "bassinet", 437 | "bassoon", 438 | "bathing cap, swimming cap", 439 | "bath towel", 440 | "bathtub, bathing tub, bath, tub", 441 | "beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon", 442 | "beacon, lighthouse, beacon light, pharos", 443 | "beaker", 444 | "bearskin, busby, shako", 445 | "beer bottle", 446 | "beer glass", 447 | "bell cote, bell cot", 448 | "bib", 449 | "bicycle-built-for-two, tandem bicycle, tandem", 450 | "bikini, two-piece", 451 | "binder, ring-binder", 452 | "binoculars, field glasses, opera glasses", 453 | "birdhouse", 454 | "boathouse", 455 | "bobsled, bobsleigh, bob", 456 | "bolo tie, bolo, bola tie, bola", 457 | "bonnet, poke bonnet", 458 | "bookcase", 459 | "bookshop, bookstore, bookstall", 460 | "bottlecap", 461 | "bow", 462 | "bow tie, bow-tie, bowtie", 463 | "brass, memorial tablet, plaque", 464 | "brassiere, bra, bandeau", 465 | "breakwater, groin, groyne, mole, bulwark, seawall, jetty", 466 | "breastplate, aegis, egis", 467 | "broom", 468 | "bucket, pail", 469 | "buckle", 470 | "bulletproof vest", 471 | "bullet train, bullet", 472 | "butcher shop, meat market", 473 | "cab, hack, taxi, taxicab", 474 | "caldron, cauldron", 475 | "candle, taper, wax light", 476 | "cannon", 477 | "canoe", 478 | "can opener, tin opener", 479 | "cardigan", 480 | "car mirror", 481 | "carousel, carrousel, merry-go-round, roundabout, whirligig", 482 | "carpenter's kit, tool kit", 483 | "carton", 484 | "car wheel", 485 | "cash machine, cash dispenser, automated teller machine, automatic teller machine, automated teller, automatic teller, ATM", 486 | "cassette", 487 | "cassette player", 488 | "castle", 489 | "catamaran", 490 | "CD player", 491 | "cello, violoncello", 492 | "cellular telephone, cellular phone, cellphone, cell, mobile phone", 493 | "chain", 494 | "chainlink fence", 495 | "chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour", 496 | "chain saw, chainsaw", 497 | "chest", 498 | "chiffonier, commode", 499 | "chime, bell, gong", 500 | "china cabinet, china closet", 501 | "Christmas stocking", 502 | "church, church building", 503 | "cinema, movie theater, movie theatre, movie house, picture palace", 504 | "cleaver, meat cleaver, chopper", 505 | "cliff dwelling", 506 | "cloak", 507 | "clog, geta, patten, sabot", 508 | "cocktail shaker", 509 | "coffee mug", 510 | "coffeepot", 511 | "coil, spiral, volute, whorl, helix", 512 | "combination lock", 513 | "computer keyboard, keypad", 514 | "confectionery, confectionary, candy store", 515 | "container ship, containership, container vessel", 516 | "convertible", 517 | "corkscrew, bottle screw", 518 | "cornet, horn, trumpet, trump", 519 | "cowboy boot", 520 | "cowboy hat, ten-gallon hat", 521 | "cradle", 522 | "crane", 523 | "crash helmet", 524 | "crate", 525 | "crib, cot", 526 | "Crock Pot", 527 | "croquet ball", 528 | "crutch", 529 | "cuirass", 530 | "dam, dike, dyke", 531 | "desk", 532 | "desktop computer", 533 | "dial telephone, dial phone", 534 | "diaper, nappy, napkin", 535 | "digital clock", 536 | "digital watch", 537 | "dining table, board", 538 | "dishrag, dishcloth", 539 | "dishwasher, dish washer, dishwashing machine", 540 | "disk brake, disc brake", 541 | "dock, dockage, docking facility", 542 | "dogsled, dog sled, dog sleigh", 543 | "dome", 544 | "doormat, welcome mat", 545 | "drilling platform, offshore rig", 546 | "drum, membranophone, tympan", 547 | "drumstick", 548 | "dumbbell", 549 | "Dutch oven", 550 | "electric fan, blower", 551 | "electric guitar", 552 | "electric locomotive", 553 | "entertainment center", 554 | "envelope", 555 | "espresso maker", 556 | "face powder", 557 | "feather boa, boa", 558 | "file, file cabinet, filing cabinet", 559 | "fireboat", 560 | "fire engine, fire truck", 561 | "fire screen, fireguard", 562 | "flagpole, flagstaff", 563 | "flute, transverse flute", 564 | "folding chair", 565 | "football helmet", 566 | "forklift", 567 | "fountain", 568 | "fountain pen", 569 | "four-poster", 570 | "freight car", 571 | "French horn, horn", 572 | "frying pan, frypan, skillet", 573 | "fur coat", 574 | "garbage truck, dustcart", 575 | "gasmask, respirator, gas helmet", 576 | "gas pump, gasoline pump, petrol pump, island dispenser", 577 | "goblet", 578 | "go-kart", 579 | "golf ball", 580 | "golfcart, golf cart", 581 | "gondola", 582 | "gong, tam-tam", 583 | "gown", 584 | "grand piano, grand", 585 | "greenhouse, nursery, glasshouse", 586 | "grille, radiator grille", 587 | "grocery store, grocery, food market, market", 588 | "guillotine", 589 | "hair slide", 590 | "hair spray", 591 | "half track", 592 | "hammer", 593 | "hamper", 594 | "hand blower, blow dryer, blow drier, hair dryer, hair drier", 595 | "hand-held computer, hand-held microcomputer", 596 | "handkerchief, hankie, hanky, hankey", 597 | "hard disc, hard disk, fixed disk", 598 | "harmonica, mouth organ, harp, mouth harp", 599 | "harp", 600 | "harvester, reaper", 601 | "hatchet", 602 | "holster", 603 | "home theater, home theatre", 604 | "honeycomb", 605 | "hook, claw", 606 | "hoopskirt, crinoline", 607 | "horizontal bar, high bar", 608 | "horse cart, horse-cart", 609 | "hourglass", 610 | "iPod", 611 | "iron, smoothing iron", 612 | "jack-o'-lantern", 613 | "jean, blue jean, denim", 614 | "jeep, landrover", 615 | "jersey, T-shirt, tee shirt", 616 | "jigsaw puzzle", 617 | "jinrikisha, ricksha, rickshaw", 618 | "joystick", 619 | "kimono", 620 | "knee pad", 621 | "knot", 622 | "lab coat, laboratory coat", 623 | "ladle", 624 | "lampshade, lamp shade", 625 | "laptop, laptop computer", 626 | "lawn mower, mower", 627 | "lens cap, lens cover", 628 | "letter opener, paper knife, paperknife", 629 | "library", 630 | "lifeboat", 631 | "lighter, light, igniter, ignitor", 632 | "limousine, limo", 633 | "liner, ocean liner", 634 | "lipstick, lip rouge", 635 | "Loafer", 636 | "lotion", 637 | "loudspeaker, speaker, speaker unit, loudspeaker system, speaker system", 638 | "loupe, jeweler's loupe", 639 | "lumbermill, sawmill", 640 | "magnetic compass", 641 | "mailbag, postbag", 642 | "mailbox, letter box", 643 | "maillot", 644 | "maillot, tank suit", 645 | "manhole cover", 646 | "maraca", 647 | "marimba, xylophone", 648 | "mask", 649 | "matchstick", 650 | "maypole", 651 | "maze, labyrinth", 652 | "measuring cup", 653 | "medicine chest, medicine cabinet", 654 | "megalith, megalithic structure", 655 | "microphone, mike", 656 | "microwave, microwave oven", 657 | "military uniform", 658 | "milk can", 659 | "minibus", 660 | "miniskirt, mini", 661 | "minivan", 662 | "missile", 663 | "mitten", 664 | "mixing bowl", 665 | "mobile home, manufactured home", 666 | "Model T", 667 | "modem", 668 | "monastery", 669 | "monitor", 670 | "moped", 671 | "mortar", 672 | "mortarboard", 673 | "mosque", 674 | "mosquito net", 675 | "motor scooter, scooter", 676 | "mountain bike, all-terrain bike, off-roader", 677 | "mountain tent", 678 | "mouse, computer mouse", 679 | "mousetrap", 680 | "moving van", 681 | "muzzle", 682 | "nail", 683 | "neck brace", 684 | "necklace", 685 | "nipple", 686 | "notebook, notebook computer", 687 | "obelisk", 688 | "oboe, hautboy, hautbois", 689 | "ocarina, sweet potato", 690 | "odometer, hodometer, mileometer, milometer", 691 | "oil filter", 692 | "organ, pipe organ", 693 | "oscilloscope, scope, cathode-ray oscilloscope, CRO", 694 | "overskirt", 695 | "oxcart", 696 | "oxygen mask", 697 | "packet", 698 | "paddle, boat paddle", 699 | "paddlewheel, paddle wheel", 700 | "padlock", 701 | "paintbrush", 702 | "pajama, pyjama, pj's, jammies", 703 | "palace", 704 | "panpipe, pandean pipe, syrinx", 705 | "paper towel", 706 | "parachute, chute", 707 | "parallel bars, bars", 708 | "park bench", 709 | "parking meter", 710 | "passenger car, coach, carriage", 711 | "patio, terrace", 712 | "pay-phone, pay-station", 713 | "pedestal, plinth, footstall", 714 | "pencil box, pencil case", 715 | "pencil sharpener", 716 | "perfume, essence", 717 | "Petri dish", 718 | "photocopier", 719 | "pick, plectrum, plectron", 720 | "pickelhaube", 721 | "picket fence, paling", 722 | "pickup, pickup truck", 723 | "pier", 724 | "piggy bank, penny bank", 725 | "pill bottle", 726 | "pillow", 727 | "ping-pong ball", 728 | "pinwheel", 729 | "pirate, pirate ship", 730 | "pitcher, ewer", 731 | "plane, carpenter's plane, woodworking plane", 732 | "planetarium", 733 | "plastic bag", 734 | "plate rack", 735 | "plow, plough", 736 | "plunger, plumber's helper", 737 | "Polaroid camera, Polaroid Land camera", 738 | "pole", 739 | "police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria", 740 | "poncho", 741 | "pool table, billiard table, snooker table", 742 | "pop bottle, soda bottle", 743 | "pot, flowerpot", 744 | "potter's wheel", 745 | "power drill", 746 | "prayer rug, prayer mat", 747 | "printer", 748 | "prison, prison house", 749 | "projectile, missile", 750 | "projector", 751 | "puck, hockey puck", 752 | "punching bag, punch bag, punching ball, punchball", 753 | "purse", 754 | "quill, quill pen", 755 | "quilt, comforter, comfort, puff", 756 | "racer, race car, racing car", 757 | "racket, racquet", 758 | "radiator", 759 | "radio, wireless", 760 | "radio telescope, radio reflector", 761 | "rain barrel", 762 | "recreational vehicle, RV, R.V.", 763 | "reel", 764 | "reflex camera", 765 | "refrigerator, icebox", 766 | "remote control, remote", 767 | "restaurant, eating house, eating place, eatery", 768 | "revolver, six-gun, six-shooter", 769 | "rifle", 770 | "rocking chair, rocker", 771 | "rotisserie", 772 | "rubber eraser, rubber, pencil eraser", 773 | "rugby ball", 774 | "rule, ruler", 775 | "running shoe", 776 | "safe", 777 | "safety pin", 778 | "saltshaker, salt shaker", 779 | "sandal", 780 | "sarong", 781 | "sax, saxophone", 782 | "scabbard", 783 | "scale, weighing machine", 784 | "school bus", 785 | "schooner", 786 | "scoreboard", 787 | "screen, CRT screen", 788 | "screw", 789 | "screwdriver", 790 | "seat belt, seatbelt", 791 | "sewing machine", 792 | "shield, buckler", 793 | "shoe shop, shoe-shop, shoe store", 794 | "shoji", 795 | "shopping basket", 796 | "shopping cart", 797 | "shovel", 798 | "shower cap", 799 | "shower curtain", 800 | "ski", 801 | "ski mask", 802 | "sleeping bag", 803 | "slide rule, slipstick", 804 | "sliding door", 805 | "slot, one-armed bandit", 806 | "snorkel", 807 | "snowmobile", 808 | "snowplow, snowplough", 809 | "soap dispenser", 810 | "soccer ball", 811 | "sock", 812 | "solar dish, solar collector, solar furnace", 813 | "sombrero", 814 | "soup bowl", 815 | "space bar", 816 | "space heater", 817 | "space shuttle", 818 | "spatula", 819 | "speedboat", 820 | "spider web, spider's web", 821 | "spindle", 822 | "sports car, sport car", 823 | "spotlight, spot", 824 | "stage", 825 | "steam locomotive", 826 | "steel arch bridge", 827 | "steel drum", 828 | "stethoscope", 829 | "stole", 830 | "stone wall", 831 | "stopwatch, stop watch", 832 | "stove", 833 | "strainer", 834 | "streetcar, tram, tramcar, trolley, trolley car", 835 | "stretcher", 836 | "studio couch, day bed", 837 | "stupa, tope", 838 | "submarine, pigboat, sub, U-boat", 839 | "suit, suit of clothes", 840 | "sundial", 841 | "sunglass", 842 | "sunglasses, dark glasses, shades", 843 | "sunscreen, sunblock, sun blocker", 844 | "suspension bridge", 845 | "swab, swob, mop", 846 | "sweatshirt", 847 | "swimming trunks, bathing trunks", 848 | "swing", 849 | "switch, electric switch, electrical switch", 850 | "syringe", 851 | "table lamp", 852 | "tank, army tank, armored combat vehicle, armoured combat vehicle", 853 | "tape player", 854 | "teapot", 855 | "teddy, teddy bear", 856 | "television, television system", 857 | "tennis ball", 858 | "thatch, thatched roof", 859 | "theater curtain, theatre curtain", 860 | "thimble", 861 | "thresher, thrasher, threshing machine", 862 | "throne", 863 | "tile roof", 864 | "toaster", 865 | "tobacco shop, tobacconist shop, tobacconist", 866 | "toilet seat", 867 | "torch", 868 | "totem pole", 869 | "tow truck, tow car, wrecker", 870 | "toyshop", 871 | "tractor", 872 | "trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi", 873 | "tray", 874 | "trench coat", 875 | "tricycle, trike, velocipede", 876 | "trimaran", 877 | "tripod", 878 | "triumphal arch", 879 | "trolleybus, trolley coach, trackless trolley", 880 | "trombone", 881 | "tub, vat", 882 | "turnstile", 883 | "typewriter keyboard", 884 | "umbrella", 885 | "unicycle, monocycle", 886 | "upright, upright piano", 887 | "vacuum, vacuum cleaner", 888 | "vase", 889 | "vault", 890 | "velvet", 891 | "vending machine", 892 | "vestment", 893 | "viaduct", 894 | "violin, fiddle", 895 | "volleyball", 896 | "waffle iron", 897 | "wall clock", 898 | "wallet, billfold, notecase, pocketbook", 899 | "wardrobe, closet, press", 900 | "warplane, military plane", 901 | "washbasin, handbasin, washbowl, lavabo, wash-hand basin", 902 | "washer, automatic washer, washing machine", 903 | "water bottle", 904 | "water jug", 905 | "water tower", 906 | "whiskey jug", 907 | "whistle", 908 | "wig", 909 | "window screen", 910 | "window shade", 911 | "Windsor tie", 912 | "wine bottle", 913 | "wing", 914 | "wok", 915 | "wooden spoon", 916 | "wool, woolen, woollen", 917 | "worm fence, snake fence, snake-rail fence, Virginia fence", 918 | "wreck", 919 | "yawl", 920 | "yurt", 921 | "web site, website, internet site, site", 922 | "comic book", 923 | "crossword puzzle, crossword", 924 | "street sign", 925 | "traffic light, traffic signal, stoplight", 926 | "book jacket, dust cover, dust jacket, dust wrapper", 927 | "menu", 928 | "plate", 929 | "guacamole", 930 | "consomme", 931 | "hot pot, hotpot", 932 | "trifle", 933 | "ice cream, icecream", 934 | "ice lolly, lolly, lollipop, popsicle", 935 | "French loaf", 936 | "bagel, beigel", 937 | "pretzel", 938 | "cheeseburger", 939 | "hotdog, hot dog, red hot", 940 | "mashed potato", 941 | "head cabbage", 942 | "broccoli", 943 | "cauliflower", 944 | "zucchini, courgette", 945 | "spaghetti squash", 946 | "acorn squash", 947 | "butternut squash", 948 | "cucumber, cuke", 949 | "artichoke, globe artichoke", 950 | "bell pepper", 951 | "cardoon", 952 | "mushroom", 953 | "Granny Smith", 954 | "strawberry", 955 | "orange", 956 | "lemon", 957 | "fig", 958 | "pineapple, ananas", 959 | "banana", 960 | "jackfruit, jak, jack", 961 | "custard apple", 962 | "pomegranate", 963 | "hay", 964 | "carbonara", 965 | "chocolate sauce, chocolate syrup", 966 | "dough", 967 | "meat loaf, meatloaf", 968 | "pizza, pizza pie", 969 | "potpie", 970 | "burrito", 971 | "red wine", 972 | "espresso", 973 | "cup", 974 | "eggnog", 975 | "alp", 976 | "bubble", 977 | "cliff, drop, drop-off", 978 | "coral reef", 979 | "geyser", 980 | "lakeside, lakeshore", 981 | "promontory, headland, head, foreland", 982 | "sandbar, sand bar", 983 | "seashore, coast, seacoast, sea-coast", 984 | "valley, vale", 985 | "volcano", 986 | "ballplayer, baseball player", 987 | "groom, bridegroom", 988 | "scuba diver", 989 | "rapeseed", 990 | "daisy", 991 | "yellow lady's slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium parviflorum", 992 | "corn", 993 | "acorn", 994 | "hip, rose hip, rosehip", 995 | "buckeye, horse chestnut, conker", 996 | "coral fungus", 997 | "agaric", 998 | "gyromitra", 999 | "stinkhorn, carrion fungus", 1000 | "earthstar", 1001 | "hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa", 1002 | "bolete", 1003 | "ear, spike, capitulum", 1004 | "toilet tissue, toilet paper, bathroom tissue" 1005 | }; 1006 | } 1007 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60 | 65 | 70 | 75 | 80 | 85 | 90 | 95 | 100 | 105 | 110 | 115 | 120 | 125 | 130 | 135 | 140 | 145 | 150 | 155 | 160 | 165 | 170 | 171 | -------------------------------------------------------------------------------- /ObjectDetectorDemo/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 16 | 17 | 29 | 30 |