Image Registration
Scopri come la registrazione delle immagini allinea le immagini tramite il confronto di caratteristiche o intensità, trasformazioni geometriche e convalida, per rilevare i cambiamenti nelle immagini satellitari, nell’imaging medico e nella visione artificiale.
La registrazione delle immagini è il processo che allinea due o più immagini, in modo che la stessa posizione di una scena corrisponda alle stesse coordinate. Immagina di sovrapporre a un’immagine satellitare scattata a gennaio una scattata a giugno: se l’angolo o la posizione della fotocamera sono cambiati, una strada può sembrare spostata anche se non si è mossa. La registrazione corregge questa discrepanza geometrica prima che un sistema di visione artificiale confronti le immagini o ne combini le informazioni.
Come funziona la registrazione delle immagini#
Un flusso di lavoro di registrazione designa un’immagine come immagine fissa, che definisce il sistema di coordinate di destinazione, e un’altra come immagine mobile, che deve essere allineata alla prima. Il sistema stima una trasformazione spaziale, quindi ricampiona l’immagine mobile calcolando i valori dei pixel nelle nuove posizioni. Il risultato può essere esaminato come sovrapposizione: le strutture stabili dovrebbero coincidere, mentre i cambiamenti reali restano visibili. La panoramica sulla registrazione di ImageJ illustra questa relazione tra punti corrispondenti, trasformazioni e immagini allineate.
Esistono due metodi comuni per stimare la trasformazione. La registrazione basata su caratteristiche individua punti riconoscibili, come gli angoli, in entrambe le immagini e abbina i punti che rappresentano lo stesso luogo. Quindi adatta una trasformazione a tali corrispondenze, scartando gli abbinamenti errati quando possibile; la guida di OpenCV alla corrispondenza delle caratteristiche e all’omografia mostra come funziona. La registrazione basata sull’intensità, invece, modifica la trasformazione per migliorare una misura di somiglianza tra i valori dei pixel delle immagini. Tale misura e la procedura di ricerca, chiamata ottimizzatore, sono elementi centrali del flusso di lavoro di registrazione basata sull’intensità.
Scelta di una trasformazione#
La trasformazione appropriata dipende dal motivo per cui le immagini differiscono. Una traslazione gestisce un semplice spostamento orizzontale o verticale. Una trasformazione rigida consente anche la rotazione, preservando le distanze. La registrazione affine gestisce anche ridimensionamento e inclinazione, ma applica un’unica trasformazione all’intera immagine. Una trasformazione proiettiva, o omografia, può tenere conto delle differenze prospettiche quando la scena abbinata è approssimativamente planare. I tipi di trasformazioni geometriche spiegati da MathWorks offrono utili distinzioni visive.
Alcune scene richiedono una registrazione deformabile, che consente a diverse regioni di spostarsi in misura diversa, per esempio quando l’anatomia cambia forma tra una scansione e l’altra. Questa flessibilità può migliorare l’allineamento locale, ma una deformazione implausibile può nascondere una differenza reale. Gli strumenti per le immagini mediche, come il framework di registrazione di SimpleITK, rendono quindi espliciti la trasformazione, la misura di somiglianza, l’ottimizzatore e il metodo di interpolazione.
La registrazione e le attività correlate di visione artificiale#
La registrazione riguarda un sistema di coordinate condiviso, non una semplice somiglianza visiva. La corrispondenza tra immagini individua contenuti visivi corrispondenti e può fornire le coppie di punti necessarie per la registrazione; quest’ultima va oltre, stimando e applicando l’allineamento spaziale. I punti chiave possono fungere da corrispondenze, anche se i punti su persone o veicoli in movimento sono di solito riferimenti poco affidabili per allineare uno sfondo statico.
Allo stesso modo, il flusso ottico stima il movimento apparente tra i fotogrammi. Le sue stime del movimento possono aiutare a registrare i fotogrammi, come mostra l’esempio di registrazione con flusso ottico di scikit-image, ma il flusso ottico non garantisce di per sé un allineamento accurato. Il tracciamento degli oggetti ha un obiettivo diverso: mantenere l’identità di un oggetto nel tempo. Un tracker può usare stime del movimento dello sfondo per evitare di confondere il movimento della fotocamera con quello degli oggetti.
Dove è importante nelle applicazioni di IA#
Nel rilevamento dei cambiamenti satellitari, un analista può confrontare immagini di terreni agricoli scattate a distanza di mesi per individuare le aree disboscate di recente. La registrazione colloca campi, strade e confini nelle stesse posizioni dei pixel prima che un modello di rilevamento dei cambiamenti li confronti. In caso contrario, un confine di campo spostato può sembrare un cambiamento nella copertura del suolo. Anche dopo l’allineamento, le differenze di stagione, illuminazione o tipo di sensore richiedono attenzione. È un problema comune nell’analisi delle immagini satellitari.
Nell’analisi delle immagini mediche, un medico può confrontare scansioni di visite diverse per valutare se una lesione è cambiata. Allineare le scansioni facilita il confronto della stessa regione anatomica o il suo utilizzo da parte di un modello di segmentazione. Poiché l’anatomia può deformarsi e le tecniche di acquisizione possono produrre schemi di luminosità diversi, una buona registrazione deve preservare le differenze clinicamente significative invece di costringere ogni regione ad apparire uguale.
Registrazione e convalida pratiche#
Inizia con la trasformazione più semplice che spieghi plausibilmente la discrepanza. Verifica che le immagini condividano una quantità sufficiente di contenuto visibile, tieni conto delle diverse risoluzioni e controlla l’allineamento in più punti, non solo dove la corrispondenza è più forte. Salva la trasformazione stimata se in seguito devi riportare le previsioni o le annotazioni sull’immagine originale. La guida di OpenCV alle trasformazioni geometriche spiega come la deformazione dell’immagine ricolloca i pixel trasformati.
L’esempio autonomo seguente usa il flusso di lavoro di correlazione di fase di scikit-image per stimare una traslazione. Installa le relative dipendenze 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 un’immagine di riferimento e una sua copia spostata.
fixed = data.camera()
moving = np.roll(fixed, shift=(12, -8), axis=(0, 1))
# Stima lo spostamento necessario per allineare l’immagine mobile a quella fissa.
estimated_shift, _, _ = phase_cross_correlation(fixed, moving)
aligned = shift(moving, estimated_shift, order=0, mode="grid-wrap")
imsave("registered.png", aligned)
print(estimated_shift)I valori stampati descrivono la correzione, mentre registered.png mostra l’immagine allineata. Questo esempio considera solo la traslazione e non tratta rotazione, deformazione o immagini provenienti da sensori diversi. In una pipeline video con fotocamera in movimento, il tracciamento con Ultralytics YOLO offre un’applicazione correlata: la compensazione del movimento della fotocamera stima una deformazione tra fotogrammi per aiutare a mantenere coerenti le posizioni degli oggetti tracciati. Questa operazione del tracker supporta l’associazione tra fotogrammi, anziché produrre un’immagine registrata per uso generale.









