Evaluando propuestas

Desarrollo de Pwa con Ia (Ocr y Visión Artificial) para Inspección de Medidores de Agua

Publicado el 22 Junio, 2026 en Programación y Tecnología

Sobre este proyecto

Abierto

Descripción del Proyecto: Sistema PWA para Generación de Base de Datos de Inspección (MAP)
Se busca desarrollar una Web App Progresiva (PWA) diseñada para la captura de lecturas y la inspección técnica de Medidores de Agua Potable (MAP). El objetivo central es la construcción de una Base de Datos estructurada y confiable mediante el procesamiento de imágenes y validación geoespacial.
Al día de hoy tenemos alrededor de 1800 Medidores a lo largo del todo el país, por lo que estimamos recibir 900 fotografías a lo largo del día. La fotografía podrá ser tomada por personas distintas, es decir, si son 900 fotografías, pueden ser 900 personas distintas.

requisito excluyente: el freelancer debe poder emitir factura en chile para procesar los pagos.

I. Alcance Funcional
1. Módulo de Captura y Validación de Calidad
Validación de Nitidez en Tiempo Real: Interfaz de cámara en la PWA que valide en tiempo real el enfoque y la iluminación. El sistema debe impedir físicamente el guardado de la imagen si no cumple con los umbrales de calidad requeridos.
2. Identificación e Integridad Geoespacial (Lógica de Ubicación)
El sistema debe validar la posición del dispositivo al momento de la captura frente a las coordenadas de la base de datos fuente mediante tres rangos:
•Menor a 15m: Ubicación válida (Match).
•Entre 15m y 30m: Ubicación aceptada, pero genera registro de alerta: "Diferencia de ubicación".
•Mayor a 30m: Ubicación rechazada. Se genera alerta: "Ubicación no coincide", y el ID del medidor se registrará automáticamente como "999999".
3. Procesamiento de Imágenes e Inteligencia Artificial
•Lectura OCR: Extracción de la lectura numérica del odómetro del medidor.
•Análisis de Condición Física: Clasificación de anomalías de la imagen mediante visión artificial: Vidrio roto, Vidrio empañado, Sin medidor u Operación Normal.
4. Módulo Mantenedor Autoadministrable y Logs
Se requiere un panel de administración web que permita:
•Administración de MAPs: Crear, modificar, deshabilitar o eliminar medidores de la base de datos fuente.
•Administración de Lecturas: Corregir, agregar o dar de baja registros de lectura capturados por el sistema.
•Log de Auditoría (Logs de Modificaciones): Todas las acciones de creación, modificación o eliminación (tanto de MAPs como de lecturas) deben quedar registradas en una tabla de logs que indique: usuario que realizó el cambio, fecha/hora exacta, valor anterior y valor nuevo.

II. Estructura de la Base de Datos Final
La solución debe alimentar una base de datos relacional (PostgreSQL/SQL) donde cada registro (fila) debe contener de forma obligatoria los siguientes campos separados (atomizados):
1. Datos del Medidor (Identificación por Georeferencia)
•id_map_asignado: ID del medidor identificado según el match geoespacial (o "999999" si la distancia es > 30 metros).
2. Datos de Lectura (Procesados por OCR)
•lectura_ocr: Valor numérico entero extraído por el OCR.
•Confianza_ocr: Porcentaje de seguridad (score de confianza de 0.0 a 1.0) que arroja la IA sobre la lectura.
3. Metadatos de Captura (Extraídos de la Imagen / Dispositivo)
•lectura_fecha: Tipo Date (aaaa-mm-dd).
•Lectura_hora: Tipo Time (hh:mm:ss).
•Gps_latitud: Tipo Decimal (mínimo 6 decimales).
•Gps_longitud: Tipo Decimal (mínimo 6 decimales).
•Gps_precision: Tipo Float (margen de error en metros reportado por el chip GPS del teléfono).
•Gps_orientacion: Orientación de la imagen (Vertical u Horizontal).
•Dispositivo_modelo: Marca y modelo del teléfono que realizó la captura.
4. Alertas Automáticas (Boleanos o texto descriptivo según reglas de negocio)
•alerta_geo: Registra "Diferencia de ubicación" (15m a 30m) o "Ubicación no coincide" (>30m). Si no hay desviación, queda vacío o como "Normal".
•Alerta_lectura: Registra anomalías respecto al histórico según las siguientes reglas:
o    Lectura menor a la anterior: Si Lectura Actual < Lectura Anterior.
O    Consumo Cero (Medidor Detenido): Si Lectura Actual = Lectura Anterior.
O    Salto por Fuera de Rango: Si Delta C > (Consumo Promedio Diario * 1.10) (Supera el 10% del histórico).
    Delta C = (Lectura Actual – Lectura Anterior) / (Fecha Actual – Fecha Anterior)
•    alerta_fisica: Registra "Vidrio roto", "Vidrio empañado" o "Sin medidor".

III. Información a Entregar al Programador
Se le entregará una base de datos fuente con:
•    id_map: Identificador único de cada medidor.
•    Coordenadas_teoricas: Latitud y longitud exactas de cada MAP para validar las distancias.
•    Consumo_promedio_diario: Valor histórico de referencia para el cálculo de la alerta de "Salto".

IV. Perfil del Candidato y Entregables
•    Arquitectura: Despliegue mediante Docker para asegurar la portabilidad del entorno.
•    Entregables:
Código fuente documentado en repositorio Git (GitHub/GitLab).
Estructura de base de datos optimizada con scripts de creación (.sql).
Manual técnico de la arquitectura y manual de usuario para operarios.
Manual de instalación del sistema.
Garantía técnica y corrección de bugs por un periodo de 3 meses.

Categoría Programación y Tecnología
Subcategoría Programación Web
¿Cuál es el alcance del proyecto? Crear un nuevo sitio personalizado

Plazo de Entrega: No definido

Habilidades necesarias

Otros proyectos publicados por R. H.