DesignIA / README.md
agerhund's picture
Update README.md
3eeafd5 verified
---
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