Kesheratmex commited on
Commit
48aa787
·
1 Parent(s): 12ce9c5

Remove auth param (Gradio) & set OMP_NUM_THREADS

Browse files
Files changed (1) hide show
  1. app.py +27 -9
app.py CHANGED
@@ -1,25 +1,43 @@
1
- import gradio as gr, tempfile, shutil, os
2
  from ultralytics import YOLO
3
  import os
4
- os.environ["OMP_NUM_THREADS"] = "1"
5
 
 
 
6
 
7
- model = YOLO('best.pt')
 
 
 
8
 
9
  def infer(video):
 
10
  tmp = tempfile.mkdtemp()
11
  inp = os.path.join(tmp, "in.mp4")
12
  shutil.copy(video, inp)
13
  res = model.predict(source=inp, save=True, conf=0.25, iou=0.45)
14
  return os.path.join(res.save_dir, "in.mp4")
15
 
16
- demo = gr.Interface(
17
- fn=infer,
18
- inputs=gr.Video(label="Sube tu video de inspección"),
19
- outputs=gr.Video(label="Video con defectos detectados"),
20
- title="Kesherat · Inspección de palas eólicas"
21
- )
 
 
 
 
 
 
 
 
 
22
 
 
 
 
23
 
24
  if __name__ == "__main__":
 
25
  demo.launch()
 
1
+ import gradio as gr, tempfile, shutil, os, sys
2
  from ultralytics import YOLO
3
  import os
 
4
 
5
+ # Evita el error de OpenMP
6
+ os.environ["OMP_NUM_THREADS"] = "1"
7
 
8
+ # ────────────────────────────
9
+ # Modelo
10
+ # ────────────────────────────
11
+ model = YOLO("best.pt") # se carga una vez al arrancar
12
 
13
  def infer(video):
14
+ "Corre la detección sobre el vídeo subido y devuelve el vídeo con boxes"
15
  tmp = tempfile.mkdtemp()
16
  inp = os.path.join(tmp, "in.mp4")
17
  shutil.copy(video, inp)
18
  res = model.predict(source=inp, save=True, conf=0.25, iou=0.45)
19
  return os.path.join(res.save_dir, "in.mp4")
20
 
21
+ def show_classes():
22
+ "Devuelve las clases aprendidas por el modelo"
23
+ return ", ".join(model.names)
24
+
25
+ # ────────────────────────────
26
+ # UI en Blocks
27
+ # ────────────────────────────
28
+ with gr.Blocks(title="Kesherat · Inspección de palas eólicas") as demo:
29
+ gr.Markdown("## Inspección de palas eólicas con YOLO")
30
+
31
+ video_in = gr.Video(label="Sube tu video de inspección")
32
+ video_out = gr.Video(label="Video con defectos detectados")
33
+
34
+ btn_detect = gr.Button("Detectar defectos")
35
+ btn_detect.click(fn=infer, inputs=video_in, outputs=video_out)
36
 
37
+ btn_classes = gr.Button("Mostrar clases del modelo")
38
+ txt_classes = gr.Textbox(label="Clases cargadas", interactive=False)
39
+ btn_classes.click(fn=show_classes, outputs=txt_classes)
40
 
41
  if __name__ == "__main__":
42
+ # lanza la app en el Space
43
  demo.launch()