Spaces:
Sleeping
Sleeping
Commit History
12 days ago
-
Achicar la imagen del editor: en iPhone Safari cerraba la pestaña
El editor de Gradio crea cada capa del tamaño de la imagen por la densidad de la pantalla al cuadrado. En un iPhone 15 Pro Max (densidad 3) un cuadro de 1920 px daba ~75 MB por capa y Safari cerraba la pestaña ("A problem repeatedly occurred"). Ahora el editor muestra el cuadro a 960 px de ancho; zone_from_layers ya agranda la zona al tamaño del video. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>b3ab239 -
Simplificar el editor de la zona y sumar subir video y deshacer
- Arriba, el nombre y lo que aporta: "Detecta quién entra a una zona restringida de tus cámaras, cuándo y por cuánto tiempo." - "Subir mi video" en vez de la ✕ chiquita del video. - El editor sin barras ni menús: solo se pinta, y "Deshacer" es un botón. La imagen ocupa todo el recuadro (16:9, sin el margen de 30 px del zoom). Se saca "Borrar zona". - La página no scrolleaba con el mouse sobre el editor: se quedaba con la rueda. - Si el análisis fallaba, el botón quedaba en "Analizando…": en Gradio 6.30 .then no corre tras una falla, se restablece con .success y .failure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>e8e6690 -
Mostrar a los intrusos en una tabla con su foto a medida que se analizan
La página es para jefes no técnicos: se explica sola, sin instrucciones de uso. Los conceptos (qué es intruso, cuadros por segundo, límites, que el video va a Hugging Face) quedan en "Sobre esta demo", plegado. - Una sola tabla con la foto recortada de cada intruso en vez de tabla + galería de cuadros enteros, que parecían todos la misma foto. - analyze es un generador: las filas aparecen mientras se analiza; salida y duración se completan al final. - El video aparece abajo y recién al terminar: vacío parecía roto. - Un solo indicador de avance, en el botón. Las barras de Gradio iban una por resultado, y la de la tabla tapaba las filas nuevas. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>0c44a5a
13 days ago
-
Hacer que las pruebas no dejen videos en la carpeta temporal
Cada corrida de pytest dejaba carpetas camguard-* con videos en %TEMP%. Un fixture común las manda a la carpeta temporal de pytest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>b101e29 -
No dejar videos en el disco ni enviar telemetría (OWASP LLM02)
Los videos subidos y los resultados quedaban para siempre en la carpeta temporal (en esta PC había 54 carpetas de resultados y 93 MB de caché de Gradio). Ahora todo va a %TEMP%\camguard: la app la vacía al arrancar y Gradio borra sus copias de más de una hora (delete_cache). Se apaga la telemetría de Gradio, que venía activada por defecto. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>741ce52 -
Decidir quién es intruso por el centro del cuerpo, no por los pies
Con la cámara en ángulo, la regla de los pies marcaba como intruso a quien tenía el cuerpo afuera y apenas pisaba el borde, y no marcaba a quien tenía el cuerpo sobre la zona pero los pies un poco afuera (7 de ~30 errores en cuadros del ejemplo). El centro del recuadro coincide con lo que ve quien mira el video. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>e81ca22 -
Rellenar la zona cuando se marca dibujando su contorno
Solo lo pintado contaba como zona: con un contorno, quien tocaba la línea por afuera era intruso y quien estaba adentro no (se detectaba al ~14% de la gente de adentro). fill_outlines cierra huecos chicos del trazo, rellena lo encerrado y recorta el medio trazo que sobresale hacia afuera. Si se pintó el área entera, no cambia nada. El cierre de huecos tiene un radio máximo (MAX_GAP_PX): sin él, un área grande tardaba ~100 s. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>132e289 -
Alinear el umbral de ByteTrack para no perder personas detectadas
ByteTrack solo crea seguimientos nuevos con detecciones de confianza >= high_conf_det_threshold (0.6 por defecto), así que las personas detectadas con 0.4-0.6 nunca recibían número y no se mostraban: en el video de ejemplo se perdía el 31% de las detecciones (ahora se muestra el 95%, y se siguen 48 personas distintas en vez de 31). Se alinea con CONF y la creación del tracker pasa a new_bytetrack() para probarla sin cargar el modelo. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>c96fcf1 -
Mostrar los pasos faltantes como aviso y no como error
Analizar sin zona pintada (por ejemplo, si se tocó el ícono del pincel, que ya viene activo, y el arrastre no pintó) mostraba un cartel rojo "Error", marcaba el resultado como fallido e imprimía un traceback en la consola. Ahora es un aviso amarillo y los resultados quedan como estaban. Las instrucciones aclaran que el pincel ya está activo. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>94d00f7 -
Agregar pytest y pruebas de zona, eventos, video y pipeline
36 pruebas, ~3 s, sin descargar el modelo: el pipeline se prueba con un tracker falso y el video con archivos sintéticos chicos. Reemplazan al test_zone.py de la raíz. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>170c23f