Commit
·
834c809
1
Parent(s):
aa78f2e
Initial commit: Add ResNet50 classifier app
Browse files- README.md +40 -7
- app.py +68 -0
- best_model.pth +3 -0
- create_labels.py +21 -0
- download_model.py +27 -0
- imagenet_classes.json +1002 -0
- requirements.txt +5 -0
README.md
CHANGED
@@ -1,14 +1,47 @@
|
|
1 |
---
|
2 |
-
title:
|
3 |
-
emoji:
|
4 |
-
colorFrom:
|
5 |
colorTo: red
|
6 |
sdk: streamlit
|
7 |
-
sdk_version: 1.
|
8 |
app_file: app.py
|
9 |
pinned: false
|
10 |
-
license: apache-2.0
|
11 |
-
short_description: resnet50-image-classifier
|
12 |
---
|
13 |
|
14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
---
|
2 |
+
title: ResNet50 Image Classifier
|
3 |
+
emoji: 🖼️
|
4 |
+
colorFrom: blue
|
5 |
colorTo: red
|
6 |
sdk: streamlit
|
7 |
+
sdk_version: 1.22.0
|
8 |
app_file: app.py
|
9 |
pinned: false
|
|
|
|
|
10 |
---
|
11 |
|
12 |
+
# ResNet50 Image Classifier
|
13 |
+
|
14 |
+
This Streamlit application uses a ResNet50 model trained on the ImageNet-1K dataset to classify images into 1000 different categories.
|
15 |
+
|
16 |
+
## How to Use
|
17 |
+
|
18 |
+
1. Click the "Choose an image..." button or drag and drop an image
|
19 |
+
2. The model will automatically process your image
|
20 |
+
3. View the top 5 predictions with their confidence scores
|
21 |
+
|
22 |
+
## Model Details
|
23 |
+
|
24 |
+
- **Architecture**: ResNet50
|
25 |
+
- **Dataset**: ImageNet-1K
|
26 |
+
- **Input Size**: 224x224 pixels
|
27 |
+
- **Number of Classes**: 1000
|
28 |
+
|
29 |
+
## Example Predictions
|
30 |
+
|
31 |
+
The model can identify various objects, animals, and scenes, including:
|
32 |
+
- Common animals (dogs, cats, birds)
|
33 |
+
- Everyday objects
|
34 |
+
- Vehicles
|
35 |
+
- Natural scenes
|
36 |
+
- And many more!
|
37 |
+
|
38 |
+
## Technical Details
|
39 |
+
|
40 |
+
- Built with PyTorch and Streamlit
|
41 |
+
- Uses standard ImageNet preprocessing
|
42 |
+
- Runs inference on CPU
|
43 |
+
- Displays confidence scores as progress bars
|
44 |
+
|
45 |
+
## Note
|
46 |
+
|
47 |
+
For best results, use clear, well-lit images with a single main subject.
|
app.py
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import torch
|
3 |
+
import torchvision.transforms as transforms
|
4 |
+
from torchvision.models import resnet50
|
5 |
+
from PIL import Image
|
6 |
+
import json
|
7 |
+
|
8 |
+
# Load ImageNet class labels
|
9 |
+
with open('imagenet_classes.json') as f:
|
10 |
+
labels = json.load(f)
|
11 |
+
|
12 |
+
def load_model():
|
13 |
+
# Initialize standard ResNet50 with 1000 classes (default)
|
14 |
+
model = resnet50(pretrained=False) # Don't load pretrained weights
|
15 |
+
|
16 |
+
# Load your trained weights with safe loading
|
17 |
+
model.load_state_dict(torch.load('best_model.pth', map_location=torch.device('cpu'), weights_only=True))
|
18 |
+
model.eval()
|
19 |
+
return model
|
20 |
+
|
21 |
+
def process_image(image):
|
22 |
+
# Define the same transforms used during training
|
23 |
+
transform = transforms.Compose([
|
24 |
+
transforms.Resize(256),
|
25 |
+
transforms.CenterCrop(224),
|
26 |
+
transforms.ToTensor(),
|
27 |
+
transforms.Normalize(mean=[0.485, 0.456, 0.406],
|
28 |
+
std=[0.229, 0.224, 0.225])
|
29 |
+
])
|
30 |
+
|
31 |
+
image = transform(image).unsqueeze(0)
|
32 |
+
return image
|
33 |
+
|
34 |
+
def get_prediction(model, image):
|
35 |
+
with torch.no_grad():
|
36 |
+
outputs = model(image)
|
37 |
+
probabilities = torch.nn.functional.softmax(outputs[0], dim=0)
|
38 |
+
top5_prob, top5_catid = torch.topk(probabilities, 5)
|
39 |
+
return top5_prob, top5_catid
|
40 |
+
|
41 |
+
def main():
|
42 |
+
st.title("Image Classification with ResNet50")
|
43 |
+
st.write("Upload an image and the model will predict its category")
|
44 |
+
|
45 |
+
uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
|
46 |
+
|
47 |
+
if uploaded_file is not None:
|
48 |
+
# Display the uploaded image
|
49 |
+
image = Image.open(uploaded_file).convert('RGB')
|
50 |
+
st.image(image, caption='Uploaded Image', use_column_width=True)
|
51 |
+
|
52 |
+
# Load model
|
53 |
+
model = load_model()
|
54 |
+
|
55 |
+
# Process image and get prediction
|
56 |
+
processed_image = process_image(image)
|
57 |
+
top5_prob, top5_catid = get_prediction(model, processed_image)
|
58 |
+
|
59 |
+
# Display predictions
|
60 |
+
st.subheader("Predictions:")
|
61 |
+
for i in range(5):
|
62 |
+
probability = top5_prob[i].item() * 100
|
63 |
+
category = labels[str(top5_catid[i].item())]
|
64 |
+
st.write(f"{category}: {probability:.2f}%")
|
65 |
+
st.progress(probability/100)
|
66 |
+
|
67 |
+
if __name__ == "__main__":
|
68 |
+
main()
|
best_model.pth
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:cd05c4ba7e9b76e43900a2b0cd3ac6fd01464deb76d190d79274563899bf3d72
|
3 |
+
size 102542206
|
create_labels.py
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from torchvision.models import ResNet50_Weights
|
2 |
+
import json
|
3 |
+
|
4 |
+
def create_imagenet_labels():
|
5 |
+
# Get the ImageNet class mapping
|
6 |
+
weights = ResNet50_Weights.IMAGENET1K_V1
|
7 |
+
class_labels = weights.meta["categories"]
|
8 |
+
|
9 |
+
# Create dictionary with all 1000 classes
|
10 |
+
label_dict = {}
|
11 |
+
for idx, label in enumerate(class_labels):
|
12 |
+
label_dict[str(idx)] = label
|
13 |
+
|
14 |
+
# Save to file
|
15 |
+
with open('imagenet_classes.json', 'w') as f:
|
16 |
+
json.dump(label_dict, f, indent=4)
|
17 |
+
|
18 |
+
print(f"Created labels file with {len(label_dict)} classes")
|
19 |
+
|
20 |
+
if __name__ == "__main__":
|
21 |
+
create_imagenet_labels()
|
download_model.py
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import torch
|
2 |
+
import os
|
3 |
+
from torchvision.models import resnet50, ResNet50_Weights
|
4 |
+
|
5 |
+
def download_pretrained_model():
|
6 |
+
try:
|
7 |
+
# Load ResNet50 model with the best available weights
|
8 |
+
print("Downloading ResNet50 model with ImageNet-1K weights...")
|
9 |
+
model = resnet50(weights=ResNet50_Weights.IMAGENET1K_V2)
|
10 |
+
model.eval()
|
11 |
+
|
12 |
+
# Save the model with safe loading
|
13 |
+
print("Saving model to best_model.pth...")
|
14 |
+
torch.save(model.state_dict(), 'best_model.pth', _use_new_zipfile_serialization=True)
|
15 |
+
|
16 |
+
# Verify the file exists
|
17 |
+
if os.path.exists('best_model.pth'):
|
18 |
+
model_size = os.path.getsize('best_model.pth') / (1024 * 1024) # Size in MB
|
19 |
+
print(f"Model saved successfully! Size: {model_size:.2f} MB")
|
20 |
+
else:
|
21 |
+
print("Error: Model file was not created")
|
22 |
+
|
23 |
+
except Exception as e:
|
24 |
+
print(f"An error occurred: {str(e)}")
|
25 |
+
|
26 |
+
if __name__ == "__main__":
|
27 |
+
download_pretrained_model()
|
imagenet_classes.json
ADDED
@@ -0,0 +1,1002 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"0": "tench",
|
3 |
+
"1": "goldfish",
|
4 |
+
"2": "great white shark",
|
5 |
+
"3": "tiger shark",
|
6 |
+
"4": "hammerhead",
|
7 |
+
"5": "electric ray",
|
8 |
+
"6": "stingray",
|
9 |
+
"7": "cock",
|
10 |
+
"8": "hen",
|
11 |
+
"9": "ostrich",
|
12 |
+
"10": "brambling",
|
13 |
+
"11": "goldfinch",
|
14 |
+
"12": "house finch",
|
15 |
+
"13": "junco",
|
16 |
+
"14": "indigo bunting",
|
17 |
+
"15": "robin",
|
18 |
+
"16": "bulbul",
|
19 |
+
"17": "jay",
|
20 |
+
"18": "magpie",
|
21 |
+
"19": "chickadee",
|
22 |
+
"20": "water ouzel",
|
23 |
+
"21": "kite",
|
24 |
+
"22": "bald eagle",
|
25 |
+
"23": "vulture",
|
26 |
+
"24": "great grey owl",
|
27 |
+
"25": "European fire salamander",
|
28 |
+
"26": "common newt",
|
29 |
+
"27": "eft",
|
30 |
+
"28": "spotted salamander",
|
31 |
+
"29": "axolotl",
|
32 |
+
"30": "bullfrog",
|
33 |
+
"31": "tree frog",
|
34 |
+
"32": "tailed frog",
|
35 |
+
"33": "loggerhead",
|
36 |
+
"34": "leatherback turtle",
|
37 |
+
"35": "mud turtle",
|
38 |
+
"36": "terrapin",
|
39 |
+
"37": "box turtle",
|
40 |
+
"38": "banded gecko",
|
41 |
+
"39": "common iguana",
|
42 |
+
"40": "American chameleon",
|
43 |
+
"41": "whiptail",
|
44 |
+
"42": "agama",
|
45 |
+
"43": "frilled lizard",
|
46 |
+
"44": "alligator lizard",
|
47 |
+
"45": "Gila monster",
|
48 |
+
"46": "green lizard",
|
49 |
+
"47": "African chameleon",
|
50 |
+
"48": "Komodo dragon",
|
51 |
+
"49": "African crocodile",
|
52 |
+
"50": "American alligator",
|
53 |
+
"51": "triceratops",
|
54 |
+
"52": "thunder snake",
|
55 |
+
"53": "ringneck snake",
|
56 |
+
"54": "hognose snake",
|
57 |
+
"55": "green snake",
|
58 |
+
"56": "king snake",
|
59 |
+
"57": "garter snake",
|
60 |
+
"58": "water snake",
|
61 |
+
"59": "vine snake",
|
62 |
+
"60": "night snake",
|
63 |
+
"61": "boa constrictor",
|
64 |
+
"62": "rock python",
|
65 |
+
"63": "Indian cobra",
|
66 |
+
"64": "green mamba",
|
67 |
+
"65": "sea snake",
|
68 |
+
"66": "horned viper",
|
69 |
+
"67": "diamondback",
|
70 |
+
"68": "sidewinder",
|
71 |
+
"69": "trilobite",
|
72 |
+
"70": "harvestman",
|
73 |
+
"71": "scorpion",
|
74 |
+
"72": "black and gold garden spider",
|
75 |
+
"73": "barn spider",
|
76 |
+
"74": "garden spider",
|
77 |
+
"75": "black widow",
|
78 |
+
"76": "tarantula",
|
79 |
+
"77": "wolf spider",
|
80 |
+
"78": "tick",
|
81 |
+
"79": "centipede",
|
82 |
+
"80": "black grouse",
|
83 |
+
"81": "ptarmigan",
|
84 |
+
"82": "ruffed grouse",
|
85 |
+
"83": "prairie chicken",
|
86 |
+
"84": "peacock",
|
87 |
+
"85": "quail",
|
88 |
+
"86": "partridge",
|
89 |
+
"87": "African grey",
|
90 |
+
"88": "macaw",
|
91 |
+
"89": "sulphur-crested cockatoo",
|
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",
|
101 |
+
"99": "goose",
|
102 |
+
"100": "black swan",
|
103 |
+
"101": "tusker",
|
104 |
+
"102": "echidna",
|
105 |
+
"103": "platypus",
|
106 |
+
"104": "wallaby",
|
107 |
+
"105": "koala",
|
108 |
+
"106": "wombat",
|
109 |
+
"107": "jellyfish",
|
110 |
+
"108": "sea anemone",
|
111 |
+
"109": "brain coral",
|
112 |
+
"110": "flatworm",
|
113 |
+
"111": "nematode",
|
114 |
+
"112": "conch",
|
115 |
+
"113": "snail",
|
116 |
+
"114": "slug",
|
117 |
+
"115": "sea slug",
|
118 |
+
"116": "chiton",
|
119 |
+
"117": "chambered nautilus",
|
120 |
+
"118": "Dungeness crab",
|
121 |
+
"119": "rock crab",
|
122 |
+
"120": "fiddler crab",
|
123 |
+
"121": "king crab",
|
124 |
+
"122": "American lobster",
|
125 |
+
"123": "spiny lobster",
|
126 |
+
"124": "crayfish",
|
127 |
+
"125": "hermit crab",
|
128 |
+
"126": "isopod",
|
129 |
+
"127": "white stork",
|
130 |
+
"128": "black stork",
|
131 |
+
"129": "spoonbill",
|
132 |
+
"130": "flamingo",
|
133 |
+
"131": "little blue heron",
|
134 |
+
"132": "American egret",
|
135 |
+
"133": "bittern",
|
136 |
+
"134": "crane bird",
|
137 |
+
"135": "limpkin",
|
138 |
+
"136": "European gallinule",
|
139 |
+
"137": "American coot",
|
140 |
+
"138": "bustard",
|
141 |
+
"139": "ruddy turnstone",
|
142 |
+
"140": "red-backed sandpiper",
|
143 |
+
"141": "redshank",
|
144 |
+
"142": "dowitcher",
|
145 |
+
"143": "oystercatcher",
|
146 |
+
"144": "pelican",
|
147 |
+
"145": "king penguin",
|
148 |
+
"146": "albatross",
|
149 |
+
"147": "grey whale",
|
150 |
+
"148": "killer whale",
|
151 |
+
"149": "dugong",
|
152 |
+
"150": "sea lion",
|
153 |
+
"151": "Chihuahua",
|
154 |
+
"152": "Japanese spaniel",
|
155 |
+
"153": "Maltese dog",
|
156 |
+
"154": "Pekinese",
|
157 |
+
"155": "Shih-Tzu",
|
158 |
+
"156": "Blenheim spaniel",
|
159 |
+
"157": "papillon",
|
160 |
+
"158": "toy terrier",
|
161 |
+
"159": "Rhodesian ridgeback",
|
162 |
+
"160": "Afghan hound",
|
163 |
+
"161": "basset",
|
164 |
+
"162": "beagle",
|
165 |
+
"163": "bloodhound",
|
166 |
+
"164": "bluetick",
|
167 |
+
"165": "black-and-tan coonhound",
|
168 |
+
"166": "Walker hound",
|
169 |
+
"167": "English foxhound",
|
170 |
+
"168": "redbone",
|
171 |
+
"169": "borzoi",
|
172 |
+
"170": "Irish wolfhound",
|
173 |
+
"171": "Italian greyhound",
|
174 |
+
"172": "whippet",
|
175 |
+
"173": "Ibizan hound",
|
176 |
+
"174": "Norwegian elkhound",
|
177 |
+
"175": "otterhound",
|
178 |
+
"176": "Saluki",
|
179 |
+
"177": "Scottish deerhound",
|
180 |
+
"178": "Weimaraner",
|
181 |
+
"179": "Staffordshire bullterrier",
|
182 |
+
"180": "American Staffordshire 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",
|
193 |
+
"191": "Airedale",
|
194 |
+
"192": "cairn",
|
195 |
+
"193": "Australian terrier",
|
196 |
+
"194": "Dandie Dinmont",
|
197 |
+
"195": "Boston bull",
|
198 |
+
"196": "miniature schnauzer",
|
199 |
+
"197": "giant schnauzer",
|
200 |
+
"198": "standard schnauzer",
|
201 |
+
"199": "Scotch terrier",
|
202 |
+
"200": "Tibetan terrier",
|
203 |
+
"201": "silky terrier",
|
204 |
+
"202": "soft-coated wheaten terrier",
|
205 |
+
"203": "West Highland white terrier",
|
206 |
+
"204": "Lhasa",
|
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",
|
214 |
+
"212": "English setter",
|
215 |
+
"213": "Irish setter",
|
216 |
+
"214": "Gordon setter",
|
217 |
+
"215": "Brittany spaniel",
|
218 |
+
"216": "clumber",
|
219 |
+
"217": "English springer",
|
220 |
+
"218": "Welsh springer spaniel",
|
221 |
+
"219": "cocker spaniel",
|
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",
|
232 |
+
"230": "Shetland sheepdog",
|
233 |
+
"231": "collie",
|
234 |
+
"232": "Border collie",
|
235 |
+
"233": "Bouvier des Flandres",
|
236 |
+
"234": "Rottweiler",
|
237 |
+
"235": "German shepherd",
|
238 |
+
"236": "Doberman",
|
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",
|
250 |
+
"248": "Eskimo dog",
|
251 |
+
"249": "malamute",
|
252 |
+
"250": "Siberian husky",
|
253 |
+
"251": "dalmatian",
|
254 |
+
"252": "affenpinscher",
|
255 |
+
"253": "basenji",
|
256 |
+
"254": "pug",
|
257 |
+
"255": "Leonberg",
|
258 |
+
"256": "Newfoundland",
|
259 |
+
"257": "Great Pyrenees",
|
260 |
+
"258": "Samoyed",
|
261 |
+
"259": "Pomeranian",
|
262 |
+
"260": "chow",
|
263 |
+
"261": "keeshond",
|
264 |
+
"262": "Brabancon griffon",
|
265 |
+
"263": "Pembroke",
|
266 |
+
"264": "Cardigan",
|
267 |
+
"265": "toy poodle",
|
268 |
+
"266": "miniature poodle",
|
269 |
+
"267": "standard poodle",
|
270 |
+
"268": "Mexican hairless",
|
271 |
+
"269": "timber wolf",
|
272 |
+
"270": "white wolf",
|
273 |
+
"271": "red wolf",
|
274 |
+
"272": "coyote",
|
275 |
+
"273": "dingo",
|
276 |
+
"274": "dhole",
|
277 |
+
"275": "African hunting dog",
|
278 |
+
"276": "hyena",
|
279 |
+
"277": "red fox",
|
280 |
+
"278": "kit fox",
|
281 |
+
"279": "Arctic fox",
|
282 |
+
"280": "grey fox",
|
283 |
+
"281": "tabby",
|
284 |
+
"282": "tiger cat",
|
285 |
+
"283": "Persian cat",
|
286 |
+
"284": "Siamese cat",
|
287 |
+
"285": "Egyptian cat",
|
288 |
+
"286": "cougar",
|
289 |
+
"287": "lynx",
|
290 |
+
"288": "leopard",
|
291 |
+
"289": "snow leopard",
|
292 |
+
"290": "jaguar",
|
293 |
+
"291": "lion",
|
294 |
+
"292": "tiger",
|
295 |
+
"293": "cheetah",
|
296 |
+
"294": "brown bear",
|
297 |
+
"295": "American black bear",
|
298 |
+
"296": "ice bear",
|
299 |
+
"297": "sloth bear",
|
300 |
+
"298": "mongoose",
|
301 |
+
"299": "meerkat",
|
302 |
+
"300": "tiger beetle",
|
303 |
+
"301": "ladybug",
|
304 |
+
"302": "ground beetle",
|
305 |
+
"303": "long-horned beetle",
|
306 |
+
"304": "leaf beetle",
|
307 |
+
"305": "dung beetle",
|
308 |
+
"306": "rhinoceros beetle",
|
309 |
+
"307": "weevil",
|
310 |
+
"308": "fly",
|
311 |
+
"309": "bee",
|
312 |
+
"310": "ant",
|
313 |
+
"311": "grasshopper",
|
314 |
+
"312": "cricket",
|
315 |
+
"313": "walking stick",
|
316 |
+
"314": "cockroach",
|
317 |
+
"315": "mantis",
|
318 |
+
"316": "cicada",
|
319 |
+
"317": "leafhopper",
|
320 |
+
"318": "lacewing",
|
321 |
+
"319": "dragonfly",
|
322 |
+
"320": "damselfly",
|
323 |
+
"321": "admiral",
|
324 |
+
"322": "ringlet",
|
325 |
+
"323": "monarch",
|
326 |
+
"324": "cabbage butterfly",
|
327 |
+
"325": "sulphur butterfly",
|
328 |
+
"326": "lycaenid",
|
329 |
+
"327": "starfish",
|
330 |
+
"328": "sea urchin",
|
331 |
+
"329": "sea cucumber",
|
332 |
+
"330": "wood rabbit",
|
333 |
+
"331": "hare",
|
334 |
+
"332": "Angora",
|
335 |
+
"333": "hamster",
|
336 |
+
"334": "porcupine",
|
337 |
+
"335": "fox squirrel",
|
338 |
+
"336": "marmot",
|
339 |
+
"337": "beaver",
|
340 |
+
"338": "guinea pig",
|
341 |
+
"339": "sorrel",
|
342 |
+
"340": "zebra",
|
343 |
+
"341": "hog",
|
344 |
+
"342": "wild boar",
|
345 |
+
"343": "warthog",
|
346 |
+
"344": "hippopotamus",
|
347 |
+
"345": "ox",
|
348 |
+
"346": "water buffalo",
|
349 |
+
"347": "bison",
|
350 |
+
"348": "ram",
|
351 |
+
"349": "bighorn",
|
352 |
+
"350": "ibex",
|
353 |
+
"351": "hartebeest",
|
354 |
+
"352": "impala",
|
355 |
+
"353": "gazelle",
|
356 |
+
"354": "Arabian camel",
|
357 |
+
"355": "llama",
|
358 |
+
"356": "weasel",
|
359 |
+
"357": "mink",
|
360 |
+
"358": "polecat",
|
361 |
+
"359": "black-footed ferret",
|
362 |
+
"360": "otter",
|
363 |
+
"361": "skunk",
|
364 |
+
"362": "badger",
|
365 |
+
"363": "armadillo",
|
366 |
+
"364": "three-toed sloth",
|
367 |
+
"365": "orangutan",
|
368 |
+
"366": "gorilla",
|
369 |
+
"367": "chimpanzee",
|
370 |
+
"368": "gibbon",
|
371 |
+
"369": "siamang",
|
372 |
+
"370": "guenon",
|
373 |
+
"371": "patas",
|
374 |
+
"372": "baboon",
|
375 |
+
"373": "macaque",
|
376 |
+
"374": "langur",
|
377 |
+
"375": "colobus",
|
378 |
+
"376": "proboscis monkey",
|
379 |
+
"377": "marmoset",
|
380 |
+
"378": "capuchin",
|
381 |
+
"379": "howler monkey",
|
382 |
+
"380": "titi",
|
383 |
+
"381": "spider monkey",
|
384 |
+
"382": "squirrel monkey",
|
385 |
+
"383": "Madagascar cat",
|
386 |
+
"384": "indri",
|
387 |
+
"385": "Indian elephant",
|
388 |
+
"386": "African elephant",
|
389 |
+
"387": "lesser panda",
|
390 |
+
"388": "giant panda",
|
391 |
+
"389": "barracouta",
|
392 |
+
"390": "eel",
|
393 |
+
"391": "coho",
|
394 |
+
"392": "rock beauty",
|
395 |
+
"393": "anemone fish",
|
396 |
+
"394": "sturgeon",
|
397 |
+
"395": "gar",
|
398 |
+
"396": "lionfish",
|
399 |
+
"397": "puffer",
|
400 |
+
"398": "abacus",
|
401 |
+
"399": "abaya",
|
402 |
+
"400": "academic gown",
|
403 |
+
"401": "accordion",
|
404 |
+
"402": "acoustic guitar",
|
405 |
+
"403": "aircraft carrier",
|
406 |
+
"404": "airliner",
|
407 |
+
"405": "airship",
|
408 |
+
"406": "altar",
|
409 |
+
"407": "ambulance",
|
410 |
+
"408": "amphibian",
|
411 |
+
"409": "analog clock",
|
412 |
+
"410": "apiary",
|
413 |
+
"411": "apron",
|
414 |
+
"412": "ashcan",
|
415 |
+
"413": "assault rifle",
|
416 |
+
"414": "backpack",
|
417 |
+
"415": "bakery",
|
418 |
+
"416": "balance beam",
|
419 |
+
"417": "balloon",
|
420 |
+
"418": "ballpoint",
|
421 |
+
"419": "Band Aid",
|
422 |
+
"420": "banjo",
|
423 |
+
"421": "bannister",
|
424 |
+
"422": "barbell",
|
425 |
+
"423": "barber chair",
|
426 |
+
"424": "barbershop",
|
427 |
+
"425": "barn",
|
428 |
+
"426": "barometer",
|
429 |
+
"427": "barrel",
|
430 |
+
"428": "barrow",
|
431 |
+
"429": "baseball",
|
432 |
+
"430": "basketball",
|
433 |
+
"431": "bassinet",
|
434 |
+
"432": "bassoon",
|
435 |
+
"433": "bathing cap",
|
436 |
+
"434": "bath towel",
|
437 |
+
"435": "bathtub",
|
438 |
+
"436": "beach wagon",
|
439 |
+
"437": "beacon",
|
440 |
+
"438": "beaker",
|
441 |
+
"439": "bearskin",
|
442 |
+
"440": "beer bottle",
|
443 |
+
"441": "beer glass",
|
444 |
+
"442": "bell cote",
|
445 |
+
"443": "bib",
|
446 |
+
"444": "bicycle-built-for-two",
|
447 |
+
"445": "bikini",
|
448 |
+
"446": "binder",
|
449 |
+
"447": "binoculars",
|
450 |
+
"448": "birdhouse",
|
451 |
+
"449": "boathouse",
|
452 |
+
"450": "bobsled",
|
453 |
+
"451": "bolo tie",
|
454 |
+
"452": "bonnet",
|
455 |
+
"453": "bookcase",
|
456 |
+
"454": "bookshop",
|
457 |
+
"455": "bottlecap",
|
458 |
+
"456": "bow",
|
459 |
+
"457": "bow tie",
|
460 |
+
"458": "brass",
|
461 |
+
"459": "brassiere",
|
462 |
+
"460": "breakwater",
|
463 |
+
"461": "breastplate",
|
464 |
+
"462": "broom",
|
465 |
+
"463": "bucket",
|
466 |
+
"464": "buckle",
|
467 |
+
"465": "bulletproof vest",
|
468 |
+
"466": "bullet train",
|
469 |
+
"467": "butcher shop",
|
470 |
+
"468": "cab",
|
471 |
+
"469": "caldron",
|
472 |
+
"470": "candle",
|
473 |
+
"471": "cannon",
|
474 |
+
"472": "canoe",
|
475 |
+
"473": "can opener",
|
476 |
+
"474": "cardigan",
|
477 |
+
"475": "car mirror",
|
478 |
+
"476": "carousel",
|
479 |
+
"477": "carpenter's kit",
|
480 |
+
"478": "carton",
|
481 |
+
"479": "car wheel",
|
482 |
+
"480": "cash machine",
|
483 |
+
"481": "cassette",
|
484 |
+
"482": "cassette player",
|
485 |
+
"483": "castle",
|
486 |
+
"484": "catamaran",
|
487 |
+
"485": "CD player",
|
488 |
+
"486": "cello",
|
489 |
+
"487": "cellular telephone",
|
490 |
+
"488": "chain",
|
491 |
+
"489": "chainlink fence",
|
492 |
+
"490": "chain mail",
|
493 |
+
"491": "chain saw",
|
494 |
+
"492": "chest",
|
495 |
+
"493": "chiffonier",
|
496 |
+
"494": "chime",
|
497 |
+
"495": "china cabinet",
|
498 |
+
"496": "Christmas stocking",
|
499 |
+
"497": "church",
|
500 |
+
"498": "cinema",
|
501 |
+
"499": "cleaver",
|
502 |
+
"500": "cliff dwelling",
|
503 |
+
"501": "cloak",
|
504 |
+
"502": "clog",
|
505 |
+
"503": "cocktail shaker",
|
506 |
+
"504": "coffee mug",
|
507 |
+
"505": "coffeepot",
|
508 |
+
"506": "coil",
|
509 |
+
"507": "combination lock",
|
510 |
+
"508": "computer keyboard",
|
511 |
+
"509": "confectionery",
|
512 |
+
"510": "container ship",
|
513 |
+
"511": "convertible",
|
514 |
+
"512": "corkscrew",
|
515 |
+
"513": "cornet",
|
516 |
+
"514": "cowboy boot",
|
517 |
+
"515": "cowboy hat",
|
518 |
+
"516": "cradle",
|
519 |
+
"517": "crane",
|
520 |
+
"518": "crash helmet",
|
521 |
+
"519": "crate",
|
522 |
+
"520": "crib",
|
523 |
+
"521": "Crock Pot",
|
524 |
+
"522": "croquet ball",
|
525 |
+
"523": "crutch",
|
526 |
+
"524": "cuirass",
|
527 |
+
"525": "dam",
|
528 |
+
"526": "desk",
|
529 |
+
"527": "desktop computer",
|
530 |
+
"528": "dial telephone",
|
531 |
+
"529": "diaper",
|
532 |
+
"530": "digital clock",
|
533 |
+
"531": "digital watch",
|
534 |
+
"532": "dining table",
|
535 |
+
"533": "dishrag",
|
536 |
+
"534": "dishwasher",
|
537 |
+
"535": "disk brake",
|
538 |
+
"536": "dock",
|
539 |
+
"537": "dogsled",
|
540 |
+
"538": "dome",
|
541 |
+
"539": "doormat",
|
542 |
+
"540": "drilling platform",
|
543 |
+
"541": "drum",
|
544 |
+
"542": "drumstick",
|
545 |
+
"543": "dumbbell",
|
546 |
+
"544": "Dutch oven",
|
547 |
+
"545": "electric fan",
|
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",
|
555 |
+
"553": "file",
|
556 |
+
"554": "fireboat",
|
557 |
+
"555": "fire engine",
|
558 |
+
"556": "fire screen",
|
559 |
+
"557": "flagpole",
|
560 |
+
"558": "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",
|
569 |
+
"567": "frying pan",
|
570 |
+
"568": "fur coat",
|
571 |
+
"569": "garbage truck",
|
572 |
+
"570": "gasmask",
|
573 |
+
"571": "gas pump",
|
574 |
+
"572": "goblet",
|
575 |
+
"573": "go-kart",
|
576 |
+
"574": "golf ball",
|
577 |
+
"575": "golfcart",
|
578 |
+
"576": "gondola",
|
579 |
+
"577": "gong",
|
580 |
+
"578": "gown",
|
581 |
+
"579": "grand piano",
|
582 |
+
"580": "greenhouse",
|
583 |
+
"581": "grille",
|
584 |
+
"582": "grocery store",
|
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",
|
592 |
+
"590": "hand-held computer",
|
593 |
+
"591": "handkerchief",
|
594 |
+
"592": "hard disc",
|
595 |
+
"593": "harmonica",
|
596 |
+
"594": "harp",
|
597 |
+
"595": "harvester",
|
598 |
+
"596": "hatchet",
|
599 |
+
"597": "holster",
|
600 |
+
"598": "home theater",
|
601 |
+
"599": "honeycomb",
|
602 |
+
"600": "hook",
|
603 |
+
"601": "hoopskirt",
|
604 |
+
"602": "horizontal bar",
|
605 |
+
"603": "horse cart",
|
606 |
+
"604": "hourglass",
|
607 |
+
"605": "iPod",
|
608 |
+
"606": "iron",
|
609 |
+
"607": "jack-o'-lantern",
|
610 |
+
"608": "jean",
|
611 |
+
"609": "jeep",
|
612 |
+
"610": "jersey",
|
613 |
+
"611": "jigsaw puzzle",
|
614 |
+
"612": "jinrikisha",
|
615 |
+
"613": "joystick",
|
616 |
+
"614": "kimono",
|
617 |
+
"615": "knee pad",
|
618 |
+
"616": "knot",
|
619 |
+
"617": "lab coat",
|
620 |
+
"618": "ladle",
|
621 |
+
"619": "lampshade",
|
622 |
+
"620": "laptop",
|
623 |
+
"621": "lawn mower",
|
624 |
+
"622": "lens cap",
|
625 |
+
"623": "letter opener",
|
626 |
+
"624": "library",
|
627 |
+
"625": "lifeboat",
|
628 |
+
"626": "lighter",
|
629 |
+
"627": "limousine",
|
630 |
+
"628": "liner",
|
631 |
+
"629": "lipstick",
|
632 |
+
"630": "Loafer",
|
633 |
+
"631": "lotion",
|
634 |
+
"632": "loudspeaker",
|
635 |
+
"633": "loupe",
|
636 |
+
"634": "lumbermill",
|
637 |
+
"635": "magnetic compass",
|
638 |
+
"636": "mailbag",
|
639 |
+
"637": "mailbox",
|
640 |
+
"638": "maillot",
|
641 |
+
"639": "maillot tank suit",
|
642 |
+
"640": "manhole cover",
|
643 |
+
"641": "maraca",
|
644 |
+
"642": "marimba",
|
645 |
+
"643": "mask",
|
646 |
+
"644": "matchstick",
|
647 |
+
"645": "maypole",
|
648 |
+
"646": "maze",
|
649 |
+
"647": "measuring cup",
|
650 |
+
"648": "medicine chest",
|
651 |
+
"649": "megalith",
|
652 |
+
"650": "microphone",
|
653 |
+
"651": "microwave",
|
654 |
+
"652": "military uniform",
|
655 |
+
"653": "milk can",
|
656 |
+
"654": "minibus",
|
657 |
+
"655": "miniskirt",
|
658 |
+
"656": "minivan",
|
659 |
+
"657": "missile",
|
660 |
+
"658": "mitten",
|
661 |
+
"659": "mixing bowl",
|
662 |
+
"660": "mobile 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",
|
673 |
+
"671": "mountain bike",
|
674 |
+
"672": "mountain tent",
|
675 |
+
"673": "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",
|
684 |
+
"682": "obelisk",
|
685 |
+
"683": "oboe",
|
686 |
+
"684": "ocarina",
|
687 |
+
"685": "odometer",
|
688 |
+
"686": "oil filter",
|
689 |
+
"687": "organ",
|
690 |
+
"688": "oscilloscope",
|
691 |
+
"689": "overskirt",
|
692 |
+
"690": "oxcart",
|
693 |
+
"691": "oxygen mask",
|
694 |
+
"692": "packet",
|
695 |
+
"693": "paddle",
|
696 |
+
"694": "paddlewheel",
|
697 |
+
"695": "padlock",
|
698 |
+
"696": "paintbrush",
|
699 |
+
"697": "pajama",
|
700 |
+
"698": "palace",
|
701 |
+
"699": "panpipe",
|
702 |
+
"700": "paper towel",
|
703 |
+
"701": "parachute",
|
704 |
+
"702": "parallel bars",
|
705 |
+
"703": "park bench",
|
706 |
+
"704": "parking meter",
|
707 |
+
"705": "passenger car",
|
708 |
+
"706": "patio",
|
709 |
+
"707": "pay-phone",
|
710 |
+
"708": "pedestal",
|
711 |
+
"709": "pencil box",
|
712 |
+
"710": "pencil sharpener",
|
713 |
+
"711": "perfume",
|
714 |
+
"712": "Petri dish",
|
715 |
+
"713": "photocopier",
|
716 |
+
"714": "pick",
|
717 |
+
"715": "pickelhaube",
|
718 |
+
"716": "picket fence",
|
719 |
+
"717": "pickup",
|
720 |
+
"718": "pier",
|
721 |
+
"719": "piggy bank",
|
722 |
+
"720": "pill bottle",
|
723 |
+
"721": "pillow",
|
724 |
+
"722": "ping-pong ball",
|
725 |
+
"723": "pinwheel",
|
726 |
+
"724": "pirate",
|
727 |
+
"725": "pitcher",
|
728 |
+
"726": "plane",
|
729 |
+
"727": "planetarium",
|
730 |
+
"728": "plastic bag",
|
731 |
+
"729": "plate rack",
|
732 |
+
"730": "plow",
|
733 |
+
"731": "plunger",
|
734 |
+
"732": "Polaroid camera",
|
735 |
+
"733": "pole",
|
736 |
+
"734": "police van",
|
737 |
+
"735": "poncho",
|
738 |
+
"736": "pool table",
|
739 |
+
"737": "pop bottle",
|
740 |
+
"738": "pot",
|
741 |
+
"739": "potter's wheel",
|
742 |
+
"740": "power drill",
|
743 |
+
"741": "prayer rug",
|
744 |
+
"742": "printer",
|
745 |
+
"743": "prison",
|
746 |
+
"744": "projectile",
|
747 |
+
"745": "projector",
|
748 |
+
"746": "puck",
|
749 |
+
"747": "punching bag",
|
750 |
+
"748": "purse",
|
751 |
+
"749": "quill",
|
752 |
+
"750": "quilt",
|
753 |
+
"751": "racer",
|
754 |
+
"752": "racket",
|
755 |
+
"753": "radiator",
|
756 |
+
"754": "radio",
|
757 |
+
"755": "radio telescope",
|
758 |
+
"756": "rain barrel",
|
759 |
+
"757": "recreational vehicle",
|
760 |
+
"758": "reel",
|
761 |
+
"759": "reflex camera",
|
762 |
+
"760": "refrigerator",
|
763 |
+
"761": "remote control",
|
764 |
+
"762": "restaurant",
|
765 |
+
"763": "revolver",
|
766 |
+
"764": "rifle",
|
767 |
+
"765": "rocking chair",
|
768 |
+
"766": "rotisserie",
|
769 |
+
"767": "rubber eraser",
|
770 |
+
"768": "rugby ball",
|
771 |
+
"769": "rule",
|
772 |
+
"770": "running shoe",
|
773 |
+
"771": "safe",
|
774 |
+
"772": "safety pin",
|
775 |
+
"773": "saltshaker",
|
776 |
+
"774": "sandal",
|
777 |
+
"775": "sarong",
|
778 |
+
"776": "sax",
|
779 |
+
"777": "scabbard",
|
780 |
+
"778": "scale",
|
781 |
+
"779": "school bus",
|
782 |
+
"780": "schooner",
|
783 |
+
"781": "scoreboard",
|
784 |
+
"782": "screen",
|
785 |
+
"783": "screw",
|
786 |
+
"784": "screwdriver",
|
787 |
+
"785": "seat belt",
|
788 |
+
"786": "sewing machine",
|
789 |
+
"787": "shield",
|
790 |
+
"788": "shoe shop",
|
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",
|
801 |
+
"799": "sliding door",
|
802 |
+
"800": "slot",
|
803 |
+
"801": "snorkel",
|
804 |
+
"802": "snowmobile",
|
805 |
+
"803": "snowplow",
|
806 |
+
"804": "soap dispenser",
|
807 |
+
"805": "soccer ball",
|
808 |
+
"806": "sock",
|
809 |
+
"807": "solar dish",
|
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",
|
818 |
+
"816": "spindle",
|
819 |
+
"817": "sports car",
|
820 |
+
"818": "spotlight",
|
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",
|
829 |
+
"827": "stove",
|
830 |
+
"828": "strainer",
|
831 |
+
"829": "streetcar",
|
832 |
+
"830": "stretcher",
|
833 |
+
"831": "studio couch",
|
834 |
+
"832": "stupa",
|
835 |
+
"833": "submarine",
|
836 |
+
"834": "suit",
|
837 |
+
"835": "sundial",
|
838 |
+
"836": "sunglass",
|
839 |
+
"837": "sunglasses",
|
840 |
+
"838": "sunscreen",
|
841 |
+
"839": "suspension bridge",
|
842 |
+
"840": "swab",
|
843 |
+
"841": "sweatshirt",
|
844 |
+
"842": "swimming trunks",
|
845 |
+
"843": "swing",
|
846 |
+
"844": "switch",
|
847 |
+
"845": "syringe",
|
848 |
+
"846": "table lamp",
|
849 |
+
"847": "tank",
|
850 |
+
"848": "tape player",
|
851 |
+
"849": "teapot",
|
852 |
+
"850": "teddy",
|
853 |
+
"851": "television",
|
854 |
+
"852": "tennis ball",
|
855 |
+
"853": "thatch",
|
856 |
+
"854": "theater curtain",
|
857 |
+
"855": "thimble",
|
858 |
+
"856": "thresher",
|
859 |
+
"857": "throne",
|
860 |
+
"858": "tile roof",
|
861 |
+
"859": "toaster",
|
862 |
+
"860": "tobacco shop",
|
863 |
+
"861": "toilet seat",
|
864 |
+
"862": "torch",
|
865 |
+
"863": "totem pole",
|
866 |
+
"864": "tow truck",
|
867 |
+
"865": "toyshop",
|
868 |
+
"866": "tractor",
|
869 |
+
"867": "trailer truck",
|
870 |
+
"868": "tray",
|
871 |
+
"869": "trench coat",
|
872 |
+
"870": "tricycle",
|
873 |
+
"871": "trimaran",
|
874 |
+
"872": "tripod",
|
875 |
+
"873": "triumphal arch",
|
876 |
+
"874": "trolleybus",
|
877 |
+
"875": "trombone",
|
878 |
+
"876": "tub",
|
879 |
+
"877": "turnstile",
|
880 |
+
"878": "typewriter keyboard",
|
881 |
+
"879": "umbrella",
|
882 |
+
"880": "unicycle",
|
883 |
+
"881": "upright",
|
884 |
+
"882": "vacuum",
|
885 |
+
"883": "vase",
|
886 |
+
"884": "vault",
|
887 |
+
"885": "velvet",
|
888 |
+
"886": "vending machine",
|
889 |
+
"887": "vestment",
|
890 |
+
"888": "viaduct",
|
891 |
+
"889": "violin",
|
892 |
+
"890": "volleyball",
|
893 |
+
"891": "waffle iron",
|
894 |
+
"892": "wall clock",
|
895 |
+
"893": "wallet",
|
896 |
+
"894": "wardrobe",
|
897 |
+
"895": "warplane",
|
898 |
+
"896": "washbasin",
|
899 |
+
"897": "washer",
|
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",
|
914 |
+
"912": "worm fence",
|
915 |
+
"913": "wreck",
|
916 |
+
"914": "yawl",
|
917 |
+
"915": "yurt",
|
918 |
+
"916": "web site",
|
919 |
+
"917": "comic book",
|
920 |
+
"918": "crossword puzzle",
|
921 |
+
"919": "street sign",
|
922 |
+
"920": "traffic light",
|
923 |
+
"921": "book jacket",
|
924 |
+
"922": "menu",
|
925 |
+
"923": "plate",
|
926 |
+
"924": "guacamole",
|
927 |
+
"925": "consomme",
|
928 |
+
"926": "hot pot",
|
929 |
+
"927": "trifle",
|
930 |
+
"928": "ice cream",
|
931 |
+
"929": "ice lolly",
|
932 |
+
"930": "French loaf",
|
933 |
+
"931": "bagel",
|
934 |
+
"932": "pretzel",
|
935 |
+
"933": "cheeseburger",
|
936 |
+
"934": "hotdog",
|
937 |
+
"935": "mashed potato",
|
938 |
+
"936": "head cabbage",
|
939 |
+
"937": "broccoli",
|
940 |
+
"938": "cauliflower",
|
941 |
+
"939": "zucchini",
|
942 |
+
"940": "spaghetti squash",
|
943 |
+
"941": "acorn squash",
|
944 |
+
"942": "butternut squash",
|
945 |
+
"943": "cucumber",
|
946 |
+
"944": "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",
|
956 |
+
"954": "banana",
|
957 |
+
"955": "jackfruit",
|
958 |
+
"956": "custard apple",
|
959 |
+
"957": "pomegranate",
|
960 |
+
"958": "hay",
|
961 |
+
"959": "carbonara",
|
962 |
+
"960": "chocolate sauce",
|
963 |
+
"961": "dough",
|
964 |
+
"962": "meat loaf",
|
965 |
+
"963": "pizza",
|
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",
|
975 |
+
"973": "coral reef",
|
976 |
+
"974": "geyser",
|
977 |
+
"975": "lakeside",
|
978 |
+
"976": "promontory",
|
979 |
+
"977": "sandbar",
|
980 |
+
"978": "seashore",
|
981 |
+
"979": "valley",
|
982 |
+
"980": "volcano",
|
983 |
+
"981": "ballplayer",
|
984 |
+
"982": "groom",
|
985 |
+
"983": "scuba diver",
|
986 |
+
"984": "rapeseed",
|
987 |
+
"985": "daisy",
|
988 |
+
"986": "yellow lady's slipper",
|
989 |
+
"987": "corn",
|
990 |
+
"988": "acorn",
|
991 |
+
"989": "hip",
|
992 |
+
"990": "buckeye",
|
993 |
+
"991": "coral fungus",
|
994 |
+
"992": "agaric",
|
995 |
+
"993": "gyromitra",
|
996 |
+
"994": "stinkhorn",
|
997 |
+
"995": "earthstar",
|
998 |
+
"996": "hen-of-the-woods",
|
999 |
+
"997": "bolete",
|
1000 |
+
"998": "ear",
|
1001 |
+
"999": "toilet tissue"
|
1002 |
+
}
|
requirements.txt
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
torch>=2.0.0
|
2 |
+
torchvision>=0.15.0
|
3 |
+
streamlit>=1.22.0
|
4 |
+
Pillow>=9.0.0
|
5 |
+
numpy>=1.24.0
|