Come devo normalizzare i dati del mio sensore accelerometro?


9

Sto lavorando con un ampio set di dati dell'accelerometro raccolti con più sensori indossati da molti soggetti. Sfortunatamente, nessuno qui sembra conoscere le specifiche tecniche dei dispositivi e non credo che siano mai stati ricalibrati. Non ho molte informazioni sui dispositivi. Sto lavorando alla tesi del mio maestro, gli accelerometri sono stati presi in prestito da un'altra università e nel complesso la situazione era un po 'intransparente. Quindi, preelaborare a bordo il dispositivo? Nessun indizio.

Quello che so è che sono accelerometri triassiali con una frequenza di campionamento di 20Hz; MEMS digitali e presumibilmente. Sono interessato a comportamenti e gesti non verbali, che secondo le mie fonti dovrebbero principalmente produrre attività nell'intervallo 0,3-3,5Hz.

La normalizzazione dei dati sembra abbastanza necessaria, ma non sono sicuro di cosa usare. Una parte molto grande dei dati è vicina ai valori restanti (valori grezzi di ~ 1000, dalla gravità), ma ci sono alcuni estremi come fino a 8000 in alcuni registri o addirittura 29000 in altri. Vedi l'immagine sotto . Penso che sia una cattiva idea dividere per max o stdev per normalizzare.

Qual è il solito approccio in un caso come questo? Dividi per la mediana? Un valore percentile? Qualcos'altro?

Come problema secondario, non sono nemmeno sicuro di dover tagliare i valori estremi.

Grazie per qualsiasi consiglio!

Modifica : ecco un diagramma di circa 16 minuti di dati (20000 campioni), per darti un'idea di come i dati sono generalmente distribuiti.

inserisci qui la descrizione dell'immagine


1
Potete fornire qualche informazione in più sulla vostra configurazione di misura? Domande che vengono in mente: ( 1 ) Questi sono accelerometri monoasse o multiasse? ( 2 ) Sono filtrati passa-alto o no e, in caso affermativo, come? (Sembra che non lo siano, in base alla tua descrizione.) ( 3 ) Cosa stai misurando esattamente e qual è la gamma di frequenza del segnale di interesse? ( 4 ) Qual è il meccanismo di rilevamento (ad es. MEMS, piezoelettrico, capacitivo, ecc.) O, addirittura, il numero di parte (!) Degli accelerometri in uso? ...
cardinale il

... (cont) ( 5 ) Sono completamente digitali o hai il tuo ADC (16 bit, forse, secondo la descrizione che dai)?
cardinale il

@cardinale: ho modificato le risposte alle tue domande, grazie per avermelo chiesto. Non sono sicuro di cosa sia un ADC. Sono stato coinvolto nell'esperimento, ma non nell'estrazione dei dati dalla memoria del dispositivo, c'è un divario tra la raccolta dei dati e dove ho ricevuto un sacco di registri binari.
Junuxx,

Ciao Junuxx. Ci scusiamo per l'acronimo inspiegabile (ADC = "convertitore da analogico a digitale"); Ho assunto implicitamente che lo avresti riconosciuto in base alla tua domanda.
cardinale

1
Cosa stai cercando di scoprire da questi dati? Stai forse cercando di rilevare determinati tipi di eventi, stimare le frequenze degli eventi, stimare le accelerazioni medie, trovare correlazioni tra diversi accelerometri, ...? Il punto è che se desideri una consulenza valida e pertinente, non chiedere informazioni sulle procedure tecniche con i dati (che possono essere irrilevanti o addirittura inutili, a seconda dell'applicazione): prima dicci quale problema stai cercando di risolvere.
whuber

Risposte:


14

I segnali grezzi che mostri sopra sembrano non filtrati e non calibrati. Filtraggio e calibrazione appropriati , con un certo rifiuto del manufatto , in effetti normalizzeranno i dati. L'approccio standard con i dati dell'accelerometro è il seguente:

  1. Filtro - ad es. 4 ° ordine, filtro passa-basso IIR fase zero o filtro passa-banda
  2. Rifiuto del manufatto - basato sulla soglia
  3. Calibrate - Il metodo Ferraris et al ( Procedura per la calibrazione sul campo senza sforzo di giroscopi e accelerometri a tre assi, F Ferraris, U Grimaldi, M Parvis - Sensors and Actuators, 1995 ) funziona bene per questo.

Si consiglia di eseguire il rifiuto artefatto sui dati del sensore inerziale. Sarei preoccupato che tu non conosca la provenienza dei dati e quindi non puoi garantire che i sensori siano stati fissati correttamente e coerentemente (in termini di orientamento e posizionamento fisico) su tutti i soggetti. Se i sensori non sono stati fissati correttamente, è possibile ottenere molti artefatti nei segnali, poiché il sensore può spostarsi rispetto al segmento del corpo. Allo stesso modo, se i sensori fossero orientati diversamente (nel modo in cui erano posizionati) su soggetti diversi, i dati sarebbero difficili da confrontare tra i soggetti.

Date le dimensioni degli outlier che segnalate, sembrano essere artefatti. Tali artefatti avrebbero quasi sicuramente distorto qualsiasi calcolo di calibrazione (anche se il loro effetto sarà attenuato da un filtraggio appropriato) e quindi la calibrazione dovrebbe essere eseguita dopo il rifiuto degli artefatti.

Una semplice soglia può funzionare bene per una routine iniziale di rifiuto del manufatto, cioè rimuovere (o sostituire con NaN) tutti i campioni al di sopra di una certa soglia empirica. Tecniche più sofisticate calcoleranno in modo adattivo questa soglia usando una media mobile o una finestra mobile.

A seconda della posizione del sensore, potresti anche voler correggere l'influenza della gravità sui segnali di accelerazione, anche se qui la comprensione dettagliata degli assi e del posizionamento del sensore è cruciale. Il metodo Moe-Nillson ( R. Moe-Nilssen, Un nuovo metodo per valutare il controllo motorio in andatura in condizioni ambientali di vita reale. Parte 1: Lo strumento, Biomeccanica clinica, Volume 13, Numeri 4–5, giugno-luglio 1998, Pagine 320-327 ) è il più comunemente usato e funziona bene con sensori inerziali montati nella parte bassa della schiena.

Un buon punto di partenza per esaminare i dati per il riconoscimento dei gesti sarebbe quello di suddividere i dati filtrati e calibrati in epoche (ad esempio 10s) e calcolare un numero di caratteristiche per epoca e metterle in relazione con le etichette che hai per i dati, posso ' offrire consigli più specifici senza conoscere meglio il set di dati e le etichette associate.

Spero che sia di aiuto.


È una risposta incredibile @BGreene, grazie mille! Anche i riferimenti sono molto utili. Vorrei aver fatto questa domanda qualche mese fa. I sensori erano indossati su una corda attorno al collo (non è una mia idea), quindi c'è sicuramente molto movimento rispetto al corpo. Alcuni dei tuoi suggerimenti potrebbero essere più adatti per ulteriori ricerche, penso, ma almeno saranno utili per la mia sezione Future Work. E fortunatamente la parte del riconoscimento non è il problema, ho un background abbastanza solido nell'apprendimento automatico, ma grazie anche per i suggerimenti su questo.
Junuxx,

Nessun problema. In tal caso, penserò che sarai limitato all'esame dei movimenti grossolani poiché un cavo significa che non puoi dire in modo affidabile come si muoveva il corpo, solo il sensore. Si potrebbe dedurre che valori di uscita del sensore di grandi dimensioni equivalgono a grandi movimenti grossolani, ma si perde molto la nitidezza di un sensore correttamente fissato.
BGreene,

(+1 ieri) Un paio di cose potrebbero essere prese in considerazione in (1.) sopra. Poiché il limite inferiore dell'intervallo di frequenza di interesse è piuttosto piccolo, un'alternativa da considerare è semplicemente applicare un filtro passa-basso e sottrarre la media. In secondo luogo, invece di un filtro IIR, in questo caso si potrebbe considerare un filtro a risposta agli impulsi finiti in fase lineare. Lo dico perché sospetto che per prevedere i gesti utilizzando il segnale dell'accelerometro multiasse, si vorrà mantenere il movimento sincronizzato indipendentemente dalla frequenza. (cont.)
cardinale

(...) La risposta di fase non lineare di un filtro IIR sposterà componenti diversi di quantità diverse e questo effetto tende ad essere peggiore vicino alle frequenze di taglio. Poiché tutto è digitale, ha senso utilizzare un filtro FIR a fase lineare. Spesso si ha anche un miglior controllo della risposta transitoria. :-)
cardinale il

@cardinal è tutto vero - ho modificato la mia risposta sopra. ho appena controllato il mio codice: il mio algoritmo accelerometro più recente utilizza un filtro Butterworth IIR a fase zero. Anche se preferisco evitare di sottrarre la media per brevi segmenti di dati
BGreene,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.