el-filatova commited on
Commit
19f6634
verified
1 Parent(s): 6d5fe59

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -19
app.py CHANGED
@@ -1,27 +1,38 @@
1
- from huggingface_hub import from_pretrained_fastai
2
  import gradio as gr
3
- from fastai.vision.all import *
4
- from PIL import ImageFile
5
- from icevision.all import *
 
6
 
7
  # repo_id = "YOUR_USERNAME/YOUR_LEARNER_NAME"
8
  repo_id = "el-filatova/Practica2"
9
 
10
- learner = from_pretrained_fastai(repo_id)
11
- labels = learner.dls.vocab
12
- class_map = ClassMap(['kangaroo'])
13
- state_dict = torch.load('fasterRCNNFkangaroo.pth')
14
- model = models.torchvision.faster_rcnn.model(num_classes=len(class_map))
 
 
15
  model.load_state_dict(state_dict)
16
 
 
 
 
17
  # Definimos una funci贸n que se encarga de llevar a cabo las predicciones
18
- def predict(img):
19
- img = PILImage.create(img)
20
- infer_tfms = tfms.A.Adapter([*tfms.A.resize_and_pad(size),tfms.A.Normalize()])
21
- pred_dict = models.torchvision.faster_rcnn.end2end_detect(img, infer_tfms, model.to("cpu"), class_map=class_map, detection_threshold=0.5)
22
- return pred_dict
23
-
24
-
25
- # Creamos la interfaz y la lanzamos.
26
- gr.Interface(fn=predict, inputs=gr.inputs.Image(shape=(128, 128)), outputs=gr.outputs.Label(num_top_classes=3),examples=['image.jpg']).launch(share=False)
27
-
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
+ import PIL
3
+ import torch
4
+ from fastai.vision.all import models
5
+ from icevision.all import ClassMap, tfms
6
 
7
  # repo_id = "YOUR_USERNAME/YOUR_LEARNER_NAME"
8
  repo_id = "el-filatova/Practica2"
9
 
10
+
11
+ class_map = ClassMap(["kangaroo"])
12
+ state_dict = torch.load("fasterRCNNFkangaroo.pth")
13
+ model = models.torchvision.faster_rcnn.model(
14
+ backbone=models.torchvision.faster_rcnn.backbones.resnet50_fpn,
15
+ num_classes=len(class_map),
16
+ )
17
  model.load_state_dict(state_dict)
18
 
19
+ size = 384
20
+
21
+
22
  # Definimos una funci贸n que se encarga de llevar a cabo las predicciones
23
+ def predict(img_file):
24
+ img = PIL.Image.open(img_file)
25
+ infer_tfms = tfms.A.Adapter([*tfms.A.resize_and_pad(size), tfms.A.Normalize()])
26
+ pred_dict = models.torchvision.faster_rcnn.end2end_detect(
27
+ img, infer_tfms, model.to("cpu"), class_map=class_map, detection_threshold=0.5
28
+ )
29
+ return pred_dict["img"]
30
+
31
+
32
+ # Creamos la interfaz y la lanzamos.
33
+ gr.Interface(
34
+ fn=predict,
35
+ inputs=gr.inputs.Image(shape=(128, 128)),
36
+ outputs=gr.outputs.Label(num_top_classes=3),
37
+ examples=["image.jpg"],
38
+ ).launch(share=False)