Image Registration
Descubre cómo el registro de imágenes alinea imágenes mediante la correspondencia de características o intensidades, transformaciones geométricas y validación para detectar cambios en imágenes satelitales, imágenes médicas y visión artificial.
El registro de imágenes es el proceso de alinear dos o más imágenes para que una misma ubicación de una escena ocupe coordenadas correspondientes. Imagina superponer una imagen por satélite tomada en junio sobre otra tomada en enero: si el ángulo o la posición de la cámara han cambiado, una carretera puede parecer desplazada aunque no se haya movido. El registro corrige esa discrepancia geométrica antes de que un sistema de visión artificial compare las imágenes o combine la información que contienen.
Cómo funciona el registro de imágenes#
Un flujo de trabajo de registro designa una imagen como imagen fija, que define el sistema de coordenadas de destino, y otra como imagen móvil, que debe alinearse con ella. El sistema estima una transformación espacial y, a continuación, remuestrea la imagen móvil: calcula los valores de los píxeles en sus nuevas posiciones. El resultado se puede inspeccionar como una superposición: las estructuras estables deberían coincidir, mientras que los cambios reales siguen siendo visibles. La descripción general del registro de ImageJ ilustra esta relación entre puntos correspondientes, transformaciones e imágenes alineadas.
Hay dos formas habituales de estimar la transformación. El registro basado en características identifica ubicaciones reconocibles, como esquinas, en ambas imágenes y empareja los puntos que representan el mismo lugar. A continuación, ajusta una transformación a esas correspondencias y, cuando es posible, descarta las que no coinciden; la guía de OpenCV sobre el emparejamiento de características y la homografía muestra cómo funciona. En cambio, el registro basado en intensidad ajusta la transformación para mejorar una medida de similitud entre los valores de píxel de las imágenes. Esa medida y el procedimiento de búsqueda, llamado optimizador, son fundamentales en el flujo de trabajo de registro basado en intensidad.
Elección de una transformación#
La transformación adecuada depende de por qué difieren las imágenes. Una traslación resuelve un desplazamiento horizontal o vertical sencillo. Una transformación rígida también permite la rotación, pero conserva las distancias. El registro afín también permite manejar el escalado y el sesgo, pero aplica una única transformación a toda la imagen. Una transformación proyectiva, u homografía, puede tener en cuenta las diferencias de perspectiva cuando la escena emparejada es aproximadamente plana. Los tipos de transformaciones geométricas explicados por MathWorks ofrecen distinciones visuales útiles.
Algunas escenas necesitan un registro deformable, que permite que distintas regiones se desplacen en cantidades diferentes; por ejemplo, cuando la anatomía cambia de forma entre exploraciones. Esta flexibilidad puede mejorar la alineación local, pero una deformación poco plausible puede ocultar una diferencia real. Por eso, las herramientas de imagen médica, como el marco de registro de SimpleITK, especifican explícitamente la transformación, la medida de similitud, el optimizador y el método de interpolación.
El registro y otras tareas relacionadas con la visión#
El registro busca un sistema de coordenadas compartido, no simplemente un parecido visual. El emparejamiento de imágenes encuentra contenido visual correspondiente y puede proporcionar los pares de puntos necesarios para el registro; el registro va más allá al estimar y aplicar la alineación espacial. Los puntos clave pueden servir como esas correspondencias, aunque los puntos de personas o vehículos en movimiento suelen ser referencias poco fiables para alinear un fondo estático.
Del mismo modo, el flujo óptico estima el movimiento aparente entre fotogramas. Sus estimaciones de movimiento pueden ayudar a registrar los fotogramas, como muestra el ejemplo de registro con flujo óptico de scikit-image, pero el flujo no garantiza por sí solo una alineación precisa. El seguimiento de objetos tiene otro objetivo: mantener la identidad de un objeto a lo largo del tiempo. Un rastreador puede usar estimaciones del movimiento del fondo para no confundir el movimiento de la cámara con el de los objetos.
Su importancia en las aplicaciones de IA#
En la detección de cambios por satélite, un analista puede comparar imágenes de tierras de cultivo tomadas con varios meses de diferencia para identificar zonas recién despejadas. El registro coloca los campos, las carreteras y los límites en las mismas posiciones de píxel antes de que un modelo de detección de cambios los compare. De lo contrario, un límite de campo desplazado puede parecer un cambio en la cubierta terrestre. Incluso después de la alineación, hay que tener en cuenta las diferencias de estación, iluminación o tipo de sensor. Esta es una preocupación habitual en el análisis de imágenes por satélite.
En el análisis de imágenes médicas, un profesional clínico puede comparar exploraciones de visitas distintas para evaluar si una lesión ha cambiado. Alinear las exploraciones facilita la comparación de la misma región anatómica o su procesamiento mediante un modelo de segmentación. Como la anatomía puede deformarse y los métodos de obtención de imágenes pueden producir patrones de brillo distintos, un buen registro debe preservar las diferencias clínicamente relevantes en lugar de forzar que todas las regiones tengan el mismo aspecto.
Registro y validación prácticos#
Empieza con la transformación más sencilla que explique de forma plausible la discrepancia. Comprueba que las imágenes comparten suficiente contenido visible, ten en cuenta las diferencias de resolución e inspecciona la alineación en varias ubicaciones, no solo donde la coincidencia es más sólida. Guarda la transformación estimada si más adelante tienes que devolver predicciones o anotaciones a la imagen original. La guía de OpenCV sobre transformaciones geométricas explica cómo la deformación de imágenes coloca los píxeles transformados.
El siguiente ejemplo autónomo usa el flujo de trabajo de correlación de fase de scikit-image para estimar una traslación. Instala sus dependencias con pip install scikit-image scipy.
import numpy as np
from scipy.ndimage import shift
from skimage import data
from skimage.io import imsave
from skimage.registration import phase_cross_correlation
# Crea una imagen de referencia y una copia desplazada de la misma imagen.
fixed = data.camera()
moving = np.roll(fixed, shift=(12, -8), axis=(0, 1))
# Estima el desplazamiento necesario para alinear la imagen móvil con la fija.
estimated_shift, _, _ = phase_cross_correlation(fixed, moving)
aligned = shift(moving, estimated_shift, order=0, mode="grid-wrap")
imsave("registered.png", aligned)
print(estimated_shift)Los valores impresos describen la corrección, mientras que registered.png muestra la imagen alineada. Este ejemplo solo contempla la traslación; no aborda la rotación, la deformación ni las imágenes de distintos sensores. En un flujo de vídeo con una cámara en movimiento, el seguimiento de Ultralytics YOLO ofrece una aplicación relacionada: su compensación del movimiento de la cámara estima una deformación entre fotogramas para ayudar a mantener coherentes las posiciones de los objetos seguidos. Esa operación del rastreador permite asociar objetos entre fotogramas, pero no genera una imagen registrada de propósito general.









