Un, Deux, Trois, Beaucoup!
J’ai publié récemment un papier à la Conférence Européenne 2018 sur l’Intelligence Ambiante (European Conference on Ambient Intelligence) présentant une méthode pour compter le nombre de personnes dans un environnent intelligent (Smart Home) à l’aide de capteurs pervasifs1. Le papier s’intitule: Online Guest Detection in a Smart Home using Pervasive Sensors and Probabilistic Reasoning Le papier est disponible ici ! Faites-vous plaisir !

Une Smart-quoi ? Perva-quoi ?

Même si je suis quasiment certaine que la plupart de ceux qui liront ces lignes (si ce n’est tous) a une bonne idée de ce qu’est une Smart Home2, la notion de capteurs pervasifs est surement plus obscure. Mettons donc tout ça au clair afin qu’on soit tous à la même page. Une Smart Home est un environnement (maison ou appartement généralement) équipé de divers Capteurs Pervasifs. Le terme de “Capteur Pervasif” décrit une certaine catégorie de capteurs à transmission sans fil, de type pose-le-là-et-oublie-le. Ce sont des capteurs de pression, de mouvement, d’humidité, de lumière… Bref, vous avez saisi l’idée: ce sont des capteurs qui mesurent des caractéristiques de l’environnement. Pris individuellement, ces capteurs donne une mesure simple qui peut être utilisée pour la domotique, comme allumer la lampe si la luminosité baisse, augmenter le chauffage s’il fait froid… En revanche, il est possible de fusionner les informations provenant de différent capteurs afin d’inférer de l’information de plus haut niveau, comme le fait que vous soyez en train de prendre une douche ou de dormir. Flippant vis-à-vis de la vie privée? Un peu, mais on en reparlera plus tard. N’oublions pas non plus que la même technologie peut-être utilisée pour détecter si vous êtes tombé·e et appeler à l’aide ou vous offrir des services personnalisés en fonction de votre activité. C’est particulièrement intéressant quand on considère l’aide aux personnes âgées ou en situation de handicap. Enfin, dans une Smart Home, on peut avoir autre chose que des capteurs pervasifs : on peut avoir des caméras (une système d’alarme par exemple) ou des micro (genre Alexa ou Google Home). Ce genre de capteur n’est pas considéré ici : on s’est basé uniquement sur des capteurs pervasifs.

Ok, mais pourquoi a-t-on besoin de compter ?

Beaucoup d’applications en cours de développement font de la reconnaissance d’activité ou de contexte.  La reconnaissance d’activité est, comme son nom l’indique, reconnaître ce que vous êtes en train de faire (dormir, manger, faire du sport…). La reconnaissance de contexte est plus haut niveau puisqu’elle utilise la reconnaissance d’activité ainsi que d’autres information (provenant des capteurs, mais pas que) afin de reconnaître des situation, comme par exemple un risque d’incendie (si vous êtes en train de dormir et que votre four est resté allumé) ou un manque d’activité physique (si vous n’avez pas bougé de votre lit depuis plusieurs jours. C’est particulièrement important pour les personnes âgées). En revanche, la plupart de ces systèmes est basée sur une hypothèse importante : le nombre de personnes dans l’environnement est connu à chaque instant. Ça peut être 1 ou 2 personnes (rarement plus avec les systèmes actuels) mais il est connu. Si vous recevez des amis, le système ne sait plus qui est en train d’activer quel capteur et ne peut plus fonctionner. C’est pourquoi savoir combien de personnes sont dans l’environnement (c.à.d. compter) est important.

Ok, j’ai compris. Donc on fait comment ?

Pour compter le nombre de personne dans une Smart Home, on s’est basé sur trois hypothèses 3 Notre première hypothèse est que le don d’ubiquité est super rare et qu’une personne ne peut pas être à deux endroits en même temps4. Du coup, si deux capteurs s’activent en même temps à deux endroits différents, cela signifie qu’il y a deux personnes. Vraiment? Oui, enfin… presque. Regardez le plan de l’appartement ci-dessous ainsi que les capteurs qui y sont présents : Que pensez-vous qu’il va se passer si quelqu’un s’assoit sur une chaise du salon et joue à un jeu de société? Bingo : le capteur de distance sur la chaise et le capteur de mouvement dans le salon vont certainement s’activer en même temps. Dans ce cas, on dit que les capteurs sont connectés. Ok, donc changeons un peu notre contrainte : puisque notre sujet n’a toujours pas le don d’ubiquité, si deux capteurs déconnectés sont activés en même temps, cela signifie que deux personnes sont présentes. Ok, on est bon. Maintenant, le problème, c’est qu’aucun capteur n’est parfait et que des erreurs de détection peuvent toujours arriver (parfois le capteur va s’activer sans raison et parfois il ne va pas s’activer alors qu’il devrait). Pour gérer ça, on utilise du Raisonnement Probabiliste, plus précisément des MMC (Modèles de Markov Cachés). Je ferai un article plus détaillé sur les MMC, mais pour le moment disons que c’est un modèle spécialisé dans le raisonnement et la détection de patterns temporels. C’est pourquoi ils sont très utiles ici : ils peuvent utiliser des informations anciennes afin de raisonner sur la situation courante ! Et des informations courantes pour raisonner sur les situations passées. Et c’est là où nos deux autre hypothèses entrent en scène5. Notre deuxième hypothèse est que le don de téléportation est aussi rare que celui d’ubiquité6. La dernière hypothèse est qu’il n’y a qu’un seul point d’entrée dans l’environnement, c’est à dire un seul endroit à partir duquel une personne peut entrer et sortir de l’environnement. C’est une hypothèse assez raisonnable si on considère un appartement où il n’y a en général qu’une porte d’entrée, mais c’est un peu plus contraignant pour une maison avec sortie sur jardin. C’est là une des limitations de notre système. Donc, pour clarifier tout ça : disons qu’à un instant t1, le capteur de mouvement du salon et celui de la salle de bain sont activés. Selon notre première hypothèse, cela signifie qu’il y a deux personnes dans l’environnement. À l’instant suivant t2, seul le capteur de mouvement du salon est activé. Sachant qu’il n’est pas possible pour quelqu’un de sortir de l’appartement ou d’être allé dans la salle le salon sans avoir activé l’un des capteurs de l’entrée, c’est ce qu’on appelle une incohérence et le système considère qu’il y a toujours deux personnes dans l’appartement. En revanche, si le temps passe et qu’il n’y a toujours qu’un capteur d’activé, on considèrera qu’on a raté le moment où la personne est sortie de l’appartement et qu’il n’y a finalement qu’une seule personne. La figure suivante présente l’architecture générale de notre travail : Pas de panique, ça ne fait que résumer ce que j’ai expliqué. Donc, la première partie de notre framework prend la configuration des capteurs dans l’environnement et construit ce qu’on a appelé un graphe de co-activation (c’est à dire les capteurs connectés/déconnectés) dont on a parlé précédemment. Ensuite, ce graphe est traduit en un ensemble de contraintes qui sont utilisées par un module appelé un Solveur de Problème de Satisfaction de Contraintes (Constraint Satisfaction Problem Solver). En gros, il prend l’ensemble des contraintes ainsi que les données provenant des capteurs (c’est à dire quels capteurs sont activés à chaque instant) et essaye de trouver une solution (ici le nombre de personnes dans l’environnement) afin que toutes les contraintes soient satisfaites. Cela génère une série d’observations (ici, combien de personnes on a estimé dans l’environnement à chaque instant), que le raisonneur probabiliste (le MMC) utilise pour résoudre les incohérences.

Et ça marche ?

Pas trop mal. Par exemple on est capable de détecter entre 1 personne et plus avec une précision de presque 95%. C’est déjà bien utile pour détecter si l’occupant·e reçoit des invité·e·s ! On peut aussi faire la différence entre 1, 2 personnes ou plus. Enfin, on peut compter jusqu’à 4 avec une précision raisonnable. Après 4, ça se dégrade. Bien sûr, il y a de quoi améliorer, mais sachant que ce travail est, à notre connaissance7, le premier à permettre de compter le nombre d’habitants d’un environnement avec uniquement des capteurs pervasifs, c’est déjà pas mal.

Du coup, qu’est-ce qu’il y a à améliorer ?

Comme je l’ai déjà mentionné, il y a l’hypothèse d’un unique point d’entrée qui est plutôt forte à partir du moment où on considère des maisons. Du coup, il faudrait tenter de s’en débarrasser. Après, évidemment, il faut que l’on étudie l’impact de la distribution des capteurs dans l’environnement afin de voir de quelle façon cela affecte les performances du système. On a déjà pu voir par nos expériences que ces performances dépendent très fortement d’où l’on place les capteurs et combien de capteurs on considère, mais ça serait sympa d’avoir plus d’infos. Enfin, améliorer la précision du comptage serait bien, mais j’avoue que pour l’instant je n’ai pas la moindre idée de comment…

Et le papier ?

Le papier est disponible ici ! Faites-vous plaisir !
  1. Je préfère ici françiser le terme anglais “pervasive” plutôt que d’utiliser la traduction en français (i.e. envahissant ou omniprésent) qui sont connotés assez négativement
  2. Oui, je risque d’angliciser et de françiser pas mal dans cet article et à l’avenir, mais certains termes techniques anglais n’existent tout simplement pas en français. Toutes mes confuses.
  3. Habituez-vous à cette phrase… La plupart des papiers d’IA se basent sur des hypothèses et c’est très important de les expliciter clairement
  4. Pour ceux et celles d’entre vous qui sont suffisamment chanceux.se pour être doté·e·s du don d’ubiquité, soyez sympas et ne l’utilisez pas pendant que vous testez notre système
  5. Vous ne croyiez quand même pas que je les avais oubliées !
  6. Une fois de plus, pour les chanceux.ses qui possèdent ce don, prière de ne pas l’utiliser pendant les test
  7. Habituez-vous à cette phrase aussi. Sachant qu’il n’est quasiment jamais possible d’affirmer que l’on a lu toute la littérature sur un sujet, on prend des précaution et on précise que notre argument ne tient que si on n’a rien loupé
0 réponses

Répondre

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.