ferplazas2014 commited on
Commit
ff5743b
·
verified ·
1 Parent(s): c91d340

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -0
app.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import TrOCRProcessor, VisionEncoderDecoderModel
3
+ from PIL import Image
4
+
5
+ # Cargar modelo OCR de Hugging Face
6
+ processor = TrOCRProcessor.from_pretrained("microsoft/trocr-base-stage1")
7
+ model = VisionEncoderDecoderModel.from_pretrained("microsoft/trocr-base-stage1")
8
+
9
+ # Lógica para analizar banners
10
+ def analizar_banner(img):
11
+ pixel_values = processor(images=img, return_tensors="pt").pixel_values
12
+ generated_ids = model.generate(pixel_values)
13
+ texto = processor.batch_decode(generated_ids, skip_special_tokens=True)[0].lower()
14
+
15
+ # Clasificación basada en prioridad
16
+ if any(x in texto for x in ["día de la madre", "día del padre", "navidad", "san valentín", "día de la mujer", "día del hombre"]):
17
+ tipologia = "fechas especiales"
18
+ descripcion = next((x for x in ["día de la madre", "día del padre", "navidad", "san valentín", "día de la mujer", "día del hombre"] if x in texto), "")
19
+ elif "nuevo" in texto:
20
+ tipologia = "lanzamiento o innovación"
21
+ descripcion = "nuevo producto"
22
+ elif any(x in texto for x in ["vacaciones", "verano", "invierno", "playa", "regreso a clases"]):
23
+ tipologia = "big seasonality"
24
+ descripcion = "temporada"
25
+ elif any(x in texto for x in ["solar fest", "madrugón", "miércoles de dermocosmética"]):
26
+ tipologia = "evento marca e-retailer"
27
+ descripcion = ""
28
+ elif any(x in texto for x in ["promo", "promoción", "descuento", "%"]):
29
+ tipologia = "dinamica comercial"
30
+ descripcion = ""
31
+ elif any(x in texto for x in ["beneficio", "ingrediente", "cuida", "hidrata"]):
32
+ tipologia = "informativo"
33
+ descripcion = ""
34
+ else:
35
+ tipologia = "informativo"
36
+ descripcion = ""
37
+
38
+ resultado = f"🧾 Texto detectado:\n{texto}\n\n🏷️ Tipología: {tipologia}\n📝 Descripción: {descripcion}"
39
+ return resultado
40
+
41
+ # Interfaz Gradio
42
+ demo = gr.Interface(
43
+ fn=analizar_banner,
44
+ inputs=gr.Image(type="pil"),
45
+ outputs="text",
46
+ title="🧠 Clasificador OCR de Banners (demo HuggingFace)",
47
+ description="Sube un banner y detectaremos automáticamente su contenido y tipología."
48
+ )
49
+
50
+ demo.launch()