Utiliser le cœur d'apprentissage automatique intégré d'un capteur intelligent pour optimiser le suivi de mouvement « permanent »

Par Stephen Evanczuk

Avec la contribution de Rédacteurs nord-américains de DigiKey

Par le passé, la demande croissante des consommateurs pour des fonctionnalités de suivi de mouvement « permanentes » dans les dispositifs de fitness et autres dispositifs mobiles personnels a obligé les concepteurs à choisir entre ces fonctionnalités et la durée de vie de la batterie. Les tentatives de réduction de la consommation énergétique impliquaient inévitablement le sacrifice de la fonction de suivi ou de la résolution, compromettant ainsi l'expérience utilisateur.

L'émergence de capteurs basse consommation dotés de fonctions de détection de mouvement intégrées aide les développeurs à éliminer ce compromis dans leurs conceptions.

Cet article explique comment utiliser un détecteur de mouvement intelligent de STMicroelectronics intégrant des fonctions de traitement de mouvement sophistiquées pour offrir une solution plus efficace de suivi de mouvement basse consommation permanent.

Pratiques de gestion de l'alimentation classiques

Dans une conception typique de système mobile basse consommation, la consommation énergétique du microcontrôleur hôte en mode actif normal représente la part dominante de la consommation énergétique totale du système. Par conséquent, les développeurs font tout leur possible pour que le microcontrôleur fonctionne en mode veille basse consommation, n'activant le processeur que le temps nécessaire pour gérer des tâches comme le traitement ou la communication de données provenant du capteur.

Depuis de nombreuses années, les développeurs peuvent atteindre cet objectif en utilisant des capteurs capables de collecter des données indépendamment du processeur hôte. Pour les applications exigeant un débit de données de sortie du capteur peu élevé, le capteur peut remplir ses mémoires tampons intégrées avec une série de mesures, et même effectuer des transactions d'accès direct à la mémoire pour transférer les données vers la mémoire système avant d'émettre une interruption pour activer le processeur et terminer ses tâches de traitement. Étant donné que la chaîne de signaux intégrée au capteur peut effectuer la mise en forme, la conversion et le filtrage des signaux, le processeur peut immédiatement commencer à exploiter les données prétraitées, en recherchant des événements importants pour l'application.

Grâce à l'intégration de fonctionnalités de détection de seuil dans ces capteurs, les développeurs peuvent prolonger la durée pendant laquelle le processeur reste en mode basse consommation. Plutôt que d'obliger le processeur à identifier les événements importants, le capteur peut émettre un signal d'activation uniquement lorsqu'il a mesuré un événement dépassant les valeurs de seuil programmées par le développeur. Par exemple, un concepteur peut programmer ce type de capteur de température avancé pour émettre un signal d'activation uniquement lorsque la température mesurée dépasse un seuil maximal spécifié ou tombe en dessous d'un seuil minimal spécifié.

Bien qu'elle soit efficace pour des exigences plus simples, cette approche de réduction de la consommation énergétique peut être nettement moins efficace pour détecter des événements plus complexes. Combinée à l'exigence d'activation permanente, la détection de ces événements complexes implique un cycle de fonctionnement actif plus élevé pour le processeur, ce qui épuise rapidement les batteries rechargeables à capacité relativement faible généralement utilisées dans les dispositifs corporels personnels. L'utilisation traditionnelle du microcontrôleur hôte pour effectuer la détection n'est donc pas viable face à la demande croissante des utilisateurs en matière de détection permanente et de durée de vie prolongée de la batterie.

Alors, si le capteur peut exécuter des algorithmes de détection plus complexes, les développeurs peuvent continuer à appliquer les bonnes pratiques en vigueur pour réduire la consommation énergétique du système grâce aux modes de fonctionnement basse consommation et aux états de veille du processeur. En même temps, ce capteur plus intelligent doit offrir aux développeurs une grande flexibilité. La simple utilisation de quelques algorithmes spécifiques dans des capteurs ne permet pas de répondre à la demande de fonctionnalités nouvelles et améliorées. Le capteur inertiel LSM6DSOX iNEMO (LSM6DSOXTR) de STMicroelectronics offre cette flexibilité grâce à une combinaison de fonctionnalités de traitement des signaux et de fonctions de calcul flexibles intégrées au dispositif.

Architecture du capteur

Le LSM6DSOX iNEMO est un système en boîtier (SiP) combinant des capteurs à microsystèmes électromécaniques (MEMS), des chaînes de signaux dédiées, des filtres et des moteurs de calcul spécialisés dans un boîtier LGA mesurant seulement 2,5 mm x 3,0 mm x 0,83 mm. Outre son accéléromètre interne à trois axes et ses capteurs MEMS à gyroscope numérique à trois axes, le dispositif peut être configuré en tant que concentrateur de capteurs avec la possibilité d'orchestrer séparément le fonctionnement de quatre capteurs externes maximum au moyen de registres de concentrateurs dédiés.

Basé sur la même architecture que le précédent LSM6DSO de STMicroelectronics, le LSM6DSOX offre toutes les capacités et fonctionnalités de son prédécesseur (voir l'article « IMU : laissez votre hôte en veille grâce à l'apprentissage automatique embarqué »). Cependant, avec le LSM6DSOX, STMicroelectronics complète la machine à états finis (FSM) proposée dans le dispositif précédent avec un cœur d'apprentissage automatique permettant de classer les ensembles de données au moyen d'arbres de décision pouvant atteindre le nombre de huit. Même sans utiliser les fonctions de base de la machine à états finis et de l'apprentissage automatique, les développeurs peuvent implémenter des fonctions de détection de mouvement avancées grâce aux chaînes de signaux avancées utilisées pour traiter au préalable les données provenant des capteurs MEMS.

Comme pour de nombreux capteurs avancés, l'architecture du LSM6DSOX inclut des chaînes de signaux multi-étages qui combinent un convertisseur analogique-numérique (CAN) avec plusieurs étages de filtrage. La chaîne de signaux du gyroscope complète les opérations du CAN avec une série de filtres numériques sélectionnables comprenant un filtre passe-haut (HPF), un filtre passe-bas (LPF1) et un second filtre passe-bas (LPF2). Ces filtres fonctionnent dans le mode hautes performances du dispositif, mais ne servent pas en mode normal ou basse consommation (Figure 1).

Figure 1 : Comme avec le précédent LSM6DSO de STMicroelectronics, le LSM6DSOX suit chaque capteur avec une chaîne de signaux dédiée et spécialisée, avec plusieurs étages de filtrage, comme indiqué ici pour le capteur du gyroscope. (Source de l'image : STMicroelectronics)

Étant donné que l'accéléromètre est requis pour bon nombre de ses fonctions intégrées, la chaîne de signaux de l'accéléromètre est considérablement améliorée dans cette architecture. Les premiers étages fournissent les fonctions de base de mise en forme et de conversion des signaux que l'on retrouve dans les capteurs les plus avancés. Par exemple, un filtre passe-bas analogique antirepliement fournit une mise en forme de base des signaux, un CAN 16 bits numérise les signaux mis en forme, puis les résultats numérisés sont transmis via un filtre passe-bas numérique. Ce dispositif se distingue des autres par son bloc de filtre composite sophistiqué qui suit ce premier étage de conversion (Figure 2).

Figure 2 : Utilisée dans l'ancien LSM6DSO de STMicroelectronics et désormais dans le détecteur de mouvement LSM6DSOX de STMicroelectronics, une chaîne de signaux d'accéléromètre étendue prend en charge la détection indépendante de l'hôte de plusieurs mouvements complexes, notamment la chute libre, l'orientation multidimensionnelle et le toucher simple/double. (Source de l'image : STMicroelectronics)

En utilisant une combinaison de blocs de traitement et de filtres, la section de filtre composite de l'accéléromètre peut détecter de manière autonome une grande variété d'événements complexes qui nécessitaient jusqu'à présent l'activation du processeur et l'exécution d'un code de détection d'événements spécialisé. Au lieu de cela, les développeurs peuvent désormais programmer des paramètres de filtre pour effectuer la détection et émettre automatiquement des interruptions pour une large gamme de mouvements complexes, notamment un toucher simple/double, une chute libre, une activité/inactivité, une orientation avec 6 degrés (6D) de liberté ou une orientation 4D généralement utilisée pour détecter le mouvement du dispositif (par exemple, lorsqu'il passe du mode portrait au mode paysage).

Les détecteurs avancés du filtre composite combinent les résultats des blocs de traitement et des filtres pour effectuer leur détection. Par exemple, la détection de toucher simple utilise le filtre de pente intégré, qui génère en continu la pente au niveau de l'échantillon de l'accéléromètre actuel, acc(tn), comme suit :

pente(tn) = [ acc(tn) - acc(tn-1) ] / 2 (Équation 1)

Pour un événement de toucher simple, la pente s'élève au-dessus d'un certain seuil et retombe rapidement par rapport à un événement de choc plus long (Figure 3). À l'aide des valeurs de seuil de toucher et de durée de la fenêtre de choc définies par le développeur, le dispositif peut détecter automatiquement l'événement de toucher simple et émettre une interruption pour le microcontrôleur hôte.

La détection de toucher double s'appuie sur cette approche, en ajoutant un paramètre supplémentaire pour spécifier le temps d'attente requis entre les deux événements de toucher simple.

Figure 3 : Les détecteurs de mouvement LSM6DSO et LSM6DSOX permettent de détecter les événements de toucher simple indépendamment de l'hôte en utilisant une fonction de pente intégrée qui présente un retour plus rapide aux niveaux de base pour un toucher simple (a) par rapport à un choc plus long (b). (Source de l'image : STMicroelectronics)

La capacité du dispositif à générer des données dérivées, comme la pente, joue un rôle central dans les fonctions plus avancées disponibles avec la machine à états finis intégrée et le cœur d'apprentissage automatique. Étant donné que la fonctionnalité FSM a été abordée dans l'article cité précédemment, le reste du présent article est axé sur le cœur d'apprentissage automatique du LSM6DSOX et son utilisation pour détecter des événements de mouvement beaucoup plus complexes, notamment des séquences de mouvements et même des activités de mouvement complexes telles que des exercices spécifiques.

Arbres de décision

Le cœur d'apprentissage automatique du LSM6DSOX offre un traitement basé sur les capteurs à un niveau dépassant largement les seuils paramétrés habituels utilisés dans de nombreux capteurs intelligents avancés. Grâce au cœur d'apprentissage automatique, les développeurs peuvent implémenter des algorithmes de détection complexes dans le dispositif, permettant ainsi une détection permanente des événements de mouvement complexes sans qu'il soit nécessaire d'activer le microcontrôleur. Ici, le cœur d'apprentissage automatique utilise des arbres de décision pour identifier un événement en fonction de schémas de données d'entrée.

Utilisés depuis des années dans les systèmes d'aide à la décision, les arbres de décision décomposent les décisions complexes en une série de sélections basées sur le test des données d'entrée, ou attributs, par rapport à des conditions prédéfinies. À partir du nœud initial, ou de la racine, la valeur d'un attribut est testée et la décision de continuer vers un nœud enfant particulier est déterminée par les résultats (Figure 4).

Figure 4 : Un arbre de décision génère un résultat à l'aide d'une séquence de nœuds qui testent chacun une valeur d'entrée pour un attribut particulier par rapport à une condition telle qu'un niveau de seuil particulier, en poursuivant avec différents nœuds enfants en fonction des résultats du test. (Source de l'image : STMicroelectronics)

Par exemple, à chaque cycle de mise à jour, l'arbre de décision et ses nœuds sont sollicités pour déterminer si les données disponibles (avec cette mise à jour) n'indiquent aucun mouvement, ou indiquent un mouvement en avant ou tout autre mouvement, comme suit :

  1. Tester l'amplitude d'une mesure d'accéléromètre
    • 1.1. Arrêter si la valeur est inférieure à une valeur prédéterminée (la condition)
    • 1.2. Sinon, passer à un nœud enfant pour tester les mesures du gyroscope effectuées dans la même fenêtre de temps
      • 1.2.1. Arrêter si les mesures du gyroscope sont inférieures à une valeur prédéterminée, ou
      • 1.2.2. Passer à un nœud enfant plus profond pour tester d'autres attributs mesurés dans la même fenêtre de temps ou tester le même attribut par rapport à une autre condition

Ce processus se répète jusqu'à ce que le test atteigne un nœud terminal qui, dans ce contexte, correspond à un événement de mouvement complexe particulier ou à une classe de mouvement. Dans cet exemple simple :

  • Le nœud terminal 1.1 peut indiquer que les données, ou ensemble de fonctionnalités, doivent être classés comme « aucun mouvement »
  • Le nœud terminal 1.2.1 peut indiquer que l'ensemble de fonctionnalités doit être classé comme « mouvement en avant »
  • Les nœuds terminaux situés sous le nœud 1.2.2 peuvent indiquer un virage ou un changement d'orientation plus complexe

Bien entendu, les ensembles de problèmes réels qui nécessitent l'utilisation d'arbres de décision sont beaucoup plus complexes et impliquent de grands ensembles de fonctionnalités comprenant de nombreux attributs et conditions. En fait, le LSM6DSOX fournit aux développeurs un large éventail de fonctionnalités possibles, à commencer par les données de capteur provenant de l'accéléromètre, du gyroscope et de tout capteur externe relié au concentrateur de capteurs (Figure 5).

Figure 5 : Le cœur d'apprentissage automatique unique intégré au LSM6DSOX de STMicroelectronics utilise des données de capteurs primaires, des données filtrées et des paramètres dérivés, tels que la moyenne et la variance, comme entrées de l'un des huit arbres de décision pris en charge par le dispositif. (Source de l'image : STMicroelectronics)

À partir de ces données de capteurs primaires, le dispositif génère un grand nombre de fonctionnalités calculées dans une fenêtre de temps variable, notamment :

  • Norme V = Ö( x2 + y2 + z2) et V2
  • Moyenne
  • Variance
  • Énergie
  • Crête à crête
  • Passage par zéro
  • Passage par zéro positif
  • Passage par zéro négatif
  • Détecteur de crête
  • Détecteur de crête positive
  • Détecteur de crête négative
  • Minimum
  • Maximum

Pour certaines fonctionnalités, telles que les détecteurs de passage par zéro et les détecteurs de crête, le développeur spécifie également une valeur de seuil pour décaler l'axe de passage à zéro ou le seuil de crête, respectivement.

Processus d'apprentissage supervisé

L'utilisation de ces fonctionnalités pour implémenter un arbre de décision avec le cœur d'apprentissage automatique du LSM6DSOX suit un processus d'apprentissage supervisé typique, commun à la plupart des efforts de développement de modèles d'apprentissage automatique. En général, ce processus commence par l'identification des activités d'intérêt et la collecte d'échantillons de données associés à ces activités.

Dans ce cas, les développeurs utilisent simplement le LSM6DSOX pour recueillir des données lors de l'exécution de l'ensemble d'activités de mouvement particulier que l'application finale devra détecter. Pour cette phase de développement, les développeurs peuvent créer une plateforme d'acquisition de données à l'aide de cartes et de logiciels de STMicroelectronics. Pour la plateforme matérielle, les développeurs n'ont qu'à brancher la carte d'adaptation LSM6DSOX STEVAL-MKI197V1 à la carte mère d'évaluation STEVAL-MKI109V3. Côté logiciel, les développeurs peuvent utiliser l'outil logiciel gratuit Unico de STMicroelectronics, disponible pour Windows, Mac OSX et Linux.

Conçu pour fonctionner avec la carte mère STEVAL-MKI109V3, Unico fournit une méthode simple pour collecter les données générées par le LSM6DSOX. Pour la collecte de données, les développeurs utilisent la carte mère et Unico ensemble. Il suffit au développeur ou à un assistant d'utiliser la carte mère tout en effectuant de manière répétitive l'une des activités de mouvement spécifiques qui présentent un intérêt, en utilisant Unico pour recueillir des données de mouvement LSM6DSOX.

Les données collectées à partir du LSM6DSOX au cours de plusieurs répétitions d'une même activité constituent l'ensemble de formation pour la classe correspondante (comme le « mouvement en avant » dans notre exemple précédent). Étant donné que les données collectées au cours de ce mouvement correspondent toutes à cette même classe, cette approche active de la collecte de données élimine la nécessité d'une phase d'étiquetage de données distincte pouvant parfois retarder les processus d'apprentissage supervisés.

Une fois les données de mouvement collectées pour chaque classe de mouvement qui présente un intérêt, les développeurs utilisent Unico pour examiner les données et le libellé de la classe. Au-delà de son utilisation pour la révision des données, Unico permet aux développeurs de configurer plusieurs aspects de l'arbre de décision souhaité, de définir des filtres, de définir la durée de la fenêtre de temps et de sélectionner les fonctionnalités spécifiques à utiliser pour créer l'arbre de décision.

En pratique, les développeurs limitent généralement les fonctionnalités utilisées pour détecter un ensemble d'activités particulier au plus petit nombre possible, en fonction de l'expérience et des expérimentations. Même avec un ensemble minimal de fonctionnalités, l'implémentation efficace d'un arbre de décision dépend essentiellement de la détermination des fonctionnalités, ou attributs, à tester sur chaque nœud de l'arbre de décision. Le choix du « meilleur » attribut à tester sur chaque nœud est important pour réduire la taille de l'arbre de décision, ce qui est particulièrement important pour un dispositif limité en ressources, tel qu'un capteur.

Note au lecteur : à l'heure actuelle, vous vous interrogez peut-être sur l'utilisation des fonctionnalités et des attributs. La difficulté est que nous parlons de « fonctionnalités » pour les modèles d'apprentissage automatique, mais d'« attributs » dans l'arbre de décision. Nous avons essayé de nous en tenir à l'un ou l'autre dans une section, mais ici nous passons de « fonctionnalité » à « attribut » pour aborder l'arbre de décision. Vous remarquerez sans doute d'autres cas où les deux termes sont utilisés de manière interchangeable, mais ici et plus tard dans la section « arff », nous parlerons d'« attribut ».

Bien que le concept soit simple, la sélection du meilleur attribut à utiliser sur chaque nœud de décision peut ne pas être intuitive pour les arbres de décision comportant un grand nombre d'attributs, chacun étant représenté par un large éventail de valeurs de données. L'approche privilégiée pour trouver le meilleur attribut à tester sur chaque nœud nécessite de calculer l'entropie de Shannon de chaque attribut sur ce nœud en utilisant l'Équation 2 :

entropie(p1,p2,...,pn) = - p1log2(p1) - p2log2(p2)... - pnlog2(pn) (Équation 2)

La probabilité pn représente chacune des n classes possibles associées à cet attribut.

Le résultat est le contenu des informations, présenté en bits, dont la valeur va de 0 à 1, plutôt que de se limiter à 0 ou 1, conformément à la définition plus familière des bits.

Le « gain » d'informations de chaque attribut devient alors la différence entre cette valeur d'information et la valeur d'information de référence calculée pour l'attribut en fonction d'une probabilité de décision correcte qui serait prise sans utiliser le nœud de décision. Bien que l'analyse détaillée de ce calcul dépasse le cadre de cet article, une interprétation intuitive implique de déterminer quelle approche offrira probablement le résultat souhaité de manière plus efficace : un résultat basé sur une coupe ascendante à force brute dans l'ensemble de données en fonction des valeurs de cet attribut (la « référence »), ou un résultat basé sur une sélection descendante basée sur des plages de valeurs spécifiques pour cet attribut. La sélection descendante utilise une approche « diviser pour régner » qui réduit généralement le nombre de résultats possibles plus rapidement que l'approche ascendante.

Déploiement rapide

Heureusement, les développeurs ont rarement besoin de se soucier des détails du gain d'informations et de l'optimisation de la sélection des attributs. Au lieu de cela, ils peuvent utiliser des outils d'apprentissage automatique tiers disponibles gratuitement, tels que Weka, qui gèrent automatiquement les calculs nécessaires pour générer des arbres de décision optimaux.

En fait, Unico et Weka collaborent étroitement pour fournir un processus permettant une implémentation rapide des arbres de décision. En règle générale, les étapes critiques d'un processus de développement d'arbre de décision spécifique reposent sur les étapes de collecte de données mentionnées précédemment, notamment l'utilisation du LSM6DSOX pour recueillir des ensembles de données représentatifs pour chaque classe d'activité concernée, ainsi que l'utilisation d'Unico pour affiner ces ensembles de données et définir la configuration de l'arbre de décision. Une fois ces opérations terminées, ces deux outils s'associent pour accélérer les dernières étapes du processus.

Après avoir affiné les données et défini la configuration de l'arbre de décision dans Unico, les développeurs utilisent l'outil pour convertir l'ensemble de fonctionnalités sélectionné dans un format standard appelé format de fichier de rapport entre attributs (arff). Un fichier arff inclut une section d'en-tête qui répertorie les attributs sélectionnés (fonctionnalités) et les classes possibles, ainsi qu'une section de données qui répertorie chaque ensemble de données collectées et la classe associée (Liste 1). Dans cet exemple, seules quelques fonctionnalités sont utilisées et seul un petit ensemble d'instances de données est utilisé pour identifier un ensemble limité de classes, notamment bicep curls (flexions des bras), lateral raises (élévations latérales) et squats (accroupissements).

Liste 1 : Le fichier arff standard inclut une section d'en-tête qui définit les attributs et les classes, ainsi qu'une section de données contenant les instances de données pour chaque attribut et la classe associée. (Source des données : STMicroelectronics)

À l'aide de Weka, les développeurs chargent le fichier arff dans la fenêtre « Preprocess » (prétraiter) et visualisent un résumé graphique de l'ensemble des fonctionnalités (Figure 6).

Figure 6 : Après avoir utilisé l'outil Unico de STMicroelectronics pour générer un fichier arff pour leur ensemble de données, les développeurs peuvent utiliser Weka, un outil tiers d'apprentissage automatique, pour afficher l'intégralité de l'ensemble de données, présenté ici pour les données arff de la Liste 1. (Source de l'image : DigiKey Electronics)

Pour créer l'arbre de décision, les développeurs basculent vers la fenêtre « Classify » (classer) de Weka, choisissent le classificateur Weka J48 (classificateur de l'arbre de décision de Weka), puis cliquent sur le bouton de démarrage. Dans sa fenêtre de sortie, le classificateur résume les données d'entrée et fournit l'arbre de décision à la fois sous forme graphique (Figure 7) et sous forme textuelle (Figure 8).

Figure 7 : Pour créer un arbre de décision, les développeurs chargent simplement un fichier arff, sélectionnent le classificateur d'arbre de décision Weka J48 et génèrent l'arbre final. L'outil de visualisation Weka intégré est utilisé pour afficher le résultat avec les attributs et les conditions répertoriés pour chaque nœud (dans cet exemple, les données arff de la Liste 1 ont été utilisées). (Source de l'image : DigiKey Electronics)

Figure 8 : Parallèlement à l'affichage visuel de l'arbre de décision, Weka génère la spécification de l'arbre de décision J48 (dans cet exemple, les données arff de la Liste 1 ont été utilisées pour générer la spécification J48 illustrée par la Liste 2). (Source de l'image : DigiKey Electronics)

Dans cet exemple, la spécification d'arbre de décision J48 générée ne nécessite que quelques lignes (Liste 2).

Liste 2 : Weka génère une spécification d'arbre de décision J48 comme celle-ci qui est basée sur les données arff de la Liste 1. Les développeurs chargent cette spécification dans l'outil Unico de STMicroelectronics pour générer un fichier de configuration et le charger dans le capteur LSM6DSOX de STMicroelectronics. (Source des données : STMicroelectronics)

Après avoir copié et enregistré le texte de l'arbre J48 dans un fichier, les développeurs chargent ce fichier texte dans Unico pour générer un fichier de configuration de registre. Enfin, les développeurs terminent le processus en utilisant l'onglet de chargement/d'enregistrement d'Unico pour charger ce fichier de configuration dans le LSM6DSOX. À ce stade, les développeurs peuvent effectuer les mouvements pris en charge tout en utilisant la carte mère STEVAL-MKI109V3 comme décrit précédemment. Ainsi, Unico lit le résultat de la classification de l'arbre de décision à partir du registre de sortie LSM6DSOX pour l'arbre de décision configuré.

Dans une conception personnalisée, les développeurs peuvent modifier un registre de sortie de l'arbre de décision pour indiquer au microcontrôleur de s'activer et d'exécuter du code afin d'alerter l'utilisateur, d'incrémenter un compteur d'exercices ou d'effectuer toute autre opération adaptée de niveau supérieur, requise par une application.

Bien que cet exemple soit simplifié à l'extrême, le cœur d'apprentissage automatique du LSM6DSOX peut prendre en charge la classification d'événements de mouvement considérablement plus complexes en utilisant davantage de fonctionnalités parmi celles mentionnées précédemment. Par exemple, STMicroelectronics décrit une version plus avancée de cette application simple, qui utilise beaucoup plus de fonctionnalités pour classer des activités de gymnastique dans une gamme plus large d'exercices comprenant des flexions des bras, des sauts avec écart, des élévations latérales, des pompes et des accroupissements.

Outre les caractéristiques de moyenne et de données crête à crête utilisées dans l'exemple simple, l'exemple complexe ajoute des fonctionnalités de variance, de minimum/maximum et de passage par zéro calculées pour une fenêtre temporelle de deux secondes. Exécutée dans le cœur d'apprentissage automatique du LSM6DSOX, cette application plus sophistiquée entraîne une consommation de courant d'environ 569 µA (à 1,8 V), dont seulement 13 µA environ sont dus à la consommation de courant par le cœur d'apprentissage automatique lui-même. À ce niveau de consommation énergétique, les développeurs peuvent implémenter en toute confiance une détection de mouvement permanente qui n'aura qu'un faible impact sur l'état de charge de la batterie.

Avertissement concernant l'apprentissage automatique

Les applications réelles d'apprentissage automatique dépendent de processus d'apprentissage supervisés qui influent inévitablement sur le modèle final d'apprentissage automatique, qu'il s'agisse d'un réseau neuronal à convolution très complexe ou d'un arbre de décision relativement simple. Les données basées sur le mouvement, en particulier, dépendent tellement de la morphologie physique et de la kinésiologie que les données collectées auprès d'un individu exerçant une activité peuvent être sensiblement différentes de celles d'un autre individu.

Par conséquent, les développeurs qui utilisent la détection d'activité basée sur l'apprentissage automatique doivent constamment trouver l'équilibre parfait entre la spécificité et la généralité des données. Trop de spécificité limite généralement la généralité, tandis que trop de généralité nuit généralement à la détection précise des variations uniques d'un même mouvement effectué par différents individus. Bien que ces problèmes ne soient pas propres à cette implémentation spécifique, le défi de trouver cet équilibre dans les dispositifs de détection de mouvement personnalisés peut suggérer le besoin d'arbres de décision pouvant être mis à jour avec des données spécifiques à l'utilisateur. Toutefois, en prêtant une attention particulière à ces exigences générales en science des données d'apprentissage automatique, les développeurs peuvent déjà utiliser le LSM6DSOX et le processus existant pour intégrer une détection de mouvement sophistiquée et permanente dans les conceptions soumises à des contraintes de puissance.

Conclusion

La demande liée au suivi du mouvement permanent et à la durée de vie prolongée de la batterie a créé un conflit apparemment insurmontable pour les développeurs de dispositifs de fitness et d'autres petits dispositifs corporels. Bien que de nombreux capteurs avancés puissent fournir un certain degré de détection de mouvement indépendamment du processeur, le désir de prendre en charge la détection permanente de mouvements plus complexes exclut cette approche dans les applications émergentes.

En utilisant les capacités d'apprentissage automatique du détecteur de mouvement LSM6DSOX de STMicroelectronics, les développeurs peuvent toutefois résoudre ce conflit entre le suivi permanent et la durée de vie prolongée de la batterie afin de créer des bracelets de fitness plus évolués pour suivre l'activité, ainsi que d'autres dispositifs corporels.

DigiKey logo

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.

À propos de l'auteur

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk affiche plus de 20 ans d'expérience dans la rédaction de contenu pour et sur l'industrie électronique, couvrant un large éventail de sujets, notamment le matériel, les logiciels, les systèmes et les applications, y compris l'IoT. Il a obtenu son doctorat (Ph.D.) en neurosciences sur les réseaux neuronaux et a travaillé dans l'industrie aérospatiale sur les systèmes sécurisés massivement distribués et les méthodes d'accélération par algorithmes. Actuellement, lorsqu'il n'écrit pas d'articles techniques, il travaille sur l'application de l'apprentissage approfondi pour les systèmes de reconnaissance et de recommandation.

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey