CAPITOLO 5
STIMA DELLA VELOCITA’ DI ROTAZIONE
Analizziamo ora in dettaglio l’algoritmo per la stima del modulo del vettore velocità di rotazione .
Fig. 5.1 – Schema a blocchi per la stima della velocità di rotazione
In ingresso a tutta la catena abbiamo la STFT binaria come in 4.5 alla quale viene applicata un’operazione morfologica che in sequenza è: opening, closing e skeletons [11].
Operazione morfologica
La morfologia viene usata nel processing di immagini digitali (binarie o a livelli di grigio) per distinguere la loro struttura geometrica e per ricavare informazioni sulla forma di oggetti rappresentati in esse ed è costituita da un set di operatori matematici ognuno con una particolare funzione specifica. Gli operatori elementari più usati sono l’erosione e la dilatazione; combinando opportunamente questi due se ne possono ricavare altri più complessi. Alla base di tutte le possibili operazioni morfologiche c’è però la creazione di un elemento strutturale di dimensioni minori dell’immagine digitale che può assumere svariate forme (circolare e quadrata sono le più elementari) che ha il compito di scorrere su tutti i pixel dell’immagine stessa per poter realizzare l’operazione descritta da un dato operatore. Vediamo come si ottiene la dilatazione di un’immagine digitale.
Fig. 5.2 – Dilatazione di un’immagine
L’immagine di partenza è il quadrato A di lato e l’elemento strutturale con cui dilatarlo è il quadrato B di lato , questa operazione viene indicata con . L’immagine finale sarà costituita da tutti quei punti derivanti da l’unione delle due figure A e B fintanto che il punto centrale dell’elemento strutturale non esce dai bordi dell’immagine A di partenza. Questa operazione serve a espandere (dilatare appunto) i contorni delle immagini. Ovviamente, essendo un’operazione tra due immagini, il risultato finale dipenderà dalla forma dell’elemento strutturale (fig. 5.2).
Invece l’operazione di erosione di un’immagine, indicata con dove A è l’immagine di partenza e B è l’elemento strutturale, ha il significato opposto,ovvero quello di contrarre i bordi dell’immagine. Dipendentemente dalla dimensione dell’elemento strutturale, questa operazione consente di eliminare gli oggetti piccoli presenti in un’immagine (piccoli raggruppamenti di pixel bianchi in un’immagine per lo più nera).
Fig. 5.3 – Erosione di un’immagine. L’erosione del rettangolo blu tramite l’elemento circolare scuro da come risultato il rettangolo celeste
Come detto in precedenza, la combinazione tra queste due operazioni da luogo ad altre trasformazioni morfologiche più complesse quali ad esempio l’operazione di opening e closing: la opening è una erosione seguita da una dilatazione mentre la closing è l’esatto contrario. Entrambe sono molto utili nell’eliminazione del rumore di fondo di un’immagine binaria in quanto rimuovono piccoli oggetti dallo sfondo e tendono a levigare i contorni degli oggetti stessi. Da un punto di vista matematico,
data l’immagine A e l’elemento strutturale B, la opening e la closing sono scritte rispettivamente come segue:
(5.1) (5.2)
Fig. 5.4 – Opening (a sinistra) e closing (a destra). L’immagine iniziale è quella in blu scuro, l’elemento strutturale è il cerchio in grigio e il
risultato finale è l’immagine in celeste.
Altra operazione molto utile è quella di skeleton (scheletro morfologico), ovvero la rappresentazione scheletrica di una forma o di un’immagine binaria. Gli scheletri morfologici sono di due tipi: quelli definiti da aperture morfologiche e con le quali si può anche ricostruire la forma originaria e quelli derivati dalla trasformazioni hit-or-miss che preserva la topologia della forma.
Fig.5.5 – Scheletro morfologico di un’immagine digitale
In fig. 5.5 è rappresentata tale operazione: la figura di partenza (in alto a sinistra) viene percorsa internamente da un elemento circolare per tutta la sua estensione, unendo i punti percorsi dal centro di questo elemento (che può variare anche il suo raggio) si ottiene lo scheletro morfologico della figura.
Queste tre operazioni appena descritte (opening, closing e skeleton) sono quelle realizzate dal blocco denominato “Operazione Morfologica” della fig. 5.1 e servono a enfatizzare l’immagine binaria applicata al suo ingresso. Come detto, se consideriamo come dato in ingresso la rappresentata in fig. 4.5, il risultato di questa operazione è illustrato in figura 5.6. Attraverso lo scheletro morfologico della STFT binaria adesso è possibile costruire il segnale nel solo dominio del tempo che ci permetterà di ricavare il suo periodo e conseguentemente la velocità di rotazione. Un’immagine binaria altro non è che una matrice costituita solo da “1” o da “0” e in questo caso ogni colonna rappresenta un dato istante di tempo (le righe invece sono relative alle frequenze della STFT). Per generare il segnale temporale quindi è sufficiente, colonna per colonna, moltiplicare il singolo valore di frequenza (scorrendo le varie righe dalla prima all’ultima) per il dato presente in quel pixel (“1” o “0” appunto, ricordiamo
Fig. 5.6 – STFT binaria dopo l’operazione morfologica
che un pixel avrà come coordinate una data frequenza e un dato istante di tempo). Per evitare di avere valori negativi del segnale, poiché l’asse delle frequenze è centrato nello zero ma ha sia valori positivi che negativi, si eleva al quadrato: in questo modo si altera l’ampiezza, ma non la sua periodicità che è ciò che ci interessa. Il segnale cosi ottenuto è successivamente filtrato da un filtro passa-basso per levigare i picchi e per ridurre il numero di campioni da elaborare; i due segnali ottenuti sono illustrati rispettivamente nelle fig. 5.7 e 5.8
Fig. 5.8 – Segnale temporale filtrato passa-basso
A questo punto si deve ricavare la periodicità del segnale di fig. 5.8; come si nota non è più possibile ricavare la distanza tra due massimi del segnale in quanto i picchi assumono valori diversi tra loro. Si rende necessaria quindi una diversa elaborazione, tipica dell’analisi dei segnali sonori: la STAMDF (Short-Time Average Magnitude Difference Function) [12].
Short-Time Average Magnitude Difference Function
Per la stima del periodo di un segnale si può utilizzare questa particolare funzione. Per un segnale periodico di periodo P si ha che la successione
(5.3)
è uguale a zero per quindi invece di moltiplicare per posso considerare il valore assoluto della loro differenza:
dalla quale possiamo ricavarne una più semplice versione ponendo rettangolare di durata N
(5.5)
Fig. 5.9 – STAMDF
In fig. 5.9 è raffigurato l’andamento tipico della STAMDF, in questo caso è stato usato in ingresso il segnale di fig. 5.8: l’informazione sulla periodicità del segnale è contenuto nel minimo di questa funzione (in figura, k = 101). Come vedremo in seguito è opportuno che l’andamento della STAMDF sia il più regolare possibile affinché la stima del periodo sia corretta; questo comporterà che il segnale applicato al suo ingresso abbia un andamento periodico comunque ben visibile.
Una volta ottenuta la STAMDF si deve ricercare per quale valore di k si ha il minimo assoluto dopo il primo massimo relativo (in figura, il primo massimo relativo si ha per e il minimo cercato è ); questo lo possiamo fare andando a prendere la derivata della STAMDF e tenendo conto che il suo primo zero coincide con il primo
massimo relativo. Trovato questo valore di k si scorre la STAMDF a partire proprio da questo valore andando a trovare il minimo assoluto. Chiamata la frequenza di campionamento del segnale in ingresso, la sua frequenza fondamentale è
(5.6)
Il suo periodo quindi sarà
(5.7)
A questo punto si trova la stima della velocità di rotazione del target con la seguente formula