RobotJelly commited on
Commit
d458eaf
·
1 Parent(s): e563082
Files changed (1) hide show
  1. app.py +49 -32
app.py CHANGED
@@ -70,40 +70,40 @@ def dog_detector(img_path):
70
  # Set PIL to be tolerant of image files that are truncated.
71
  ImageFile.LOAD_TRUNCATED_IMAGES = True
72
 
73
- train_dir = 'dogImages/train'
74
- test_dir = 'dogImages/test'
75
- valid_dir = 'dogImages/valid'
76
 
77
  # Transforms for the training, validation, and testing sets
78
- train_transforms = transforms.Compose([
79
- transforms.RandomRotation(40),
80
- transforms.RandomResizedCrop(224),
81
- transforms.RandomHorizontalFlip(),
82
- transforms.ToTensor(),
83
- transforms.Normalize([0.485, 0.456, 0.406],
84
- [0.229, 0.224, 0.225])
85
- ])
86
-
87
- valid_transforms = transforms.Compose([transforms.Resize(224),
88
- transforms.CenterCrop(224),
89
- transforms.ToTensor(),
90
- transforms.Normalize([0.485, 0.456, 0.406],
91
- [0.229, 0.224, 0.225])])
92
- test_transforms = transforms.Compose([transforms.Resize(224),
93
- transforms.CenterCrop(224),
94
- transforms.ToTensor(),
95
- transforms.Normalize([0.485, 0.456, 0.406],
96
- [0.229, 0.224, 0.225])])
97
 
98
  # Dataloaders
99
- train_folder = datasets.ImageFolder(train_dir, transform=train_transforms)
100
- valid_folder = datasets.ImageFolder(valid_dir, transform=valid_transforms)
101
- test_folder = datasets.ImageFolder(test_dir, transform=test_transforms)
102
 
103
  # DataLoaders
104
- train_dataloaders = torch.utils.data.DataLoader(train_folder, batch_size=65, shuffle=True)
105
- valid_dataloaders = torch.utils.data.DataLoader(valid_folder, batch_size=35, shuffle=True)
106
- test_dataloaders = torch.utils.data.DataLoader(test_folder, batch_size= 68, shuffle=True)
107
 
108
  model = models.resnet152(pretrained=True)
109
 
@@ -184,6 +184,9 @@ def run_app(image_path):
184
  else:
185
  out_str = 'Error... No Dog or Human Face present!! Nothing Detected!!'
186
  return out_str
 
 
 
187
 
188
  demo = gr.Blocks()
189
 
@@ -198,15 +201,29 @@ with demo:
198
 
199
  Else If uploaded image is of Human: it will give its resembling breed of dog
200
  """)
 
 
 
 
 
 
201
 
202
- inp = gr.Image(type='pil')
203
- out1 = gr.Textbox()
204
  # out2 = gr.Image(type="pil")
205
  #out = gr.Gallery()
206
- submit = gr.Button("Generate")
207
 
208
  submit.click(fn=run_app,
209
  inputs=inp,
210
- outputs=[out1])
 
 
 
 
 
 
 
 
211
 
212
  demo.launch(enable_queue=True, debug=True)
 
70
  # Set PIL to be tolerant of image files that are truncated.
71
  ImageFile.LOAD_TRUNCATED_IMAGES = True
72
 
73
+ #train_dir = 'dogImages/train'
74
+ #test_dir = 'dogImages/test'
75
+ #valid_dir = 'dogImages/valid'
76
 
77
  # Transforms for the training, validation, and testing sets
78
+ #train_transforms = transforms.Compose([
79
+ # transforms.RandomRotation(40),
80
+ # transforms.RandomResizedCrop(224),
81
+ # transforms.RandomHorizontalFlip(),
82
+ # transforms.ToTensor(),
83
+ # transforms.Normalize([0.485, 0.456, 0.406],
84
+ # [0.229, 0.224, 0.225])
85
+ #])
86
+
87
+ #valid_transforms = transforms.Compose([transforms.Resize(224),
88
+ # transforms.CenterCrop(224),
89
+ # transforms.ToTensor(),
90
+ # transforms.Normalize([0.485, 0.456, 0.406],
91
+ # [0.229, 0.224, 0.225])])
92
+ #test_transforms = transforms.Compose([transforms.Resize(224),
93
+ # transforms.CenterCrop(224),
94
+ # transforms.ToTensor(),
95
+ # transforms.Normalize([0.485, 0.456, 0.406],
96
+ # [0.229, 0.224, 0.225])])
97
 
98
  # Dataloaders
99
+ #train_folder = datasets.ImageFolder(train_dir, transform=train_transforms)
100
+ #valid_folder = datasets.ImageFolder(valid_dir, transform=valid_transforms)
101
+ #test_folder = datasets.ImageFolder(test_dir, transform=test_transforms)
102
 
103
  # DataLoaders
104
+ #train_dataloaders = torch.utils.data.DataLoader(train_folder, batch_size=65, shuffle=True)
105
+ #valid_dataloaders = torch.utils.data.DataLoader(valid_folder, batch_size=35, shuffle=True)
106
+ #test_dataloaders = torch.utils.data.DataLoader(test_folder, batch_size= 68, shuffle=True)
107
 
108
  model = models.resnet152(pretrained=True)
109
 
 
184
  else:
185
  out_str = 'Error... No Dog or Human Face present!! Nothing Detected!!'
186
  return out_str
187
+
188
+ def set_example_image(example: list) -> dict:
189
+ return gr.Image.update(value=example[0])
190
 
191
  demo = gr.Blocks()
192
 
 
201
 
202
  Else If uploaded image is of Human: it will give its resembling breed of dog
203
  """)
204
+
205
+ with gr.Row():
206
+ paths = sorted(pathlib.Path('images').glob('*.jpg'))
207
+ example_images = gr.Dataset(components=[input_image],
208
+ samples=[[path.as_posix()]
209
+ for path in paths])
210
 
211
+ inp = gr.Image(label='input image of dog/human', type='pil')
212
+ #out1 = gr.Textbox()
213
  # out2 = gr.Image(type="pil")
214
  #out = gr.Gallery()
215
+ submit = gr.Button("Generate Breed Name")
216
 
217
  submit.click(fn=run_app,
218
  inputs=inp,
219
+ outputs=gr.Textbox(label='breed'))
220
+
221
+ example_images.click(fn=set_example_image,
222
+ inputs=example_images,
223
+ outputs=example_images.components)
224
+
225
+ gr.Markdown(
226
+ '<center><img src="https://visitor-badge.glitch.me/badge?page_id=gradio-blocks.dog-breed-identification-app" alt="visitor badge"/></center>'
227
+ )
228
 
229
  demo.launch(enable_queue=True, debug=True)