Change Detection
La detección de cambios compara imágenes de una misma escena tomadas en momentos distintos para cartografiar lo que ha aparecido, desaparecido o se ha desplazado, desde satélites hasta fábricas.
La detección de cambios consiste en encontrar diferencias relevantes entre imágenes de la misma escena capturadas en momentos distintos. Compara dos o más observaciones e indica dónde ha cambiado algo, mediante un mapa binario de cambios, clases «de origen a destino» como de bosque a cultivo o una lista de objetos que han aparecido, desaparecido o se han movido. La detección bitemporal de cambios compara dos fechas, y los métodos multitemporales analizan una serie temporal completa para separar los cambios duraderos de los ciclos estacionales y el ruido puntual. Esta tarea es fundamental en la teledetección y el análisis de imágenes satelitales, y las mismas ideas se aplican a la sustracción del fondo en cámaras de seguridad fijas y a las comparaciones con referencias en la inspección industrial.
Cómo funciona la detección de cambios#
Dos imágenes solo se comparan correctamente cuando los píxeles correspondientes representan el mismo punto del terreno. El registro de imágenes las alinea, ya que un desplazamiento de un solo píxel crea cambios falsos a lo largo de cada borde, y la normalización radiométrica elimina las diferencias de ángulo solar, exposición, neblina y respuesta del sensor. A continuación, una etapa de comparación calcula una medida de diferencia para cada píxel o región, un umbral separa los cambios del ruido y el posprocesamiento elimina los píxeles aislados y agrupa los restantes en regiones.
La comparación más sencilla es la diferenciación de imágenes. Este ejemplo compara dos fotogramas de un aparcamiento grabados desde arriba con 2,7 segundos de diferencia y utiliza el método de Otsu para elegir el umbral:
import cv2
import numpy as np
# Two frames of a parking lot filmed from above, 81 frames (2.7 seconds) apart
cap = cv2.VideoCapture("https://github.com/ultralytics/assets/releases/download/v0.0.0/solution_ci_parking_demo.mp4")
_, before = cap.read()
cap.set(cv2.CAP_PROP_POS_FRAMES, 81)
_, after = cap.read()
# Convert to grayscale and blur to suppress noise, then difference pixel by pixel
before = cv2.GaussianBlur(cv2.cvtColor(before, cv2.COLOR_BGR2GRAY), (5, 5), 0)
after = cv2.GaussianBlur(cv2.cvtColor(after, cv2.COLOR_BGR2GRAY), (5, 5), 0)
diff = cv2.absdiff(before, after)
# Otsu's method picks the change threshold, and an opening removes isolated noisy pixels
_, change_map = cv2.threshold(diff, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
change_map = cv2.morphologyEx(change_map, cv2.MORPH_OPEN, np.ones((5, 5), np.uint8))
print(f"{100 * (change_map > 0).mean():.1f}% of pixels changed")
cv2.imwrite("change_map.png", change_map)Imprime 5.2% of pixels changed. El mapa guardado marca el coche azul que entra en una plaza de aparcamiento, las dos posiciones de una furgoneta blanca que cruza el aparcamiento y un coche que sale por el borde izquierdo del fotograma, mientras que los coches aparcados, las líneas pintadas y el pavimento permanecen en negro.
Enfoques por píxel, por objeto y basados en aprendizaje#
La diferenciación de píxeles funciona cuando ambas imágenes proceden del mismo sensor y se han capturado con una iluminación similar. En las imágenes de radar, cuyos patrones de moteado tienen ruido multiplicativo, se usan cocientes en lugar de diferencias; el análisis de vectores de cambio trata cada píxel multiespectral como un vector cuyo cambio tiene magnitud y dirección. La comparación posterior a la clasificación clasifica cada fecha de forma independiente y compara las etiquetas, lo que produce clases «de origen a destino» y tolera el uso de distintos sensores, pero acumula los errores de ambas clasificaciones.
Los métodos de aprendizaje profundo pasan ambas imágenes por una red neuronal convolucional siamesa con pesos compartidos y decodifican la diferencia de sus mapas de características para obtener un mapa de cambios. Este diseño se popularizó con las redes siamesas totalmente convolucionales de Daudt y sus colegas en 2018; los modelos posteriores incorporan mecanismos de atención y transformadores. Un referente muy utilizado es LEVIR-CD, publicado por Hao Chen y Zhenwei Shi en 2020, con 637 pares de imágenes de Google Earth de 1024×1024 píxeles, a 0,5 metros por píxel, y 31 333 cambios de edificios anotados.
La detección de cambios a nivel de objeto compara detecciones en lugar de píxeles, lo que permite ignorar las sombras y los cambios estacionales de color. Un modelo de cajas delimitadoras orientadas Ultralytics YOLO26, preentrenado con imágenes aéreas de DOTA, devuelve cajas rotadas para aviones, barcos, tanques de almacenamiento y vehículos; por tanto, al emparejar los resultados de la detección de objetos de dos fechas se descubre qué ha llegado y qué se ha ido.
Detección de cambios y tareas relacionadas#
- Detección de anomalías: Señala observaciones que se apartan de una noción aprendida de lo normal, a menudo a partir de una sola imagen. La detección de cambios necesita una observación de referencia, y un cambio como la construcción de un edificio nuevo suele ser algo esperado.
- Seguimiento de objetos y flujo óptico: Siguen el movimiento entre fotogramas consecutivos de vídeo. La detección de cambios compara el estado de una escena en dos momentos, a menudo separados por meses o años.
- Deriva de datos: Describe un cambio en el tiempo de la distribución estadística de las entradas que recibe un modelo desplegado, lo que reduce su precisión.
Aplicaciones en el mundo real#
- Supervisión de la deforestación y la cubierta terrestre: Los mapas anuales de pérdida de cobertura arbórea elaborados a partir de imágenes Landsat con una resolución de 30 metros, publicados por la Universidad de Maryland desde 2013, son la base de Global Forest Watch.
- Evaluación de daños por catástrofes: La comparación de imágenes satelitales o de dron anteriores y posteriores al suceso cartografía las zonas inundadas, las áreas quemadas y los edificios derrumbados; el conjunto de datos xBD clasifica los daños en edificios en una escala de cuatro niveles a partir de pares de imágenes del antes y el después.
- Inspección industrial: Una cámara fija compara cada montaje con una imagen de referencia de una pieza correcta para detectar tornillos que faltan, componentes mal colocados u objetos extraños.
- Seguridad y vigilancia: La sustracción del fondo, la modalidad de detección de cambios aplicada al vídeo, modela la escena estática en cada píxel y considera las desviaciones respecto a ella como elementos en movimiento en primer plano, lo que activa las alertas de movimiento en cámaras fijas.










