FR 3096475 A1 20201127 FR 1905293 A 20190521 Description Titre de l'invention : PROCEDE D'APPRENTISSAGE POUR LA DETECTION D'ANOMALIES IlVIPLEMENTE SUR UN MICRO- CONTROLEUR ET PROCEDE DE DETECTION D'ANOMALIES ASSOCIE Domaine technique [0001] Le domaine technique de l'invention est celui des procédés de détection d'anomalies et plus particulièrement celui des procédés de détection d'anomalies implémentés sur un microcontrôleur. [0002] La présente invention concerne un procédé d'apprentissage pour la détection d'anomalies et en particulier un procédé d'apprentissage pour la détection d'anomalies implémenté sur un microcontrôleur. La présente invention concerne également un procédé de détection d'anomalies. ARRIERE-PLAN TECHNOLOGIQUE DE L'INVENTION [0003] Les algorithmes de détection d'anomalies utilisent classiquement des techniques de deep learning comme les réseaux de neurones, permettant d'obtenir des taux de détection élevés. De telles techniques nécessitent l'utilisation de processeurs puissants et d'une quantité importante de ressources mémoire pour être fonctionnelles. [0004] Ainsi, ces techniques sont incompatibles avec une implémentation sur micro- contrôleur contraint en termes de ressources mémoire mais ayant un haut degré d'intégration grâce à ses dimensions réduites. [0005] Tl existe donc un besoin de concevoir un algorithme de détection d'anomalies permettant d'obtenir des taux de détection comparables à ceux obtenus avec les techniques de deep lemming, implémenté sur un microcontrôleur pouvant être embarqué sur n'importe quel système quel que soit son environnement. Résumé de l'invention 100061 L'invention offre une solution aux problèmes évoqués précédemment, en permettant de détecter des anomalies grâce à un algorithme implémenté sur un microcontrôleur ayant une haute capacité d'intégration. 100071 Un premier aspect de l'invention concerne un procédé d'apprentissage pour la détection d'anomalies implémenté sur un microcontrôleur comportant au moins une mémoire, le microcontrôleur étant configuré pour recevoir des jeux de données en provenance d'au moins un capteur, la mémoire étant configurée pour stocker un nombre maximal de catégories, une catégorie comportant au moins une signature et une occurrence, le procédé étant caractérisé en cc qu'il comporte les étapes suivantes : 2 Tant qu'un taux d'avancement est inférieur à un seuil d'avancement, pour chaque jeu de données d'un ensemble de jeux de données : - Stockage du jeu de donnée dans la mémoire ; - Calcul d'une signature du jeu de données ; - S'il existe au moins une catégorie stockée dans la mémoire : Calcul d'une mesure de similitude entre la signature du jeu de données et la signature de chaque catégorie et sélection de la mesure de similitude maximale : Si la mesure de similitude maximale répond à une condition de mise à jour, mise à jour de la catégorie correspondante à partir du jeu de données ; Sinon : - Si le nombre de catégories stockées dans la mémoire est inférieur à un nombre maximal de catégories, création d'une catégorie à partir du jeu de données dans la mémoire ; - Sinon, sélection de la catégorie ayant une occurrence minimale ; Si l'occurrence minimale répond à une condition d'occurrence, suppression de la catégorie correspondante et création d'une catégorie à partir du jeu de données dans la mémoire ; Sinon, sélection des deux catégories dont les signatures ont une mesure de similitude maximale, création d'une unique catégorie par fusion des deux catégories sélectionnées et création d'une catégorie à partir du jeu de données dans la mémoire ; S'il n'existe aucune catégorie, création d'une catégorie à partir du jeu de données dans la mémoire ; Suppression du jeu de données de la mémoire et mise à jour du taux d'avancement. [0008] Grâce à l'invention, chaque jeu de données délivré par le capteur pendant l'apprentissage est affecté à une catégorie représentative de jeux de données similaires ou à une nouvelle catégorie, sans dépasser le nombre maximal de catégories correspondant au maximum de ressources mémoire allouables aux catégories dans la mémoire du microcontrôleur. [0009] Outre les caractéristiques qui viennent d'être évoquées dans le paragraphe précédent, le procédé selon un premier aspect de l'invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles. [0010] Selon une alternative de réalisation, la sous-étape de mise à jour d'une catégorie 3 comporte une étape de mise à jour de la signature de la catégorie à partir de la signature du jeu de données et d' incrémentation de l'occurrence de la catégorie. [0011] Ainsi, la catégorie la plus proche du jeu de données est mise à jour pour prendre en compte les caractéristiques du jeu de données. [0012] Selon une alternative de réalisation compatible avec l'alternative de réalisation précédente, la sous-étape de création d'une catégorie comporte une étape d'affectation de la signature du jeu de données à la signature de l'unique catégorie et d'affection d'une occurrence de 1 à la catégorie. [0013] Ainsi, les caractéristiques de la nouvelle catégorie sont celles du jeu de données. [0014] Selon une alternative de réalisation compatible avec les alternatives de réalisation précédentes, la sous-étape de création d'une unique catégorie par fusion comporte une étape d'affectation du barycentre des signatures des deux catégories à fusionner à la signature de l'unique catégorie et d'affection de la somme des occurrences des deux catégories à fusionner à l'occurrence de l'unique catégorie. [0015] Ainsi, les caractéristiques de l'unique catégorie prennent en compte les caracté- ristiques des deux catégories fusionnées. [0016] Un deuxième aspect de l'invention concerne un procédé de détection d'anomalies implémenté sur un microcontrôleur comportant au moins une mémoire, le micro-contrôleur étant configure pour recevoir des jeux de données en provenance d'au moins un capteur, la mémoire étant configurée pour stocker un nombre maximal de catégories, une catégorie comportant au moins une signature et une occurrence, le procédé étant caractérisé en ce qu'il comporte les étapes du procédé d'apprentissage selon un premier aspect de l'invention suivies des étapes suivantes : Pour chaque jeu de données reçu : - Stockage du jeu de données dans la mémoire ; - Calcul de la signature du jeu de données ; - Sélection de la catégorie d'occurrence maximale et calcul de la mesure de similitude entre la signature du jeu de données et la signature de la catégorie sélectionnée : Si la mesure de similitude répond à une condition de normalité, suppression du jeu de données de la mémoire ; Sinon, s'il reste des catégories pour lesquelles aucune mesure de similitude n'a été calculée avec la signature du jeu de données et que les mesures de similitude précédemment calculées ne répondent pas à la condition de normalité : - Sélection de la catégorie ayant une occurrence égale ou immédiatement inférieure à l'occurrence de la catégorie dont la signature a été utilisée pour calculer la mesure de similitude précédente et calcul de la mesure de similitude entre la signature du jeu de données et la signature de la catégorie sélectionnée ; - Si la mesure de similitude répond à la condition de normalité, suppression du jeu de données de la mémoire ; Si aucune des mesures de similitude précédemment calculées ne répond à la condition de normalité, détection d'une anomalie et suppression du jeu de données de la mémoire. [0017] Ainsi, le procédé de détection d'anomalies selon un deuxième aspect de l'invention utilise les catégories créées lors du procédé d'apprentissage selon un premier aspect de l'invention pour détecter efficacement les anomalies en stoppant les calculs dès que le jeu de données étudié peut être considéré comme non anormal, ce qui limite la quantité de ressources mémoire utilisées pour les calculs dans la mémoire du microcontrôleur. [0018] Selon une alternative de réalisation, l'étape de détection d'une anomalie comporte une sous-étape de déclenchement d'une alarme. [0019] Selon une alternative de réalisation compatible avec l'alternative de réalisation précédente, l'étape de détection d'une anomalie comporte une sous-étape d'envoi d'un message d'alerte. [0020] Selon une alternative de réalisation compatible avec les alternatives de réalisation précédentes, le procédé selon un deuxième aspect de l'invention comporte à nouveau les étapes du procédé d'apprentissage selon un premier aspect de l'invention. [0021] Ainsi, si l'environnement du dispositif sur lequel la détection d'anomalies est effectuée a changé, il est possible de réaliser une nouvelle phase d'apprentissage. [0022] Un troisième aspect de l'invention concerne un microcontrôleur implémentant les étapes du procédé d'apprentissage selon un premier aspect de l'invention et/ou les étapes du procédé de détection d'anomalies selon un deuxième aspect de l'invention, comportant un processeur et une mémoire et recevant des jeux de données en provenance d'au moins un capteur. [0023] Selon un mode de réalisation, le capteur est connecté au microcontrôleur via un bus de données série. [0024] Selon un autre mode de réalisation, le capteur est connecté au microcontrôleur via une connexion filaire ou non filaire. [0025] Un quatrième aspect de l'invention concerne un produit-programme d'ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en oeuvre les étapes du procédé d'apprentissage selon un premier aspect. de l'invention et/ou les étapes du procédé de détection d'anomalies selon un deuxième aspect. de l'invention [0026] L'invention et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. Brève description des dessins [0027] Les figures sont présentées à titre indicatif et nullement limitatif de l'invention. La figure 1 montre un schéma synoptique d'un procédé d'apprentissage selon un premier aspect de l'invention. La figure 2 montre un schéma synoptique d'un procédé de détection d'anomalies selon un deuxième aspect dc l'invention. La figure 3 montre une représentation schématique d'un microcontrôleur selon un troisième aspect de l'invention. Description des modes de réalisation [0028] Sauf précision contraire, un même élément apparaissant sur des figures différentes présente une référence unique. [0029] Un premier aspect de l'invention concerne un procédé d'apprentissage pour la détection d'anomalies implémenté sur un microcontrôleur recevant des jeux de données en provenance d'au moins un capteur. [0030] Un deuxième aspect de l'invention concerne un procédé de détection d'anomalies comportant le procédé d'apprentissage selon un premier aspect de l'invention implémenté sur un microcontrôleur recevant des jeux de données en provenance d'au moins un capteur. 100311 Un même microcontrôleur peut être utilisé pour implémenter le procédé d'apprentissage selon un premier aspect de l'invention et le procédé de détection selon un deuxième aspect de l'invention. 100321 On entend par « détection d'anomalies », l'identification de données particulières qui diffèrent de manière significative de la majorité des autres données. 100331 La détection d'anomalies est par exemple utilisée pour la supervision de machines in- dustrielles dans le cadre de la maintenance prédictive, pour la détection de surconsommations énergétiques dans un foyer ou encore pour détecter un intrus dans une pièce. 100341 I fig.31 La figure 3 montre une représentation schématique d'un microcontrôleur 200 selon un deuxième aspect de l'invention. 100351 Un microcontrôleur 200 est un circuit intégré comportant un microprocesseur 202 et au moins une mémoire 201. Sur la figure 3, le microcontrôleur 200 comporte une unique mémoire 201. 6 [0036] Le microprocesseur 202 a par exemple une fréquence supérieure à 2 MHz. Le micro- processeur 202 est par exemple un microprocesseur de 50 MHz. [0037] La mémoire 201 a des capacités de stockage lui permettant de stocker un nombre fini de catégories et un unique jeu de données. Le nombre de catégories que peut stocker la mémoire 201 dépend donc des capacités de stockage de la mémoire 201 mais aussi de la taille du jeu de données étudié. [0038] Une catégorie comporte une signature, au moins une signature d'un jeu de données et une occurrence. L'occurrence correspond au nombre de signatures de jeu de donnée stockées dans la catégorie. [0039] On entend par « signature », un élément représentatif. La signature d'une catégorie est donc un élément représentatif de cette catégorie. [0040] Une signature est une distribution statistique discrète. Ainsi, la signature d'un jeu de données est une distribution statistique discrète appliquée aux données du jeu de données et la signature d'une catégorie est une distribution statistique discrète appliquée aux signatures des jeux de données stockées dans la catégorie. [0041] La distribution statistique discrète pour un jeu de données peut être différente de la distribution statistique discrète pour une catégorie. [0042] La signature d'une catégorie est par exemple la moyenne, la médiane, la variance, le maximum, le minimum ou encore le taux de corrélation des signatures des jeux de données stockées dans la catégorie. [0043] La mémoire 201 a par exemple une mémoire vive d'au moins 2 kilooctets. La mémoire 201 a par exemple une mémoire vive de 32 kilooctets et peut alors stocker 32 catégories au maximum, le nombre de catégories pouvant être stockées dépendant de la taille du jeu de données étudié. [0044] Le microcontrôleur 200 reçoit des données en provenance d'au moins un capteur 203. Sur la figure 3, le microcontrôleur 200 reçoit des jeux de données en provenance d'un unique capteur 203. [0045] Selon un premier mode de réalisation, le capteur 203 est connecté au microcontrôleur 200 via un bus de données série, par exemple un bus de données série I2C, SPI, CAN ou UART. [0046] Selon un deuxième mode de réalisation, le microcontrôleur 200 reçoit par exemple les jeux de données du capteur 203 via une connexion filaire, par exemple une liaison Ethernet, ou une connexion sans fil, par exemple une connexion Bluetooth ou Wifi. [0047] Le capteur 203 est par exemple un accéléromètre ayant une fréquence d'échantillonnage donnée. Un jeu de données comporte alors par exemple 1024 valeurs de fréquences à une fréquence d'échantillonnage de 800 Hz. [0048] Le capteur 203 est par exemple un thermomètre délivrant des jeux de données de température. 7 [0049] Le capteur 203 est par exemple un baromètre délivrant des jeux de données de pression. [0050] Le capteur 203 est par exemple une caméra thermique. Un jeu de données est par exemple une matrice 8x8 de pixels. [0051] Le microcontrôleur 200 peut être connecté à plusieurs capteurs 201. Les jeux de données sont alors composés, un jeu de données comporte par exemple des données de pression et des données de température. [0052] [fig.1] La figure 1 est un schéma synoptique illustrant l'enchaînement des étapes 1011 à 1019 du procédé 101 d'apprentissage selon un premier aspect de l'invention. [0053] Le procédé 101 d'apprentissage selon un premier aspect de l'invention est un procédé d'apprentissage non supervisé réalisé sur un ensemble de jeux de données fournis par le capteur 203. [0054] On entend par « apprentissage non supervisé », un apprentissage automatique réalisé avec des données non étiquetées, c'est-à-dire des données brutes telles que fournies par le capteur 203. [0055] Les étapes 1011 à 1019 du procédé 101 sont réalisées pour chaque jeu de données de l'ensemble de jeux de données. [0056] La première étape 1011 consiste à stocker le jeu de données dans la mémoire 201 du microcontrôleur 200. [0057] La deuxième étape 1012 consiste à calculer une signature pour le jeu de données stocké dans la mémoire 201 du microcontrôleur 200. [0058] La signature d'un jeu de données est calculée différemment selon le type de données fournies par le capteur 203. [0059] Dans le cas où le jeu de données est fréquentiel, la signature du jeu de données est par exemple la transformée de Fourier discrète du jeu de données. [0060] Dans le cas où le jeu de données est une matrice de pixels, la signature du jeu de données est par exemple la moyenne ou la médiane des niveaux de gris sur ces pixels. [0061] Une condition de catégorie CC est qu'il existe au moins une catégorie stockée dans la mémoire 201 du microcontrôleur 200. [0062] Si la condition de catégorie CC est vérifiée, la troisième étape 1013 est réalisée. [0063] La troisième étape 1013 consiste à calculer une mesure de similitude entre la signature du jeu de données et la signature de chaque catégorie stockée dans la mémoire 201 du microcontrôleur 200. [0064] La mesure de similitude est par exemple calculée à partir de caractéristiques de position, comme par exemple la médiane et/ou la moyenne, et/ou de caractéristiques de dispersion, comme par exemple la variance et/ou l'écart type de la distribution statistique discrète choisie comme signature du jeu de données étudié. [0065] Dans le cas où la signature d'une catégorie est la moyenne des signatures des jeux de 8 données stockées dans la catégorie, la mesure de similitude est par exemple un calcul de distance entre la signature de la catégorie et la moyenne de la distribution statistique discrète utilisée comme signature du jeu dc données étudié. La distance utilisée est par exemple une distance euclidienne. [0066] Ainsi, dans le cas où le jeu de données est fréquentiel, la mesure de similitude est par exemple la distance euclidienne entre la moyenne des fréquences obtenues grâce à la transformée de Fourier discrète appliquée au jeu de données étudié et la moyenne des fréquences obtenues grâce à la transformée de Fourier discrète de chaque jeu de données stocké dans la catégorie. [0067] Une fois qu'une mesure de similitude a été calculée pour chaque catégorie stockée dans la mémoire 201 du tnicrocontrôleur 200, la troisième étape 1013 consiste à sélectionner la mesure de similitude maximale. [0068] Si plusieurs catégories ont la même mesure dc similitude maximale, la catégorie d'occurrence maximale est sélectionnée. Si plusieurs de ces catégories ont une même occurrence maximale, la sélection est aléatoire. [0069] Si une condition de mise à jour CMAJ est vérifiée, la quatrième étape 1014 est réalisée. [0070] La condition de mise à jour CMAJ est par exemple basée sur la moyenne des mesures de similitude calculées entre le jeu de données étudié et chaque catégorie ou mesure de similitude moyenne. Par exemple, la condition de mise à jour CMAJ est que la mesure de similitude maximale soit supérieure à 1,5 fois la mesure de similitude moyenne. [0071] La quatrième étape 1014 consiste à mettre à jour la catégorie correspondant à la mesure de similitude maximale à partir du jeu de données. [0072] Par exemple, la signature de la catégorie correspondante est mise à jour à partir de la signature du jeu de données, la signature du jeu de données est stockée dans la catégorie correspondante et l'occurrence de la catégorie correspondante est incrémentée de 1. [0073] Par exemple, dans le cas où la signature de la catégorie est la moyenne des signatures des jeux de données stockées dans la catégorie, la mise à jour de la catégorie consiste à recalculer la moyenne des signatures des jeux de données stockées dans la catégorie après ajout dans la catégorie de la signature du jeu de données étudié. [0074] Une condition de nombre de catégories CNC est que le nombre de catégories stockées dans la mémoire 201 du microcontrôleur 200 est inférieur au nombre maximal de catégories que peut stocker la mémoire 201. [0075] Si la condition de mise à jour CMAJ n'est pas vérifiée et que la condition de nombre de catégories CNC est vérifiée, la cinquième étape 1015 est réalisée. [0076] La cinquième étape 1015 consiste à créer une nouvelle catégorie à partir du jeu de 9 données et stocker la nouvelle catégorie dans la mémoire 201 du microcontrôleur 200. [0077] Par exemple, la signature de la nouvelle catégorie est la signature du jeu de données et l'occurrence est de 1. [0078] Si la condition de mise à jour CMAJ et la condition de nombre de catégories CNC ne sont pas vérifiées, la sixième étape 1016 est réalisée. [0079] La sixième étape 1016 consiste à sélectionner, parmi les catégories stockées dans la mémoire 201 du microcontrôleur 200, la catégorie ayant l'occurrence minimale. [0080] Si plusieurs catégories ont une même occurrence minimale, l'une des catégories est sélectionnée aléatoirement. [0081] Si une condition d'occurrence CO est vérifiée, la septième étape 1017 est réalisée. [0082] La condition d'occurrence CO dépend par exemple du rapport entre l'occurrence minimale et la somme des occurrences de toutes les catégories. Par exemple, la condition d'occurrence CO est que l'occurrence minimale soit inférieure à 5% de la somme des occurrences de toutes les catégories. [0083] La septième étape 1017 consiste à supprimer de la mémoire 201 du microcontrôleur 200 la catégorie correspondant à l'occurrence minimale. [0084] Une fois la catégorie correspondante supprimée, la cinquième étape 1015 de création d'une nouvelle catégorie à partir du jeu de données est réalisée. [0085] Si la condition d'occurrence CO n'est pas vérifiée, la huitième étape 1018 est réalisée. [0086] La huitième étape 1018 consiste à fusionner deux catégories stockées dans la mémoire 201 du microcontrôleur 200 pour créer une unique catégorie. [0087] Les deux catégories fusionnées sont celles ayant la mesure de similitude maximale entre leurs signatures. [0088] La fusion crée par exemple une unique catégorie ayant pour signature le barycentre des signatures des deux catégories fusionnées, ayant pour occurrence la somme des occurrences des deux catégories et stockant les signatures de jeux de données des deux catégories. [0089] Une fois les deux catégories fusionnées en une unique catégorie, la cinquième étape 1015 de création d'une nouvelle catégorie à partir du jeu de données est réalisée. [0090] Si la condition de catégorie CC n'est pas vérifiée suite à la deuxième sous-étape 1012, la cinquième étape 1015 de création d'une nouvelle catégorie à partir du jeu de données est réalisée. [0091] Une fois qu'une nouvelle catégorie a été créée à partir du jeu de données ou qu'une catégorie stockée dans la mémoire 201 du microcontrôleur 200 a été mise à jour à partir du jeu de données, la neuvième étape 1019 est réalisée. [0092] La neuvième étape 1019 consiste à supprimer le jeu de données de la mémoire 201 du microcontrôleur 200 et à mettre un jour un taux d'avancement. [0093] Le taux d'avancement est par exemple incrémenté quand aucune catégorie n'a été créée pour le jeu de données et décrémenté dans le cas inverse. [0094] Les étapes 1011 à 1019 du procédé 101 d'apprentissage sont réalisées tant que le taux d'avancement est inférieur à un seuil d'avancement prédéfini CA. L'ensemble de jeux de données correspond alors à l'ensemble des jeux de données fournis par le capteur 203 tant que le taux d'avancement est inférieur au seuil d'avancement. [0095] Le seuil d'avancement est par exemple de 80 %. [0096] [fig.2] La figure 2 est un schéma synoptique illustrant l'enchaînement des étapes 101 à 107 du procédé 100 de détection d'anomalies selon un deuxième aspect de l' invention. [0097] Une fois le procédé 101 d'apprentissage réalisé, les étapes 102 à 107 du procédé 100 de détection d'anomalies selon un deuxième aspect de l'invention sont réalisées pour chaque jeu de données fourni par le capteur 203. [0098] La deuxième étape 102 consiste à stocker le jeu de données dans la mémoire 201 du microcontrôleur 200. [0099] La troisième étape 103 consiste à calculer la signature du jeu de données. [0100] La quatrième étape 104 consiste à sélectionner la catégorie d'occurrence maximale et à calculer la mesure de similitude entre la signature du jeu de données et la signature de la catégorie d'occurrence maximale. [0101] Si plusieurs catégories ont une même occurrence maximale, la sélection est aléatoire parmi ces catégories. [0102] Si une condition de normalité CN est vérifiée pour la mesure de similitude de la catégorie d'occurrence maximale, la septième étape 107 est réalisée. [0103] La condition de normalité CN est par exemple que la mesure de similitude de la catégorie d'occurrence maximale soit supérieure ou égale à la mesure de similitude moyenne entre les signatures des jeux de données stockées dans la catégorie. [0104] La septième étape 107 consiste à supprimer le jeu de données de la mémoire 201 du microcontrôleur 200. [0105] Si la condition de normalité CN n'est pas vérifiée pour la mesure de similitude de la catégorie d'occurrence maximale et tant qu'il reste des catégories pour lesquelles aucune mesure de similitude n'a été calculée avec la signature du jeu de données et qu'aucune des mesures de similitude précédemment calculées ne répond à la condition de normalité CN CB, la cinquième étape 105 est réalisée. [0106] La cinquième étape 105 consiste à sélectionner la catégorie ayant l'occurrence égale ou immédiatement inférieure à l'occurrence de la catégorie dont la signature a été utilisée pour calculer la dernière mesure de similitude et à calculer la mesure de similitude entre la signature du jeu de données et la signature de la catégorie sélectionnée. 11 [0107] Si la condition de normalité CN est vérifiée pour la mesure de similitude calculée à la cinquième étape 105, la septième étape 107 de suppression du jeu de données de la mémoire 201 est réalisée. [0108] Si la condition de normalité CN n'est pas vérifiée pour la mesure de similitude calculée à la cinquième étape 105 et qu'il reste des catégories pour lesquelles aucune mesure de similitude n'a été calculée avec la signature du jeu de données, la cinquième étape 105 est réalisée à nouveau. [0109] Si la condition de normalité CN n'est vérifiée pour aucune des mesures de similitude précédemment calculées et qu'une mesure de similitude a été calculée pour chaque catégorie de la mémoire 201, la sixième étape 106 est réalisée. [0110] La sixième étape 106 consiste à détecter une anomalie. [0111] La sixième étape 106 peut par exemple consister dans le déclenchement d'une alarme ou dans l'envoi d'un message d'alerte à un équipement donné. [0112] Une fois l'anomalie détectée, la septième étape 107 de suppression du jeu de données de la mémoire 201 est réalisée. [0113] La détection d'une anomalie peut entraîner une reprise de l'apprentissage, c'est-à-dire que la détection d'anomalies peut être suivie du procédé 101 d'apprentissage. La décision de reprise de l'apprentissage est une prise de décision extérieure au procédé 100. 12 [Revendication 1] REVENDICATIONSProcédé (101) d'apprentissage pour la détection d'anomalies implémenté sur un microcontrôleur (200) comportant au moins une mémoire (201), le microcontrôleur (200) étant configure pour recevoir des jeux de données en provenance d'au moins un capteur (203), la mémoire (201) étant configurée pour stocker un nombre maximal de catégories, une catégorie comportant au moins une signature et une occurrence, le procédé (101) étant caractérisé en ce qu'il comporte les étapes suivantes : Tant qu'un taux d'avancement est inférieur à un seuil d'avancement (CA), pour chaque jeu de données d'un ensemble de jeux de données : - Stockage du jeu de donnée dans la mémoire (201, 1011) ; - Calcul d'une signature du jeu de données (1012) ; S'il existe au moins une catégorie stockée dans la mémoire (201, CC) : Calcul d'une mesure de similitude entre la signature du jeu de données et la signature de chaque catégorie et sélection de la mesure de similitude maximale (1013) : - Si la mesure de similitude maximale répond à une condition de mise à jour (CMAJ), mise à jour de la catégorie correspondante à partir du jeu de données (1014) ; Sinon : Si le nombre de catégories stockées dans la mémoire (201) est inférieur au nombre maximal de catégories (CNC), création d'une catégorie à partir du jeu de données (1015) dans la mémoire (201) ; Sinon, sélection de la catégorie ayant une oc- 13 carence minimale (1016) ; - Si l'occurrence minimale répond à une condition d'occurrence (CO), suppression dc la catégorie correspondante (1017) et création d'une catégorie à partir du jeu de données (1015) dans la mémoire (201) ; - Sinon, sélectionner les deux catégories dont les signatures ont une mesure de similitude maximale, création d'une unique catégorie par fusion des deux catégories sélectionnées (1018) et création d'une catégorie à partir du jeu de données clans la mémoire (201, 1015) ; S'il n'existe aucune catégorie, création d'une catégorie à partir du jeu de données dans la mémoire (201, 1015) ; Suppression du jeu de données de la mémoire (201) et mise à jour du taux d'avancement (1019), 14 [Revendication 2] [Revendication 3] [Revendication 4] [Revendication 5] Procédé (101) d'apprentissage selon la revendication 1, caractérisé en ce que la sous-étape (1014) de mise à jour d'une catégorie comporte une étape de mise à jour de la signature de la catégorie à partir de la signature du jeu de données et d' incrémentation de l'occurrence de la catégorie. Procédé (101) d'apprentissage selon l'une quelconque des revendications précédentes, caractérisé en ce que la sous-étape (1015) de création d'une catégorie comporte une étape d'affectation de la signature du jeu de données à la signature de l'unique catégorie et d'affection d'une occurrence de 1 à la catégorie. Procédé (101) d'apprentissage selon l'une quelconque des revendications précédentes, caractérisé en ce que la sous-étape (1018) de création d'une unique catégorie par fusion comporte une étape d'affectation du barycentre des signatures des deux catégories à fusionner à la signature de l'unique catégorie et d'affection de la somme des occurrences des deux catégories à fusionner à l'occurrence de l'unique catégorie. Procédé (100) de détection d'anomalies implémenté sur un micro-contrôleur (200) comportant au moins une mémoire (201), le micro-contrôleur (200) étant configure pour recevoir des jeux de données en provenance d'au moins un capteur (203), la mémoire (201) étant configurée pour stocker un nombre maximal de catégories, une catégorie comportant au moins une signature et une occurrence, le procédé (100) étant caractérisé en ce qu'il comporte les étapes du procédé (101) d'apprentissage selon l'une quelconque des revendications précédentes suivies des étapes suivantes : Pour chaque jeu de données reçu : Stockage du jeu de données dans la mémoire (201, 102) ; - Calcul de la signature du jeu de données (103) ; Sélection de la catégorie d'occurrence maximale et calcul de la mesure de similitude entre la signature du jeu de données et la signature de la catégorie sélectionnée (104) : - Si la mesure de similitude répond à une condition de normalité (CN), suppression du jeu de données de la mémoire (201, 107) ; 15 Sinon, s'il reste des catégories pour lesquelles aucune mesure de similitude n'a été calculée avec la signature du jeu de données et que les mesures de similitude précédemment calculées ne répondent pas à la condition de normalité (CN, CB) : - Sélection de la catégorie ayant une occurrence égale ou immédiatement inférieure à l'occurrence de la catégorie dont la signature a été utilisée pour calculer la mesure de similitude précédente et calcul de la mesure de similitude entre la signature du jeu de données et la signature de la catégorie sélectionnée (105) ; - Si la mesure de similitude répond à la condition de normalité (CN), suppression du jeu de données de la mémoire (201, 107) ; Si aucune des mesures de similitude précédemment calculées ne répond à la condition de normalité (CN), détection d'une anomalie (106) et suppression du jeu de données de la mémoire (201, 107). [Revendication 6] Procédé (100) de détection d'anomalies selon la revendication 5, ca- ractérisé en ce que l'étape (106) de détection d'une anomalie comporte une sous-étape de déclenchement d'une alarme et/ou une sous-étape d'envoi d'un message d'alerte. [Revendication 7] Procédé (100) de détection d'anomalies selon l'une quelconque des re- vendications 5 à 6, caractérisé en ce qu'il comporte à nouveau les étapes du procédé (101) d'apprentissage selon l'une quelconque des revendications 1 à 4. [Revendication 8] Microcontrôleur (200) implémentant les étapes du procédé (101) d'apprentissage selon l'une quelconque des revendications 1 à 4 et/ou les étapes du procédé (100) de détection d'anomalies selon l'une 16 [Revendication 9] quelconque des revendications 5 à 8, caractérisé en ce qu'il comporte un processeur (202) et une mémoire (201) et qu'il reçoit des jeux de données en provenance d'au moins un capteur (203). [Revendication 10] Microcontrôleur (200) selon la revendication 9, caractérisé en ce que le capteur (203) est connecté au microcontrôleur (200) via un bus de données série ou via une connexion filaire ou non filaire. Produit-programme d'ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en oeuvre les étapes du procédé (101) d'apprentissage selon l'une quelconque des revendications 1 à 4 et/ou les étapes du procédé (100) de détection d'anomalies selon l'une quelconque des revendications 5 à 7.