File size: 3,545 Bytes
3eeafd5
 
 
 
 
 
 
 
 
 
36f4290
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
---
title: DesignIA - Recomendador de Muebles (TFM)
emoji: 🛋️
colorFrom: blue
colorTo: indigo
sdk: streamlit
# IMPORTANTE: La app_file debe apuntar a app.py
app_file: app.py
---

# DesignIA - Recomendador de Muebles Inteligente

DesignIA es una aplicación inteligente que te ayuda a diseñar tu salón ideal. A partir de una imagen panorámica (360°) de tu habitación vacía, la aplicación detecta automáticamente la geometría del espacio (paredes, puertas, ventanas) y te sugiere una distribución óptima de muebles, recomendándote productos reales de IKEA que se ajustan a tu estilo y presupuesto.

## Características

*   **Escaneo de Habitación 3D**: Utiliza **HorizonNet** para detectar la estructura de la habitación a partir de una sola imagen panorámica.
*   **Diseño Automático**: Algoritmos de optimización espacial para colocar muebles respetando zonas de paso y distancias de visualización (TV-Sofá).
*   **Recomendación Estilística**: Un modelo basado en **BERT** analiza el estilo de los muebles para sugerir combinaciones coherentes.
*   **Visualización Interactiva**: Visualiza tu futuro salón en 3D directamente en el navegador.
*   **Presupuesto Ajustable**: Define cuánto quieres gastar y la IA buscará la mejor combinación calidad/precio.

## Requisitos Previos

Debido al uso de modelos de Inteligencia Artificial avanzados, este proyecto requiere descargar archivos de gran tamaño.

1.  **Python 3.8+**
2.  **Git LFS (Large File Storage)**: Imprescindible para descargar los modelos de IA.
    *   Instalación: [https://git-lfs.com/](https://git-lfs.com/)
    *   O ejecuta: `git lfs install`

## Instalación

1.  **Clonar el repositorio**
    Asegúrate de tener Git LFS instalado antes de clonar.
    ```bash
    git lfs install
    git clone https://github.com/agerhund/DesignIA.git
    cd DesignIA
    ```
    *Nota: La descarga puede tardar unos minutos debido a los modelos (~1.7 GB).*

2.  **Crear un entorno virtual (Recomendado)**
    ```bash
    python -m venv venv
    # En Windows:
    venv\Scripts\activate
    # En Mac/Linux:
    source venv/bin/activate
    ```

3.  **Instalar dependencias**
    ```bash
    pip install -r requirements.txt
    ```

## Ejecución

Para iniciar la aplicación web localmente:

```bash
streamlit run app.py
```

La aplicación se abrirá automáticamente en tu navegador (usualmente en `http://localhost:8501`).

## Notas sobre el Rendimiento

*   **Memoria RAM**: Se recomienda disponer de al menos **8 GB de RAM**, ya que los modelos de visión y lenguaje se cargan en memoria.
*   **GPU**: Si dispones de una GPU NVIDIA (CUDA) o un Mac con chip M-series (MPS), la aplicación intentará usarla para acelerar la detección. De lo contrario, funcionará en CPU (más lento).
*   **Streamlit Cloud**: Es posible que esta aplicación **no funcione** en la capa gratuita de Streamlit Cloud debido a las limitaciones de memoria y almacenamiento (los modelos exceden el límite habitual). Se recomienda ejecutar en local o en un servidor con mayores recursos.

## Estructura del Proyecto

*   `app.py`: Punto de entrada de la aplicación Streamlit.
*   `logic.py`: Lógica principal (IA, geometría, recomendación).
*   `models/`: Contiene los pesos de los modelos (HorizonNet y BERT Encoder).
*   `data/`: Base de datos de muebles (CSV).
*   `horizonnet/`: Código fuente del modelo de visión computacional.

## Autor

**Andrés Gerlotti Slusnys**
Máster de Data Science, Business Analytics y Big Data
Universidad Complutense de Madrid
© 2025