Sistema de Visión Evolutiva Basado en Controlador GP y Enjambre de Agentes
Table of Contents
1. Motivación y Marco Filosófico
La visión por computadora convencional se basa en modelos fijos (filtros, descriptores, arquitecturas de redes neuronales diseñadas manualmente) que procesan la imagen completa de forma homogénea. Este enfoque es computacionalmente costoso, poco adaptable a entornos cambiantes y no reproduce la eficiencia energética de los sistemas biológicos.
Nuestra hipótesis es que un programa evolucionado por Programación Genética (GP) puede descubrir una estrategia de muestreo activo y control de luminancia que permita extraer información relevante de una imagen sin necesidad de procesar todos los píxeles, similar a cómo un animal explora su entorno mediante movimientos oculares y seguimiento de gradientes.
El sistema se inspira en tres pilares:
- La teoría de control de flujos turbulentos (Duriez, Brunton, Noack): donde un controlador GP aprende a estabilizar un sistema dinámico minimizando una función de coste.
- El problema de la hormiga artificial de Koza: donde un agente autónomo evoluciona para encontrar comida en un mundo basado en celdas, demostrando que la exploración selectiva es suficiente.
- La neurofisiología de la visión: el ojo humano invierte la imagen, la pupila se adapta a la intensidad, y el cerebro completa la escena con poca información gracias a la memoria y la expectativa.
2. Objetivo General
Construir un sistema de percepción visual evolutivo y distribuido que, partiendo de los valores crudos de luminancia (o directamente de los fotositos de un sensor), sea capaz de:
- Regular la intensidad de entrada mediante un controlador de ganancia adaptativa (reflejo pupilar evolucionado).
- Explorar la imagen activamente mediante uno o varios agentes (hormigas) que se desplazan siguiendo gradientes de luminancia o bordes, depositando feromonas.
- Segmentar objetos y detectar bordes de forma emergente a partir de las trayectorias de los agentes y la acumulación de feromonas, sin necesidad de un barrido sistemático.
3. Arquitectura Propuesta
El sistema se organiza en dos niveles, cada uno con su propio GP evolucionado.
3.1. Nivel 0: Preprocesamiento – Control de Luminancia (Reflejo Pupilar)
- Entrada: Flujo de valores de luminancia (por ejemplo, el canal Y de una imagen JPG, o la señal cruda del sensor al serializar la imagen).
Planta: Un modelo de primer orden de la percepción de brillo:
y[k+1] = y[k] + α·(u[k]·I[k] - y[k])
donde \(I[k]\) es la intensidad entrante, \(u[k]\) la ganancia de control (acción), \(y[k]\) la salida percibida.
- Objetivo: Mantener \(y[k]\) cerca de un setpoint \(S\) (nivel óptimo de operación del sensor) minimizando el esfuerzo de control.
Función de fitness (para GP):
J = Σ (y[k] - S)² + γ·Σ u[k]²
- Resultado: Un programa GP que implementa la ley de control \(u = K(y, I, \text{historia})\).
3.2. Nivel 1: Exploración Activa – Hormiga Artificial Evolucionada
- Mundo: Un mapa de "recompensa" derivado del Nivel 0. Puede ser:
- El gradiente de luminancia (intensidad de borde).
- La propia luminancia (si se quiere seguir fuentes de luz).
- La salida del controlador pupilar (normalizada).
- Agente: Una entidad que ocupa una celda \((x,y)\) y dispone de:
- Sensores locales: valores en las celdas adyacentes (N, S, E, O) o en un pequeño radio.
- Memoria interna (opcional): registros que puede leer/escribir.
- Acciones: moverse una celda en una dirección, girar, depositar feromona.
- Programa GP: El árbol de expresión determina la siguiente acción en función de las lecturas de los sensores y el estado de la memoria.
Función de fitness: Se mide en una imagen de prueba con bordes conocidos:
Fitness = \frac{\text{longitud del borde recorrido}}{\text{pasos totales}} + \text{penalización por salirse del borde}
O bien, si se usan múltiples hormigas, fitness colectivo: suma de bordes cubiertos sin superposición.
- Resultado: Una hormiga que sabe seguir contornos de forma autónoma, sin necesidad de un algoritmo de seguimiento predefinido.
3.3. Nivel 2: Enjambre y Coordinación (Opcional)
- Múltiples hormigas idénticas (mismo programa GP) se lanzan desde diferentes puntos iniciales.
- Comunicación mediante feromonas (depositadas en el mapa) que decaen con el tiempo.
- El enjambre completo produce un mapa de densidad de feromonas que resalta los bordes y segmenta los objetos.
- La función de fitness del nivel 2 puede incluir la cobertura del perímetro de los objetos, la reducción de solapamiento, etc.
4. Justificación de las Decisiones de Diseño
| Decisión | Justificación |
|---|---|
| Usar GP en lugar de redes neuronales | Buscamos programas simbólicos interpretables, evolucionables y fácilmente trasladables a hardware o a C. El GP se adapta naturalmente a espacios de búsqueda abiertos (no requiere una arquitectura fija). |
| Controlador de luminancia separado | Imita la adaptación pupilar biológica, normaliza la señal de entrada y puede reducir la varianza del flujo, facilitando el trabajo del seguidor de bordes. |
| Agente móvil en lugar de filtro deslizante | La exploración activa es energéticamente eficiente (solo procesa las regiones visitadas) y permite comportamientos complejos como retroceder, saltar o cambiar de escala. |
| Inversión de la imagen | Basado en la anatomía de la retina. Coloca el suelo (zona de mayor interés para la supervivencia) en la parte superior de la imagen procesada, de modo que moverse "hacia abajo" en la imagen invertida equivale a acercarse a fuentes de luz (cielo, techos). |
| Feromonas para coordinación | Permite que múltiples agentes cooperen sin comunicación central, emergiendo la segmentación global a partir de interacciones locales. Está probado en colonias de hormigas reales y en sistemas multiagente. |
5. Plan de Implementación por Fases
5.1. Fase 0 – Simulador de luminancia
- Crear un generador de flujo de intensidad (serie temporal) a partir de la serialización de imágenes en escala de grises.
- Implementar la dinámica de la planta y la función de fitness.
- Evolucionar el controlador pupilar usando GP (ej. con
gassechen/gp).
5.2. Fase 1 – Entorno de la hormiga
- Definir un mapa 2D (puede ser la imagen de gradientes precalculados).
- Implementar los sensores, acciones y memoria.
- Evolucionar un programa GP que permita a una hormiga seguir un borde recto o curvo (fitness = distancia recorrida sobre el borde).
5.3. Fase 2 – Coordinación de enjambre
- Lanzar múltiples hormigas desde diferentes puntos.
- Añadir depósito de feromonas y reglas de decaimiento.
- Evaluar la capacidad del enjambre para segmentar objetos complejos (ej. polígonos, círculos).
5.4. Fase 3 – Integración de niveles
- Alimentar la hormiga con la salida del controlador de luminancia (en lugar del gradiente precalculado).
- Realimentar las feromonas para que el controlador pupilar también pueda usar información de contexto.
6. Métricas de Éxito
- Eficiencia computacional: relación entre píxeles procesados (visitados por las hormigas) y píxeles totales, para una misma precisión de segmentación.
- Robustez a cambios de iluminación: variar el brillo global de la imagen y medir la degradación de la detección de bordes.
- Interpretabilidad: capacidad de inspeccionar los árboles GP resultantes y entender la estrategia de movimiento (por ejemplo, "si el frente es brillante y la izquierda oscura, gira a la izquierda").
- Escalabilidad: tiempo de evolución y de ejecución en función del tamaño de la imagen y del número de hormigas.
7. Relación con Trabajos Previos
- Uhr & Vossler (1963): primer programa que generaba y ajustaba sus propios operadores de patrones. Nuestro sistema evoluciona la estrategia de muestreo y control, no solo los operadores locales.
- Koza (1992): problema de la hormiga artificial, que tomamos como base para el segundo nivel.
- Duriez, Brunton & Noack (2017): machine learning control para sistemas dinámicos, aplicado aquí a la adaptación pupilar.
- Algoritmos de colonia de hormigas (ACO): la coordinación mediante feromonas es un caso particular, pero nosotros evolucionamos las reglas de movimiento en lugar de fijarlas.
8. Conclusión y Perspectivas
Este documento define un enfoque novedoso y de abajo hacia arriba para la visión por computadora, donde cada componente (control de ganancia, seguimiento de bordes, coordinación del enjambre) es descubierto automáticamente por GP en lugar de ser diseñado manualmente. El resultado será un sistema de percepción evolutivo, eficiente y adaptativo que imita los principios de la visión biológica.
Las siguientes etapas incluyen la implementación del simulador de flujo de intensidad, la evolución del primer controlador, y la integración con el entorno de la hormiga. Este documento servirá como guía y como referencia para futuras publicaciones.