| title: ArtScope | |
| emoji: 🎨 | |
| colorFrom: indigo | |
| colorTo: pink | |
| sdk: gradio | |
| sdk_version: 6.11.0 | |
| app_file: app.py | |
| pinned: false | |
| python_version: "3.12" | |
| # 🎨 ArtScope | |
| Clasificador de movimientos artísticos basado en un ensemble heterogéneo | |
| **ConvNeXt-tiny + ViT-small**, con mapa **Grad-CAM** y descripción del estilo | |
| generada por **Claude** (Anthropic). | |
| Trabajo final de la asignatura de Computer Vision del máster MIOTI. | |
| ## Cómo funciona | |
| 1. Subes una imagen de un cuadro. | |
| 2. Dos modelos (una CNN moderna y un Vision Transformer) predicen el movimiento por | |
| separado y sus probabilidades se promedian (ensemble). | |
| 3. Se calcula un mapa Grad-CAM sobre el ConvNeXt para visualizar las regiones más | |
| influyentes en la predicción. | |
| 4. Se envía el top-1 y top-2 a Claude, que devuelve una descripción contextual del | |
| estilo. | |
| ## Movimientos soportados | |
| Impressionism · Post-Impressionism · Realism · Romanticism · Expressionism · Cubism · | |
| Surrealism · Abstract Expressionism · Baroque · Northern Renaissance | |
| ## Configuración | |
| La descripción generativa requiere una variable de entorno `ANTHROPIC_API_KEY` | |
| (Settings → Variables and secrets). Si no se proporciona, la app sigue funcionando | |
| y muestra un mensaje en su lugar. | |