Utilizzare il core integrato di apprendimento automatico di un sensore intelligente per ottimizzare il tracciamento del movimento "sempre in funzione".

Di Stephen Evanczuk

Contributo di Editori nordamericani di DigiKey

In passato, la crescente richiesta di caratteristiche di controllo del movimento "sempre in funzione" nei fitness tracker e in altri dispositivi mobili personali ha spinto i progettisti a dover scegliere tra queste funzioni e la durata della batteria. I tentativi di ridurre il consumo energetico hanno inevitabilmente portato a sacrificare la capacità di tracciamento o la risoluzione, compromettendo di conseguenza l'esperienza dell'utente.

La nascita di sensori a basso consumo con capacità integrate di rilevamento del movimento aiuta gli sviluppatori a eliminare questo compromesso nei loro progetti.

Questo articolo descrive e mostra come utilizzare un sensore di movimento intelligente di STMicroelectronics con integrate sofisticate capacità di elaborazione del movimento per offrire una soluzione più efficace per un monitoraggio "sempre in funzione" e a basso consumo.

Pratiche classiche di gestione del consumo energetico

Nel progetto di un tipico sistema mobile a basso consumo, la maggior parte dell'energia complessiva viene consumata dal microcontroller host quando è nella sua normale modalità attiva. Di conseguenza, gli sviluppatori cercano in ogni modo di mantenere il microcontroller in modalità di sospensione a basso consumo, risvegliando il processore solo quanto basta per gestire attività come l'elaborazione dei dati dei sensori o la comunicazione.

Per molti anni sono riusciti a raggiungere questo obiettivo utilizzando sensori in grado di raccogliere dati indipendentemente dal processore host. Se le applicazioni avevano requisiti modesti di velocità dei dati in uscita dal sensore, quest'ultimo poteva riempire i suoi buffer su chip con una serie di misurazioni, anche eseguendo transazioni di accesso diretto alla memoria (DMA) per trasferire i dati alla memoria di sistema prima di generare un interrupt per riattivare il processore affinché completasse i l'elaborazione. Dato che la catena di segnali integrata del sensore poteva eseguire il condizionamento, la conversione e il filtraggio dei segnali, il processore riusciva a iniziare da subito a lavorare su dati preelaborati, cercando gli eventi significativi per l'applicazione.

Grazie all'integrazione in questi sensori delle funzioni di rilevamento basato su soglia, gli sviluppatori potevano estendere ulteriormente il tempo durante il quale il processore rimaneva in modalità a basso consumo. Invece di chiedere al processore di identificare eventi significativi, il sensore poteva emettere un segnale di riattivazione solo quando misurava un evento che superava i valori di soglia programmati dallo sviluppatore. Ad esempio, un progettista poteva programmare questo tipo di sensore di temperatura avanzato affinché emettesse un segnale di riattivazione solo quando la temperatura misurata superava la soglia massima specificata o scendeva al di sotto di quella minima.

Anche se questo approccio alla riduzione del consumo energetico è efficace per le esigenze più semplici, può esserlo decisamente meno per il rilevamento di eventi più complessi. Il rilevamento di eventi complessi e la necessità che avvenga in modo continuo comporta, per il processore, un ciclo di lavoro attivo più elevato che scarica rapidamente le batterie ricaricabili utilizzate nei dispositivi personali indossabili, la cui autonomia in genere è relativamente bassa. Ne consegue che l'uso tradizionale del microcontroller host per eseguire il rilevamento diventa insostenibile di fronte alla crescente domanda sia di rilevamento continuo che di batterie con una maggiore durata.

Se invece il sensore può eseguire algoritmi di rilevamento più complessi, gli sviluppatori possono continuare le attuali best practice per ridurre il consumo energetico del sistema tramite modalità operative a basso consumo e stati di sospensione del processore. Allo stesso tempo, questo sensore più intelligente deve fornire agli sviluppatori un elevato grado di flessibilità. L'inserimento di alcuni algoritmi specifici nei sensori non basterà a soddisfare la richiesta di prodotti con funzioni nuove e più avanzate. Il sensore inerziale LSM6DSOX iNEMO (LSM6DSOXTR) di STMicroelectronics raggiunge questa flessibilità con una combinazione di funzioni di elaborazione dei segnali e capacità di calcolo flessibili integrate nel dispositivo.

Architettura del sensore

LSM6DSOX iNEMO è un System-in-Package (SiP) che combina sensori MEMS, catene di segnali dedicate, filtri e motori di calcolo specializzati in un contenitore LGA (Land Grid Array) di soli 2,5x3,0x0,83 mm. Oltre all'accelerometro interno a tre assi e ai sensori MEMS del giroscopio digitale a tre assi, il dispositivo può essere configurato come hub di sensori in grado di orchestrare separatamente il funzionamento di un massimo di quattro sensori esterni attraverso registri hub dedicati.

Basato sulla stessa architettura del precedente LSM6DSO di STMicroelectronics, LSM6DSOX ne offre tutte le funzionalità (vedere, "IMU: con l'apprendimento automatico l'host potrà rimanere a riposo"). Con LSM6DSOX, tuttavia, STMicroelectronics completa la macchina a stati finiti (FSM) offerta nel dispositivo precedente con un core di apprendimento automatico (ML) per la classificazione di set di dati fino a otto alberi decisionali. Anche senza affidarsi alle capacità del core FSM e ML, gli sviluppatori possono implementare capacità avanzate di rilevamento del movimento grazie alle catene di segnali avanzate utilizzate per preelaborare i dati provenienti dai sensori MEMS.

Come per molti sensori avanzati, l'architettura di LSM6DSOX è caratterizzata da catene di segnali multistadio che combinano un convertitore analogico/digitale (ADC) con più stadi di filtraggio. La catena di segnali del giroscopio completa lo stadio ADC con una serie di filtri digitali selezionabili, tra cui un filtro passa-alto (HPF), un filtro passa-basso (LPF1) e un secondo filtro passa-basso (LPF2) che operano nella modalità ad alte prestazioni del dispositivo ma sono bypassati in modalità normale o a basso consumo (Figura 1).

Figura 1: Come per il precedente LSM6DSO di STMicroelectronics, LSM6DSOX segue ogni sensore con una catena di segnali specializzata e dedicata con più stadi di filtraggio, come mostrato qui per il sensore del giroscopio. (Immagine per gentile concessione di STMicroelectronics)

Poiché l'accelerometro è richiesto per molte delle sue capacità integrate, in questa architettura la sua catena di segnali è stata notevolmente migliorata. I suoi stadi iniziali forniscono le capacità di base di condizionamento e conversione dei segnali che si trovano nei sensori più avanzati. Ad esempio, un filtro passa-basso anti-aliasing analogico fornisce il condizionamento di base del segnale, un ADC a 16 bit digitalizza i segnali condizionati e i risultati digitalizzati vengono fatti passare attraverso un filtro passa-basso digitale. Ciò che distingue il dispositivo è il sofisticato blocco del filtro composito che segue questo stadio iniziale di conversione (Figura 2).

Figura 2: Utilizzata sia in LSM6DSO di STMicroelectronics che ora nel sensore di movimento LSM6DSOX di STMicroelectronics, un'estesa catena di segnali dell'accelerometro supporta il rilevamento indipendente dall'host di diversi movimenti complessi, tra cui caduta libera, orientamento multidimensionale e tocco singolo/doppio (S/D). (Immagine per gentile concessione di STMicroelectronics)

Grazie a una combinazione di blocchi di elaborazione e filtri, la sezione del filtro composito dell'accelerometro riesce a rilevare autonomamente un'ampia varietà di eventi complessi che finora richiedevano la riattivazione del processore e l'esecuzione di codici specializzati di rilevamento eventi. Gli sviluppatori ora possono invece programmare i parametri del filtro per rilevare ed emettere automaticamente gli interrupt per un'ampia gamma di eventi di movimento complessi, tra cui tocco singolo o doppio, caduta libera, attività/inattività, orientamento con sei gradi (6D) di libertà o orientamento 4D tipicamente utilizzati per rilevare il movimento del dispositivo. Ad esempio, da verticale a orizzontale.

I rilevatori avanzati del filtro composito combinano i risultati dei blocchi di elaborazione e dei filtri per eseguirne il rilevamento. Ad esempio, il rilevamento di un singolo tocco utilizza il filtro di pendenza incorporato, che genera in modo continuo la pendenza nel campione dell'accelerometro corrente, acc(tn), come:

slope(tn) = [ acc(tn) - acc(tn-1) ] / 2 (Equazione 1)

Per un evento di tocco singolo, la pendenza sale oltre una certa soglia e scende rapidamente rispetto a un evento di urto più ampio (Figura 3). Utilizzando i valori di soglia del tocco e di durata della finestra dell'urto impostati dallo sviluppatore, il dispositivo può rilevare automaticamente l'evento di tocco singolo e inviare un interrupt al microcontroller host.

Il rilevamento del doppio tocco si basa su questo approccio, aggiungendo un parametro per specificare il tempo di attesa richiesto tra i due eventi di tocco singolo.

Figura 3: I sensori di movimento LSM6DSO e LSM6DSOX forniscono un rilevamento indipendente dall'host di eventi di tocco singolo utilizzando una funzione incorporata di pendenza che presenta un ritorno più rapido ai livelli di base per un singolo tocco (a) rispetto alla firma di un evento di urto ampio (b). (Immagine per gentile concessione di STMicroelectronics)

La capacità del dispositivo di generare dati derivati, come la pendenza, svolge un ruolo centrale nelle funzionalità più avanzate disponibili con il suo core FSM e di apprendimento automatico (ML) integrato. Il core FSM è stato trattato nell'articolo citato prima, per cui il resto di questo articolo si concentrerà sul core ML di LSM6DSOX e sul suo utilizzo per rilevare eventi di movimento molto più complessi, incluse sequenze di movimento e attività di movimento complesse come esercizi fisici specifici.

Alberi decisionali

Il core ML di LSM6DSOX fornisce un'elaborazione basata su sensori a un livello che va ben oltre le note impostazioni di soglia parametrizzate utilizzate in molti sensori intelligenti avanzati. Il core ML permette agli sviluppatori di inserire nel dispositivo algoritmi avanzati di rilevamento per rilevare in modo continuo eventi di movimento complessi senza dover riattivare il microcontroller. Qui, il core ML utilizza alberi decisionali per identificare un evento basato sui modelli di dati immessi.

Utilizzati da anni nei sistemi di supporto alle decisioni, gli alberi decisionali scompongono le decisioni complesse in una serie di selezioni basate sulla verifica dei dati immessi, o attributi, a fronte di condizioni predefinite. Partendo dal nodo iniziale, o radice, viene testato il valore di un attributo e la decisione di continuare fino un particolare nodo figlio dipende dai risultati (Figura 4).

Figura 4: Un albero decisionale genera un risultato utilizzando una sequenza di nodi, ognuno dei quali testa un valore di input per un particolare attributo rispetto a una condizione come un dato livello di soglia, proseguendo verso nodi figlio diversi a seconda dei risultati del test. (Immagine per gentile concessione di STMicroelectronics)

Ad esempio, a ogni ciclo di aggiornamento, all'albero decisionale verrebbe chiesto di esaminare i suoi nodi per determinare se i dati disponibili - con quell'aggiornamento - rappresentano assenza di movimento, movimento in avanti o un qualche altro movimento, come segue:

  1. testare l'ampiezza di una misurazione dell'accelerometro
    • 1.1. terminare se il valore è inferiore a un valore predeterminato (la condizione)
    • 1.2. altrimenti, passare a un nodo figlio per testare le misurazioni del giroscopio prese nella stessa finestra temporale
      • 1.2.1. terminare se le misurazioni del giroscopio sono al di sotto di un valore predeterminato, oppure
      • 1.2.2. continuare passando a un nodo figlio più profondo per testare altri attributi misurati nella stessa finestra temporale o per testare lo stesso attributo rispetto a un'altra condizione.

Questo processo viene ripetuto fino a quando il test non raggiunge un nodo terminale, che in questo contesto corrisponde a un particolare evento di movimento complesso, o classe. In questo semplice esempio:

  • il nodo terminale 1.1 potrebbe indicare che i dati, o il set di funzioni, dovrebbero essere classificati come "nessun movimento"
  • il nodo terminale 1.2.1 potrebbe indicare che il set di funzioni dovrebbe essere classificato come "movimento in avanti"
  • i nodi terminali al di sotto del nodo 1.2.2 potrebbero indicare una svolta nel movimento o un cambiamento di orientamento più complesso

Ovviamente, i problemi del mondo reale che richiedono l'uso di alberi decisionali sono molto più complessi e riguardano set di funzioni che comprendono molti attributi e condizioni diverse. LSM6DSOX offre agli sviluppatori una ricca selezione di funzioni, a partire dai dati dei sensori dell'accelerometro, del giroscopio e di qualsiasi sensore esterno collegato all'hub di sensori (Figura 5).

Figura 5: Il core ML integrato presente solo in LSM6DSOX di STMicroelectronics utilizza i dati primari dei sensori, i dati filtrati e i parametri derivati, come media e varianza, come input per uno degli otto alberi decisionali supportati dal dispositivo. (Immagine per gentile concessione di STMicroelectronics)

Da questi dati primari dei sensori, il dispositivo genera un gran numero di funzioni calcolate a partire dai dati primari in una finestra temporale scorrevole, tra cui:

  • norm V = Ö( x2 + y2 + z2) e V2
  • media
  • varianza
  • energia
  • da picco a picco
  • zero-crossing
  • zero-crossing positivo
  • zero-crossing negativo
  • rilevatore di picco
  • rilevatore di picco positivo
  • rilevatore di picco negativo
  • minimo
  • massimo

Per certe funzioni come i rilevatori di zero-crossing e i rilevatori di picco, lo sviluppatore specifica anche un valore di soglia per spostare rispettivamente l'asse di zero-crossing o la soglia di picco.

Flusso di lavoro di apprendimento supervisionato

L'utilizzo di queste funzioni per implementare un albero decisionale con il core ML di LSM6DSOX segue un tipico flusso di lavoro di apprendimento supervisionato comune alla maggior parte dei progetti di sviluppo di modelli di apprendimento automatico. In genere, questo flusso di lavoro inizia con l'identificazione delle attività di interesse e la raccolta di campioni di dati associati ad esse.

In questo caso, gli sviluppatori utilizzano LSM6DSOX semplicemente per raccogliere i dati durante le attività di movimento che l'applicazione finale dovrà rilevare. Per questa fase di sviluppo, possono creare una piattaforma di acquisizione dati utilizzando schede e software di STMicroelectronics. Per la piattaforma hardware, inseriscono semplicemente la scheda di espansione STEVAL-MKI197V1 LSM6DSOX nella scheda madre di valutazione STEVAL-MKI109V3. Per il software, possono usare lo strumento software Unico gratuito di STMicroelectronics, disponibile per Windows, Mac OSX e Linux.

Progettato per funzionare con la scheda madre STEVAL-MKI109V3, Unico offre un metodo semplice per raccogliere i dati generati da LSM6DSOX. Per la raccolta dei dati, gli sviluppatori usano assieme la scheda madre e Unico. Qui, lo sviluppatore o un assistente tiene la scheda madre mentre esegue ripetutamente una delle specifiche attività di movimento di interesse, utilizzando Unico per raccogliere i dati di movimento di LSM6DSOX.

I dati raccolti da LSM6DSOX durante le diverse ripetizioni di una singola attività forniscono il set di training per la classe corrispondente (come "movimento in avanti" nel nostro esempio precedente). Poiché tutti i dati raccolti durante quel movimento corrispondono alla stessa classe, questo approccio attivo alla raccolta dei dati elimina la necessità di una fase separata di etichettatura dei dati che a volte può ritardare i flussi di apprendimento supervisionato.

Dopo aver raccolto i dati di movimento per ogni classe di movimento di interesse, gli sviluppatori utilizzano Unico per esaminare i dati e l'etichetta della classe. Oltre a essere utile per la revisione dei dati, Unico consente di configurare numerosi aspetti dell'albero decisionale desiderato, definire filtri, impostare la durata della finestra temporale e selezionare le funzioni specifiche da utilizzare nella creazione dell'albero decisionale.

Nella pratica, si tende a limitare il più possibile le funzioni utilizzate per rilevare un particolare insieme di attività, in base all'esperienza e alla sperimentazione. Ma anche in presenza di un numero minimo di funzioni, il compito di implementare in modo efficiente un albero decisionale dipende fortemente dalla decisione di quali di queste funzioni, o attributi, testare in ogni nodo dell'albero decisionale. Per ridurre al minimo la dimensione dell'albero decisionale è importante scegliere l'attributo "migliore" da testare in ogni nodo, specie nel caso di un dispositivo con risorse limitate come un sensore.

Nota per il lettore: a questo punto, potreste farvi delle domande sull'uso del termine "funzione" rispetto ad "attributo". La difficoltà nasce dal fatto che quelle che per i modelli ML sono delle "funzioni", nell'albero decisionale sono degli "attributi". Abbiamo cercato di rimanere fedeli a entrambe le definizioni in una sezione, ma per la seguente trattazione dell'albero decisionale abbandoneremo il termine "funzione" per "attributo". Probabilmente vi accorgerete che in altri punti i due termini sono usati in modo intercambiabile, ma a partire da questo punto della sezione "arff", verrà usato il termine "attributo".

Anche se concettualmente semplice, la selezione dell'attributo migliore da utilizzare in ogni nodo decisionale potrebbe non essere intuitiva per alberi decisionali con un gran numero di attributi, ognuno dei quali è rappresentato da un'ampia gamma di valori dei dati. L'approccio preferito per trovare l'attributo migliore da testare in ogni nodo richiede il calcolo dell'entropia di Shannon di ogni attributo in quel nodo usando l'Equazione 2:

entropy(p1,p2,...,pn) = - p1log2(p1) - p2log2(p2)... - pnlog2(pn) (Equazione 2)

La probabilità pn rappresenta ognuna delle possibili n classi associate a quell'attributo.

Il risultato è il contenuto delle informazioni, presentato in bit di valore compreso tra 0 e 1, piuttosto che solo 0 o 1, nella definizione più familiare dei bit.

Le informazioni di "gain" di ogni attributo diventano quindi la differenza tra questo valore informativo e il valore delle informazioni di base calcolato per l'attributo sulla base delle probabilità di avere una decisione corretta senza l'uso del nodo decisionale. Anche se un esame dettagliato di questo calcolo esula dall'ambito di questo articolo, un'interpretazione intuitiva implica il confronto dell'approccio che ha le maggiori probabilità di fornire in modo più efficiente il risultato desiderato: un risultato basato su una slice brute force bottom-up attraverso il set di dati basato sui valori di quell'attributo (la "linea base"), o un risultato basato su una selezione top-down basata su specifiche gamme di valori per quell'attributo. La selezione top-down utilizza un approccio "dividi e conquista" che in genere riduce il numero dei risultati possibili più rapidamente rispetto all'approccio bottom-up.

Implementazione rapida

Fortunatamente, gli sviluppatori raramente devono preoccuparsi dei dettagli dell'ottimizzazione dell'acquisizione delle informazioni e della selezione degli attributi. Possono invece sfruttare strumenti di apprendimento automatico gratuiti di terze parti come Weka che gestisce automaticamente i calcoli necessari per generare alberi decisionali ottimali.

Di fatto, Unico e Weka collaborano in modo molto stretto per fornire un flusso di lavoro per una rapida implementazione degli alberi decisionali. Di norma, i passaggi critici del flusso di lavoro di sviluppo di uno specifico albero decisionale riguardano le fasi di raccolta dati ricordate in precedenza, nello specifico l'uso di LSM6DSOX per raccogliere set di dati rappresentativi per ogni classe di attività di interesse e Unico per perfezionare tali set e definire la configurazione dell'albero decisionale. Una volta completate queste fasi, questi due strumenti collaborano per accelerare le fasi finali del processo.

Dopo aver affinato i dati e la configurazione dell'albero decisionale in Unico, gli sviluppatori utilizzano lo strumento per convertire il set di funzioni selezionate in un formato standard chiamato formato di file con relazioni e attributi (arff). Un file arff include una sezione di intestazione in cui sono elencati gli attributi selezionati (funzioni) e le possibili classi, e una sezione dati con elencati tutti i set di dati raccolti e la relativa classe (Listato 1). In questo esempio, vengono utilizzate solo poche funzioni e una piccola serie di istanze di dati per identificare un insieme limitato di classi, tra cui sollevamento pesi per esercitare i bicipiti, alzate laterali e squat.

Listato 1: Il formato di file con relazioni e attributi (arff) standard include una sezione di intestazione che definisce gli attributi e le classi, e una sezione dati che contiene le istanze dei dati per ogni attributo e la relativa classe. (Fonte dati: STMicroelectronics)

Utilizzando Weka, gli sviluppatori caricano il file arff nella finestra di "pre-elaborazione" e visualizzano un sommario grafico di tutte le funzioni (Figura 6).

Figura 6: Dopo aver utilizzato lo strumento Unico di STMicroelectronics per generare un file arff per il proprio set di dati, gli sviluppatori possono utilizzare Weka, uno strumento di apprendimento automatico di terze parti, per vedere il set di dati completo, mostrato qui per i dati arff nel Listato 1. (Immagine per gentile concessione di DigiKey)

Per costruire l'albero decisionale, gli sviluppatori passano alla finestra "classify" di Weka, scelgono il classificatore Weka J48 (il classificatore dell'albero decisionale di Weka) e fanno clic su start. Nella sua finestra di output, il classificatore elenca un riepilogo dei dati immessi e fornisce l'albero decisionale sia in formato grafico (Figura 7) che testuale (Figura 8).

Figura 7: Per creare un albero decisionale, gli sviluppatori caricano semplicemente un file arff, selezionano il classificatore dell'albero decisionale Weka J48 e generano l'albero finale. Lo strumento di visualizzazione di Weka integrato viene utilizzato per visualizzare il risultato con gli attributi e le condizioni elencate per ogni nodo - in questo caso utilizzando i dati arff del Listato 1. (Immagine per gentile concessione di DigiKey)

Figura 8: Insieme alla visualizzazione dell'albero decisionale, Weka genera la specifica effettiva dell'albero decisionale J48 - in questo caso usando i dati arff del Listato 1 per generare la specifica J48 del Listato 2. (Immagine per gentile concessione di DigiKey)

In questo esempio, la specifica dell'albero decisionale J48 generata richiede solo poche righe (Listato 2).

Listato 2: Weka genera una specifica dell'albero decisionale J48 come questa per i dati arff del Listato 1. Gli sviluppatori caricano questa specifica nello strumento Unico di STMicroelectronics per generare un file di configurazione e caricarlo nel sensore LSM6DSOX di STMicroelectronics. (Fonte dati: STMicroelectronics)

Dopo aver copiato e salvato in un file il testo dell'albero J48, gli sviluppatori caricano quel file in Unico per generare un file di configurazione del registro. Infine, completano il flusso di lavoro utilizzando la scheda load/save di Unico per caricare il file di configurazione in LSM6DSOX. A questo punto, possono eseguire i movimenti di supporto tenendo la scheda madre STEVAL-MKI109V3 come descritto in precedenza, utilizzando Unico per leggere il risultato della classificazione dell'albero decisionale dal registro di uscita di LSM6DSOX per l'albero decisionale configurato.

In un progetto personalizzato, gli sviluppatori potrebbero utilizzare un cambiamento nel registro di uscita di un albero decisionale per segnalare al microcontroller di attivarsi ed eseguire il codice per inviare segnali all'utente, incrementare un contatore di attività fisica, o altre operazioni di livello superiore idonee richieste da un'applicazione.

Anche se questo esempio è estremamente semplice, il core ML di LSM6DSOX può supportare la classificazione di eventi di movimento molto più complessi utilizzando un maggior numero delle funzioni ricordate in precedenza. Ad esempio, STMicroelectronics descrive una versione più avanzata di questa applicazione semplice, utilizzando molte più funzioni per classificare l'attività ginnica in una più ampia gamma di esercizi che comprendono sollevamento pesi per esercitare i bicipiti, jumping jack, sollevamenti laterali, flessioni e squat.

Oltre alle funzioni della media e di picco-picco usate nell'esempio semplice, l'esempio complesso aggiunge quelle di varianza, min, max e zero-crossing calcolate per una finestra temporale di due secondi. Quest'applicazione più sofisticata che viene eseguita nel core ML LSM6DSOX comporta un consumo di corrente di circa 569 μA (a 1,8 V), di cui solo circa 13 μA sono dovuti al core ML. Dato questo livello di consumo, gli sviluppatori potrebbero implementare senza problemi il rilevamento del movimento "sempre in funzione" perché avrebbe un impatto modesto sullo stato di carica di una batteria.

Avvertenza sull'apprendimento automatico

Le applicazioni di apprendimento automatico del mondo reale dipendono da flussi di lavoro di apprendimento supervisionato che inevitabilmente incorporano una qualche forma di distorsione nel modello finale di apprendimento automatico, sia che si tratti di una rete neurale convoluzionale molto complessa o di un albero decisionale relativamente semplice. In particolare, i dati basati sul movimento dipendono talmente dalla morfologia fisica e dalla chinesiologia che quelli raccolti da un individuo che sta eseguendo un'attività possono essere molto diversi.

Di conseguenza, gli sviluppatori che utilizzano il rilevamento delle attività basato su ML si trovano di fronte alla sfida continua di trovare un equilibrio tra specificità e generalità dei dati. Una specificità eccessiva limita solitamente la generalità, mentre una generalità eccessiva riduce in genere il rilevamento accurato delle specifiche variazioni dello stesso movimento fatto da individui diversi. Anche se questi problemi non riguardano solo questa specifica implementazione, le sfide di trovare tale equilibrio nei dispositivi di rilevamento personalizzato del movimento potrebbero suggerire la necessità di alberi decisionali aggiornabili con dati specifici dell'utente. Prestando attenzione a tutti questi requisiti della scienza dei dati per l'apprendimento automatico, tuttavia, gli sviluppatori possono utilizzare già LSM6DSOX e il flusso di lavoro esistente per incorporare il rilevamento sofisticato del movimento "sempre in funzione" in progetti con limitazioni di potenza.

Conclusione

La richiesta di un tracciamento del movimento "sempre in funzione" e di una durata estesa della batteria ha posto gli sviluppatori di dispositivi di fitness e di altri piccoli indossabili di fronte a un conflitto apparentemente insormontabile. Sebbene molti sensori avanzati possano fornire un certo grado di rilevamento del movimento indipendentemente dal processore, il desiderio di supportare il rilevamento "sempre in funzione" di movimenti più complessi preclude questo approccio nelle applicazioni emergenti.

Utilizzando le capacità di apprendimento automatico del sensore di movimento LSM6DSOX di STMicroelectronics, tuttavia, gli sviluppatori possono risolvere il conflitto tra il monitoraggio continuo e la durata estesa della batteria per creare fasce di fitness e altri dispositivi indossabili più avanzati e consapevoli dell'attività.

DigiKey logo

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo autore

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk ha più di 20 anni di esperienza come autore sull'industria elettronica e ha scritto su una vasta gamma di argomenti tra cui hardware, software, sistemi e applicazioni, incluso l'IoT. Ha ricevuto un Ph.D. in neuroscienze sulle reti neuronali e ha lavorato nel settore aerospaziale su sistemi di sicurezza ampiamente distribuiti e sui metodi di accelerazione algoritmica. Attualmente, quando non scrive articoli su tecnologia e ingegneria, lavora su applicazioni di deep learning per i sistemi di riconoscimento e di raccomandazione.

Informazioni su questo editore

Editori nordamericani di DigiKey