JeanCGuerrero commited on
Commit
3de7f16
verified
1 Parent(s): aa5e0c2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -9
app.py CHANGED
@@ -4,22 +4,23 @@ from transformers import AutoModelForObjectDetection, AutoImageProcessor
4
  from PIL import Image, ImageDraw
5
 
6
  # Definir el repositorio en Hugging Face
7
- repo_id = "JeanCGuerrero/Practica2"
8
 
9
- # Cargar el modelo de Hugging Face
10
- model = AutoModelForObjectDetection.from_pretrained(repo_id)
 
11
  image_processor = AutoImageProcessor.from_pretrained(repo_id)
12
 
13
  # Funci贸n para la inferencia
14
  def predict(img):
15
- img = img.convert("RGB") # Asegurar que la imagen est茅 en formato RGB
16
- inputs = image_processor(images=img, return_tensors="pt")
17
 
18
  with torch.no_grad():
19
  outputs = model(**inputs)
20
 
21
  # Procesar los resultados
22
- target_sizes = torch.tensor([img.size[::-1]])
23
  results = image_processor.post_process_object_detection(outputs, threshold=0.5, target_sizes=target_sizes)[0]
24
 
25
  # Dibujar las detecciones en la imagen
@@ -41,8 +42,7 @@ gr.Interface(
41
  fn=predict,
42
  inputs=gr.Image(type="pil"),
43
  outputs=[gr.Image(), gr.Text()],
44
- title="Detector de Mapaches 馃",
45
- description="Este modelo detecta mapaches en im谩genes usando DETR con el dataset Raccoon.",
46
- examples=['raccoon-133.jpg', 'raccoon-108.jpg']
47
  ).launch(share=False)
48
 
 
4
  from PIL import Image, ImageDraw
5
 
6
  # Definir el repositorio en Hugging Face
7
+ repo_id = "facebook/detr-resnet-101"
8
 
9
+ # Cargar el modelo en modo FP16 para mayor velocidad en GPU
10
+ device = "cuda" if torch.cuda.is_available() else "cpu"
11
+ model = AutoModelForObjectDetection.from_pretrained(repo_id).to(device).half()
12
  image_processor = AutoImageProcessor.from_pretrained(repo_id)
13
 
14
  # Funci贸n para la inferencia
15
  def predict(img):
16
+ img = img.convert("RGB") # Asegurar formato RGB
17
+ inputs = image_processor(images=img, return_tensors="pt", pin_memory=True).to(device)
18
 
19
  with torch.no_grad():
20
  outputs = model(**inputs)
21
 
22
  # Procesar los resultados
23
+ target_sizes = torch.tensor([img.size[::-1]], device=device)
24
  results = image_processor.post_process_object_detection(outputs, threshold=0.5, target_sizes=target_sizes)[0]
25
 
26
  # Dibujar las detecciones en la imagen
 
42
  fn=predict,
43
  inputs=gr.Image(type="pil"),
44
  outputs=[gr.Image(), gr.Text()],
45
+ examples=['raccoon-133.jpg', 'raccoon-108.jpg'],
46
+ concurrency_limit=2
 
47
  ).launch(share=False)
48