Trasformazione di Helmert

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:F Template:W Template:Organizzare

Informazioni teoriche

Per rototraslazione e variazione di scala nel piano intendiamo un cambiamento di coordinate cartesiane da un sistema di riferimento ad un altro con alterazione delle unità di misura e quindi di scala. Tutto ciò è possibile grazie ad una trasformazione lineare composta da una traslazione e da una rotazione, accompagnate da un fattore di riduzione o ingrandimento. Questo problema prende il nome di trasformazione di Helmert a sette parametri, ed è individuato dall'espressione:

X=λRX+T

dove i parametri da determinare sono tre per la rotazione, tre per la traslazione ed uno per le unità di misura.

In particolare: R è la matrice di rotazione rispetto ai tre assi (matrice 3x3), T è il vettore di traslazione (3 componenti) e λ è il fattore di scala, mentre X e X rappresentano rispettivamente le coordinate dei punti prima e dopo la trasformazione.

Per comodità consideriamo uno spazio di lavoro bidimensionale, quindi la matrice R sarà una 2x2 e dipenderà da un solo parametro, 𝛼, che individua l’angolo di rotazione e T diventerà un vettore a due componenti (Tx e Ty). R è della forma:

R(α)=(cos(α)sin(α)sin(α)cos(α))

A questo punto si vuole stimare i valori dei parametri α, λ, Tx, Ty che governano la trasformazione tramite il metodo dei minimi quadrati. Prima è però necessario svolgere un processo di linearizzazione del sistema rispetto ai parametri α e λ, ponendo a=λcosα, b=λsinα e ba=tanα. Si ottiene:

λR(α)=(abba)

Dunque, conoscendo le coordinate X e X di un certo numero di punti (più sono minore sarà l’errore) e utilizzando queste supposizioni/semplificazioni:

  • le coordinate X note senza errori;
  • le coordinate X incorrelate e con medesima varianza;
  • utilizzo delle coordinate baricentriche;

la trasformazione diventa:

X=(abba)X+T

Calcolo delle coordinate baricentriche

In prima battuta si calcolano le coordinate del baricentro dei punti nei due sistemi di riferimento:

XB=1Nxp XB=1Nxp

Successivamente si calcolano le coordinate baricentriche di tutti gli N punti relativamente al loro baricentro:

Wp=XpXB Wp=XpXB

Nuova forma per le trasformazione di Helmert

È possibile ora modificare la prima equazione mediante l’utilizzo delle coordinate baricentriche:

Xp=λRXp+TWp=λR(α)WpXB+T+λR(α)XB

la quale, ponendo T0=XB+T+λR(α)XB risulta:

Wp=λR(α)Wp+T0

A questo punto il problema può essere ricondotto ad un’equazione matriciale del tipo:

y=Ax

Esplicitando per ogni punto e ricordando il precedente cambio di variabile otteniamo:

{Wpx=WpxaWpyb+T0xWpy=Wpya+Wpxb+T0y

ovvero:

(W1xW1y...WpxWpy...WNxWNy)=(W1xW1y10W1yW1x01...WpxWpy10WpyWpx01...WNxWNy10W1yW1x01)*(abT0xT0y)

dove y rappresenta il vettore contenente i termini noti, A la matrice dei coefficienti e x il vettore dei parametri da stimare.

Stima dei parametri

Per la risoluzione del sistema è conveniente normalizzarlo, moltiplicando ambo i membri per la trasposta di A (AT) :

ATAx=ATy

Allora, definendo con N=ATA la matrice normale, i prodotti ATA e ATy risultano essere:

N=ATA=(d0000d0000N0000N) ATy=(pq00)

con :

d=p=1N(Wpx2+Wpy2)

p=p=1N(WpxWpx+WpyWpy)

p=p=1N(WpyWpxWpxWpy)

La matrice normale è diagonale in quanto le coordinate baricentriche hanno media nulla; le componenti T0x e T0y sono pari a zero per il medesimo motivo.

Per la stima dei parametri non ci resta che determinare il sistema. Si ottengono le seguenti relazioni:

a^=pq b^=qd T0x=0 T0x=0

Grazie a queste è possibile stimare i parametri α e λ :

λ^=a^2+b^2 α^=arctana^b^

mentre una stima del vettore traslazione è T=XBλRXB

Calcolo degli scarti e delle varianza

Definiamo gli scarti come differenza tra il valore reale e quello stimato:

ν=yAx^

Per calcolare la varianza a posteriori si usa la formula:

σ02^=νTνr

con r = (numero di misure) - (numero parametri).