Change Detection
A detecção de mudanças compara imagens da mesma cena capturadas em momentos diferentes para mapear o que apareceu, desapareceu ou se moveu, de satélites a fábricas.
A detecção de mudanças consiste em encontrar diferenças relevantes entre imagens da mesma cena capturadas em momentos distintos. Ela compara duas ou mais observações e indica onde algo mudou, seja como um mapa binário de mudanças, como classes “de-para” — por exemplo, de floresta para terra cultivada — ou como uma lista de objetos que surgiram, desapareceram ou se moveram. A detecção bitemporal de mudanças compara duas datas, enquanto os métodos multitemporais analisam uma série temporal completa para separar mudanças duradouras de ciclos sazonais e ruídos pontuais. Essa tarefa é fundamental no sensoriamento remoto e na análise de imagens de satélite, e as mesmas ideias são usadas na subtração de fundo de câmeras de segurança fixas e na comparação com imagens de referência em inspeções industriais.
Como funciona a deteção de alterações#
Duas imagens só podem ser comparadas corretamente quando os pixels correspondentes mostram o mesmo terreno. O registro de imagens as alinha, já que um deslocamento de apenas um pixel cria falsas mudanças em todas as bordas, e a normalização radiométrica remove diferenças no ângulo solar, na exposição, na névoa e na resposta do sensor. Em seguida, uma etapa de comparação calcula uma medida de diferença para cada pixel ou região, um limiar separa as mudanças do ruído, e o pós-processamento remove os pixels isolados e agrupa os restantes em regiões.
A comparação mais simples é a diferença entre imagens. Este exemplo compara dois quadros de um estacionamento filmado de cima, com 2,7 segundos de intervalo, e deixa o método de Otsu escolher o limiar:
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)O código exibe 5.2% of pixels changed. O mapa salvo marca o carro azul que entra em uma vaga, as duas posições de uma van branca que atravessa o estacionamento e um carro que sai pela borda esquerda do quadro, enquanto os carros estacionados, as linhas pintadas e o pavimento permanecem pretos.
Abordagens baseadas em pixels, objetos e aprendizado#
A diferença entre pixels funciona quando as duas imagens vêm do mesmo sensor e foram capturadas sob iluminação semelhante. As razões substituem as diferenças em imagens de radar, cujo ruído salpicado é multiplicativo, e a análise do vetor de mudança trata cada pixel multiespectral como um vetor cuja mudança tem magnitude e direção. A comparação pós-classificação classifica cada data de forma independente e compara os rótulos, produzindo classes “de-para” e tolerando sensores diferentes, mas acumulando os erros das duas classificações.
Os métodos de aprendizado profundo processam ambas as imagens por meio de uma rede neural convolucional siamesa com pesos compartilhados e decodificam a diferença entre seus mapas de características em um mapa de mudanças, uma abordagem popularizada pelas redes siamesas totalmente convolucionais de Daudt e colegas em 2018, e modelos posteriores acrescentam mecanismos de atenção e transformers. Um benchmark amplamente utilizado é o LEVIR-CD, lançado por Hao Chen e Zhenwei Shi em 2020, com 637 pares de imagens do Google Earth de 1.024×1.024 pixels, resolução de 0,5 metro por pixel e 31.333 alterações em edifícios anotadas.
A detecção de mudanças no nível do objeto compara detecções em vez de pixels, ignorando sombras e alterações sazonais de cor. Um modelo de caixa delimitadora orientada do Ultralytics YOLO26, pré-treinado com imagens aéreas do DOTA, retorna caixas rotacionadas para aviões, navios, tanques de armazenamento e veículos, então a correspondência entre os resultados da detecção de objetos de duas datas revela o que chegou e o que partiu.
Detecção de mudanças e tarefas relacionadas#
- Detecção de anomalias sinaliza observações que se afastam de uma noção aprendida de normalidade, muitas vezes usando uma única imagem. A detecção de mudanças precisa de uma observação de referência, e uma mudança como um edifício novo costuma ser esperada.
- Rastreamento de objetos e fluxo óptico acompanham o movimento entre quadros consecutivos de vídeo. A detecção de mudanças compara o estado de uma cena em dois momentos, muitas vezes separados por meses ou anos.
- Deriva de dados descreve uma mudança ao longo do tempo na distribuição estatística das entradas recebidas por um modelo em produção, o que reduz sua precisão.
Aplicações no mundo real#
- Monitoramento do desmatamento e da cobertura do solo: Os mapas anuais de perda de cobertura arbórea, feitos com imagens Landsat de resolução de 30 metros e publicados pela Universidade de Maryland desde 2013, são a base do Global Forest Watch.
- Avaliação de danos causados por desastres: A comparação de imagens de satélite ou drone anteriores e posteriores a um evento mapeia áreas inundadas, regiões queimadas e edifícios desabados; o conjunto de dados xBD classifica os danos aos edifícios em uma escala de quatro níveis, usando pares de imagens de antes e depois.
- Inspeção industrial: Uma câmera fixa compara cada montagem com uma imagem de referência de uma peça correta para detectar parafusos ausentes, componentes mal posicionados ou objetos estranhos.
- Segurança e vigilância: A subtração de fundo, a forma de detecção de mudanças aplicada a vídeos, modela a cena estática em cada pixel e trata os desvios em relação a ela como primeiro plano em movimento, mecanismo que aciona alertas de movimento em câmeras fixas.










