Change Detection
Il rilevamento dei cambiamenti confronta immagini della stessa scena acquisite in momenti diversi per mappare ciò che è comparso, scomparso o si è spostato, dai satelliti alle fabbriche.
Il rilevamento dei cambiamenti consiste nell'individuare differenze significative tra immagini della stessa scena acquisite in momenti diversi. Confronta due o più osservazioni e indica dove è avvenuto un cambiamento, sotto forma di mappa binaria dei cambiamenti, di classi «da-a» come da foresta a terreno coltivato oppure di un elenco di oggetti apparsi, scomparsi o spostati. Il rilevamento bitemporale dei cambiamenti confronta due date, mentre i metodi multitemporali analizzano un'intera serie temporale per distinguere i cambiamenti permanenti dai cicli stagionali e dal rumore occasionale. Questa attività è fondamentale nel telerilevamento e nell'analisi di immagini satellitari; le stesse idee vengono applicate alla sottrazione dello sfondo nelle telecamere di sicurezza fisse e ai confronti con immagini di riferimento nell'ispezione industriale.
Come funziona il rilevamento dei cambiamenti#
Due immagini si possono confrontare correttamente solo quando i pixel corrispondenti mostrano lo stesso punto al suolo. La registrazione delle immagini le allinea, poiché uno scostamento di un solo pixel crea falsi cambiamenti lungo ogni bordo; la normalizzazione radiometrica elimina le differenze dovute all'angolo del sole, all'esposizione, alla foschia e alla risposta del sensore. Un passaggio di confronto produce quindi una misura della differenza per ogni pixel o regione; una soglia separa i cambiamenti dal rumore e il postprocessing rimuove i pixel isolati e unisce quelli restanti in regioni.
Il confronto più semplice è la differenza tra immagini. Questo esempio confronta due fotogrammi di un parcheggio ripreso dall'alto, a 2,7 secondi di distanza, e lascia che sia il metodo di Otsu a scegliere la soglia:
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)Stampa 5.2% of pixels changed. La mappa salvata segna l'auto blu che entra in un posto auto, entrambe le posizioni di un furgone bianco che attraversa il parcheggio e un'auto che esce dal bordo sinistro del fotogramma; le auto parcheggiate, le linee dipinte e la pavimentazione restano nere.
Approcci basati sui pixel, sugli oggetti e sull'apprendimento#
La differenza tra pixel funziona quando entrambe le immagini provengono dallo stesso sensore e sono state acquisite in condizioni di luce simili. Per le immagini radar, il cui rumore speckle è moltiplicativo, i rapporti sostituiscono le differenze; l'analisi dei vettori di cambiamento tratta ogni pixel multispettrale come un vettore il cui cambiamento ha sia intensità sia direzione. Il confronto post-classificazione classifica separatamente ciascuna data e confronta le etichette: produce classi «da-a» e tollera sensori diversi, ma somma gli errori di entrambe le classificazioni.
I metodi di deep learning elaborano entrambe le immagini tramite una rete neurale convoluzionale siamese con pesi condivisi e decodificano la differenza tra le rispettive mappe di feature in una mappa dei cambiamenti. Questo approccio è stato reso popolare dalle reti siamesi completamente convoluzionali di Daudt e colleghi nel 2018; i modelli successivi hanno aggiunto meccanismi di attenzione e transformer. Un benchmark molto usato è LEVIR-CD, pubblicato da Hao Chen e Zhenwei Shi nel 2020, con 637 coppie di immagini di Google Earth da 1.024×1.024 pixel, a 0,5 metri per pixel, e 31.333 cambiamenti di edifici annotati.
Il rilevamento dei cambiamenti a livello di oggetto confronta i rilevamenti invece dei pixel, ignorando così ombre e variazioni stagionali dei colori. Un modello Ultralytics YOLO26 preaddestrato su immagini aeree DOTA con bounding box orientate restituisce box ruotati per aerei, navi, serbatoi e veicoli; confrontare i risultati del rilevamento di oggetti di due date rivela così cosa è arrivato e cosa è partito.
Rilevamento dei cambiamenti e attività correlate#
- Rilevamento delle anomalie: segnala osservazioni che si discostano da una nozione appresa di normalità, spesso a partire da una singola immagine. Il rilevamento dei cambiamenti richiede un'osservazione di riferimento; un cambiamento come un nuovo edificio è solitamente atteso.
- Tracciamento degli oggetti e flusso ottico seguono il movimento tra fotogrammi video consecutivi. Il rilevamento dei cambiamenti confronta lo stato di una scena in due momenti diversi, spesso a distanza di mesi o anni.
- Il data drift descrive una variazione nel tempo della distribuzione statistica degli input ricevuti da un modello distribuito, che ne riduce l'accuratezza.
Applicazioni nel mondo reale#
- Monitoraggio della deforestazione e della copertura del suolo: Le mappe annuali della perdita della copertura arborea ricavate da immagini Landsat con risoluzione di 30 metri, pubblicate dall'Università del Maryland dal 2013, costituiscono la base di Global Forest Watch.
- Valutazione dei danni causati da disastri: Il confronto di immagini satellitari o riprese con droni prima e dopo un evento permette di mappare terreni allagati, aree bruciate ed edifici crollati; il dataset xBD classifica i danni agli edifici su una scala a quattro livelli a partire da coppie di immagini prima e dopo l'evento.
- Ispezione industriale: Una telecamera fissa confronta ogni assemblaggio con un'immagine di riferimento del componente corretto per individuare viti mancanti, componenti fuori posto o corpi estranei.
- Sicurezza e sorveglianza: La sottrazione dello sfondo, la forma di rilevamento dei cambiamenti applicata ai video, modella la scena statica a ogni pixel e considera gli scostamenti come primo piano in movimento: è il meccanismo alla base degli avvisi di movimento delle telecamere fisse.










