ProyectoAnálisis de SuperficiesIA

Nivelao

Plataforma de análisis de desniveles con IA

Un sistema inteligente que analiza desniveles en pisos a partir de una foto, simula la instalación de cerámica, y planifica con precisión la nivelación.

#ComputerVision #DepthEstimation #React #FastAPI #PyTorch
Nivelao Demo
L H 0 cm 6 cm
check_circle Análisis de profundidad completado
data_usage 4.2MB

Funcionalidades principales

Nivelao combina tecnologías avanzadas para ofrecer una solución completa al problema de desniveles en pisos.

analytics

Análisis de profundidad con IA

Utiliza modelos avanzados de visión por computadora para detectar desniveles sin referencias manuales.

PyTorch MiDaS Computer Vision
grid_on

Mapa de calor por zonas

Genera una grilla visual de colores tipo "pintura por número" para guiar el proceso de nivelación.

Canvas API Heatmaps Data Visualization
view_in_ar

Visualización 3D interactiva

Muestra un modelo 3D interactivo del piso con perspectiva realista para mejor comprensión.

Three.js WebGL 3D Rendering
dashboard_customize

Simulación de instalación

Simula la colocación de cerámicas de diferentes tamaños respetando los desniveles detectados.

React WebWorkers Canvas
calculate

Calculadora de materiales

Calcula automáticamente la cantidad de material necesario para nivelar el piso según las alturas.

NumPy Algorithm Optimization
file_download

Exportación técnica

Exporta los resultados a formatos profesionales como DXF, STL o PDF para uso técnico.

ezdxf CAD PDF Generation

Arquitectura del Sistema

Nivelao utiliza una arquitectura modular basada en microservicios para escalar de forma independiente cada componente según la demanda.

Frontend React + TailwindCSS API Gateway FastAPI + Redis Cache ML Service PyTorch + MiDaS Database PostgreSQL + S3 HTTPS gRPC SQL
devices

Frontend

Interfaz de usuario, carga de imágenes, visualizaciones y simulador de cerámica.

React TailwindCSS Three.js
dns

Backend API

Procesamiento de lógica, control de flujos, usuarios e informes.

FastAPI JWT Auth Redis
psychology

Modelo ML

Procesamiento de imágenes y análisis de profundidad con modelos pre-entrenados.

PyTorch MiDaS ONNX
storage

Persistencia

Almacenamiento de usuarios, proyectos, imágenes y configuraciones.

PostgreSQL S3/MinIO Redis Cache

cloud_circle Despliegue e Infraestructura

El sistema está diseñado para desplegarse como contenedores Docker independientes, permitiendo escalabilidad horizontal y una arquitectura serverless.

Desarrollo

Docker Compose con hot-reload para todos los servicios

Staging

Render.com con despliegue automático desde GitHub

Producción

Kubernetes en proveedores cloud o bare-metal

Flujo de trabajo

El proceso completo de Nivelao desde la captura de la imagen hasta la generación del informe final se divide en estos pasos:

add_a_photo

1. Captura de imagen

El usuario carga una fotografía del piso desde su dispositivo móvil o computadora.

check_circle Formato soportado

JPG, PNG, HEIC

info Tamaño recomendado

1080p o superior

POST /api/v1/projects/new-image
neurology

2. Análisis de profundidad IA

El modelo de IA MiDaS analiza la imagen y genera un mapa de profundidad detallado sin referencias manuales.

Imagen original
Mapa de profundidad
Lejos Cerca H L
science Algoritmo: MiDaS v3

Monocular depth estimation basado en redes neuronales convolucionales

height

3. Identificación de puntos altos/bajos

El sistema identifica automáticamente el punto más alto y más bajo del piso, calculando las diferencias de altura.

arrow_upward Punto más alto

Referencia para nivelación

arrow_downward Punto más bajo

Mayor diferencia a nivelar

dif_altura = punto_bajo - punto_alto
settings_suggest

4. Configuración del proyecto

El usuario configura los parámetros del proyecto: tipo de cerámica (ej. 45×45cm) o altura de mezcla deseada en el punto más alto.

straighten Tamaño cerámica
format_color_fill Altura en punto alto
cm
palette Tipo de mezcla
Visor 3D
summarize

7. Generación de informe y cotización

El sistema genera un informe detallado con el análisis completo, cálculo de costos de materiales y mano de obra, y una cotización profesional descargable.

description Informe técnico

  • Análisis completo de desniveles
  • Mapa detallado por cuadrantes
  • Distribución de cerámicas
  • Protocolo de nivelación paso a paso

receipt_long Cotización automática

  • Cálculo de materiales necesarios
  • Estimación de mano de obra
  • Costos totales del proyecto
  • Exportable a PDF o compartible por WhatsApp

Stack Tecnológico

Nivelao está construido con tecnologías open source modernas, enfocándose en rendimiento, accesibilidad y escalabilidad.

computer

Frontend

  • check_circle
    React Biblioteca UI para construcción de interfaces
  • check_circle
    TailwindCSS Framework CSS utility-first
  • check_circle
    Three.js Biblioteca JavaScript para gráficos 3D
  • check_circle
    Redux Toolkit Gestión de estado de la aplicación
dns

Backend

  • check_circle
    FastAPI Framework web Python de alto rendimiento
  • check_circle
    PostgreSQL Base de datos relacional
  • check_circle
    Redis Caché en memoria y broker de mensajes
  • check_circle
    JWT Auth Autenticación basada en tokens
insights

ML & Visualización

  • check_circle
    PyTorch Framework de ML para procesamiento de imágenes
  • check_circle
    MiDaS Modelo preentrenado de estimación de profundidad
  • check_circle
    NumPy Procesamiento numérico para cálculos de nivelación
  • check_circle
    ezdxf Generación de archivos CAD y 3D para exportación

smart_toy Detalles del procesamiento IA

model.py

import torch
from transformers import AutoImageProcessor, AutoModelForDepthEstimation

class DepthAnalyzer:
    def __init__(self):
        self.processor = AutoImageProcessor.from_pretrained("Intel/dpt-large")
        self.model = AutoModelForDepthEstimation.from_pretrained("Intel/dpt-large")
        
    def analyze_image(self, image):
        # Preprocesar imagen
        inputs = self.processor(images=image, return_tensors="pt")
        
        # Predecir mapa de profundidad
        with torch.no_grad():
            outputs = self.model(**inputs)
            predicted_depth = outputs.predicted_depth
            
        # Normalizar valores
        depth_map = torch.nn.functional.interpolate(
            predicted_depth.unsqueeze(1),
            size=image.size[::-1],
            mode="bicubic",
            align_corners=False,
        )
        
        return depth_map.squeeze().numpy()
                        

El modelo MiDaS estima la profundidad relativa a partir de una sola imagen mediante una red neuronal convolucional, sin requerir calibración de cámara o imágenes estéreo.

Documentación API

Nivelao expone una API RESTful completa que permite integrar sus funcionalidades en otros sistemas o desarrollar aplicaciones personalizadas.

post_add POST /api/v1/projects

Crea un nuevo proyecto de análisis de nivelación.

Request Body:


{
  "name": "Proyecto Casa 123",
  "description": "Nivelación para sala principal",
  "client_info": {
    "name": "Juan Pérez",
    "email": "juan@example.com",
    "phone": "+1234567890"
  }
}
                                

Response (200 OK):


{
  "project_id": "proj_8f9g2h3j4k",
  "name": "Proyecto Casa 123",
  "created_at": "2023-06-15T14:32:21Z",
  "status": "created",
  "upload_url": "https://api.nivelao.com/upload/proj_8f9g2h3j4k"
}
                                

file_upload POST /api/v1/projects/:id/images

Sube una imagen para análisis de nivelación en un proyecto existente.

Request:


# Multipart form data
Content-Type: multipart/form-data
image: (binary)
type: "floor"  # Tipo de imagen: floor, reference, result
                                

Response (202 Accepted):


{
  "image_id": "img_1a2b3c4d5e",
  "project_id": "proj_8f9g2h3j4k",
  "status": "processing",
  "estimated_completion": "2023-06-15T14:33:21Z",
  "analysis_url": "https://api.nivelao.com/projects/proj_8f9g2h3j4k/analysis"
}
                                

analytics GET /api/v1/projects/:id/analysis

Obtiene los resultados del análisis de nivelación para un proyecto.

Response (200 OK):


{
  "project_id": "proj_8f9g2h3j4k",
  "status": "completed",
  "analysis": {
    "highest_point": {
      "x": 245,
      "y": 182,
      "value": 0.95
    },
    "lowest_point": {
      "x": 532,
      "y": 328,
      "value": 0.23
    },
    "max_difference_cm": 3.8,
    "avg_difference_cm": 1.7,
    "grid": {
      "rows": 10,
      "cols": 10,
      "cell_values": [...],  // Array 2D con valores de altura relativa
      "cell_absolute_cm": [...],  // Array 2D con valores en cm de llenado
      "cell_colors": [...]   // Array 2D con códigos hexadecimales para visualización
    }
  },
  "materials": {
    "area_m2": 24.5,
    "volume_leveling_m3": 0.42,
    "cement_bags": 12,
    "sand_m3": 0.25,
    "estimated_cost": 185.50,
    "labor_hours": 8
  },
  "urls": {
    "depth_map": "https://api.nivelao.com/projects/proj_8f9g2h3j4k/depth_map.png",
    "color_map": "https://api.nivelao.com/projects/proj_8f9g2h3j4k/color_map.png",
    "report_pdf": "https://api.nivelao.com/projects/proj_8f9g2h3j4k/report.pdf",
    "dxf_export": "https://api.nivelao.com/projects/proj_8f9g2h3j4k/export.dxf"
  }
}
                            

¿Listo para comenzar a desarrollar?

Únete al equipo de desarrollo de Nivelao y contribuye a revolucionar la industria de la construcción con IA y análisis visual.